function getPdMarkerRevisionInfo(){var b="<br/>";var a="2.03  10/02/07 - fixed zindex bug (setMarkerZIndex, topMarkerZIndex)"+b+"2.02  05/22/07 - fixed minor issues (blink, initDetailWin)"+b+"2.01  04/29/07 - improved left hand side detail window positioning, uses new Google setImage &amp; show routines for added reliability, fixed zoomToMarkers for single marker case."+b+"2.00  04/22/07 - fix for setImage when using Explorer 7."+b+"1.99f 07/09/06 - zoomToMarkers now takes into account markers not displayed."+b+"1.99e 05/05/06 - fixed zoomed tooltip positioning &amp; non-centered marker graphics."+b+"1.99d 05/01/06 - fixed display &amp; blink when defining .transparent."+b+"1.99c 04/25/06 - added display and blink."+b+"1.99b 04/21/06 - added 'Powered By' version &amp; marker count display."+b+"1.99a 04/18/06 - revised for Google Maps API Version 2, GMap2 required."+b+"0.99c 01/30/06 - added setDetailWinClass and resetDetailWinClass."+b+"0.99a 10/12/05 - now handles maps in containers with undefined widths"+b+"define a div with id 'pdmarkerwork' to reduce flicker"+b+"0.99  10/03/05 - added setImageEnabled, allowLeftTooltips (global)"+b+"0.98  09/30/05 - fixed zoomToMarkers"+b+"0.97  09/24/05 - added setHoverImage, setShowDetailOnClick, setDetailWinHTML, showDetailWin, closeDetailWin"+b+"0.96  09/22/05 - added setTooltipHiding, getTooltipHiding"+b+"0.95  09/20/05 - handle zoom for lingering tooltips mouseOutEnabled(false) disables setImage and restoreImage"+b+"0.94  09/20/05 - added setTooltipClass and resetTooltipClass"+b+"0.93  09/19/05 - added slopPercentage [optional] parameter to zoomToMarkers"+b+"0.92  09/18/05 - added getMouseOutEnabled, setMouseOutEnabled"+b+"0.91  09/17/05 - fixed setOpacity";return a}function getPdMarkerVersion(){return getPdMarkerRevisionInfo().substring(0,15)}function getPdMarkerShortVersion(){return getPdMarkerRevisionInfo().substring(0,5)}var APIkey="";function getGoogleMapsVersion(){var l,j,h,m;var k="unknown";if(document.getElementsByTagName){for(l=0;(j=document.getElementsByTagName("script")[l]);l++){if(j.getAttribute("src")){h=j.getAttribute("src");m=h.indexOf("/mapfiles/maps");d=h.indexOf("http://maps.google.com/maps?file=api");e=h.indexOf("key=");f=h.indexOf("/mapfiles/");g=h.indexOf("/maps");if(m>0){k=parseFloat(h.substring(m+14))}else{if(f>0){k="2."+h.substring(f+10,g)}}if(d>=0){if(e>0){APIkey=h.substring(e+4)}}}}}return k}function latLongToPixel(b,c,a){return b.fromLatLngToDivPixel(c)}var pdMarkerExtList=[];function PdMarkerAddToExtList(a){pdMarkerExtList.push(a)}function PdMarkerRemoveFromExtList(b){for(var a=0;a<pdMarkerExtList.length;a++){if(pdMarkerExtList[a].internalId==b){pdMarkerExtList.splice(a,1)}}}function PdMarkerFindInExtList(b){for(var a=0;a<pdMarkerExtList.length;a++){if(pdMarkerExtList[a].internalId==b){return pdMarkerExtList[a]}}}function PdMarkerClose(b){for(var a=0;a<pdMarkerExtList.length;a++){if(pdMarkerExtList[a].internalId==b){pdMarkerExtList[a].closeDetailWin();pdMarkerExtList.splice(a,1)}}}function PdMarkerBlinkOnOff(b){var a=PdMarkerFindInExtList(b);if(a){if(!a.blinking){return}a.blinkOn=!a.blinkOn;a.display(a.blinkOn);setTimeout("PdMarkerBlinkOnOff("+a.getId()+");",a.blinkSpeed)}}function isPdMarker(b){if(b.isMarker){return true}return false}function getPdMarkerCount(b){if(b.pdMarkers){return b.pdMarkers.length}return 0}GMap2.prototype.getMarkerById=function(c){var b=getPdMarkerCount(this);for(var a=0;a<b;a++){if(isPdMarker(this.pdMarkers[a])){if(this.pdMarkers[a].internalId==c){this.cursor=a;return this.pdMarkers[a]}}}return null};GMap2.prototype.getFirstMarker=function(){var b=getPdMarkerCount(this);for(var a=0;a<b;a++){if(isPdMarker(this.pdMarkers[a])){this.cursor=a;return this.pdMarkers[a]}}return null};GMap2.prototype.getNextMarker=function(){var b=getPdMarkerCount(this);if(b>0){if(this.cursor>=0){for(var a=this.cursor+1;a<b;a++){if(isPdMarker(this.pdMarkers[a])){this.cursor=a;return this.pdMarkers[a]}}}}return null};GMap2.prototype.getNthMarker=function(c){var b=getPdMarkerCount(this);for(var a=0;a<b;a++){if(isPdMarker(this.pdMarkers[a])){c--;if(c==0){this.cursor=a;return this.pdMarkers[a]}}}return null};GMap2.prototype.getMarkerCount=function(){return getPdMarkerCount(this)};GMap2.prototype.boxMap=function(a,c){var b=this.spec;var h=b.getLowestZoomLevel(a,c,this.viewSize);this.centerAndZoom(new GPoint(a.x,a.y),h)};GMap2.prototype.zoomToMarkers=function(n,m){var o=0;var i,q,p,k,h,j,c,r;var l=this.getFirstMarker();while(l!=null){if(!l.isHidden()){i=l.getPoint();q=i.lat();p=i.lng();if(o==0){k=q;h=q;j=p;c=p}else{if(q<k){k=q}if(q>h){h=q}if(p<j){j=p}if(p>c){c=p}}o++}l=this.getNextMarker()}if(o==1){this.setCenter(new GLatLng(q,p),this.getZoom())}else{if(o>1){var b=new GLatLng((k+h)/2,(j+c)/2);r=new GSize(Math.abs(h-k),Math.abs(c-j));slopWid=0;slopHgt=0;if(typeof n!="undefined"){slopWid=r.width*n/200;slopHgt=r.height*n/200;r.width*=1+n/100;r.height*=1+n/100}deltaHgt=0;if(typeof m!="undefined"){deltaHgt=r.height*m/100;b=new GLatLng(b.lat()+deltaHgt,b.lng())}var a=new GLatLngBounds(new GLatLng(k-slopHgt,j-slopWid),new GLatLng(h+slopHgt,c+slopWid));var s=this.getBoundsZoomLevel(a);this.setCenter(b,s)}}};function shorten(a){var b=1000000;return Math.round(a*b)/b}function poweredByClick(i){var a=i.getCenter();var c=i.getBounds().toSpan();var h=i.getZoom();var b="http://maps.google.com/maps?ll="+a.lat()+","+a.lng()+"&spn="+shorten(c.lat())+","+shorten(c.lng())+"&z="+h+"&key="+APIkey;document.location=b}function poweredByMouseover(j){var c=j.getFirstMarker();var i=j.getBounds();var h=0;var b=0;while(c!=null){if(!c.isHidden()){var a=c.getPoint();if(i.contains(a)){h++}b=b+1}c=j.getNextMarker()}var k=j.poweredByTitle+" ("+h+" markers of "+b+" visible)";j.poweredByObj.setAttribute("title",k);j.poweredByObj.setAttribute("alt",k)}function getPoweredBy(i){try{var c="GMap "+getGoogleMapsVersion()+" & PdMarker "+getPdMarkerShortVersion();i.poweredByTitle=c;var a=document.createElement("img");a.setAttribute("src","http://www.google.com/intl/en_ALL/mapfiles/transparent.gif");a.setAttribute("width",62);a.setAttribute("alt",c);a.setAttribute("title",c);a.setAttribute("height",30);a.style.display="block";a.style.position="absolute";a.style.left="2px";a.style.bottom="0px";a.style.width="62px";a.style.height="30px";a.style.cursor="pointer";a.style.zIndex=600001;a.onclick=function(){poweredByClick(i)};a.onmouseover=function(){poweredByMouseover(i)};i.getPane(G_MAP_FLOAT_PANE).parentNode.parentNode.appendChild(a);return a}catch(h){}return true}function setPoweredBy(a){if(!a.poweredByObj){getGoogleMapsVersion();a.poweredByObj=getPoweredBy(a)}}function PdMarkerNamespace(){var userAgent=navigator.userAgent.toLowerCase();var n4=(document.layers);var n6=(document.getElementById&&!document.all);var ie=(document.all);var o6=(userAgent.indexOf("opera")!=-1);var safari=(userAgent.indexOf("safari")!=-1);var msie=(userAgent.indexOf("msie")!=-1)&&(userAgent.indexOf("opera")==-1);var msiePre7=false;if(msie){msiePre7=userAgent.substr(userAgent.indexOf("msie")+5,2)<7}var nextMarkerId=10;var permitLeft=true;var icon=new GIcon();icon.shadow="http://www.google.com/mapfiles/shadow50.png";icon.iconSize=new GSize(20,34);icon.shadowSize=new GSize(37,34);icon.iconAnchor=new GPoint(9,34);icon.infoWindowAnchor=new GPoint(9,2);icon.infoShadowAnchor=new GPoint(18,25);icon.image="http://www.google.com/mapfiles/marker.png";function PdMarker(a,b,tooltip){this.inheritFrom=GMarker;if(typeof b=="undefined"){b=icon}this.inheritFrom(a,b);if(typeof tooltip!="undefined"){this.pendingTitle=tooltip}else{this.pendingTitle=""}if(typeof b!="undefined"){this.oldImagePath=b.image}else{this.oldImagePath="http://www.google.com/mapfiles/marker.png"}this.internalId=nextMarkerId;nextMarkerId+=1;this.zIndexSaved=false;this.pendingCursor="";this.percentOpacity=70;this.mouseOutEnabled=true;this.setImageOn=true;this.hidingEnabled=true;this.showDetailOnClick=true;this.detailOpen=false;this.userData="";this.displayed=true}PdMarker.prototype=new GMarker(new GLatLng(1,1));function addMarkerToMapList(map,marker){try{if(map.pdMarkers.length){}}catch(e){map.pdMarkers=new Array()}map.pdMarkers.push(marker)}function removeMarkerFromMapList(map,marker){var id=marker.internalId;for(var i=0;i<map.pdMarkers.length;i++){if(map.pdMarkers[i].internalId==id){map.pdMarkers.splice(i,1);return}}}PdMarker.prototype.initialize=function(a){if(typeof a=="GMap"){GLog.write("PdMarker requires GMap2");return}addMarkerToMapList(a,this);try{GMarker.prototype.initialize.call(this,a);this.isMarker=true;if(this.pendingTitle.length>0){this.setTitle(this.pendingTitle)}if(this.pendingCursor.length>0){this.setCursor(this.pendingCursor)}this.map=a;setPoweredBy(a);GEvent.bindDom(this,"mouseover",this,this.onMouseOver);GEvent.bindDom(this,"mouseout",this,this.onMouseOut);GEvent.bindDom(this,"click",this,this.onClick);GEvent.bind(this.map,"zoomend",this,this.reZoom)}catch(e){alert("PdMarker initialize error: "+e)}};PdMarker.prototype.allowLeftTooltips=function(a){permitLeft=a};PdMarker.prototype.reZoom=function(){var didSet=false;if(this.tooltipObject){if(this.tooltipObject.style.display=="block"){setTTPosition(this);didSet=true}}if(this.detailObject){if(!didSet){setTTPosition(this)}setDetailPosition(this)}};PdMarker.prototype.setId=function(id){this.internalId=id};PdMarker.prototype.getId=function(){return this.internalId};PdMarker.prototype.setName=function(a){this.name=a};PdMarker.prototype.getName=function(){if(this.name){return this.name}else{return null}};PdMarker.prototype.setUserData=function(a){this.userData=a};PdMarker.prototype.getUserData=function(){if(this.userData){return this.userData}else{return""}};PdMarker.prototype.setUserData2=function(a){this.userData2=a};PdMarker.prototype.getUserData2=function(){if(this.userData2){return this.userData2}else{return""}};PdMarker.prototype.setImageEnabled=function(a){this.setImageOn=a};var PdMIN="";var PdMIA="";function PdCompPdMIN(marker){if(PdMIN.length==0){for(var i in marker){if(eval("typeof marker."+i)=="object"){try{if(eval("typeof marker."+i+"[0].src")!="undefined"){PdMIA="this."+i;PdMIN=PdMIA+"[0]"}}catch(e){}}}}}PdMarker.prototype.setImageOld=function(a){var msFilter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+a+'")';if(this.mouseOutEnabled&&this.setImageOn){PdCompPdMIN(this);try{if(this.oldImagePath.length==0){eval("this.oldImagePath = "+PdMIN+".src")}if(msie&&msiePre7){eval(PdMIN+".style.filter = msFilter")}else{eval(PdMIN+".src = a")}}catch(e){}}};PdMarker.prototype.setImage=function(a){if(this.mouseOutEnabled&&this.setImageOn){GMarker.prototype.setImage.call(this,a)}};PdMarker.prototype.restoreImage=function(){if(this.mouseOutEnabled&&this.setImageOn&&this.oldImagePath.length>0){this.setImage(this.oldImagePath)}};PdMarker.prototype.display=function(a){if(a){this.show()}else{this.hide()}};PdMarker.prototype.blink=function(a,b){if(a){this.blinkOn=true;this.blinkSpeed=b;if(!this.blinking){this.blinking=a;PdMarkerAddToExtList(this);PdMarkerBlinkOnOff(this.getId())}}else{this.blinking=a;this.display(true);PdMarkerRemoveFromExtList(this)}};PdMarker.prototype.setIcon=function(a){this.remove();this.icon=a;this.initialize(this.map);this.redraw(true)};PdMarker.prototype.setMarkerZIndex=function(a){PdCompPdMIN(this);if(!this.zIndexSaved){this.zIndexSaved=true;this.oldZIndex=eval(PdMIN+".style.zIndex")}eval(PdMIN+".style.zIndex = a");this.redraw(true)};PdMarker.prototype.topMarkerZIndex=function(){this.setMarkerZIndex(600000)};PdMarker.prototype.restoreMarkerZIndex=function(){PdCompPdMIN(this);if(this.zIndexSaved){this.zIndexSaved=false;eval(PdMIN+".style.zIndex = this.oldZIndex");this.redraw(true)}};PdMarker.prototype.onInfoWindowOpen=function(){this.hideTooltip();GMarker.prototype.onInfoWindowOpen.call(this)};PdMarker.prototype.setHoverImage=function(a){this.hoverImage=a};var inMouseOver=false;PdMarker.prototype.onMouseOver=function(){if(inMouseOver){return}inMouseOver=true;if(this.hoverImage){this.setImage(this.hoverImage)}if(!this.detailOpen){this.showTooltip()}inMouseOver=false};PdMarker.prototype.onMouseOut=function(){if(this.hoverImage){this.restoreImage()}if(!this.detailOpen){if(this.mouseOutEnabled){this.hideTooltip()}}};PdMarker.prototype.setMouseOutEnabled=function(a){this.mouseOutEnabled=a};PdMarker.prototype.getMouseOutEnabled=function(){return this.mouseOutEnabled};PdMarker.prototype.setTooltipHiding=function(a){this.hidingEnabled=a};PdMarker.prototype.getTooltipHiding=function(){return this.hidingEnabled};PdMarker.prototype.setTitle=function(a){this.tooltipText="";PdCompPdMIN(this);try{eval(PdMIN+".title = a")}catch(e){this.pendingTitle=a}};PdMarker.prototype.setCursor=function(a){PdCompPdMIN(this);try{eval(PdMIN+".style.cursor = a")}catch(e){this.pendingCursor=a}};PdMarker.prototype.setTooltipClass=function(a){this.pendingClassName=a;if(this.tooltipObject){var showing=(this.tooltipObject.style.display!="none");this.deleteObjects();if(this.tooltipRaw){this.setTooltipNoResize(this.tooltipRaw)}if(showing){this.showTooltip()}}else{if(this.tooltipRaw){this.setTooltipNoResize(this.tooltipRaw)}}};PdMarker.prototype.resetTooltipClass=function(){this.setTooltipClass("markerTooltip")};PdMarker.prototype.getTooltip=function(){try{return this.tooltipRaw}catch(e){return""}};PdMarker.prototype.setTooltipNoResize=function(a){this.setTitle("");var ttClass="markerTooltip";if(this.pendingClassName){ttClass=this.pendingClassName}this.tooltipRaw=a;this.tooltipText="<div class='"+ttClass+"'>"+a+"</div>";if(this.tooltipObject){this.tooltipObject.innerHTML=this.tooltipText}};PdMarker.prototype.setTooltip=function(a){this.setTooltipNoResize(a);this.deleteObjects()};PdMarker.prototype.showTooltip=function(){if(this.tooltipText){if(!this.tooltipObject){initTooltip(this)}setTTPosition(this);this.tooltipObject.style.display="block"}};PdMarker.prototype.hideTooltip=function(){if(this.tooltipObject){if(this.hidingEnabled){this.tooltipObject.style.display="none"}}};PdMarker.prototype.onClick=function(a){if(this.showDetailOnClick&&this.detailWinHTML){this.showDetailWin()}};PdMarker.prototype.setShowDetailOnClick=function(a){this.showDetailOnClick=a};PdMarker.prototype.setDetailWinHTML=function(a){this.detailWinHTML=a};PdMarker.prototype.setDetailWinClass=function(a){this.pendingDetailClassName=a};PdMarker.prototype.resetDetailWinClass=function(){this.setDetailWinClass("markerDetail")};PdMarker.prototype.showDetailWin=function(){if(this.detailOpen){this.closeDetailWin();return}this.hideTooltip();this.setMouseOutEnabled(false);var winClass="markerDetail";if(this.pendingWinClassName){winClass=this.pendingWinClassName}var html="<table><tr><td>"+this.detailWinHTML+"</td><td valign='top'><a class='markerDetailClose' href='javascript:PdMarkerClose("+this.internalId+")'><img src='http://www.google.com/mapfiles/close.gif' width='14' height='13'></a></td></tr></table>";html="<div class='"+winClass+"'>"+html+"</div>";this.detailOpen=true;if(!this.tooltipText){this.ttWidth=150;this.ttHeight=30;setTTPosition(this)}initDetailWin(this,this.ttTop,this.ttLeft,html);PdMarkerAddToExtList(this)};PdMarker.prototype.closeDetailWin=function(){this.detailOpen=false;if(this.detailObject){this.setMouseOutEnabled(true);this.onMouseOut();this.map.getPane(G_MAP_FLOAT_PANE).removeChild(this.detailObject);this.detailObject=null}};PdMarker.prototype.deleteObjects=function(){if(this.tooltipObject){this.map.getPane(G_MAP_FLOAT_PANE).removeChild(this.tooltipObject);this.tooltipObject=null}if(this.detailObject){this.map.getPane(G_MAP_FLOAT_PANE).removeChild(this.detailObject);this.detailObject=null}};PdMarker.prototype.remove=function(a){removeMarkerFromMapList(this.map,this);PdMarkerRemoveFromExtList(this.getId());GMarker.prototype.remove.call(this);this.deleteObjects()};PdMarker.prototype.setOpacity=function(b){if(b<0){b=0}if(b>=100){b=100}var c=b/100;this.percentOpacity=b;var d=document.getElementById(this.objId);if(d){if(typeof(d.style.filter)=="string"){d.style.filter="alpha(opacity:"+b+")"}if(typeof(d.style.KHTMLOpacity)=="string"){d.style.KHTMLOpacity=c}if(typeof(d.style.MozOpacity)=="string"){d.style.MozOpacity=c}if(typeof(d.style.opacity)=="string"){d.style.opacity=c}}};PdMarker.prototype.setOpacityNew=function(b){setObjOpacity(this.objId);this.percentOpacity=b};function setObjOpacity(objId,b){if(b<0){b=0}if(b>=100){b=100}var c=b/100;var d=document.getElementById(objId);if(d){if(typeof(d.style.filter)=="string"){d.style.filter="alpha(opacity:"+b+")"}if(typeof(d.style.KHTMLOpacity)=="string"){d.style.KHTMLOpacity=c}if(typeof(d.style.MozOpacity)=="string"){d.style.MozOpacity=c}if(typeof(d.style.opacity)=="string"){d.style.opacity=c}}}function idToElemId(id){return"ttobj"+id}function initTooltip(theObj){theObj.objId=idToElemId(theObj.internalId);theObj.anchorLatLng=theObj.point;var b=document.createElement("span");theObj.tooltipObject=b;b.setAttribute("id",theObj.objId);b.innerHTML=theObj.tooltipText;var c=document.body;var d=document.getElementById("pdmarkerwork");if(d){c=d}c.appendChild(b);b.style.position="absolute";b.style.bottom="5px";b.style.left="5px";b.style.zIndex=1;if(theObj.percentOpacity){theObj.setOpacity(theObj.percentOpacity)}var tempObj=document.getElementById(theObj.objId);theObj.ttWidth=tempObj.offsetWidth;theObj.ttHeight=tempObj.offsetHeight;c.removeChild(b);b.style.zIndex=600000;b.style.bottom="";b.style.left="";theObj.map.getPane(G_MAP_FLOAT_PANE).appendChild(b)}function initDetailWin(theObj,top,left,html){theObj.detailId="detail"+theObj.internalId;var b=document.createElement("span");theObj.detailObject=b;b.setAttribute("id",theObj.detailId);b.innerHTML=html;b.style.display="block";b.style.position="absolute";b.style.top=top+"px";if(theObj.rightSide){b.style.left=left+"px"}else{b.style.right=-left+"px"}b.style.zIndex=600001;theObj.map.getPane(G_MAP_FLOAT_PANE).appendChild(b)}function setTTPosition(theObj){var gap=3;var map=theObj.map;var pt=theObj.getPoint();var ttPos=latLongToPixel(map,pt,map.getZoom());var theIcon=theObj.getIcon();ttPos.y-=Math.floor(theIcon.iconAnchor.y/2);var rightSide=true;var topSide=true;var bounds=map.getBounds();var boundsSpan=bounds.toSpan();var longSpan=boundsSpan.lng();var latSpan=boundsSpan.lat();var mapWidth=map.getSize().width;var mapHeight=map.getSize().height;var tooltipWidthInDeg=(theObj.ttWidth+theIcon.iconSize.width+6)/mapWidth*longSpan;if(pt.lng()+tooltipWidthInDeg>bounds.getNorthEast().lng()&&permitLeft){rightSide=false}delta=(theIcon.iconSize.width-theIcon.iconAnchor.x)+gap;if(rightSide){ttPos.x+=delta}else{ttPos.x-=delta}var tooltipHeightInDeg=(theObj.ttHeight+theIcon.iconSize.height+6)/mapHeight*latSpan;if(pt.lat()+tooltipHeightInDeg<bounds.getNorthEast().lat()){topSide=false}delta=(theIcon.iconSize.height-theIcon.iconAnchor.y)+gap;if(topSide){ttPos.y+=delta}else{ttPos.y-=delta}theObj.rightSide=rightSide;theObj.ttLeft=ttPos.x;theObj.ttTop=ttPos.y;if(theObj.tooltipObject){if(rightSide){theObj.tooltipObject.style.left=ttPos.x+"px";theObj.tooltipObject.style.right=null}else{theObj.tooltipObject.style.left=null;theObj.tooltipObject.style.right=-ttPos.x+"px"}if(topSide){theObj.tooltipObject.style.top=ttPos.y+"px";theObj.tooltipObject.style.bottom=null}else{theObj.tooltipObject.style.top=null;theObj.tooltipObject.style.bottom=-ttPos.y+"px"}}}function makeInterface(a){var b=a||window;b.PdMarker=PdMarker}makeInterface()}PdMarkerNamespace();