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.build()}GSUtil.include(GSBadge,new GSDOMEventsMixin());GSBadge.prototype.build=function(){this.element=GSUtil.createElement("div",{styles:{position:"absolute",textAlign:"center",zIndex:this.zIndex,cursor:this.options.cursor||"default"},"class":"GSBadge"});this.txtEl=GSUtil.createElement("div",{styles:{color:"#fff",fontFamily:"Helvetica, Arial, Sans-serif",fontWeight:"bold",fontSize:"12px",lineHeight:"12px",position:"absolute",top:"5px",left:0,cursor:this.options.cursor||"default"},parent:this.element,unselectable:true});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')"}GSUtil.setStyles(this.element,{width:b+"px",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;GSUtil.setStyles(this.element,{top:(e+b)+"px",left:(d+c)+"px",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.remove=function(){this.removeEventListeners();this.parentNode.removeChild(this.element)};if(window.GSModule&&GSModule.moduleLoaded){GSModule.moduleLoaded("badge")};