var xmlFile =  "xml/buildings2.xml";
var map;
var mgr;
var xmlBuildings = {};
var scaleFactor = 1;
var centerOn = null;
var mapMarkers = [];
var buildingImages = [];
var oBuildings = {};
var oDepartments = [];
var oTypes = {};
var custommap;

// Setup the Maps
function initMap() {
	if (GBrowserIsCompatible() && navigator.userAgent.indexOf('Safari/312') == -1) {
            //First load and parse the XML data
            var xmlData = getXmlData();
            parseXMLData(xmlData);
            xmlData = '';

            //Set the map container properties
            myMapHandle = document.getElementById("map")
            mapHeight = getMapHeight();
            myMapHandle.style.height = mapHeight + 'px';

            //Create the new map
            map = new GMap2(myMapHandle);
            map.addControl(new GOverviewMapControl());

            //Get the custom drawn map tiles
            getMapTiles();

            //Marker Manager
            var mgrOpts = { 'borderPadding': 2000 };
            mgr = new GMarkerManager(map, mgrOpts);
            window.setTimeout(setupBuildingMarkers, 0);


	} else {
		alert("Sorry. The maps are unavailable for your browser. Please upgrade to a modern browser and visit us again. You will be redirected to the printable maps page.");
		window.location="http://www.ku.edu/visit/maps.shtml";	
	}
}

function getMapTiles() {
	CustomGetTileUrl=function(a,b){
		//GLog.write(a.x);// + ' ' + a.y);
		if (a.y < 50105 || a.y > 50119 || a.x < 30848 || a.x > 30861 || 
			(a.y < 50108 && a.x < 30860) || 
			(a.y < 50113 && a.x < 30853) || 
			(a.y > 50116 && a.x > 30852) ||
			(a.y > 50115 && a.x > 30856) ||
			(a.y > 50114 && a.x > 30859) ||
			(a.y > 50116 && a.x < 30849) ||
			(a.y > 50118 && a.x < 30850)) {
			return G_NORMAL_MAP.getTileLayers()[0].getTileUrl(a,b);
		} else {
			var i = Math.ceil(3*Math.random());
			return 'http://images' + i + '.maps.ku.edu/ui/images/tiles/x'+ a.x +'y'+ a.y +'.png';
		}
	}

	var copyright = new GCopyright(1,new GLatLngBounds(new GLatLng(38.94205394971454,-95.27961730957031), new GLatLng(38.97395688525247,-95.23344039916992)), 17, "Big City Maps");

	var copyrightCollection = new GCopyrightCollection('&copy; 2009 KU &amp;');
	copyrightCollection.addCopyright(copyright);

	var tilelayers = [new GTileLayer(copyrightCollection,13,17)];
	tilelayers[0].getTileUrl = CustomGetTileUrl;

	// ============================================================
	// === If we know the copyright, return it, otherwise look for the G_NORMAL_MAP copyright =====      
	tilelayers[0].getCopyright = function(a,b) {
		var c= copyrightCollection.getCopyrightNotice(a,b);
		if (!c) {
			c = G_NORMAL_MAP.getTileLayers()[0].getCopyright(a,b);
		}
		return c;
	}

	var custommap = new GMapType(tilelayers, G_SATELLITE_MAP.getProjection(), "KU");
	map.addMapType(custommap);

	getMapCenter(centerOn, custommap);
	//      map.setCenter(new GLatLng(38.95835761039298, -95.24780094623566), 14, custommap);
	
}
function loadXml() {
	var eMapWrap = document.getElementById("map_wrap")
	var eLoad = document.createElement("div");	
	eLoad.setAttribute("id", "map_loading");
	eLoad.innerHTML = "Loading building xml";
	eMapWrap.appendChild(eLoad);

	if (getXmlData())
		eMapWrap.removeChild(eLoad);
}
function getXmlData() {
    //Load the XML data file into xmlData
    var request = GXmlHttp.create();
    request.open("GET", xmlFile, false);
    request.send(null);

    var xmlDoc = request.responseXML;
    return xmlDoc.documentElement.getElementsByTagName("building");
}
function parseXMLData(xmlData) {
	var depts;
	var deptCount = 0;
	for (var i = 0; i < xmlData.length; i++) {
		var myXml = xmlData[i];
		oBuildings[myXml.getAttribute("icon")] =
		{
			"icon" : myXml.getAttribute("icon"),
			"name" : myXml.getAttribute("name"),
			"abbr" : myXml.getAttribute("abbr"),
			"xoffset"  : myXml.getAttribute("xoffset"),
			"yoffset" : myXml.getAttribute("yoffset"),
			"address" : myXml.getAttribute("address"),
			"city" : myXml.getAttribute("city"),
			"state" : myXml.getAttribute("state"),
			"zip" : myXml.getAttribute("zip"),
			"width" : myXml.getAttribute("width"),
			"height" : myXml.getAttribute("height"),
			"lat" : myXml.getAttribute("lat"),
			"long" : myXml.getAttribute("long"),
			"description" : myXml.getElementsByTagName("description")[0].nodeValue,
			"descurl" : myXml.getElementsByTagName("description")[0].getAttribute("bgaddress"),
			"departments" : myXml.getElementsByTagName("departments")[0],
			"types" : myXml.getElementsByTagName("types")[0],
			"link" : '<li><a href="#" onclick="indicateBuilding('+i+');">' + myXml.getAttribute("name") + ' (' + myXml.getAttribute("abbr") +')</a></li>',
			"gicon" : getIcon(myXml.getAttribute("icon"), myXml.getAttribute("offsetx"), myXml.getAttribute("offsety"), myXml.getAttribute("width"), myXml.getAttribute("height")),
			"gposn" : new GLatLng(myXml.getAttribute("lat"), myXml.getAttribute("long")),
			"ginfotabs" : setupInfoWindow(myXml.getAttribute("name"), myXml.getAttribute("abbr"), myXml.getAttribute("address"), myXml.getAttribute("city"), myXml.getAttribute("state"), myXml.getAttribute("zip"), myXml.getElementsByTagName("description")[0].textContent, myXml.getElementsByTagName("departments")[0], myXml.getAttribute("icon"), myXml.getElementsByTagName("description")[0].getAttribute("bgaddress")),
			"sortOrder" : myXml.getAttribute("sort")
		}
		var deptXml = myXml.getElementsByTagName("departments")[0];
		if (deptXml.hasChildNodes()) {
			var depts = deptXml.getElementsByTagName('department');
			for (j =0; j<depts.length; j++) {
				if (depts[j].getAttribute("name") != '') {
					oDepartments[deptCount] =
					{
						"link" : '<li><a href="#" onclick="indicateBuilding('+i+');">' + depts[j].getAttribute("name") + '</a></li>',
						"name" : depts[j].getAttribute("name"),
						"sortOrder" : depts[j].getAttribute("sort")
					}
					deptCount++;
				}
			}
		}
		
		var typeXml = myXml.getElementsByTagName("types")[0];
		if (typeXml && typeXml.hasChildNodes()) {
			var types = typeXml.getElementsByTagName('type');
			for (var t = 0; t < types.length; t++) {
				if (types[t].nodeValue != '') {
					oTypes[t] = 
					{
							"link" : '<li><a href="#" onclick="indicateBuilding('+i+');">' + myXml.getAttribute("name") + '</a></li>',
							"name" : myXml.getAttribute("name"),
							"type" : types[t].nodeValue
					}
				}
			}
		}


		if (getQueryVariable('building') == myXml.getAttribute('icon')) {
			centerOn = posn;
			getMapCenter(centerOn); // Don't delete
		}
		depts = myXml.getElementsByTagName("departments")[0];
	}
}
function getMapHeight() {
	var myHeight = 0;
	if( typeof( window.innerHeight ) == 'number' ) { // Non-IE
		myHeight = window.innerHeight;
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {// IE 6+ in 'standards compliant mode'
		myHeight = document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { // IE 4 compatible
		myHeight = document.body.clientHeight;
	}

	var sizeAdjust = 220;
	if (location.hash == '#maptop') {
		sizeAdjust = 220;
	} else {
		sizeAdjust = 220;
	}

	return myHeight - sizeAdjust;
}
function getMapCenter(centeredOn, custommap) {
	// TODO Center on building if passed in url
	if (centeredOn == null)	centeredOn = new GLatLng(38.95835761039298, -95.24780094623566);
	map.setCenter(centeredOn, 17, custommap);
}
function setupBuildingMarkers() {
	var markers = [];
	var i = 0;

	for (building in oBuildings) {
		var marker = createMarker(oBuildings[building].gposn, oBuildings[building].gicon, oBuildings[building].name, oBuildings[building].ginfotabs);
		mapMarkers[i] = marker;
		markers.push(marker);
		i++;
	} // end for xmlData.length

	mgr.addMarkers(markers, '17', '17');
	mgr.refresh();
	showSearch();
	document.getElementById("maps_searchText").focus();
//	getBuildingNav();

}
var mapInfoWindow = {};
function setupInfoWindow(name, abbr, addy, city, state, zip, desc, depts, icn, blddir) {
	var infoTabs = [];
	var ov = '<strong>' + name;

	if (abbr != '') {ov += ' ('+ abbr +')'};
	ov += '</strong>';
	
	if (addy != '') {
		ov += '<div class="map_address">' 
				+ addy + '<br />'
				+ city + ', ' +  state + ' ' +  zip  + '</div>';
	}
	ov += '<img class="map_buildingPhoto" src="/ui/images/photos/' + icn + '.jpg"/>';
	if (desc != '') {
		ov += '<div class="map_description">' + desc;
		
		if (blddir != '') {
//			GLog.write(name + ' ' + blddir);
			ov += ' <a href="' + blddir + '"><nobr>More info &raquo;</nobr></a>'; 	
		}
		ov += '</div>';
	}
	var dept = getDepartmentHtml(depts);

	if (dept == 'No departments') {
		infoTabs = [
			new GInfoWindowTab("Overview", ov)
		];
	
	} else {
		infoTabs = [
			new GInfoWindowTab("Overview", ov),
			new GInfoWindowTab("Details", dept)
		];
	}
	return infoTabs;

}

function createMarker(point, icon, title, html) {
	var myMarker = new GMarker(point, { title: title, icon: icon , draggable: false});
	GEvent.addListener(myMarker, "click", function() {
            myMarker.openInfoWindowTabsHtml(html, {maxWidth: 350});
	});// closes function in AddListener
	GEvent.addListener(myMarker, "dragstart", function() {
	  map.closeInfoWindow();
	  });
	GEvent.addListener(myMarker, "dragend", function() {
	  myMarker.openInfoWindowHtml('Simply cut and paste<br/>lat="' + myMarker.getPoint().lat() + '" long="' + myMarker.getPoint().lng() +'"');
	  });
	return myMarker;
}
function getIcon(images, xoff, yoff, width, height) {
	var icon = '';
	icon = new GIcon();
	icon.image = 'ui/images/buildings/' + images + ".png";
	icon.iconAnchor = new GPoint(xoff, yoff);
        xc = xoff/2 *2;
        yc = yoff/2 *2;
	icon.infoWindowAnchor = new GPoint(xc, yc);
//	icon.infoWindowAnchor = new GPoint(xoff, yoff);
//		var size = { width: 114, height: 81 };
//		myWidth = size.width*scaleFactor;
//		myHeight = size.height*scaleFactor;
	icon.iconSize = new GSize(width, height);

	return icon;
}
function getDepartmentHtml(xml) {
	if (xml.hasChildNodes()) {
		var depts = xml.getElementsByTagName('department');

			var eDeptList = document.createElement("ul");
			eDeptList.setAttribute('id','maps_departments');
			eDeptList.className = "ku_spaced_links";
			eDeptList.className += " maps_deptList";
	
			for (j =0; j<depts.length; j++) {
				var eDeptItem = document.createElement("li");
				var eDeptLink = document.createElement("a");
				if (depts[j].getAttribute("web") != '') {
					eDeptLink.innerHTML = depts[j].getAttribute("name");
					eDeptLink.setAttribute("href", depts[j].getAttribute("web"));
					eDeptItem.appendChild(eDeptLink);
					eDeptList.appendChild(eDeptItem);
				} else if (depts[0].getAttribute("name") == '') {
					eDeptList = "No departments";
				} else {
					eDeptItem.innerHTML = depts[j].getAttribute("name");
					eDeptList.appendChild(eDeptItem);
				}
			}
	} else {
		eDeptList = 'No departments';
	}

	return eDeptList;
}

/*
 * PANELS
*/
function getDepartmentNav() {

	var ePanelWrap = document.getElementById("map_panelWrap");
	ePanelWrap.style.display = 'block';

	var eDeptWrap = document.createElement("div");
	eDeptWrap.setAttribute("id", "maps_departmentList");
	var listHeight = 2 + getMapHeight();
	eDeptWrap.style.height = listHeight + 'px';
	eDeptWrap.className = "maps_listWrap";


	oDepartments = oDepartments.objSort("sortOrder");
	var prevSort = '';
	for (var dept in oDepartments) {
		var currSort = oDepartments[dept].sortOrder;

		if (currSort != undefined) {
			if (currSort.substring(0,1) != prevSort.substring(0,1)) {
				var eSortHeading = document.createElement("h4");
				eSortHeading.innerHTML = currSort.substring(0,1);
				eSortHeading.className = "maps_listHeading";
				eDeptWrap.appendChild(eSortHeading);
	
				var eDeptList = document.createElement("ul");
				eDeptList.className = "maps_navList";
			}
			eDeptList.innerHTML += oDepartments[dept].link;
			prevSort = oDepartments[dept].sortOrder;
			eDeptWrap.appendChild(eDeptList);
		}
	}
	ePanelWrap.appendChild(eDeptWrap);
}
function sortDepartments(a, b) {
	var x = a.sortOrder.toLowerCase()
	var y = b.sortOrder.toLowerCase()
	return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}
function getBuildingNav() {
	var ePanelWrap = document.getElementById("map_panelWrap");
	ePanelWrap.style.display = 'block';
	
	var eBuildingWrap = document.createElement("div");
	eBuildingWrap.setAttribute("id", "maps_buildingList");
	var listHeight = 2 + getMapHeight();
	eBuildingWrap.style.height = listHeight + 'px';
	eBuildingWrap.className = "maps_listWrap";

	var prevSort = '';
	for (var building in oBuildings) {
		if (oBuildings[building].sortOrder != prevSort) {
			var eSortHeading = document.createElement("h4");
			eSortHeading.innerHTML = oBuildings[building].sortOrder;
			eSortHeading.className = "maps_listHeading";
			eBuildingWrap.appendChild(eSortHeading);

			var eBuildingList = document.createElement("ul");
			eBuildingList.className = "maps_navList";
		}
		eBuildingList.innerHTML += oBuildings[building].link;
		prevSort = oBuildings[building].sortOrder; // KEEP AT END OF FOR LOOP
		eBuildingWrap.appendChild(eBuildingList);
	}

	ePanelWrap.appendChild(eBuildingWrap);
}
function getBuildingFilter() {
	for (var building in oBuildings) {
		GLog.write(oBuildings[building].type);
	}
}
function getSearchForm() {
	
	var eSearchForm = document.createElement("form");
	eSearchForm.setAttribute("id", "map_search");
	eSearchForm.setAttribute("onsubmit", "searchMap(this.mapSearchText.value); return false;");
	
	var eSearchText = document.createElement("input");
	eSearchText.setAttribute("type", "text");
	eSearchText.setAttribute("name", "mapSearchText");
	eSearchText.setAttribute("id", "maps_searchText");
	
	var eSearchSubmit = document.createElement("input");
	eSearchSubmit.setAttribute("type", "submit");
	eSearchSubmit.setAttribute("value", "search");

	eSearchForm.appendChild(eSearchText);
	eSearchForm.appendChild(eSearchSubmit);

	return eSearchForm;

}
function showDepartmentList() {

	hidePanels();

	document.getElementById("maps_departmentNav").className += " maps_currentTab";

	var showDept = document.getElementById("maps_departmentList");
	if (showDept) {
		showDept.style.display = "block";
	} else {
		getDepartmentNav();
	}
}
function showBuildingList() {

	hidePanels();
	
	document.getElementById("maps_buildingNav").className += " maps_currentTab";
	
	var showBuild = document.getElementById("maps_buildingList");
	if (showBuild) {
		showBuild.style.display = "block";
	} else {
		getBuildingNav();
	}
}
function showSearch() {

	hidePanels();
	
	document.getElementById("maps_searchNav").className += " maps_currentTab";
	
	var oPanelWrap = document.getElementById("map_panelWrap");
	oPanelWrap.style.display = 'block';

	var oSearchWrap = document.getElementById("maps_searchWrap");
	if (!oSearchWrap) {
		var oSearchLabel = document.createElement("label");
		oSearchLabel.innerHTML = "Search building names, abbreviations, addresses, and departments:";

		var oSearchWrap = document.createElement("div");
		oSearchWrap.setAttribute("class", "maps_navList");
		oSearchWrap.setAttribute("id", "maps_searchWrap");
		var listHeight = 2 + getMapHeight();
		oSearchWrap.setAttribute("style", "height: " + listHeight + "px; overflow: auto;");
	
		oSearchWrap.appendChild(oSearchLabel);
		oSearchWrap.appendChild(getSearchForm());
		oPanelWrap.appendChild(oSearchWrap);

	var eSearchListWrap = document.createElement("div");
	eSearchListWrap.setAttribute("id", "maps_searchListWrap");

	var eNumberResults = document.createElement("div");
	eNumberResults.className = "maps_searchResults";
	eNumberResults.innerHTML = "<p style='color:#666; font-style:italic'>Search is not working yet in IE7</p>";
	eSearchListWrap.appendChild(eNumberResults);
	oSearchWrap.appendChild(eSearchListWrap);

	} else {
		oSearchWrap.style.display = 'block';	
		
	}
}
function showHelp() {
	hidePanels();
	
	document.getElementById("maps_helpNav").className += " maps_currentTab";
	
	var showHelp = document.getElementById("maps_help");
	if (showHelp) {
		showHelp.style.display = "block";
	} else {
		var ePanelWrap = document.getElementById("map_panelWrap");
		ePanelWrap.style.display = 'block';
		
		var eHelpWrap = document.createElement("div");
		eHelpWrap.setAttribute("id", "maps_help");
		var listHeight = 2 + getMapHeight();
		eHelpWrap.style.height = listHeight + 'px';
		eHelpWrap.className = "maps_listWrap";
		eHelpWrap.innerHTML = '<h3 class="maps_listHeading">Help</h3>'
							+ '<p style="line-height: 1em; margin-top:0;">The Interactive Lawrence Campus Map is built on Google Maps. If you are experiencing problems with the map, please email <a href="mailto:webcomms@ku.edu">webcomms@ku.edu</a>.</p>'
							+ '<h4 class="maps_listHeading">Features</h4>'
							+ '<ul class="ku_spaced_links">'
							+ '<li><strong>Getting Around</strong>'
							+ '<p style="margin-top:0;">To pan the map, click and hold your left mouse button and drag in the direction you�d like to view. You can also drag the blue box in the small overview map at the bottom right.</p>'
							+ '</li>'
							+ '<li><strong>Viewing Details</strong>'
							+ '<p style="margin-top:0;">To view building details, either a) click a building on the map, or b) click an item in the "Buildings" or "Departments" lists.</p>'
							+ '</li>'
							+ '<li><strong>Searching</strong>'
							+ '<p style="margin-top:0;">The search tab provides an easy way to find a building by searching for its name, address, abbreviation, or a department it houses.</p>'
							+ '</li>'
							+ '<li><strong>Browsing</strong>'
							+ '<p style="margin-top:0;">To view a list of all buildings or departments, click the appropriate link above the map. Clicking a name in the list will pan the map to the appropriate building and show its details.</p>'
							+ '</li>'
							+ '<li><strong>Printing</strong>'
							+ '<p style="margin-top:0;">Clicking the "Print Page" link to the top-right of the map will print the area of the map that�s currently in view. However, it does not print Detail bubbles. Printable PDF maps of the entire campus can also be downloaded: <a href="http://www.ur.ku.edu/ku_resources/campus_map.pdf">Grayscale (500KB)</a> or <a href="http://www.ur.ku.edu/ku_resources/campus_map-color.pdf">Color (1MB)</a>.</p>'
							+ '</li>'
							+ '<li><strong>Emailing</strong>'
							+ '<p style="margin-top:0;">Clicking the "Email Page" link to the top-right of the map will open a window that allows you to email a link to the Interactive Map in its default state.</p>'
							+ '</li>'
							+ '</ul>';
		ePanelWrap.appendChild(eHelpWrap);
	}
}

function searchMap(searchPhrase) {
//	hidePanels();

	var numBResults = 0;
	var numDResults = 0;

	var oSearchWrap = document.getElementById("maps_searchWrap");

	if (document.getElementById("maps_searchListWrap")) {
		var eSearchListWrap = document.getElementById("maps_searchListWrap");
		eSearchListWrap.innerHTML = '';
	} else { 
		var eSearchListWrap = document.createElement("div");
	}
	eSearchListWrap.setAttribute("id", "maps_searchListWrap");
	
	// SEARCH BUILDINGS
	var oBuildingSearchList = document.createElement("ul");
	oBuildingSearchList.className = "maps_navList";
	oBuildingSearchList.setAttribute("id", "maps_buildingSearchList");

	if (searchPhrase != '') {

		for (building in oBuildings) {
			var tempBuilding = oBuildings[building];
			if (tempBuilding.name.toUpperCase().indexOf(searchPhrase.toUpperCase()) != -1) {
				oBuildingSearchList.innerHTML += tempBuilding.link;
				numBResults++;
			} else if (tempBuilding.abbr.toUpperCase().indexOf(searchPhrase.toUpperCase()) != -1) {
				oBuildingSearchList.innerHTML += tempBuilding.link;
				numBResults++;
			} else if (tempBuilding.address.toUpperCase().indexOf(searchPhrase.toUpperCase()) != -1) {
				oBuildingSearchList.innerHTML += tempBuilding.link;
				numBResults++;
			}
		}
	}

	// SEARCH DEPARTMENTS
	var oDeptSearchList = document.createElement("ul");
	oDeptSearchList.setAttribute("class", "maps_navList");
	oDeptSearchList.setAttribute("id", "maps_deptSearchList");

	if (searchPhrase != '') {

		for (dept in oDepartments) {
			var tempDepartment = oDepartments[dept];
			if (tempDepartment.name.toUpperCase().indexOf(searchPhrase.toUpperCase()) != -1) {
				oDeptSearchList.innerHTML += tempDepartment.link;
				numDResults++;
			}
		}
	}

	// APPEND NUMBER RESULTS
	var eNumberResults = document.createElement("div");
	eNumberResults.className = "maps_searchResults";

	if (numBResults > 0 || numDResults > 0) {
		var nr = numBResults + numDResults;
		eNumberResults.innerHTML = "<em>" + nr + " results found.</em>";
	} else {
		eNumberResults.innerHTML = "<em>No buildings or departments matched your search criteria. Please check your spelling or use more general terms.</em>";
	}

	eSearchListWrap.appendChild(eNumberResults);

	if (numBResults > 0) {
		// APPEND BUILDING RESULTS
		var oBuildingHeading = document.createElement("h4");
		oBuildingHeading.className = "maps_listHeading";
		oBuildingHeading.innerHTML = "Buildings";
		eSearchListWrap.appendChild(oBuildingHeading);
		eSearchListWrap.appendChild(oBuildingSearchList);
	}

	if (numDResults > 0) {
		// APPEND DEPARTMENT RESULTS
		var oDeptHeading = document.createElement("h4");
		oDeptHeading.className = "maps_listHeading";
		oDeptHeading.innerHTML = "Departments";
		eSearchListWrap.appendChild(oDeptHeading);
		eSearchListWrap.appendChild(oDeptSearchList);
	}

	oSearchWrap.appendChild(eSearchListWrap);
//	oPanelWrap.appendChild(oSearchWrap);

	return false;
}
function hidePanels() {

	resetTabs();	
	var eDeptList = document.getElementById("maps_departmentList");
	if (eDeptList) eDeptList.style.display = "none";
	
	var eBuildingList = document.getElementById("maps_buildingList");
	if (eBuildingList) eBuildingList.style.display = "none";

	var eSearchList = document.getElementById("maps_searchWrap");
	if (eSearchList) eSearchList.style.display = "none";
	
	var eHelpList = document.getElementById("maps_help");
	if (eHelpList) eHelpList.style.display = "none";
}
function resetTabs() {
	removeClass(document.getElementById("maps_buildingNav"), "maps_currentTab");
	removeClass(document.getElementById("maps_departmentNav"), "maps_currentTab");
	removeClass(document.getElementById("maps_searchNav"), "maps_currentTab");
	removeClass(document.getElementById("maps_helpNav"), "maps_currentTab");
	
}


function showVisitorsPanel() {
}
function showVirtualTourPanel() {
}
function indicateBuilding(i) {
	GEvent.trigger(mapMarkers[i], "click");
        getMapCenter(mapMarkers[i].getLatLng()); // Don't delete

}
function buildPanel() {
}
function KUMapType() {
}
function KUBuildingMapType() {
	map.setMapType(G_NORMAL_MAP);
	var baseMap = map.getCurrentMapType();
	var baseProjection = baseMap.getProjection();
	GMapType(baseMap, baseProjection, "KU Building Map");
}


/*
 *  Utility functions
 */
function getQueryVariable(variable) {

	var query = window.location.search.substring(1);
	var vars = query.split("&");

	for (var i=0;i<vars.length;i++) {
		var pair = vars[i].split("=");
		if (pair[0] == variable) {
			return pair[1];
		}
	} 
	return false;
}
/*
	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
*/
function getElementsByClassName(oElm, strTagName, strClassName){

	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();

	strClassName = strClassName.replace(/\-/g, "\\-");

	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;

	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];      
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}   
	}
	return (arrReturnElements);
}

