var map;
var side_bar_html;
var gmarkers;
var htmls;
var markID;
var bounds;

var icons = new Array();
icons[""] = new GIcon(); 
icons[""].image = "http://www.google.com/mapfiles/marker.png"; 
icons[""].shadow="http://www.google.com/mapfiles/shadow50.png"; 
icons[""].iconSize=new GSize(20,34); 
icons[""].shadowSize=new GSize(37,34); 
icons[""].iconAnchor=new GPoint(9,34); 
icons[""].infoWindowAnchor=new GPoint(9,2); 
icons[""].infoShadowAnchor=new GPoint(18,25); 
icons[""].printImage="http://www.google.com/mapfiles/markerie.gif"; 
icons[""].mozPrintImage="http://www.google.com/mapfiles/markerff.gif"; 
icons[""].printShadow="http://www.google.com/mapfiles/dithshadow.gif"; 
icons[""].transparent="http://www.google.com/mapfiles/markerTransparent.png";
icons[""].imageMap=[9,0,6,1,4,2,2,4,0,8,0,12,1,14,2,16,5,19,7,23,8,26,9,30,9,34,11,34,11,30,12,26,13,24,14,21,16,18,18,16,20,12,20,8,18,4,16,2,15,1,13,0]; 


function numberedIcon(iconNumber) {
	var number;
	if (isNaN(parseInt(iconNumber))) {
		number = "";
	} else if (!isNaN(parseInt(iconNumber)) && ((iconNumber < 0) || (iconNumber > 99))) {
		number = "";
	} else if ((typeof(iconNumber)=="undefined") || (iconNumber==null)) { 
		number = "" 
	} else { 
		number = iconNumber; 
	}

	if (!icons[iconNumber]) {
		var icon = new GIcon(icons[""]);
		icon.image = "common/images/mapIcons/marker"+ number +".png";
		icons[iconNumber]=icon;
	} 
	return icons[iconNumber];
}

function openInfoWin(i) {
	gmarkers[i].openInfoWindowHtml(htmls[i]);
}

function createMarker(point,name,html,iconStr) {
	html = '<div style="white-space:nowrap;">' + html + '</div>';
	var marker = new GMarker(point, numberedIcon(iconStr));
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(html);
	});

	bounds.extend(point);

	gmarkers[markID] = marker;
	htmls[markID] = html;
	side_bar_html += '<li class="level3"><a href="javascript:openInfoWin(' + markID + ')">' + name + '<\/a><\/li>';
	markID++;

	return marker;
}

process_it = function (doc) {
	var zoomLevel;
	var jsonData = eval('(' + doc + ')');

	for (var i = 0; i < jsonData.markers.length; i++) {
		var point = new GLatLng(jsonData.markers[i].lat, jsonData.markers[i].lng);
		var marker = createMarker(point, jsonData.markers[i].label, jsonData.markers[i].html, jsonData.markers[i].afd);
		map.addOverlay(marker);
	}

	side_bar_html = '<ul>' + side_bar_html + '<\/ul>';
	document.getElementById("sidebar_submenu_element").innerHTML = jsonData.sidebar.replace(/\[AREALIST\]/, side_bar_html);

	zoomLevel = map.getBoundsZoomLevel(bounds);
	if (zoomLevel > 17) { zoomLevel = 17; }
	map.setCenter(bounds.getCenter());
	map.setZoom(zoomLevel);
}

function loadAreaMap(areaID) {
	markID = 0;
	side_bar_html = "";
	gmarkers = [];
	htmls = [];

	map.clearOverlays();
	bounds = new GLatLngBounds();
	GDownloadUrl('xget/xgetEgbMapMarkers.asp?mid=' + curMenuSelID + '&sid=' + egbSelParam + '&oid=' + areaID + (typeof(curMenuSel) != "undefined" ? '&msel=' + curMenuSel : ''), process_it);
}

function initialize(areaID){
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map_canvas"));
		map.setUIToDefault();
		map.setCenter(new GLatLng(0,0),0);

		if (typeof(areaID) == "undefined") { areaID = 0 }
		loadAreaMap(areaID);
	}
}

