var map = null;
var geocoder;

function showGermany(names) {

	if (!GBrowserIsCompatible()) return false;
	map = new GMap2(document.getElementById("map"));
	geocoder = new GClientGeocoder();
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());	
	GoogleAPI_Zoom('Germany',5);

	GEvent.addListener(map, "click", function(marker, point) {
		if (marker) {
			top.location.href=marker.linkurl;
		} 
	});
}

function GoogleAPI_LoadXML(url) {

	GDownloadUrl(url, function(data, responseCode) {
	
		var xml = GXml.parse(data);
  	var markers = xml.documentElement.getElementsByTagName("marker");
		for (var i = 0; i < markers.length; i++) {
			var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
															parseFloat(markers[i].getAttribute("lng")));
			var marker = new GMarker(point);
			map.addOverlay(marker);
			marker.linkurl = 'city?q='+markers[i].getAttribute("linkq")+'&id='+markers[i].getAttribute("linkid");
		}

	});
}

function GoogleAPI_Zoom(address,zoomlevel) {
	if (!GBrowserIsCompatible()) return false;

	var geocoder = new GClientGeocoder();
	geocoder.getLatLng(
		address,
		function(point) {
			if (!point) {
				mapstyle = document.getElementById("map").style;
				mapstyle.display = 'none';
			} else {
	
				map.setCenter(point, zoomlevel);
			}
		}
	 );
}

function addCity(address,detaillink) {
	if (!GBrowserIsCompatible()) return false;
	geocoder.getLatLng(address,
		function (point) {
			if (point) {
				var marker = new GMarker(point);
				marker.linkurl = detaillink;
				map.addOverlay(marker);
			}
		}
	);
}


 function showGMap(address, dealer) {
	if (!GBrowserIsCompatible()) return false;
	if (map == null) {
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
	}
	var geocoder = new GClientGeocoder();
	geocoder.getLatLng(
		address,
		function(point) {
	
			if (!point) {
				mapstyle = document.getElementById("route").style;
				mapstyle.display = 'none';
			} else {

				map.setCenter(point, 13);
				var marker = new GMarker(point);
				map.addOverlay(marker);
				marker.openInfoWindowHtml("<b>"+dealer+"</b><br>"+address);
			}
		}
	 );
 }

function showMap(address) {
	if (!GBrowserIsCompatible()) return false;
	map = new GMap2(document.getElementById("map"));
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
	geocoder = new GClientGeocoder();
	geocoder.getLatLng(address,showAddress);
}

function showAddress(point) {
	if (!GBrowserIsCompatible()) return false;
	map.setCenter(point, 10);	
}

function addStation(address,stationname,detaillink) {
	if (!GBrowserIsCompatible()) return false;
	geocoder.getLatLng(address,
		function (point) {
			if (point) {
				var marker = new GMarker(point);
			  GEvent.addListener(marker, "click", function() {
			    marker.openInfoWindowHtml("<b>"+stationname+"</b><br>"+address+"<br><br><a href="+detaillink+">Händlerdetails anzeigen &gt;&gt;</a>");
			  });
				map.addOverlay(marker);
			}
		}
	);
}
