var liveSearchReq = false;
var t = null;
var liveSearchLast = "";
var bMove = false;
var sSubmit = false;

function liveSearchStart(getData) {
	if (document.forms.searchform.strasse.value=='' && document.forms.searchform.ort.value=='' && document.forms.searchform.plz.value==''){
		tmp=true;
	}else{
		tmp=getData;
	}

	if (t) {
		window.clearTimeout(t);
	}
	t = window.setTimeout("liveSearchDoSearch("+tmp+")",200);
}

function liveSearchDoSearch(getData) {
	if (typeof liveSearchRoot == "undefined") {
		liveSearchRoot = "";
	}
	if (typeof liveSearchRootSubDir == "undefined") {
		liveSearchRootSubDir = "";
	}
	if (typeof liveSearchParams == "undefined") {
		liveSearchParams2 = "";
	} else {
		liveSearchParams2 = "&" + liveSearchParams;
	}

	if (liveSearchReq && liveSearchReq.readyState < 4) {
		liveSearchReq.abort();
	}

	sSubmit = false;

	loadDataDiv(getData);

	var sSearch = "";
	if (getData){
		sSearch += "&sType=data";
		sSearch += "&mType="+document.forms.searchform.mType.value+"";
		sSearch += "&latitude="+map.getCenter().lat()+"";
		sSearch += "&longitude="+map.getCenter().lng()+"";
		/*
		if (document.forms.searchform.mType.value==0 || document.forms.searchform.mType.value==1){
			if (document.forms.searchform.m0.checked) sSearch += "&m0=t";
			if (document.forms.searchform.m1.checked) sSearch += "&m1=t";
			if (document.forms.searchform.m4.checked) sSearch += "&m4=t";
			if (document.forms.searchform.m7.checked) sSearch += "&m7=t";
			if (document.forms.searchform.m8.checked) sSearch += "&m8=t";
			if (document.forms.searchform.m10.checked) sSearch += "&m10=t";
			sSearch += "&rx="+document.forms.searchform.rx.value+"";
			sSearch += "&ry="+document.forms.searchform.ry.value+"";
			sSearch += "&mx="+document.forms.searchform.mx.value+"";
			sSearch += "&my="+document.forms.searchform.my.value+"";
			sSearch += "&cx="+document.forms.searchform.cx.value+"";
			sSearch += "&cy="+document.forms.searchform.cy.value+"";
		}
		*/
	}else{
		sSearch += "&sType=center";
		sSearch += "&strasse="+document.forms.searchform.strasse.value+"";
		sSearch += "&ort="+document.forms.searchform.ort.value+"";
		sSearch += "&plz="+document.forms.searchform.plz.value+"";
	}
	var liveSearchReq = GXmlHttp.create();
	liveSearchReq.open("GET", liveSearchRoot + "/livesearch.php?" + sSearch + liveSearchParams2,true);
	//alert(liveSearchRoot + "/livesearch.php?" + sSearch + liveSearchParams2);
	liveSearchReq.onreadystatechange = function() {
											if (liveSearchReq.readyState == 4) {
												if (liveSearchReq.status == 200) {
													showMarker(liveSearchReq.responseXML);
												}
											}
											delete liveSearchReq
										};
	liveSearchReq.send(null);
	sSearch = null;
	oldCenter = map.getCenter();
}

function loadDataDiv(getData){
	var  sh = document.getElementById("rPanel");
	if (getData) text = 'Daten werden geladen.';
	else text = 'Karte wird zentriert.';
	sh.innerHTML = '<img src="images/loading.gif" border=0>&nbsp;'+text;
}

function showMarker(response){
	var xmlSettings = response.documentElement.getElementsByTagName("settings");
	var mType = xmlSettings[0].getAttribute("mType");
	var sType = xmlSettings[0].getAttribute("sType");
	if (sType=='error'){
		return 'Zu Ihren Angaben konnte leider nichts gefunden werden';
	}else if(sType=='center'){
		var xmlCenter = response.documentElement.getElementsByTagName("center");
		if (xmlCenter.length==1) {
			bMove=false;
			map.setCenter(new GLatLng(xmlCenter[0].getAttribute("lat"),xmlCenter[0].getAttribute("lng")),parseInt(xmlCenter[0].getAttribute("zoom")));
			if (bMove==false) liveSearchStart(true);
			return '';
		}else{
			return 'Fehler beim Ermitteln der Koordinaten!';
		}
	}else if(sType=='data'){
		map.clearOverlays();
		/*
		for (var row in gmarkers) {
			map.removeTLabel(gmarkers[row]);
		}*/
		gmarkers = new Array();
		gdata = new Array();
		getData(parseInt(mType),response.documentElement.getElementsByTagName("marker"));
	}
}


function getData(maptyp,recordset) {
	switch (maptyp){
	case 0:
		for (var i=0;i<recordset.length;i++) {
			//var j = recordset[i].getAttribute("id");
			var j = i;
			gdata[j] = new Array();
			gdata[j]['id'] =recordset[i].getAttribute("id");
			gdata[j]['maptyp'] =maptyp;
			gdata[j]['zimmer'] =recordset[i].getAttribute("zimmer");
			gdata[j]['flaeche'] =recordset[i].getAttribute("flaeche");
			gdata[j]['kaltmiete'] =recordset[i].getAttribute("kaltmiete");
			gdata[j]['strasse'] =recordset[i].getAttribute("strasse");
			gdata[j]['plz'] =recordset[i].getAttribute("plz");
			gdata[j]['ort'] =recordset[i].getAttribute("ort");
			gdata[j]['lat'] =recordset[i].getAttribute("lat");
			gdata[j]['lng'] =recordset[i].getAttribute("lng");
			gdata[j]['dist'] =recordset[i].getAttribute("dist");
			gdata[j]['heading'] =recordset[i].getAttribute("heading");
			gdata[j]['immotyp'] =recordset[i].getAttribute("immotyp");
			gdata[j]['link'] =recordset[i].getAttribute("link");
			gdata[j]['image'] =recordset[i].getAttribute("image");
		}
		break;
	}

	var  sh = document.getElementById("rPanel");
	sh.innerHTML = '<img src="images/loading.gif" border=0>&nbsp; Objekte werden gesetzt';

	t = window.setTimeout("plott("+maptyp+")", 100);
}

function plott(maptyp){
	if (t) clearTimeout(t);

	var bounds = new GLatLngBounds();
	for (var row in gdata) {
		switch (maptyp){
		case 0:
			gmarkers[row] = createMarker(new GLatLng(gdata[row]['lat'],gdata[row]['lng']),row,gdata[row]['immotyp']);
			map.addOverlay(gmarkers[row]);
			break;
		}
		bounds.extend(new GLatLng(gdata[row]['lat'],gdata[row]['lng']));
	}
	maxZoomOut = map.getBoundsZoomLevel(bounds);

	var  sh = document.getElementById("rPanel");
	sh.innerHTML = '<img src="images/loading.gif" border=0>&nbsp; Auflistung wird geschrieben';

	t = window.setTimeout("writeTable("+maptyp+")", 100);
}

function writeTable(maptyp){
	if (t) clearTimeout(t);

	var sTable = '<table class="sortable" id="listTbl" cellspacing=0>';

	switch (maptyp){
	case 0:
		sTable += '<tr><th></th><th>Entf.&nbsp;</th><th>Zimmer&nbsp;</th><th>Fl&auml;che&nbsp;</th><th>Kaltmiete&nbsp;</th><th>Addresse&nbsp;</th></tr>';
		var adc=1;
		for (var row in gdata) {
			var heading = gdata[row]['heading'];

			if (adc%2==0) bgcolor='bgcolor1';
			else bgcolor='bgcolor2';

			//if (heading.length>0) sTable += '<tr class="'+bgcolor+'"><td colspan="8">'+heading+'</td></tr>';
			sTable += '<tr class="'+bgcolor+'" style="white-space:nowrap;padding:3px;"><td><a href="javascript:showInfo('+row+');" title="'+heading+'"><img src="images/icon_s_'+0+'.gif" border="0"></a></td>';
			sTable += '<td>'+gdata[row]['dist'].replace(/\./g,",") + ' km&nbsp;&nbsp;&nbsp;</td>';
			sTable += '<td>'+gdata[row]['zimmer'].replace(/\./g,",") + '</td>';
			sTable += '<td>'+gdata[row]['flaeche'].replace(/\./g,",") + ' mē</td>';
			sTable += '<td>'+gdata[row]['kaltmiete'].replace(/\./g,",") + ' &euro;</td>';
			sTable += '<td>'+gdata[row]['strasse']+'<br>'+gdata[row]['plz']+' '+gdata[row]['ort']+'</td><td width="100%">&nbsp;</td></tr>';
			/*
			if (adc==20){
				sTable += '<tr><td colspan=8 style="padding: 0px 0px 0px 25px;">';
				sTable += '<iframe src="adsense.html" width="234" height="60" name="adsense_box" scrolling="no" marginheight="0" marginwidth="0" frameborder="0"></iframe>';
				sTable += '</td></tr>';
				adc=1;
			}else adc++;
			*/
			adc++;
		}
		break;
	}
	sTable += '</table>';

	var sh = document.getElementById("rPanel");
	sh.innerHTML = sTable;
	//sortables_init();
}

function getInfo(index){
	switch (gdata[index]['maptyp']){
	case 0:
		var tt='';
		switch(parseInt(gdata[index]['immotyp'])){
		case 0:
			tt = '<img src="images/detail_header/0.jpg" border="0">';
			break;
		case 1:
			tt = 'Gewerbe zur Miete';
			break;
		case 2:
			tt = 'Parkplatz/Stellplatz zur Miete';
			break;
		}
		var heading = gdata[index]['heading'];
		var link = gdata[index]['link'];

		if (gdata[index]['image'].length>0){
			preloadImg=new Image()
			preloadImg.src=gdata[index]['image'];
			breite='350px';
		}else{
			breite='250px';
		}

		var detail = '<table style="background-color:#E77605;border-bottom-style:solid;border-bottom-width:2px;border-bottom-color:#BFBFC0;border-right-style:solid;border-right-width:2px;border-right-color:#BFBFC0;" width="'+breite+'"><tr><td>';
		detail += '<table width="100%"><tr><td align="center">';
		if (gdata[index]['image'].length>0){
			detail += '<img src="'+gdata[index]['image'].replace(/%3D/g,"=")+'" border="0">';
		}
		detail += '</td><td align="center" style="color:#ffffff;">';
		detail += tt+'<br>';
		detail += '<b>'+heading+'</b><br><br>';
		if (parseInt(gdata[index]['immotyp'])!=2) detail += ''+gdata[index]['zimmer'].replace(/\./g,",") + ' Zimmer, '+gdata[index]['flaeche'].replace(/\./g,",") + ' mē<br>';
		detail += gdata[index]['kaltmiete'].replace(/\./g,",") + ' &euro; Kaltmiete<br><br>'+gdata[index]['strasse']+'<br>'+gdata[index]['plz']+' '+gdata[index]['ort']+'<br>';
		detail += '<br>';
		detail += '<a style="color:#ffffff;" href="javascript:zoom('+gdata[index]['lat']+','+gdata[index]['lng']+',15);">Zoom</a><br><br>';
		if (link.length>0) detail += '&nbsp;&nbsp;&nbsp;<a style="color:#ffffff;" href="http://'+link+'" target="_blank">f&uuml;r weitere Infos<br> hier klicken</a>';
		//detail += '&nbsp;&nbsp;&nbsp;<a style="color:#ffffff;" href="./dPop.php?id='+gdata[index]['maptyp']+'_'+gdata[index]['id']+'" onclick="dPop(this.href);return false;" target="_blank">Details</a>';
		detail += '</td></tr></table>';
		detail += '</td></tr></table>';
		break;
	}
	preloadImg='';
	return detail;
}

function showOrte(){
	var stadt = new Array();

	stadt[1] = new Array();
	stadt[1]['icon'] = 'images/orte/dortmund.gif'; //Dortmund
	stadt[1]['posX'] = 51.532;
	stadt[1]['posY'] = 8.56;
	stadt[1]['lat'] = 51.5166;
	stadt[1]['lng'] = 7.4582;
	stadt[2] = new Array();
	stadt[2]['icon'] = 'images/orte/essen.gif'; //essen
	stadt[2]['posX'] = 51.535;
	stadt[2]['posY'] = 7.27;
	stadt[2]['lat'] = 51.457858;
	stadt[2]['lng'] = 7.015457;
	stadt[3] = new Array();
	stadt[3]['icon'] = 'images/orte/bochum.gif'; //bochum
	stadt[3]['posX'] = 52;
	stadt[3]['posY'] = 7.211838;
	stadt[3]['lat'] = 51.48288;
	stadt[3]['lng'] = 7.211838;
	stadt[4] = new Array();
	stadt[4]['icon'] = 'images/orte/hagen.gif'; //hagen
	stadt[4]['posX'] = 51.1;
	stadt[4]['posY'] = 7.55;
	stadt[4]['lat'] = 51.362349;
	stadt[4]['lng'] = 7.46315;
	stadt[5] = new Array();
	stadt[5]['icon'] = 'images/orte/krefeld.gif'; //krefeld
	stadt[5]['posX'] = 51.05;
	stadt[5]['posY'] = 6.3;
	stadt[5]['lat'] = 51.331684;
	stadt[5]['lng'] = 6.559353;
	stadt[6] = new Array();
	stadt[6]['icon'] = 'images/orte/duisburg.gif'; //duisburg
	stadt[6]['posX'] = 51.52;
	stadt[6]['posY'] = 6;
	stadt[6]['lat'] = 51.432822;
	stadt[6]['lng'] = 6.767921;
	stadt[7] = new Array();
	stadt[7]['icon'] = 'images/orte/wuppertal.gif'; //wuppertal
	stadt[7]['posX'] = 50.6;
	stadt[7]['posY'] = 7.15004;
	stadt[7]['lat'] = 51.255899;
	stadt[7]['lng'] = 7.15004;

	for (var index in stadt) {
		var icon = new GIcon();
		icon.image = stadt[index]['icon'];
		icon.iconSize = new GSize(55, 34);
		icon.iconAnchor = new GPoint(27, 17);
		gmarkers[index] = createMarkerS(new GLatLng(stadt[index]['posX'],stadt[index]['posY']),new GLatLng(stadt[index]['lat'],stadt[index]['lng']),index,icon);
	  	map.addOverlay(gmarkers[index]);
	}
}