var detailDivAktiv='';
var objektVormerkenCalled=0;
var markObj='';
var status='';
var verschieben=false;
var kritChanged=false;
var infowindowContent='';
var rahmenAn='';
var aktPersonen='';
var aktAnreise='';
var aktAbreise='';
var aktPreis='';
var aktWaehrung='';
var altPersonen='';
var altAnreise='';
var altAbreise='';
var altPreis='';
var altCenter='';
var altZoom='';
var vorhanden=new Array();
var geosucheInarbeit=false;
var randGeholt=false;
var zeit=null;
var start=null;
var wandern=null;
var koordsCloneParent=null;
var cloneY=0;
var browser='';

function sucheObjekte(delObj) {
	if(!$('suche_senden'))
		return;
	geosucheInarbeit=true;
	//falls InfoWindow offen ist, schließen
	infowindow.setContent('');
	infowindow.close(map);
	$('suche_senden').style.display='inline';
	if($('map').style.display!='none')
		karteAbdeckungZu();
	if(aktPersonen==='') {
		aktWerte(0); 
		 if(altPersonen==='')
			aktWerte(0);
	}
	if(boundsGezeigt==true)
	{
		boundsGezeigt=false;
		map.setZoom(map.getZoom()+1);
	}
	var bounds=map.getBounds();
	if(typeof bounds!='object')
	{
		window.setTimeout("sucheObjekte("+delObj+")",700);
		return false;
	}
	var rechtsOben=bounds.getNorthEast();
	var linksUnten=bounds.getSouthWest();
	var lat=rechtsOben.lat();
	var lot=rechtsOben.lng();
	var laf=linksUnten.lat();
	var lof=linksUnten.lng();
	var aktZoom=map.getZoom();
	var personen=document.suche.personen.options[document.suche.personen.options.selectedIndex].value;
	var anreise=document.suche.anreise.value;
	var abreise=document.suche.abreise.value;
	var sid=document.suche.PHPSESSID.value; 
	var bpreis=document.suche.preislimit.value;
	var waehrung=document.suche.waehrung_id.options[document.suche.waehrung_id.selectedIndex].value;
	//alert("LOF="+lof+"&LAF="+laf+"&LOT="+lot+"&LAT="+lat);
	randGeholt=false;
	zeit=new Date();
	start=zeit.getTime();
	//alert(anreise+", "+abreise+", "+personen+", "+bpreis+", "+waehrung);
	xajax_GeoSuche(lof, laf, lot, lat, aktZoom, delObj, anreise, abreise, personen, bpreis, waehrung);
	if(browser=='')
	{
		checkBrowser();
	}
	return false;
 }
 
 
 function zeigeObjMarker(text) {
			zeit = new Date();
			var ende = zeit.getTime();
			var dauer=ende-start;
			//alert(dauer+" ms");
			zeit = new Date();
			start=zeit.getTime();
			var text1=text.split(":TR1:");
			//wenn Statuswechsel oder nur Bobbles anzuzeigen sind, neu laden
			if(status!=text1[0] || text1[0]!='Objekte' || kritChanged==true)
			{
				kritChanged=false;
				delete vorhanden;
				vorhanden=new Array();
				var mitte=map.getCenter();
				var mitteBreite=mitte.lat();
				var mitteLaenge=mitte.lng();
				var aktZoom=map.getZoom();
				load(mitteLaenge, mitteBreite, aktZoom);
				status=text1[0];
				
			}
			switch(text1[0]) {
				case "Stadt":
					//[0]=laenge, [1]=breite, [2]=anzahl, [3]=lof, [4]=laf, [5]=lot, [6]=lat
					var anzeige=text1[1].split(":TR2:");
					var markerBreite=null;
					var markerLaenge=null;
					var anzahl=anzeige[2];
					if(parseFloat(mitteBreite)<parseFloat(anzeige[6]))
						//zu hoch
						markerBreite=anzeige[6];	
					else if(parseFloat(mitteBreite)>parseFloat(anzeige[4]))
						//zu tief
						markerBreite=anzeige[4];
					else
						markerBreite=mitteBreite;
					if(parseFloat(mitteLaenge)<parseFloat(anzeige[3]))
						//zu weit links
						markerLaenge=anzeige[3];	
					else if(parseFloat(mitteLaenge)>parseFloat(anzeige[5]))
						//zu weit rechts
						markerLaenge=anzeige[5];
					else
						markerLaenge=mitteLaenge;	
					var myLatLng = new google.maps.LatLng(markerBreite, markerLaenge);
					center_marker.setPosition(myLatLng);
					center_marker.setIcon('/pic/marker/'+anzahl+'.png');
					center_marker.setVisible(true);
					break;
					
				case "Raster":
					//load(mitteLaenge, mitteBreite, aktZoom);
					var bobbles=text1[1].split(":TR2:");
					for(i=0; i<bobbles.length; i++)
					{
						var bobble=bobbles[i].split(":TR3:");
						//0=lon, 1=lat, 2=anzahl
						if(bobble[2]!='0')
						{
							var bobble_latlng = new google.maps.LatLng(bobble[1], bobble[0]);
							var anzahl=bobble[2];
							marker = new google.maps.Marker({
							  position: bobble_latlng, 
							  map: map, 
							  icon: "/pic/marker/"+anzahl+".png",
							  title:""
							});	
						bobbleClick(marker);
						}	
					}
					break;
				case "Objekte":
					marker=null;
					center_marker.setVisible(false);

					var objekte=text1[1].split(":TR2:");
					for(i=0; i<objekte.length; i++)
					{
						//[0]=ID, [1]=Objektnr, [2]=lon, [3]=lat, [4]=0->belegt, 1->frei
						var objekt=objekte[i].split(":TR3:");
						//Markierung schon vorhanden?
						var neuMarker=true;
						for(j=0; j<vorhanden.length; j++)
						{
							if(objekt[0]==vorhanden[j])
							{
								neuMarker=false;
								break;
							}
						}
						if(neuMarker==true)
						{
							//Marker für neue Objekte erstellen
							mylatlng = new google.maps.LatLng(objekt[3], objekt[2]);
							var text=objekt[1];
							
							if(objekt[4]==1)
							{
								var markername1=objekt[0].split(",");
								var markername2=markername1[0];
								vorhanden.push(markername1[0]);
								marker = new google.maps.Marker({
									position: mylatlng,
									clickable: true,
									map: map, 
									icon: '/pic/marker/ebab.png',
									title:""+text,
									zIndex: 1
								}); 
								zeigeDiv(marker, objekt[0]);
							}
								
							else
							{
								var markername1=objekt[0].split(",");
								var markername2=markername1[0];
								vorhanden.push(markername1[0]);
								marker = new google.maps.Marker({
									position: mylatlng,
									clickable: true,
									map: map, 
									icon: '/pic/marker/ebab_belegt.png',
									title:""+text,
									zIndex: 0
								}); 
							belegt(marker);
							}
							vorhanden.push(objekt[0]);
						}
					}
					if(markObj!='')
					{
						xajax_objektInfo(markObj);
						markObj='';
						suche.adresse.value='';
					}
					geosucheInarbeit=false;
					//holeRest();
					break;
				case "Staedte":
					var staedte=text1[1].split(":TR2:");

					for (i=0;i<staedte.length;i++)
					{
						
						var stadt=staedte[i].split(":TR3:");
						//[0]=stadt_id, [1]=stadt_name, [2]=anz_objekte, [3]=laenge, [4]=breite, [5]=lof, [6]=laf, [7]=lot, [8]=lat

						stadt_latlng=new google.maps.LatLng(stadt[4], stadt[3]);
						
						zahl=stadt[2];
						marker = new google.maps.Marker({
						  position: stadt_latlng, 
						  map: map, 
						  icon: "/pic/marker/"+zahl+".png",
						  title:""+stadt[1]
						});	
					bobbleClick(marker);
					}
					break;
				case "kein":
					if($("anzahl"))
					{
						//Anzahl der Suchergebnisse ausgeben
						$("anzahl").innerHTML="0 "+text1[1];
					}
				default:
					karteAbdeckungAuf();
						
					break;
				
			}	
	zeigeVMButton();
	geosucheInarbeit=false;	
	/*var ende = zeit.getTime();
	var dauer=ende-start;
	alert("Verarbeitung: "+dauer+" ms");*/
 }


 function zeigeDiv(marker, objekte) {
  google.maps.event.addListener(marker, 'click', function() {
	  rahmenAus();
	  rahmenEin(objekte);
  });
}
 
 function belegt(marker)
 {
	 google.maps.event.addListener(marker, 'click', function() {
	  alert(libadmin_geo_objektbelegt);
	});
 }
 
 function bobbleClick(marker)
 {
	 google.maps.event.addListener(marker, 'click', function() {
		 zoomSuche=true;
		 if(map.getZoom()<12)
			map.setZoom(map.getZoom()+3);
		else if(map.getZoom()<15)
			map.setZoom(map.getZoom()+2);
		else
			map.setZoom(map.getZoom()+1);
		 zoomSuche=false;
		 map.setCenter(marker.getPosition());
	});
	 
 }
 function holeRest()
 {
	 //nur wenn nicht die GeoSuche gerade arbeitet
	 if(geosucheInarbeit==false && randGeholt==false)
	 {
		var bounds=map.getBounds();
		var linksOben=bounds.getNorthEast();
		var rechtsUnten=bounds.getSouthWest();
		var lat=linksOben.lat();
		var lof=linksOben.lng();
		var laf=rechtsUnten.lat();
		var lot=rechtsUnten.lng();
		diff1=(lat-laf)/3;
		diff2=(lof-lot)/3;
		lat1=lat+diff1;
		laf1=laf-diff1;
		lof1=lof+diff2;
		lot1=lot-diff2;
		randGeholt=true;
		xajax_holeRest(laf1, lat1, lot1, lof1, document.suche.PHPSESSID.value);
	 }
 }
 
 function rahmenEin(objekte)
 {
	 var obj=objekte.toString().split(",");
	  var rolleZu='';
	  rahmenAn=obj;
		 for(i=0; i<obj.length; i++)
		 {
			 if($("objekt_"+obj[i]))
			{
				$("objekt_"+obj[i]).style.backgroundColor="#ffddba";
				if(rolleZu=='')
					rolleZu="objekt_"+obj[i];
			}
		 }		 
		//rolle zum ausgewählten Div
		 $(rolleZu).scrollIntoView(true);
 }
 
 function rahmenAus()
 {
	 if(rahmenAn!='')
		for(i=0; i<rahmenAn.length; i++)
			 if($("objekt_"+rahmenAn[i]))
				 $("objekt_"+rahmenAn[i]).style.backgroundColor="ebf2fa";
	 rahmenAn='';
 }
 
 function karteAbdeckungZu()
 {
	 $('abdeckung').style.display = "block";
	$('abd_inhalt').style.display = "block";
	$('abd_inhalt2').style.display = "block";
 }
 function karteAbdeckungAuf()
 {
	 $('abdeckung').style.display = "none";
	$('abd_inhalt').style.display = "none";
	$('abd_inhalt2').style.display = "none";
 }
 
 function neueSuche()
 {
	 aktWerte(0);
	 $("errtext").innerHTML='';
	 $('map').style.display = "block";
	 //Unterscheidung Geosuche oder Kriterien geändert wurden
	 if(suche.adresse.value!='')
		{
			codeAddress();
		}
		else
		{
			//Datum prüfen
			var anreise=document.suche.anreise.value;
			var abreise=document.suche.abreise.value;
			var heute=new Date();
			var arrAnreise=anreise.split(".");
			var arrAbreise=abreise.split(".");
			var anreiseDatum=new Date(arrAnreise[2],arrAnreise[1]-1,arrAnreise[0],00,00,00);
			var abreiseDatum=new Date(arrAbreise[2],arrAbreise[1]-1,arrAbreise[0],00,00,00);
			if(anreiseDatum<=heute)
				$("errtext").innerHTML="<b>"+errorAnreiseZukunft+"</b>";
			else if(abreiseDatum<=anreiseDatum)
				$("errtext").innerHTML="<b>"+errorAbreiseVorAnreise+"</b>";
			else
			{
				//Hinweistext abschalten
				$('dataChanged').style.display = "none";
				//Suchen-Button wieder einblenden
				$('suche_senden').style.display='inline';
				//vorhanden=new Array();
				kritChanged=true;
				sucheObjekte(0);
			}
		}
	return false;
 }
 
 function zurGeosuche() {
	if(document.suche.TYPE.value=="STANDARDSUCHE")
	{
		var land=document.suche.land.options[document.suche.land.selectedIndex].value;
		var stadt=document.suche.stadt.options[document.suche.stadt.selectedIndex].value;
		var personen=document.suche.personen.options[document.suche.personen.selectedIndex].value;
		var anreise=document.suche.anreise.value;
		var abreise=document.suche.abreise.value;
		var bpreis=document.suche.preislimit.value;
		var waehrung=document.suche.waehrung_id.options[document.suche.waehrung_id.selectedIndex].value;
		var sid=document.suche.PHPSESSID.value;
		$('goGeosuche').innerHTML="<center><img src='/css/pic/loading.gif' /></center>";
		xajax_zurGeoSuche(land, stadt, personen, anreise, abreise, sid, bpreis, waehrung);
		
		
	}
	else
	{
		var personen=document.suche.personen.options[document.suche.personen.selectedIndex].value;
		var anreise=document.suche.anreise.value;
		var abreise=document.suche.abreise.value;
		var sid=document.suche.PHPSESSID.value;
		xajax_zurGeoSuche(0, 0, personen, anreise, abreise, sid, 0, 0);
	}
	xajax.callback.global.onComplete = function()
		{
				window.location.href="index.php?PHPSESSID="+sid+"&PAGE="+document.suche.PAGE.value+"&TYPE=EIGENEGEOSUCHE";
		}	
 }

 
 function dataChanged()
 {
	 //sind schon Objekte in der Vormerkliste?
	 if($("anzVM").innerHTML!='0')
	 {
		//nur wenn der Hinweistext nicht schon dasteht
		if($('dataChanged').style.display=='none')
		{
			//Karte und ggf. Sendebutton des Formulars abschalten
			$('map').style.display = "none";
			$('suche_senden').style.display = "none";
			$('vm_button2').style.display='none';
			$('zurVMListe').style.display='none';
			//Hinweistext anzeigen
			$('dataChanged').style.display = "block";
			$('ausfuehren_button').style.display = "inline";
			$('abbrechen_button').style.display = "inline";
			//Buttons anzeigen
			$('abbrechen_button').innerHTML="<a onclick=\"abbrechen('1'); return false;\" href=\"#\">"+abbrechenTxt+"</a>";
			$('ausfuehren_button').innerHTML='<img src="/pic/'+aktSprache+'/buttons/suchen.png" alt="SUBMIT" onclick="return neueSuche()">';	

			xajax_getMytext('libadmin_geo_hinweis','hwtext');
		}		 
	 }
	 kritChanged=true;
	 
 }
 
 function aktWerte(aktion)
 {
	//0=lesen und speichern, 1=geänderte Werte wiederherstellen, 2=nach Abbruch wegen nicht passender vorgemerkter Objekte die alten Werte wiederherstellen
	 if(aktion==0)
	 {
		 //alte Werte behalten
		altPersonen=aktPersonen;
		altAnreise=aktAnreise;
		altAbreise=aktAbreise;
		altPreis=aktPreis;
		altWaehrung=aktWaehrung;
		altCenter=map.getCenter();
		//alert("altCenter geändert in "+altCenter);
		altZoom=map.getZoom();
		//aktuelle Werte lesen
		aktPersonen=document.suche.personen.selectedIndex;
		aktAnreise=document.suche.anreise.value;
		aktAbreise=document.suche.abreise.value;
		aktPreis=document.suche.preislimit.value;
		aktWaehrung=document.suche.waehrung_id.selectedIndex;
	 }
	 else if(aktion==1)
	 {
		document.suche.personen.selectedIndex=aktPersonen;
		document.suche.anreise.value=aktAnreise;
		document.suche.abreise.value=aktAbreise;
		document.suche.preislimit.value=aktPreis;
		document.suche.waehrung_id.selectedIndex=aktWaehrung;
	 }
	 else
	 {
		document.suche.personen.selectedIndex=altPersonen;
		document.suche.anreise.value=altAnreise;
		document.suche.abreise.value=altAbreise;
		document.suche.preislimit.value=altPreis;
		document.suche.waehrung_id.selectedIndex=altWaehrung;
		map.setCenter(altCenter);
		aktWerte(0);
	 }
 }

 function abbrechen(aktion)
 {
	aktWerte(aktion);
	karteAbdeckungAuf();
	suche.adresse.value='';
	$('map').style.display = "block";
	$('dataChanged').style.display = "none";
	$('suche_senden').style.display='inline';
	$('hwtext').innerHTML = "";
	if(aktion==2)
	{
				sucheObjekte(2);
	}
	else
		zeigeVMButton();
		
 }
 
function zeigeObjektDetails(objekt_id)
 {
	 //falls noch ein Transporter existiert, diesen löschen
	 if($('transporter'))
	{
		if(browser=='IE')
			document.getElementById("box1").removeChild($('transporter'));
		else
			document.getElementById("objektliste").removeChild($('transporter'));
	}
	 //Objekt- oder Vormerkliste?
	 if($('objekt_'+objekt_id) && $('objekt_'+objekt_id).style.display!='none')
	 {
		 //ist in Objektliste
		 var div=objekt_id; 
	 }
	 else
	 {
		 //ist in Vormerkliste
		 var div='VMListe'; 
	 }
	 //Ist der Detailbutton für ein Objekt in der VM Liste geklickt worden? Wenn der Detaildiv versteckt und detailDivAktiv=='VMListe' ist, dann wurde inzwischen das Objekt gewechselt
	 var VMListeObjGewechselt=0;
	 if(detailDivAktiv=='VMListe')
	 {
		 if($('details_VMListe').style.display=='none')
			VMListeObjGewechselt=1;
		else
			VMListeObjGewechselt=2;
	 }
	 
	 
	//bereits geöffneten Div in der Trefferliste schließen
	 if((detailDivAktiv!='' && $('details_'+detailDivAktiv)) || VMListeObjGewechselt==2)
	 {
			$('details_'+detailDivAktiv).style.display = "none";
			$('inhalt_'+detailDivAktiv).innerHTML = "";
			$('detail_'+detailDivAktiv).innerHTML = "";
			$('bewertungen_'+detailDivAktiv).innerHTML = "";
	 }
	//Ist der Detailbutton für ein Objekt in der VM Liste geklickt worden? Wenn der Detaildiv versteckt und detailDivAktiv=='VMListe' ist, dann wurde inzwischen das Objekt gewechselt, es soll auch wieder angezeigt werden (sonst würde nur der Div geschlossen)	
	if(detailDivAktiv!=div || (detailDivAktiv=='VMListe' && VMListeObjGewechselt==1))
	{
		$('detail_'+div).innerHTML = "<span class=\"txt4\">"+detailtext+"</span>";
		$('bewertungen_'+div).innerHTML = "<span class=\"txt2\"><a onclick=\"return geoObjektBewertung('"+objekt_id+"', '"+div+"');\" href=\"#\">"+bewertungstext+"</a></span>";
		 $('details_'+div).style.display = "block";
		 detailDivAktiv=div;
		 xajax_geoObjektDetail(objekt_id,div);
	}
	else
		detailDivAktiv='';
		
	return false;
 }
 
/*function zeigeObjektDetails(objekt_id)
 {
	//bereits geöffneten Div schließen
	 if(detailDivAktiv!='')
	 {
		 if($('details_'+detailDivAktiv))
		 {
			$('details_'+detailDivAktiv).style.display = "none";
			$('inhalt_'+detailDivAktiv).innerHTML = "";
			$('detail_'+detailDivAktiv).innerHTML = "";
			$('bewertungen_'+detailDivAktiv).innerHTML = "";
		 }
		
	 }
		
	if(detailDivAktiv!=objekt_id)
	{
		$('detail_'+objekt_id).innerHTML = "<span class=\"txt4\">"+detailtext+"</span>";
		$('bewertungen_'+objekt_id).innerHTML = "<span class=\"txt2\"><a onclick=\"return geoObjektBewertung('"+objekt_id+"');\" href=\"#\">"+bewertungstext+"</a></span>";
		 $('details_'+objekt_id).style.display = "block";
		 detailDivAktiv=objekt_id;
		 xajax_geoObjektDetail(objekt_id);
	}
	else
		detailDivAktiv='';
		
	return false;
 }*/
 
 function geoObjektBewertung(objekt_id)
 {
	 //Objekt- oder Vormerkliste?
	 if($('objekt_'+objekt_id) && $('objekt_'+objekt_id).style.display!='none')  //ist in Objektliste
		 var div=objekt_id; 
	 else   																 //ist in Vormerkliste
		 var div='VMListe'; 
	 $('detail_'+div).innerHTML = "<span class=\"txt2\"><a onclick=\"return geoObjektDetail('"+objekt_id+"', '"+div+"');\" href=\"#\">"+detailtext+"</a></span>";
	 $('bewertungen_'+div).innerHTML = "<span class=\"txt4\">"+bewertungstext+"</span>";
	xajax_geoObjektBewertung(objekt_id, div);
	return false;
 }

function geoObjektDetail(objekt_id)
{
	//Objekt- oder Vormerkliste?
	 if($('objekt_'+objekt_id) && $('objekt_'+objekt_id).style.display!='none')  //ist in Objektliste
		 var div=objekt_id; 
	 else   																 //ist in Vormerkliste
		 var div='VMListe'; 
	$('detail_'+div).innerHTML = "<span class=\"txt4\">"+detailtext+"</span>";
	$('bewertungen_'+div).innerHTML = "<span class=\"txt2\"><a onclick=\"return geoObjektBewertung('"+objekt_id+"', '"+div+"');\" href=\"#\">"+bewertungstext+"</a></span>";
	xajax_geoObjektDetail(objekt_id, div);
	return false;
}

function objektVormerken(sid, objekt_id, aktion, direktbuchen)
{
	objektVormerkenCalled=0;
	var trefferzeigen=0;
	if($('objektliste') && $('objektliste').innerHTML!='')
		trefferzeigen=1;
	//wenn vorgemerkt werden soll und schon die Fehlermeldung vorhanden ist, dorthin scrollen
	if( aktion==1 && $("fehlermeldung") && $("fehlermeldung").value!='')
	{
		window.scrollTo(0,0);
	}
	else
	{
		//alert(sid+", "+objekt_id+", "+aktion+", "+direktbuchen+"|");
		xajax_objektVormerken(sid, objekt_id, aktion, direktbuchen, trefferzeigen);
		xajax.callback.global.onComplete = function()
		{	
			//nur abarbeiten, wenn die Funktion das erste Mal aufgerufen wurde
			if(objektVormerkenCalled==0)
			{
				objektVormerkenCalled=1;
				//jetzt gibt es doch eine Fehlermeldung?
				if(aktion==1 && $("fehlermeldung") && $("fehlermeldung").value!='')
				{
					//zur Fehlermeldung scrollen
					window.scrollTo(0,0);
				}
					
				//Es wurde keine Fehlermeldung erzeugt
				else if(aktion==1 && !$("fehlermeldung"))
				{
					//wenn Browser bekannt und erlaubt, prüfen ob wandern=null und kein Transporter existiert
					if(browser!='unbekannt')
					{
						var scroll=$('objektliste').scrollTop;
						//wenn noch ein Transporter unterwegs ist, Intervall löschen
						if(wandern!=null)
						{
							//Bewegung stoppen
							window.clearInterval(wandern);
							wandern=null;	
						}
						//wenn noch ein Transporter existiert, diesen löschen
						if($('transporter'))
						{
							if(browser=='IE')
								document.getElementById("box1").removeChild($('transporter'));
							else
								document.getElementById("objektliste").removeChild($('transporter'));
						}
						//falls die Detailanzeige geöffnet ist, diese schließen
						if($('details_'+objekt_id).style.display!='none')
							zeigeObjektDetails(objekt_id);
						//Transporter erzeugen und positionieren
						var c = $('objekt_'+objekt_id).cloneNode(true);
						c.id = "transporter";
						//für IE müssen die Koordinaten des zu klonenden Divs vor den Abschalten erfragt und die Startwerte gesetzt werden
						if(browser=='IE')
						{
							var koordCloneParent=getPageCoords('objekt_'+objekt_id);
							cloneY=koordCloneParent.y-scroll;
							$("box1").insertBefore(c, $('box1_head'));
							$('transporter').style.top=cloneY;
						}
							
						else
							document.getElementById("objektliste").insertBefore(c, $('objekt_'+objekt_id));
						$('transporter').style.position='absolute';
						$('transporter').style.backgroundColor='#ebf2fa';
						$('transporter').style.width='280px';
						$('transporter').style.zIndex='100';
						$('transporter').style.border='1px dotted blue';
						var koordClone=getPageCoords('transporter');
						if(browser=='FF')
							cloneY=koordClone.y-140;
						else if(browser=='Chrome'  || browser=='Opera'  || browser=='Safari')
							cloneY=koordClone.y-scroll-140;
					}
					//Objektdiv und ggf. Trenner abschalten
					if($('objekt_'+objekt_id))
					{
						$('objekt_'+objekt_id).style.display = "none";
						if($('trenner_'+objekt_id))
							$('trenner_'+objekt_id).style.display = "none";
						$('anzVersteckt').innerHTML=parseInt($('anzVersteckt').innerHTML)+1;
						var objekte=$('anzahl').innerHTML;
						var versteckt=$('anzVersteckt').innerHTML;
						if(objekte-versteckt<1)
						{
							$('anzahl').innerHTML='';
							xajax_getMytext('libadmin_schon_hinzugefuegt','libobjektegefunden');
						}
						else
							$('anzahl').innerHTML=parseInt($('anzahl').innerHTML)-parseInt($('anzVersteckt').innerHTML);
					}
					//in zulässigen Browsern nun den Klon hochwandern lassen
					if(browser!='unbekannt')
					{
						//nun aber los
						wandern=window.setInterval("bewege()",15);
					}
					

				}
				//Objekt aus der Vormerkliste gelöscht, der Div ist vorhanden->diesen wieder einschalten
				else if(aktion==0 && $("objekt_"+objekt_id))
				{
					if($('objekt_'+objekt_id))
						$('objekt_'+objekt_id).style.display = "block";
					if($('trenner_'+objekt_id))
							$('trenner_'+objekt_id).style.display = "block";
					$('anzVersteckt').innerHTML=parseInt($('anzVersteckt').innerHTML)-1;
					$('anzahl').innerHTML=parseInt($('anzahl').innerHTML)-parseInt($('anzVersteckt').innerHTML);
				}
				//Objekt aus der Vormerkliste gelöscht, der Div ist nicht vorhanden->Ergebnisliste neu laden
				else if( aktion==0)
				{
					
					sucheObjekte(0);
				}
			}
			
			zeigeVMButton();	
		}
	}
	return false
}
function bewege()
{
	if (document.getElementById) if($('transporter'))transp=document.getElementById("transporter").style;
	else if (document.all)transp=document.all["transporter"].style;
	else if (document.layers)transp=document.layers["transporter"];
	else window.clearInterval(wandern);
	if(transp){transp.top=cloneY;cloneY-=8;}
	if(cloneY<15 || !transp)
	{
		window.clearInterval(wandern);
		wandern=null;
		//Transporter zusammenklappen
		if($('transporter'))
			var falten=Effect.Fold('transporter');
	}	
}

function zeigeMarkierung(lat,lon)
{
	var myLatLng = new google.maps.LatLng(lat, lon);
					center_marker.setPosition(myLatLng);
					center_marker.setIcon('/pic/marker_gruen.gif');
					center_marker.setZIndex(10);
					center_marker.setVisible(true);
}


function zeigeObjekt(text)
{
	//[0]=Status, [1]=Länge, [2]=Breite, [3]=Objekt_id// [4]=Objektnr, [5]=Gastgebernr, [6]=Objektpic, [7]=Preise, [8]=Preisbeschriftung in aktueller Sprache, [9]=1->frei, 0->nicht verfügbar
	var antwort=text.split(":TR:");
	if(antwort[0]=='Objekt')
	{
		markObj=antwort[3];
		verschieben=true;
		newlatlng = new google.maps.LatLng(antwort[2], antwort[1]);;
		map.setCenter(newlatlng);
		map.setZoom(15);
		sucheZoom(0,0);
	}
	else
	{
		alert(text);
	}

}

function zeigeInfoWindow(text)
{
	//[0]=1->frei,0->nicht verfügbar; [1]=Länge; [2]=Breite; [3]=Objektnr; [4]=Objekt_ID; [5]=GG; [6]=pic; [7]=Preise; [8]=Preisbeschriftungen
	//wenn nicht verfügbar, wird nur bis [5] gesendet, das ist dann der Infotext für "belegt"	
	antwort=text.split(":TR:");
	infowindowPosition = new google.maps.LatLng(antwort[2], antwort[1]);
	if(antwort[0]==1)
	{
		infoInhalt="<div style='float:left; height: 80px; width:170px;'>&nbsp;&nbsp;&nbsp;&nbsp;"+antwort[3]+"<br />";
		infoInhalt+="<textarea name='persZahl' cols='23' rows='4' wrap='off' readonly='readonly' class='txt10' style='border:0px; overflow:auto; '>";
		var preise=antwort[7].split(":TR1:");
		var beschriftung=antwort[8].split(":TR1:");
		for(i=0; i<preise.length; i++)
		{
			var preis=preise[i].split(":TR2:");
			infoInhalt+=preis[0]+"&nbsp;"+beschriftung[0]+"&nbsp;"+preis[1]+"&nbsp;"+beschriftung[1];
			if(i<(preise.length-1))
			{
				infoInhalt+="\n";
			}
			
		}
		infoInhalt+="</textarea></div>";
		infoInhalt+="<img width='70' title='bild_klein' src='"+antwort[6]+"' style='margin-top:14px;'/>";
		infowindowContent=infoInhalt;
		rahmenEin(antwort[4]);
	}
	else
	{
				infoInhalt="<div style='float:left; height: 100px; width:250px;'>&nbsp;&nbsp;&nbsp;&nbsp;"+antwort[3]+"<br /><br /><span class='txt10'>";
				infoInhalt+=antwort[5];
				infoInhalt+="</span></div>";
				infowindowContent=infoInhalt;
	}
	infowindow.setPosition(infowindowPosition);
	infowindow.setContent(infowindowContent);
	infowindow.open(map);
}

function sucheZoom(anzStaedte, anzObjekte)
{
	if(anzObjekte>0 && anzObjekte<=geosuche_maxObjekte && anzStaedte==1)
	{
		//die Anzahl Treffer ist i.O., also Zoomsuche beenden und Objektsuche starten, Markierung ist zu setzten
		if(verschieben==true)
		{
			
			var bounds=map.getBounds();
			var linksOben=bounds.getNorthEast();
			var rechtsUnten=bounds.getSouthWest();
			var lat=linksOben.lat();
			var lof=linksOben.lng();
			var laf=rechtsUnten.lat();
			var lot=rechtsUnten.lng();
			var mitte=map.getCenter();
			var mitteBreite=mitte.lat();
			var mitteLaenge=mitte.lng();
			//niedrigsten Wert von Länge und Breite speichern
			var laenge1=lof<lot?lof:lot;
			var breite1=laf<lat?laf:lat;
			//Verschiebung der Karte nach um 1/3 nach NO berechnen
			var neuMitteBreite=mitteBreite+((mitteBreite-breite1)/3);
			var neuMitteLaenge=mitteLaenge+((mitteLaenge-laenge1)/3);
			newlatlng = new google.maps.LatLng(neuMitteBreite, neuMitteLaenge);
			map.setCenter(newlatlng);
			verschieben=false;
			//Trefferzahl prüfen
			sucheZoom(0,0);
			return;
		}
		zoomSuche=false;
		sucheObjekte(0);
	}
	else
	{
		if(anzObjekte>0 || anzStaedte>1)
		{
			//die Anzahl ist zu hoch oder es ist mehr als eine Stadt im Kartenausschnitt, also Zoom vergrößern
			var newZoom=map.getZoom();
			newZoom++;
			map.setZoom(newZoom);
		}		
		//es muß nach der Trefferzahl gefragt werden
		var bounds=map.getBounds();
		var linksOben=bounds.getNorthEast();
		var rechtsUnten=bounds.getSouthWest();
		var lat=linksOben.lat();
		var lof=linksOben.lng();
		var laf=rechtsUnten.lat();
		var lot=rechtsUnten.lng();
		xajax_trefferzahl(lof, laf, lot, lat);
	}
	
}
function setDivSize()
{
	if($("box1"))
	{
		//x = document.body.clientHeight;
		//x = x-170;
		//alert(x);
		document.getElementById("objektliste").style.height = 530;
	}
}

function zeigeVMButton()
{
	if($("anzVM").innerHTML=='0' || $('dataChanged').style.display!='none')
	{
		//Beschriftung "Pflichtangaben" anzeigen, Buttons über und unter Karte für VM-Liste abschalten
		$('pflichtangaben').style.display='inline';
		$('vm_button2').style.display='none';
		$('zurVMListe').style.display='none';
	}
	else
	{
			//Beschriftung "Pflichtangaben" abschalten, Buttons über und unter Karte für VM-Liste anzeigen
			$('pflichtangaben').style.display='none';
			$('vm_button2').style.display='inline';
			$('zurVMListe').style.display='inline';		
	}
}

function getPageCoords(elementId) 
{
     var element;
     if (document.all)
       element = document.all[elementId];
     else if (document.getElementById)
       element = document.getElementById(elementId);
     if (element) {
       var coords = {x: 0, y: 0};
       do {
		if(element.currentStyle)
		{
			if(element.currentStyle.position!='relative')
			{
				coords.x+=element.offsetLeft;
				coords.y+=element.offsetTop;
			}
		}
		else
		{
			coords.x+=element.offsetLeft;
			coords.y+=element.offsetTop;
		}

         element=element.offsetParent;
       }
       while(element);
       return coords;
     }
     else
	  return null;
	 
       
} 

function holeTeaser()
{
	xajax_holeTeaser(document.suche.PHPSESSID.value);
}

function zaehler(feld, anzeige, maxAnzahl){
	var anzahl=feld.value.length;
	if (anzahl > maxAnzahl){
		feld.value= feld.value.substring(0, maxAnzahl);
		feld.scrollTop = feld.scrollHeight;
		//document.forms[formular].elements[feld].scrollIntoView();
		anzahl=maxAnzahl;
	}
	$(anzeige).innerHTML=maxAnzahl-anzahl;	
}

function friendMail(string, objekt){
	//string 0=Überschrift vor Objektnummer; 1=Überschrift nach Objektnummer; 2=Absnermail; 3=Empfängermail; 4=Captchabeschriftung
	//wenn String leer ist, Text holen
	if(string==''){
		xajax_getTextSendafriend(objekt);	
	}
	else{
		//string 0=Überschrift; 1=Absendermail; 2=Empfängermail; 3=Textfeldbeschriftung; 4=Hinweistext; 5=Kopie; 6=Captchabeschriftung; 7=Abbrechen; 8=Senden; 9=Textareainhalt
		//wenn fertig, ist string 0='fertig'; 1=Meldungstext; 2=Schliessen
		var texte=string.split(":TR:");
		if(texte[0]=='fertig'){
			var inhalt='<img src=\"/pic/spacer.gif\" width=\"20\" height=\"100\" /><center>';
			inhalt+='<input type="text" name="mitteilung" value="'+texte[1]+'" style="border:none; width:400px; text-align:center; background:#ebf2fa; font-size:11px; font-weight: bold; color: #ff6600; font-family:Verdana,Arial,Helvetica,sans-serif;" readonly="readonly"><br />';
			inhalt+="<img src=\"/pic/spacer.gif\" width=\"20\" height=\"50\" /><button type=\"button\" onclick=\"$('sendafriend').style.display='none'\" >"+texte[2]+"</button></center>";
			$('sendafriend').innerHTML=inhalt;
		}
		else{
			var captcha=getCaptchaAufgabe();
			var inhalt='<img src=\"/pic/spacer.gif\" width=\"20\" height=\"100\" /><center>';
			inhalt+='<input type="text" name="ueberschrift" value="'+texte[0]+'" style="border:none; width:400px; text-align:center; background:#ebf2fa; font-size:11px; font-weight: bold; color: #ff6600; font-family:Verdana,Arial,Helvetica,sans-serif;" readonly="readonly"><br /><br />';
			inhalt+='<form name="sendafriend" action="#" onsubmit="sendFriendMail(); return false;"><input type="hidden" name="objekt" value="'+objekt+'" />';
			inhalt+="<input type=\"text\" name=\"abs_beschriftung\" value=\""+texte[1]+"\" style=\"border:none; width:250px; text-align:center; background:#ebf2fa; font-size:11px; font-weight: bold; color: #ff6600; font-family:Verdana,Arial,Helvetica,sans-serif;\" readonly=\"readonly\"><br />";
			inhalt+='&nbsp;<input name="absender" type="text" value"absender" /><br />';
			inhalt+='<input type="text" name="empf_beschriftung" value="'+texte[2]+'" style="border:none; width:250px; text-align:center; background:#ebf2fa; font-size:11px; font-weight: bold; color: #ff6600; font-family:Verdana,Arial,Helvetica,sans-serif;" readonly="readonly"><br />';
			inhalt+='&nbsp;<input name="empfaenger" type="text" /><br /><br />';
			inhalt+='<input type="text" value="'+texte[3]+'" style="border:none; width:400px; text-align:center; background:#ebf2fa; font-size:11px; font-weight: bold; color: #ff6600; font-family:Verdana,Arial,Helvetica,sans-serif;" readonly="readonly"><br />';
			inhalt+='<textarea name="mitteilung" cols="40" rows="10">'+texte[9]+'</textarea><br />'
			inhalt+='<input type="text" name="hinweis" value="'+texte[4]+'" style="border:none; width:400px; text-align:center; background:#ebf2fa; font-size:11px; font-weight: bold; color: #ff6600; font-family:Verdana,Arial,Helvetica,sans-serif;" readonly="readonly"><br />';
			inhalt+='<input type="checkbox" name="kopie" value="1"> <input type="text" name="kopie_text" value="'+texte[5]+'" style="border:none; width:200px; text-align:left; background:#ebf2fa; font-size:11px; font-weight: bold; color: #ff6600; font-family:Verdana,Arial,Helvetica,sans-serif;" readonly="readonly"><br /><br />';
			//inhalt+='<input type="checkbox" name="kopie" value="kopie"> '+texte[6]+'<br /><br />';
			inhalt+='<input type="text" name="captcha_text" value="'+texte[6]+'" style="border:none; width:400px; text-align:center; background:#ebf2fa; font-size:11px; font-weight: bold; color: #ff6600; font-family:Verdana,Arial,Helvetica,sans-serif;" readonly="readonly"><br />';
			inhalt+='<input type="text" name="value1" value="'+captcha[0]+'" style="border:none; background:#ebf2fa; width:20px; font-size:11px; text-align:right; font-weight: bold; color: #ff6600; font-family:Verdana,Arial,Helvetica,sans-serif;" readonly="readonly">';
			inhalt+='<input type="text" name="rz" value="'+captcha[1]+'" style="border:none; background:#ebf2fa; width:10px; font-size:11px; text-align:center; font-weight: bold; color: #ff6600; font-family:Verdana,Arial,Helvetica,sans-serif;" readonly="readonly">';
			//inhalt+='<span id="rz">'+captcha[1]+'</span>';
			inhalt+='<input type="text" name="value2" value="'+captcha[2]+'" style="border:none; background:#ebf2fa; width:20px; font-size:11px; text-align:right; font-weight: bold; color: #ff6600; font-family:Verdana,Arial,Helvetica,sans-serif;" readonly="readonly">';
			inhalt+='<input type="text" name="=" value="=" style="border:none; background:#ebf2fa; width:10px; font-size:11px; text-align:right; font-weight: bold; color: #ff6600; font-family:Verdana,Arial,Helvetica,sans-serif;" readonly="readonly">';
			inhalt+='&nbsp;<input type="text" name="ergebnis" size="1" maxlength="3" autocomplete="off" /><br /><br />';
			inhalt+="<button type=\"button\" onclick=\"$('sendafriend').style.display='none'\" >"+texte[7]+"</button><img src=\"/pic/spacer.gif\" width=\"40\" height=\"5\" /><input type=\"submit\" value=\""+texte[8]+"\" />";
			inhalt+="</form></center>";
			$('sendafriend').innerHTML=inhalt;
			$('sendafriend').style.display='block';
			document.sendafriend.mitteilung.focus();
			document.sendafriend.mitteilung.select();
		}
	}
}

function sendFriendMail()
{
	var fehlerfrei=true;
	var form=document.sendafriend;
	//mailadressen prüfen
	if(validateEmail(form.absender.value)==false){
		form.abs_beschriftung.style.color='red';
		form.absender.style.border='1px solid red';
		fehlerfrei=false;
	}
	if(validateEmail(form.empfaenger.value)==false){
		form.empf_beschriftung.style.color='red';
		form.empfaenger.style.border='1px solid red';
		fehlerfrei=false;
	}
	//Captcha prüfen
	var erg=0;
	if(form.rz.value=='-')
		erg=parseInt(form.value1.value)-parseInt(form.value2.value);
	else
		erg=parseInt(form.value1.value)+parseInt(form.value2.value);
	if(erg!=form.ergebnis.value){
		var zahlen=getCaptchaAufgabe();
		form.captcha_text.style.color='red';
		form.ergebnis.style.border='1px solid red';
		form.value1.value=zahlen[0];
		form.rz.value=zahlen[1];
		form.value2.value=zahlen[2];
		fehlerfrei=false;
	}
	//Absenden, wenn kein Fehlerfestgestellt wurde
	if(fehlerfrei==true){
		//absenden
		var personen=document.suche.personen.options[document.suche.personen.options.selectedIndex].value;
		var anreise=document.suche.anreise.value;
		var abreise=document.suche.abreise.value;
		var sid=document.suche.PHPSESSID.value; 
		xajax_send_a_friend(form.absender.value, form.empfaenger.value, form.mitteilung.value, form.kopie.checked, form.objekt.value, personen, anreise, abreise, sid);
		//Div leeren und abschalten
		//$('sendafriend').innerHTML='';
		//$('sendafriend').style.display='none';
	}
		
	
}

function getCaptchaAufgabe(){
	var zahl1=1 + 49*(Math.random());
	zahl1=Math.round(zahl1);
	var zahl2=1 + 9*(Math.random());
	zahl2=Math.round(zahl2);
	a = Math.random();
	a = Math.round(a);
	var rechenzeichen=a==0?'-':'+';
	if(rechenzeichen=='-'){
		if(zahl1<zahl2){
			var tmp=zahl1;
			zahl1=zahl2;
			zahl2=tmp;
		}
	}
	return [zahl1, rechenzeichen, zahl2];
}

function validateEmail(email) {

  var strReg = "^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$";

  var regex = new RegExp(strReg);

  return(regex.test(email));

}

function checkBrowser()
{
		if(navigator.userAgent.search(/Firefox/)!=-1)
		browser='FF';
		else if(navigator.userAgent.search(/Opera/)!=-1)
			browser='Opera';
		else if(navigator.userAgent.search(/MSIE/)!=-1)
			browser='IE';
		else if(navigator.userAgent.search(/Chrome/)!=-1)
			browser='Chrome';
		else if(navigator.userAgent.search(/Safari/)!=-1)
			browser='Safari';
		else
			browser='unbekannt';
		var sid=document.suche.PHPSESSID.value; 
		xajax_merkeBrowser(sid, navigator.userAgent);
}


