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 geosucheInarbeit=false;
var randGeholt=false;
var zeit=new Date();
var start=zeit.getTime();
var wandern=null;
var zeitstempel=null;
var koordsCloneParent=null;
var cloneY=0;
var browser='';
var ende_horizontal=0;
var scrolle_horizontal=false;
var myMarker=new Array();

function checkForm(){
	var reg = /^(\d{2}).(\d{2}).(\d{4})$/;
	var anreiseArray = document.suche.anreise.value.match(reg);
	//var abreiseArray = document.suche.abreise.value.match(reg);
	if(anreiseArray==null){
		//bei Bedarf mit Fehlermeldungen ergänzen
		return false;
	}
		
	else{
		var abreiseArray = document.suche.abreise.value.match(reg);
		if(abreiseArray==null){
			$('abreise').value=$('anreise').value;
			setzeDatum();
		}
			
		var testAnreise=isDate($('anreise').value, 'anreise');
		var testAbreise=isDate($('abreise').value, 'abreise');
		if(testAnreise==5 && testAbreise==5){
			var jetzt = new Date();
			var date1=$('anreise').value.split(".");
			var date2=$('abreise').value.split(".");	
			var datumAn=new Date(date1[2],date1[1]-1,date1[0]);
			var datumAb=new Date(date2[2],date2[1]-1,date2[0]);
			if(datumAn<jetzt){
				$("errtext").innerHTML="<b>"+errorAnreiseZukunft+"</b>";
				return false;
			}
			if(datumAb<=datumAn){
				$("errtext").innerHTML="<b>"+errorAbreiseVorAnreise+"</b>";
				return false;
			}
			//hier weitere Prüfungen, falls nötig (z.B Gesamtpreis)
			return true;
		}
		else{
			//Fehlermeldung hier nicht nötig, die erledigt isDate()
			return false;
		}
			
	}
}

function sucheObjekte(delObj) {
	if(browser=='')	{
		checkBrowser();
	}
	if($('box1_head'))
		$('box1_head').innerHTML='&nbsp;';
		if($('objektliste'))
		$('objektliste').innerHTML='&nbsp;';
	var mitte=map.getCenter();
	var mitteBreite=mitte.lat();
	var mitteLaenge=mitte.lng();
	var aktZoom=map.getZoom();
	if(map.getZoom()==1){
		if(neu==false) load(mitteLaenge, mitteBreite, aktZoom);
		zeigeObjMarker(raster);
		return false;
	}
	if(!$('suche_senden'))
		return;
	geosucheInarbeit=true;
	//alert("lösche Marker");
	deleteMarker();
	//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(sid, lof, laf, lot, lat, aktZoom, delObj, anreise, abreise, personen, bpreis, waehrung, markObj);
	return false;
 }
 
  function zeigeObjMarker(text) {
			zeit = new Date();
			var ende = zeit.getTime();
			var dauer=ende-start;
			//alert(" Dauer bis Anzeige: "+dauer/1000+" s");
			zeit = new Date();
			start=zeit.getTime();
			var text1=text.split(":TR1:");
			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:""
							});	
						myMarker.push(marker);
						bobbleClick(marker);
						}	
					}
					break;
				case "Objekte":
					marker=null;
					center_marker.setVisible(false);
					if(typeof text1[1]=='undefined'){
						geosucheInarbeit=false;
						return;
					}
					var objekte=text1[1].split(":TR2:");
					if(objekte=='leer')
						objekte='';
					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:");
						//Marker für neue Objekte erstellen
						mylatlng = new google.maps.LatLng(objekt[3], objekt[2]);
						var text=objekt[1];
						var markername1=objekt[0].split(",");
						var markername2=markername1[0];
						marker = new google.maps.Marker({
							position: mylatlng,
							clickable: true,
							map: map, 
							icon: '/pic/marker/ebab.png',
							title:""+text,
							zIndex: 1
						}); 
						myMarker.push(marker);
						zeigeDiv(marker, objekt[0]);
					}
					if(markObj!=''){
						zeigeInfoWindow(text1[2]);
						markObj='';
						//document.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 zeit_stempel(sendezeit){
	var zeitstempel=sendezeit;
 }
 function bobbleClick(marker) {
		zeit=new Date();
		start=zeit.getTime();
	 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());
		 if(suchen==null)
			sucheObjekte(0);
			zeit=new Date();
			zeit = new Date();
		start=zeit.getTime();
	});
 }
 
 function deleteMarker(){
	for(var i=0; i<myMarker.length; i++){
		myMarker[i].setMap(null);
	}
	myMarker=new Array();
 
 }

 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(document.suche.PHPSESSID.value, laf1, lat1, lot1, lof1);
	 }
 }
 
 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() {
	//Größe Karte feststellen
	//alert($('map').offsetWidth+", "+$('map').offsetHeight);
	$('abdeckung').style.width=$('map').offsetWidth+'px';
	$('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() {
	//Maximalpreis prüfen
	if(isNaN(document.suche.preislimit.value)){
		if(aktSprache=='ger')
			$("errtext").innerHTML="<br /><b>F&uuml;r den Gesamtpreis bitte nur Zahlen verwenden</b>";
		else
			$("errtext").innerHTML="<br /><b>F&uuml;r den Gesamtpreis bitte nur Zahlen verwenden</b>";
		return false;
	}
	//Datum prüfen
	var testAnreise=isDate(document.getElementById('anreise').value, 'anreise');
	if(testAnreise!=5){
		document.suche.anreise.focus();
		//alert('ende1');
		return false;
	}
	var testAbreise=isDate(document.getElementById('abreise').value, 'abreise');
	if(testAbreise!=5){
		document.suche.abreise.focus();
			//alert('ende2');
		return false;
	}
	
	//Aktualität des Datums prüfen
	//Anreise nicht in der Vergangenheit?
	var heute=new Date();
	var arrAnreise=document.getElementById('anreise').value.split(".");
	var datumAnreise=new Date(arrAnreise[2],arrAnreise[1]-1,arrAnreise[0]);
	if(datumAnreise<heute){
		$("errtext").innerHTML="<b>"+errorAnreiseZukunft+"</b>";
		return false;
	}
	//Anreise vor Abreise?
	var arrAbreise=document.getElementById('abreise').value.split(".");
	var datumAbreise=new Date(arrAbreise[2],arrAbreise[1]-1,arrAbreise[0]);
	if(datumAnreise.getTime() >= datumAbreise.getTime())
	{
		
		//Anreisetag um 1 erhöhen
			var neuAbreise=new Date(arrAnreise[2],arrAnreise[1]-1,parseInt(datumAnreise.getDate())+1,00,00,00);
			var tag=neuAbreise.getDate();
			var monat=parseInt(neuAbreise.getMonth(), 10)+1;
			if(tag.toString().length==1) tag="0"+tag;
			if(monat.toString().length==1) monat="0"+monat;
			document.suche.abreise.value=tag+"."+monat+"."+neuAbreise.getFullYear();
		//return false;
	}

	aktWerte(0);
	$("errtext").innerHTML='';
	$('map').style.display = "block";
	//Unterscheidung Geosuche oder Kriterien geändert wurden
	if(document.suche.adresse.value!='') {
		codeAddress();
	}
	else {
		//Hinweistext abschalten
		$('dataChanged').style.display = "none";
		//Suchen-Button wieder einblenden
		$('suche_senden').style.display='inline';
		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(sid, land, stadt, personen, anreise, abreise, 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(sid, 0, 0, personen, anreise, abreise, 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(document.suche.PHPSESSID.value, '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();
	document.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(document.suche.PHPSESSID.value, objekt_id,div);
	}
	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(document.suche.PHPSESSID.value, 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(document.suche.PHPSESSID.value, 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") && $('objektliste')) {
					//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(document.suche.PHPSESSID.value, '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 && map!=null) {
					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]=Summe_text; [8]=Preis;[9]=Wärungszeichen; [10]=Sprache, [11]=SID, [12]=wenn 1, dann schon in VM-Liste, sonst 0 (wenn nicht Plugin, dann 'noPlugin')
	//wenn nicht verfügbar, wird nur bis [5] gesendet, das ist dann der Infotext für "belegt", [6]-[8] entspricht [10] -[12]
	antwort=text.split(":TR:");
	infowindowPosition = new google.maps.LatLng(antwort[2], antwort[1]);
	if(antwort[0]==1) {
		infoInhalt="<div style='height: 120px; width:280px;'><div style='float:left; height: 80px; width:170px;'><br />&nbsp;&nbsp;&nbsp;&nbsp;"+antwort[3]+"<br />";
		infoInhalt+='<span class="txt10">'+antwort[7]+" "+antwort[8]+" "+antwort[9]+"<span><br />";

		if(antwort[10]!='0'){
			//Objekt schon vorgemerkt?
			if(antwort[12]==1){
				//infoInhalt+="<br /><br /><br /><a href=\"javascript:;\" onclick=\"xajax_loadAnfrageForm('"+antwort[11]+"', ''); infowindow.close();\">anfragen</a>";
				infoInhalt+="<br /><br /><br /><a href=\"javascript:;\" onclick=\"xajax_loadAnfrageForm('"+antwort[11]+"', ''); infowindow.close();\"><img class=\"abstand_buttons\" title=\"anfragen\" src=\"/pic/"+antwort[10]+"/buttons/vorgemanfragen.png\"></a>";
			}
			else if(antwort[12]!='noPlugin')
				infoInhalt+="<a onclick=\"xajax_objektVormerken('"+antwort[11]+"','"+antwort[4]+"','1','0','0'); infowindow.close();\" href=\"#\"><img class=\"abstand_buttons\" title=\"vormerken\" src=\"/pic/"+antwort[10]+"/buttons/vormerken.png\"></a>";
		}
		infoInhalt+="</div>";
		infoInhalt+="<img width='70' title='bild_klein' src='"+antwort[6]+"' style='margin-top:14px;'/>";
		//Button anfügen?
		infowindowContent=infoInhalt;
		setTimeout("rahmenEin("+antwort[4]+")", 1500);
	}
	else {
		infoInhalt="<div style='float:left; height: 120px; width:280px;'>&nbsp;&nbsp;&nbsp;&nbsp;"+antwort[3]+"<br /><br /><span class='txt10'>";
		infoInhalt+=antwort[5]+"</span>";
		//Button anfügen?
		//alert(antwort[6]);
		if(antwort[6]!='noPlugin'){
			infoInhalt+="<br /><br /><img src=\"/pic/spacer.gif\" width=\"50\" height=\"1\" /><img onclick=\"document.getElementById('objektanzeige').style.display='none'; document.getElementById('formular').style.display='block'; infowindow.close();\" title=\"Suche\" alt=\"Suche\" src=\"/pic/"+antwort[6]+"/navig/suche_m.png\">";
		}
		infoInhalt+="</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(document.suche.PHPSESSID.value, lof, laf, lot, lat);
	}
}

function zeigeVMButton() {
	if ($("pflichtangaben") && !$("formular")) {
		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(document.suche.PHPSESSID.value, 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(sid, form.absender.value, form.empfaenger.value, form.mitteilung.value, form.kopie.checked, form.objekt.value, personen, anreise, abreise);
		//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';
}

function ladeGeosucheNe(laenge, breite) {
//alert(laenge+", "+breite+", "+browser);
	neu=false;
	document.suche.TYPE.value='GEOSUCHE';
	//alert(suchen);
	load(laenge, breite, 12);
	center_marker.setVisible(false);
	sucheObjekte(0);
}

function codeAddress() {
	if(geocoder!=null)
	{
		var address = document.suche.adresse.value;
		var Suche = /^[A-Z, a-z]{4}[1-9][0-9]{0,2}-[1-9][0-9]{0,3}/;
		var Ergebnis = Suche.test(address);
		if (Ergebnis == true)
		{
			zoomSuche=true;
			//map.setZoom(15);
			document.getElementById('map').style.display = "block";
			document.getElementById('dataChanged').style.display = "none";
			kritChanged=true;			
			xajax_objektGeo(document.suche.PHPSESSID.value, address);
		}
		else {
			geocoder.geocode( { address: address}, function(results, status) {
			  if (status == google.maps.GeocoderStatus.OK && results.length) {
				//Rückgabe prüfen, es kann auch ein leeres Objekt zurückkommen
				if (status != google.maps.GeocoderStatus.ZERO_RESULTS)
				{
					aktWerte(0);
					document.getElementById('dataChanged').style.display = "none";
					
					if(typeof(results[0].geometry.bounds)=='object')
						map.fitBounds(results[0].geometry.bounds);
					else
						map.setZoom(15);
					map.setCenter(results[0].geometry.location);
					var newZoom=map.getZoom();
					if(newZoom<12)
						newZoom+=1;
					if(newZoom>15)
						newZoom=15;
					kritChanged=true;
					$('suche_senden').style.display='inline';
					//document.suche.adresse.value='';
					map.setZoom(newZoom);
					center_marker.setPosition(results[0].geometry.location);
					//alert(newZoom);
				}
			  } 
			  else 
			  {
				alert("Geocode was unsuccessful due to: " + status);
			  }
			});
		//alert(map.getBounds());
		} 
		return false;
	}
}

function rollen(wohin){
	//ist rollen noch im Gange? Wenn ja, stoppen
	if(scrolle_horizontal!=false){
		window.clearInterval(scrolle_horizontal);
		scrolle_horizontal=false;
	}
	//nur wenn es die Buttons und die Tabelle gibt
	if($('links') && $('rechts') && $('tabelle')){
		//Ende festlegen, dann Intervall starten
		if(wohin=='links'){
			ende_horizontal=parseInt($('box1').scrollLeft)-(parseInt($('box1').offsetWidth)-55);
			//Kein Linksaußen zulassen!
			if(ende_horizontal<0)
				ende_horizontal=0;
		}
		else{
			ende_horizontal=parseInt($('box1').scrollLeft)+parseInt($('box1').offsetWidth)-55;
			//Kein Rechtsaußen zulassen!
			if(ende_horizontal+parseInt($('box1').offsetWidth)>parseInt($('tabelle').offsetWidth))
				ende_horizontal=parseInt($('tabelle').offsetWidth)-parseInt($('box1').offsetWidth);
		}
		//verschieben, die erste Zahl ist ist die Schrittweite, die zweite Zahl die Wiederholungsfrequenz in ms. Bei Bedarf anpassen
		scrolle_horizontal=window.setInterval("rolle_horizontal('50', '"+wohin+"')",50);
	}	
}
function rolle_horizontal(step, wohin){
	//einen Schritt weiter
	if(wohin=='links'){
		$('box1').scrollLeft-=parseInt(step);
		//fertig??
		if(parseInt($('box1').scrollLeft)<=ende_horizontal){
			//Intervall ende
			window.clearInterval(scrolle_horizontal);
			scrolle_horizontal=false;
			//alert($('box1').scrollLeft+", "+$('tabelle').offsetWidth);
		}
	}
	else{
		$('box1').scrollLeft+=parseInt(step);
		//fertig??
		if(parseInt($('box1').scrollLeft)>=ende_horizontal){
			//Intervall ende
			window.clearInterval(scrolle_horizontal);
			scrolle_horizontal=false;
			//alert($('box1').scrollLeft+", "+$('tabelle').offsetWidth);
		}
	}
}

function check_scrollButtons(){
	//nur wenn es die Buttons und die Tabelle gibt
	if($('links') && $('rechts') && $('tabelle')){
		//linker Button
		if(parseInt($('box1').scrollLeft)>0)
			$('links').style.display='block';
		else
			$('links').style.display='none';
		//rechter Button
		if(parseInt($('box1').scrollLeft)+parseInt($('box1').offsetWidth)<parseInt($('tabelle').offsetWidth))
			$('rechts').style.display='block';
		else{
			$('rechts').style.display='none';
			//alert($('box1').scrollLeft+"+"+$('box1').offsetWidth+">="+$('objektliste').offsetWidth)
		}
			
	}
}

function infoBoxClose(){
	$('umdiv').style.display='none';
   	$('infodiv').style.display='none';
	//falls die Vormerkliste angezeigt wurde, muß der Infodiv wieder schmaler gemacht werden
   	$('infodiv').style.width='400px';
   	$('infobox_titel').innerHTML='';
   	$('infobox_content').innerHTML='';
	return false;
}

function jetzt_buchen(sid, anfrage_id, objekt_id, type){
 $('buchen_button').innerHTML='<img src=\"/pic/spacer.gif\" width=\"50\" height=\"1\" /><img src="/pic/loader.gif" title="loading" valign="top" class="abstand_buttons">';
 xajax_Buchen(sid, anfrage_id, objekt_id, type);
 return false;
}

function validateAnfrage($sid ,$kunde_id ,type , vorname, name, plz, strasse, stadt, land_id, telefon, handy, email, infomail, objekt1_id, objekt2_id, objekt3_id, bemerkung) {
	xajax_validateAnfrage($sid ,$kunde_id ,type , vorname, name, plz, strasse, stadt, land_id, telefon, handy, email, infomail, objekt1_id, objekt2_id, objekt3_id, bemerkung);
	window.scrollTo(0,0);
	return false;
}
function validateAnfrage_V2($sid) {
	$("senden_button").innerHTML='<img src=\"/pic/spacer.gif\" width=\"50\" height=\"1\" /><img src="/pic/loader.gif" title="loading" valign="top" class="abstand_buttons">';
	xajax_validateAnfrage($sid, xajax.getFormValues('kundeform'));
	window.scrollTo(0,0);
	return false;
}

function switchDetailBewertung(type){
	if(type=='bewertung'){
		$('detail_beschr').className='txt2';
		$('bewertung_beschr').className='txt4';
		$('detail_text').style.display='none';
		$('bewertung_text').style.display='block';
	}
	else{
		$('detail_beschr').className='txt4';
		$('bewertung_beschr').className='txt2';
		$('detail_text').style.display='block';
		$('bewertung_text').style.display='none';
	}
}

function setzeDatum(){
	//Anreisedatum prüfen
	var reg = /^(\d{2}).(\d{2}).(\d{4})$/;
	var anreiseArray = document.suche.anreise.value.match(reg);
	if(anreiseArray==null)
		return false;
	var testAnreise=isDate(document.getElementById('anreise').value, 'anreise');
	if(testAnreise!=5){
		document.suche.anreise.focus();
		//document.getElementById('anreise').focus();
		return false;
	}
	//Datum einlesen
	var date1=document.getElementById('anreise').value.split(".");
	var date2=document.getElementById('abreise').value.split(".");
	//An- und Abreisedatum vergleichen	
	var datum1=new Date(date1[2],date1[1]-1,date1[0]);
	var datum2=new Date(date2[2],date2[1]-1,date2[0]);
	//Wenn Anreise nach Abreisedatum liegt oder gleich ist, Abreisedatum auf Anreisedatum+1 setzen
	if(datum1.getTime() >= datum2.getTime()){
		datumNeu=new Date(date1[2],date1[1]-1,Number(date1[0])+1);
		tagNeu=String(datumNeu.getDate()).length==2?datumNeu.getDate():"0"+datumNeu.getDate();
		monatNeu=String(Number(datumNeu.getMonth())+1).length==2?Number(datumNeu.getMonth())+1:"0"+(Number(datumNeu.getMonth())+1);
		document.getElementById('abreise').value=tagNeu+"."+monatNeu+"."+datumNeu.getFullYear();
	}
}

function zeigeBounds(lof, laf, lot, lat){
	// alert(lof+", "+laf+", "+lot+", "+lat);
	 var laenge1=0.0;
	var laenge2=0.0;
	var breite1=0.0;
	var breite2=0.0;
	 if(lof<lot){
		 laenge1=lof;
		 laenge2=lot;
	 }
	 else{
		 laenge1=lot;
		 laenge2=lof;
	 }
	 if(laf<lat){
		 breite1=laf;
		 breite2=lat;
	 }
	 else{
		 breite1=lat;
		 breite2=laf;
	 }
	 //latlng1 = new google.maps.LatLng(latitude, longitude);
	 var sw=new google.maps.LatLng(breite1, laenge1);
	 var ne=new google.maps.LatLng(breite2, laenge2);
	 var bounds=new google.maps.LatLngBounds(sw, ne);
	 //alert(lof+", "+laf+", "+lot+", "+lat+"; "+bounds);
	 //load(0,0,15);
	 load((laenge2-((laenge2-laenge1)/2)),(breite2-((breite2-breite1)/2)),15);
	 boundsGezeigt=true;
	 map.fitBounds(bounds);
	 //sucheObjekte(0);
	 //geosucheInarbeit=false;
	 //alert("nun "+map.getBounds());
	 //map.setZoom(18);
	 //load((laenge2-((laenge2-laenge1)/2)),(breite2-((breite2-breite1)/2)));
	 //alert(lof+", "+laf+", "+lot+", "+lat+"\n"+bounds+"\n"+map.getBounds());
}
 
function wait($sid, $land_id, $stadt_id, $bezirk_id, $personen, $preislimit, $anreise, $abreise){
	document.getElementById('bezirk').innerHTML="<img src='/css/pic/loading.gif' />";
	xajax_checkTreffer($sid, $land_id, $stadt_id, $bezirk_id, $personen, $preislimit, $anreise, $abreise);
}

function prepareObjektMap(sid,objekt_id,mydiv){
	neu=false;
	suchtype=0;
   $(mydiv).innerHTML='<div id="map_head"></div><div id="map" style="height:330px"></div>';
   xajax_objektMap(sid,objekt_id,mydiv);
}

function divCheck(sid, objekt_id) {
  if(!$("box2") || !$("box3")) {
    $("box4").innerHTML="<div class='box2' id='box2'><img src='/css/pic/loading.gif' /></div><div class='box3' id='box3'></div>";
  }
  xajax_objektDetail(sid, objekt_id);
}

function divGeosuche(sid, objekt_id) {
  xajax_objektDetail(sid, objekt_id);
}

function div1_set() {
  if($("box1")){
	if (self.innerHeight){
        x=self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight){
        x=document.documentElement.clientHeight;
	}
	else if (document.body){
        x=document.body.clientHeight;
	}
     x=x-170;
     $("box1").style.height=x+"px";
  }
}

function loginKunde(sid ,user, password, type){	
	xajax_loginKunde(sid ,user, password, type);
     	xajax.callback.global.onComplete = function(){
           if(typeof(document.forms['kundeform'])!="undefined"){
				if(document.forms['kundeform'].elements['KUNDE_ID'].value!=0){
				   window.scrollTo(0,800)
				   document.forms['kundeform'].elements['vorname'].focus();
			   }
           }
	}
	//infoBoxClose();
	return false;
} 

function validateAnfrage($sid ,$kunde_id ,type , vorname, name, plz, strasse, stadt, land_id, telefon, handy, email, infomail, objekt1_id, objekt2_id, objekt3_id, bemerkung){
	xajax_validateAnfrage($sid ,$kunde_id ,type , vorname, name, plz, strasse, stadt, land_id, telefon, handy, email, infomail, objekt1_id, objekt2_id, objekt3_id, bemerkung);
	window.scrollTo(0,0);
	return false;
}
//Todo wird die Funktion überhaupt noch gebraucht?
function jumpResultListeKopf(sid,seite){
	xajax_jumpResultListe(sid,seite);
	xajax.callback.global.onComplete = function() {
		$("box1").scrollTop=0;
	}
}
function buchungsenden(sid, anfrage_id, objekt_id){
	$('best_button').innerHTML="&nbsp;&nbsp;&nbsp;&nbsp;<img src='/pic/loading.gif' />";
	xajax_Anfrage2Buchung(sid, anfrage_id, objekt_id);
}

function isDate(datum, feld) {
	var feldtext='';
	if(aktSprache=='ger'){
		feldtext=feld.charAt(0).toUpperCase()+feld.slice(1);
	}
	else{
		if(feld=='anreise')
			feldtext='arrival';
		else
			feldtext='departure';
	}
	//Rückgaben: 0=Format falsch, 1=Tag falsch, 2=Monat hat keine 31 Tage, 3=Monat falsch, 4=Februar falsch, 5=alles i.O.
	var reg = /^(\d{2}).(\d{2}).(\d{4})$/;
	var datumArray = datum.match(reg);
	//Format prüfen
	if (datumArray == null) {
		if(aktSprache=='ger')
			$("errtext").innerHTML="<br /><b>Bitte das Datum der "+feldtext+" im Format tt.mm.yyyy eingeben</b>";
			//alert("Bitte das Datum der "+feldtext+" im Format tt.mm.yyyy eingeben");
		else
			$("errtext").innerHTML="<br /><b>Please enter "+feldtext+" as  dd.mm.yyyy</b>";
			//alert("Please enter "+feldtext+" as  dd.mm.yyyy");
		//var pfad=eval("document.suche."+feld);
		//alert(feld);
		//pfad.focus();
		return 0;
	}
	var tag=datumArray[1];
	var monat=datumArray[2];
	var jahr=datumArray[3];
	
	if (tag < 1 || tag > 31) {
		if(aktSprache=='ger')
			$("errtext").innerHTML="<br /><b>Der Tag der "+feldtext+" muß zwischen 1 und 31 sein.</b>";
			//alert("Der Tag der "+feldtext+" muß zwischen 1 und 31 sein.");
		else
			$("errtext").innerHTML="<br /><b>Day of "+feldtext+" must be between 1 and 31.</b>";
			//alert("Day of "+feldtext+" must be between 1 and 31.");
		
		return 1;
	}
	if ((monat==4 || monat==6 || monat==9 || monat==11) && tag==31) {
		if(aktSprache=='ger')
			$("errtext").innerHTML="<br /><b>Der Monat "+monat+" der "+feldtext+" hat keine 31 Tage.</b>";
			//alert("Der Monat "+monat+" der "+feldtext+" hat keine 31 Tage.");
		else
			$("errtext").innerHTML="<br /><b>Month "+monat+" of "+feldtext+" doesn`t have 31 days.</b>";
			//alert("Month "+monat+" of "+feldtext+" doesn`t have 31 days.");
		return 2;
	}
	//Monat prüfen
	if (monat < 1 || monat > 12) {
		if(aktSprache=='ger')
			$("errtext").innerHTML="<br /><b>Der Monat der "+feldtext+" muß zwischen 1 und 12 sein.</b>";
			//alert("Der Monat der "+feldtext+" muß zwischen 1 und 12 sein.");
		else
			$("errtext").innerHTML="<br /><b>Month of "+feldtext+" must be between 1 and 12.</b>";
			//alert("Month of "+feldtext+" must be between 1 and 12.");
		return 3;
	}
	//Februar prüfen
	if (monat == 2) { 
		//auf 29. Februar prüfen
		var istSchaltjahr = (jahr % 4 == 0 && (jahr % 100 != 0 || jahr % 400 == 0));
		if (tag > 29 || (tag==29 && !istSchaltjahr)) {
			if(aktSprache=='ger')
			$("errtext").innerHTML="<br /><b>Der Februar "+jahr+" der "+feldtext+" hat keine "+tag+" Tage!</b>";
			//alert("Der Februar "+jahr+" der "+feldtext+" hat keine "+tag+" Tage.");
			else
				$("errtext").innerHTML="<br /><b>February " + jahr + " of "+feldtext+" doesn`t have " + tag + " days!</b>";
				//alert("February " + jahr + " of "+feldtext+" doesn`t have " + tag + " days!");
		return 4;
		}
	}
	//Datum ist gültig
	$("errtext").innerHTML='';
	return 5;
}

function load(longitude, latitude, zoom) {
	if(suchtype==0)
		neu=false;
	if(neu==true){
		longitude=0.0;
		latitude=0.0;
		zoom=1;
	}
	if($('no_js'))
		$('no_js').style.display='none';
	geocoder = new google.maps.Geocoder();
	if(zoom==null)
		zoom=15;
	if(zoom<1){
		zoom=1;
		longitude=0.00;
		latitude=0.00;
	}
    latlng = new google.maps.LatLng(latitude, longitude);
    myOptions = {
		zoom: zoom,
		center: latlng,
		mapTypeControl: true,
		mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
		navigationControl: true,
		navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL},
		mapTypeId: google.maps.MapTypeId.ROADMAP,
		scrollwheel:false
    };
    map = new google.maps.Map(document.getElementById("map"), myOptions);
	//alert("zoom am Anfang load: "+map.getZoom());
	center_marker = new google.maps.Marker({
      position: latlng, 
      map: map, 
      title:""
  });  
  if (suchtype!='0'){
	  google.maps.event.addListener(map, 'zoom_changed', function() {
			if(suchen!=null) clearTimeout(suchen);
			if(zoomSuche===false  && geosucheInarbeit==false && $('box5') && $('box5').style.display!='none') {
				//alert("zoom_changed");
				suchen=window.setTimeout("sucheObjekte(0)",700);
			}	
		});
		google.maps.event.addListener(map, 'center_changed', function() {
			if(suchen!=null) clearTimeout(suchen);
			//alert(zoomSuche+","+geosucheInarbeit+", "+$('box5').style.display+", "+zoom);
			if(zoomSuche===false && geosucheInarbeit==false  && $('box5') && $('box5').style.display!='none' && map.getZoom()!=1){
				suchen=window.setTimeout("sucheObjekte(0)",700);
			}
		});
  }
	center_marker.setVisible(false);
	if (neu===true){
		neu=false;
		if(qs_obj!=''){
			suche.adresse.value=qs_obj;
			//codeAddress();
			xajax_objektGeo(document.suche.PHPSESSID.value, qs_obj);
		}
		else{
			//suchen=window.setTimeout("sucheObjekte(0)",700);
		}
	}
   if(zoom==1){
	zeigeObjMarker(raster);
	center_marker.setVisible(false);
  }
  //alert("zoom am Ende load: "+map.getZoom());
  if(wechsel==true){
	wechsel=false;
	suchen=window.setTimeout("sucheObjekte(0)",700);
  }
  if(suchtype==0) center_marker.setVisible(true);
}

function map_initialize(laenge, breite, objektnr) {
	var latlng = new google.maps.LatLng(laenge, breite);
	var myOptions = {
		zoom: 15,
		center: latlng,
		mapTypeId: google.maps.MapTypeId.ROADMAP
	};
	var map = new google.maps.Map(document.getElementById("map"), myOptions);
	var marker = new google.maps.Marker({
		position: latlng, 
		map: map,
		title: objektnr
	});   
}

function myencode (url) {
	var myurl;
	myurl=escape(url);
	document.getElementById('weiter').href=myurl;	
	return;
}

function navig_login(sid){
	if(document.login){
		//ist die aktuelle Seite das Gastlogin
		document.login.user.focus();
		return;
	}
	else if(document.loginform){
		//aktuelle Seite ist das Anfragelogin
		document.loginform.USER.focus();
		return;
	}
	else if(document.kundeform){
		//aktuelle Seite ist das Anfragelogin
		document.kundeform.name.focus();
		return;
	}
	else if(document.kundeanmelden){
		//aktuelle Seite ist das Neuanmelden über die Gastseite
		document.kundeanmelden.name.focus();
		return;
	}
	xajax_getGast(sid,'INFOBOX');

}



