// load Google Maps
function loadGoogleMapsProjects(xml_path, wrapper_id)
{
	var gm_xml_path		= !xml_path ? '' : xml_path;
	var gm_wrapper_id	= !wrapper_id ? 'result_map' : wrapper_id;
	
	if (GBrowserIsCompatible())
	{
		var map = new GMap2(document.getElementById(gm_wrapper_id));
		
		if (map)
		{
			// map.setCenter(new GLatLng(37.4419, -122.1419), 13);
			var geocoder = new GClientGeocoder();
			// geocoder.setBaseCountryCode("nl");
			
			var mapTypeControl = null;
			
			// add controls
			// map.addControl(new GMapTypeControl());
			// map.addControl(new GLargeMapControl());
			
			GDownloadUrl(gm_xml_path, function(data, responseCode)
			{
				var xml = GXml.parse(data);
				
				// store markers in markers array
				var markers = xml.documentElement.getElementsByTagName("marker");

				// create marker icon
				var icon = new GIcon();
				icon.image = "/img/logo_klein.png";
				icon.iconSize = new GSize(20, 19);
				icon.iconAnchor = new GPoint(0, 20);
				icon.infoWindowAnchor = new GPoint(5, 1);

				var latlngbounds = new GLatLngBounds();

				// loop over the markers array
				for ( var i = 0; i < markers.length; i++)
				{
					var address = markers[i].getAttribute("address");
					var html = GXml.value(markers[i].getElementsByTagName("infowindow")[0]);
					var label = markers[i].getAttribute("label");
					var title = markers[i].getAttribute("title");
					showAddress(map, geocoder, address, html, label, icon, latlngbounds, title);
				}
			});
		}
	}
}

// showAddress
function showAddress(map, geocoder, address, html, label, icon, latlngbounds, title)
{
	geocoder.getLatLng(address, function(point)
	{
		if (!point)
		{
			alert(address + " niet gevonden");
		}
		else
		{
			latlngbounds.extend(point);
			// set centre using the calculated values
			map.setCenter(latlngbounds.getCenter(), map.getBoundsZoomLevel(latlngbounds));

			var marker = createMarker(point, html + '<br/><br/>' + address, icon, title);
			map.addOverlay(marker);
		}
	});
}

// Create marker and set up event window
function createMarker(point, html, icon, title)
{
	var marker = new GMarker(point, {icon: icon, title: title});
	GEvent.addListener(marker, "click", function()
	{
		marker.openInfoWindowHtml(html);
	});
	
	return marker;
}
