// GLOBAL_VARIABLES

var map;
var campusLayer;
var campusMap;
var campusHybridLayer;
var campusRoadMap;
var scaleControl;
var largeMapControl;
var overviewControl;
var moreButton;

var MTU_MAP ;
// Prototype trim function, necessary for xml variables
String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); }

// arrays to hold copies of the markers and html used by the sidebar
// because the function closure trick doesnt work there
//http://www.econym.demon.co.uk/googlemaps/index.htm
var MTU_MARKER_INDEX = 0; 
var MTU_MARKER = [] ;
var MTU_MARKER_PRINT = [];
var MTU_MARKER_PRINT_DIV = [];
var MTU_MARKER_INFO = [] ;
var MTU_MARKER_INFO_DRIVING_TO = [] ;
var MTU_MARKER_INFO_DRIVING_FROM = [] ;
var MTU_MARKER_POINT = [] ;


var MTU_XML_DOC_CLASSROOM ;
var MTU_XML_DOC_RESIDENCE ;
var MTU_XML_DOC_OTHERS ;
var MTU_XML_DOC_ALL;
var MTU_XML_DOC_STUDENT_LOTS ;
var MTU_XML_DOC_FACULTY_STAFF_LOTS ;
var MTU_XML_DOC_VISITOR_LOTS;
var MTU_XML_DOC_ALL_LOTS;
var MTU_XML_DOC_PHONE;
var MTU_XML_DOC_RAMP;
var MTU_XML_DOC_OFFSITE;
var MTU_XML_DOC_RECREATION;
var MTU_XML_DOC_SEARCH;

//var P_MTU_MAP ; //custom map type
var MAIN_POINT ; //the location of MTU using MAIN_LAT & MAIN_LNG
var MAIN_MARKER ; //the marker that will point to ryerson location
var isClicked =  new Array();					


function preloadImg() {
theName = new Array();
preImg = document.getElementById('legendInside').getElementsByTagName("div");
	for(i=0;i<preImg.length;i++) {
		theName[i] = new Image();
		if(preImg[i].id == "all" || preImg[i].id == "alllots") {
			
		} else { 
		theName[i].src = "google/images/"+preImg[i].id+"down.png";
		}
	}
}

function toggleLayer(i) {
if (layers[i].Visible) {
  layers[i].hide();
  //console.log(i+" hidden");
} else {
  if(layers[i].Added) {
	layers[i].show();
	//console.log(i+" shown");
  } else {
	MTU_MAP.addOverlay(layers[i]);
	layers[i].Added = true;
	//console.log(i+" added");
  }
}
layers[i].Visible = !layers[i].Visible;
}

var layers = [];      
  layers[0] = new GLayer("org.wikipedia.en");
  layers[0].Visible = false;
  layers[0].Added = false;
  
  layers[1] = new GLayer("com.panoramio.all");
  layers[1].Visible = false;
  layers[1].Added = false;

  layers[2] = new GLayer("com.panoramio.popular");
  //map.addOverlay(layers[3]);  // This one open by default
  layers[2].Visible = false;
  layers[2].Added = false;
  
     function LayerControl(opts) {
        this.opts = opts;
      }
      LayerControl.prototype = new GControl();

      LayerControl.prototype.initialize = function(MTU_MAP) {
        var container = document.createElement("div");
        
        container.style.border = "2px solid black";
        container.style.fontSize = "12px";
        container.style.fontFamily = "Arial, sans-serif";
        container.style.width="80px";
        container.style.backgroundColor = "#ffffff";
        container.innerHTML = '<center><b>More...<\/b><\/center>';
        for (var i=0; i<this.opts.length; i++) {
          if (layers[i].Visible) {
            var c = 'checked';
          } else {
            var c = '';
          }
        
          container.innerHTML += '<input id="layer'+i+'" type="checkbox" onclick="toggleLayer('+i+')" ' +c+ ' /> '+this.opts[i]+'<br />';
        }
          
      
        MTU_MAP.getContainer().appendChild(container);
        
        // === This doesn't do what I want. It kills the control if I mouseover a checkbox ===
        // === If you know how to do this better, let me know ===

        //GEvent.addDomListener(container, "mouseout", function() {
        //  MTU_MAP.removeControl(layerControl);
        //});
        
       setTimeout("MTU_MAP.removeControl(layerControl)",5000);
        
        
        return container;
      }  

 function MoreControl() {}
      MoreControl.prototype = new GControl();

      MoreControl.prototype.initialize = function(MTU_MAP) {
        var container = document.createElement("div");
        container.style.border = "2px solid black";
        container.style.fontSize = "12px";
        container.style.fontFamily = "Arial, sans-serif";
        container.style.width="80px";
        container.style.backgroundColor = "#ffffff";
        container.style.textAlign = "center";
        container.innerHTML = "More...";
      
        MTU_MAP.getContainer().appendChild(container);
        
        GEvent.addDomListener(container, "mouseover", function() {
          MTU_MAP.addControl(layerControl);
        });
        
        
        return container;
      }
      
      MoreControl.prototype.getDefaultPosition = function() {
        return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(150, 7));
      }


      
      // ==== The "Layer" control displays the "More..." plus the checkboxes ====
      // ==== The checkbox info is passed in the "opts" parameter ====

 
      
      LayerControl.prototype.getDefaultPosition = function() {
        return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(150, 7));
      }



      // ==== toggleLayer adds and removes the layers ====

      

		var layerControl = new LayerControl(["Wiki", "Photos"]);


// == Function to get a png tile given tile coords and zoom 
function TileToQuadKey ( tx,  ty,  zl){
	var quad;
	quad = "";
	for (var i = zl; i > 0; i--){
		var mask = 1 << (i - 1);
		var cell = 0;
		if ((tx & mask) != 0)
			cell++;
		if ((ty & mask) != 0)
			cell += 2;
		quad += cell;
		}
	return quad;
}

function changeBodyClass() {
	document.body.className = document.body.className.replace('loading', 'standby');
	return false;
}

function load()
{
	document.getElementById("directionTo").checked = true;
	document.getElementById("directionFrom").checked = false;
	document.getElementById("daddr").value = "1400 Townsend Drive, Houghton, MI 49931-1295";
	document.getElementById("daddr").text = "1400 Townsend Drive, Houghton, MI 49931-1295";
	document.getElementById("daddr").setAttribute('readOnly', true);
	document.getElementById("saddr").value = "";
	document.getElementById("saddr").text = "";
	
	

	// check browser compatibility
	if (GBrowserIsCompatible())
	{
		// browser is compatible, load map xml files
		createMtuMap();

		// load the xml for classroom buildings
		loadMapXml("google/db/buildings/classroomBuildings.xml", "buildingAcademicList", "academicLoc") ;
		// load the xml for residential buildings
		loadMapXml("google/db/buildings/residenceBuildings.xml", "buildingResidenceList", "residenceLoc") ;
		// load the xml for non-residential buildings
		loadMapXml("google/db/buildings/otherBuildings.xml", "buildingOtherList", "otherLoc");
		// load the xml for all buildings
		loadMapXml("google/db/buildings/allBuildings.xml", "buildingAllList", "allLoc") ;
		// load the xml for student parking lots
		loadMapXml("google/db/lots/studentLots.xml", "lotStudentList", "studentLoc");
		// load the xml for faculty/staff parking lots
		loadMapXml("google/db/lots/facultyStaffLots.xml", "lotFacultyList", "facultyLoc");
		// load the xml for visitor parking lots
		loadMapXml("google/db/lots/visitorLots.xml", "lotVisitorList", "visitorLoc");
		// load the xml for all parking lots
		loadMapXml("google/db/lots/allLots.xml", "lotAllList", "alllotsLoc");
		// load the xml for all of the phones
		loadMapXml("google/db/other/phone.xml", "phoneList", "phoneLoc");
		// load the xml for all of the entrance ramps
		loadMapXml("google/db/other/ramp.xml", "rampList", "rampLoc");
		// load the xml for the offsite buildings
		loadMapXml("google/db/other/offsite.xml", "offsiteList", "offsiteLoc");
		// load the xml for the offsite buildings
		loadMapXml("google/db/other/recreation.xml", "recreationList", "recreationLoc");
		// load the xml for the search 
		loadMapXml("google/db/search/search.xml", "searchList", "searchLoc", true);
		
		document.getElementById("alllotsbox").checked = false;
		document.getElementById("allbox").checked = false;
		document.getElementById("academicbox").checked = false;
		document.getElementById("residencebox").checked = false;
		document.getElementById("otherbox").checked = false;
		document.getElementById("studentbox").checked = false;
		document.getElementById("facultystaffbox").checked = false;
		document.getElementById("visitorbox").checked = false;
		document.getElementById("phonebox").checked = false;
		document.getElementById("rampbox").checked = false;
	
	}
	else
	{
		// browser is not compatible, alert the user
		alert("Sorry, the Google Maps API is not compatible with this browser");
	}
	changeBodyClass('loading', 'standby');
}

/**
 * This function creates the campus google map
 */
function createMtuMap()
{
	 if (GBrowserIsCompatible()) {
		  
        MTU_MAP = new GMap2(document.getElementById("mtuMap"));
       

		//MTU_MAP.removeMapType(G_SATELLITE_MAP); // no fine resolution satellite image available for MTU location, so remove map
		MTU_MAP.removeMapType(G_HYBRID_MAP); 	// no fine resolution satellite image available for MTU location, so remove map
		//MTU_MAP.addMapType(G_PHYSICAL_MAP);		// add terrain map
	
		// campus map layer
		
				
		var hc = new GHierarchicalMapTypeControl();
		//hc.addRelationship(G_NORMAL_MAP, campusRoadMap, "Campus Overlay");
		
		scaleControl = new GScaleControl();
		largeMapControl = new GLargeMapControl3D();
		overviewControl = new GOverviewMapControl();
		moreButton = new MoreControl();
		
		MTU_MAP.addControl(hc);
		var bottomLeft = new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(3,120));
		var topLeft = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(20, 70));
		MTU_MAP.addControl(scaleControl, bottomLeft);
	 	MTU_MAP.addControl(largeMapControl, topLeft);
		MTU_MAP.addControl(overviewControl);
		MTU_MAP.addControl(moreButton);
		//MTU_MAP.addControl(new XSliderControl(campusHybridLayer[1].getOpacity()));
		MTU_MAP.setCenter(new GLatLng(47.115504, -88.544491), 15);
		MTU_MAP.setMapType(G_SATELLITE_MAP);
		
		
      
      // === Create the layerControl, but don't addControl() it ===
      // = Pass it an array of names for the checkboxes =
    
      // === Create the MoreControl(), and do addControl() it ===
     // MTU_MAP.addControl(new MoreControl());
		
		
	}
	
}

/**
 * This function will read the xml file from the server and
 * use the google's api to load it. After the loading is done
 * it will parse the data and create marker for each point.
 * Thanks to Mike (http://www.econym.demon.co.uk/googlemaps/basic3.htm)
 * for this excellent tutorial.
 */
function loadMapXml(xmlFileName, outputLocation, xmlFileId, async)
{

	//clear contents of Ajax destination div 
	if (outputLocation != "phoneList" && outputLocation != "rampList" && outputLocation != "searchList") {
		document.getElementById(outputLocation).innerHTML = "" ;
	}
	//alert("loading... " + xmlFileName) ;
	var infoTabs = [] ;
	var infoTabContents = [] ;
	
	// Read the data from xml file
	var request = GXmlHttp.create();
	
	if (async === undefined) {
		async = false;
	} 
	request.open("GET", xmlFileName, true) ;
		
	request.onreadystatechange = function()
	{
		if(request.readyState == 2 || request.readyState == 1)
		{
			//displayLoadingInfo("on") ;
		}
		if (request.readyState == 4)
		{
			var xmlDoc = request.responseXML;
			
			//save the xmlFile instance to the global variable passed as argument
			
			
			if(xmlFileId == "academicLoc")
				MTU_XML_DOC_CLASSROOM = xmlDoc ;
			else if(xmlFileId == "residenceLoc")
				MTU_XML_DOC_RESIDENCE = xmlDoc ;
			else if(xmlFileId == "otherLoc")
				MTU_XML_DOC_OTHERS = xmlDoc ;
			else if(xmlFileId == "allLoc")
				MTU_XML_DOC_ALL = xmlDoc ;
			else if(xmlFileId == "studentLoc")
				MTU_XML_DOC_STUDENT_LOTS = xmlDoc ;
			else if(xmlFileId == "facultyLoc")
				MTU_XML_DOC_FACULTY_STAFF_LOTS = xmlDoc ;
			else if(xmlFileId == "visitorLoc")
				MTU_XML_DOC_VISITOR_LOTS = xmlDoc;
			else if(xmlFileId == "alllotsLoc")
				MTU_XML_DOC_ALL_LOTS = xmlDoc;
			else if(xmlFileId == "phoneLoc")
				MTU_XML_DOC_PHONE = xmlDoc;
			else if(xmlFileId == "rampLoc")
				MTU_XML_DOC_RAMP = xmlDoc;	
			else if(xmlFileId == "offsiteLoc")
				MTU_XML_DOC_OFFSITE = xmlDoc;
			else if(xmlFileId == "recreationLoc")
				MTU_XML_DOC_RECREATION = xmlDoc;	
			else if(xmlFileId == "searchLoc")
				MTU_XML_DOC_SEARCH = xmlDoc;
						
			// obtain the array of markers and loop through it
			var markers = xmlDoc.documentElement.getElementsByTagName("marker");
			
			for (var i = 0; i < markers.length; i++)
			{
				// obtain the attribues of each marker
				var lat = parseFloat(markers[i].getAttribute("lat"));
				var lng = parseFloat(markers[i].getAttribute("lng"));
				var point = new GLatLng(lat,lng);
				//obtain the label tag and then retrieve the value and the id of the label
				var labelValue = GXml.value(markers[i].getElementsByTagName("label")[0]);
				var labelId = markers[i].getElementsByTagName("label")[0].getAttribute("id") ;
				var imgId = markers[i].getElementsByTagName("label")[0].getAttribute("imgId");
				var markerIcon = new GIcon();
				var label ;
				if(labelId){
					markerIcon.image = "google/images/map/" + labelId + ".png" ;
					markerIcon.printImage = "google/images/map/" + labelId + ".png";
					markerIcon.mozPrintImage = "google/images/map/" + labelId + ".png";
				}
				else if(imgId){
					markerIcon.image = "google/images/map/" + imgId + ".png" ;
					markerIcon.printImage = "google/images/map/" + imgId + ".png";
					markerIcon.mozPrintImage = "google/images/map/" + imgId + ".png";
				}
				
				markerIcon.iconSize = new GSize(20, 34);
				markerIcon.shadow = "google/images/map/customMarkerShadow.png";
				markerIcon.shadowSize = new GSize(36, 34);
				markerIcon.iconAnchor = new GPoint(10, 34);
				markerIcon.infoWindowAnchor = new GPoint(10,1);
				var label ;
				if(labelId)
					label = "<span class='bldCode'>" + labelId + "&mdash;</span><span class='bldName'>" + labelValue + "</span>" ;
				else 
					label = "<span class='bldName'>" + labelValue + "</span>" ;
				//obtain the html info that is a child element of <marker>
				/**
				 * Since the htmlInfo element also has multiple elements for tabs,
				 * loop over its child elements and save all the tabs in an array
				 */
				var html = markers[i].getElementsByTagName("htmlInfo");
				//first loop over htmlInfo element to get all the tabs
				var tabs = html[0].getElementsByTagName("tab") ;
				var tabLabel ;
				var tabContent ;
				
				for (var j = 0 ; j < tabs.length ; j++)
				{
					tabLabel = GXml.value(tabs[j].getElementsByTagName("tabLabel")[0]) ;
					tabContent = GXml.value(tabs[j].getElementsByTagName("tabContent")[0]) ;
					
					infoTabs.push(tabLabel) ;
					infoTabContents.push(tabContent) ;
				}
				var tabbedWindow = [] ;
				for (var j = 0 ; j < infoTabs.length ; j++)
				{
					tabbedWindow.push(new GInfoWindowTab(infoTabs[j], infoTabContents[j])) ;
				}
				createMarker(point,label, labelValue, outputLocation, tabbedWindow, markerIcon);
				infoTabs = removeArrayContent(infoTabs) ;
				infoTabContents = removeArrayContent(infoTabContents) ;
				tabbedWindow = removeArrayContent(tabbedWindow) ;
				
			}
		}
	}
	request.send(null);
	
}

//second loadXmlMap function, needed as JS functions do not support method overloading
function loadMapXmlShowAll(xmlFileName, outputLocation, xmlFileId)
{	
	
	var infoTabs = [] ;
	var infoTabContents = [] ;

	
	// Read the data from xml file
	var request = GXmlHttp.create();
	
	request.open("GET", xmlFileName, true) ;
		
	request.onreadystatechange = function()
	{
		if(request.readyState == 2 || request.readyState == 1)
		{}
		if (request.readyState == 4)
		{
			var xmlDoc = request.responseXML;
			
			//save the xmlFile instance to the global variable passed as argument
			
			if(xmlFileId == "academicLoc")
				MTU_XML_DOC_CLASSROOM = xmlDoc ;
			else if(xmlFileId == "residenceLoc")
				MTU_XML_DOC_RESIDENCE = xmlDoc ;
			else if(xmlFileId == "otherLoc")
				MTU_XML_DOC_OTHERS = xmlDoc ;
			else if(xmlFileId == "allLoc")
				MTU_XML_DOC_ALL = xmlDoc ;
			else if(xmlFileId == "studentLoc")
				MTU_XML_DOC_STUDENT_LOTS = xmlDoc ;
			else if(xmlFileId == "facultyLoc")
				MTU_XML_DOC_FACULTY_STAFF_LOTS = xmlDoc ;
			else if(xmlFileId == "visitorLoc")
				MTU_XML_DOC_VISITOR_LOTS = xmlDoc;
			else if(xmlFileId == "alllotsLoc")
				MTU_XML_DOC_ALL_LOTS = xmlDoc;
			else if(xmlFileId == "phoneLoc")
				MTU_XML_DOC_PHONE = xmlDoc;
			else if(xmlFileId == "rampLoc")
				MTU_XML_DOC_RAMP = xmlDoc;
			else if(xmlFileId == "offsiteLoc")
				MTU_XML_DOC_OFFSITE = xmlDoc;
			else if(xmlFileId == "recreationLoc")
				MTU_XML_DOC_RECREATION = xmlDoc;
			else if(xmlFileId == "searchLoc")
				MTU_XML_DOC_SEARCH = xmlDoc;				
						
			// obtain the array of markers and loop through it
			var markers = xmlDoc.documentElement.getElementsByTagName("marker");
	
			for (var i = 0; i < markers.length; i++)
			{
				// obtain the attribues of each marker
				var lat = parseFloat(markers[i].getAttribute("lat"));
				var lng = parseFloat(markers[i].getAttribute("lng"));
				var point = new GLatLng(lat,lng);
				//obtain the label tag and then retrieve the value and the id of the label
				var labelValue = GXml.value(markers[i].getElementsByTagName("label")[0]);
				var labelId = markers[i].getElementsByTagName("label")[0].getAttribute("id") ;
				var imgId = markers[i].getElementsByTagName("label")[0].getAttribute("imgId") ;
				var markerIcon = new GIcon();
				if(labelId){
					markerIcon.image = "google/images/map/" + labelId + ".png" ;
					markerIcon.printImage = "google/images/map/" + labelId + ".png";
					markerIcon.mozPrintImage = "google/images/map/" + labelId + ".png";
				}
				else if(imgId){
					markerIcon.image = "google/images/map/" + imgId + ".png";
					markerIcon.printImage = "google/images/map/" + imgId + ".png";
					markerIcon.mozPrintImage = "google/images/map/" + imgId + ".png";
				}
				
				markerIcon.iconSize = new GSize(20, 34);
				markerIcon.shadow = "google/images/map/customMarkerShadow.png";
				markerIcon.shadowSize = new GSize(36, 34);
				markerIcon.iconAnchor = new GPoint(10, 34);
				markerIcon.infoWindowAnchor = new GPoint(10,1);
				
				var label;
				if(labelId)
					label = "<span class='bldCode'>" + labelId + " - </span><span class='bldName'>" + labelValue + "</span>" ;
				else 
					label = "<span class='bldName'>" + labelValue + "</span>" ;
				//obtain the html info that is a child element of <marker>
				/**
				 * Since the htmlInfo element also has multiple elements for tabs,
				 * loop over its child elements and save all the tabs in an array
				 */
				var html = markers[i].getElementsByTagName("htmlInfo");
				//first loop over htmlInfo element to get all the tabs
				var tabs = html[0].getElementsByTagName("tab") ;
				var tabLabel ;
				var tabContent ;
				
				for (var j = 0 ; j < tabs.length ; j++)
				{
					//now, for each tab's get it's label tag and content tag
					tabLabel = GXml.value(tabs[j].getElementsByTagName("tabLabel")[0]) ;
					tabContent = GXml.value(tabs[j].getElementsByTagName("tabContent")[0]) ;
					
					infoTabs.push(tabLabel) ;
					infoTabContents.push(tabContent) ;
				}
				var tabbedWindow = [] ;
				for (var j = 0 ; j < infoTabs.length ; j++)
				{
					tabbedWindow.push(new GInfoWindowTab(infoTabs[j], infoTabContents[j])) ;
				}
	
				var marker = createMarkerShowAll(point,label, labelValue, outputLocation, tabbedWindow, markerIcon) ;
				MTU_MAP.addOverlay(marker) ;
				
				infoTabs = removeArrayContent(infoTabs) ;
				infoTabContents = removeArrayContent(infoTabContents) ;
				tabbedWindow = removeArrayContent(tabbedWindow) ;
				
			}
		}
	}
	request.send(null);
	
}

/**
 * A function to create the marker and set up the event window.
 * Every point that is received in the parameter, add it to the
 * global MARKER array using push method. Once the points are 
 * created and stored in the array, write the marker label
 * in the div called "sidebar", in which the user will click to
 * see the marker on the map.
 * @point - GPoint information of the marker. the point where the marker
 *			will be placed.
 * @name - 	The text that will be displayed in the sidebar
 * @sidebarObjId - The sidebar where this marker's label/name will be placed
 * @markerTab - The tabs and its contents for html information that will show
 * up in the information window	when the marker is clicked.
 */
 
function createMarker(point,name, nameTooltip, sidebarObjId, markerTab, markerIcon)
{
	// this variable will collect the html which will eventually be placed in the sidebar
	var sidebarHtml = "";
	var marker = new GMarker(point, markerIcon);
	var tabs = [] ;
	
	
	
	GEvent.addListener(marker, "click", function(){
		marker.openInfoWindowTabsHtml(markerTab) ;
		var latitude = point.lat();
	latitude = latitude + 0.002;
	var centerCoords = new GLatLng(parseFloat(latitude), point.lng());
	//alert(centerCoords);
	MTU_MAP.setCenter(centerCoords);
	});
		
	// save the info we need to use later for the sidebar and print version
	MTU_MARKER_PRINT.push(name);
	MTU_MARKER.push(marker) ;
	MTU_MARKER_INFO.push(markerTab) ;
	MTU_MARKER_POINT.push(point) ;
	
	//create the innerHTML
	sidebarHtml = '<li class="markerList" onclick="javascript:displayMarker(' + MTU_MARKER_INDEX + ');"><a class="markerList"  title = "' + nameTooltip + '">' + name + '</a></li>' ;
	
	if (sidebarObjId != "phoneList" && sidebarObjId != "rampList" && sidebarObjId != "searchList") {
		document.getElementById(sidebarObjId).innerHTML += sidebarHtml ;
	}

	MTU_MARKER_INDEX++;
	
}

//second marker function for showAll
function createMarkerShowAll(point,name, nameTooltip, sidebarObjId, markerTab, markerIcon)
{
	
	// this variable will collect the html which will eventually be placed in the sidebar
	var sidebarHtml = "";
	var marker = new GMarker(point, markerIcon);
	
	// save the info we need to use later for the sidebar and print version
	MTU_MARKER_PRINT_DIV.push(name);
	MTU_MARKER.push(marker);
	MTU_MARKER_INFO.push(markerTab) ;
	MTU_MARKER_POINT.push(point) ;
	
	GEvent.addListener(marker, "click", function(){
		marker.openInfoWindowTabsHtml(markerTab) ;
		
	var latitude = point.lat();
	latitude = latitude + 0.002;//orient the info window to stay near center of map
	var centerCoords = new GLatLng(parseFloat(latitude), point.lng());
	MTU_MAP.setCenter(centerCoords);
		
	});
		
	MTU_MARKER_INDEX++;
	return marker;
}


/**
 * This function will add the marker to the map using addOverlay
 * and set the center of the map to that point. After the html
 * info for that marker will be shown.
 */
function displayMarker(index)
{
	
	if (isClicked[index] != "yes") {
	isClicked[index] = "yes";
	//add the new marker to the map
	MTU_MARKER_PRINT_DIV.push(MTU_MARKER_PRINT[index]);
	MTU_MAP.addOverlay(MTU_MARKER[index]);
	}
	//alert(index);
	//alert(isClicked[index]);
	MTU_MARKER[index].openInfoWindowTabsHtml(MTU_MARKER_INFO[index], {selectedTab: 0});
	var coords = MTU_MARKER_POINT[index];
	var latitude = coords.lat();
	latitude = latitude + 0.002;
	var centerCoords = new GLatLng(parseFloat(latitude), coords.lng());
	//set the center of the map to this marker by using the point of the marker and set zoom level
	MTU_MAP.panTo(centerCoords);
	//MTU_MAP.setZoom(16);
	setZoom();
}


function removeArrayContent(arrayObj)
{
	var tempArray = [] ;
	arrayObj = tempArray ;
	return tempArray ;
}

function getDirectionToHere(toObjectId)
{
	//get the parentNode whose innerHTML will be replaced
	var directionDiv = document.getElementById(toObjectId) ;
	var innerHTMLa = "<p class='directionNav'><span>Get Directions: </span><span>To Here</span> - <span><a href = 'javascript:getDirectionFromHere(this)'>From Here</a></span></p>" +
					"<p class='directionInstruction'>Start Address</p>";

	innerHTMLa += "<div class='directionForm'>" +
				 "<form action='http://maps.google.com/maps' method='get'>" +
				 "<input type='text' size=40 name='saddr' id='saddr' value=''/>" +
				 "<input type='submit' value='Go'/>" +	
				 "</form></div>" ;

	innerHTMLa += "<p><span>&laquo; Back</span></p>" ;
	alert(directionDiv.innerHTML) ;
	directionDiv.innerHTML = innerHTMLa ;
	alert(directionDiv.innerHTML) ;
}


// == showAll checkbox has been clicked ==
function boxclick(box,category) 
{
	if (box.checked) {
	  show(box, category);
	} else {
	  hide(box, category);
	}
}

function searchBoxclick(box) 
{
	//alert(box.checked);
	if (box.checked) {
	  searchShow();
	} else {
	  searchHide();
	}
}


function labelclick(box, category)
{

	if (box.checked){
		hide(box, category);
		document.getElementById(category).className = category;
	} else {
		show(box, category);
		document.getElementById(category+"box").checked = true;
		document.getElementById(category).className = category + " active";
	}
	
	
}
function labelhover(box, category) {
	if(document.getElementById(category).className == category) {
	document.getElementById(category+'img').src = "google/images/"+category+"hover.png";
	document.getElementById(category).className = category + " hover";	
	} else if(document.getElementById(category).className == category + " active") {
	document.getElementById(category+'img').src = "google/images/"+category+"hover.png";
	document.getElementById(category).className = category + " active hover";
	}
}
function labeloffhover(box, category) {
	if(document.getElementById(category).className == category + " active hover") {
	document.getElementById(category+'img').src = "google/images/"+category+"down.png";
	document.getElementById(category).className = category + " active";	
	} else if(document.getElementById(category).className == category + " hover") {
	document.getElementById(category+'img').src = "google/images/"+category+"up.png";
	document.getElementById(category).className = category;
	}
}
function searchLabelclick(box)
{
	if (box.checked){
		box.checked = false;
		searchHide();
	} else {
		box.checked = true;
		searchShow();
	}
	
	
}

function toAddress() {

	document.getElementById("daddr").value = "1400 Townsend Drive, Houghton, MI 49931-1295";
	document.getElementById("daddr").text = "1400 Townsend Drive, Houghton, MI 49931-1295";
	document.getElementById("daddr").setAttribute('readOnly', true);
	document.getElementById("saddr").removeAttribute('readOnly');
	document.getElementById("saddr").value = "";
	document.getElementById("saddr").text = "";
	document.getElementById("saddr").click();
	document.getElementById("saddr").focus();
	document.getElementById("directionTo").checked = true;
	document.getElementById("directionFrom").checked = false;
} 
function fromAddress() {
	
	document.getElementById("saddr").value = "1400 Townsend Drive, Houghton, MI 49931-1295";
	document.getElementById("saddr").text = "1400 Townsend Drive, Houghton, MI 49931-1295";
	document.getElementById("saddr").setAttribute('readOnly', true);
	document.getElementById("daddr").removeAttribute('readOnly');
	document.getElementById("daddr").value = "";
	document.getElementById("daddr").text = "";
	document.getElementById("daddr").click();
	document.getElementById("daddr").focus();
	document.getElementById("directionFrom").checked = true;
	document.getElementById("directionTo").checked = false;
	
 
} 

  function searchShow(){
	  
	var pointCoords = new GLatLng();
	
	for (var i = 0 ; i < SEARCH_MARKER[i]; i++){
		pointCoords = SEARCH_MARKER[SEARCH_MARKER_INDEX].getPoint();
		var pointLat = parseFloat(pointCoords.lat());
		var pointLng = parseFloat(pointCoords.lng());
		
		pointCoords = new GLatLng(parseFloat(pointLat), parseFloat(pointLng));
		
		// An ELabel with complex contents
		var stuff = '<div id="stuff" onclick="javascript:displayInfo(' + SEARCH_MARKER_INDEX + ');" style="padding: 0px 0px 8px 8px; background: url(google/images/map/point_bottom_left.png) no-repeat bottom left;"><a><div style="background-color: #f2efe9; font-size: 8pt ; font-family: Verdana, Arial, Helvetica, sans-serif ; z-index: -1; padding: 2px;"><b> Quick&nbsp;Search <\/b><\/div><\/a><\/div>';
		var label = new ELabel(pointCoords, stuff, null, null, 65);
		MTU_MAP.addOverlay(SEARCH_MARKER[SEARCH_MARKER_INDEX]);
		label.pixelOffset = new GSize(5,-20);
		MTU_MAP.addOverlay(label);
		
	}
	
  }



// == shows all markers of a particular category, set center, and ensure the checkbox is checked ==
  function show(box, category) {
	
			// == check the checkbox ==
	
	
	if (category == "academic"){
		document.getElementById("academicimg").src = "google/images/"+category+"down.png";
		loadMapXmlShowAll("google/db/buildings/classroomBuildings.xml", "buildingAcademicList", "academicLoc") ;
	}
	else if (category == "residence"){
		document.getElementById("residenceimg").src = "google/images/"+category+"down.png";
		loadMapXmlShowAll("google/db/buildings/residenceBuildings.xml", "buildingResidenceList", "residenceLoc") ;
	}
	else if (category == "other"){
		document.getElementById("otherimg").src = "google/images/"+category+"down.png";
		loadMapXmlShowAll("google/db/buildings/otherBuildings.xml", "buildingOtherList", "otherLoc");
	}
	else if (category == "student"){
		document.getElementById("studentimg").src = "google/images/"+category+"down.png";
		loadMapXmlShowAll("google/db/lots/studentLots.xml", "lotStudentList", "studentLoc");
	}
	else if (category == "facultystaff"){
		document.getElementById("facultystaffimg").src = "google/images/"+category+"down.png";
		loadMapXmlShowAll("google/db/lots/facultyStaffLots.xml", "lotFacultyList", "facultyLoc");
	}
	else if (category == "visitor"){
		document.getElementById("visitorimg").src = "google/images/"+category+"down.png";
		loadMapXmlShowAll("google/db/lots/visitorLots.xml", "lotVisitorList", "visitorLoc");
	}
	else if (category == "phone"){
		document.getElementById("phoneimg").src = "google/images/"+category+"down.png";
		loadMapXmlShowAll("google/db/other/phone.xml", "phoneList", "phoneLoc");
	}	
	else if (category == "ramp"){
		document.getElementById("rampimg").src = "google/images/"+category+"down.png";
		loadMapXmlShowAll("google/db/other/ramp.xml", "rampList", "rampLoc");
	}
	
	MTU_MAP.closeInfoWindow();
	
	setBounds();
	setZoom();
	
  }
  
    // == hides all markers of a particular category, and ensures the checkbox is cleared ==
  function hide(box, category) {
	document.getElementById(category+"box").checked = false;
	refreshclickTab(category);
	document.getElementById(category+"img").src = "google/images/"+category+"up.png";
	//MTU_MAP.setCenter(new GLatLng(47.115504, -88.544491), 15);
	
	// == close the info window, in case its open on a marker that we just hid
  }
  
  function searchHide(){
  	refreshclickSearch();		  
  }
  
  function refreshclickMap(){
	  
	//MTU_MAP.removeControl('MoreControl');
	//$('layer0').setAttribute('checked','');
	//$('layer1').setAttribute('checked',''); 
	
	MTU_MAP.removeOverlay(layers[0])
	layers[0].Visible = false;
	layers[0].Added = false;
	
	
  	MTU_MAP.removeOverlay(layers[1])
	layers[1].Visible = false;
	layers[1].Added = false;
	
	isClicked = []; 
	MTU_MAP.closeInfoWindow();
    MTU_MAP.clearOverlays();
		
	MTU_MARKER_PRINT_DIV = removeArrayContent(MTU_MARKER_PRINT_DIV);
	SEARCH_MARKER_PRINT = removeArrayContent(SEARCH_MARKER_PRINT);
	
	//setOpacity(60);
	
	MTU_MAP.setCenter(new GLatLng(47.115504, -88.544491), 15);
	
	document.getElementById("searchResultDisplay").innerHTML = "";
	document.getElementById("searchtextbox").value = "";
	
	
	theClass = new Array();
	currClass = document.getElementById('legendInside').getElementsByTagName("div");
	for(i=0;i<currClass.length;i++) {
		theClass[i] = currClass[i].id;
		myclass = currClass[i].className;
		if(myclass.match(" active")) {
		myclass = myclass.replace(/ active/,"");
		document.getElementById(theClass[i]+"img").src = "google/images/"+theClass[i]+"up.png";
		}
		document.getElementById(theClass[i]).className = myclass;
		document.getElementById(theClass[i]+"box").checked = false;
	}
	
	
	/*var myList =  new Array("academic", "residence", "other", "student", "facultystaff", "visitor", "phone", "ramp");
	var myList = document.getElementById('legendInside').getElementsByTagName("div");
	var i = myList.length;
	var count = 0;
	
	while (count < i) {
	currclass = myList[count].className;
	if(currclass.match(" active")) {
		currclass = currclass.replace(/active/,"");	
	}
	alert(currclass);
	document.getElementById(currclass+"box").checked = false;
	count += 1;
	}*/
	
	//createMtuMap();


  }
  
  function refreshclickSearch(){
	  
	MTU_MAP.closeInfoWindow();
	var foundMarkerNames = [];
	if(SEARCH_MARKER_PRINT.length > 0){
		
		var xmlMarkers = MTU_XML_DOC_ALL.documentElement.getElementsByTagName("marker");
		var labels = MTU_XML_DOC_ALL.documentElement.getElementsByTagName("label");
		
		for (var h = 0; h < SEARCH_MARKER_PRINT.length; h++){
			var testStr = SEARCH_MARKER_PRINT[h];
			testStr = testStr.replace(/&(lt|gt);/g, function (strMatch, p1){
												return (p1 == "lt")? "<" : ">"; //trim all tags
			});
			var testStrStripped = testStr.replace(/<\/?[^>]+(>|$)/g, "");
			testStrStripped = testStrStripped.substring(testStrStripped.indexOf("-")+1, testStrStripped.indexOf("(") -1);
			testStrStripped=testStrStripped.replace( /( ){2,}/g," ");  //convert multiple spaces to a single space
			testStrStripped=testStrStripped.trim();                     //trim white space from ends of each line
			foundMarkerNames.push(testStrStripped);
		}
		
		for (var i = 0; i < SEARCH_MARKER.length; i++){
		
			for (var j = 0; j < foundMarkerNames.length; j++){
				
				var foundMarker = foundMarkerNames[j];
				foundMarker = foundMarker.trim();
				
				for (var k = 0; k < xmlMarkers.length; k++){
					
					var nodeTypeValue = xmlMarkers[k].childNodes[1].firstChild.nodeType;
					
					if(nodeTypeValue == 1){ // IE nodeType = 1
						var xmlMarker = xmlMarkers[k].childNodes[0].firstChild.nodeValue;
					} else if (nodeTypeValue == 3){ // other browsers nodeType = 3
						var xmlMarker = xmlMarkers[k].childNodes[1].firstChild.nodeValue;	
					}
					
					if(xmlMarker != null) xmlMarker = xmlMarker.trim();
					
					if(foundMarker == xmlMarker){
						
						var lat = parseFloat(xmlMarkers[k].getAttribute("lat"));
						var lng = parseFloat(xmlMarkers[k].getAttribute("lng"));
						var pointCoords = new GLatLng();
						pointCoords = SEARCH_MARKER[i].getPoint();
						var pointLat = parseFloat(pointCoords.lat());
						var pointLng = parseFloat(pointCoords.lng());
						if(pointLat == lat && pointLng == lng){
								
								MTU_MAP.removeOverlay(SEARCH_MARKER[i]);
					
						}
						
					}
				
				}
			
			}
			
		}
		
		for (var z = 0; z < SEARCH_MARKER_LABEL.length; z++){
			
			MTU_MAP.removeOverlay(SEARCH_MARKER_LABEL[z]);	
		
		}
		
	}
	document.getElementById("searchResultDisplay").innerHTML = "";
	document.getElementById("searchtextbox").value = "";
  }
  function refreshclickTab(category){
	  
 
	 if(category == "academic"){
		
		 
	 	 var markers = MTU_XML_DOC_CLASSROOM.documentElement.getElementsByTagName("marker");
		 for (var i = 0; i < MTU_MARKER.length; i++){
			var pointCoords = new GLatLng();
			pointCoords = MTU_MARKER[i].getPoint();
			var pointLat = parseFloat(pointCoords.lat());
			var pointLng = parseFloat(pointCoords.lng());
			for (var j = 0; j < markers.length; j++){
				var lat = parseFloat(markers[j].getAttribute("lat"));
				var lng = parseFloat(markers[j].getAttribute("lng"));
				var point = new GLatLng(lat,lng);
				if(pointLat == lat && pointLng == lng){
					MTU_MAP.removeOverlay(MTU_MARKER[i]);
										
				}
			}
		  }
		  var labels = MTU_XML_DOC_CLASSROOM.documentElement.getElementsByTagName("label");
		  for(var k = 0; k < MTU_MARKER_PRINT_DIV.length; k++){
				for(var l = 0; l < labels.length; l++){
					var name = labels[l].firstChild.nodeValue;
					name = name.trim();
					if(name && MTU_MARKER_PRINT_DIV && MTU_MARKER_PRINT_DIV[k].indexOf(name) != -1){
						MTU_MARKER_PRINT_DIV[k] = "";
					}
				}
		  }
		  for (var m = 0; m < MTU_MARKER_PRINT_DIV.length; m++){
		  		if(MTU_MARKER_PRINT_DIV[m] == ""){
					MTU_MARKER_PRINT_DIV.splice(m,1);	
				}
		  }
		  
	  }
	  
	  else if(category == "residence"){
	 	 var markers = MTU_XML_DOC_RESIDENCE.documentElement.getElementsByTagName("marker");
		 for (var i = 0; i < MTU_MARKER.length; i++){
			var pointCoords = new GLatLng();
			pointCoords = MTU_MARKER[i].getPoint();
			var pointLat = parseFloat(pointCoords.lat());
			var pointLng = parseFloat(pointCoords.lng());
			for (var j = 0; j < markers.length; j++){
				var lat = parseFloat(markers[j].getAttribute("lat"));
				var lng = parseFloat(markers[j].getAttribute("lng"));
				var point = new GLatLng(lat,lng);
				if(pointLat == lat && pointLng == lng){
					MTU_MAP.removeOverlay(MTU_MARKER[i]);
					
				}
			}
		 }
		 var labels = MTU_XML_DOC_RESIDENCE.documentElement.getElementsByTagName("label");
		  for(var k = 0; k < MTU_MARKER_PRINT_DIV.length; k++){
				for(var l = 0; l < labels.length; l++){
					var name = labels[l].firstChild.nodeValue;
					name = name.trim();
					if(name && MTU_MARKER_PRINT_DIV && MTU_MARKER_PRINT_DIV[k].indexOf(name) != -1){
						
						MTU_MARKER_PRINT_DIV[k] = "";
						
					}
				}
		  }
		  for (var m = 0; m < MTU_MARKER_PRINT_DIV.length; m++){
		  		if(MTU_MARKER_PRINT_DIV[m] == ""){
					MTU_MARKER_PRINT_DIV.splice(m,1);	
				}
		  }
		
	  }

	  else if(category == "other"){
	 	 var markers = MTU_XML_DOC_OTHERS.documentElement.getElementsByTagName("marker");
		 for (var i = 0; i < MTU_MARKER.length; i++){
			var pointCoords = new GLatLng();
			pointCoords = MTU_MARKER[i].getPoint();
			var pointLat = parseFloat(pointCoords.lat());
			var pointLng = parseFloat(pointCoords.lng());
			for (var j = 0; j < markers.length; j++){
				var lat = parseFloat(markers[j].getAttribute("lat"));
				var lng = parseFloat(markers[j].getAttribute("lng"));
				var point = new GLatLng(lat,lng);
				if(pointLat == lat && pointLng == lng){
					MTU_MAP.removeOverlay(MTU_MARKER[i]);
					
				}
			}
		 }
		 var labels = MTU_XML_DOC_OTHERS.documentElement.getElementsByTagName("label");
		  for(var k = 0; k < MTU_MARKER_PRINT_DIV.length; k++){
				for(var l = 0; l < labels.length; l++){
					var name = labels[l].firstChild.nodeValue;
					name = name.trim();
					if(name && MTU_MARKER_PRINT_DIV && MTU_MARKER_PRINT_DIV[k].indexOf(name) != -1){
						
						MTU_MARKER_PRINT_DIV[k] = "";
						
					}
					//alert(MTU_MARKER_PRINT_DIV[k]);
				}
		  }
		  for (var m = 0; m < MTU_MARKER_PRINT_DIV.length; m++){
		  		if(MTU_MARKER_PRINT_DIV[m] == ""){
					MTU_MARKER_PRINT_DIV.splice(m,1);	
				}
		  }
		
	  }
	   
	  else if(category == "all"){
	 	 var markers = MTU_XML_DOC_ALL.documentElement.getElementsByTagName("marker");
		 for (var i = 0; i < MTU_MARKER.length; i++){
			var pointCoords = new GLatLng();
			pointCoords = MTU_MARKER[i].getPoint();
			var pointLat = parseFloat(pointCoords.lat());
			var pointLng = parseFloat(pointCoords.lng());
			for (var j = 0; j < markers.length; j++){
				var lat = parseFloat(markers[j].getAttribute("lat"));
				var lng = parseFloat(markers[j].getAttribute("lng"));
				var point = new GLatLng(lat,lng);
				if(pointLat == lat && pointLng == lng){
					MTU_MAP.removeOverlay(MTU_MARKER[i]);
				}
			}
		  }
		  var labels = MTU_XML_DOC_ALL.documentElement.getElementsByTagName("label");
		  for(var k = 0; k < MTU_MARKER_PRINT_DIV.length; k++){
				for(var l = 0; l < labels.length; l++){
					var name = labels[l].firstChild.nodeValue;
					name = name.trim();
					if(name && MTU_MARKER_PRINT_DIV && MTU_MARKER_PRINT_DIV[k].indexOf(name) != -1){
						MTU_MARKER_PRINT_DIV[k] = "";
					}
				}
		  }
		  for (var m = 0; m < MTU_MARKER_PRINT_DIV.length; m++){
		  		if(MTU_MARKER_PRINT_DIV[m] == ""){
					MTU_MARKER_PRINT_DIV.splice(m,1);	
				}
		  }
		 
	 }    
	  
	   else if(category == "student"){
	 	 var markers = MTU_XML_DOC_STUDENT_LOTS.documentElement.getElementsByTagName("marker");
		 for (var i = 0; i < MTU_MARKER.length; i++){
			var pointCoords = new GLatLng();
			pointCoords = MTU_MARKER[i].getPoint();
			var pointLat = parseFloat(pointCoords.lat());
			var pointLng = parseFloat(pointCoords.lng());
			for (var j = 0; j < markers.length; j++){
				var lat = parseFloat(markers[j].getAttribute("lat"));
				var lng = parseFloat(markers[j].getAttribute("lng"));
				var point = new GLatLng(lat,lng);
				if(pointLat == lat && pointLng == lng){
					
					MTU_MAP.removeOverlay(MTU_MARKER[i]);
				}
			}
		  }
		  var labels = MTU_XML_DOC_STUDENT_LOTS.documentElement.getElementsByTagName("label");
		  for(var k = 0; k < MTU_MARKER_PRINT_DIV.length; k++){
				for(var l = 0; l < labels.length; l++){
					var name = labels[l].firstChild.nodeValue;
					name = name.trim();
					if(name && MTU_MARKER_PRINT_DIV && MTU_MARKER_PRINT_DIV[k].indexOf(name) != -1){
						MTU_MARKER_PRINT_DIV[k] = "";
					}
				}
		  }
		  for (var m = 0; m < MTU_MARKER_PRINT_DIV.length; m++){
		  		if(MTU_MARKER_PRINT_DIV[m] == ""){
					MTU_MARKER_PRINT_DIV.splice(m,1);	
				}
		  }
		
	  }
	   else if(category == "facultystaff"){
	 	 var markers = MTU_XML_DOC_FACULTY_STAFF_LOTS.documentElement.getElementsByTagName("marker");
		 for (var i = 0; i < MTU_MARKER.length; i++){
			var pointCoords = new GLatLng();
			pointCoords = MTU_MARKER[i].getPoint();
			var pointLat = parseFloat(pointCoords.lat());
			var pointLng = parseFloat(pointCoords.lng());
			for (var j = 0; j < markers.length; j++){
				var lat = parseFloat(markers[j].getAttribute("lat"));
				var lng = parseFloat(markers[j].getAttribute("lng"));
				var point = new GLatLng(lat,lng);
				if(pointLat == lat && pointLng == lng){
					MTU_MAP.removeOverlay(MTU_MARKER[i]);
				}
			}
		  }
		  var labels = MTU_XML_DOC_FACULTY_STAFF_LOTS.documentElement.getElementsByTagName("label");
		  for(var k = 0; k < MTU_MARKER_PRINT_DIV.length; k++){
				for(var l = 0; l < labels.length; l++){
					var name = labels[l].firstChild.nodeValue;
					name = name.trim();
					if(name && MTU_MARKER_PRINT_DIV &&MTU_MARKER_PRINT_DIV[k].indexOf(name) != -1){
						MTU_MARKER_PRINT_DIV[k] = "";
					}
				}
		  }
		  for (var m = 0; m < MTU_MARKER_PRINT_DIV.length; m++){
		  		if(MTU_MARKER_PRINT_DIV[m] == ""){
					MTU_MARKER_PRINT_DIV.splice(m,1);	
				}
		  }
		
	  }
	   else if(category == "visitor"){
	 	 var markers = MTU_XML_DOC_VISITOR_LOTS.documentElement.getElementsByTagName("marker");
		 for (var i = 0; i < MTU_MARKER.length; i++){
			var pointCoords = new GLatLng();
			pointCoords = MTU_MARKER[i].getPoint();
			var pointLat = parseFloat(pointCoords.lat());
			var pointLng = parseFloat(pointCoords.lng());
			for (var j = 0; j < markers.length; j++){
				var lat = parseFloat(markers[j].getAttribute("lat"));
				var lng = parseFloat(markers[j].getAttribute("lng"));
				var point = new GLatLng(lat,lng);
				if(pointLat == lat && pointLng == lng){
					MTU_MAP.removeOverlay(MTU_MARKER[i]);
				}
			}
		  }
		  var labels = MTU_XML_DOC_VISITOR_LOTS.documentElement.getElementsByTagName("label");
		  for(var k = 0; k < MTU_MARKER_PRINT_DIV.length; k++){
				for(var l = 0; l < labels.length; l++){
					var name = labels[l].firstChild.nodeValue;
					name = name.trim();
					if(name && MTU_MARKER_PRINT_DIV && MTU_MARKER_PRINT_DIV[k].indexOf(name) != -1){
						MTU_MARKER_PRINT_DIV[k] = "";
					}
				}
		  }
		  for (var m = 0; m < MTU_MARKER_PRINT_DIV.length; m++){
		  		if(MTU_MARKER_PRINT_DIV[m] == ""){
					MTU_MARKER_PRINT_DIV.splice(m,1);	
				}
		  }
		 
	  }
	  else if(category == "phone"){
	 	 var markers = MTU_XML_DOC_PHONE.documentElement.getElementsByTagName("marker");
		 for (var i = 0; i < MTU_MARKER.length; i++){
			var pointCoords = new GLatLng();
			pointCoords = MTU_MARKER[i].getPoint();
			var pointLat = parseFloat(pointCoords.lat());
			var pointLng = parseFloat(pointCoords.lng());
			for (var j = 0; j < markers.length; j++){
				var lat = parseFloat(markers[j].getAttribute("lat"));
				var lng = parseFloat(markers[j].getAttribute("lng"));
				var point = new GLatLng(lat,lng);
				if(pointLat == lat && pointLng == lng){
					MTU_MAP.removeOverlay(MTU_MARKER[i]);
				}
			}
		  }
		  var labels = MTU_XML_DOC_PHONE.documentElement.getElementsByTagName("label");
		  for(var k = 0; k < MTU_MARKER_PRINT_DIV.length; k++){
				for(var l = 0; l < labels.length; l++){
					var name = labels[l].firstChild.nodeValue;
					name = name.trim();
					if(name && MTU_MARKER_PRINT_DIV && MTU_MARKER_PRINT_DIV[k].indexOf(name) != -1){
						MTU_MARKER_PRINT_DIV[k] = "";
					}
				}
		  }
		  for (var m = 0; m < MTU_MARKER_PRINT_DIV.length; m++){
		  		if(MTU_MARKER_PRINT_DIV[m] == ""){
					MTU_MARKER_PRINT_DIV.splice(m,1);	
				}
		  }
		 
	  }
	  else if(category == "ramp"){
	 	 var markers = MTU_XML_DOC_RAMP.documentElement.getElementsByTagName("marker");
		 for (var i = 0; i < MTU_MARKER.length; i++){
			var pointCoords = new GLatLng();
			pointCoords = MTU_MARKER[i].getPoint();
			var pointLat = parseFloat(pointCoords.lat());
			var pointLng = parseFloat(pointCoords.lng());
			for (var j = 0; j < markers.length; j++){
				var lat = parseFloat(markers[j].getAttribute("lat"));
				var lng = parseFloat(markers[j].getAttribute("lng"));
				var point = new GLatLng(lat,lng);
				if(pointLat == lat && pointLng == lng){
					MTU_MAP.removeOverlay(MTU_MARKER[i]);
				}
			}
		  }
		  var labels = MTU_XML_DOC_RAMP.documentElement.getElementsByTagName("label");
		  for(var k = 0; k < MTU_MARKER_PRINT_DIV.length; k++){
				for(var l = 0; l < labels.length; l++){
					var name = labels[l].firstChild.nodeValue;
					name = name.trim();
					if(name && MTU_MARKER_PRINT_DIV && MTU_MARKER_PRINT_DIV[k].indexOf(name) != -1){
						MTU_MARKER_PRINT_DIV[k] = "";
					}
				}
		  }
		  for (var m = 0; m < MTU_MARKER_PRINT_DIV.length; m++){
		  		if(MTU_MARKER_PRINT_DIV[m] == ""){
					MTU_MARKER_PRINT_DIV.splice(m,1);	
				}
		  }
		 
	  }
	  else if(category == "offsite"){
	 	 var markers = MTU_XML_DOC_OFFSITE.documentElement.getElementsByTagName("marker");
		 for (var i = 0; i < MTU_MARKER.length; i++){
			var pointCoords = new GLatLng();
			pointCoords = MTU_MARKER[i].getPoint();
			var pointLat = parseFloat(pointCoords.lat());
			var pointLng = parseFloat(pointCoords.lng());
			for (var j = 0; j < markers.length; j++){
				var lat = parseFloat(markers[j].getAttribute("lat"));
				var lng = parseFloat(markers[j].getAttribute("lng"));
				var point = new GLatLng(lat,lng);
				if(pointLat == lat && pointLng == lng){
					MTU_MAP.removeOverlay(MTU_MARKER[i]);
				}
			}
		  }
		  var labels = MTU_XML_DOC_OFFSITE.documentElement.getElementsByTagName("label");
		  for(var k = 0; k < MTU_MARKER_PRINT_DIV.length; k++){
				for(var l = 0; l < labels.length; l++){
					var name = labels[l].firstChild.nodeValue;
					name = name.trim();
					if(name && MTU_MARKER_PRINT_DIV && MTU_MARKER_PRINT_DIV[k].indexOf(name) != -1){
						MTU_MARKER_PRINT_DIV[k] = "";
					}
				}
		  }
		  for (var m = 0; m < MTU_MARKER_PRINT_DIV.length; m++){
		  		if(MTU_MARKER_PRINT_DIV[m] == ""){
					MTU_MARKER_PRINT_DIV.splice(m,1);	
				}
		  }
		 
	  }	  
	  
	  else if(category == "alllots"){
	 	 var markers = MTU_XML_DOC_ALL_LOTS.documentElement.getElementsByTagName("marker");
		 for (var i = 0; i < MTU_MARKER.length; i++){
			var pointCoords = new GLatLng();
			pointCoords = MTU_MARKER[i].getPoint();
			var pointLat = parseFloat(pointCoords.lat());
			var pointLng = parseFloat(pointCoords.lng());
			for (var j = 0; j < markers.length; j++){
				var lat = parseFloat(markers[j].getAttribute("lat"));
				var lng = parseFloat(markers[j].getAttribute("lng"));
				var point = new GLatLng(lat,lng);
				if(pointLat == lat && pointLng == lng){
					MTU_MAP.removeOverlay(MTU_MARKER[i]);
				}
			}
		  }
		  var labels = MTU_XML_DOC_ALL_LOTS.documentElement.getElementsByTagName("label");
		  for(var k = 0; k < MTU_MARKER_PRINT_DIV.length; k++){
				for(var l = 0; l < labels.length; l++){
					var name = labels[l].firstChild.nodeValue;
					name = name.trim();
					if(name && MTU_MARKER_PRINT_DIV && MTU_MARKER_PRINT_DIV[k].indexOf(name) != -1){
						MTU_MARKER_PRINT_DIV[k] = "";
					}
				}
		  }
		  for (var m = 0; m < MTU_MARKER_PRINT_DIV.length; m++){
		  		if(MTU_MARKER_PRINT_DIV[m] == ""){
					MTU_MARKER_PRINT_DIV.splice(m,1);	
				}
		  }
		 
	  }
	
  }

  refreshRollimage = new Array();
  refreshRollimage[0]= new Image();
  refreshRollimage[0].src = "google/images/map/refreshMapOff.png";
  refreshRollimage[1] = new Image();
  refreshRollimage[1].src = "google/images/map/refreshMapOn.png";
  
  printRollimage = new Array();
  printRollimage[0] = new Image();
  printRollimage[0].src = "google/images/map/printMapOff.png";
  printRollimage[1] = new Image();
  printRollimage[1].src = "google/images/map/printMapOn.png";
  
  panWRollimage = new Array();
  panWRollimage[0]= new Image();
  panWRollimage[0].src = "google/images/panWoff.png";
  panWRollimage[1] = new Image();
  panWRollimage[1].src = "google/images/panW.png";
  
  panNRollimage = new Array();
  panNRollimage[0]= new Image();
  panNRollimage[0].src = "google/images/panNoff.png";
  panNRollimage[1] = new Image();
  panNRollimage[1].src = "google/images/panN.png";
  
  panERollimage = new Array();
  panERollimage[0]= new Image();
  panERollimage[0].src = "google/images/panEoff.png";
  panERollimage[1] = new Image();
  panERollimage[1].src = "google/images/panE.png";
  
  panSRollimage = new Array();
  panSRollimage[0]= new Image();
  panSRollimage[0].src = "google/images/panSoff.png";
  panSRollimage[1] = new Image();
  panSRollimage[1].src = "google/images/panS.png";
  
  panSWRollimage = new Array();
  panSWRollimage[0]= new Image();
  panSWRollimage[0].src = "google/images/panSWoff.png";
  panSWRollimage[1] = new Image();
  panSWRollimage[1].src = "google/images/panSW.png";
  
  panNWRollimage = new Array();
  panNWRollimage[0]= new Image();
  panNWRollimage[0].src = "google/images/panNWoff.png";
  panNWRollimage[1] = new Image();
  panNWRollimage[1].src = "google/images/panNW.png";
  
  panNERollimage = new Array();
  panNERollimage[0]= new Image();
  panNERollimage[0].src = "google/images/panNEoff.png";
  panNERollimage[1] = new Image();
  panNERollimage[1].src = "google/images/panNE.png";
  
  panSERollimage = new Array();
  panSERollimage[0]= new Image();
  panSERollimage[0].src = "google/images/panSEoff.png";
  panSERollimage[1] = new Image();
  panSERollimage[1].src = "google/images/panSE.png";
  
  zoomInRollimage = new Array();
  zoomInRollimage[0]= new Image();
  zoomInRollimage[0].src = "images/zoominOff.gif";
  zoomInRollimage[1] = new Image();
  zoomInRollimage[1].src = "images/zoominOn.gif";
  
  zoomOutRollimage = new Array();
  zoomOutRollimage[0]= new Image();
  zoomOutRollimage[0].src = "images/zoomoutOff.gif";
  zoomOutRollimage[1] = new Image();
  zoomOutRollimage[1].src = "images/zoomoutOn.gif";
  
  opacityLessRollimage = new Array();
  opacityLessRollimage[0]= new Image();
  opacityLessRollimage[0].src = "images/opacitylessOff.gif";
  opacityLessRollimage[1] = new Image();
  opacityLessRollimage[1].src = "images/opacitylessOn.gif";
  
  opacityMoreRollimage = new Array();
  opacityMoreRollimage[0]= new Image();
  opacityMoreRollimage[0].src = "images/opacitymoreOff.gif";
  opacityMoreRollimage[1] = new Image();
  opacityMoreRollimage[1].src = "images/opacitymoreOn.gif";
  
  function swapOutZoomOut(){
	document.getElementById("zoomoutimg").src = zoomOutRollimage[1].src;
	return true;
  }
  
   function swapBackZoomOut(){
    document.getElementById("zoomoutimg").src = zoomOutRollimage[0].src; 
  	return true;
  }
  
  function swapOutZoomIn(){
	document.getElementById("zoominimg").src = zoomInRollimage[1].src;
	return true;
  }
  
  function swapBackZoomIn(){
    document.getElementById("zoominimg").src = zoomInRollimage[0].src; 
  	return true;
  }
  function swapOutOpacityLess(){
	document.getElementById("opacitylessimg").src = opacityLessRollimage[1].src;
	return true;
  }
  
   function swapBackOpacityLess(){
    document.getElementById("opacitylessimg").src = opacityLessRollimage[0].src; 
  	return true;
  }
  
  function swapOutOpacityMore(){
	document.getElementById("opacitymoreimg").src = opacityMoreRollimage[1].src;
	return true;
  }
  
  function swapBackOpacityMore(){
    document.getElementById("opacitymoreimg").src = opacityMoreRollimage[0].src; 
  	return true;
  }
  
  function swapOutPan(direction){
	  
	 if (direction == "panWest"){
		
		 document.getElementById("panWmap").src = panWRollimage[1].src;
	 }
	 if (direction == "panNorth"){
		
		 document.getElementById("panNmap").src = panNRollimage[1].src;
	 }
	 if (direction == "panEast"){
		
		 document.getElementById("panEmap").src = panERollimage[1].src;
	 }
	 if (direction == "panSouth"){
		
		 document.getElementById("panSmap").src = panSRollimage[1].src;
	 }
	 if (direction == "panSouthwest"){
		
		 document.getElementById("panSWmap").src = panSWRollimage[1].src;
	 }
	 if (direction == "panNorthwest"){
		
		 document.getElementById("panNWmap").src = panNWRollimage[1].src;
	 }
	 if (direction == "panNortheast"){
		
		 document.getElementById("panNEmap").src = panNERollimage[1].src;
	 }
	 if (direction == "panSoutheast"){
		
		 document.getElementById("panSEmap").src = panSERollimage[1].src;
	 }
	 
  }
  function swapBackPan(direction){
	  
	 if (direction == "panWest"){
		 
		  document.getElementById("panWmap").src = panWRollimage[0].src;
	 }
	 if (direction == "panNorth"){
		 
		  document.getElementById("panNmap").src = panNRollimage[0].src;
	 }
	 if (direction == "panEast"){
		 
		  document.getElementById("panEmap").src = panERollimage[0].src;
	 }
	 if (direction == "panSouth"){
		 
		  document.getElementById("panSmap").src = panSRollimage[0].src;
	 }
	 if (direction == "panSouthwest"){
		
		 document.getElementById("panSWmap").src = panSWRollimage[0].src;
	 }
	 if (direction == "panNorthwest"){
		
		 document.getElementById("panNWmap").src = panNWRollimage[0].src;
	 }
	 if (direction == "panNortheast"){
		
		 document.getElementById("panNEmap").src = panNERollimage[0].src;
	 }
	 if (direction == "panSoutheast"){
		
		 document.getElementById("panSEmap").src = panSERollimage[0].src;
	 }
  }

  function swapOutRefresh(){
    document.getElementById("refreshmap").src = refreshRollimage[1].src;
	return true;
  }

  function swapBackRefresh(){
    document.getElementById("refreshmap").src = refreshRollimage[0].src; 
  	return true;
  }
    
  function swapOutPrint(){
    document.getElementById("printmap").src = printRollimage[1].src;
	return true;
  }

  function swapBackPrint(){
    document.getElementById("printmap").src = printRollimage[0].src; 
  	return true;
  } 
  function doPan(direction){
	if (direction == "panW"){
		MTU_MAP.panDirection(1,0);	
	}
	else if (direction == "panN"){
		MTU_MAP.panDirection(0,1);	
	}
	else if (direction == "panE"){
		MTU_MAP.panDirection(-1,0);	
	}
	else if (direction == "panS"){
		MTU_MAP.panDirection(0,-1);	
	}
	else if (direction == "panSW"){
		MTU_MAP.panDirection(1,-1);	
	}
	else if (direction == "panNW"){
		MTU_MAP.panDirection(1,1);	
	}
	else if (direction == "panNE"){
		MTU_MAP.panDirection(-1,1);	
	}
	else if (direction == "panSE"){
		MTU_MAP.panDirection(-1,-1);	
	}
  }
  function setZoom(){
	var currZoom = MTU_MAP.getZoom();
	if (currZoom < 14) {
		MTU_MAP.setZoom(15);	
	} else if (currZoom == 17) {
		MTU_MAP.setZoom(16);	
	}
  }
  function setBounds() {
	var currBounds = MTU_MAP.getBounds();
	var centerCampus = new GLatLng(47.1183, -88.546731);
	if (currBounds.contains(centerCampus)) {
		
  	} else {
	  MTU_MAP.setCenter(centerCampus);
 	 }
  }	
  function setOpacity(val){
	if(MTU_MAP){
	
	
	}
	
  }
  function opacityMore(){
	  	if(MTU_MAP){
			
		}
  }
  function opacityLess(){
	  	if(MTU_MAP){
		}
  }
  
function checkOverview(myqs) {
	
	if (window.MTU_MAP) { 
	  setTimeout("searchMap(myqs)", 2000);
	  //alert(MTU_MAP);
	} else {
	setTimeout("checkOverview(myqs)",1000);
  }
}
