var thisServer = getServerAddress(); var visibleTab = new Object(); visibleTab.id = "inited"; function goToKohde(frm) { if(!frm || !frm.kid) return false; var kidID = frm.kid.value; var styp = "v"; if(frm.styp) styp = frm.styp.value; if(kidID != "" && (styp == "v" || styp == "")) document.location='/cps//sato/hs.xsl/-/html/kohteentiedot_'+ kidID + '.htm'; else if(kidID != "" && styp == "o") document.location='/cps//sato/hs.xsl/-/html/omistuskohde_'+ kidID + '.htm'; // else // alert("KipiID is empty") return false; } function loadSeniorCities(objID, seniortype) { clearSelectBox(objID); //loadCitylist("2"); loadCitiesCached(seniortype, objID) } function loadRentalCities(objID) { clearSelectBox(objID); //loadCitylist("2"); loadCitiesCached("v", objID) } function loadOwnedCities(objID) { clearSelectBox(objID); //loadCitylist("1"); loadCitiesCached("o", objID) } function loadCitiesCached(typ, objID) { clearSelectBox(objID); var Cities; if (!typ || typ == null) return; if (typ == "v" || typ == "sv") Cities = v_cities; if (typ == "o" || typ == "so") Cities = o_cities; var selectedCity = -1; var selectedCityValue = -1; var qCity = $.query.get('dd_city'); if (!sTyp) var sTyp = $.query.get('styp'); for (var c = 0; c < Cities.length; c++) { // senior should check the seniorcount if (typ.length == 2 && Cities[c].senior == "0") continue; if (Cities[c].id == qCity) { // selectedCity = c + 1; selectedCity = c; selectedCityValue = Cities[c].id; } var v_myNewOption = new Option(Cities[c].name, Cities[c].id); var vCityList = document.getElementById(objID); if (vCityList) vCityList.options[vCityList.options.length] = v_myNewOption; } // If querystring hs dd_city set select appropriate item if (qCity && qCity != "" && selectedCity != -1 && sTyp) { if (vCityList && sTyp != "") { vCityList.selectedIndex = selectedCity; } } // Set events for SelectBox setSelectBoxEvents(typ); } function clearSelectBox(objID) { var List = document.getElementById(objID); if (List == null) return; while (List.options.length > 0) { List.options[0] = null; } } function updateResultCountOmistus(callbackfunc) { var url = thisServer + "/cps/SearchOmistusWeblet?dd_publish_status=1&dd_livingform=1&dd_countonly=true"; // City var citySelection = new selectionList("o_cityList"); if (citySelection.obj) { url = url + "&dd_city=" + ((citySelection.selectedValue == "") ? "9999" : citySelection.selectedValue).toString(); var sText = document.getElementById('o_cityname'); if (sText) sText.value = citySelection.selectedText; } // Area var areaSelection = new selectionList("o_areaList"); if (areaSelection.obj) { url = url + "&dd_district=" + areaSelection.selectedValue; } url = url + "&dd_pricefrom=" + document.getElementById('o_dd_pricefrom').value; url = url + "&dd_priceto=" + document.getElementById('o_dd_priceto').value; url = url + "&dd_areafrom=" + document.getElementById('o_dd_areafrom').value; url = url + "&dd_areato=" + document.getElementById('o_dd_areato').value; var con = new AJAXConnection("conDoOmistusUpdateResultCount"); con.xmlhttpPost(url, "GET", new doOmistusUpdateResultCount(callbackfunc)); } function getResultCount(xmlObj) { if ($.isXMLDoc(xmlObj)) { if (xmlObj.nodeName == "long") return parseInt(xmlObj.firstChild.nodeValue); if (document.all) return parseInt(xmlObj.documentElement.firstChild.nodeValue); } return 0; } function doOmistusUpdateResultCount(callbackfunc) { this.className = 'stateCityChanged'; // callBackFunction must exist this.callBackFunction = function(xmlResultObject) { document.getElementById('o_hakutulos').innerHTML = ""; var resultCount = getResultCount(xmlResultObject); if (resultCount > 0) { document.getElementById('o_hakutulos').innerHTML = 'Hakuehdoilla löytyy ' + resultCount.toString() + ' kohdetta'; } else { var errMessage = getHoverData("omistusNotAvailable").text; if (errMessage != "") { document.getElementById('o_hakutulos').innerHTML = errMessage; } } var ob = document.getElementById("o_submitter"); ob.className = ob.className.replace(/_disabled/g, ""); if (ob) { ob.disabled = (resultCount == "0"); if (ob.disabled) ob.className = ob.className.replace(/form_submit/g, "form_submit_disabled"); } if (typeof callbackfunc == 'object') callbackfunc; } } function updateResultCountSeniori(callbackF) { // livingform is rent if first radiobutton is checked var livingForm = $("input[@name='seniorType']")[0].checked?2:1; var citySelection = new selectionList("s_acdc"); // Disabled the SearchWeblet if(livingForm == 2){ var arrayIndex = jQuery.inArray(true, jQuery.map(v_cities, function(o) { return o.id == citySelection.selectedValue; } ) ); setSenioriHTML(parseInt(v_cities[arrayIndex].senior),"seniorNotAvailableSV"); return; }else{ var arrayIndex = jQuery.inArray(true, jQuery.map(o_cities, function(o) { return o.id == citySelection.selectedValue; } ) ); setSenioriHTML(parseInt(o_cities[arrayIndex].senior),"seniorNotAvailableSO"); return; } var url = thisServer + "/cps/SearchWeblet?dd_publish_status=2&dd_countonly=true&dd_senior=true"; // City if (citySelection.obj) { url = url + "&dd_city=" + citySelection.selectedValue; } url += "&dd_livingform=" + livingForm.toString(); var con = new AJAXConnection("conSenioriUpdateResultCount"); con.xmlhttpPost(url, "GET", new doSenioriUpdateResultCount(callbackF)); } function setSenioriHTML(resultCount, mouseoverindex){ if(!mouseoverindex) mouseoverindex = "seniorNotAvailableSO"; if (resultCount == 0) { var errMessage = getHoverData(mouseoverindex).text; if (errMessage != "") { document.getElementById('s_hakutulos').innerHTML = errMessage; } } else { document.getElementById('s_hakutulos').innerHTML = 'Hakuehdoilla löytyy ' + resultCount.toString() + ' asuntoa'; } var sb = document.getElementById("s_submitter"); sb.className = sb.className.replace(/_disabled/g, ""); if (sb) { sb.disabled = (resultCount == "0"); if (sb.disabled) sb.className = sb.className.replace(/form_submit/g, "form_submit_disabled"); } } function doSenioriUpdateResultCount(callbackF) { this.className = 'stateCityChanged'; // callBackFunction must exist this.callBackFunction = function(xmlResultObject) { var resultCount = getResultCount(xmlResultObject); setSenioriHTML(resultCount,"seniorNotAvailableSO"); if (typeof callbackF == 'object') callbackF; } } function updateResultCountVuokra(callbackF) { var url = thisServer + "/cps/SearchWeblet?dd_publish_status=2&dd_livingform=2&dd_countonly=true"; // City var citySelection = new selectionList("v_cityList"); if (citySelection.obj) { url = url + "&dd_city=" + ((citySelection.selectedValue == "") ? "9999" : citySelection.selectedValue).toString(); //var sText = document.getElementById('v_cityname'); //if (sText) // sText.value = citySelection.selectedText; } // Area var areaSelection = new selectionList("v_areaList"); if (areaSelection.obj) { url = url + "&dd_district=" + areaSelection.selectedValue; } // Rooms if (document.getElementById('v_r1').checked == true) { url = url + "&dd_1r=1"; } if (document.getElementById('v_r2').checked == true) { url = url + "&dd_2r=1"; } if (document.getElementById('v_r3').checked == true) { url = url + "&dd_3r=1"; } if (document.getElementById('v_r4').checked == true) { url = url + "&dd_4r=1"; } if (document.getElementById('v_r5').checked == true) { url = url + "&dd_5r=1"; } // Quality if (document.getElementById('v_s5').checked == true) { url = url + "&dd_c5=1"; } if (document.getElementById('v_s4').checked == true) { url = url + "&dd_c4=1"; } if (document.getElementById('v_s3').checked == true) { url = url + "&dd_c3=1"; } if (document.getElementById('v_s2').checked == true) { url = url + "&dd_c2=1"; } // Area and rent url = url + "&dd_areafrom=" + document.getElementById('v_dd_areafrom').value; url = url + "&dd_areato=" + document.getElementById('v_dd_areato').value; url = url + "&dd_rentfrom=" + document.getElementById('v_dd_rentfrom').value; url = url + "&dd_rentto=" + document.getElementById('v_dd_rentto').value; // Sauna(dd_f2),Balcony(dd_f1),Elevator(dd_f3) if (document.getElementById('v_terrace').checked == true) { url = url + "&dd_f1=true"; } if (document.getElementById('v_elevator').checked == true) { url = url + "&dd_f3=true"; } if (document.getElementById('v_sauna').checked == true) { url = url + "&dd_f2=true"; } // New only if (document.getElementById('v_newHouse').checked == true) { url = url + "&dd_no=true"; } var con = new AJAXConnection("Conn"); con.xmlhttpPost(url, "GET", new doVuokraUpdateResultCount(callbackF)); } function doVuokraUpdateResultCount(callbackF) { this.className = 'doVuokraUpdateResultCount'; // callBackFunction must exist this.callBackFunction = function(xmlResultObject) { var resultCount = getResultCount(xmlResultObject); document.getElementById('v_hakutulos').innerHTML = ""; if(resultCount > 0){ document.getElementById('v_hakutulos').innerHTML = 'Hakuehdoilla löytyy ' + resultCount.toString() + ' asuntoa'; } else { var errMessage = getHoverData("vuokraNotAvailable").text; if (errMessage != "") { // Replace certain strings from errMessage if they appear // URL must be formatted as : #?cityID=@cityID&region=@region errMessage = errMessage.replace(/@cityID/g, $("#v_cityList").val()); errMessage = errMessage.replace(/@region/g, $("#v_areaList").val()); document.getElementById('v_hakutulos').innerHTML = errMessage; } } var vb = document.getElementById("v_submitter"); vb.className = vb.className.replace(/_disabled/g, ""); if (vb) { vb.disabled = (resultCount == "0"); if (vb.disabled) vb.className = vb.className.replace(/form_submit/g, "form_submit_disabled"); } if (typeof callbackF == 'object') callbackF; } } // Set events for various seect lists function setSelectBoxEvents(prefix) { var vSel = document.getElementById(prefix + "_acdc"); if (vSel) { vSel.onchange = function() { if ($("#" + prefix + "_ac_me")[0].autocompleter) { $("#" + prefix + "_ac_me")[0].autocompleter.setExtraParams( { dd_city: vSel.options[vSel.selectedIndex].value } ); } } } } function setCityListEvents() { setSelectBoxEvents("v"); //setSelectBoxEvents("o"); } function loadCitylist(livingform) { if (!livingform) var livingform = "1"; setCityListEvents(); var url = thisServer + "/cps/CityWeblet?dd_livigform=" + livingform; var con = new AJAXConnection("CityList"); con.xmlhttpPost(url, "GET", new stateCityChanged()); } function clearAreaList(listid) { var Alist = document.getElementById(listid + 'areaList'); while (Alist.options.length > 0) { Alist.options[0] = null; } } function loadArealist(cityId, searchId) { var Cities; if (!searchId || searchId == null) return; if (searchId == "v_" || searchId == "sv") Cities = v_cities; if (searchId == "o_" || searchId == "so") Cities = o_cities; clearAreaList(searchId); document.getElementById(searchId + 'areaList').options[0] = new Option("Kaikki alueet", ""); for (var a = 0; a < Cities.length; a++) { if (Cities[a].id == cityId) { areaChanged(Cities[a], searchId); } } //var url = thisServer + "/cps/AreaWeblet?cityId=" + cityId; //var con = new AJAXConnection(searchId + "loadArealist"); //con.xmlhttpPost(url, "GET", new stateAreaChanged(searchId)); } function stateCityChanged(param, sTyp) { this.className = 'stateCityChanged'; // callBackFunction must exist this.callBackFunction = function(xmlCityObject) { var selectedCity = -1; var selectedCityValue = -1; var qCity = $.query.get('dd_city'); if (!sTyp) var sTyp = $.query.get('styp'); cityNodeList = xmlCityObject.getElementsByTagName('vacity'); for (var iNode = 0; iNode < cityNodeList.length; iNode++) { var cityNode = cityNodeList.item(iNode); var kaupunkiId = cityNode.getElementsByTagName('kaupunkiId')[0].childNodes[0]; if (parseInt(kaupunkiId.textContent || kaupunkiId.text) == qCity) { selectedCity = iNode + 1; selectedCityValue = parseInt(kaupunkiId.textContent || kaupunkiId.text); } var kaupunkiNimi = cityNode.getElementsByTagName('nimi')[0].childNodes[0]; var v_myNewOption = new Option(kaupunkiNimi.nodeValue, kaupunkiId.nodeValue); var o_myNewOption = new Option(kaupunkiNimi.nodeValue, kaupunkiId.nodeValue); var s_myNewOption = new Option(kaupunkiNimi.nodeValue, kaupunkiId.nodeValue); var vc_myNewOption = new Option(kaupunkiNimi.nodeValue, kaupunkiId.nodeValue); var vCityList = document.getElementById("v_cityList"); if (vCityList) vCityList.options[vCityList.options.length] = v_myNewOption; var oCityList = document.getElementById("o_cityList"); if (oCityList) oCityList.options[oCityList.options.length] = o_myNewOption; var sCityList = document.getElementById("s_adcd"); if (sCityList) sCityList.options[sCityList.options.length] = s_myNewOption; var vcList = document.getElementById("v_acdc"); if (vcList) vcList.options[vcList.options.length] = vc_myNewOption; } // If querystring hs dd_city set select appropriate item if (qCity && qCity != "" && selectedCity != -1 && sTyp) { if (sCityList && sTyp == "s") { sCityList.selectedIndex = selectedCity; cityChanged(selectedCityValue, "s_"); } if (vCityList && sTyp == "v") { vCityList.selectedIndex = selectedCity; cityChanged(selectedCityValue, "v_"); } if (oCityList && sTyp == "o") { oCityList.selectedIndex = selectedCity; cityChanged(selectedCityValue, "o_"); } } } } function stateAreaChanged(searchId) { this.className = 'stateAreaChanged'; // callBackFunction must exist this.callBackFunction = function(xmlAreaObject) { var areaNodeList = xmlAreaObject.getElementsByTagName('district'); if (!areaNodeList) return; var selectedAreaID = -1; var qArea = $.query.get('dd_district'); for (var iNode = 0; iNode < areaNodeList.length; iNode++) { var areaNode = areaNodeList.item(iNode); var areaId = areaNode.getElementsByTagName('kaupunginosaId')[0].firstChild; if (parseInt(areaId.textContent || areaId.text) == qArea) selectedAreaID = iNode; var areaNimi = areaNode.getElementsByTagName('nimi')[0].firstChild; var myNewOption = new Option(areaNimi.nodeValue, areaId.nodeValue); document.getElementById(searchId + 'areaList').options[document.getElementById(searchId + 'areaList').options.length] = myNewOption; } if (selectedAreaID != -1) document.getElementById(searchId + 'areaList').selectedIndex = selectedAreaID + 1; } } function areaChanged(cityArr, searchId) { if (!cityArr) return; if (!cityArr.regions) return; var selectedAreaID = -1; var qArea = $.query.get('dd_district'); for (var i = 0; i < cityArr.regions.length; i++) { var areaNode = cityArr.regions[i]; if (areaNode.id == qArea) selectedAreaID = i; var myNewOption = new Option(areaNode.name, areaNode.id); var aopt = document.getElementById(searchId + 'areaList'); if (typeof aopt == 'object') aopt.options[aopt.options.length] = myNewOption; } if (selectedAreaID != -1) document.getElementById(searchId + 'areaList').selectedIndex = selectedAreaID + 1; } function cityChanged(cityvalue, searchId) { if (searchId == 'v_') { updateResultCountVuokra(new function() { loadArealist(cityvalue, searchId); }); } else if (searchId == 'o_') { updateResultCountOmistus(new function() { loadArealist(cityvalue, searchId); }); } else if (searchId == 's_') { updateResultCountSeniori(new function() { loadArealist(cityvalue, searchId); }); } }