 var buttonKeyMap={"cityHeader":"cityContainer","officeHeader":"officeContainer"};
 var map;//object map
 var miniBoxArray=new Array();//array containing the text that are in the markers.
 var lastMarker = "";//used to remember if last marker was clicked to adjust correctly the zoom level on zoomAndCenterMarker()
 var zoomLevel = 4;//default zoom level of map
function expandMenu(obj){
	divEle=document.getElementById(document.getElementById(obj.id).nextSibling.id);
	for(var i in buttonKeyMap){
		document.getElementById(buttonKeyMap[i].toString()).style.display="none";
	}
	divEle.style.display="block";
}

var oldOnload=window.onload;

window.onload = function(){
		oldOnload();
		var ajax = new AJAX('map/getArray.php',null,'GET',null, 'getResponse');
		document.getElementById("loading").style.display="none";
		for(var i in buttonKeyMap){
			document.getElementById(i.toString()).style.display="block"; 
		}
		document.getElementById("officeContainer").style.display="block";
		document.getElementById("gisTag").style.display="block";
		document.getElementById("neigTag").style.display="block";
		document.getElementById("wardTag").style.display="block";
		document.getElementById("mapInfo").style.display="block";
}; 
function test(overlay,point) {//test function to know geopoint
	var mark = map.getMarkerObject("mark_1");
	var n="";
	for(i in mark.YGeoPoint){
		n+=i+"\n";
	}
	alert(mark.YGeoPoint.Lat +" " +mark.YGeoPoint.Lon);
} 
function loadMap(){
	if(isBrowserYMapCompatible()){
		var myPoint=new YGeoPoint( 42.09962348952,-72.55302429199219);//lat,longitude
		map = new YMap(document.getElementById('mapContainer')); 
		map.drawZoomAndCenter(myPoint,5);
		map.addTypeControl();
		map.addPanControl();
		map.addZoomLong();
		}
	else{
		window.location="/COS/index.php?id=ymapnotsupported";	
	}
}
function createMarker(lat, longitude, id, label, text){
	var geopoint,marker,addressMap;
	arguments.length>4? addressMap = arguments[5]:"";
 	if(lat !=0 || longitude !=0 ) geopoint = new YGeoPoint(lat,longitude);
 	marker = new YMarker(geopoint||addressMap,id);	
	marker.addAutoExpand("<span class=autoExpand>"+label+"</span>");
	marker.setSmartWindowColor("blue");
	var strLink = arguments[6]!=""?"<br /><a href="+arguments[6]+" target=_blank >Learn more</a>":"";
	var tmp = "<span class=autoExpand><h4>"+label+"</h4></span><img src='map/img/space.gif' height='6' /><br /><span class=miniBox>"+text+(strLink!=""?strLink:"")+"<br /><img src='map/img/space.gif' height='6' /><br /><b>Address: </b>"+addressMap+"<br /><img src='map/img/space.gif' height='6' /><br /><b>Driving Directions:</b><br /><a href='javascript:void(0);' id='from' onclick='getDirections(this,\""+marker.id+"\");' >from here</a>&nbsp;&nbsp;<a href='javascript:void(0);' id='to' onclick='getDirections(this,\""+marker.id+"\");' >to here</a><br /><img src='map/img/space.gif' height='6' /><br /><img src='map/img/magnify.gif' /><a href='javascript:void(0);' onclick='zoomAndCenterMarker(\""+id+"\");'> Zoom &amp; center</a></div>";
	miniBoxArray[id]=tmp;
  	YEvent.Capture(marker,EventsList.MouseClick, 
    function() { 	
	marker.openSmartWindow(tmp);
	});
	map.addOverlay(marker);
	marker.addressMap=addressMap;	
  return marker;
}
function getResponse(response){
 	var respArr = unescape(response).split("|");
	for(var i=0; i < respArr.length; i++){
		temp = respArr[i].split("^*^")
		createMarker(temp[0],temp[1],"mark_"+(i+1),temp[2], temp[3],temp[4], temp[5]);		
	}
}
 function autoExpand(markerId){
	map.getMarkerObject(markerId).openAutoExpand();	
 }
 function autoClose(markerId){
	map.getMarkerObject(markerId).closeAutoExpand();
 }
 function openSmallWindow(markerId){
	map.getMarkerObject(markerId).openSmartWindow(miniBoxArray[markerId]);
 }
 function zoomAndCenterMarker(markerId){
	if(markerId==lastMarker){
		zoomLevel!=2?zoomLevel--:"";		
	}
	else{
		lastMarker=null;
		zoomLevel=4;
	}
	lastMarker = markerId;
	map.drawZoomAndCenter(map.getMarkerObject(markerId).YGeoPoint, zoomLevel);
 }
function getDirections(ele,markerId){
	var url="http://api.maps.yahoo.com/dd?";
	ele.id!="from"?url+="taddr=":url+="newaddr="; 
	window.open(url+map.getMarkerObject(markerId).addressMap.replace(/\s/g,"+"),'','height=640,width=650,top=100,left=490,resizable=yes,status=0,scrollbars=yes' );
}
/**
 *	@function : isBrowserYMapCompatible()
 *	@params   : None
 *  @purpose  : Verify if Yahoo maps will work on browsers
 *
 **/
function isBrowserYMapCompatible(){
	if (!window.RegExp) return false;
	var AGENTS = ["opera","firefox","msie","netscape"];
	var agent = navigator.userAgent.toLowerCase();
	for (var i = 0; i < AGENTS.length; i++) {
		var agentStr = AGENTS[i];			
		if (agent.indexOf(agentStr) != -1) {
			var versionExpr = new RegExp(agentStr + "[ \/]?([0-9]+(\.[0-9]+)?)");				
			var version = 0;
			if (versionExpr.exec(agent) != null) {
				version = parseFloat(RegExp.$1);
			}
			if (agentStr == "opera") return version >= 7;
			if (agentStr == "safari") return version >= 125;
			if (agentStr == "msie") return (version >= 5.5 &&agent.indexOf("powerpc") == -1);
			if (agentStr == "netscape") return version >= 7;			
			if (agentStr == "firefox") return version >= 1;
		}
	}
	return !!document.getElementById;
}
