var map, baseIcon, bounds, loc=null, locBk, markers=[], infoContents=[], icons=[];

function onLoad()
{
	var map_elem = document.getElementById("mymap");
	if (map_elem == "undefined") return;
	if (!GBrowserIsCompatible()) { map_elem.innerHTML = "Sorry, your browser cannot display a Google Map"; return; }

	map = new GMap2(map_elem);
	var small_map = (map_elem.style.width=="308px");
	map.addControl(small_map ? new GSmallMapControl() : new GLargeMapControl());
	if (!small_map)
		map.addControl(new GMapTypeControl());
	//map.addControl(new GOverviewMapControl(new GSize(150,150)));
	makeBaseIcon();
	map.setCenter(new GLatLng(0,0),0);
	bounds = new GLatLngBounds();

	addMarkers();	// TO BE PROVIDED BY CONTENT

	map.setZoom(small_map ? 6 : map.getBoundsZoomLevel(bounds));
	var clat = (bounds.getNorthEast().lat() + bounds.getSouthWest().lat())/2;
	var clng = (bounds.getNorthEast().lng() + bounds.getSouthWest().lng())/2;
	map.setCenter(new GLatLng(clat, clng));
};
function onUnload()
{
	var map_elem = document.getElementById("mymap");
	if (map_elem == "undefined") return;
	GUnload();
};

function makeBaseIcon()
{
	baseIcon = new GIcon();
	baseIcon.shadow = "http://best-city-reviews.com/images/maps/shadow50.png";
	baseIcon.iconSize = new GSize(20, 34);
	baseIcon.shadowSize = new GSize(37, 34);
	baseIcon.iconAnchor = new GPoint(9, 34);
	baseIcon.infoWindowAnchor = new GPoint(9, 2);
	baseIcon.infoShadowAnchor = new GPoint(18, 25);
};

function addMarker(i, place, lat, lng, info)
{
	var point = new GLatLng(lat, lng);
	if (i==0) {
		icons[i] = new GIcon(baseIcon);
		icons[i].image = "http://best-city-reviews.com/images/maps/marker.png";
		//icons[0] = new GMarker(point);
	} else {
		icons[i] = new GIcon(baseIcon);
		icons[i].image = "http://best-city-reviews.com/images/maps/icong" + place.toString() + ".png";	// ".gif";
	}
	markers[i] = new GMarker(point, icons[i]);

	infoContents[i] = info;
	if (info.length>0)
		GEvent.addListener(markers[i], "click", function() { clickMarker(i); });
	map.addOverlay(markers[i]);
	bounds.extend(point);
	return markers[i];
};

function clickMarker(i)
{
	if (i>0)
	{
		if (loc!=null) loc.style.backgroundColor=locBk;
		/*loc = document.getElementById("mymap_loc" + i));
		if (loc!=null && loc!="undefined")
		{
			locBk = loc.style.backgroundColor;
			loc.style.backgroundColor="#ecfeda";
		}*/
	}

	markers[i].openInfoWindowHtml(infoContents[i]);
};

