function MarkerClusterer(b,h,a){var m=[];var o=b;var f=null;var k=this;var g=60;var t=[53,56,66,78,90];var d=[];var c=[];var l=null;var j=0;for(j=1;j<=5;++j){d.push({url:"http://gmaps-utility-library.googlecode.com/svn/trunk/markerclusterer/images/m"+j+".png",height:t[j-1],width:t[j-1]})}if(typeof a==="object"&&a!==null){if(typeof a.gridSize==="number"&&a.gridSize>0){g=a.gridSize}if(typeof a.maxZoom==="number"){f=a.maxZoom}if(typeof a.styles==="object"&&a.styles!==null&&a.styles.length!==0){d=a.styles}}function p(){if(c.length===0){return}var i=[];for(j=0;j<c.length;++j){k.addMarker(c[j],true,null,null,true)}c=i}this.getStyles_=function(){return d};this.clearMarkers=function(){for(var u=0;u<m.length;++u){if(typeof m[u]!=="undefined"&&m[u]!==null){m[u].clearMarkers()}}m=[];c=[];GEvent.removeListener(l)};function r(i){return o.getBounds().containsLatLng(i.getLatLng())}function q(y){var u=y.length;var x=[];for(var v=u-1;v>=0;--v){k.addMarker(y[v].marker,true,y[v].isAdded,x,true)}p()}this.addMarker=function(A,x,F,y,G){if(G!==true){if(!r(A)){c.push(A);return}}var B=F;var D=y;var C=o.fromLatLngToDivPixel(A.getLatLng());if(typeof B!=="boolean"){B=false}if(typeof D!=="object"||D===null){D=m}var v=D.length;var E=null;for(var z=v-1;z>=0;z--){E=D[z];var u=E.getCenter();if(u===null){continue}u=o.fromLatLngToDivPixel(u);if(C.x>=u.x-g&&C.x<=u.x+g&&C.y>=u.y-g&&C.y<=u.y+g){E.addMarker({isAdded:B,marker:A});if(!x){E.redraw_()}return}}E=new Cluster(this,b);E.addMarker({isAdded:B,marker:A});if(!x){E.redraw_()}D.push(E);if(D!==m){m.push(E)}};this.removeMarker=function(u){for(var v=0;v<m.length;++v){if(m[v].remove(u)){m[v].redraw_();return}}};this.redraw_=function(){var v=this.getClustersInViewport_();for(var u=0;u<v.length;++u){v[u].redraw_(true)}};this.getClustersInViewport_=function(){var x=[];var v=o.getBounds();for(var u=0;u<m.length;u++){if(m[u].isInBounds(v)){x.push(m[u])}}return x};this.getMaxZoom_=function(){return f};this.getMap_=function(){return o};this.getGridSize_=function(){return g};this.getTotalMarkers=function(){var u=0;for(var v=0;v<m.length;++v){u+=m[v].getTotalMarkers()}return u};this.getTotalClusters=function(){return m.length};this.resetViewport=function(){var B=this.getClustersInViewport_();var A=[];var z=0;for(var v=0;v<B.length;++v){var C=B[v];var D=C.getCurrentZoom();if(D===null){continue}var E=o.getZoom();if(E!==D){var x=C.getMarkers();for(var u=0;u<x.length;++u){var y={isAdded:false,marker:x[u].marker};A.push(y)}C.clearMarkers();z++;for(u=0;u<m.length;++u){if(C===m[u]){m.splice(u,1)}}}}q(A);this.redraw_()};this.addMarkers=function(v){for(var u=0;u<v.length;++u){this.addMarker(v[u],true)}this.redraw_()};if(typeof h==="object"&&h!==null){this.addMarkers(h)}l=GEvent.addListener(o,"moveend",function(){k.resetViewport()})}function Cluster(c){var b=null;var h=[];var f=c;var g=c.getMap_();var d=null;var a=g.getZoom();this.getMarkers=function(){return h};this.isInBounds=function(m){if(b===null){return false}if(!m){m=g.getBounds()}var i=g.fromLatLngToDivPixel(m.getSouthWest());var p=g.fromLatLngToDivPixel(m.getNorthEast());var o=g.fromLatLngToDivPixel(b);var k=true;var j=c.getGridSize_();if(a!==g.getZoom()){var l=g.getZoom()-a;j=Math.pow(2,l)*j}if(p.x!==i.x&&(o.x+j<i.x||o.x-j>p.x)){k=false}if(k&&(o.y+j<p.y||o.y-j>i.y)){k=false}return k};this.getCenter=function(){return b};this.addMarker=function(i){if(b===null){b=i.marker.getLatLng()}h.push(i)};this.removeMarker=function(j){for(var k=0;k<h.length;++k){if(j===h[k].marker){if(h[k].isAdded){g.removeOverlay(h[k].marker)}h.splice(k,1);return true}}return false};this.getCurrentZoom=function(){return a};this.redraw_=function(l){if(!l&&!this.isInBounds()){return}a=g.getZoom();var j=0;var k=c.getMaxZoom_();if(k===null){k=g.getCurrentMapType().getMaximumResolution()}if(a>=k||this.getTotalMarkers()===1){for(j=0;j<h.length;++j){if(h[j].isAdded){if(h[j].marker.isHidden()){h[j].marker.show()}}else{g.addOverlay(h[j].marker);h[j].isAdded=true}}if(d!==null){d.hide()}}else{for(j=0;j<h.length;++j){if(h[j].isAdded&&(!h[j].marker.isHidden())){h[j].marker.hide()}}if(d===null){d=new ClusterMarker_(b,this.getTotalMarkers(),f.getStyles_(),f.getGridSize_());g.addOverlay(d)}else{if(d.isHidden()){d.show()}d.redraw(true)}}};this.clearMarkers=function(){if(d!==null){g.removeOverlay(d)}for(var j=0;j<h.length;++j){if(h[j].isAdded){g.removeOverlay(h[j].marker)}}h=[]};this.getTotalMarkers=function(){return h.length}}function ClusterMarker_(g,d,c,f){var a=0;var b=d;while(b!==0){b=parseInt(b/10,10);a++}if(c.length<a){a=c.length}this.url_=c[a-1].url;this.height_=c[a-1].height;this.width_=c[a-1].width;this.textColor_=c[a-1].opt_textColor;this.anchor_=c[a-1].opt_anchor;this.latlng_=g;this.index_=a;this.styles_=c;this.text_=d;this.padding_=f}ClusterMarker_.prototype=new GOverlay();ClusterMarker_.prototype.initialize=function(d){this.map_=d;var h=document.createElement("div");var g=this.latlng_;var f=d.fromLatLngToDivPixel(g);f.x-=parseInt(this.width_/2,10);f.y-=parseInt(this.height_/2,10);var c="";if(document.all){c='filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src="'+this.url_+'");'}else{c="background:url("+this.url_+");"}if(typeof this.anchor_==="object"){if(typeof this.anchor_[0]==="number"&&this.anchor_[0]>0&&this.anchor_[0]<this.height_){c+="height:"+(this.height_-this.anchor_[0])+"px;padding-top:"+this.anchor_[0]+"px;"}else{c+="height:"+this.height_+"px;line-height:"+this.height_+"px;"}if(typeof this.anchor_[1]==="number"&&this.anchor_[1]>0&&this.anchor_[1]<this.width_){c+="width:"+(this.width_-this.anchor_[1])+"px;padding-left:"+this.anchor_[1]+"px;"}else{c+="width:"+this.width_+"px;text-align:center;"}}else{c+="height:"+this.height_+"px;line-height:"+this.height_+"px;";c+="width:"+this.width_+"px;text-align:center;"}var a=this.textColor_?this.textColor_:"black";h.style.cssText=c+"cursor:pointer;top:"+f.y+"px;left:"+f.x+"px;color:"+a+";position:absolute;font-size:11px;font-family:Arial,sans-serif;font-weight:bold";h.innerHTML=this.text_;d.getPane(G_MAP_MAP_PANE).appendChild(h);var b=this.padding_;GEvent.addDomListener(h,"click",function(){var l=d.fromLatLngToDivPixel(g);var i=new GPoint(l.x-b,l.y+b);i=d.fromDivPixelToLatLng(i);var k=new GPoint(l.x+b,l.y-b);k=d.fromDivPixelToLatLng(k);var j=d.getBoundsZoomLevel(new GLatLngBounds(i,k),d.getSize());d.setCenter(g,j)});this.div_=h};ClusterMarker_.prototype.remove=function(){this.div_.parentNode.removeChild(this.div_)};ClusterMarker_.prototype.copy=function(){return new ClusterMarker_(this.latlng_,this.index_,this.text_,this.styles_,this.padding_)};ClusterMarker_.prototype.redraw=function(a){if(!a){return}var b=this.map_.fromLatLngToDivPixel(this.latlng_);b.x-=parseInt(this.width_/2,10);b.y-=parseInt(this.height_/2,10);this.div_.style.top=b.y+"px";this.div_.style.left=b.x+"px"};ClusterMarker_.prototype.hide=function(){this.div_.style.display="none"};ClusterMarker_.prototype.show=function(){this.div_.style.display=""};ClusterMarker_.prototype.isHidden=function(){return this.div_.style.display==="none"};var map=null;var markerClusterer=null;var arrMarkers=[];var objMarkers=new Object;var allowedBounds=null;var llbRefreshBounds=null;var intRefreshZoom=null;var boolCanRefresh=true;var intTabIndex=0;var arrClustererStyles=[{url:"http://cdn.ridefinds.com/for-sale-cluster-32.png",height:32,width:32,opt_anchor:[16,0],opt_textColor:"#288C07"},{url:"http://cdn.ridefinds.com/for-sale-cluster-40.png",height:40,width:40,opt_anchor:[20,0],opt_textColor:"#288C07"},{url:"http://cdn.ridefinds.com/for-sale-cluster-48.png",height:48,width:48,opt_anchor:[24,0],opt_textColor:"#288C07"}];var apiAreaOverlay=null;$(document).ready(function(){setMapHeight(false);map=new GMap2(document.getElementById("map"));map.setCenter(new GLatLng(intLat,intLong),intZoom);if(boolShowMapAds){adsManager=new GAdsManager(map,publisher_id,adsManagerOptions);adsManager.enable()}map.setUIToDefault();new GKeyboardHandler(map);if(boolDynamicMap){var d=new GLatLngBounds();for(var c=0;c<arrListings.length;c++){var a=new GLatLng(arrListings[c].lt,arrListings[c].lg);var b=new createMarker(a,arrListings[c]);map.addOverlay(b);d.extend(a);objMarkers[arrListings[c].id]=b}map.setZoom(map.getBoundsZoomLevel(d));map.setCenter(d.getCenter())}else{for(var c=0;c<arrListings.length;c++){var a=new GLatLng(arrListings[c].lt,arrListings[c].lg);var b=new createMarker(a,arrListings[c]);arrMarkers.push(b);objMarkers[arrListings[c].id]=b}markerClusterer=new MarkerClusterer(map,arrMarkers,{maxZoom:11,gridSize:40,styles:arrClustererStyles})}changeView(strCurrentView);if(!boolMyFinds){calculateRefreshBounds();GEvent.addListener(map,"moveend",function(){if(boolCanRefresh){llbNow=map.getBounds();if(!llbRefreshBounds.containsBounds(llbNow)||intRefreshZoom!=map.getZoom()){calculateRefreshBounds();refreshList(llbNow)}}})}$("#sort-links a").live("click",function(g){g.preventDefault();var f=$(this).attr("id");f=f.substr(0,f.length-5);changeView(f)});$(".listing h3, .listing h5, .listing .notice, .listing img").live("click",function(h){h.preventDefault();var f=$(this).closest(".listing").attr("class");f=f.substring(8);for(var g=0;g<arrListings.length;g++){if(arrListings[g].id==f){map.openInfoWindowHtml(objMarkers[f].getLatLng(),'<div id="infowindow"></div>',{maxContent:'<div id="maxinfowindow"></div>',maxTitle:arrListings[g].dn});GEvent.addListener(map,"infowindowopen",function(){createInfoWindow(arrListings[g],objMarkers[f]);GEvent.clearListeners(map,"infowindowopen");if(false){map.getInfoWindow().maximize()}});maxInfoWindow(f);break}}});$("#area-dialog-trigger, #specific-dialog-trigger, #related-dialog-trigger").overlay(function(){var f=this.getContent().find("div.overlay-content");if(f.is(":empty")){f.html('<p class="big-text">loading...</p>');f.load(this.getTrigger().attr("href"))}});apiAreaOverlay=$("#area-dialog-trigger").overlay()});$(window).resize(function(){setMapHeight(true)});$(window).unload(GUnload);function setMapHeight(b){if(b){savedPos=map.getCenter()}var a=($(window).height()-$("#hd").height())-$("#ft").height();$("#map").height(a);$("#map-sidebar").height(a-$("#map-links").height()-6);if(b){map.checkResize();map.panTo(savedPos)}}function restrictBounds(){if(allowedBounds.contains(map.getCenter())){return}var g=map.getCenter();var h=g.lng();var f=g.lat();var b=allowedBounds.getNorthEast().lng();var a=allowedBounds.getNorthEast().lat();var d=allowedBounds.getSouthWest().lng();var c=allowedBounds.getSouthWest().lat();if(h<d){h=d}if(h>b){h=b}if(f<c){f=c}if(f>a){f=a}map.setCenter(new GLatLng(f,h))}function calculateRefreshBounds(){llbCurrent=map.getBounds();llSW=llbCurrent.getSouthWest();llNE=llbCurrent.getNorthEast();intYRange=(Math.max(llSW.lat(),llNE.lat())-Math.min(llSW.lat(),llNE.lat()))/3;intXRange=(Math.max(llSW.lng(),llNE.lng())-Math.min(llSW.lng(),llNE.lng()))/3;llbRefreshBounds=new GLatLngBounds(new GLatLng(llSW.lat()-intYRange,llSW.lng()-intXRange),new GLatLng(llNE.lat()+intYRange,llNE.lng()+intXRange));intRefreshZoom=map.getZoom()}function createMarker(a,c){var d=new GIcon();d.image="http://cdn.ridefinds.com/for-sale-marker.png";d.shadow="http://cdn.ridefinds.com/for-sale-shadow.png";d.iconSize=new GSize(32,32);d.shadowSize=new GSize(49,32);d.iconAnchor=new GPoint(16,16);d.infoWindowAnchor=new GPoint(16,16);markerOptions={icon:d};var b=new GMarker(a,markerOptions);GEvent.addListener(b,"mouseover",function(){b.setImage("http://cdn.ridefinds.com/for-sale-highlight.png")});GEvent.addListener(b,"mouseout",function(){b.setImage("http://cdn.ridefinds.com/for-sale-marker.png")});GEvent.addListener(b,"click",function(){boolCanRefresh=false;b.openInfoWindowHtml('<div id="infowindow"></div>',{maxContent:'<div id="maxinfowindow">LOADING...</div>',maxTitle:c.dn});maxInfoWindow(c.id)});GEvent.addListener(b,"infowindowopen",function(){createInfoWindow(c,b)});GEvent.addListener(b,"infowindowclose",function(){boolCanRefresh=true});return b}function createInfoWindow(d,b){var c=map.getInfoWindow();function a(){$("#infowindow h4 a").addClass("icon-16").addClass("my-find");$("#infowindow #finds-link").text("my finds").removeClass("add-find").addClass("my-finds").attr("href","/my/finds")}var f='<h4><a href="">'+d.pr+" - "+d.dn+"</a></h4>";f+='<div class="yui-gc"><div class="yui-u first">';if(d.tb!=null){f+='<div class="thumbnail"><a href=""><img src="'+d.tb+'" width="80px" height="60px"></a></div>'}f+="<p>Found "+d.ld+" ago in "+d.lo+" ("+d.st+') on <a class="standard-link nohandle" href="/for-sale/'+d.id.toLowerCase()+'" target="_blank">'+d.sn+'</a></p><a id="detail-button" href="">view details</a></div>';f+='<div class="yui-u">                    <ul>                        <li><a id="finds-link" class="icon-16 add-find standard-link nohandle" href="">save this</a></li>                        <li><a class="icon-16 compare standard-link" href="">compare price</a></li>                        <li><a class="icon-16 similar standard-link" href="">find similar</a></li>                    </ul>                </div>            </div>';$("#infowindow").html(f);if(boolMyFinds){$("#infowindow #finds-link").text("remove find").removeClass("add-find").addClass("remove-find").attr("href","remove")}else{var g=$.cookie("LSTGOODFINDS");if(g!=null&&g.indexOf(d.id.toLowerCase())>-1){a()}}$("#infowindow a:not(.nohandle)").click(function(h){h.preventDefault();if($(this).hasClass("compare")){intTabIndex=1}else{if($(this).hasClass("similar")){intTabIndex=2}}c.maximize()});$("#finds-link").click(function(h){if($(this).attr("href")==""){h.preventDefault();$.get("/finds?action=add&id="+d.id,function(i){if(i!="error"){a()}})}if($(this).attr("href")=="remove"){h.preventDefault();$.get("/finds?action=remove&id="+d.id,function(i){if(i!="error"){$("."+d.id).hide();map.closeInfoWindow();map.removeOverlay(b)}})}})}function maxInfoWindow(b){var a=map.getInfoWindow();GEvent.clearInstanceListeners(a);GEvent.addListener(a,"maximizeend",function(){$.get("/data/details?listing="+b,function(c){if(c!="error"){$("#maxinfowindow").html(c);$("#maxinfowindow .tabs").tabs("#maxinfowindow .panes > div",{initialIndex:intTabIndex,onBeforeClick:function(d){var f=this.getPanes().eq(d);if(f.is(":empty")){f.load(this.getTabs().eq(d).attr("rel"))}}})}})});GEvent.addListener(a,"maximizeclick",function(){savedPos=map.getCenter();boolCanRefresh=false;GEvent.addListener(a,"closeclick",function(){map.panTo(savedPos);intTabIndex=0;boolCanRefresh=true});GEvent.addListener(a,"restoreend",function(){intTabIndex=0})})}function refreshList(a){strListsURL="/data/lists?&view="+strCurrentView;strListsURL+="&t="+strPageType+"&v="+strPageValue+"&y="+intYearFilter+"&sampled="+boolIsSampled;n=a.getNorthEast().lat().toFixed(4);s=a.getSouthWest().lat().toFixed(4);e=a.getNorthEast().lng().toFixed(4);w=a.getSouthWest().lng().toFixed(4);strListsURL+="&n="+n+"&s="+s+"&e="+e+"&w="+w;if(boolEmptyArea){boolEmptyArea=false;strListsURL+="&empty=true"}$.get(strListsURL,function(b){if(b!="error"){$("#map-sidebar").html(b);changeView(strCurrentView)}})}function changeView(a){$("#map-sidebar .map-listings").hide();$("#"+a).show();$("#map-sidebar #sort-links a").removeClass("current-sort");$("#"+a+"-link").addClass("current-sort");strCurrentView=a};