var StaticMap=Class.create(),StaticMapOptions=Object.extend({GoogleStaticMapUrl:"http://maps.google.com/staticmap?sensor=false&",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(b){return"90.0000,180.0000"}}});
StaticMap.prototype={initialize:function(b){b=b||{};this.maxZoomLevel=19;this.minZoomLevel=0;this.markers=[];this.polygons=[];this.originalMarkers=[];this.markerInfoWindows=[];this.center=b.center;this.url=b.url;this.key=b.key;this.size=b.size;this.zoom=b.zoom;this.mapType=b.mapType;this.imageFormat=b.imageFormat;this.maxMarkerCount=b.maxMarkerCount;this.disableScroll=b.disableScroll;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";this.key=this.key?"&key="+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;if(!this.disableScroll)this.disableScroll=
false},reset:function(){this.markers=[];this.polygons=[]},addMarker:function(b,a){if(!(this.markers.length>=this.maxMarkerCount)){var c=b.toString()+",",a=a||null;this.originalMarkers.push({latLng:b,options:a});a?(a.size&&a.size!="normal"&&(c+=a.size),a.color&&(c+=a.color),a.character&&a.character!="none"&&(c+=a.character)):c+="normal";this.markers.push(c)}},addMarkers:function(b){for(var a=0,c=b.length;a<c;a++)this.addMarker(b[a],null)},addPolygon:function(b,a){var c="&path=";a?(c+=a.rgbColor?"rgb:0x"+
a.rgbColor+",":"rgb:0x0000ff,",c+=a.weight?"weight:"+a.weight+"|":"weight:2|"):c+="path=rgb:0xff0000,weight:2|";Object.isArray(b)&&this.polygons.push(c+b.invoke("toString").join("|"))},addCircle:function(b,a,c){for(var g=[],d=b.lat,b=b.lng,a=a/3963*(180/Math.PI),h=a/Math.cos(d*(Math.PI/180)),e=0,f=0,i=e=0;i<16;i++)e=Math.PI*(i/7),f=d+a*Math.sin(e),e=b+h*Math.cos(e),g.push(new StaticMap.LatLng(f.toFixed(6),e.toFixed(6)));this.addPolygon(g,c)},getImageUrl:function(){var b=this.url;b+="size="+this.size.width+
"x"+this.size.height;this.imageFormat!="gif"&&(b+="&format="+this.imageFormat);this.center&&(b+="&center="+this.center.toString());this.zoom&&(b+="&zoom="+this.zoom);this.mapType&&(b+="&maptype="+this.mapType);b+="&markers="+this.markers.join("|");this.polygons&&this.polygons.length>0&&(b+=this.polygons.join("|"));b+=this.key;return b},setImageSrc:function(b){var a=$(b);if(b)a.setStyle({width:this.size.width,height:this.size.height}),a.src=this.getImageUrl()},createInteractiveMap:function(b,a){var c=
$(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(a){a.stop();this._getClickUrl()}},this.event_MapClick.bfx=this.event_MapClick.fx.bindAsEventListener(this),Event.observe(c,"click",this.event_MapClick.bfx);var g=this.getImageUrl(),d=(new Element("div")).setStyle({padding:"3px 0px 0px 3px",width:"16px",cssFloat:"left"});if(!this.zoom)this.zoom=15;var h=c&&c.id?"lnkZoomIn_"+c.id:"lnkZoomIn",e=c&&c.id?
"lnkZoomOut_"+c.id:"lnkZoomOut",f=c&&c.id?"lnkSwitchToDraggableMap_"+c.id:"lnkSwitchToDraggableMap";d.insert((new Element("a",{href:"javascript:void(0);",id:h,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"}));d.insert((new Element("a",{href:"javascript:void(0);",id:e,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"}));
this.objName&&c.insert((new Element("a",{href:"javascript:void(0);",id:f,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"}));c.insert(d);$(h).observe("click",function(a){a.stop();this._zoomIn(b,this.zoom+1)}.bindAsEventListener(this));$(e).observe("click",function(a){a.stop();
this._zoomOut(b,this.zoom-1)}.bindAsEventListener(this));this.objName&&$(f).observe("click",function(a){a.stop();this._switchToDraggableMap(b)}.bindAsEventListener(this));c.setStyle({backgroundRepeat:"no-repeat",backgroundImage:"url("+g+")",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 a=$(b);this.clickUrl&&Event.stopObserving(a,"click",this.event_MapClick.bfx);a.setStyle({backgroundRepeat:"no-repeat",backgroundImage:"url("+StaticMapOptions.loadingImage+")",backgroundPosition:"center center",
border:"1px solid #c0c0c0"});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(b){var a=document.createElement("script");a.src="../js/mapiconmaker.js";a.type="text/javascript";
a.defer=true;document.getElementsByTagName("head")[0].appendChild(a);google.load("maps","2",{callback:function(){var a=new google.maps.Map2($(b));a.setCenter(new google.maps.LatLng(37.4419,-122.1419),13);a.setUIToDefault();this.disableScroll!=false&&a.disableScrollWheelZoom();for(var g=eval(this.objName),d=null,h=null,e=new google.maps.LatLngBounds,f=0,i=g.markers.length;f<i;f++){d=g.originalMarkers[f];h=new google.maps.LatLng(d.latLng.lat,d.latLng.lng);e.extend(h);var j="",k;if(d.options){if(d.options.character!=
"none")j=d.options.character;k=d.options.color}d=MapIconMaker.createLabeledMarkerIcon({addStar:false,label:j,primaryColor:g._convertColor(k)});a.addOverlay(new google.maps.Marker(h,d))}a.setCenter(e.getCenter(),a.getBoundsZoomLevel(e))}.bindAsEventListener(this)})},_convertColor:function(b){return this.colors[b]?this.colors[b]:this.colors.red}};

