// GOOGLE MAPS 
var gmap, gicon, gmapShowAll, gmapInitLon, gmapInitLat, gmapInitZoom;
var gmapStateList = new Array();
var gmapStateInfo = new Array();
var gmapMarkers = new Array();

// Creates one of our tiny markers at the given point
function createMarker(lon, lat, blurb) {
	var pt = new GPoint(lon, lat);
	/* AJP: Custom map icons started causing problems on 3/1/06.*/
	var marker = new GMarker(pt); //(pt, gicon);
	gmap.addOverlay(marker);
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(blurb);
	});
}

function runGoogleMap() {
	gmap = new GMap(document.getElementById("MerckMap"));
	gmap.addControl(new GSmallMapControl());
	gmap.centerAndZoom(new GPoint(gmapInitLon, gmapInitLat), gmapInitZoom);
	
	gicon = new GIcon();
	gicon.image = "http://merck-ut.merck.com/images_site/logos/logo.png";
	gicon.shadow = "http://merck-ut.merck.com/images_site/logos/logo-shad.png";
	gicon.iconSize = new GSize(26, 41);
	gicon.shadowSize = new GSize(45, 41);
	gicon.iconAnchor = new GPoint(13, 40);
	gicon.infoWindowAnchor = new GPoint(5, 1);
	
	for (var i=0; i < gmapMarkers.length; i++) {
		createMarker(gmapMarkers[i][0], gmapMarkers[i][1], gmapMarkers[i][2]);
	}
}

function initGoogleMap(lon, lat, zoom, showall) {
	gmapInitLon = lon;
	gmapInitLat = lat;
	gmapInitZoom = zoom;
	gmapShowAll = showall;
	
	if (window.onload)	{
		var loadStrGM = window.onload.toString();
		var newLoadStrGM = loadStrGM.substring(loadStrGM.indexOf("{") + 1,loadStrGM.lastIndexOf("}") - 1) + "\r" + ";" + "runGoogleMap()";
		window.onload = new Function(newLoadStrGM);
	} 
	else {
		window.onload = runGoogleMap;
	}
}


function zoomTo(lon, lat, zoom) {
	gmap.centerAndZoom(new GPoint(lon, lat), zoom);
}

function gmapSelectState(state) {
	if (state == null || state == "") {
		zoomTo(gmapInitLon, gmapInitLat, gmapInitZoom);
		for (var i=0; i < gmapStateList.length; i++) {
			var id = "gmap" + i;
			document.getElementById(id).style.display = gmapShowAll;
		}
	}
	else {
		for (var i=0; i < gmapStateInfo.length; i++) {
			if (state == gmapStateInfo[i][0]) {
				zoomTo(gmapStateInfo[i][1], gmapStateInfo[i][2], gmapStateInfo[i][3]);
				break;
			}
		}
		for (var i=0; i < gmapStateList.length; i++) {
			var id = "gmap" + i;
			document.getElementById(id).style.display = (gmapStateList[i]==state ? 'block' : 'none');
		}
	}
}

