    //<![CDATA[
	
	
	// TODOS
	// Routing rein - Phase 2
	// Cache rein, wenn m�glich
	// G-Unload auch bei Michi-Template
	// Icons bei Michi-Template
	// CSS - Abstand zwischen Autoh�usern
	// CSS - Die Nummer auch rot einf�rben
	// SQL - ORDER BY name ASC
	// SQL - MARKEN ODER BY name ASC
	
	
	// Create a base icon for all of our markers that specifies the
	// shadow, icon dimensions, etc.
	var baseIcon = new GIcon();
	//baseIcon.shadow = "/media/image/icons/googlemap/schatten.png";
	baseIcon.iconSize = new GSize(52,53);
	//baseIcon.shadowSize = new GSize(0,0);
	baseIcon.iconAnchor = new GPoint(10,43);
	//baseIcon.shadowAnchor = new GPoint(100, 100);
	baseIcon.infoWindowAnchor = new GPoint(39, 13);

	
	var mapMarkers = new Array();
	var initZoom = false;
	
	var startingPoint = "";
	
	
	
	
	
	
	
	function showAddress(name, strasse, ort, land, url, nr, openInfo, subdomain, marken, koordinaten) {
		//alert("Subdomain = " + openInfo);
		//console.log("SHOW = "+name);
		if(initZoom != true)
		{
			// Startort
			startAddress = "Engelstetten, Deutschland";//ortsListe[i][1] + "," + ortsListe[i][2] + "," + ortsListe[i][3];
			
			startAddress = "Muenchen, Deutschland";
			geocoder.getLatLng(
				startAddress,
				function(startPoint) {
					if (!startPoint) {
						alert("Die folgende Adresse wurde vom System nicht exakt gefunden:\n" + adresse);
					} else {
						map.setCenter(startPoint, 8);
						startingPoint = startPoint;
						//map.panTo(point);
					}
				}
			);
			initZoom = true;
		}
		
		if(koordinaten != "")
		{
			adresse = koordinaten;
		}
		else
		{
			adresse = strasse + "," + ort + "," + land;
		}
		geocoder.getLatLng(
		adresse,
	
		function(point) 
		{
			//alert(nr + name + strasse + ort);
			if (!point)
			{
				// Hier dann entsprechend anders konvertieren (ohne Hausnummer, Strasse) und ggf. nochmal probieren
				
				// MZ 08.10.2007 AUSKOMMENTIERT
				//alert(nr + ": Die folgende Adresse wurde vom System nicht exakt gefunden:\n" + adresse);
			} 
			else 
			{
				if(initZoom != true)
				{
					//map.setCenter(point, 9); // Die Zahl ist die Zoomstufe, 1=Ganze Welt, 17 = Super-Detail
					initZoom = true;
				}
				else
				{
					//map.setCenter(point);
				}
	
				var markerNr = nr - 1;
				//console.log("MARKERNR="+markerNr);
				var icon = new GIcon(baseIcon);
				// Hier das Zahlenbild
				icon.image = "/media/image/icons/googlemap/auto" + nr + ".png";
				var marker = new GMarker(point,icon);
				mapMarkers[markerNr] = marker;
				
				//var infoHTML = "<strong>" + name + "</strong><br />" + strasse + "<br />" + ort + "<br /><br />" + url;
				var infoHTML = "<div class='image'><img src='/media/flash/logos/png/" + subdomain + ".png' class='logo'></div><div class='marken'>" + marken + "</div><div class='text'>" + strasse + "<br />" + ort + "<br /><br />" + url+"</div>";
				
				GEvent.addListener(marker,"click",function()
				{
					//infoHTML = '<iframe src="http://www.tb-online.de" width="400" height="400">';
					//alert(infoHTML);
					marker.openInfoWindowHtml(infoHTML);
				});
				
				map.addOverlay(marker);
				
				if(openInfo == true)
				{
					marker.openInfoWindowHtml(infoHTML);
				}
			}
		});
	}
	
	var ladeStatus = false;
	
	function fillMap(art,wert)
	{
		//console.log("WERT="+wert);
		//console.log("FILL MAP");
		
		if(ladeStatus == true)
		{
			//console.log("HIDE MAP");
			hideMap();
		}
		
		//console.log("ANZAHL ORTE="+ortsListe.length);
		
		// Ausgabe der Standorte auf MAP
		for(i=0;i<ortsListe.length;i++)
		{
			if(art == "filterMarke")
			{
				filterMarkeStatus = false;
				if(wert && wert != "undefined") {
					for(k=0;k<wert.length;k++)
					{
						for(n=0;n<markenListe[i].length;n++)
						{
							if(markenListe[i][n] == wert[k])
							{
								filterMarkeStatus = true;
								showMarker(i);
								//showAddress(ortsListe[i][0],ortsListe[i][1],ortsListe[i][2],ortsListe[i][3],i+1);
								break;
							}
							else
							{
								//showMarker(i);
							}
						}
					}
				}
			}
			else
			{
				// [!] ggf. Filterkriterien des Users 
				if(ladeStatus != true)
				{
					k = i;
					myNr = i+1;
					//showAddress(ortsListe[i][0],ortsListe[i][1],ortsListe[i][2],ortsListe[i][3],ortsListe[i][4],i+1,false,ortsListe[i][5],ortsListe[i][6],ortsListe[i][7]);
					setTimeout("showAddress('"+ortsListe[i][0]+"','"+ortsListe[i][1]+"','"+ortsListe[i][2]+"','"+ortsListe[i][3]+"','"+ortsListe[i][4]+"','"+myNr+"','"+false+"','"+ortsListe[i][5]+"','"+ortsListe[i][6]+"','"+ortsListe[i][7]+"')",250*k);
				}
				else
				{
					
					//console.log("i="+i);
					showMarker(i);
				}
			}
		}
		if(ladeStatus != true)
		{
			ladeStatus = true;
		}
	}
	
	function showMarker(nr)
	{
		i = nr;
		//showAddress(ortsListe[i][0],ortsListe[i][1],ortsListe[i][2],ortsListe[i][3],i+1,false);
		map.removeOverlay(mapMarkers[i]);
		map.addOverlay(mapMarkers[i]);
		if(ladeStatus == true)
		{
			document.getElementById("ort_" + i).style.display = "block";
		}
	}
	
	//alert(map.overlays[0]);
	
	/*function clearMap()
	{
		for(t=0;t<ortsListe.length;t++)
		{
			map.removeOverlay(mapMarkers[t]);
			if(ladeStatus == true)
			{
				document.getElementById("ort_" + i).style.display = "block";
			}
		}
		// Liste zur�cksetzen
		mapMarkers = new Array();
		map.closeInfoWindow();
	}*/
	
	function hideMap(onlyMap)
	{
		//console.log("L�NGE="+ortsListe.length);
		for(t=0;t < ortsListe.length;t++)
		{
			//console.log(mapMarkers.length);
			if(t<mapMarkers.length && mapMarkers[t] && mapMarkers[t] != "undefined"){
				map.removeOverlay(mapMarkers[t]);
			}
			if(onlyMap != true)
			{
				//console.log("ort="+t);
				document.getElementById("ort_" + t).style.display = "none";
				//console.log("none="+t);
			}
		
		}
		map.closeInfoWindow();
	}
	
	function showMap()
	{
		//alert(mapMarkers.length);
		for(t=0;t < ortsListe.length;t++)
		{
			/*if(document.getElementById("ort_" + t).style.display == "none")
			{
				map.addOverlay(mapMarkers[t]);
				document.getElementById("ort_" + t).style.display = "block";
			}*/
			setTimeout('showMarker(t)',1000);
		}
		for(i=0;i<anzahlMarken;i++)
		{
			field = document.filter["marke_" + i];
			field.checked = false;
		}
		map.closeInfoWindow();
		map.panTo(startingPoint);
	}
	
	var anzahlMarken = 0;
	
	function filterMarke(anzahl)
	{
		anzahlMarken = anzahl;
		hideMap(false);
		fillMarken = new Array();
		for(i=0;i<anzahl;i++)
		{
			field = document.filter["marke_" + i];
			if(field.checked == true)
			{
				fillMarken.push(field.value);
			}
		}
		if(fillMarken.length > 0)
		{
			fillMap("filterMarke",fillMarken);
		}
		else
		{
			fillMap("standard");
		}
	}
	
	function filterOrt(nr)
	{
		i = nr;
		hideMap(true);
		map.addOverlay(mapMarkers[i]);
		// Jetzt noch hinbewegen
		address = ortsListe[i][1] + "," + ortsListe[i][2] + "," + ortsListe[i][3];
		
		geocoder.getLatLng(
			address,
			function(point) {
				if (!point) {
					alert("Die folgende Adresse wurde vom System nicht exakt gefunden:\n" + adresse);
				} else {
					map.panTo(point);
					//var infoHTML = "<strong>" + ortsListe[i][0] + "</strong><br />" + ortsListe[i][1] + "<br />" + ortsListe[i][2] + "<br /><br />" + ortsListe[i][4];
					var infoHTML = "<div class='image'><img src='/media/flash/logos/png/" + ortsListe[i][5] + ".png' class='logo'></div><div class='marken'>" + ortsListe[i][6] + "</div><div class='text'>" + ortsListe[i][1] + "<br />" + ortsListe[i][2] + "<br /><br />" + ortsListe[i][4]+"</div>";

					mapMarkers[i].openInfoWindowHtml(infoHTML);
				}
			}
		);

		//map.setCenter(point);
		// Info-Layer anzeigen
		//map.removeOverlay(mapMarkers[i]);
		//showAddress(ortsListe[i][0],ortsListe[i][1],ortsListe[i][2],ortsListe[i][3],i+1,true);
	}
    //]]>
