/**
 * End
 */

window.onunload = end;

function end(){
	
	GUnload();
}

/**
 * Setup map
 */

function setup_map() {	
	
	if (GBrowserIsCompatible()) {
		
		/**
		if (typeof gmap == "object") {

			zoom_status = gmap.getZoom();
			start_latitude = gmap.getCenter().lat();
			start_longitude = gmap.getCenter().lng();
		}
		*/
		
		gmap = new GMap2(document.getElementById("googlemap"));
		gmap.setMapType(G_HYBRID_MAP);
		gmap.setCenter(new GLatLng(start_latitude, start_longitude), zoom_status);
		gmap.enableDoubleClickZoom();
		gmap.enableScrollWheelZoom();
		gmap.setUIToDefault();
		gmap.enableRotation();
		
		window.setTimeout(add_markers_from_xml, 0);
	}
}

/**
 * Add markers from XML
 */

function add_markers_from_xml(){
	
	if (
		typeof(project_id) != "undefined" &&
		typeof(country_id) != "undefined" &&
		typeof(region_id) != "undefined"
		) {

		var start_markers_data_xml_doc = "include/gmaps/object2.php?";
		start_markers_data_xml_doc += "project_id=" + project_id + "&";
		start_markers_data_xml_doc += "country_id=" + country_id + "&";
		start_markers_data_xml_doc += "region_id=" + region_id;

		if (typeof(location_id) != "undefined") {
			
			start_markers_data_xml_doc += "&lid=" + location_id;
		}

		var markers_data_xml_doc = start_markers_data_xml_doc;
		
		var batch = [];
		mgr = new MarkerManager(gmap);
		var request = GXmlHttp.create();
		request.open("GET", markers_data_xml_doc, true);
		request.onreadystatechange = function() {
		
			if (request.readyState == 4) {
			
				var xmlDoc = request.responseXML;
				var markers = xmlDoc.documentElement.getElementsByTagName("object");
				
				for (var i = 0; i < markers.length; i++) {
				
					var point = new GLatLng(parseFloat(markers[i].getAttribute("latitude")), parseFloat(markers[i].getAttribute("longitude")));
					var latitude = markers[i].getAttribute("latitude");
					var longitude = markers[i].getAttribute("longitude");
					var icon = markers[i].getAttribute("icon");
					var location_url = markers[i].getAttribute("location_url");
					var desc = markers[i].getAttribute("desc");
					var address = markers[i].getAttribute("address");
					var postal = markers[i].getAttribute("postal");
					var city = markers[i].getAttribute("city");
					
					var html = "<b>" + desc + "</b><br />";
					html += address + "<br />";
					html += city + "<br /><br />";
					html += "<a style='color:#e05a00' href='"+location_url+"'><b>Meer details &raquo;</b></a>";
					
					var marker = createMarker(point,html,icon);
					
					batch.push(marker);
				}

				mgr.addMarkers(batch,zoom_icon);
				mgr.refresh();
			}
		}
		
		request.send(null);
	}
}	

function createMarker(point,html,icon_src) {

	var icon = new GIcon();
	icon.image = icon_src;
	icon.iconAnchor = new GPoint(14, 14);
	icon.infoWindowAnchor = new GPoint(20, 0);
	icon.iconSize = new GSize(14, 14);

	var marker = new GMarker(point, { icon: icon });
	GEvent.addListener(marker, "click", function() {
	    marker.openInfoWindowHtml(html);
	});		
	
	return marker;
}
