function goToMarker(lat,lng, naam) {
	map.panTo(new GLatLng(lat, lng));
	map.openInfoWindow(new GLatLng(lat, lng), naam);
}
	
function Markers(color){
	map.getInfoWindow().hide() 

	if (document.getElementById(color).checked == false) {
		for (var i = 0; i < gmarkers.length; i++) {
			if (gmarkers[i].type == color)  {
				map.removeOverlay(gmarkers[i]);
			}
		}
	} 
	else { 
		for (var i = 0; i < gmarkers.length; i++) {
			if (gmarkers[i].type == color)  {
				map.addOverlay(gmarkers[i]);
			}
		}
	}
}

GMap.prototype.centerAndZoomOnBounds = function(bounds) {
	var center_lat = (bounds.getNorthEast().lat() + bounds.getSouthWest().lat()) / 2.0;
	var center_lng = (bounds.getNorthEast().lng() + bounds.getSouthWest().lng()) / 2.0;
	var center = new GLatLng(center_lat,center_lng)

	map.setCenter(center, map.getBoundsZoomLevel(bounds));
}

var gmarkers=[];
var map;
var request;
var bounds = new GLatLngBounds();

var baseIcon = new GIcon();
baseIcon.image = "/images/maps/icon_red.png";
baseIcon.shadow = "/images/maps/shadow.png";
baseIcon.iconSize = new GSize(12, 20);
baseIcon.shadowSize = new GSize(22, 20);
baseIcon.iconAnchor = new GPoint(6, 20);
baseIcon.infoWindowAnchor = new GPoint(5, 1);
baseIcon.imageMap = [4,0,0,4,0,7,3,11,4,19,7,19,8,11,11,7,11,4,7,0]; 
baseIcon.transparent = "/images/maps/transparent.png";

var icons=[];

function customIcon(iconColor) {
	if (!icons[iconColor]) {
		var icon = new GIcon(baseIcon);
		icon.image = "/images/maps/icon_"+ iconColor +".png";
		icons[iconColor] = icon;
	} 

	return icons[iconColor];
}
	

function addMarker(lng, lat, title, iconStr) {
	var point = new GLatLng(lat, lng);
	var icon = customIcon(iconStr);

	bounds.extend(point);
	var marker = new GMarker(point, icon);

	gmarkers.push(marker);
	marker.type = iconStr; 

	GEvent.addListener(marker, "click", function () {
		var text = title;
		marker.openInfoWindowHtml(text);
	});

	map.addOverlay(marker);
}

function processXML() { 
	if (request.readyState == 4) {
		var xmlDoc = request.responseXML;
		
		markers = xmlDoc.documentElement.getElementsByTagName("marker");

		for (var i = 0; i < markers.length; i++) {
			var color = markers[i].getAttribute("icon");
	
			addMarker(parseFloat(markers[i].getAttribute("lng")),parseFloat(markers[i].getAttribute("lat")),markers[i].getAttribute("name"), color);
			document.getElementById(color).checked = true;
		}
	
		map.centerAndZoomOnBounds(bounds);
	}
} 
				  
function init() {
	if (GBrowserIsCompatible()) {
		map = new GMap(document.getElementById("map"));

		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		
		request = GXmlHttp.create(); 
		request.open("GET", "/api/map_markers.php?id=" + land_id, true); 
		request.onreadystatechange = processXML;
		request.send(null);
	}
}
			
window.onload = init;
window.onunload = GUnload;
