var cm_map;
var cm_markers = [];

// On page load, call this function
function initGoogleMap()
{
	cm_map = new GMap2(document.getElementById("googleMap"), { backgroundColor: '#99b3cc' });
	cm_map.addControl(new GSmallZoomControl());	
	cm_map.addControl(new GMenuMapTypeControl());
	cm_map.setCenter(new GLatLng(0,0),1);
	if(cm_map.isLoaded()) {
		cm_addMarkers();
	} else {
		GEvent.addListener(cm_map,"load",cm_addMarkers); 
	}
}

function cm_showAddress(index)
{
	try {
		GEvent.trigger(cm_markers[index], "click");
	} catch(err) {}
}

function cm_addMarkers() 
{
	if(cm_locations.length > 0) { 
		var cm_bounds = new GLatLngBounds();
		for(var i=0; i < cm_locations.length; i++ ) 
		{ 
			try { 
				var placeName = cm_locations[i].title;
				var placeHtml = cm_locations[i].html;
				var point = new GLatLng(cm_locations[i].lat,cm_locations[i].lng);
				var opts = { title:placeName }
				var marker = cm_marker(point,placeName,placeHtml,opts);
				cm_map.addOverlay(marker); // Add the marker to map
				cm_markers.push(marker);
				cm_bounds.extend(point); 
				try {
					if(cm_locations[i].defaultLocation) {
						marker.openInfoWindowHtml(placeHtml, {maxWidth:300}); 
					}
				} catch(err){}
			} catch(err) {}
			if(cm_markers.length < (i+1)) {
				cm_markers.push(0);
			}
		}
		cm_map.setZoom(cm_map.getBoundsZoomLevel(cm_bounds));
		cm_map.setCenter(cm_bounds.getCenter());
	} else {
		try {
			var geocoder;
			geocoder = new GClientGeocoder();
			geocoder.getLocations(cm_mapcenter, function(response) {
				if(response.Status.code != G_GEO_SUCCESS || response.Placemark.length == 0) { return; }
				place = response.Placemark[0];
				var point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
				cm_map.setCenter(point, 11);
				var marker = new GMarker(point);
				cm_map.addOverlay(marker);
				marker.openInfoWindowHtml(cm_mapcenter);
			});
		} catch(err) { }
	}
}

function cm_marker(point,placeName,placeHtml,opts) 
{
	var marker = new GMarker(point,opts); // Create a marker
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(placeHtml, {maxWidth:300}); 
	});
	return marker;
}

Event.observe(window, 'load', function() { initGoogleMap(); });
Event.observe(window, 'unload', function() { GUnload(); });
