/**
* Skripte die beim Laden der Seite initialisiert werden sollen
*/
window.onload = function() {
  var townAreaEnabled = {39:true,92:true,175:true};


  // JS - Suche der Kontakte
	if(document.getElementById("searchresult")) {
		var live = new LiveSearch();
	}

	// Funktionen die die Suche nach Immobilien erleichtern sollen
	if(document.getElementById("frm_filter")) {
		var re = new RealEstate();

		if(document.getElementById("cb_state")) { // Wenn es Bundeslaender zur Auswahl gibt (Vermietung)

      $("cb_state").onchange = function() {

				// dieses Feld wird in der PHP Programmierung benoetigt um bei abgeschalteten JavaScript die Orte, Ortsteile, ...
				// zurueckzusetzen; wenn ja JavaScript aktiviert ist, wird hierdurch diese Sicherung umgangen
				document.getElementsByName("_bundesland")[0].value = $("cb_state").value;

				// erstmal alle Felder wieder auf default umstellen
				re.resetForm();
				re.reloadCity();

				if(document.getElementById("cb_roomMin") && document.getElementById("cb_roomMax")) { // wenn Raumauswahl vorhanden ist
					re.reloadRoomMin();
					re.reloadRoomMax();
				}

        // Aktion Wohnungspool
        if($("cb_state").value == '3') {
          $("selectaktion").setStyle("display", "block");
          $("linkToAktion").setStyle("display", "block");
        } else {
          $("selectaktion").setStyle("display", "none");
          $("aktion").value="";
          $("linkToAktion").setStyle("display", "none");

        }
        // /Aktion Wohnungspool

      }

      // Aktion Wohnungspool
      if(document.getElementById("selectaktion")) {
        if($("cb_state").value == '3') {
          $("selectaktion").setStyle("display", "block");
          $("linkToAktion").setStyle("display", "block");
        }
      }
      // /Aktion Wohnungspool

    }

		$("cb_city").onchange = function() {

      if(document.getElementById("cb_district")) { // wenn Ortsteil vorhanden

				re.reloadArea();
				re.reloadDistrict();

				//if($("cb_city").value == "Berlin") {
				if($("cb_city").value == "39" || $("cb_city").value == "92" || $("cb_city").value == "175") {
					$("pnl_area").setStyle("display", "block");
				} else {
					$("pnl_area").setStyle("display", "none");
				}
			}

			if(document.getElementById("cb_roomMin") && document.getElementById("cb_roomMax")) { // wenn Raumauswahl vorhanden ist
				re.reloadRoomMin();
				re.reloadRoomMax();
			}
		}

		if(document.getElementById("cb_area")) {
			$("cb_area").onchange = function() {
				re.reloadDistrict();

				if(document.getElementById("cb_roomMin") && document.getElementById("cb_roomMax")) { // wenn Raumauswahl vorhanden ist
					re.reloadRoomMin();
					re.reloadRoomMax();
				}
			}
		}
	}

  function reloadSignupCheckbox(townId, pnlArea, areaObj, districtObj) {
    if(townAreaEnabled[townId] == undefined) {
      pnlArea.setStyle("display", "none");
      re.reloadDistrictSignUp(townId, null, districtObj);

    } else {
      pnlArea.setStyle("display", "block");
      districtObj.disabled = true;
      re.reloadAreaSignUp(townId, areaObj);
    }
  }

	// Falls es dass Formular im Vormerkungsformular ist
	if(document.getElementById("frm-signup")) {
		var re = new RealEstate();

    // ORT 1
    $("cb-town-01").onchange = function() {
      reloadSignupCheckbox($("cb-town-01").value, $("pnl-area-01"), $("cb-area-01"), $("cb-district-01"));
    }

    $("cb-area-01").onchange = function() {
      re.reloadDistrictSignUp($("cb-town-01").value, this.value, $("cb-district-01"));
    }

    // ORT 2
    $("cb-town-02").onchange = function() {
      reloadSignupCheckbox($("cb-town-02").value, $("pnl-area-02"), $("cb-area-02"), $("cb-district-02"));
    }

    $("cb-area-02").onchange = function() {
      re.reloadDistrictSignUp($("cb-town-02").value, this.value, $("cb-district-02"));
    }

    // ORT 3
    $("cb-town-03").onchange = function() {
      reloadSignupCheckbox($("cb-town-03").value, $("pnl-area-03"), $("cb-area-03"), $("cb-district-03"));
    }

    $("cb-area-03").onchange = function() {
      re.reloadDistrictSignUp($("cb-town-03").value, this.value, $("cb-district-03"));
    }
	}


	// Falls es die Startseite ist und ein Bundesland ausgewaehlt wurde
	if(document.getElementById("frm_leasing")) {
		var re = new RealEstate();

		$("cb_state").onchange = function() {
			if(document.getElementById("cb_city")) { // wenn die Auswahlbox der Staedte vorhanden ist
				re.reloadCity();
			}
		}
	}

	if(document.getElementById("cb-contact")) {
		$("cb-contact").onchange = function() {
			switch(this.value) {
				case "mietinteressenten":
					window.location.href = "/de/kontakt/mietinteressenten.html";
					break;

				case "prospective-tenant":
					window.location.href = "/en/contact/prospective_tenant.html";
					break;

				case "weg-verwaltung":
					window.location.href = "/de/kontakt/wohnungseigentuemer.html";
					break;

				case "real-estate-owner":
					window.location.href = "/en/contact/real_estate_owner.html";
					break;

				default:
					this.form.submit();
					break;
			}
		}
	}
}

function popup(mylink, windowname, hoehe, breite) {
    if(!window.focus) {
        return true;
    }
    var href;
    if(typeof(mylink)=='string') {
         href=mylink;
    } else {
         href=mylink.href;
    }
    window.open(href, windowname,'width=850, height=600, scrollbars=yes');
    window[windowname].focus();
    return false;
}

function appendOption(selectObject, selectOptions) {
	selectObject.innerHTML = "";

	// Pseudoobjekt erzeugen
	var selectTempObject = document.createElement("tmpselect");
	var selectSelectedIndex = 0;
	var optionElement;

	// Pseudoobjekt bearbeiten
	selectTempObject.id = "tmpselect";
	document.body.appendChild(selectTempObject);
	selectTempObject = document.getElementById("tmpselect");
	selectTempObject.style.display = "none";

	// einzufuegenden Code ueberarbeiten und an Pseudoobjekt uebergeben
	selectOptions = selectOptions.replace(/<option/g, "<span").replace(/<\/option/g, "</span");
	selectTempObject.innerHTML = selectOptions;

	// Kinderknoten des Pseudoobjekts durchlaufen und Optionknoten neu erzeugen
	var j = 0;
	for(var i=0;i<selectTempObject.childNodes.length;i++) {
		if(selectTempObject.childNodes[i].tagName) {
			optionElement = document.createElement("OPTION"); // neues Element erzeugen

			if(selectTempObject.childNodes[i].getAttribute("selected", 0) != null) { // selektierten Index merken
				selectSelectedIndex = j;
			}

			// Value und Inhalt uebernehmen
			optionElement.value = selectTempObject.childNodes[i].getAttribute("value");
			optionElement.text = selectTempObject.childNodes[i].innerHTML;

			// neuen Optionknoten der Selectbox hinzufuegen
			if(document.all) { // IE
				selectObject.add(optionElement);

			} else { // alle guten Browser
				selectObject.appendChild(optionElement);
			}
			j++;
		}
	}

	// vorselktierten Wert setzen und Pseudoobjekt zerstoeren
	try {
		selectObject.options[selectSelectedIndex].selected = true;
	} catch(e) {}
	document.body.removeChild(selectTempObject);
	selectTempObject = null;
}