var map, manager;
var mliste = [];
var centerLatitude = 48.19800212, centerLongitude =  15.76196289, startZoom = 8;
var TopAusflugsziele=[];
var TopAusflugszieleText=[], TopAusflugszieleText2=[], TopAusflugszieleText3=[];
var qs; // querystring

var Router;// = new GDirections();
var RouterPoly;
var RouterAddr = [];  //adrresen für router
//GEvent.addListener(Router, "load", onGDirectionsLoad);
//GEvent.addListener(Router, "error", function(msg){alert(msg)});

function RouterStarten(lat, lng, startaddr){
	//Router.clear()
	document.getElementById("Route").innerHTML = "Route wird erstellt...";
	if(RouterPoly)  map.removeOverlay(RouterPoly);
	RouterAddr=[];
	RouterAddr.push(startaddr);
	RouterAddr.push(lat + "," + lng);
	Router.loadFromWaypoints(RouterAddr, {"getPolyline":true, "getSteps":true});
}

function onGDirectionsLoad(){ 
	document.getElementById("Route").innerHTML = "";
	RouterPoly = Router.getPolyline()
	map.addOverlay(RouterPoly);
	document.getElementById("Route").innerHTML = '<div class="step">Ihre Startadresse: '+ RouterAddr[0] +'</div>';
	var  a = Router.getNumRoutes()
	 for (i=0; i<a; i++){
	 	var r = Router.getRoute(i)
		for (j=0; j<r.getNumSteps(); j++) {
			var stepel = document.createElement("div");
			stepel.className = "groute_text";
			stepel.innerHTML = r.getStep(j).getDescriptionHtml();
			stepel.LatLng  = r.getStep(j).getLatLng();
			stepel.onclick = function(e){map.setZoom(15); map.panTo(this.LatLng)};
			stepel.onmouseover = function(e){this.className += "over"};
			stepel.onmouseout = function(e){this.className = "groute_text"};
			
			document.getElementById("Route").appendChild(stepel);
		}
	 }
}

function MerkerInfoWindow(marker){
	if(marker.isHidden()) marker.show();
	var tabs = []
	tabs.push(new GInfoWindowTab("Info", TopAusflugszieleText[marker.nummer]));
	//textR = 'Geben Sie bitte hier <br>Ihre startadresse ein:<br /><input type="text" name="adresse" onchange="RouterStarten('+marker.getLatLng().lat()+','+marker.getLatLng().lng()+',this.value)" /><a href="#RouteTop">.: go</a>'
	//tabs.push(new GInfoWindowTab("Details", TopAusflugszieleText2[marker.nummer]));
	//if(marker.picture=="ja"){
	//	tabs.push(new GInfoWindowTab("Bilder", TopAusflugszieleText3[marker.nummer]));
	//}
	marker.openInfoWindowTabsHtml(tabs);
	return false;
}

function createMarkerClickHandler(marker, text) {
	return function() {
		marker.openInfoWindowHtml(text);
		return false;
	};
	//return function() {	MerkerInfoWindow(marker, text)};
}

function createMarker(pointData) {
	var latlng = new GLatLng(pointData.latitude, pointData.longitude);
	var icon = new GIcon();
	icon.image = 'img/icon1.png';
	icon.shadow = 'img/icon1_schatten.png';
	icon.shadowSize = new GSize(95,47);
	icon.iconSize = new GSize(63, 40);
	icon.iconAnchor = new GPoint(13, 43);
	icon.infoWindowAnchor = new GPoint(17, 7);
	
	var LabelText = "<img src='img/noe_small.gif'  alt='%_AP_ZIEL_TITEL_%' border='0' align='absmiddle'>&nbsp;&nbsp;&nbsp;" + pointData.sort;				
	LabelText = LabelText.replace(/\%_AP_ZIEL_TITEL_\%/ig,  pointData.name);
	var lc = "apAdvancedMarker";
				opts = {
					"icon": icon,
					"clickable": true,
					"labelClass": lc,
					"labelClassHover": "apAdvancedMarkerHover",
					"labelText": LabelText,
					"labelOffset": new GSize(0,0)
				};
				
	
	//opts = {"icon": icon,"clickable": true,"draggable":true};
	var marker = new apAdvMarker(latlng, opts);
	//var marker = new GMarker(latlng, opts);
	if(marker){
		marker.nummer = parseInt(pointData.nummer)
		
		var xText = '<div class="gmap_titel">' + pointData.name + '</div><div class="content_text1">' + pointData.adresse + '</div>';
		//<div class="gmap_route">Routenplaner</div><div class="router"><input type="text" name="adresse" onchange="RouterStarten('+pointData.latitude+','+pointData.longitude+',this.value)" /></div><div class="router_ber"><a href="#RouteTop"><strong>Route berechnen</strong></a></div>'
		var DetailText = '<div class="gmap_titel">' + pointData.name + '</div><div class="content_text1">' + pointData.adresse + '<br>' + pointData.hp + '<br>' + pointData.ruhetag + '<br>' + pointData.naechtigung + '</div>'
		var BildText = '<div class="gmap_titel">' + pointData.name + '</div><div class="content_text1">' + pointData.bild + '<br></div>'
		if(pointData.bild!=""){
			marker.picture="ja";
		}
		else {
			marker.picture="nein";
		}
		
		var handler = createMarkerClickHandler(marker, xText);
		GEvent.addListener(marker, "click", handler);
		TopAusflugsziele[marker.nummer] = marker;

		map.addOverlay(TopAusflugsziele[marker.nummer] );
		TopAusflugszieleText[marker.nummer] = xText;
		TopAusflugszieleText2[marker.nummer] = DetailText;
		TopAusflugszieleText3[marker.nummer] = BildText;
	}
	return marker;
}

function initKarte() {
	qs = new Querystring();
		map = new GMap(document.getElementById("map"));
		KarteGrenze();
		
		map.addControl(new GLargeMapControl());
		map.setCenter(new GLatLng(centerLatitude, centerLongitude), startZoom);
		map.addControl(new GMapTypeControl());
		map.enableContinuousZoom()
		map.enableDoubleClickZoom();
	
		Router = new GDirections();
		GEvent.addListener(Router, "load", onGDirectionsLoad);
		//GEvent.addListener(Router, "error", function(msg){alert(msg)});	
		GEvent.addListener(Router, "error", function(msg){
		document.getElementById("Route").innerHTML = '<div class="step">Ihre Eingabe wurde leider nicht gefunden.</div>';
		});
	for(m in ziele) { 
		// ich muss die zerstörungen abfangen, die durch ds Prototype bibliothek entstanden sind!
		if(typeof(ziele[m])=="object") {
			createMarker(ziele[m]);
		}
	}
	//KarteMenuStarten();
}

function KarteMenuStarten(){
	var fertig = false;
	/*if (qs.contains("route")){
		showMarker([parseInt(qs.get("route"))]);
		MerkerInfoWindow(TopAusflugsziele[parseInt(qs.get("route"))]) 
		fertig = true
	}*/
	if (qs.contains("info")){
		showMarker([parseInt(qs.get("info"))]);
		//MerkerInfoWindow(TopAusflugsziele[parseInt(qs.get("info"))])
		fertig = true
	}
	/*if (qs.contains("bilder")){
		showMarker([parseInt(qs.get("bilder"))]);
		MerkerInfoWindow(TopAusflugsziele[parseInt(qs.get("bilder"))])
		fertig = true
	}*/
}

function showMarker(index){
	TopAusflugsziele[index].show();
}

	
	function KarteGrenze(){
	var Poi = "u`vdHg}dgBfOz_AbaAqf@W`G_A~@nw@reC|wApzAuf@|~Bc_@}wCwd@jfAr^tcBqq@|NaL|kBjc@uAaQpf@la@nq@`e@ej@n}BwbG|oBzpBziEnkBcZxJuj@uNkXtNqV|u@ke@v|EeRn^kaAfPqVf]_Z`{@y@hkArc@pjCtdAvz@vLflA~e@nKhcBfhBjVhcCaBngAlg@d_ErGfbBxVtkA|ChjAr`@oD}RjfFn~CeEhXhf@rkAcu@pq@pmAd\\huCqZfO|UdaAl}@l@dVlcCp|A}DdxCrpF|wAfr@tSfhA_o@`Jqn@nlBya@o@{iDtaEi`@hlAfHxuEvMfqAby@x{Bd]hd@lk@fIrMpt@jtAtc@vT~^~O~g@z\\eQdWhd@fYkXbh@f}@uo@h~AziAtgBnPtfCfwCebGxw@vwAzn@gJjl@fxDbfBcIjDvdBhvB|vA{c@px@ioAbGsYqi@_c@frE`aCtmAjBwb@eKid@`n@kwC|nBx}@pcBwe@jnA`g@t~@~O|eBck@pjBynAnYrNzkAqgEuLcfBxs@rLljAua@jjBweB|f@hy@py@yf@ra@zn@`_@prBzl@kWtc@hb@dSvyA`cBC|cBvmBvL{Up]wQf`BdP~{AcoA~lB}v@jfAlx@dbAjaBtd@aJf_@nrA~[qRza@rKjLdlA`bAngA_Fzv@dhApcC|d@vk@rlAvgCvUz{D~FlvAskBneEsmAlCwnFt|DgcBoVogBzmA~~AvnBd\\nhB``Cfr@oqEljHgPpkHia@|hFyyBrxDudCcYqr@ltBpm@hdDoaClrAazD{sCtBdeD{oApUcaArsJ`g@r`F_j@yHsm@x{Bol@{Vs_EpbAohD_QuG|~Af}A|jC_aAzqAkIhiDmpFhnD~Y|yHcEvhIuvBym@mDv~CsyBrvIjXfeC}y@z|@anCvBwYdcDgo@dkChZlzGf`AfdAnrB`xAeCtzK~rAfn@zt@akAjgBhmCmJ|aK~x@lr@ff@zuKmaAvyDlu@nkCiLz~Enu@lgCp`D|qBAdlHklD|yDnb@z`Cu~@hh@bEhpAthBjhIqiBltD_j@mDct@_d@mcClgEstA~LirAe_C}oA|sC}sA_qAm}@mUov@lhByrAgxCwbAscE_}AmAwqEjnEudAda@ng@lkBcuC|yRu{CbaGgfCrbMo}HpiFyyA`Xk{@ca@uXuw@oh@j`@{{@k{@uvA}mDiKdLyWlj@iRl`Bs]fLwo@cs@cq@bIi[rj@sy@_OwMrKkp@gg@}hA{\\ej@~Icg@_Rab@xNgbCoj@kJsG_b@uXui@ikBy@yBa`@ey@uD_ZbHqiBze@ulC`v@cuC`eB}pAtbA}lA`f@{pAlsAmgBld@ooA`LezAsx@yjI_@ukB_LkgB{XidBsCwdArCg^kp@cxEy|BmdEgoBn@w@gy@sTgw@S_{AYyr@c@oNE_LyA{K}@{Ka@}K`K}gDlu@{iBugAwcAcKw|@wbAb_@ctAmvCymK~EmO|{G_EDwxEybA}lDyZo[tkDhYrfCev@aq@c|Aa}CesBx{De`CndCmj@lrCo~AjWybBymBgmAobAjNkcCim@~OkmCblE_D~eFifBf_Bec@hcBs^tjEmk@pj@vFdqBrO~e@xVtZfSmFtIf[Txh@_lBtaB}p@`pCkw@~TpCgq@mW}b@yVrB{~AwiA_aA~VciAoWaz@xFc[yL{\\lKcLh^koAe[as@oNkr@gj@ud@`F{tAagAkZwm@uTegA{LqO}EwkA{_@aiAkr@ub@ge@oy@{T_`AeoAvf@k`@sJi{@kt@uVZy`@~\\iP}O{SjBse@i{AlR}~@qLit@lc@iw@k@kg@sPanAx@aw@bHi\\tc@sIIg_AvTohCnOkpApc@k}@pJuvDia@keBaFkPcIrFyU{Pql@xHq]|v@{HvdAmTfgAwMdSiv@gB{d@qVwg@|Ny_CqpAkl@eRwd@}|@kq@tv@clAr@kUlAiRgIkAup@arAsD{Yob@}R`Bse@cWkoAhP{{BxyAa_@ki@e|Af_@eu@sKeaBzDu[aJw]ud@sBw`@eTob@iz@qh@en@f[aO}LvBieA{d@a|Ax]kaApDyv@qKsfBnYi_@bm@pIdc@oSqGao@hMunBo_@qu@gAio@nQyc@h@{hCnUk`B~\\sIj`@dEpWzu@pUwvAhk@sGh^wa@lfAlFnm@qrAtLwo@mOsg@}`@a]i_@o`AwNyzAz[onE_Xe{@}[jE{N}EyGg\\siA}w@i|@te@_f@aTzd@kdAp}@ue@hHs^uJi_ArQc`Aog@ih@fB{eC~JwqB`bB}bClEieAjs@{mA`ZqiA^abCnZwb@\\uZe_@{|@jj@gVva@}xCxa@o[tnAwZp`@}`@xeA}nHxp@}lBgKyjC~B_gBhaAeoAlI{sBr^ux@|tAehBfN}g@pd@g^{PcfCjQacAh\\u`Fyz@}zAuoA{}@bOsoEyCkn@`Moz@wJkiAvXir@`U{Lz]xz@hOoJ~Oo^|Vc~Ae@am@dn@{w@dUoeB|k@mRcYelBbToYhE}a@f~@dSf_@eoAez@g]rTyhAzY_a@jl@pr@vd@y@lgBeoE`|@ykArTsmArpBifEtvAchHfY}vCBgoCaHuuDcB_|A|@qp@ja@klBt@_qBjLi`EuWmyDlUywBzg@s_DhB_c@kiAi~AjEsk@px@e~@pSup@iMaw@waAmzBwbAu{@_n@obAelB{dBqaAik@mn@a[mQqkBlW}fD_X}|C}kAoeBbQiz@n|AkqCrWwgBrq@}wAlR}qAk@cdA{m@wwA~XqqBhg@edA`gBgdAl{AtP`f@tTxw@qw@rGw^}p@ipAqTk`ApLuuBn^_[xUcdA`Beg@r\\yO|h@ah@pLkr@qGi~Ann@sjAsBkd@eUis@qZqtCdGyqBcPshB}AkhCnAiH_Bw{@fMiVpi@cWz_A}bAbbApIzp@f[zj@er@zrAmO~SmCpGz@jcBhZr{@Ull@el@tLcmBtv@vEtf@d}@hpBoJxy@nHz^cGn`BkkA|a@b@|YqO~dCfv@bd@hwB`UnSblAhWrSl|AzNxZfrAfLpUjdA~}@hz@~T|q@r]rPbSqC?Z~r@pv@|l@BlyCsdA`|ApGzl@|Y~`AziAjw@bKboBmp@hKos@BgzAxiAkq@f[_m@dUmaBzn@gh@tk@jH`q@v~@byA{j@n\\gt@`~AylAbIahCf[wb@hl@mBbrB|FbjAmW~bB}hAhpC_dAb`@eQzwAoUbbA{cDfkAkdBdb@}aBni@y`Azn@eZff@uU"
		var Lev = "PHHCEGJIIIHHHHGKFKGKFFIFHFFHFKGGHFJFFEFFHHKHHJGGFHHIIHKHGHGIGKGFIGGGEGGGHIHHMIHKIIHJHHIJKEGJHHEIFGJHIGHKHHFIHGHHJEHHFLFHHHGJGGGEEICOIHHHKGHKIFKIJHJIKHIIHHKGGKHIHJIGJIHHJHIFMIFIJHIKHHHHHJHJIHHJFMHFIKHIIGIJFKHGLHIHKGPGGHHJDFIGHGGFJFHFFGI@GEALEGEIFHFGFKFEFFEGJIHFJAEACABFHJGHHNJJCFKGJFJGHKIEIHLHIHFGJGEGGEIHGMFHFIGFFHFHCGGJFHEFFHGFJHFHFGFLHGGGEEIGGFDGHGCLFFIFFEJFGHEGIHCHFHGFFJGIHGFKFGEHGGIGOGFIGGIFGFHFFJFHIHFGHEKEFHGGJEGFHGKFGIFGGEIGGFIGFGIGHFFIGHEIGGHFFKGEIGIEFFKFHHEIFHGGHIFHHIHIHGIFIFHFLDBDGGDGHEEIIFFKFHFEGCJGGHKFFFIFHGJGHFIFKFHIGEGEHFGIEEGFFDCNEFIFHGAHAFIGIGHFIFFFKHHFGEHHGFHFGBJFGIFGLIEHHFIGHIGFIGJEGHGCFJFGHG@P"
		
		
	
	var pol = new GPolyline.fromEncoded({
		color: "#ffd803",weight: 8,opacity: 0.7,points: Poi,levels: Lev,zoomFactor: 2,numLevels: 18
	});
	
		map.addOverlay(pol);
	}
