/**
 * 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("map"));
		gmap.setMapType(G_NORMAL_MAP);
		gmap.setCenter(new GLatLng(start_latitude, start_longitude), zoom_status);
		gmap.enableDoubleClickZoom();
		gmap.enableScrollWheelZoom();
		gmap.setUIToDefault();
		window.setTimeout(add_markers_from_xml, 0);		
	}
}

/**
 * Add markers from XML
 */

function add_markers_from_xml(){
	
	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 desc = markers[i].getAttribute("desc");
				var marker = createMarker(point,desc);				
				
				batch.push(marker);
			}					
			
			mgr.addMarkers(batch,zoom_icon);
			mgr.refresh();
		}
	}
	
	request.send(null);
}	

function createMarker(point,html) {

	var icon = new GIcon();
	icon.image = "gfx/icon/marker.png";
	icon.iconAnchor = new GPoint(20, 34);
	icon.infoWindowAnchor = new GPoint(20, 0);
	icon.iconSize = new GSize(20, 34);

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