var StaticMap=Class.create();var StaticMapOptions=Object.extend({GoogleStaticMapUrl:"http://maps.google.com/staticmap?",minimumZoomLevel:1,maximumZoomLevel:19,zoomInImage:"../images/zoom_in.png",zoomOutImage:"../images/zoom_out.png",mapDraggableImage:"../images/map_draggable.png",loadingImage:"../images/loading.gif",maximumMarkerCount:15},window.StaticMapOptions||{});StaticMap.LatLng=Class.create({initialize:function(B,A){this.lat=B;this.lng=A},lat:function(){return this.lat},lng:function(){return this.lng},toString:function(){try{return parseFloat(this.lat).toFixed(6)+","+parseFloat(this.lng).toFixed(6)}catch(A){return"90.0000,180.0000"}}});StaticMap.prototype={initialize:function(A){A=A||{};this.maxZoomLevel=19;this.minZoomLevel=0;this.markers=[];this.polygons=[];this.originalMarkers=[];this.markerInfoWindows=[];this.center=A.center;this.url=A.url;this.key=A.key;this.size=A.size;this.zoom=A.zoom;this.mapType=A.mapType;this.imageFormat=A.imageFormat;this.maxMarkerCount=A.maxMarkerCount;this.colors={};this.colors.black="#000000";this.colors.brown="#A02820";this.colors.green="#008000";this.colors.purple="#800080";this.colors.yellow="#FFFF00";this.colors.blue="#6699CC";this.colors.gray="#C0C0C0";this.colors.orange="#FFA000";this.colors.red="#FF0000";this.colors.white="#FFFFFF";if(this.key){this.key="&key="+this.key}else{this.key="&key="+GSPK.GoogleMap.GetKeyForLocation()}if(!this.url){this.url=StaticMapOptions.GoogleStaticMapUrl}if(!this.size){this.size={width:300,height:300}}if(!this.imageFormat){this.imageFormat="gif"}if(!this.maxMarkerCount){this.maxMarkerCount=StaticMapOptions.maximumMarkerCount}},reset:function(){this.markers=[];this.polygons=[]},addMarker:function(C,B){if(this.markers.length>=this.maxMarkerCount){return}var A=C.toString()+",";B=B||null;this.originalMarkers.push({latLng:C,options:B});if(B){if(B.size&&B.size!="normal"){A+=B.size}if(B.color){A+=B.color}if(B.character){if(B.character!="none"){A+=B.character}}}else{A+="normal"}this.markers.push(A)},addMarkers:function(C){for(var A=0,B=C.length;A<B;A++){this.addMarker(C[A],null)}},addPolygon:function(B,A){var C="&path=";if(A){if(A.rgbColor){C+="rgb:0x"+A.rgbColor+","}else{C+="rgb:0x0000ff,"}if(A.weight){C+="weight:"+A.weight+"|"}else{C+="weight:2|"}}else{C+="path=rgb:0xff0000,weight:2|"}if(Object.isArray(B)){this.polygons.push(C+B.invoke("toString").join("|"))}},addCircle:function(F,B,N){var G=[],H=F.lat,J=F.lng;var D=Math.PI/180,A=180/Math.PI;var L=(B/3963)*A,M=L/Math.cos(H*D);var K=0,I=0,C=0;for(var E=0;E<16;E++){C=Math.PI*(E/7);I=H+(L*Math.sin(C));K=J+(M*Math.cos(C));G.push(new StaticMap.LatLng(I.toFixed(6),K.toFixed(6)))}this.addPolygon(G,N)},getImageUrl:function(){var A=this.url;A+="size="+this.size.width+"x"+this.size.height;if(this.imageFormat!="gif"){A+="&format="+this.imageFormat}if(this.center){A+="&center="+this.center.toString()}if(this.zoom){A+="&zoom="+this.zoom}if(this.mapType){A+="&maptype="+this.mapType}A+="&markers="+this.markers.join("|");if(this.polygons&&this.polygons.length>0){A+=this.polygons.join("|")}A+=this.key;return A},setImageSrc:function(A){var B=$(A);if(A){B.setStyle({width:this.size.width,height:this.size.height});B.src=this.getImageUrl()}},createInteractiveMap:function(B,A){var D=$(B);A=A||{};this.clickUrl=A.clickUrl;this.me=A.me;this.objName=A.objName;this.allowDraggableMap=true;if(this.clickUrl){this.event_MapClick={fx:function(F){F.stop();this._getClickUrl()}};this.event_MapClick.bfx=this.event_MapClick.fx.bindAsEventListener(this);Event.observe(D,"click",this.event_MapClick.bfx)}var E=this.getImageUrl();var C=new Element("div").setStyle({padding:"3px 0px 0px 3px",width:"16px",cssFloat:"left"});if(!this.zoom){this.zoom=15}C.insert(new Element("a",{href:"javascript:void(0);",id:"lnkZoomIn",title:"Zoom In"}).insert(new Element("img",{src:StaticMapOptions.zoomInImage,border:0,alt:"Zoom In"}).setStyle({opacity:0.75}).addClassName("ie-fix-opacity")).setStyle({cssFloat:"left"}));C.insert(new Element("a",{href:"javascript:void(0);",id:"lnkZoomOut",title:"Zoom Out"}).insert(new Element("img",{src:StaticMapOptions.zoomOutImage,border:0,alt:"Zoom Out"}).setStyle({opacity:0.75}).addClassName("ie-fix-opacity")).setStyle({cssFloat:"left"}));if(this.objName){D.insert(new Element("a",{href:"javascript:void(0);",id:"lnkSwitchToDraggableMap",title:"Switch to Draggable Map"}).insert(new Element("img",{src:StaticMapOptions.mapDraggableImage,border:0,alt:"Switch to Draggable Map"}).setStyle({opacity:0.75,cssFloat:"right"}).addClassName("ie-fix-opacity")).setStyle({padding:"3px 3px 0px 0px",width:"16px",cssFloat:"right"}))}D.insert(C);$("lnkZoomIn").observe("click",(function(F){F.stop();this._zoomIn(B,this.zoom+1)}).bindAsEventListener(this));$("lnkZoomOut").observe("click",(function(F){F.stop();this._zoomOut(B,this.zoom-1)}).bindAsEventListener(this));if(this.objName){$("lnkSwitchToDraggableMap").observe("click",(function(F){F.stop();this._switchToDraggableMap(B)}).bindAsEventListener(this))}D.setStyle({backgroundRepeat:"no-repeat",backgroundImage:"url("+E+")",border:"1px solid #c0c0c0"})},_zoomOut:function(B,A){if(A<=StaticMapOptions.minimumZoomLevel){A=StaticMapOptions.minimumZoomLevel}this.zoom=A;$(B).setStyle({backgroundRepeat:"no-repeat",backgroundImage:"url("+this.getImageUrl()+")",border:"1px solid #c0c0c0"})},_zoomIn:function(B,A){if(A>=StaticMapOptions.maximumZoomLevel){A=StaticMapOptions.maximumZoomLevel}this.zoom=A;$(B).setStyle({backgroundRepeat:"no-repeat",backgroundImage:"url("+this.getImageUrl()+")",border:"1px solid #c0c0c0"})},_getClickUrl:function(){window.open(this.clickUrl)},_switchToDraggableMap:function(B){var C=$(B);if(this.clickUrl){Event.stopObserving(C,"click",this.event_MapClick.bfx)}C.setStyle({backgroundRepeat:"no-repeat",backgroundImage:"url("+StaticMapOptions.loadingImage+")",backgroundPosition:"center center",border:"1px solid #c0c0c0"});var A=document.createElement("script");A.text="function "+this.objName.replace("[","").replace("]","")+"_showDraggable() { "+this.objName+"._buildDraggableMap('"+B+"'); }";A.type="text/javascript";A.defer=true;document.getElementsByTagName("head")[0].appendChild(A);GSPK.GoogleMap.LoadGoogleJSAPI(this.objName.replace("[","").replace("]","")+"_showDraggable")},_buildDraggableMap:function(el){var mapiconmaker=document.createElement("script");mapiconmaker.src="../js/mapiconmaker.js";mapiconmaker.type="text/javascript";mapiconmaker.defer=true;document.getElementsByTagName("head")[0].appendChild(mapiconmaker);google.load("maps","2",{callback:(function(){var map=new google.maps.Map2($(el));map.setCenter(new google.maps.LatLng(37.4419,-122.1419),13);var mapControl=new google.maps.HierarchicalMapTypeControl();map.addMapType(G_PHYSICAL_MAP);map.addControl(new google.maps.SmallMapControl());map.addControl(new google.maps.ScaleControl());mapControl.clearRelationships();mapControl.addRelationship(G_SATELLITE_MAP,G_HYBRID_MAP,"Labels",false);map.addControl(mapControl);map.setMapType(G_PHYSICAL_MAP);var smobj=eval(this.objName);var markerInfo=null,latLng=null,bounds=new google.maps.LatLngBounds();for(var x=0,l=smobj.markers.length;x<l;x++){markerInfo=smobj.originalMarkers[x];latLng=new google.maps.LatLng(markerInfo.latLng.lat,markerInfo.latLng.lng);bounds.extend(latLng);var character="",color;if(markerInfo.options){if(markerInfo.options.character!="none"){character=markerInfo.options.character}color=markerInfo.options.color}var newIcon=MapIconMaker.createLabeledMarkerIcon({addStar:false,label:character,primaryColor:smobj._convertColor(color)});map.addOverlay(new google.maps.Marker(latLng,newIcon))}map.setCenter(bounds.getCenter(),map.getBoundsZoomLevel(bounds))}).bindAsEventListener(this)})},_convertColor:function(A){if(this.colors[A]){return this.colors[A]}else{return this.colors.red}}};