CBSi.namespace("widget.ProfanityFilter");(function(){var Dom=YAHOO.util.Dom;var Event=YAHOO.util.Event;CBSi.widget.ProfanityFilter={init:function(args){if(typeof(args)=="undefined"){args={};}this.defaultFilter=(typeof(args.filter)!="undefined")?args.filter:"swearFilterOn";this.filterToolParent=(typeof(args.filterToolParent)!="undefined")?args.filterToolParent:"profanityFilterTool";this.swearElTag="span";this.swearOldClass=(typeof(args.swearOldClass)!="undefined")?args.swearOldClass:"swear";this.swearOnClass=(typeof(args.swearOnClass)!="undefined")?args.swearOnClass:"swearOn";this.swearOffClass=(typeof(args.swearOffClass)!="undefined")?args.swearOffClass:"swearOff";this.selectedClass=(typeof(args.selectedClass)!="undefined")?args.selectedClass:"optsel";this.filterElOff="swearFilterOff";this.filterElOn="swearFilterOn";this.swearFilterText="****";var profanityFilterTool=Dom.get(this.filterToolParent);if(!Event.getListeners(this.filterToolParent)&&typeof(profanityFilterTool)!="undefined"){Event.addListener(this.filterToolParent,"click",this._clickHandler,{},this);}var filterProfanity=this._filter(this.defaultFilter);},_clickHandler:function(e){var elTarget=Event.getTarget(e);if(elTarget.nodeName.toLowerCase()==="a"){var elAttributeName=elTarget.getAttribute("name");if(typeof(elAttributeName)!="undefined"&&(elAttributeName===this.filterElOff||elAttributeName===this.filterElOn)){this._filter(elAttributeName);}return;}else{Event.stopEvent(e);}},_filter:function(type){var filterType=type;if(typeof(filterType)!="undefined"&&(filterType!=this.filterElOff&&filterType!=this.filterElOn)){return;}var swearOldElements=[];swearOldElements=Dom.getElementsByClassName(this.swearOldClass,this.swearElTag);var swearOldLength=swearOldElements.length;var swearOnElements=[];swearOnElements=Dom.getElementsByClassName(this.swearOnClass,this.swearElTag);var swearOnLength=swearOnElements.length;if(filterType==this.filterElOff){for(var i=0;i<swearOldLength;i++){Dom.setStyle(swearOldElements[i],"background-color","#fff");Dom.setStyle(swearOldElements[i],"color","#000");Dom.setStyle(swearOldElements[i],"display","inline");}for(var j=0;j<swearOnLength;j++){Dom.setStyle(swearOnElements[j],"display","inline");}this._toggleFilterSiblings("none");}else{for(var i=0;i<swearOldLength;i++){var hasfilterSibling=this._hasFilterSibling(swearOldElements[i]);if(!hasfilterSibling){this._createFilterSibling(swearOldElements[i]);}Dom.setStyle(swearOldElements[i],"display","none");}for(var j=0;j<swearOnLength;j++){var hasfilterSibling=this._hasFilterSibling(swearOnElements[j]);if(!hasfilterSibling){this._createFilterSibling(swearOnElements[j]);}Dom.setStyle(swearOnElements[j],"display","none");}}this._toggleAnchorUI(filterType);return;},_hasFilterSibling:function(el){var swearEl=Dom.get(el);var swearSibling=Dom.getNextSibling(swearEl);if(swearSibling&&(Dom.hasClass(swearSibling,this.swearOffClass))){Dom.setStyle(swearSibling,"display","inline");return true;}return false;},_createFilterSibling:function(el){var span=document.createElement(this.swearElTag);span.className=this.swearOffClass;span.innerHTML=this.swearFilterText;Dom.insertAfter(span,el);span=null;return;},_toggleFilterSiblings:function(display){var siblingDisplay=display;if(typeof(siblingDisplay)!="undefined"&&(siblingDisplay!="inline"&&siblingDisplay!="none")){return;}var filterElements=[];filterElements=Dom.getElementsByClassName(this.swearOffClass,this.swearElTag);var filterElLength=filterElements.length;if(filterElLength>=0){for(var i=0;i<filterElLength;i++){Dom.setStyle(filterElements[i],"display",display);}}return;},_toggleAnchorUI:function(type){var filterAnchor=type;if(typeof(filterAnchor)!="undefined"&&(filterAnchor!=this.filterElOff&&filterAnchor!=this.filterElOn)){return;}var profanityFilterTool=Dom.get(this.filterToolParent);if(!typeof(profanityFilterTool)){return;}var filterAnchors=Dom.getChildrenBy(profanityFilterTool,function(profanityFilterTool){return profanityFilterTool.nodeName.toLowerCase()==="a";});var filterAnchorsLength=filterAnchors.length;for(var i=0;i<filterAnchorsLength;i++){var elName=filterAnchors[i].getAttribute("name");var elNameSelected=(elName===filterAnchor)?Dom.addClass(filterAnchors[i],this.selectedClass):Dom.removeClass(filterAnchors[i],this.selectedClass);}return;}};})();