function GSBadge(b,c,a){this.feature=b;this.element;this.txtEl;this.count=c;if(isNaN(this.count)){throw new Error('Tried to initialize badge with non-numerical text: "'+this.count+'"')}this.options={badgeColor:"blue",offsetTop:-15,offsetRight:-10};GSUtil.merge(a,this.options);this.visible=true;this.zIndex=this.feature.zIndex+10;this.eventListeners={};this.build()}GSBadge.prototype.build=function(){this.element=document.createElement("div");with(this.element.style){position="absolute";textAlign="center";zIndex=this.zIndex;if(this.options.cursor){cursor=this.options.cursor}}this.txtEl=document.createElement("div");with(this.txtEl.style){color="#fff";fontFamily="Arial, Sans-serif";fontWeight="bold";fontSize="12px";lineHeight="12px";position="absolute";top="5px";left="0";cursor=this.options.cursor}this.element.appendChild(this.txtEl);this.updateBadgeContent()};GSBadge.prototype.updateBadgeContent=function(){var e,d,b,a;var c=new String(this.count).length;switch(c){case 0:throw new Error("Badge count is zero length");break;case 1:e=_globals.resourceURL+"badge/badge-"+this.options.badgeColor+"-23x23.png";d=this.count;b=23;a=23;break;case 2:e=_globals.resourceURL+"badge/badge-"+this.options.badgeColor+"-32x23.png";d=this.count;b=32;a=23;break;case 3:e=_globals.resourceURL+"badge/badge-"+this.options.badgeColor+"-40x23.png";d=this.count;b=40;a=23;break;case 4:e=_globals.resourceURL+"badge/badge-"+this.options.badgeColor+"-48x23.png";d=this.count;b=48;a=23;break;case 5:e=_globals.resourceURL+"badge/badge-"+this.options.badgeColor+"-56x23.png";d=this.count;b=56;a=23;break;default:e=_globals.resourceURL+"badge/badge-"+this.options.badgeColor+"-40x23.png";d="lots";b=40;a=23;break}if(!_browser.isIE6x){this.element.style.background="url("+e+") no-repeat"}else{this.element.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+e+"',sizingMethod='image')"}this.element.style.width=b+"px";this.element.style.height=a+"px";this.txtEl.style.width=b+"px";this.txtEl.innerHTML=d};GSBadge.prototype.setCount=function(b,a){this.count=b;if(a){GSUtil.merge(a,this.options)}this.updateBadgeContent()};GSBadge.prototype.position=function(f){if(f){var a=this.feature.graphicsEl;var e=parseInt(GSUtil.getComputedStyle(a,"top"));var d=parseInt(GSUtil.getComputedStyle(a,"left"));var b=this.options.offsetTop;var c=parseInt(GSUtil.getComputedStyle(a,"width"))+this.options.offsetRight;this.element.style.top=(e+b)+"px";this.element.style.left=(d+c)+"px";this.element.style.visibility=(this.visible?"visible":"hidden")}else{this.element.style.visibility="hidden"}};GSBadge.prototype.addToParent=function(a){this.parentNode=a;this.parentNode.appendChild(this.element);if(this.feature.onmap){this.position(this.feature.visibleOnMap)}return this};GSBadge.prototype.setVisible=function(a){this.visible=a};GSBadge.prototype.setZIndex=function(a){this.zIndex=a;this.element.style.zIndex=a};GSBadge.prototype.addEventHandler=function(b,c){var a=GSEventManager.bind(this.element,b,this,function(){c.apply(this,arguments)});this.addListenerToken(b,a);return a};GSBadge.prototype.addListenerToken=function(a,b){if(this.eventListeners[a]){if((typeof this.eventListeners[a]).toLowerCase()!="array"){this.eventListeners[a]=[this.eventListeners[a]]}this.eventListeners[a].push(b)}else{this.eventListeners[a]=b}};GSBadge.prototype.removeEventHandler=function(a){GSEventManager.release(a)};GSBadge.prototype.remove=function(){this.parentNode.removeChild(this.element)};if(window.GSModule&&GSModule.moduleLoaded){GSModule.moduleLoaded("badge")};