//<![CDATA[
	var map;
	var geocoder;
	var lastMarker;
	var lastSavedMarker;
	
	var CLong; CLong = 51.589;
	var CLat; CLat = 4.774491;
	
	var geoMarkers;
	
	function gotoCenter () {
		map.setCenter(new GLatLng(CLong, CLat), 7);
	}
	
	function load() { if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		geocoder = new GClientGeocoder();
		
		//if (document.getElementById("lng").value == '0') document.getElementById("lng").value = CLong;
		//if (document.getElementById("lat").value == '0') document.getElementById("lat").value = CLat;
			
		lastMarker = new GMarker(new GPoint(CLong, CLat));
		lastSavedMarker = new GMarker(new GPoint(CLong, CLat));
		 
	    gotoCenter();
	
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		
		// Create our "tiny" marker icon
		var icons = new Array();
		
		icons[0] = new GIcon();
		icons[0].image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
		icons[0].shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
		icons[0].iconSize = new GSize(12, 20);
		icons[0].shadowSize = new GSize(22, 20);
		icons[0].iconAnchor = new GPoint(6, 20);
		icons[0].infoWindowAnchor = new GPoint(5, 1);
		
		icons[1] = new GIcon();
		icons[1].image = "http://labs.google.com/ridefinder/images/mm_20_blue.png";
		icons[1].shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
		icons[1].iconSize = new GSize(12, 20);
		icons[1].shadowSize = new GSize(22, 20);
		icons[1].iconAnchor = new GPoint(6, 20);
		icons[1].infoWindowAnchor = new GPoint(5, 1);
		
		icons[-1] = new GIcon();
		icons[-1].image = "http://labs.google.com/ridefinder/images/mm_20_black.png";
		icons[-1].shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
		icons[-1].iconSize = new GSize(12, 20);
		icons[-1].shadowSize = new GSize(22, 20);
		icons[-1].iconAnchor = new GPoint(6, 20);
		icons[-1].infoWindowAnchor = new GPoint(5, 1);
		
		
		function createMarker(point, info, icon) {
			  var marker = new GMarker(point, icon);
			  
			  if (info != "") {
				  GEvent.addListener(marker, "click", function() { 
		  				window.setTimeout(function() {
						  map.panTo(point);
						}, 1000);

					  marker.openInfoWindowHtml(info); 
				});
			  }
			  
			  return marker;
		}
		
		function CPointOfSale(lat, lng, name) { // Point of sale
			this.point = new GLatLng(lat, lng);
			this.name = name;
		}
		
		function addslashes(str) {
			str=str.replace(/\'/g,'\\\'');
			str=str.replace(/\"/g,'\\"');
			str=str.replace(/\\/g,'\\\\');
			str=str.replace(/\0/g,'\\0');
			return str;
		}
		
		function stripslashes(str) {
			str=str.replace(/\\'/g,'\'');
			str=str.replace(/\\"/g,'"');
			str=str.replace(/\\\\/g,'\\');
			str=str.replace(/\\0/g,'\0');
			return str;
		}
	
		function decode(str) {
			return stripslashes(str).replace('&amp;', '&');
		}
		
		GDownloadUrl("kaartdata.php", function(data, responseCode) {
		  var xml = GXml.parse(data);
		  geoMarkers = xml.documentElement.getElementsByTagName("marker");
		  for (var i = 0; i < geoMarkers.length; i++) { var m = geoMarkers[i];
		    var point = new GLatLng(parseFloat(decode(m.getAttribute("lat"))),
		                            parseFloat(decode(m.getAttribute("lng"))));
		    if (!((point.lat() == 0.0) && (point.lng() == 0.0))) {
	            var type = parseInt(decode(m.getAttribute("type")));
	            
	            var url = decode(m.getAttribute("url")); 		    
	            var header;
	            if (url == "") {
		            header = "<b>" + decode(m.getAttribute("name")) + "</b>";
	            } else {
		            header = "<b><a class=\"nav\" href=\"" + url + "\">" + decode(m.getAttribute("name")) + "</a></b>";
	            }
	            
	            var links = "";
	            if (m.getAttribute("useriscreator") == 1) {
					links = "<a class=\"nav\" href=\"map.php?action=edit&lid=" + decode(m.getAttribute("id")) + "\">edit</a>/"
				           + "<a class=\"nav\" href=\"map.php?action=remove&lid=" + decode(m.getAttribute("id")) + "\">remove</a>";
				};
				//links = links  + "<right><a class=\"nav\" href=\"javascript:centerLocation(" + i + ")\" >center</a></right>";
	            
				var info = "<span class=\"gen\">" + header 
				           + "<br>" + decode(m.getAttribute("street")) + " " + decode(m.getAttribute("streetnumber"))
				           + "<br>" + decode(m.getAttribute("location")) + ", " + decode(m.getAttribute("country"))
				           + "<br><br>"
				           + links
				           + "</span>"
				           ;
				           
				map.addOverlay(createMarker(point, info, icons[type]));
			}
		  }
		});
		
		function placeActiveMarker(marker, point) {
			map.removeOverlay(lastMarker);
			  
			document.getElementById("lat").value = point.lat().toString();
			document.getElementById("lng").value = point.lng().toString();
		
			marker = new GMarker(point);
			map.addOverlay(marker);
			lastMarker = marker;
		}
	} }

	function gotoCenter () {
		map.setCenter(new GLatLng(CLong, CLat), 7);
	}
	
	function undoGeoSearch() {
		map.removeOverlay(lastMarker);
		document.getElementById("lat").value = lastSavedMarker.getPoint().lat().toString();
		document.getElementById("lng").value = lastSavedMarker.getPoint().lng().toString();
				
		map.addOverlay(lastSavedMarker);
		lastMarker = lastSavedMarker;
		
		map.setCenter(lastSavedMarker.getPoint(), 13);
	}
	
	function geoSearch() {
		if (geocoder) {
			map.removeOverlay(lastMarker);
			
			straat = document.formEditLocation.street.value;
			straatNummer = document.formEditLocation.streetNumber.value;
			woonplaats = document.formEditLocation.location.value
			land = document.formEditLocation.country.value;
			locatieString = straat + " " + straatNummer + ", " + woonplaats + ", " + land;
	
			geocoder.getLatLng(locatieString,
				function(point) {
			      if (!point) {
			        alert(address + " not found");
			      } else {
					document.getElementById("lat").value = point.lat().toString();
					document.getElementById("lng").value = point.lng().toString();
				
					marker = new GMarker(point);
					map.addOverlay(marker);
					lastMarker = marker;
					map.setCenter(point, 14);
			      }
				}
			);
	  	}
	}
	
	function centerLocation(id) {
		m = geoMarkers[id];
				var point = new GLatLng(parseFloat(m.getAttribute("lat")),
		                                parseFloat(m.getAttribute("lng")));
		window.setTimeout(function() {
		  map.panTo(point);
		}, 1000);
	}
//]]>
