var sel = {
	
	
	
	submitForm: function(){
	
		function onUpdateSearchComplete() {
			var validsearch = document.getElementById("ajaxvalidsearch");
			if(validsearch.value != 'false'){
				document.FilterLocationForm.submit();
			}
		}

//		immoautocomplete.updateFields();
		var form = document.FilterLocationForm;
		var tail = sel.formToQuery(form,'suchart');
		var suchart = document.FilterLocationForm.suchart.value;
		tail = tail + '&suchart=' + suchart;
		if(suchart == '1'){
			var geoElem = document.getElementById("umkreissuche");
			if (geoElem != null) {
				geoElem.innerHTML = '';
			}
			new Ajax.Updater({success:"ortseingabe"}, "/immobiliensuche/sel/ortsauswahl.do?view=location&"+tail, {evalScripts: false, onComplete: onUpdateSearchComplete});
		}else if(suchart == '2'){
			var geoElem = document.getElementById("ortseingabe");
			if (geoElem != null) {
				geoElem.innerHTML = '';
			}
			new Ajax.Updater({success:"umkreissuche"}, "/immobiliensuche/sel/umkreissuche.do?view=location&"+tail, {evalScripts: false, onComplete: onUpdateSearchComplete});
		}
		return false;
	
	},
		
	updateLocation: function(clrFlag, refresh) {
		var validsearch = document.getElementById("ajaxlocationname");
		var newsearch = document.getElementById("locationname");
		if(validsearch == null || newsearch== null || validsearch.value != newsearch.value || typeof refresh =='undefined'){
			if(!clrFlag || refresh){	
				var geoElem = document.getElementById("ortseingabe");
				if (geoElem != null) {
					geoElem.innerHTML = '';
				}
			}
			
			function onUpdateSearchComplete() {
				immosearchinfos.totalCountSet();
				var fromElem = document.getElementById("ajaxlocationname");
				if (fromElem != null) {
					var toElem = document.getElementById("locationname");
					if (toElem != null) {
						toElem.value = fromElem.value;
					}
				}
				
			}
//			immoautocomplete.updateFields();
			var form = document.FilterLocationForm;
			var tail = sel.formToQuery(form,'suchart');
		
			var suchart = document.FilterLocationForm.suchart.value;
			tail = tail + '&suchart=' + suchart;
			
			if(suchart == '1'){
				new Ajax.Updater({success:"ortseingabe"}, "/immobiliensuche/sel/ortsauswahl.do?charset=utf-8&view=location&"+tail, {evalScripts: false, onComplete: onUpdateSearchComplete});
			}else if(suchart == '2'){
				new Ajax.Updater({success:"umkreissuche"}, "/immobiliensuche/sel/umkreissuche.do?charset=utf-8&view=location&"+tail, {evalScripts: false, onComplete: onUpdateSearchComplete});
			}
		}
		
		
	},
	
	updateSuche: function() {
		if(validate.validateFields()){
			var form = document.FilterListForm;
			var tail = sel.formToQuery(form);
			new Ajax.Updater({success:"trefferanzeigeaktulisieren"}, "/immobiliensuche/sel.do?target=refreshrefinement&"+tail,{evalScripts:true});
		}
	},
	

	checkFromToFields: function(){
		var returner = false;
		var fields = new Array('fromprice','toprice','fromrooms','torooms','fromarea','toarea','fromyear','toyear');
		var fromField = null; var toField = null;

		for(i=0; i<fields.length; i=i+2){
			var fromField = $(fields[i]); 
			var toField = $(fields[(i+1)]); 
			if(typeof(fromField) != 'undefined' || typeof(toField) != 'undefined') {
				var fromVal = $F(fromField); var toVal = $F(toField);
				//von-bis Werte tauschen, wenn von > bis
				if( (fromVal!="" && toVal!="") && (parseInt(fromVal) > parseInt(toVal)) ){
	    			fromField.value = toVal; toField.value = fromVal;
	    			//cursor auch verschieben
	    			(document.activeElement.id == fromField.id) ? toField.focus() : fromField.focus();
	    			//IE-Fix: Cursor ans Ende im Feld zu setzen
	    			document.activeElement.value = document.activeElement.value;
				}
				returner = true;
			}
		} 
		return returner;
	},
	
	
	/**
	 * Ein Formular auslesen und aus den Feldern einen Query-String machen.
	 * Felder, deren Name mit "ajax" beginnt, werden ignoriert.
	 * Ebenso alle Felder, deren Name in <ignoreField> enthalten ist.
	 */
	formToQuery: function(form, ignoreField, noCharset) {
		// Ajax-Aufrufe sind UTF-8 kodiert - das muß die Action wissen
		var params = "charset=utf-8";
		if (noCharset != null) {
			if (noCharset) {
				params = "";
			}
		}
		for (i = 0; i < form.elements.length; i++) {
			var ignoreFlag = true;
			if (ignoreField != null) {
				if (ignoreField.indexOf(form.elements[i].name) >= 0) {
					ignoreFlag = false;
				}
			}
			if ((form.elements[i].name.substr(0,4) != 'ajax') && ignoreFlag) {
				if ((form.elements[i].type.substr(0,6) == 'hidden') || (form.elements[i].type.substr(0,5) == 'text')) {
					if (params != "") {
						params = params.concat("&");
					}
					params = params.concat(form.elements[i].name).concat("=").concat(encodeURIComponent(form.elements[i].value));
				} else if ((form.elements[i].type.substr(0,8) == 'checkbox') || (form.elements[i].type.substr(0,5) == 'radio')) {
					if (form.elements[i].checked == true) {
						if (params != "") {
							params = params.concat("&");
						}
						params = params.concat(form.elements[i].name).concat("=").concat(encodeURIComponent(form.elements[i].value));
					}
				} else if (form.elements[i].type.substr(0,6) == 'select') {
					for (j = 0; j < form.elements[i].options.length; j++) {
						if (form.elements[i].options[j].selected == true) {
							if (params != "") {
								params = params.concat("&");
							}
							params = params.concat(form.elements[i].name).concat("=").concat(encodeURIComponent(form.elements[i].options[j].value));
						}
					}
				}
			}
		}
		return(params);
	},
	
	panelDisplay: function(elemID, show){
		
		for (var i = 0; i < 50; i++){
			sel.displayElem(elemID+"_"+i,show);
		}
		if (show) {
			sel.displayElem(elemID+"_true", true);
			sel.displayElem(elemID+"_false", false);
		}
		else {
			sel.displayElem(elemID+"_true", false);
			sel.displayElem(elemID+"_false", true);
		}
	},


	display: function(elemID, show) {
		sel.displayElem(elemID,show);

		if (show) {
			sel.isPanelOpen = true;
			sel.displayElem(elemID+"_true", true);
			sel.displayElem(elemID+"_false", false);
		}
		else {
			sel.isPanelOpen = false;
			sel.displayElem(elemID+"_true", false);
			sel.displayElem(elemID+"_false", true);
		}
	},


	displayElem: function(elemID, show) {
		
		var myElem = $(elemID);
		if (!immo.isEmpty(myElem)) {
			
			if(show) {
				myElem.show();
			}
			else {
				myElem.hide();
			} 
		}
	}

	
	
}
