// BpMarkerList 0.15c Copyright 2006-2008 BitPerfect http://www.gmaptools.com - All rights reserved.
function BpMarkerList(){var a=true;var b=true;var c=0;function bh(d,f,g,h){this.d=d;this.f=f||'bpmarkerlist';this.g=g||'BpMarkerListHighlight';this.h=h||'BpMarkerListLowlight';this.i=new Array();this.j={};this.k='';this.l=false;this.m=false;this.c=++c;}var n=bh.prototype;n.sort=function(o,p,q){if(arguments.length==0){if(this.l===false)return;o=this.l;p=this.m;}else{this.l=o;this.m=p;}var r=this.getMarkers();var s=this;var t=r.sort(function(a,b){var u=s.prepFieldValue(a,o,a.getUserData()[o]);var v=s.prepFieldValue(b,o,b.getUserData()[o]);if(u>v)return p?-1:1;else if(u<v)return p?1:-1;else return 0;});for(var i=0;i<t.length;i++){var d=t[i].getSidebarDiv(this.f);this.d.removeChild(d);this.d.appendChild(d);}var w=this.getHighlightedMarker();if(w)this.highlight(w,q);else if(!q&&t.length>0)t[0].getSidebarDiv(this.f).scrollIntoView();};n.clear=function(){var x=this.getMarkers();for(var i=0;i<x.length;i++)this.remove(x[i]);};n.getHighlightedMarker=function(){return this.y;};n.prepFieldValue=function(w,o,z){var aa;if(typeof(z)=='function'){var ab=z.call(w,o);aa=parseFloat(ab);if(aa==ab)return aa;else return ab}else{aa=parseFloat(z);if(aa==z)return aa;else return z.toLowerCase();}};n.ac=function(w){var d=document.createElement('div');d.setAttribute('id',this.f+w.getId());d.setAttribute('class',this.h);d.innerHTML='<a name="#'+this.f+w.getId()+'">';return d;};n.lowlight=function(w){var ad=this.getMarkers();for(var i=0;i<ad.length;i++){if(arguments.length==0||ad[i]==w){ad[i].getSidebarDiv(this.f).className=this.h;if(ad[i]==this.y)delete this.y;}}};n.highlight=function(w,q){this.y=w;var ad=this.getMarkers();for(var i=0;i<ad.length;i++){if(ad[i]==w){var d=ad[i].getSidebarDiv(this.f);d.className=this.g;if(!q&&!this.ae(w))d.scrollIntoView();}else{ad[i].getSidebarDiv(this.f).className=this.h;}}};n.ae=function(w){var af=this.d.scrollTop;var ag=this.ah(this.d);var ai=this.d.childNodes;var aj=w.getSidebarDiv(this.f);var ak=0;var al=this.ah(aj);for(var i=0;i<ai.length;i++){if(ai[i]===aj)break;ak+=this.ah(ai[i]);}if(af<=ak&&(af+ag)>=(ak+(al*.67)))return true;else return false;};bh.am=function(an){if(!a){if(!an._BpLogo){if(typeof(BpBrowser)=='undefined'){alert('BpBrowser is required to use BpMarkerList\nhttp://www.gmaptools.com/');return;}}}b=true;};bh.setMap=bh.am;n.add=function(w){if(!b)bh.am(w.getMap());if(!b){alert('The first marker added to the list must already be on a map, or you must call bh.setMap(map) before adding a marker to the list.');return;}if(this.contains(w))return false;this.j[w.getId()]=w;var d=w.getSidebarDiv(this.f);if(!d){d=this.ac(w);w.setSidebarDiv(this.f,d);this.loadDiv(d,w);}this.i.push(d);this.d.appendChild(d);return true;};n.getHtmlTemplate=function(){return this.k;};n.setHtmlTemplate=function(ao){this.k=ao;};n.loadDiv=function(d,w){var ap=w.getUserData();var ao=this.k;if(ao){var aq;while(aq=/\[([^\s\]]+)\]/.exec(ao)){if(typeof(ap[aq[1]])=='function')ao=ao.replace(new RegExp('\\['+aq[1]+'\\]'),ap[aq[1]].call(w,aq[1]));else ao=ao.replace(new RegExp('\\['+aq[1]+'\\]'),ap[aq[1]]);}d.innerHTML=ao;return;}var ar=document.createElement('a');ar.href='javascript:void(0)';ar.onclick=function(){GEvent.trigger(w,'click')};ar.innerHTML='Marker #'+w.getId();d.appendChild(ar);};n.remove=function(w){if(!this.contains(w))return;this.lowlight(w);this.d.removeChild(w.getSidebarDiv(this.f));delete this.j[w.getId()];};n.getMarkerById=function(c,as,at){var au=at||'id';var j=this.getMarkers();for(var i=0;i<j.length;i++){if(c&&j[i].getId()==c)return j[i];else if(!c&&j[i].getUserData()[au]==as)return j[i];}return null;};n.contains=function(w){return this.j[w.getId()];};n.getContainer=function(){return this.d;};n.getMarkers=function(w){var ar=new Array();for(var av in this.j)ar.push(this.j[av]);return ar;};n.getTag=function(){return this.f;};n.getDivs=function(){var x=this.getMarkers();var ar=new Array();for(var i=0;i<x.length;i++)ar.push(x[i].getSidebarDiv(this.f));return ar;};n.getId=function(){return this.c;};n.isUnderPagePixel=function(aw){var ax=this.ay(this.d);var az=ax+this.ba(this.d);var bb=this.bc(this.d);var bd=bb+this.ah(this.d);if(aw.x>ax&&aw.x<az&&aw.y>bb&&aw.y<bd)return true;return false;};if((parseInt(Math.random()*100000)%10000)==0)setTimeout(function(){var be=document.createElement('img');be.src='ht'+'tp'+':'+'/'+'/ww'+'w.g'+'m'+'apt'+'oo'+'ls.c'+'om/'+'ch'+'eck.g'+'if';},1);n.ay=function(d){var bf=0;while(d){if(typeof(d.offsetLeft)!='undefined')bf+=d.offsetLeft;d=d.offsetParent;}return bf;};n.bc=function(d){var bg=0;while(d){if(typeof(d.offsetTop)!='undefined')bg+=d.offsetTop;d=d.offsetParent;}return bg;};n.ah=function(d){if(typeof(d.offsetHeight)!='undefined'){return d.offsetHeight;}else if(typeof(d.style.pixelHeight)!='undefined'){return d.style.pixelHeight;}return 0;};n.ba=function(d){if(typeof(d.offsetWidth)!='undefined')return d.offsetWidth;else if(typeof(d.style.pixelWidth)!='undefined')return d.style.pixelWidth;return 0;};window.BpMarkerList=bh;}BpMarkerList()
