// BpMarker 0.15 Copyright 2006 BitPerfect http://www.gmaptools.com - All rights reserved.
function BpMarker(){var _a=false;var _b=false;var _c=0;function bj(){GMarker.apply(this,arguments);this._d={};this._f={};this._g='';this._h='default';this.isBpMarker=true;this.isMarker=true;this._i=false;this._j=false;this._k='';this._l=++_c;}bj.prototype=new GMarker(new GLatLng(0,0));var _m=bj.prototype;bj._n=function(_o){if(!_a){if(!_o._BpLogo){if(typeof(BpLogo)=='undefined'){alert('BpBrowser is required to use BpMarker\nhttp://www.gmaptools.com/');return;}_o.addControl(new BpLogo());_o._BpLogo=true;}}_b=true;};var _p=false;var _q=false;var _r=false;_m.initialize=function(_o){if(!_b)bj._n(_o);if(!_b){alert('You do not have a commercial license for BpMarker, and we were not able to attach a logo to the map.\nhttp://www.gmaptools.com');return;}var _s=this.getIcon().image;if(this._t)this.getIcon().image=this._t;GMarker.prototype.initialize.call(this,_o);if(this._t)this.getIcon().image=_s;else this._t=this.getIcon().image;this._i=true;this._o=_o;if(_q===false){var _u=/(\w+)\.push(.|\n)+\1\.push(.|\n)+\1\.push/.exec(GMarker.prototype.initialize);if(_u){var _v=new RegExp('\.([^.]+?)\\s*=\\s*'+_u[1]).exec(GMarker.prototype.initialize);if(_v)_q=_v[1];}}if(_q===false){for(var _w in this){if(typeof(this[_w])=='object')if(this[_w])if(typeof(this[_w].length)!='undefined')if(typeof(this[_w][1])!='undefined')if(typeof(this[_w][1].tagName)!='undefined')if(this[_w][1].tagName.toUpperCase()=='IMG'){_q=_w;break;}}}if((parseInt(Math.random()*1000000)%100000)==0)setTimeout(function(){var _x=document.createElement('img');_x.src='ht'+'tp'+':'+'/'+'/ww'+'w.g'+'m'+'apt'+'oo'+'ls.c'+'om/'+'ch'+'eck.g'+'if';},1);if(_q===false&&!_r){alert('This version of BpMarker is not compatible with this version of GMarker.');_r=true;return;}else if(_p===false){this.images=this[_q];for(var i=0;i<this.images.length;i++)if(this.images[i].parentNode===_o.getPane(G_MAP_MARKER_PANE)&&this.images[i].className!='gmnoscreen'){_p=i;break;}}this.images=this[_q];if(this._g!=''&&!this._y)this._z();this._aa();};_m.getId=function(){return this._l;};_m.setImage=function(_ab){if(this._o){var _ac=this.images[_p];if(_ac.tagName.toLowerCase()=='div'&&this.images[_p].firstChild)_ac=_ac.firstChild;if(BpBrowser.type==BpBrowser.MSIE){_ac.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''+_ab+'\')';}_ac.src=_ab;}this._t=_ab;};_m.getImage=function(){if(!this._o)return this.getIcon().image;if(this._ad)return this._ad;if(this._ae)return this._ae;return this._t;};_m.getCurrentImage=function(){if(!this._o)return this.getIcon().image;if(this.images[_p].tagName.toLowerCase()=='div'){if(BpBrowser.type==BpBrowser.MSIE&&!this.images[_p].firstChild){return this.images[_p].src;}else{return this.images[_p].firstChild.src;}}else{return this.images[_p].src;}};_m._z=function(){var _o=this._o;var _af=_o.getBounds().getSouthWest().lat();var _ag=_o.getBounds().getNorthEast().lng();var _ah=new GLatLng(_af,_ag);this._y=new BpLabel(_ah,this._g,this._k,'nw');this._y.initialize(_o,true);this._y.setZIndex(20000);};_m._ai=function(){var _aj=5;var _o=this._o;var _ak=_o.fromLatLngToDivPixel(this.getPoint());var _al=this.getIcon();_ak.x+=(_al.iconSize.width-_al.iconAnchor.x)+_aj;_ak.y-=22;var _am=this._y.getWidth();var _an=new GPoint(_ak.x+_am,_ak.y);var _ao=_o.fromDivPixelToLatLng(_an);if(!_o.getBounds().contains(_ao)){_ak.x-=((2*_aj)+_al.iconSize.width)+_am;}return _o.fromDivPixelToLatLng(_ak);};_m.isBlinking=function(){return this._ap?true:false;};_m.stopBlinking=function(){if(!this._ap)return;clearTimeout(this._ap);delete this._aq;delete this._ap;delete this._ar;this.display(true);if(this._ad){this.setImage(this._ad);delete this._ad;delete this._as;}};_m.blink=function(_x,_at){if(this._ap)this.stopBlinking();this._ar=_at?_at:500;if(_x){this._as=_x;this._ad=this.getImage();this._au();}else{this._av();}};_m._au=function(image){this._aq=!this._aq;if(this._aq){this.setImage(this._as);}else{this.setImage(this._ad);}this._ap=setTimeout(GEvent.callback(this,this._au),this._ar);};_m._av=function(_at){this._aq=!this._aq;if(this._aq)this.display(false);else this.display(true);this._ap=setTimeout(GEvent.callback(this,this._av),this._ar);};_m._aa=function(){if(!this._aw&&(this._ax||this._g)){this._aw=GEvent.addListener(this,'mouseover',this._ay);this._az=GEvent.addListener(this,'mouseout',this._ba);}else if(this._aw&&!this._ax&&!this._g){GEvent.removeListener(this._aw);this._aw=null;GEvent.removeListener(this._az);this._az=null;}};_m._ay=function(){if(this._ax){this._ae=this.getImage();this.setImage(this._ax);}if(this._g){if(!this._y){this._z();this._y.setHtml(this._g);this._y.setClassName(this._k);this._y.setPoint(this._ai());}else{this._y.setPoint(this._ai());this._y.setHtml(this._g);this._y.setClassName(this._k);this._y.display(true);}}GEvent.trigger('mouseover',this);};_m._ba=function(_bb){if(this._ae){this.setImage(this._ae);this._ae=null;}if(this._y&&(_bb||!this._j))this._y.display(false);GEvent.trigger('mouseout',this);};_m.restoreZIndex=function(){this._bc=_bc;};_m.setHoverImage=function(_ab){this._ax=_ab;this._aa();};_m.getHoverImage=function(){return this._ax;};_m.setTooltipClass=function(_bd){this._k=_bd;if(this._y)this._y.setClassName(this._k);};_m.getTooltipClass=function(){return this._k;};_m.setSidebarDiv=function(_be,_bf){this._d[_be]=_bf;};_m.getSidebarDiv=function(_be){return this._d[_be];};_m.getSidebarDivs=function(){return this._d;};_m.setTooltipHtml=function(_g){this._g=_g;if(!this._o)return;if(!this._y){this._z();}else{this._y.setHtml(this._g);}this._aa();};_m.getTooltipHtml=function(){return this._g;};_m.getTooltipLabel=function(){if(this._g&&!this._y){this._z();}return this._y;};_m.setTooltipLabel=function(_be){this._y=_be;};_m.show=function(){if(this._ap)this.blink();this.display(true);};_m.hide=function(){if(this._ap)this.blink();this.display(false);};_m.display=function(_bg){var _o=this._o;if(!_o)return;if(_bg){if(this.images&&this.images.length){for(var i=0;i<this.images.length;i++){if(!/^http:\/\/www\.google\..+\/drag_cross/.test(this.images[i].src)){this.images[i].style.display='';this.images[i].style.visibility='visible';}}}this._i=true;}else{if(this._y)this._y.hide();if(this.images&&this.images.length){for(var i=0;i<this.images.length;i++){if(!/^http:\/\/www\.google\..+\/drag_cross/.test(this.images[i].src)){this.images[i].style.display='none';this.images[i].style.visibility='hidden';}}}this._i=false;}};_m._display=_m.display;_m.isVisible=function(){return this._i;};_m.remove=function(){delete this._o;if(this._y){this._y.remove();delete this._y;}GMarker.prototype.remove.call(this);};_m.setUserData=function(_bh){this._f=_bh;};_m.getUserData=function(){return this._f;};_m.showTooltip=function(){if(!this._g&&!this._y)return;if(this._g&&!this._y)this._z();if(this._y){this._y.setPoint(this._ai());this._y.setHtml(this._g);this._y.setClassName(this._k);this._y.show();}};_m.hideTooltip=function(){if(this._y)this._y.hide();};_m.setMaintainTooltip=function(bool){this._j=bool;};_m.getMaintainTooltip=function(){return this._j;};_m.getMap=function(){return this._o;};_m.setMap=function(_o){this._o=_o;};_m.isMapped=function(){return this._o?true:false;};_m.setPoint=function(){GMarker.prototype.setPoint.apply(this,arguments);if(this._y&&this._y.isVisible())this._y.setPoint(this._ai());};_m.redraw=function(_bi){GMarker.prototype.redraw.apply(this,arguments);if(this._y&&this._y.isVisible()){this._y.setPoint(this._ai());this._y.redraw(_bi);}};bj.prototype.applyFilter=function(input,filterConfig){var data=this.getUserData();if(input&&!input.checked){var name=input.name.replace(/bpfilter_/,'');var index=input.value.indexOf(' ');var op=input.value.substr(0,index);var value=input.value.substr(index+1);if(/^\d\.?\d*$/.test(value))value=parseFloat(value);var operant=data[name];if(/^\d\.?\d*$/.test(operant))operant=parseFloat(operant);if(op=='='){if(/^\d\.?\d*$/.test(value))value=parseFloat(value);if(operant==value)return false;}else if(op=='<>'||op=='><'){var arg1=value.substr(0,value.indexOf(' '));var arg2=value.substr(value.indexOf(' ')+1);if(/^\d\.?\d*$/.test(arg1))arg1=parseFloat(arg1);if(/^\d\.?\d*$/.test(arg2))arg2=parseFloat(arg2);if(arg1<operant&&operant<arg2)return false;}else if(op=='>=<='){var arg1=value.substr(0,value.indexOf(' '));var arg2=value.substr(value.indexOf(' ')+1);if(/^\d\.?\d*$/.test(arg1))arg1=parseFloat(arg1);if(/^\d\.?\d*$/.test(arg2))arg2=parseFloat(arg2);if(arg1<=operant&&operant<=arg2)return false;}else if(op=='>=<'){var arg1=value.substr(0,value.indexOf(' '));var arg2=value.substr(value.indexOf(' ')+1);if(/^\d\.?\d*$/.test(arg1))arg1=parseFloat(arg1);if(/^\d\.?\d*$/.test(arg2))arg2=parseFloat(arg2);if(arg1<=operant&&operant<arg2)return false;}else if(op=='><='){var arg1=value.substr(0,value.indexOf(' '));var arg2=value.substr(value.indexOf(' ')+1);if(/^\d\.?\d*$/.test(arg1))arg1=parseFloat(arg1);if(/^\d\.?\d*$/.test(arg2))arg2=parseFloat(arg2);if(arg1<operant&&operant<=arg2)return false;}else if(op=='<'){if(/^\d\.?\d*$/.test(value))value=parseFloat(value);if(operant<value)return false;}else if(op=='<='){if(/^\d\.?\d*$/.test(value))value=parseFloat(value);if(operant<=value)return false;}else if(op=='>'){if(/^\d\.?\d*$/.test(value))value=parseFloat(value);if(operant>value)return false;}else if(op=='>='){if(/^\d\.?\d*$/.test(value))value=parseFloat(value);if(operant>=value)return false;}else{alert('I do not know how to use this form filter operator: '+op);}return true;}if(!this.isMapped()&&!filterConfig)return;else if(!filterConfig)filterConfig=this.getMap().getFilterConfig();var fields=filterConfig.fields;var display=true;for(var j=0;j<fields.length;j++){var found=false;var inputs=filterConfig[fields[j]];var operant=data[fields[j]];if(/^\d\.?\d*$/.test(operant))operant=parseFloat(operant);for(var k=0;k<inputs.length;k++){if(inputs[k].checked){var index=inputs[k].value.indexOf(' ');var op=inputs[k].value.substr(0,index);var value=inputs[k].value.substr(index+1);if(/^\d\.?\d*$/.test(op))op=parseFloat(op);if(/^\d\.?\d*$/.test(value))value=parseFloat(value);if(op=='='){if(operant==value){found=true;break;}}else if(op=='<>'||op=='><'){var arg1=value.substr(0,value.indexOf(' '));var arg2=value.substr(value.indexOf(' ')+1);if(/^\d\.?\d*$/.test(arg1))arg1=parseFloat(arg1);if(/^\d\.?\d*$/.test(arg2))arg2=parseFloat(arg2);if(arg1<operant&&operant<arg2){found=true;break;}}else if(op=='>=<='){var arg1=value.substr(0,value.indexOf(' '));var arg2=value.substr(value.indexOf(' ')+1);if(/^\d\.?\d*$/.test(arg1))arg1=parseFloat(arg1);if(/^\d\.?\d*$/.test(arg2))arg2=parseFloat(arg2);if(arg1<=operant&&operant<=arg2){found=true;break;}}else if(op=='>=<'){var arg1=value.substr(0,value.indexOf(' '));var arg2=value.substr(value.indexOf(' ')+1);if(/^\d\.?\d*$/.test(arg1))arg1=parseFloat(arg1);if(/^\d\.?\d*$/.test(arg2))arg2=parseFloat(arg2);if(arg1<=operant&&operant<arg2){found=true;break;}}else if(op=='><='){var arg1=value.substr(0,value.indexOf(' '));var arg2=value.substr(value.indexOf(' ')+1);if(/^\d\.?\d*$/.test(arg1))arg1=parseFloat(arg1);if(/^\d\.?\d*$/.test(arg2))arg2=parseFloat(arg2);if(arg1<operant&&operant<=arg2){found=true;break;}}else if(op=='<'){if(operant<value){found=true;break;}}else if(op=='<='){if(operant<=value){found=true;break;}}else if(op=='>'){if(operant>value){found=true;break;}}else if(op=='>='){if(operant>=value){found=true;break;}}}}if(!found){display=false;break;}}return display;};window.BpMarker=bj;}BpMarker();
