// Ausgabe aller Objekten
function getContent(type){
	new Ajax.Request("objectsDisplay.php?time="+(new Date()).getTime()+"&type="+type,
		{
			method:'get',
			onSuccess: function(req){
				Element.update($("content"), req.responseText);
				registerLinks(type);
			}
		}
	);
}

// links auf objectsDisplay.php registrieren
function registerLinks(type){
	$$('#list a').each(
		function(e){		
			// alle nicht "google-Links" und nicht "kontakt-Link" registrieren
			if(e.id!='go_maps' && e.id!='contact'){
				e.onclick = function(){
					var au = new Ajax.Request(e.href,
						{
							method:'get',
							onSuccess: function(r){
								Element.update($("content"), r.responseText);
								// rekursiever Aufruf
								// nach der Aenderungen - Links neu laden
								registerLinks(type);							
							}
						}
					);
					return false;
				}			
			} // end if			
		}
	); // end a-each
	if($("searchForm")){
		prepareSearchForm(type);
	}
}

function prepareSearchForm(type){
	// Standardfunktionalitaet entschaerfen
	$("searchForm").onsubmit = function(){		
		// alle Felder noch mal schicken und pruefen
		// z.B. ob "von"-Eingaben > als "bis"-Engaben
		var params = Form.serializeElements($('searchForm').getInputs());
		new Ajax.Request("searchFormCheck.php?time="+(new Date()).getTime(),
			{
				method:'post',
				parameters: params,
				onSuccess: function(request){
					var text = request.responseText;
					if (text=="OK"){
						getResult(type); // alle gefundenen Objekte ausgeben
					}else{
						$("msg").update("Bitte korrigieren Sie Ihre Eingabe!");
					}			
				}
			}
		);
		return false;
	}	// end onsubmit
	
	// "input"-Felder einzeln pruefen
	$$('#searchForm input').each(
		function(container){
			if(container.type=="text"){
				$(container.id).onchange = function(){
					var paramHash = $H();
					// ParameterHash transportiert name und wert des entsprechenden "input" Elementes
					paramHash.set(container.id,$F(container.id));
					var req = new Ajax.Request("searchFormCheck.php?time="+(new Date()).getTime(),
            {
							method:"post",
							parameters: paramHash.toQueryString(),
							onSuccess: function(request){
								// Leerzeichen aus input-Feld entfernen
								$(container.id).value = trim($F(container.id));
								var text = request.responseText;
								var cssString; // fuer error style
								if (text=="OK"){
									cssString = "color:black;";
								}else{
									cssString = "color:red;";
								}
								if(typeof($('error_'+container.id).style.cssText)=="string") {
									$('error_'+container.id).style.cssText = cssString;
								}
								// true => damit es in IE funktioniert
								$('error_'+container.id).setAttribute("style",cssString,"true");
							} // end onsuccess
						} // end method
					); // end ajax.request	
				} // end onchange
			} // end if
		}
	); // end input-each	
} // end prepareSearchForm()

// alle gefundenen Objekte ausgeben
function getResult(type){
	var params = "area="+$F('area')+
								"&"+Form.serializeElements($('searchForm').getInputs());
  new Ajax.Request("objectsDisplay.php?time="+(new Date()).getTime()+"&type="+type,
    {
			method:'post',
			parameters: params,
			onSuccess: function(request){
				Element.update($("content"), request.responseText);
				registerLinks(type);
			}
    }
	);
}

// Führende und Abschließende Whitespaces (Leerzeichen, Tabulatoren, ...)
// aus der übergebenen Zeichenkette entfernen.
function trim(zeichenkette){
  // Erst führende, dann Abschließende Whitespaces entfernen
  // und das Ergebnis dieser Operationen zurückliefern
  return zeichenkette.replace (/^\s+/, '').replace (/\s+$/, '');
}
