//Submit-Event wird per JavaScript hinzugefügt, sobald der DOM-Baum geladen ist
window.addEvent('domready', mySubmitHandler);


function mySubmitHandler()
{	
	$('suche').addEvent('submit', function(e) {e.preventDefault(); }); 
	$('suche').addEvent('submit', suchFilter);
}


function suchFilter()
{
	var name = escape(trim(document.getElementById("Name").value.toLowerCase()));
	
	name= name.replace(/-/," ");
	
	var ortField = document.getElementById("Ort").value.toLowerCase();	
	
	var ort_datei = "";
	
	var plz = "";
	
	var plz_datei = "";
	
	var verz_land = "deutschland";
	
	var numberInPlace = new RegExp("[0-9]{1,5}", "i"); //regulärer Ausdruck um PLZ zu finden
	
	var letterInPlace = new RegExp("[a-zäöüß]+", "i");
	
	
	/*** wenn Ort 1-5 Zahlen enthält, dann wurde eine PLZ mit angegeben ***/
	if(numberInPlace.test(ortField) == true && letterInPlace.test(ortField) == true)
	{		
		
		try
		{
			var splitPLZ = /^([0-9]{1,5})[^\w]*?([a-zäöüß ]+)$/;
			ergebnis = splitPLZ.exec(ortField);
			tmpPlz = ergebnis[1];
			ort = ergebnis[2];
		}
		catch(err)
		{
			var splitPLZ = /^([a-zäöüß ]+)[^\w]*?([0-9]{1,5})$/;
			ergebnis = splitPLZ.exec(ortField);
			tmpPlz = ergebnis[2];
			ort = ergebnis[1];
		}
		
		//alert(tmpPlz + ',' +ort);
		plz = decodeURI(tmpPlz); 
		
		plz_datei = escape(tmpPlz);
		
		ort_datei = escape(trim(ort));
		
		ort = decodeURI(trim(ort));
		
	} /*** Es wurden bei Ort nur Zahlen angegeben ***/
	else if( numberInPlace.test(ortField) == true && letterInPlace.test(ortField) == false)
	{
		
		plz_datei = escape(trim(ortField))
		
		plz = decodeURI(trim(ortField))
		
		ort_datei = "";
		
		ort = "";
		
	}/*** Der gesamte Ort enthält keine Zahlen aber Buchstaben***/
	else if(numberInPlace.test(ortField) == false && letterInPlace.test(ortField) == true)
	{
		ort_datei = escape(trailString(trim(ortField)));
		
		ort = decodeURI(trailString(trim(ortField)));
	}
	else /*** Leeres Ortfeld ***/
	{
		ort = ortField;
		ort_datei = ort;
	}
	
	if(ort != "")
	{
		ort= ort.replace(/ü/,"ue");
		ort= ort.replace(/ö/,"oe");
		ort= ort.replace(/ä/,"ae");
		ort= ort.replace(/&szlig;/,"ss");
		ort= ort.replace(/'/,"");
		ort= ort.replace(/""/,"");
		ort= ort.replace(/""/,"");
		ort= ort.replace(/&uuml;/,"ue");
		ort= ort.replace(/&ouml;/,"oe");
		ort= ort.replace(/&auml;/,"ae");
		ort= ort.replace(/ß/,"ss");	
		ort= ort.replace(/,/,"");
		ort= ort.replace(/;/,"");
		ort= ort.replace(/:/,"");
		ort= ort.replace(/!/,"");
		ort= ort.replace(/&/,"");
		ort= ort.replace(/#/,"");
		ort= ort.replace(/|/,"");
		ort= ort.replace(/</,"");
		ort= ort.replace(/>/,"");
		ort= ort.replace(/@/,"");

		// Trim und doppelte Leerzeichen
		ort = ort.replace(/ +/g, ' ').replace(/^\s+/g, '').replace(/\s+$/g, '');
	}
	
	parent.location.href = "/suche/"+verz_land+"/ort-"+ort+"/plz-"+plz+"/l1cy1-d_ort1cy1-"+ort_datei+"-plz1cy1-"+plz_datei+"_name1cy1-"+name+"-s1.html";
	
		//http://web2.cylex.de/suche/deutschland/ort-berlin/plz-/l1cy1-d_ort1cy1-berlin-plz1cy1-_name1cy1-hotel-s1.html
		//http://web2.cylex.de/suche/deutschland/ort-berlin/plz-14199/l1cy1-d_ort1cy1-berlin-plz1cy1-14199_name1cy1-hotel-s1.html
}

//Deletes whitespace at beginning and end of String str
function trim(str)
{
   return str.replace(/^\s*|\s*$/g,"");
}

//Entfernt alles, was kein Buchstabe ist aus String str
function trailString(str)
{
	return str.replace(/^[^a-zA-ZäöüÄÖÜ]*|[^a-zA-ZäöüÄÖÜß]*$/g, "");
}
