
var centerLat=0.0;var centerLon=0.0;var gmarkers=[];var html;var i=0;var icons=[];var idmarkers;var initialZoom=2
var map;var markers;var name;var id;var index=-1;var query=location.search.substring(1);var pairs=query.split("&");for(var i=0;i<pairs.length;i++){var pos=pairs[i].indexOf("=");var argname=pairs[i].substring(0,pos).toLowerCase();var value=pairs[i].substring(pos+1).toLowerCase();if(argname=="name"){id=unescape(value);}
if(argname=="marker"){index=parseFloat(value);}}
var academicIcon=new GIcon();academicIcon.image="images/academic.png";academicIcon.shadow="images/sshadow.png";academicIcon.iconSize=new GSize(20,20);academicIcon.shadowSize=new GSize(0,0);academicIcon.iconAnchor=new GPoint(1,1);academicIcon.infoWindowAnchor=new GPoint(11,0);academicIcon.infoShadowAnchor=new GPoint(11,0);academicIcon.transparent="images/academic.png";academicIcon.printImage="images/academic.png";academicIcon.mozPrintImage="images/academic.png";var artsIcon=new GIcon();artsIcon.image="images/arts-events.png";artsIcon.shadow="images/sshadow.png";artsIcon.iconSize=new GSize(20,20);artsIcon.shadowSize=new GSize(0,0);artsIcon.iconAnchor=new GPoint(1,1);artsIcon.infoWindowAnchor=new GPoint(11,0);artsIcon.infoShadowAnchor=new GPoint(11,0);artsIcon.transparent="images/arts-events.png";artsIcon.printImage="images/arts-events.png";artsIcon.mozPrintImage="images/arts-events.png";var athleticsIcon=new GIcon();athleticsIcon.image="images/athletics-recreation.png";athleticsIcon.shadow="images/sshadow.png";athleticsIcon.iconSize=new GSize(20,20);athleticsIcon.shadowSize=new GSize(0,0);athleticsIcon.iconAnchor=new GPoint(1,1);athleticsIcon.infoWindowAnchor=new GPoint(11,0);athleticsIcon.infoShadowAnchor=new GPoint(11,0);athleticsIcon.transparent="images/athletics-recreation.png";athleticsIcon.printImage="images/athletics-recreation.png";athleticsIcon.mozPrintImage="images/athletics-recreation.png";var parkingIcon=new GIcon();parkingIcon.image="images/parking.png";parkingIcon.shadow="images/sshadow.png";parkingIcon.iconSize=new GSize(20,20);parkingIcon.shadowSize=new GSize(0,0);parkingIcon.iconAnchor=new GPoint(1,1);parkingIcon.infoWindowAnchor=new GPoint(11,0);parkingIcon.infoShadowAnchor=new GPoint(11,0);parkingIcon.transparent="images/parking.png";parkingIcon.printImage="images/parking.png";parkingIcon.mozPrintImage="images/parking.png";var residenceIcon=new GIcon();residenceIcon.image="images/residence.png";residenceIcon.shadow="images/sshadow.png";residenceIcon.iconSize=new GSize(20,20);residenceIcon.shadowSize=new GSize(0,0);residenceIcon.iconAnchor=new GPoint(1,1);residenceIcon.infoWindowAnchor=new GPoint(11,0);residenceIcon.infoShadowAnchor=new GPoint(11,0);residenceIcon.transparent="images/residence.png";residenceIcon.printImage="images/residence.png";residenceIcon.mozPrintImage="images/residence.png";var supportIcon=new GIcon();supportIcon.image="images/support.png";supportIcon.shadow="images/sshadow.png";supportIcon.iconSize=new GSize(20,20);supportIcon.shadowSize=new GSize(0,0);supportIcon.iconAnchor=new GPoint(1,1);supportIcon.infoWindowAnchor=new GPoint(11,0);supportIcon.infoShadowAnchor=new GPoint(11,0);supportIcon.transparent="images/support.png";supportIcon.printImage="images/support.png";supportIcon.mozPrintImage="images/support.png";var callboxIcon=new GIcon();callboxIcon.image="images/callbox.png";callboxIcon.shadow="images/sshadow.png";callboxIcon.iconSize=new GSize(20,20);callboxIcon.shadowSize=new GSize(0,0);callboxIcon.iconAnchor=new GPoint(1,1);callboxIcon.infoWindowAnchor=new GPoint(11,0);callboxIcon.infoShadowAnchor=new GPoint(11,0);callboxIcon.transparent="images/callbox.png";callboxIcon.printImage="images/callbox.png";callboxIcon.mozPrintImage="images/callbox.png";var welcomeIcon=new GIcon();welcomeIcon.image="images/welcome.png";welcomeIcon.shadow="images/sshadow.png";welcomeIcon.iconSize=new GSize(20,20);welcomeIcon.shadowSize=new GSize(0,0);welcomeIcon.iconAnchor=new GPoint(1,1);welcomeIcon.infoWindowAnchor=new GPoint(11,0);welcomeIcon.infoShadowAnchor=new GPoint(11,0);welcomeIcon.transparent="images/welcome.png";welcomeIcon.printImage="images/welcome.png";welcomeIcon.mozPrintImage="images/welcome.png";icons["academic"]=academicIcon;icons["arts"]=artsIcon;icons["athletics"]=athleticsIcon;icons["parking"]=parkingIcon;icons["residence"]=residenceIcon;icons["support"]=supportIcon;icons["callbox"]=callboxIcon;icons["welcome"]=welcomeIcon;function boxclick(box,category){if(box.checked){show(category);}else{hide(category);}
makeSidebar();}
function createMarker(point,name,html,category){var marker=new GMarker(point,icons[category]);marker.mycategory=category;marker.myname=name;GEvent.addListener(marker,"click",function(){marker.openInfoWindowHtml(html);});gmarkers.push(marker);return marker;}
function customGetTileURL(a,b){var c=Math.pow(2,b);var d=a.x;var e=a.y;var f="t";for(var g=0;g<b;g++){c=c/2;if(e<c){if(d<c){f+="q"}
else{f+="r";d-=c}}
else{if(d<c){f+="t";e-=c}
else{f+="s";d-=c;e-=c}}}
var w=((a.x+a.y)%3)+1;return"http://tileserver"+w+".appstate.edu/"+f+".jpg";}
function getWindowHeight(){if(window.self&&self.innerHeight){return self.innerHeight;}
if(document.documentElement&&document.documentElement.clientHeight){return document.documentElement.clientHeight;}
return 0;}
function hide(category){for(var i=0;i<gmarkers.length;i++){if(gmarkers[i].mycategory==category){gmarkers[i].hide();}}
document.getElementById(category+"box").checked=false;map.closeInfoWindow();}
function makeSidebar(){var html="<ul>";for(var i=0;i<gmarkers.length;i++){if(!gmarkers[i].isHidden()){html+='<li class="'+gmarkers[i].mycategory+'">'+'<a href="javascript:myclick('+i+')">'+gmarkers[i].myname+'</a></li>';}}
show_hide('related','block');show_hide('related_locations','block');html+='</ul>';document.getElementById("markerlinks").innerHTML=html;}
function myclick(i){GEvent.trigger(gmarkers[i],"click");}
function show(category){for(var i=0;i<gmarkers.length;i++){if(gmarkers[i].mycategory==category){gmarkers[i].show();}}
document.getElementById(category+"box").checked=true;}
function show_hide(id,disp){document.getElementById(id).style.display=disp;}
function load(){if(GBrowserIsCompatible()){resizeMapDiv();var copyright=new GCopyright(1,new GLatLngBounds(new GLatLng(-90,-180),new GLatLng(90,180)),0,"Appalachian State University");var copyrightCollection=new GCopyrightCollection("Campus Map");copyrightCollection.addCopyright(copyright);var campus_tileLayers=[new GTileLayer(copyrightCollection,3,6)];campus_tileLayers[0].getTileUrl=customGetTileURL;campus_tileLayers[0].isPng=function(){return false;};campus_tileLayers[0].getOpacity=function(){return 1.0;};var pic_customMap=new GMapType(campus_tileLayers,new GMercatorProjection(6),"Pic",{maxResolution:5,minResolution:3,errorMessage:"Data not available"});map=new GMap2(document.getElementById("campusmap"),{logoPassive:true},{mapTypes:[pic_customMap]});map.addControl(new GSmallMapControl());map.enableDoubleClickZoom();map.enableContinuousZoom();map.enableScrollWheelZoom();map.setCenter(new GLatLng(centerLat,centerLon),initialZoom,pic_customMap);GDownloadUrl("markers.xml",function(doc){var xmlDoc=GXml.parse(doc);var markers=xmlDoc.documentElement.getElementsByTagName("marker");for(var i=0;i<markers.length;i++){var lat=parseFloat(markers[i].getAttribute("lat"));var lng=parseFloat(markers[i].getAttribute("lng"));var point=new GLatLng(lat,lng);var infowin=GXml.value(markers[i].getElementsByTagName("infowindow")[0]);var name=markers[i].getAttribute("name");var html="<p>"+infowin+"</p>";var category=markers[i].getAttribute("category");var marker=createMarker(point,name,html,category);map.addOverlay(marker);}
show("academic");hide("athletics");hide("arts");show("parking");hide("residence");hide("support");hide("callbox");makeSidebar();if(id){if(idmarkers[name]){GEvent.trigger(idmarkers[name],"click");show(markers[index].getAttribute("category"));makeSidebar();}else{alert("name "+name+" does not match any marker");}}
if(index>-1){if(index<gmarkers.length){GEvent.trigger(gmarkers[index],"click");show(markers[index].getAttribute("category"));makeSidebar();}else{alert("marker "+index+" does not exist");}}});}
GEvent.addListener(map,"move",function(){checkBounds();});var allowedBounds=new GLatLngBounds(new GLatLng(-50.45,-88.56),new GLatLng(61.25,87.92));function checkBounds(){if(allowedBounds.contains(map.getCenter())){return;}
var C=map.getCenter();var X=C.lng();var Y=C.lat();var AmaxX=allowedBounds.getNorthEast().lng();var AmaxY=allowedBounds.getNorthEast().lat();var AminX=allowedBounds.getSouthWest().lng();var AminY=allowedBounds.getSouthWest().lat();if(X<AminX){X=AminX;}
if(X>AmaxX){X=AmaxX;}
if(Y<AminY){Y=AminY;}
if(Y>AmaxY){Y=AmaxY;}
map.setCenter(new GLatLng(Y,X));}}
