function getCookieVal (offset) { 

	var endstr = document.cookie.indexOf (";", offset); 

	if (endstr == -1) 
	endstr = document.cookie.length; 
	return unescape(document.cookie.substring(offset, endstr));
		
}

function GetCookie (name) { 

	var arg = name + "="; 
	var alen = arg.length; 
	var clen = document.cookie.length; 
	var i = 0; 


	while (i < clen) { 
		var j = i + alen; 

		if (document.cookie.substring(i, j) == arg) 
			return getCookieVal (j); 

		i = document.cookie.indexOf(" ", i) + 1; 
		if (i == 0)
			break;

	} 		
	return null;
}


function aktivegruppen() {
	
	var gruppen = "";
	
		
	for (var i = 1; i <=smartyToJs("counterlegende"); i++) {
	
		if (document.getElementsByName("a" + i)[0].checked == true) {
	
			gruppen = gruppen + document.getElementsByName("a" + i)[0].value + "#";
	
			//alert(gruppen);
		}
		
	}
	
	document.cookie = "gruppen=" + gruppen;
	
	return gruppen;
	
}



function markerladen() {

	//Infos einblenden 

	abfragegruppen = aktivegruppen();
	
	if(maxX == 0 || minY == 0 || zoomstufe == 0 || xscale == 0){
		maxX = map.getBounds().getNorthEast().lng();
		minX = map.getBounds().getSouthWest().lng();
		maxY = map.getBounds().getNorthEast().lat();
		minY = map.getBounds().getSouthWest().lat();
		xscale = zoomstufe = map.getZoom();
	}
	
	if (zoomstufe<=7) {

		ddrivetip('<strong>Bitte waehlen Sie ein Revier (<img src="'+BASEURL+'img/karte/mm_20_red.png" width="10" />) auf der Karte oder vergroessern Sie Karte durch die Navigation auf der linken Seite.</strong>','#8CB416', 250);

		setTimeout('hideddrivetip();',8000);

	} else if (zoomstufe>=8 && abfragegruppen=="") {

		ddrivetip('<strong>Bitte waehlen Sie aus der Legende Informationen aus, die in der Karte angezeigt werden sollen.</strong>','#8CB416', 250);

		setTimeout('hideddrivetip();',8000);			

	}

			
			
	//Debugging
	//document.getElementById("asb_content").innerHTML = "data/wtg.karte.daten.php?maxx=" + maxX + "&minx=" + minX + "&maxy=" + maxY + "&miny=" + minY + "&verband=" + verband + "&gruppen=" + aktivegruppen();
		

	GDownloadUrl("data/wtg.karte.daten.php?maxx=" + maxX + "&minx=" + minX + "&maxy=" + maxY + "&miny=" + minY + "&verband=" + verband + "&zoomstufe=" + zoomstufe + "&gruppen=" + aktivegruppen(), function(data, responseCode) {

		var xml = GXml.parse(data);
			
	 	if (xml.documentElement.getElementsByTagName("marker")) {	
				
			var markers = xml.documentElement.getElementsByTagName("marker");

			for (var i = 0; i < markers.length; i++) {

				var point = new GLatLng(parseFloat(markers[i].getAttribute("y")),parseFloat(markers[i].getAttribute("x")));

				map.addOverlay(createMarker(point, unescape(markers[i].getAttribute("bezeichnung")) , parseFloat(markers[i].getAttribute("idx")), parseFloat(markers[i].getAttribute("marker")), markers[i].getAttribute("markertyp"), parseFloat(markers[i].getAttribute("width")), parseFloat(markers[i].getAttribute("height")) ) );
			}
		}
	});	  
}



//Tourdaten laden
function tourmarkerladen(id) {


	ddrivetip("Daten werden geladen...",'#FFCC00', 150);

	var oldpointx = "";


	GDownloadUrl("data/wtg.karte.tourmarker.php?id=" + id, function(data, responseCode) {

		var xml = GXml.parse(data);

		var markers = xml.documentElement.getElementsByTagName("marker");


		for (var i = 0; i < markers.length; i++) {

			var x = parseFloat(markers[i].getAttribute("x"));

			var y = parseFloat(markers[i].getAttribute("y"))

			var point = new GLatLng(y,x);

			map.addOverlay(createTour(point, parseFloat(markers[i].getAttribute("nummer"))));

			//map.addOverlay(createMarker(point, unescape(markers[i].getAttribute("bezeichnung")) , parseFloat(markers[i].getAttribute("idx")) ,parseFloat(markers[i].getAttribute("marker")),markers[i].getAttribute("markertyp")));

			//Line zeichnen

			if(oldpointx != "") {

				//var polyline = new GPolyline([

				//	new GLatLng(y , x),

				//	new GLatLng(point.y , point.x)

				//], "#FF0000", 3);

				//map.addOverlay(polyline);	
			}
			oldpointx = x;
			oldpointy = y;
		}
	});	  

	setTimeout('hideddrivetip();' , 100);
}




function createMarker(point, number ,idx , icon, typ, imgwidth, imgheight) {

	//Marker laden

	var markericon = new GIcon(baseIcon);
	if(!(imgwidth > 0) && !(imgheight > 0))
		imgwidth = imgheight = 0;
	
	// typ1 = firmen
	if (typ==1) {
		markericon.image = BASEURL+"img/maplogo/googlemarker" + icon + ".png";
		markericon.shadow = BASEURL+"img/maplogo/googlemarker" + icon + ".png";
	// typ2||4 Revierinfo
	}else if (typ==2 || typ==4) {
		markericon.image = BASEURL+"img/karte/googlemarkerpoi" + icon + ".png";
		markericon.shadow = BASEURL+"img/karte/googlemarkerpoi" + icon + ".png";
	//Reviere
	}else if (typ==5) {
		markericon.image = BASEURL+"img/karte/googl_marker_revier.png";
		markericon.shadow = BASEURL+"img/karte/googl_marker_revier.png";
		markericon.iconSize = new GSize(20, 20);
		markericon.shadowSize = new GSize(20, 20);
		markericon.iconAnchor = new GPoint(10, 20);
		markericon.infoWindowAnchor = new GPoint(20, 20);
		number = unescape(number);
	// Wetterwelt
	}else if (typ == 6){
		markericon.image = BASEURL+"img/karte/googlewetterwelt.png";
		markericon.shadow = BASEURL+"img/karte/googlewetterwelt.png";
	// Tourenvorschläge, icon = 500
	}else if(typ == 7){
		markericon.image = BASEURL+"img/karte/googlemarkerpoi5.png";
		markericon.shadow = BASEURL+"img/karte/googlemarkerpoi5.png";
	}
	
	if(typ != 5){
		if(icon == 5000){
			markericon.iconSize = new GSize(imgwidth, imgheight);
			markericon.shadowSize = new GSize(imgwidth, imgheight);
			markericon.iconAnchor = new GPoint(5, 10);
			markericon.infoWindowAnchor = new GPoint(5, 1);
		}else if (icon <=100) { 
	
			markericon.iconSize = new GSize(10, 10);
	
			markericon.shadowSize = new GSize(10, 10);
	
			markericon.iconAnchor = new GPoint(5, 5);
		
			markericon.infoWindowAnchor = new GPoint(5, 1);
	
		} else if (icon <=1020) { 
	
			markericon.iconSize = new GSize(15, 15);
		
			markericon.shadowSize = new GSize(15, 15);
		
			markericon.iconAnchor = new GPoint(5, 10);
		
			markericon.infoWindowAnchor = new GPoint(5, 1);	  
	
	
		} else if (icon >=1020) { // Maplogos von Firmen 
			
			markericon.iconSize = new GSize(imgwidth, imgheight);
			markericon.shadowSize = new GSize(imgwidth, imgheight);
			
			markericon.iconAnchor = new GPoint(5, 10);
		
			markericon.infoWindowAnchor = new GPoint(5, 1);
	
		}else if (imgwidth == 0 && imgheight == 0){
			markericon.iconSize = new GSize(80, 80);
		}
	}
	var marker = new GMarker(point,markericon);

	
	GEvent.addListener(marker, "click", function() {
		
			//Werbung wechseln
			changeIframe_legende();
			changeIframe_premiumwerbung();
		
		//marker.openInfoWindowHtml("<b>" + number + "</b><br/><a href=http://wtg.vivawasser.de/index.php?module=4&id=" + idx + ">Weitere Details<a>");

		if (typ==1) {

			loadData(idx);

			expandcontent('details');

			tabaktiv('detailtab');

			//document.getElementById("etrackerdaten").innerHTML = "<p><a href='http://www.etracker.de/app?et=5dEDoE'><img style='border:0px;' alt='' src='http://www.etracker.de/cnt.php?et=5dEDoE&amp;v=2.4&amp;java=n&amp;et_easy=0&amp;et_pagename=WTG%20Kartenaktion%20Firmeneintrag&amp;et_areas=&amp;et_ilevel=0&amp;et_target=,,,0&amp;et_lpage=&amp;et_trig=&amp;et_se=0&amp;et_cust=0&amp;et_basket=&amp;et_url='/></a></p>";
		}

	  	if (typ==2) {

			loadPOI(idx);

			expandcontent('details');

			tabaktiv('detailtab');

			//document.getElementById("etrackerdaten").innerHTML = "<p><a href='http://www.etracker.de/app?et=5dEDoE'><img style='border:0px;' alt='' src='http://www.etracker.de/cnt.php?et=5dEDoE&amp;v=2.4&amp;java=n&amp;et_easy=0&amp;et_pagename=WTG%20Kartenaktion%20POI&amp;et_areas=&amp;et_ilevel=0&amp;et_target=,,,0&amp;et_lpage=&amp;et_trig=&amp;et_se=0&amp;et_cust=0&amp;et_basket=&amp;et_url='/></a></p>";
		}	

	 	if (typ==4) {

			//streckzeichnen=1;

			loadTour(idx);

			tourmarkerladen(idx);

			expandcontent('details');
		}	
		

		if (typ==5) {

		 	//streckzeichnen=1;

		 	map.setCenter(point, parseInt(idx));

		}
		
		if (typ==6) {
			loadWetterData(idx); //revier übergeben um daten aus db zu laden
			expandcontent('details');
			tabaktiv('detailtab');
		}
		
		if (typ==7) {

		 	//streckzeichnen=1;
			loadTour(idx);
			tourmarkerladen(idx);
			expandcontent('details');
		 	tabaktiv('detailtab');

		}
		
	});

	  

	GEvent.addListener(marker, "mouseover", function() {
		ddrivetip(number,'#FFCC00', 150);
	});

	GEvent.addListener(marker, "mouseout", function() {
		hideddrivetip();
	});	  

	return marker;
}


function createTour(point, index) {

	// Create a lettered icon for this point using our icon class

	var letter = String.fromCharCode("A".charCodeAt(0) + index);

	var icon = new GIcon(baseIcon);

	icon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";

	var marker = new GMarker(point, icon);

	return marker;
}



function load() {
	
	//Alle Gruppen aktivieren wenn der Dealerlocator aktiv ist
	
	if (verband!="") {
		setTimeout("markerladen()",2000);
	}
		
	
  	var zoom = GetCookie ('zoom');
	var centerx = GetCookie ('centerx');
	var centery = GetCookie ('centery');
				
	if (zoom == null) {
	  	var zoom = 4;
		var centerx = 54;
		var centery = 10;		
	}
	
	
	//Haken setzen für aktive Gruppe				
	for (var i = 1; i <=smartyToJs("counterlegende"); i++) {
		if (document.getElementsByName("a" + i)[0].value == aktivegruppe ) 				{
			document.getElementsByName("a" + i)[0].checked = true;
			//alert(gruppen);
		}
	}
	
	if(firmenx!="0") {

		var zoom = 12;
		var centerx = firmeny;
		var centery = firmenx;
	}
		
	if (GBrowserIsCompatible()) {
		// Create our "tiny" marker icon

		var icon = new GIcon();
		icon.image = BASEURL+"img/karte/googlemarker1.png";
		icon.shadow = BASEURL+"img/karte/googlemarker1.png";
		icon.iconSize = new GSize(10, 10);
		icon.shadowSize = new GSize(10, 10);
		icon.iconAnchor = new GPoint(5, 5);
		icon.infoWindowAnchor = new GPoint(5, 1);

        map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(centerx, centery), parseInt(zoom));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.addControl(new GScaleControl());
		map.addControl(new GOverviewMapControl());


		//Klick in die Karte

		GEvent.addListener(map, "click", function(marker, point) {
			changeIframe_legende();
			changeIframe_premiumwerbung();
			if (streckzeichnen == 1) {
				map.addOverlay(createTour(point, tourcounter))
				tourcounter++;

				//tourplanung.location = "/data/wtg.tourplaner.php?x=" + point.x + "&y=" + point.y;

				if(oldpointx != "") { //Es wurden bereits Punkte gesetzt
					var entfernung = Math.acos((Math.sin(oldpointx*(3.1415926/180)) * Math.sin(point.x*(3.1415926/180))) + (Math.cos(oldpointx*(3.1415926/180)) * Math.cos(point.x*(3.1415926/180)) * Math.cos(point.y*(3.1415926/180)-oldpointy*(3.1415926/180)))) * 6371 * 0.72;
					gesamtentfernung = entfernung/1.85201+gesamtentfernung;
					entfernung = formatZahl(entfernung/1.85201,2,true);

					//Hintergrundfrarbe fÃ¼r die tabelle

					if( tourcounter%2 == 0 ) {
						var bgcolor = "#DFDFDF";
					} else {
						var bgcolor = "#FFFFFF";
					}

					ausgabe = "<table bgcolor=\"" + bgcolor + "\" style=\"border-bottom: 1px solid #0066CC;width:98%;\">"
							 +"<tr>"
							 +"<td width=\"150\">"
							 +"Von Punkt " + String.fromCharCode(63+tourcounter)
							 +"</td>"
							 +"<td width=\"150\">"
							 +"Zu Punkt " + String.fromCharCode(63+tourcounter+1)
							 +"</td>"
							 +"<td align=\"right\">"
							 +entfernung
							 +"</td>"
							 +"</tr>"
							 +"</table>";
						 
					document.getElementById("tour").innerHTML = document.getElementById("tour").innerHTML + ausgabe ;
					document.getElementById("tourgesamt").innerHTML = "<strong>Gesamtstrecke:</strong>: " + formatZahl(gesamtentfernung,2,true) + " sm" ;

					var polyline = new GPolyline([
						new GLatLng(oldpointy , oldpointx),
						new GLatLng(point.y , point.x),
						], "#FF0000", 3);

					map.addOverlay(polyline);
					map.setCenter(new GLatLng(point.y, point.x), map.getZoom()); 	
		

				} else { //setzen des ersten Punktes

					gesamtentfernung = 0;
					document.getElementById("tour").innerHTML = "Bitte setzten Sie einen weiteren Punkt, damit die Entfernnung berechnet werden kann!";
				}

				//var distance = 6378.137 * Math.acos( Math.sin(point.x)*Math.sin(oldpoint.x) + Math.cos(point.x)*Math.cos(oldpoint.x)*Math.cos(oldpoint.y-point.y));
				//alert(distance);

				oldpointx = point.x;
				oldpointy = point.y;

			}

		});		

		

		//Position abfragen
		GEvent.addListener(map, "mousemove", function(point) {
		});			

		
		//Marker setzten / Firmen laden
		GEvent.addListener(map, "moveend", function(point) {

			//Werbung wechseln
			changeIframe_legende();
			changeIframe_premiumwerbung();
	
			//Cookie fÃ¼r Postionen speichern

			document.cookie = "zoom=" + map.getZoom();
			document.cookie = "centerx=" + map.getCenter().lat();
			document.cookie = "centery=" + map.getCenter().lng();
			document.cookie = "gruppen=" + gruppen;
			firmenteasern(map.getCenter().lat(),map.getCenter().lng());


			hideddrivetip();

			xscale = zoomstufe = map.getZoom();

			maxX = map.getBounds().getNorthEast().lng();
			minX = map.getBounds().getSouthWest().lng();
			maxY = map.getBounds().getNorthEast().lat();
			minY = map.getBounds().getSouthWest().lat();

			
			//Layer lÃ¶schen wenn, die Tourplanung nicht aktiv ist

			if (streckzeichnen!=1 && toernplaner!=1) {
				map.clearOverlays();

			}



			//Daten laden, wenn die AuflÃ¶sung mindestens 8 betrÃ¤gt


			//map.clearOverlays();
			setTimeout("markerladen()",2000);
			document.getElementById("etrackerdaten").innerHTML = "<p><a href='http://www.etracker.de/app?et=5dEDoE'><img style='border:0px;' alt='' src='http://www.etracker.de/cnt.php?et=5dEDoE&amp;v=2.4&amp;java=n&amp;et_easy=0&amp;et_pagename=WTG%20Kartenaktion&amp;et_areas=&amp;et_ilevel=0&amp;et_target=,,,0&amp;et_lpage=&amp;et_trig=&amp;et_se=0&amp;et_cust=0&amp;et_basket=&amp;et_url='/></a></p>";

		});			
		setTimeout("markerladen()",2000);
		map.setMapType(G_NORMAL_MAP);
	}
	
} 



