
$(document).ready(function(){$('#search-box').val(SEARCH_PROMPT);$('#search-box').keyup(function(){searchStr=this.value.toLowerCase();if(searchStr!=''&&searchStr!=SEARCH_PROMPT){$("li[id*=li-]").css('display','list-item');for(i=0;i<jsonData.length;i++){if(!((jsonData[i].title.toLowerCase().indexOf(searchStr)>-1)||($('#descr-'+jsonData[i].slug).text().toLowerCase().indexOf(searchStr)>-1)||(jsonData[i].keywords.toLowerCase().indexOf(searchStr)>-1)))
{$('#li-'+jsonData[i].slug).css('display','none');}}}else if(searchStr==''){$("li[id*=li-]").css('display','list-item');}});$('#search-box').focus(function(){if($('#search-box').val()==SEARCH_PROMPT){$('#search-box').css('color','black');$('#search-box').val('');}});$('#search-box').blur(function(){if($('#search-box').val()==''){$('#search-box').css('color','#CCCCCC');$('#search-box').val(SEARCH_PROMPT);$("li[id*=li-]").css('display','list-item');}});var bldgHtml="";for(i=0;i<jsonData.length;i++){bldgHtml+="<li id='li-"+jsonData[i].slug+"'><a href='#"+jsonData[i].slug+"'>"+jsonData[i].title+"</a></li>";}
$('#map-nav > ul').append(bldgHtml);$('#map-nav a').click(function(){loadInfoWindow(this.toString().split("#")[1]);});var latlng=new google.maps.LatLng(38.47095702726976,-78.87838663956452);var myMapTypes=new Array(google.maps.MapTypeId.ROADMAP,google.maps.MapTypeId.SATELLITE,google.maps.MapTypeId.HYBRID);var myOptions={zoom:17,center:latlng,mapTypeId:google.maps.MapTypeId.ROADMAP,mapTypeControlOptions:{mapTypeIds:myMapTypes}};map=new google.maps.Map(document.getElementById("map-area"),myOptions);var swBound=new google.maps.LatLng(38.468076,-78.882808);var neBound=new google.maps.LatLng(38.476101,-78.872410);var bounds=new google.maps.LatLngBounds(swBound,neBound);var srcImage='http://www.emu.edu/map/images/Campus-Map-09-GMaps-overlay.png';overlay=new USGSOverlay(bounds,srcImage,map);google.maps.event.addListener(map,'maptypeid_changed',function(event){if(map.getMapTypeId()==google.maps.MapTypeId.ROADMAP)
overlay.show();else
overlay.hide();});if(location.href.indexOf("#")>-1){loadInfoWindow(location.href.split("#")[1]);}
$(window).bind('hashchange',function(e){loadInfoWindow(location.href.split("#")[1]);});$('#mspots-bldgs').attr('checked',true);map.setBuildings();$('#mspots-parking').attr('checked',false);$('#mspots-bike-racks').attr('checked',false);$('#mspots-bldgs').click(function(){if(this.checked){map.setBuildings();}else{map.clearBuildings();}});$('#mspots-parking').click(function(){(this.checked)?doParkingOverlay():map.clearParking();});$('#parking-types').change(function(){doParkingOverlay();});$('#mspots-bike-racks').click(function(){(this.checked)?doBikeRackOverlay():map.clearBikeRacks();});$(window).resize(function(){doWindowResize();});doWindowResize();});function doWindowResize(){$('#map-nav').height(($('#left-nav').height()-EMU_LOGO_HEIGHT)-MAP_SPOTS_HEIGHT);$('#map-spots').height(MAP_SPOTS_HEIGHT);google.maps.event.trigger(map,'resize');$('#map-area').width($('body').width()-$('#left-nav').width());}
function doParkingOverlay(){var parkingMarker,latLong;var parkingType=$('#parking-types :selected').val();$('#mspots-parking').attr('checked',true);map.clearParking();switch(parkingType){case"residents":for(i=0;i<parkingData.residents.length;i++){latLong=new google.maps.LatLng(parkingData.residents[i].split(",")[0],parkingData.residents[i].split(",")[1]);parkingMarker=new google.maps.Marker({position:latLong,map:map,icon:parkingIcon});map.addParking(parkingMarker);}
break;case"commuters":for(i=0;i<parkingData.commuters.length;i++){latLong=new google.maps.LatLng(parkingData.commuters[i].split(",")[0],parkingData.commuters[i].split(",")[1]);parkingMarker=new google.maps.Marker({position:latLong,map:map,icon:parkingIcon});map.addParking(parkingMarker);}
break;case"faculty-staff":for(i=0;i<parkingData.fs.length;i++){latLong=new google.maps.LatLng(parkingData.fs[i].split(",")[0],parkingData.fs[i].split(",")[1]);parkingMarker=new google.maps.Marker({position:latLong,map:map,icon:parkingIcon});map.addParking(parkingMarker);}
break;case"visitors":for(i=0;i<parkingData.visitors.length;i++){latLong=new google.maps.LatLng(parkingData.visitors[i].split(",")[0],parkingData.visitors[i].split(",")[1]);parkingMarker=new google.maps.Marker({position:latLong,map:map,icon:parkingIcon});map.addParking(parkingMarker);}
break;}
for(i=0;i<parkingData.unrestricted.length;i++){latLong=new google.maps.LatLng(parkingData.unrestricted[i].split(",")[0],parkingData.unrestricted[i].split(",")[1]);parkingMarker=new google.maps.Marker({position:latLong,map:map,icon:parkingIcon,zIndex:200});map.addParking(parkingMarker);}}
function doBikeRackOverlay(){var bikeRack,latLong;for(i=0;i<bikeRacks.length;i++){latLong=new google.maps.LatLng(bikeRacks[i].split(",")[0],bikeRacks[i].split(",")[1]);bikeRack=new google.maps.Marker({position:latLong,map:map,icon:bikeRackIcon,zIndex:300});map.addBikeRack(bikeRack);}}
function loadInfoWindow(buildingSlug){if(typeof infowindow!='undefined')infowindow.close();for(i=0;i<jsonData.length;i++){if(jsonData[i].slug==buildingSlug){var latLong=new google.maps.LatLng(jsonData[i].latLong.split(",")[0],jsonData[i].latLong.split(",")[1]);infowindow=new google.maps.InfoWindow({content:(getInfoWindowHTML(i)),position:latLong,maxWidth:INFO_WIN_MAX_WIDTH});infowindow.open(map);map.setCenter(latLong);google.maps.event.addListener(infowindow,'closeclick',function(){removeHash();});}}}
function removeHash(){location.hash='';}
function getInfoWindowHTML(jdi){return'<h3>'+jsonData[jdi].title+'</h3><div class="map-descr">'+$('#descr-'+jsonData[jdi].slug).html()+'</div>';}
var geoXml;var overlay;USGSOverlay.prototype=new google.maps.OverlayView();function USGSOverlay(bounds,image,map){this.bounds_=bounds;this.image_=image;this.map_=map;this.div_=null;this.setMap(map);}
USGSOverlay.prototype.onAdd=function(){var div=document.createElement('DIV');div.style.border="0px solid";div.style.position="absolute";var img=document.createElement("img");img.src=this.image_;img.style.width="100%";img.style.height="100%";div.appendChild(img);this.div_=div;var panes=this.getPanes();panes.overlayImage.appendChild(div);}
USGSOverlay.prototype.draw=function(){var overlayProjection=this.getProjection();var sw=overlayProjection.fromLatLngToDivPixel(this.bounds_.getSouthWest());var ne=overlayProjection.fromLatLngToDivPixel(this.bounds_.getNorthEast());var div=this.div_;div.style.left=sw.x+'px';div.style.top=ne.y+'px';div.style.width=(ne.x-sw.x)+'px';div.style.height=(sw.y-ne.y)+'px';div.style.zIndex=100;}
USGSOverlay.prototype.onRemove=function(){this.div_.parentNode.removeChild(this.div_);this.div_=null;}
USGSOverlay.prototype.hide=function(){if(this.div_){this.div_.style.visibility="hidden";}}
USGSOverlay.prototype.show=function(){if(this.div_){this.div_.style.visibility="visible";}}
USGSOverlay.prototype.toggle=function(){if(this.div_){if(this.div_.style.visibility=="hidden"){this.show();}else{this.hide();}}}
google.maps.Map.prototype.buildings=new Array();google.maps.Map.prototype.addBuilding=function(building){this.buildings[this.buildings.length]=building;};google.maps.Map.prototype.getBuilding=function(buildingId){return this.buildings[buildingId];};google.maps.Map.prototype.setBuildings=function(){var building,latLong,markerImg;for(i=0;i<jsonData.length;i++){latLong=new google.maps.LatLng(jsonData[i].latLong.split(",")[0],jsonData[i].latLong.split(",")[1]);markerImg=new google.maps.MarkerImage('http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png',null,null,null,new google.maps.Size(35,35));building=new google.maps.Marker({position:latLong,map:map,icon:markerImg,title:jsonData[i].title,slug:jsonData[i].slug,zIndex:1000});map.addBuilding(building);google.maps.event.addListener(map.getBuilding(i),'click',function(){if(this.slug==location.href.split("#")[1]){loadInfoWindow(location.href.split("#")[1]);}else{location.href="#"+this.slug;}});}};google.maps.Map.prototype.clearBuildings=function(){for(var i=0;i<this.buildings.length;i++){this.buildings[i].setMap(null);}
this.buildings=new Array();};var parkingData={commuters:["38.471112949484315,-78.88077179393102","38.47034120997605,-78.88054514726926","38.469495961989765,-78.88147788545419","38.47240913827551,-78.87808019718457","38.47153556523885,-78.87839669784833","38.46839292471663,-78.87963587841321","38.46983773736877,-78.87921477159787"],fs:["38.471112949484315,-78.88077179393102","38.47034120997605,-78.88054514726926","38.469495961989765,-78.88147788545419","38.47240913827551,-78.87808019718457","38.47153556523885,-78.87839669784833","38.46839292471663,-78.87963587841321","38.46983773736877,-78.87921477159787","38.46960568728809,-78.87746194800664"],visitors:["38.471112949484315,-78.88077179393102","38.47034120997605,-78.88054514726926","38.469495961989765,-78.88147788545419","38.47240913827551,-78.87808019718457","38.47153556523885,-78.87839669784833","38.46839292471663,-78.87963587841321","38.46983773736877,-78.87921477159787","38.46960568728809,-78.87746194800664"],residents:["38.472712051454536,-78.87982966801454","38.47228419278069,-78.87992555698682","38.473662781087256,-78.8790390869074","38.471735060014005,-78.87685040435125","38.47180645800994,-78.876220755785","38.472123548255084,-78.8752658893757"],unrestricted:["38.47248788532478,-78.88181986710359","38.47346224169996,-78.88004424473573","38.47200857695292,-78.88051832517911","38.47331944891673,-78.87833366593648","38.474767312636864,-78.87688795527745","38.46942823672243,-78.88055989941884","38.47128042111704,-78.87701401910115"]};google.maps.Map.prototype.parkingMarkers=new Array();google.maps.Map.prototype.addParking=function(parking){this.parkingMarkers[this.parkingMarkers.length]=parking;};google.maps.Map.prototype.getParking=function(parkingId){return this.parkingMarkers[parkingId];};google.maps.Map.prototype.clearParking=function(){for(var i=0;i<this.parkingMarkers.length;i++){this.parkingMarkers[i].setMap(null);}
this.parkingMarkers=new Array();};var bikeRacks=["38.469329536219625,-78.88096690177917","38.4703795346508,-78.88024270534515","38.47094022755083,-78.8801622390747","38.4712111225584,-78.88009786605835","38.470408934386846,-78.87903034687042","38.47017373616299,-78.87886941432953","38.470333335041374,-78.88113051652908","38.469140534878264,-78.88021051883698","38.4682081210109,-78.87973040342331","38.4697621374252,-78.87779921293259","38.47020313598287,-78.87764364480972","38.47005403677231,-78.87820690870285","38.47193770414211,-78.8754603266716","38.47216449689432,-78.87614697217941","38.471847406829255,-78.87695163488388","38.47184110701251,-78.87724667787552","38.472032201208904,-78.87759000062943","38.472752474781615,-78.87818276882172","38.47194610388639,-78.8784858584404","38.47195660356536,-78.87915909290314","38.471652112254205,-78.87975990772247","38.47340764449356,-78.87973040342331"];google.maps.Map.prototype.bikeRacks=new Array();google.maps.Map.prototype.addBikeRack=function(bikeRack){this.bikeRacks[this.bikeRacks.length]=bikeRack;};google.maps.Map.prototype.getBikeRack=function(bikeRackId){return this.bikeRacks[bikeRackId];};google.maps.Map.prototype.clearBikeRacks=function(){for(var i=0;i<this.bikeRacks.length;i++){this.bikeRacks[i].setMap(null);}
this.bikeRacks=new Array();};
