//<![CDATA[
if (GBrowserIsCompatible()) {
	_mPreferMetric=true;
	var map = new GMap2(document.getElementById("map"));
	var start = new GLatLng(47.722769,10.315979);
	map.setCenter(start, 10);
	map.addControl(new GLargeMapControl());
	new GKeyboardHandler(map);
	map.enableContinuousZoom();
	map.enableDoubleClickZoom();
	
	var ovSize=new GSize(50, 50)
	var ovMap=new GOverviewMapControl(ovSize);
	map.addControl(ovMap);
	
	var geocoder = new GClientGeocoder();
	
	document.getElementById("map").style.display = "none";
	document.getElementById("info").style.display = "none";

	function draw(pnt){
		map.clearOverlays();
		var plz = document.getElementById("plz").value;
		var i = document.getElementById("land").selectedIndex;
		var land = document.getElementById("land").options[i].text;
		var givenQuality = 60;
		
		GDownloadUrl("geo.php?xml=1&plz="+plz+"&land="+land, function(data, responseCode) {
			var xml = GXml.parse(data);
			var pos = xml.documentElement.getElementsByTagName("pos");
			var ort = pos[1].getAttribute("ort");
			if(ort == '')
			{
				document.getElementById("suchen").value = "Erneut Suchen";
				document.getElementById("suchen").disabled = "";
				document.getElementById("map").style.display = "none";
				document.getElementById("info").style.display = "none";
				document.getElementById("adressen").style.display = "none";
				alert('Die PLZ wurde leider nicht gefunden!');
				return false;
			}
			document.getElementById("ort").innerHTML = ort;
			var umkreis = pos[1].getAttribute("umkreis");
			document.getElementById("umkreis").innerHTML = umkreis;
			var adressen = '';

			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 adresse = str_replace('||','<br>',markers[i].getAttribute("km"));
				var adresse = str_replace('|','<br>',markers[i].getAttribute("km"));
				var adresse = str_replace('##','</b>',adresse);
				var adresse = str_replace('#','<b>',adresse);
				var marker = createMarker(point,adresse)
				map.addOverlay(marker);
				var adressen = adressen+'<li>'+adresse+'<br><br></li>';

				if(i<1 && pos[1].getAttribute("lng").length>1) {
					var centre = new GLatLng(pos[1].getAttribute("lng"),pos[1].getAttribute("lat"));
					map.setCenter(centre);
					map.savePosition();
					map.panDirection(-0.1,-0.1);
					var centre = map.getCenter()
					drawCircle(centre, umkreis, givenQuality);
					map.returnToSavedPosition();
					map.setZoom(11);
				}
			}
			document.getElementById("adressen").innerHTML = '<font class="n"><b>Hier die H&auml;ndler in der &Uuml;bersicht:</b><br><ul>'+adressen+'</li></font>';
			document.getElementById("adressen").style.display = "block";
			document.getElementById("anzahl").innerHTML = i;
			document.getElementById("info").style.display = "block";
			document.getElementById("map").style.display = "block";
			document.getElementById("suchen").value = "Erneut Suchen";
			document.getElementById("suchen").disabled = "";
		});
	}
	
	function str_replace(search, replace, subject)
	{
	  var result = "";
	  var  oldi = 0;
	  for (i = subject.indexOf (search)
		 ; i > -1
		 ; i = subject.indexOf (search, i))
	  {
		result += subject.substring (oldi, i);
		result += replace;
		i += search.length;
		oldi = i;
	  }
	  return result + subject.substring (oldi, subject.length);
	}
	
	function createMarker(point,html) {
		var icon = new GIcon();
		icon.image = "bilder/apo.png";
		icon.shadow = "bilder/schatten.png";
		icon.iconSize = new GSize(39, 34);
		icon.shadowSize = new GSize(39, 34);
		icon.iconAnchor = new GPoint(10, 31);
		icon.infoWindowAnchor = new GPoint(5, 1);

        var marker = new GMarker(point, icon);
        GEvent.addListener(marker, "click", function() {
        	marker.openInfoWindowHtml(html);
        });
        return marker;
    }
	
	function drawCircle(center, radius, nodes) {
		var latConv = center.distanceFrom(new GLatLng(center.lat()+0.1, center.lng()))/100;
		var lngConv = center.distanceFrom(new GLatLng(center.lat(), center.lng()+0.1))/100;
	
		var points = [];
		var step = parseInt(360/nodes)||10;
		for(var i=0; i<=360; i+=step){
			var pint = new GLatLng(center.lat() + (radius/latConv * Math.cos(i * Math.PI/180)), center.lng() + 
			(radius/lngConv * Math.sin(i * Math.PI/180)));
			points.push(pint);
		}
		var poly = new GPolyline(points, "#00885f",4,0.8);
		map.addOverlay(poly);
	}
	function suchen() {
		if(isNaN(document.getElementById("plz").value)) {
			alert('Nur PLZ können gesucht werden!');	
		}
		else
		{
			document.getElementById("suchen").value = "Bitte warten...";
			document.getElementById("suchen").disabled = "disabled";
			draw();
		}
	}
}
//]]>
