/**
* JS - Klasse zur Vereinfachung der Suche bei Verkauf und Vermietung
*
* @package gagfah
* @created 2006-06-25
* @author Christian Pschorr <cps@fast.de>
*/
function RealEstate() {
}
    /**
    * function reloadCity
    * lädt nach der Auswahl eines Bundeslandes automatisch die Wohnorte nach
    * @param none
    * @return none
    */
    RealEstate.prototype.reloadCity = function() {
			var frm; // ausgewaehltes Formular
	
			if(document.getElementById("frm_filter")) { // Formular auf der Detailseite (Wohnungssuche, ...)
				frm = $("frm_filter");
			
			} else { // Formular auf der Startseite
				frm = $("frm_leasing");
			}
    
			// URL zusammensetzen und den Ajaxrequest abschicken
			var url = "/_Includes/php/ajax.realestate.php?_cmd=city&" + frm.toQueryString();
			var obj = this;
			var http_request = new XHR({method : "get", async: true, onSuccess : function(html) {
				if(html != "") {
					// falls das Feld disabled ist
					if($("cb_city").getProperty("disabled") == true) {
						$("cb_city").disabled = false;
					}
					
					appendOption($("cb_city"), html); // Options des Selectbox Ort fuellen (Bug im IE)
					if($("cb_city").value == "Berlin") { // Sonderfall Berlin
						obj.reloadArea();
					} else {
						$("pnl_area").setStyle("display", "none");
						obj.reloadDistrict();
					}
					
					
				} else {
					$("cb_city").options[0].selected = true;
					$("cb_city").disabled = true;
				}
			}}).send(url);
			
			// Sonderfall Berlin
			// in keinem anderen Staat / Stadt gibt es sonst die Einteilung Bezirke
			if($("cb_state").value == "Berlin") {
				$("pnl_area").setStyle("display", "block");
			}
    }
		
    /**
    * function resetForm
    * setzt die Felder im Suchformular auf die Defaultwerte zurück
    * @param none
    * @return none
    */
    RealEstate.prototype.resetForm = function() {
			if(document.getElementById("cb_city")) {
				$("cb_city").disabled = true;
			}
			if(document.getElementById("cb_district")) {
				$("cb_district").disabled = true;
			}		
			if(document.getElementById("cb_area")) {
				$("cb_area").disabled = true;
				$("pnl_area").setStyle("display", "none");
			}					
    }		
    
    /**
    * function reloadDistrict
    * lädt nach einer Ortsauswahl automatisch die Ortsteile nach
    * @param none
    * @return none
    */
    RealEstate.prototype.reloadDistrict = function() {
			var url = "/_Includes/php/ajax.realestate.php?_cmd=district&" + $("frm_filter").toQueryString();
			var http_request = new XHR({method : "get", async: true, onSuccess : function(html) {            
				if(html != "") {
						
					// falls das Feld disabled ist
					if($("cb_district").getProperty("disabled") == true) {
						$("cb_district").disabled = false;
					}
					// Inhalt setzen
					appendOption($("cb_district"),html);
				} else {
					$("cb_district").options[0].selected = true;
					$("cb_district").disabled = true;
				}
			}}).send(url);
    }
		
		
    /**
    * function reloadArea
    * laedt nach einer Ortsauswahl automatisch die Bezirke nach
    * @param none
    * @return none
    */
    RealEstate.prototype.reloadArea = function() {
			var url = "/_Includes/php/ajax.realestate.php?_cmd=area&" + $("frm_filter").toQueryString();
			var http_request = new XHR({method : "get", async: true, onSuccess : function(html) {            
				if(html != "") {
						
					// falls das Feld disabled ist
					if($("cb_area").getProperty("disabled") == true) {
						$("cb_area").disabled = false;
					}
					// Inhalt setzen
					appendOption($("cb_area"),html);
				} else {
					$("cb_area").options[0].selected = true;
					$("cb_area").disabled = true;
				}
			}}).send(url);
    }		
    
    
    /**
    * function reloadRoomMin
    * lädt die ComboBox der minimalen Raumanzahl nach
    * @param none
    * @return none
    */
    RealEstate.prototype.reloadRoomMin = function() {
        var url = "/_Includes/php/ajax.realestate.php?_cmd=roommin&" + $("frm_filter").toQueryString();
        var http_request = new XHR({method : "get", onSuccess : function(html) {            
            
            // Inhalt setzen
            if(html != "") {
            
                // falls das Feld disabled ist
                if($("cb_roomMin").getProperty("disabled") == true) {
                    $("cb_roomMin").disabled = false;
                }            
            
                appendOption($("cb_roomMin"),html);
            } else {
                $("cb_roomMin").disabled = true;
            }
        }}).send(url);
    }    
    
    
    /**
    * function reloadRoomMax
    * lädt die ComboBox der maximalen Raumanzahl nach
    * @param none
    * @return none
    */
    RealEstate.prototype.reloadRoomMax = function() {
        var url = "/_Includes/php/ajax.realestate.php?_cmd=roommax&" + $("frm_filter").toQueryString();
        var http_request = new XHR({method : "get", onSuccess : function(html) {            
            
            // Inhalt setzen
            if(html != "") {
                
                // falls das Feld disabled ist
                if($("cb_roomMax").getProperty("disabled") == true) {
                    $("cb_roomMax").disabled = false;
                }                    
                
                appendOption($("cb_roomMax"),html);
                $ES("select#cb_roomMax option").getLast().selected = true;                
            } else {
                $("cb_roomMax").disabled = true;
            }
        }}).send(url);
    }
