// Globals
var map;
var bottomRight = false;
var mapControls = "small";
var scaleControl = false;
var bounds = null;
var longi = 40.620319;	
var lati = -75.375758;		
var zoomLevel = 14;	
var firstRun = true;

// KML
var kml_array = new Array();

kml_array['inn']      = "http://maps.google.com/maps/ms?f=q&hl=en&geocode=&time=&date=&ttype=&ie=UTF8&mid=1200005092&msa=0&output=kml&msid=106224930378247306713.00045dc9d426544943ccd";	
kml_array['poi']      = "http://maps.google.com/maps/ms?f=q&hl=en&geocode=&time=&date=&ttype=&ie=UTF8&mid=1200005092&msa=0&output=kml&msid=106224930378247306713.00045dca0309aee250857";	
kml_array['dining']   = "http://maps.google.com/maps/ms?f=q&hl=en&geocode=&time=&date=&ttype=&ie=UTF8&mid=1200005092&msa=0&output=kml&msid=106224930378247306713.00045dc9ef8f1f1b625ae";	
kml_array['shopping'] = "http://maps.google.com/maps/ms?f=q&hl=en&geocode=&time=&date=&ttype=&ie=UTF8&mid=1200005092&msa=0&output=kml&msid=106224930378247306713.00045dc9fd4a30504e117";	
kml_array['colleges'] = "http://maps.google.com/maps/ms?f=q&hl=en&geocode=&time=&date=&ttype=&ie=UTF8&mid=1200005092&msa=0&output=kml&msid=106224930378247306713.00045dc9ddd13de40c3c4";	
kml_array['events']   = "http://maps.google.com/maps/ms?f=q&hl=en&geocode=&time=&date=&ttype=&ie=UTF8&mid=1200005092&msa=0&output=kml&msid=106224930378247306713.00045dca0795a0d957fe0";
kml_array['historic'] = "http://maps.google.com/maps/ms?f=q&hl=en&geocode=&time=&date=&ttype=&ie=UTF8&mid=1200005092&msa=0&output=kml&msid=106224930378247306713.00045dca09e7969e105c9";
// kml_array['outdoor']  = "http://maps.google.com/maps/ms?f=q&hl=en&geocode=&time=&date=&ttype=&ie=UTF8&mid=1200005092&msa=0&output=kml&msid=106224930378247306713.00045dca0cff91d5e4d72";

var toogleXML;
var poiXml;	
var diningXml;	
var shoppingXml;	
var collegesXml;	
var eventsXml;
var historicXml;
// var outdoorXml;

var onColor = "#fefefe";
var onColorRGB = "rgb(255,255,255)";
var onText = "#000";

var offColor = "#fff";
var offColorRGB = "rgb(255, 255, 255)";
var offText = "#808080";


	
function init(){
	googleMap();
	
	// outdoorXml = new GGeoXml(kml_array['outdoor'], function(){ zoomToXml(outdoorXml); });
	collegesXml = new GGeoXml(kml_array['colleges']);
	poiXml = new GGeoXml(kml_array['poi']);		
	diningXml = new GGeoXml(kml_array['dining']);		
	shoppingXml = new GGeoXml(kml_array['shopping']);		
	eventsXml = new GGeoXml(kml_array['events']);		
	historicXml = new GGeoXml(kml_array['historic']);
	
	innXml = new GGeoXml(kml_array['inn'], function(){ zoomToXml(innXml); });		

}

function googleMap() { 
	if (GBrowserIsCompatible()) { 
		map = new GMap2(document.getElementById("map")); 
		map.setMapType(G_PHYSICAL_MAP);
		if(bottomRight == true){map.addControl(new GOverviewMapControl())}; 
		if(mapControls == "large"){map.addControl(new GLargeMapControl())} 
		else if(mapControls == "small"){map.addControl(new GSmallMapControl())} 
		else if(mapControls == "smallZoom"){map.addControl(new GSmallZoomControl())}; 
		if(scaleControl == true){map.addControl(new GScaleControl())}; 
		map.setCenter(new GLatLng(longi, lati), zoomLevel); 
		
	}
}

function zoomToXml(geoXML){
	var center = geoXML.getDefaultCenter();
	var span = geoXML.getDefaultSpan();
	var sw = new GLatLng(center.lat() - span.lat() / 2, center.lng() - span.lng() / 2);
	var ne = new GLatLng(center.lat() + span.lat() / 2, center.lng() + span.lng() / 2);
	var bounds = new GLatLngBounds(sw, ne);
	
	map.addOverlay(geoXML);	
	
	if(firstRun == true) {
		map.setCenter(new GLatLng(longi, lati), zoomLevel);		
	}
	
	else{
		map.setCenter(center);
		map.setZoom(map.getBoundsZoomLevel(bounds));	
	}	
}

function toggle(obj) 
{ 
	firstRun = false;
	var el = document.getElementById(obj); 
	
	if (el.style.backgroundColor == offColorRGB || el.style.backgroundColor == offColor) {  
		setToOn(obj); 
	}  
	else { 
		setToOff(obj);  
	} 
}

function toggleZoom(geoXML){
	var center = geoXML.getDefaultCenter();
	var span = geoXML.getDefaultSpan();
	var sw = new GLatLng(center.lat() - span.lat() / 2, center.lng() - span.lng() / 2);
	var ne = new GLatLng(center.lat() + span.lat() / 2, center.lng() + span.lng() / 2);
	var bounds = new GLatLngBounds(sw, ne);

	map.setCenter(center);
	map.setZoom(map.getBoundsZoomLevel(bounds));
}

function setToOff(item){

	var el = document.getElementById(item); 
	el.style.backgroundColor=offColor; 
	el.style.color=offText; 	
	toogleXML = new GGeoXml(kml_array['inn'], function(){ toggleZoom(toogleXML); });
	map.removeOverlay(window[item + "Xml"]);
}

function setToOn(item){ 

	var el = document.getElementById(item); 
	el.style.backgroundColor=onColor; 
	el.style.color=onText; 	
	toogleXML = new GGeoXml(kml_array[item], function(){ toggleZoom(toogleXML); });
	map.addOverlay(window[item + "Xml"]); 
	
}