//Created for Stott Outdoor Advertising
//Copyright 2008 by Erickson Technology Consulting
//Requires that the Google Maps API is loaded before it.
//Future ideas:
//	1.) Add display of current location via getLocations()
var fileFolder="/stottmap/";function loadLocPhotos(e){GDownloadUrl("/locations/imgxml.php?num="+e,function(a){var b="";var c=GXml.parse(a);var d=c.documentElement.getElementsByTagName("photo");for(var i=0;i<d.length;i++){b+="<a href='"+d[i].getAttribute("thumb")+"'";b+=" onclick='return GB_showImage(\""+d[i].getAttribute("title")+" Facing \",this.href);'>";b+=d[i].getAttribute("title")+" facing";b+="</a> "}if(d.length==0){b="No Photos Available"}document.getElementById('xml_location_photo').innerHTML=b})}function load(){if(GBrowserIsCompatible()){var ba;var bb;var bc;var bd;var be;var bf;var bg=[];var bh=[];var bi=document.getElementById("lnkhelp");bi.onclick=function(){GB_showCenter('Stott Outdoor Advertising Location Map Help','/stottmap/maphelp.html');return false};ba=new GMap2(document.getElementById("map"));ba.setCenter(new GLatLng(39.744,-121.823),6);ba.addControl(new GOverviewMapControl());ba.addControl(new GScaleControl());new GKeyboardHandler(ba);var bj=new GIcon();bj.image=fileFolder+"busicon.png";bj.iconSize=new GSize(54,14);bj.iconAnchor=new GPoint(26,7);bj.infoWindowAnchor=new GPoint(60,20);var bk=new GIcon();bk.image=fileFolder+"Multiple.png";bk.iconSize=new GSize(35,27);bk.iconAnchor=new GPoint(17,27);bk.infoWindowAnchor=new GPoint(17,0);var bl=new GIcon();bl.image=fileFolder+"Bulletin-sm.png";bl.shadow=fileFolder+"Bulletin-sm-shadow.png";bl.iconSize=new GSize(26,27);bl.shadowSize=new GSize(38,27);bl.iconAnchor=new GPoint(13,27);bl.infoWindowAnchor=new GPoint(17,0);var bm=new GIcon();bm.image=fileFolder+"Poster-sm.png";bm.shadow=fileFolder+"Poster-sm-shadow.png";bm.iconSize=new GSize(18,18);bm.shadowSize=new GSize(26,18);bm.iconAnchor=new GPoint(9,18);bm.infoWindowAnchor=new GPoint(17,0);var bn=new GIcon();bn.image=fileFolder+"JuniorPoster-sm.png";bn.shadow=fileFolder+"JuniorPoster-sm-shadow.png";bn.iconSize=new GSize(17,12);bn.shadowSize=new GSize(22,12);bn.iconAnchor=new GPoint(9,12);bn.infoWindowAnchor=new GPoint(17,0);var bo=new GIcon();bo.image=fileFolder+"TransitShelter-sm.png";bo.shadow=fileFolder+"TransitShelter-sm-shadow.png";bo.iconSize=new GSize(17,12);bo.shadowSize=new GSize(22,12);bo.iconAnchor=new GPoint(9,12);bo.infoWindowAnchor=new GPoint(17,0);var bp=new GIcon();bp.image=fileFolder+"BusBench-sm.png";bp.shadow=fileFolder+"BusBench-sm-shadow.png";bp.iconSize=new GSize(17,12);bp.shadowSize=new GSize(22,12);bp.iconAnchor=new GPoint(9,12);bp.infoWindowAnchor=new GPoint(17,0);var bq="None";if(typeof(getType)!="undefined")bq=getType;function toggleLocation(a){if(bq==a)bq="None";else bq=a}function createMarker(a){var b=new GLatLng(a.lat,a.lng);var c=a.xml.getAttribute("type");switch(c.slice(0,4)){case"Bull":var d=new GMarker(b,bl);break;case"Post":var d=new GMarker(b,bm);break;case"8-Sh":var d=new GMarker(b,bn);break;case"Bus ":var d=new GMarker(b,bp);break;case"Tran":var d=new GMarker(b,bo);break;case"BusR":var d=new GMarker(b,bj);break;default:var d=new GMarker(b,bl);break}GEvent.addListener(d,"click",function(){bf=d;this.openInfoWindowHtml("<div class='info_window'><div class='popup_title'>"+a.xml.getAttribute("type")+"</div>"+"<strong>Location #:</strong> "+a.xml.getAttribute("location_num")+"<br/><strong>City:</strong> "+a.xml.getAttribute("city")+"<br/><strong>Facing:</strong> "+a.xml.getAttribute("facing")+"<br/><strong>Description: </strong>"+GXml.value(a.xml)+"<br/><strong>Photo(s): </strong><span id='xml_location_photo'>Loading...</span>");loadLocPhotos(a.xml.getAttribute("location_num"))});d.type=c;return d}GDownloadUrl(fileFolder+"xml.php",function(R){var S=GXml.parse(R);var T=S.documentElement.getElementsByTagName("location");var U=[];for(var i=0;i<T.length;i++){var V=new Object();V.location=T[i].getAttribute("location_num");V.lat=parseFloat(T[i].getAttribute("lat"));V.lng=parseFloat(T[i].getAttribute("lng"));V.xml=T[i];U.push(V)}var W=function(a,b,c,d){this.bounds_=a;this.weight_=b||1;this.html_=d||"";this.color_=c||"#888888"};W.prototype=new GOverlay();W.prototype.initialize=function(a){var b=document.createElement("div");b.innerHTML=this.html_;b.style.borderWidth=this.weight_+"px";b.style.borderStyle="dashed";b.style.borderColor=this.color_;b.style.position="absolute";a.getPane(G_MAP_MAP_PANE).appendChild(b);this.map_=a;this.div_=b};W.prototype.remove=function(){this.div_.parentNode.removeChild(this.div_)};W.prototype.copy=function(){return new W(this.bounds_,this.weight_,this.color_,this.backgroundColor_,this.opacity_)};W.prototype.redraw=function(a){if(!a)return;var b=this.map_.fromLatLngToDivPixel(this.bounds_.getSouthWest());var c=this.map_.fromLatLngToDivPixel(this.bounds_.getNorthEast());this.div_.style.width=Math.abs(c.x-b.x)+"px";this.div_.style.height=Math.abs(c.y-b.y)+"px";this.div_.style.left=(Math.min(c.x,b.x)-this.weight_)+"px";this.div_.style.top=(Math.min(c.y,b.y)-this.weight_)+"px"};var X=new GClientGeocoder();var Y=document.getElementById("frmsearch");var Z=document.getElementById("txtsearch");Y.onsubmit=function(){var b=Z.value;var c=false;var d;for(i in U){if(U[i].location==b){c=true;d=U[i];break}}if(c){var e=new GLatLng(d.lat,d.lng);ba.setCenter(e,17)}else{X.getLatLng(b,function(a){if(!a){alert(Z.value+" not found")}else{ba.setCenter(a,13)}})}return false};function checkMove(){ba.removeControl(bc);var c=getWindowSize();var d=c.height-150;var e=Math.floor(d/50);var f=ba.getBounds();var g=f.getSouthWest();var h=f.getNorthEast();var l=f.toSpan();var m=l.lat()/e;var n=l.lng()/e;var o=[];for(k in bh){ba.removeOverlay(bh[k])}bh=[];for(k in bg){if(bf!=bg[k]){ba.removeOverlay(bg[k]);delete bg[k]}}visible_locations=[];for(k in U){var p=new GLatLng(U[k].lat,U[k].lng);if(f.contains(p)){visible_locations.push(U[k])}}var q=0;var r=0;var s=0;var t=0;var u=0;var v=0;var w=0;for(k in visible_locations){var p=new GLatLng(visible_locations[k].lat,visible_locations[k].lng);var x=false;switch(visible_locations[k].xml.getAttribute("type").slice(0,4)){case"Bull":q++;if(bq=='None'||bq=='Bulletin')x=true;break;case"Post":r++;if(bq=='None'||bq=='Poster')x=true;break;case"8-Sh":s++;if(bq=='None'||bq=='8Sheet')x=true;break;case"Bus ":t++;if(bq=='None'||bq=='Bench')x=true;break;case"Tran":u++;if(bq=='None'||bq=='Transit')x=true;break;case"BusR":v++;if(bq=='None'||bq=='Bus')x=true;break;default:w++;break}if(x){var y=new GLatLngBounds(g,p);var z=y.toSpan();var i=Math.ceil(z.lat()/m);var j=Math.ceil(z.lng()/n);var A=i*10+j;if(typeof o[A]=='undefined'){var B=new GLatLng(g.lat()+((i-1)*m),g.lng()+((j-1)*n));var C=new GLatLng(B.lat()+m,B.lng()+n);o[A]={GLatLngBounds:new GLatLngBounds(B,C),cluster:false,markers:[]}}o[A].markers.push(visible_locations[k]);if(o[A].cluster)continue;if(o[A].markers.length==2&&visible_locations.length>1&&ba.getZoom()<16){o[A].cluster=true}}}for(k in o){if(o[k].cluster==true){var D=o[k].GLatLngBounds.toSpan();var g=o[k].GLatLngBounds.getSouthWest();var E=new GMarker(new GLatLng(g.lat(),g.lng()+(D.lng()/2)),bk);var F=new W(o[k].GLatLngBounds,1,"#8d0f00",'<div style="background:#ebe6dc;text-align:center;font-weight:bold;">'+o[k].markers.length+' Locations</div>');E.bounds=o[k].GLatLngBounds;GEvent.addListener(E,"click",function(){bf=E;bd=ba.getCenter();be=ba.getZoom();var a=ba.getBoundsZoomLevel(this.bounds);var b=this.bounds.getCenter();ba.setCenter(b,a);bc=new PrevZoomControl();ba.addControl(bc)});E.rect=F;GEvent.addListener(E,"mouseover",function(){this.rectHtml=this.rect.div_.innerHTML;this.rect.div_.innerHTML='<div style="background:#ebe6dc;text-align:center;font-weight:bold;color:red;">Click to Zoom</div>'});GEvent.addListener(E,"mouseout",function(){this.rect.div_.innerHTML=this.rectHtml});ba.addOverlay(E);bh.push(E);ba.addOverlay(F);bh.push(F)}for(i in o[k].markers){var G=o[k].markers[i].xml.getAttribute("type");if(G.slice(0,4)=="BusR"||!o[k].cluster){var E=createMarker(o[k].markers[i]);ba.addOverlay(E);bg.push(E)}}}var H=q+r+s+t+v+u;var I="";if(q!=0&&(bq=='None'||bq=='Bulletin')){I+="<div class='productitem ' id='productBulletin'>";I+="<img class='producticon' src='"+fileFolder+"Bulletin.png'/><strong>Bulletin</strong>"+"</div>";H-=q}if(r!=0&&(bq=='None'||bq=='Poster')){I+="<div class='productitem ' id='productPoster'>";I+="<img class='producticon' src='"+fileFolder+"Poster.png'/><strong>Poster</strong>"+"</div>";H-=r}if(s!=0&&(bq=='None'||bq=='8Sheet')){I+="<div class='productitem ' id='product8Sheet'>";I+="<img class='producticon' src='"+fileFolder+"JuniorPoster.png'/><strong>Junior Poster</strong>"+"</div>";H-=s}if(t!=0&&(bq=='None'||bq=='Bench')){I+="<div class='productitem ' id='productBench'>";I+="<img class='producticon' src='"+fileFolder+"BusBench.png'/><strong>Bus Bench</strong>"+"</div>";H-=t}if(v!=0&&(bq=='None'||bq=='Bus')){I+="<div class='productitem ' id='productBus'>";I+="<img class='producticon' src='"+fileFolder+"Bus.png'/><strong>Bus Advertising</strong>"+"</div>";H-=v}if(u!=0&&(bq=='None'||bq=='Transit')){I+="<div class='productitem ' id='productTransit'>";I+="<img class='producticon' src='"+fileFolder+"TransitShelter.png'/><strong>Transit Shelter</strong>"+"</div>";H-=u}if(bq!='None'&&H>0){I+="<div class='productitem' id='productNone'>";I+="<em>Click here to view all locations.</em></div>"}if(I=="")I="<div class='products_text'>No products are available in this view. Please select a different view.</div>";document.getElementById("products").innerHTML=I;var J=document.getElementById("products_title");switch(bq){case"Bulletin":J.innerHTML="Bulletins in Current View";break;case"Poster":J.innerHTML="Posters in Current View";break;case"8Sheet":J.innerHTML="Junior Posters in Current View";break;case"Bench":J.innerHTML="Bus Benches in Current View";break;case"Transit":J.innerHTML="Transit Shelters in Current View";break;case"Bus":J.innerHTML="Bus Ads in Current View";break;default:J.innerHTML="Products in Current View";break}var K=document.getElementById("productNone");if(K){K.onclick=function(){toggleLocation('None');resize()}}var L=document.getElementById("productBulletin");if(L){L.onclick=function(){toggleLocation('Bulletin');resize()}}var M=document.getElementById("productPoster");if(M){M.onclick=function(){toggleLocation('Poster');resize()}}var N=document.getElementById("product8Sheet");if(N){N.onclick=function(){toggleLocation('8Sheet');resize()}}var O=document.getElementById("productBench");if(O){O.onclick=function(){toggleLocation('Bench');resize()}}var P=document.getElementById("productTransit");if(P){P.onclick=function(){toggleLocation('Transit');resize()}}var Q=document.getElementById("productBus");if(Q){Q.onclick=function(){toggleLocation('Bus');resize()}}}GEvent.addListener(ba,"moveend",checkMove);function resize(){var a=getWindowSize();var b=a.height-150;ba.removeControl(bb);if(b<270){bb=new GSmallMapControl()}else{bb=new GLargeMapControl()}ba.addControl(bb);var c=document.getElementById("map");c.style.height=b+'px';var d=document.getElementById("leftscroll");d.style.height=b-60+'px';ba.checkResize();checkMove()}if(window.attachEvent){window.attachEvent("onresize",resize)}else{window.addEventListener("resize",resize,false)}resize()});function PrevZoomControl(){}PrevZoomControl.prototype=new GControl();PrevZoomControl.prototype.initialize=function(a){var b=document.createElement("div");var c=document.createElement("div");this.setButtonStyle_(c);b.appendChild(c);c.appendChild(document.createTextNode("Previous View"));GEvent.addDomListener(c,"click",function(){a.setCenter(bd,be)});a.getContainer().appendChild(b);return b};PrevZoomControl.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(7,7))};PrevZoomControl.prototype.setButtonStyle_=function(a){a.style.color="#000000";a.style.backgroundColor="#ffbc02";a.style.border="1px outset";a.style.padding="5px";a.style.textAlign="center";a.style.width="6em";a.style.cursor="pointer"}}else{alert("I am sorry, but your web browser software is not compatible with Google Maps")}}if(window.attachEvent){window.attachEvent("onload",load);window.attachEvent("onunload",GUnload)}else{window.addEventListener("load",load,false);window.addEventListener("unload",GUnload,false)}function getWindowSize(){var e=new Object();if(window.self&&self.innerWidth){e.width=self.innerWidth;e.height=self.innerHeight}else if(document.documentElement&&document.documentElement.clientHeight){e.width=document.documentElement.clientWidth;e.height=document.documentElement.clientHeight}else{e.width=document.body.clientWidth;e.height=document.body.clientHeight}return e}var even=true;function getCSSclass(){even=!even;if(even==true)return"even";else return"odd"}