var categoryNamesListed=false;function tabberObj(_1fa){var arg;this.div=null;this.classMain="tabber";this.classMainLive="tabberlive";this.classTab="tabbertab";this.classTabDefault="tabbertabdefault";this.classNav="tabbernav";this.classTabHide="tabbertabhide";this.classNavActive="tabberactive";this.titleElements=["h2","h3","h4","h5","h6"];this.titleElementsStripHTML=true;this.removeTitle=true;this.addLinkId=false;this.linkIdFormat="<tabberid>nav<tabnumberone>";for(arg in _1fa){this[arg]=_1fa[arg];}this.REclassMain=new RegExp("\\b"+this.classMain+"\\b","gi");this.REclassMainLive=new RegExp("\\b"+this.classMainLive+"\\b","gi");this.REclassTab=new RegExp("\\b"+this.classTab+"\\b","gi");this.REclassTabDefault=new RegExp("\\b"+this.classTabDefault+"\\b","gi");this.REclassTabHide=new RegExp("\\b"+this.classTabHide+"\\b","gi");this.tabs=new Array();if(this.div){this.init(this.div);this.div=null;}}tabberObj.prototype.init=function(e){var _1fd,i,i2,t,defaultTab=0,DOM_ul,DOM_li,DOM_a,aId,headingElement;if(!document.getElementsByTagName){return false;}if(e.id){this.id=e.id;}this.tabs.length=0;_1fd=e.childNodes;for(i=0;i<_1fd.length;i++){if(_1fd[i].className&&_1fd[i].className.match(this.REclassTab)){t=new Object();t.div=_1fd[i];this.tabs[this.tabs.length]=t;if(_1fd[i].className.match(this.REclassTabDefault)){defaultTab=this.tabs.length-1;}}}DOM_ul=document.createElement("ul");DOM_ul.className=this.classNav;for(i=0;i<this.tabs.length;i++){t=this.tabs[i];t.headingText=t.div.title;if(this.removeTitle){t.div.title="";}if(!t.headingText){for(i2=0;i2<this.titleElements.length;i2++){headingElement=t.div.getElementsByTagName(this.titleElements[i2])[0];if(headingElement){t.headingText=headingElement.innerHTML;if(this.titleElementsStripHTML){t.headingText.replace(/<br>/gi," ");t.headingText=t.headingText.replace(/<[^>]+>/g,"");}break;}}}if(!t.headingText){t.headingText=i+1;}DOM_li=document.createElement("li");if(typeof (this.applyNavOnAnchor)!="undefined"&&this.applyNavOnAnchor!=null&&this.applyNavOnAnchor){DOM_li.onclick=this.navClick;DOM_li.tabber=this;DOM_li.tabberIndex=i;}t.li=DOM_li;DOM_span=document.createElement("span");DOM_li.appendChild(DOM_span);DOM_a=document.createElement("a");DOM_a.appendChild(document.createTextNode(t.headingText));DOM_a.href="javascript:void(null);";DOM_a.title=t.headingText;if(t.headingText=="HashTags"){DOM_li.onclick=this.listhashtags;}if(t.headingText=="Manage Categories"){DOM_li.onclick=this.listcategories;}DOM_a.tabber=this;DOM_a.tabberIndex=i;if(this.addLinkId&&this.linkIdFormat){aId=this.linkIdFormat;aId=aId.replace(/<tabberid>/gi,this.id);aId=aId.replace(/<tabnumberzero>/gi,i);aId=aId.replace(/<tabnumberone>/gi,i+1);aId=aId.replace(/<tabtitle>/gi,t.headingText.replace(/[^a-zA-Z0-9\-]/gi,""));DOM_a.id=aId;}DOM_li.appendChild(DOM_a);DOM_ul.appendChild(DOM_li);}if(typeof (this.navBlock)!="undefined"&&this.navBlock!=null){document.getElementById(this.navBlock).appendChild(DOM_ul);}else{e.insertBefore(DOM_ul,e.firstChild);}e.className=e.className.replace(this.REclassMain,this.classMainLive);this.tabShow(defaultTab);if(typeof this.onLoad=="function"){this.onLoad({tabber:this});}return this;};tabberObj.prototype.navClick=function(_1fe){var rVal,a,self,tabberIndex,onClickArgs;a=this;if(!a.tabber){return false;}self=a.tabber;tabberIndex=a.tabberIndex;a.blur();if(typeof self.onClick=="function"){onClickArgs={"tabber":self,"index":tabberIndex,"event":_1fe};if(!_1fe){onClickArgs.event=window.event;}rVal=self.onClick(onClickArgs);if(rVal===false){return false;}}self.tabShow(tabberIndex);scroller.reset();return false;};tabberObj.prototype.tabHideAll=function(){var i;for(i=0;i<this.tabs.length;i++){this.tabHide(i);}};tabberObj.prototype.tabHide=function(_201){var div;if(!this.tabs[_201]){return false;}div=this.tabs[_201].div;if(!div.className.match(this.REclassTabHide)){div.className+=" "+this.classTabHide;}this.navClearActive(_201);return this;};tabberObj.prototype.tabShow=function(_203){var div;if(!this.tabs[_203]){return false;}this.tabHideAll();div=this.tabs[_203].div;div.className=div.className.replace(this.REclassTabHide,"");this.navSetActive(_203);if(typeof this.onTabDisplay=="function"){this.onTabDisplay({"tabber":this,"index":_203});}return this;};tabberObj.prototype.navSetActive=function(_205){this.tabs[_205].li.className=this.classNavActive;return this;};tabberObj.prototype.navClearActive=function(_206){var _207="";this.tabs[_206].li.className=_207;return this;};tabberObj.prototype.getActiveTabName=function(){for(i=0;i<this.tabs.length;i++){if(this.tabs[i].li.className.indexOf("tabberactive")!=-1){return this.tabs[i].li.getElementsByTagName("a")[0].childNodes[0].nodeValue;}}};tabberObj.prototype.getTab=function(_208){for(i=0;i<this.tabs.length;i++){if(this.tabs[i].li.getElementsByTagName("a")[0].childNodes[0].nodeValue==_208){return this.tabs[i].div;}}};tabberObj.prototype.getTabNav=function(_209){for(i=0;i<this.tabs.length;i++){if(this.tabs[i].li.getElementsByTagName("a")[0].childNodes[0].nodeValue==_209){return this.tabs[i].li;}}};tabberObj.prototype.getActiveTab=function(){for(i=0;i<this.tabs.length;i++){if(this.tabs[i].li.className.indexOf("tabberactive")!=-1){return this.tabs[i].div;}}};tabberObj.prototype.getActiveTabIndex=function(){for(i=0;i<this.tabs.length;i++){if(this.tabs[i].li.className.indexOf("tabberactive")!=-1){return i;}}return -1;};function tabberAutomatic(_20a){var _20b,divs,i;if(!_20a){_20a={};}_20b=new tabberObj(_20a);divs=document.getElementsByTagName("div");for(i=0;i<divs.length;i++){if(divs[i].className&&divs[i].className.match(_20b.REclassMain)){_20a.div=divs[i];divs[i].tabber=new tabberObj(_20a);}}return this;}function tabberAutomaticOnLoad(_20c){var _20d;if(!_20c){_20c={};}_20d=window.onload;if(typeof window.onload!="function"){window.onload=function(){tabberAutomatic(_20c);};}else{window.onload=function(){_20d();tabberAutomatic(_20c);};}}if(typeof tabberOptions=="undefined"){tabberAutomaticOnLoad();}else{if(!tabberOptions["manualStartup"]){tabberAutomaticOnLoad(tabberOptions);}}tabberObj.prototype.listhashtags=function(_20e){window.location="/hashtag/manageHashTag.action";};tabberObj.prototype.listcategories=function(_20f){window.location="/category/manageCategory.action";};
tangler.manager.Scroller=function(_7c3,_7c4){this.oArgs=_7c4||{};var _7c5="LI";var _7c6=this;this.UP=-1;this.DOWN=1;this.slidingConf={easing:"easeOut",duration:0.45,callback:function(){this.parent.afterScrolling();}};this.initialized=false;this.scrollSet=Ext.get(_7c3);this.container=this.scrollSet.select("div.scrollArea").elements[0];this.scrollElement=this.scrollSet.select("div.scrollContent").elements[0];this.tabber=tangler.util.Options.getOptionalArgument("tabber",_7c4,null);this.listItems=[];this.alphabetIndexdTabs=tangler.util.Options.getOptionalArgument("alphabetIndexdTabs",_7c4,[]);this.indexer=Ext.get(tangler.util.Options.getOptionalArgument("indexer",_7c4,null));this.onScroll=_7c4.onScroll;this.onBufferExhausted=_7c4.onBufferExhausted;this._lastScrollTop=0;this.scrollOffSet=0;this.upButton=this.scrollSet.select("div.up").elements[0];this.downButton=this.scrollSet.select("div.down").elements[0];this.defaultHeight=0;this.afterScrolling=function(){this.checkAndDisable();this.fireEvent("scrolled");this.checkAndFireBufferExhaustion();};this.checkAndFireBufferExhaustion=function(){if(this.container.scrollTop>this._lastScrollTop){var _7c7=this.container.scrollHeight;var _7c8=Math.abs(this.container.clientHeight*0.2);var pos=this.container.scrollTop+this.container.clientHeight;if((pos+_7c8)>=_7c7){this.fireEvent("bufferExhausted");}}_lastScrollTop=this.container.scrollTop;};this.checkAndDisable=function(){var _7ca=this.findElementToShow();var _7cb=false;var _7cc=false;if(this.listItems.length<=_7ca.visibleItemsCount){this.disableScroller(this.UP);this.disableScroller(this.DOWN);return;}if(_7ca.uBound.index==0&&_7ca.lBound.index==_7ca.visibleItemsCount&&_7ca.lBound.index!=-1){this.disableScroller(this.UP);_7cb=true;}if(_7ca.lBound.index==-1){this.disableScroller(this.DOWN);_7cc=true;}if(!_7cb){this.enableScroller(this.UP);}if(!_7cc){this.enableScroller(this.DOWN);}};this.disableScroller=function(_7cd){if(_7cd==this.UP){Ext.get(this.upButton).addClass("scrollerDisabled");}else{Ext.get(this.downButton).addClass("scrollerDisabled");}};this.enableScroller=function(_7ce){if(_7ce==this.UP){Ext.get(this.upButton).removeClass("scrollerDisabled");}else{Ext.get(this.downButton).removeClass("scrollerDisabled");}};this.findElementToShow=function(){var _7cf={uBound:{index:-1,item:null},lBound:{index:-1,item:null},visibleItemsCount:0};var _7d0=Ext.get(this.container);var _7d1=0;var _7d2=this.listItems.length;var _7d3=0;for(var i=0;i<this.listItems.length;i++){var _7d5=Ext.get(this.listItems[i]);var _7d6=_7d5.getOffsetsTo(_7d0)[1]+_7d5.getHeight();if(_7d6<0){_7d1=i+1;}else{if(_7d6>_7d0.getHeight()){_7d2=i;_7cf.lBound={index:i,item:_7d5};break;}}}_7d3=Math.abs(_7d2-_7d1);var _7d7=_7d1-_7d3;_7cf.visibleItemsCount=_7d3;_7d7=_7d7>-1?_7d7:0;_7cf.uBound={index:_7d7,item:Ext.get(this.listItems[_7d7])};return _7cf;};this.scrollIntoView=function(_7d8){var c=Ext.getDom(this.container);var _7da=Ext.get(_7d8);var el=_7da.dom;var o=_7da.getOffsetsTo(c),l=o[0]+c.scrollLeft,t=o[1]+c.scrollTop,b=t+el.offsetHeight,r=l+el.offsetWidth;var ch=c.clientHeight;var ct=parseInt(c.scrollTop,10);var cl=parseInt(c.scrollLeft,10);var cb=ct+ch;var cr=cl+c.clientWidth;Ext.get(c).parent=this;if(el.offsetHeight>ch||t<ct){Ext.get(c).scrollTo("top",t,this.slidingConf);}else{if(b>cb){var y=b-_7da.getHeight();Ext.get(c).scrollTo("top",y,this.slidingConf);}}c.scrollTop=c.scrollTop;};this.scrollToIndex=function(){var _7e3=arguments[2].letter;var _7e4=null;var _7e5="div[title="+_7e3+"]";_7e4=Ext.get(tabber.getActiveTab()).select(_7e5).elements;if(_7e4!=null&&_7e4.length>0){this.scrollIntoView(_7e4[0].parentNode);}};this.reset=function(){this.listItems=new Array();var _7e6=[];if(this.tabber!=null&&this.tabber.getActiveTab()){this.listItems=Ext.get(tabber.getActiveTab()).select(_7c5).elements;if(this.alphabetIndexdTabs.contains(tabber.getActiveTabName())){if(this.oArgs.indicesForTabs&&this.oArgs.indicesForTabs[this.tabber.getActiveTabName()]){_7e6=this.oArgs.indicesForTabs[this.tabber.getActiveTabName()];}else{var _7e7=Ext.get(tabber.getActiveTab()).select(_7c5+" div.letterIndex").elements;for(var i=0;i<_7e7.length;i++){_7e6.push(_7e7[i].title);}}this.initIndexer(_7e6);this.toggleIndexer(true);}}else{if(Ext.get("categories")){Ext.get("categories").applyStyles({display:"block"});this.listItems=Ext.get("categories").select(_7c5).elements;}else{this.listItems=Ext.get(this.scrollElement).select(_7c5).elements;}}if(this.listItems.length>0){this.scrollIntoView(this.listItems[0]);}if(_7e6.length==0){this.toggleIndexer(false);}this.checkAndDisable();};this.checkForNewEntries=function(){var _7e9=tabber.getActiveTab()||"categories";this.listItems=Ext.get(_7e9).select(_7c5).elements;};this.initIndexer=function(_7ea){tangler.util.Element.removeChildNodes(this.indexer);var _7eb="ABCDEFGHIJKLMNOPQRSTUVWXYZ";var _7ec=new Array();for(var i=0;i<_7eb.length;i++){var li=null;var _7ef=_7eb.charAt(i);if(_7ea.contains(_7ef)){var href=tangler.util.Element.createNode("a",{attributes:[["href","javascript:void(null);"]],children:[document.createTextNode(_7ef)]});tangler.util.Element.getEl(href).on({"click":{fn:this.scrollToIndex,scope:this,letter:_7ef}});li=tangler.util.Element.createNode("li",{children:[href]});}else{li=tangler.util.Element.createNode("li",{children:[document.createTextNode(_7ef)]});}_7ec.push(li);}var ul=tangler.util.Element.createNode("ul",{children:_7ec});if(this.indexer!=null){this.indexer.dom.appendChild(ul);}else{alert("No indexer element defined!");}};this.toggleIndexer=function(show){if(this.indexer==null){return;}if(show&&!this.indexer.isVisible()){this.indexer.slideIn("l",{easing:"easeOut",duration:0.35});}else{if(!show&&this.indexer.isVisible()){this.indexer.slideOut("l",{easing:"easeOut",duration:0.35});}}};this.init=function(){this.initialized=true;var _7f3=this;Ext.get(this.upButton).on({"click":{fn:_7f3.scrollUp,scope:_7f3}});Ext.get(this.downButton).on({"click":{fn:_7f3.scrollDown,scope:_7f3}});this.observeEvents();this.checkAndDisable();};this.scrollUp=function(){this.scroll(this.UP);};this.scrollDown=function(){this.scroll(this.DOWN);};this.scroll=function(_7f4){var _7f5=this.findElementToShow();if(_7f4==this.UP&&_7f5.uBound.item!=null){this.scrollIntoView(_7f5.uBound.item);}else{if(_7f4==this.DOWN&&_7f5.lBound.item!=null){this.scrollIntoView(_7f5.lBound.item);}}};this.tabberClicked=function(){new Ext.util.DelayedTask(function(){this.reset();},this).delay(50);};this.getStatus=function(){var _7f6=this.findElementToShow();var list=Ext.get(tabber.getActiveTab()).select("UL").elements[0];if(list.length==0){list=Ext.get(tabber.getActiveTab()).select("OL").elements[0];}var _7f8=Ext.get(list).select("LI").elements.length;var _7f9=_7f6.lBound.index==-1?_7f8:_7f6.lBound.index;var _7fa=_7f9-_7f6.visibleItemsCount+1;var _7fb={list:list,totalItems:_7f8,uIndex:_7fa,lIndex:_7f9,scrollContent:this.scrollElement,scrollContainer:this.container};if(this.tabber!=null){_7fb.activeTab=this.tabber.getActiveTabName();}return _7fb;};this.observeElements=function(_7fc){var _7fd=this;for(var i=0;i<_7fc.length;i++){Ext.EventManager.addListener(Ext.get(_7fc[i]),"click",function(){this.tabberClicked();},_7fd,{preventDefault:true});}};if(typeof (tabber)!="undefined"){this.tabber=tabber;this.listItems=Ext.get(tabber.getActiveTab()).select(_7c5).elements;if(this.alphabetIndexdTabs.contains(tabber.getActiveTabName())){if(this.oArgs.indicesForTabs&&this.oArgs.indicesForTabs[this.tabber.getActiveTabName()]){activeList=this.oArgs.indicesForTabs[this.tabber.getActiveTabName()];}else{var _7ff=Ext.get(tabber.getActiveTab()).select(_7c5+" div.letterIndex").elements;for(var i=0;i<_7ff.length;i++){activeList.push(_7ff[i].title);}}this.initIndexer(activeList);}}else{this.listItems=Ext.get(this.scrollElement).select(_7c5).elements;}if(this.tabber!=null){this.tabber.referer=this;this.tabber.clickFunction=this.tabber.onClick;this.tabber.onClick=function(){this.clickFunction();this.referer.tabberClicked();};}this.init();};Ext.extend(tangler.manager.Scroller,Ext.util.Observable,{observeEvents:function(){this.addEvents({"scrolled":true});this.addEvents({"bufferExhausted":true});if(this.onScroll!=null&&typeof (this.onScroll)!="undefined"){this.on("scrolled",this.onScroll);}if(this.onBufferExhausted!=null&&typeof (this.onBufferExhausted)!="undefined"){this.on("bufferExhausted",this.onBufferExhausted,this);}}});
tangler.widget.WindowWrapper=function(_847){this._defaultWidth=550;this._defaultHeight=350;this._defaultRefreshOnClose=true;var _848=tangler.util.Options.getOptionalArgument("width",_847,this._defaultWidth);var _849=tangler.util.Options.getOptionalArgument("height",_847,this._defaultHeight);var _84a=tangler.util.Options.getOptionalArgument("closable",_847,false);this._url=tangler.util.Options.getOptionalArgument("url",_847,"");this._title=tangler.util.Options.getOptionalArgument("title",_847);this._iframe=null;this._loading=tangler.util.Element.createLoadingElement("iframeLoading");this._loading.style.zIndex=1000;this._template=new Ext.Template("<div id=\"iframeDialog\" style=\"visibility:hidden;position:absolute;top:0;\">","\t<div id=\"dlgIFrame\" class=\"x-window-body\">","\t\t<iframe id=\"centerFrame\" name=\"centerFrame\" frameborder=\"no\" style=\"border:0px none;\" scrolling=\"no\" src=\"{url}\" width=\"100%\" height=\"100%\"><div class=\"loader\"><p>","       Loading...","       </p></div></iframe>","\t</div>","</div>");this._template.append(document.body,{url:this._url});if(Ext.isIE){window.frames["centerFrame"].location.href=this._url;}this._window=new tangler.widget.DialogWrapper("iframeDialog",{autoDestroy:false,resizable:false,draggable:false,width:_848,height:_849,autoCreate:true,closable:_84a});};tangler.widget.WindowWrapper.prototype={showWindow:function(_84b){var _84c=tangler.util.Options.getOptionalArgument("refreshOnClose",_84b,this._defaultRefreshOnClose);var _84d=tangler.util.Options.getOptionalArgument("destroyFunction",_84b,null);if(_84c){_84d=tangler.info.Page.refreshPage;}if(_84d!=null){this._window.addListener("hide",_84d);}this._window.setTitle(this._title);this._window.showDialog();},onIFrameLoaded:function(_84e){return function(){var w=tangler.util.Element.getEl(_84e);w.select("div").elements[0].style.display="none";w.select("div").elements[0].style.zIndex=0;w.select("iframe").elements[0].style.visibility="visible";w.select("iframe").elements[0].style.zIndex=1000;};},closeWindow:function(){tangler.util.Element.removeChildNodes("dlgIFrame");this._window.hide();},closeAndDestroy:function(){tangler.util.Element.removeChildNodes("dlgIFrame");this._window.closeAndDestroy(true);this._window=null;},destroy:function(){this._window.destroy(true);},resize:function(_850,_851){this._window.setContentSize(_850,_851);},destroyFunctionHandler:function(_852,_853){return function(_854,win){if(win==_852){_853();}};}};tangler.widget.DialogWrapper=function(_856,_857){Ext.useShims=true;this._dialogId=_856;this._dialog=null;var _858=tangler.util.Options.getOptionalArgument("width",_857,500);var _859=tangler.util.Options.getOptionalArgument("height",_857,300);var _85a=tangler.util.Options.getOptionalArgument("minWidth",_857,300);var _85b=tangler.util.Options.getOptionalArgument("minHeight",_857,300);var _85c=tangler.util.Options.getOptionalArgument("underlay",_857,"none");var _85d=tangler.util.Options.getOptionalArgument("resizable",_857,true);var _85e=tangler.util.Options.getOptionalArgument("draggable",_857,true);var _85f=tangler.util.Options.getOptionalArgument("modal",_857,true);var _860=tangler.util.Options.getOptionalArgument("closable",_857,false);var _861=tangler.util.Options.getOptionalArgument("BasicDialog",_857,true);var _862=tangler.util.Options.getOptionalArgument("autoCreate",_857,false);var _863=tangler.util.Options.getOptionalArgument("autoHeight",_857,false);var _864=tangler.util.Options.getOptionalArgument("shadow",_857,true);var _865=tangler.util.Options.getOptionalArgument("acceptLabel",_857,null);var _866=tangler.util.Options.getOptionalArgument("declineLabel",_857,null);var _867=tangler.util.Options.getOptionalArgument("acceptFunction",_857,null);var _868=tangler.util.Options.getOptionalArgument("declineFunction",_857,null);var _869=tangler.util.Options.getOptionalArgument("defaultFocus",_857,null);if(_865){if(_867==null){alert("Please set acceptFunction");return;}}if(_866){if(_868==null){alert("Please set declineFunction");return;}}var _86a=tangler.util.Helper.getBrowserSize();if(_858>_86a.width){_858=_86a.width-50;}if(_859>_86a.height){_859=_86a.height-50;}var _86b=null;var _86c=[];if(_865){_86c[0]={text:_865,handler:_867,id:"acceptButton"};}if(_866){_86c[1]={text:_866,handler:_868,id:"declineButton"};}if(_869&&_869==_865){_86b="acceptButton";}else{if(_869&&_869==_866){_86b="declineButton";}}if(!_869){this._dialog=new Ext.Window({applyTo:_856,width:_858,height:_859,minWidth:_85a,minHeight:_85b,constraintoviewport:true,underlay:_85c,resizable:false,draggable:false,modal:_85f,shim:true,collapsible:false,closable:_860,fixedCenter:true,autoHeight:_863,shadow:_864,buttons:_86c});}else{this._dialog=new Ext.Window({applyTo:_856,width:_858,height:_859,minWidth:_85a,minHeight:_85b,constraintoviewport:true,underlay:_85c,resizable:false,draggable:false,modal:_85f,shim:true,collapsible:false,closable:_860,fixedCenter:true,autoHeight:_863,shadow:_864,buttons:_86c,defaultButton:_86b});}if(_865){this._dialog.addButton({text:_865,handler:_867});}if(_866){this._dialog.addButton({text:_866,handler:_868});}this._dialog.anchorTo(document.body,"c-c?");this._dialog.on("show",function(id){var div=tangler.util.Element.getEl(id.el);div.setStyle("overflow","auto");var text=div.select(".ext-mb-textarea",true);if(!text.item(0)){text=div.select(".ext-mb-text",true);}if(text.item(0)){text.item(0).dom.select();}},this._dialogId);};tangler.widget.DialogWrapper.prototype={getDialog:function(){return this._dialog;},setContentSize:function(_870,_871){if(this._dialog==null){return;}this._dialog.resizeTo(_870,_871);this._dialog.setContentSize(_870,_871);this._dialog.center();},showDialog:function(_872){if(this._dialog==null){return;}var elem=tangler.util.Options.getOptionalArgument("element",_872);var _874=tangler.util.Options.getOptionalArgument("anchor",_872,"");if(elem){this._dialog.alignTo(elem,_874);}var _875=tangler.util.Helper.getBrowserSize();if(this._dialog.maximumWidth>_875.width){this._dialog.maximumWidth=(_875.width-50);}this._dialog.show();},isVisible:function(){return (this._dialog!=null&&this._dialog.isVisible());},closeAndDestroy:function(_876){if(this._dialog==null){return;}this._dialog.hide();this._dialog.destroy(_876);},destroy:function(_877){this._dialog.destroy(_877);},hide:function(){if(this._dialog==null){return;}this._dialog.hide();},addListener:function(_878,fn,_87a){if(this._dialog==null){return;}this._dialog.on(_878,fn,this,_87a);},setTitle:function(_87b){if(this._dialog==null){return;}this._dialog.setTitle(_87b);}};
tangler.manager.AutoFillTextBox=function(){var _7b2=new Array();var _7b3="Please enter a value";var _7b4="text";var _7b5="inactiveField";var _7b6=false;function help(){alert("AutoFillTextBox prompts the users to enter a valid value into the text fields.");}function initAndAssignEvents(_7b7){var _7b8=Ext.get(_7b7.id);if(tangler.util.StringUtil.isEmpty(_7b8.dom.value)){if(!tangler.util.StringUtil.isEmpty(_7b8.dom.title)){_7b8.dom.value=_7b8.dom.title;}else{if(!tangler.util.StringUtil.isEmpty(_7b7.value)){_7b8.dom.value=_7b7.value;}else{alert("Please provide a title or a default init-value for the edit box - '"+_7b7.id+"'");return;}}}_7b8.addClass(_7b5);_7b8.on("focus",function(){var _7b9=_7b7.value;if(tangler.util.StringUtil.isEmpty(_7b9)&&!tangler.util.StringUtil.isEmpty(arguments[1].title)){_7b9=arguments[1].title;}else{_7b9=_7b3;}onFocus(_7b9,arguments[1]);},_7b7.value,_7b3,{preventDefault:true});_7b8.on("blur",function(){var _7ba=_7b7.value;if(tangler.util.StringUtil.isEmpty(_7ba)&&!tangler.util.StringUtil.isEmpty(arguments[1].title)){_7ba=arguments[1].title;}else{_7ba=_7b3;}onBlur(_7ba,arguments[1]);},_7b7.value,_7b3,{preventDefault:true});}function onFocus(_7bb,_7bc){if(_7bc.value==_7bb){_7bc.value="";}Ext.get(_7bc).removeClass(_7b5);}function onBlur(_7bd,_7be){if(_7be.value==""){_7be.value=_7bd;Ext.get(_7be).addClass(_7b5);}}return {init:function(_7bf){_7b4=tangler.util.Options.getOptionalArgument("classNormal",_7bf,"text");_7b5=tangler.util.Options.getOptionalArgument("inactiveClass",_7bf,"inactiveField");_7b6=tangler.util.Options.getOptionalArgument("removeTitle",_7bf,false);var _7c0=tangler.util.Options.getOptionalArgument("editboxes",_7bf,null);if(_7c0!=null){for(var i=0;i<_7c0.length;i++){var node=_7c0[i];_7b2.push(node);initAndAssignEvents(node);}}}};}();
tangler.domain.TopicElementFlyweight=function(){var _50d=null;var _50e=null;var _50f=null;var _510=null;var _511=null;var _512=false;var _513=tangler.util.Element;var _514=tangler.util.Options;var _515=new Ext.Template("<div id=\"{id}\" class=\"listBox\">","<div class=\"listBoxDetails\">","<div class=\"avatar\">","<a href=\"{authorURL}\"><img src=\"{avatarURL}\"/></a>","</div>","<div class=\"listBoxSubDetails\">","<div class=\"listBoxSubDetailTitle\">","<a class=\"listTopicName\" href=\"{topicURL}\">{topicName}</a>","</div>","<div class=\"listBoxSubDetailSubTitle\">","By: <span><a href=\"{authorURL}\">{authorScreenName}</a></span> - {sincePeriod}","</div>","</div>","<a href=\"{topicURL}\" class=\"topicView\">View</a>","</div>","<span style=\"visibility: hidden; display: none;\" class=\"topicData\">{topicData}</span>","<div class=\"listBoxClose\"/>","</div>");_515.compile();function createTopicElement(_516){var id=tangler.util.Options.getOptionalArgument("id",_516);if(id==null){id=_50d.globalId;}var _518=tangler.util.Options.getOptionalArgument("name",_516);if(_518==null){_518=_50d.name;}_518=tangler.util.Helper.escapeHtml(_518);var _519=tangler.util.Options.getOptionalArgument("onclick",_516,"");var _51a=tangler.util.Options.getOptionalArgument("url",_516,"#");var _51b="";var _51c="";var _51d="";var _51e="";var _51f="";var _520="#";var _521="";var _522="";var _523="";if(_50d){var _524=_50d.group.shortName?_50d.group.shortName:("id-"+_50d.group.globalId);_51a=tangler.util.Options.getOptionalArgument("url",_516,tangler.info.Page.wrapContextUrl("/conversation/"+id));_51b=tangler.domain.TopicElementFlyweight.getTopicLastAction();_51c=tangler.util.compare.isDateEqual(_50d.lastModified,_50d.created)?0:1;_51d=tangler.util.formatter.formatElapsedDate(_51b);_51e=tangler.util.formatter.formatDateTime(_51b);_523=tangler.util.formatter.showAbstractTime(_51b)+" ago";_520=tangler.info.Page.wrapContextUrl("/user/"+_50d.author.screenName);_51f=tangler.util.Helper.escapeHtml(_50d.author.screenName);if(_50d.author.avatar==null){_521="/images/defaulticons/contact_36.png";}else{_521=tangler.util.Avatar.getAvatarUrl(_50d.author.avatar,{height:36,width:36,avatarType:"user"});}}var li=_513.createNode("li");var div=_515.append(li,{id:"rt-"+id,avatarURL:_521,topicURL:_51a,topicName:_518,authorURL:_520,authorScreenName:_51f,sincePeriod:_523,topicData:_51e});return li;}function processTopicElementRequest(_527){var _528=tangler.util.Options.getOptionalArgument("fromCreate",_527,false);var _529=tangler.util.Options.getOptionalArgument("topicClickCallback",_527,null);var _52a=tangler.info.Page.wrapContextUrl("/forum/"+_50d.group.globalId+"/topic/"+_50d.globalId);return createTopicElement({onclick:_529});}return {setContext:function(_52b,_52c){_50d=_52b;_50f=_52c;},setContextTopicId:function(_52d){_511=_52d;},getTopicLastAction:function(){return (_510&&_510.maxLastModifiedMessage)?_510.maxLastModifiedMessage:_50d.lastModified;},addOrUpdateTopic:function(_52e){var _52f=_514.getOptionalArgument("prefix",_52e,"rt-");var _530=_513.getEl(_52f+_50d.globalId);if(_530){tangler.domain.TopicElementFlyweight.updateTopic(_52e);return 0;}else{tangler.domain.TopicElementFlyweight.addTopic(_52e);return 1;}},addTopic:function(_531){var _532=processTopicElementRequest(_531);var dom=tangler.util.Options.getOptionalArgument("dom",_531,null);var _534=tangler.util.Options.getOptionalArgument("insertFirst",_531,false);if(_534){var _535=Ext.get(_513.getEl(dom.select("li").elements[0])).dom;_513.insertBefore(dom,_532,_535);}else{dom.appendChild(_532);}},updateTopic:function(_536){var _537=processTopicElementRequest(_536);var _538=_513.getEl("tList-"+_50d.globalId);_538.dom.parentNode.parentNode.replaceChild(_537,_538.dom.parentNode);if(tangler.info.Session.getTopicId()==_50d.globalId){tangler.util.Helper.setSelectedLink("topicList","tList-"+_50d.globalId);}},isElementDeleted:function(){return (_50f!=null&&_50f.operation=="DELETE");},isElementModified:function(){return (_50f!=null&&_50f.operation=="MODIFY");}};}();
tangler.manager.TopicList=function(){var _1b0=null;var _1b1=tangler.util.Element;var _1b2=tangler.util.Options;var _1b3=tangler.manager.GroupState;var _1b4=tangler.view.TopicLifecycleConvertor;var _1b5=tangler.domain.TopicElementFlyweight;var _1b6=null;var _1b7=null;var _1b8=null;var _1b9=false;var _1ba=false;var _1bb=false;var _1bc=0;var _1bd=0;var _1be=0;var _1bf=null;var _1c0=new Ext.Template("<div>TEST</div>");var _1c1=function(){_1c1.superclass.constructor.call(this);_1b0=this;this.addEvents({"topicClicked":true});};Ext.extend(_1c1,Ext.util.Observable,{getBodyTemplate:function(){return _topicListItemTemplate;},init:function(_1c2){var _1c3=tangler.util.Options.getOptionalArgument("topicList",_1c2);_1b8=_1b1.getEl(_1c3);_1bb=true;},setTopicActiveDate:function(_1c4,_1c5){if(_1c4==_1b3.getTopicToOpen()){return;}if(_1b6==null||tangler.util.compare.isDateLesser(_1c5,_1b6)){_1b6=_1c5;}if(_1b7==null||tangler.util.compare.isDateGreater(_1c5,_1b7)){_1b7=_1c5;}},loadRecentTopics:function(_1c6){var _1c7=_1c6.callback;if(typeof (_1c7)!="undefined"&&_1c7!=null){_1bf=_1c7;}DWRTopicHandler.getRecentTopicsBucket(null,{callback:_1b0._addTopicFromBucket,timeout:20000,errorHandler:_1b0._getNewTopicsBucketError});},removeTopic:function(_1c8){var _1c9=_1b1.getEl(_1c8);if(_1c9!=null){_1b1.getEl(_1c9.dom.parentNode).remove();}else{return;}var ul=_1b1.getEl("topicList").select("ul").elements[0];if(_1b1.getEl(ul).select("li").elements.length==0){return false;}_1b0._decrementTopicCount();return true;},onTopicListScrolled:function(){if(_1b8==null){return;}if(_1ba){return;}if(_1b8.dom.scrollTop>_1be){_1ba=true;var _1cb=_1b8.dom.scrollHeight;var _1cc=Math.abs(_1b8.dom.clientHeight*0.2);var pos=_1b8.dom.scrollTop+_1b8.dom.clientHeight;if((pos+_1cc)>=_1cb){_1b1.getEl("topicListFooter").dom.innerHTML=RETRIEVING_TOPICS;_1b1.showElement("topicListFooter");DWRGroupHandler.getGroupTopicBucket(tangler.info.Session.getForumId(),null,_1b6,{callback:_1b0._addTopicFromBucket,timeout:20000,errorHandler:_1b0._getGroupTopicBucketError});}else{_1ba=false;}}_1be=_1b8.dom.scrollTop;},onTopicClicked:function(){if(_1b1.getEl("tList-new")!=null){return;}_1b1.removeChildNodes("topicMessageList");_1b5.setContext();_1b5.createTemporaryNewTopic();_1b0.fireEvent("topicCreateClicked");},onTopicEvent:function(_1ce){_1b0._addOrUpdateTopic(_1ce.detail,{dom:_1b8,insertFirst:true});},_onShortPoll:function(){if(!tangler.info.Session.getSecurity().isAuthenticated()){return;}if(_1b7){DWRGroupHandler.updateTopicBucket(tangler.info.Session.getGroupId(),_1b7,{callback:_1b0._updateTopicBucket});}},_updateTopicBucket:function(_1cf){var dom=document.createDocumentFragment();Ext.each(_1cf,function(_1d1,_1d2,list){_1b0._addOrUpdateTopic(_1d1,{dom:dom});});var ul=_1b8.select("ul").elements[0];var _1d5=_1b1.getEl(ul).select("li").elements;if(_1d5==null||_1d5.length==0){ul.appendChild(dom);}else{ul.insertBefore(dom,_1d5[0]);}},_incrementTopicCount:function(){_1bd=_1b3.getTopicCount()+1;_1b3.setTopicCount(_1bd);var _1d6=_1b1.getEl("topicListContainer").select("ul").elements[0];var _1d7=_1b1.getEl(_1d6).select("li").elements.length;_1b0._setDisplayedTopicCount(_1d7);},_decrementTopicCount:function(){_1bd=_1b3.getTopicCount()-1;if(_1bd<0){_1bd=0;}_1b3.setTopicCount(_1bd);var _1d8=_1b1.getEl("topicListContainer").select("ul").elements[0];if(_1d8){var _1d9=_1b1.getEl(_1d8).select("li").elements.length;_1b0._setDisplayedTopicCount(_1d9);}else{_1b0._setDisplayedTopicCount(0);}},_addOrUpdateTopic:function(_1da,_1db){var dom=_1b2.getOptionalArgument("dom",_1db,null);var _1dd=_1b2.getOptionalArgument("insertFirst",_1db,false);_1b5.setContext(_1da.topicDetail,null);_1b5.addOrUpdateTopic({topicClickCallback:"tangler.manager.TopicList.onTopicSelected",dom:dom,insertFirst:_1dd});},_addTopicFromBucket:function(_1de){if(!_1b9){_1b9=true;if(_1de.length==0){return;}}Ext.each(_1de,function(_1df,_1e0,list){_1b0._addOrUpdateTopic(_1df,{dom:_1b8});});if(_1bf!=null){_1bf();}return;},_getGroupTopicBucketError:function(_1e2){_retreivingTopics=false;var _1e3=_1b1.getEl("topicListContainer").select("ul").elements[0];var _1e4=_1b1.getEl(_1e3).select("li").elements.length;if(_1e4>0){_1b0._setDisplayedTopicCount(_1e4);}else{_1b1.getEl("topicListFooter").dom.innerHTML="<a href='#' onclick='tangler.manager.TopicList.loadTopicList();return false;'>"+RETRY+"</a>";}},_getNewTopicsBucketError:function(_1e5){_retreivingTopics=false;var _1e6=_1b1.getEl("recentConversationsList").select("li").elements;var _1e7=_1e6.length;if(_1e7>0){_1b0._setDisplayedTopicCount(_1e7);}else{_1b1.getEl("loader-element").dom.innerHTML="<a href='javascript:void(null);' onclick='tangler.manager.TopicList.loadRecentTopics({});return false;'>Retry</a>";}},_setDisplayedTopicCount:function(_1e8){_1bc=_1e8;if(_1e8==0){_1b1.getEl("topicListFooter").dom.innerHTML="";}else{var _1e9=SHOWING_TOPICS.replace("{0}",_1bc).replace("{1}",_1b3.getTopicCount());_1b1.getEl("topicListFooter").dom.innerHTML=_1e9;}_1b1.showElement("topicListFooter");},_setTopicSelected:function(_1ea){_1b0.removeTopic("new");_1b0._setTopicMessageCount(_1ea,0);_1b0._scrollToTopic(_1ea);_1b3.setTopicIdViewed(_1ea);tangler.util.Helper.setSelectedLink("topicList","tList-"+_1ea);},_setTopicMessageCount:function(_1eb,_1ec){var _1ed=_1b1.getEl("topicUnreadCount-"+_1eb);if(_1b1.getEl("tList-"+_1eb)!=null){if(_1b1.getEl("tList-"+_1eb).dom.className.indexOf("selected")!=-1){return;}var _1ee=_1b1.getEl("tList-"+_1eb).dom.className.indexOf("selected")!=-1?"selected":"";if(_1ec>0){_1ee=_1ee+" newmessage";}_1b1.getEl("tList-"+_1eb).dom.className=_1ee;}if(_1ed){_1b1.removeChildNodes("topicUnreadCount-"+_1eb);if(_1ec>0){_1ed.dom.appendChild(document.createTextNode(" ("+_1ec+")"));}}},_clearAllWatchedTopics:function(){var _1ef=_1b1.getEl("topicList");if(_1ef==null){return;}var ul=_1ef.select("ul").elements[0];var _1f1=_1b1.getEl(ul).select("li").elements;Ext.each(_1f1,function(_1f2,_1f3,list){var a=_1b1.getEl(_1f2).select("a").elements[0];var sp=new Array();sp=a.id.split("tList-");_1b5.setContextTopicId(sp[1]);_1b5.toggleWatchedStar(false);});},_onGroupWatchedChanged:function(_1f7){_1b0._clearAllWatchedTopics();},_onTopicWatchedChanged:function(_1f8){_1b5.setContextTopicId(tangler.info.Session.getTopicId());if(!_1b3.getGroupWatched()||!_1b3.getGroupSubscribed()){_1b5.toggleWatchedStar(_1b3.getTopicWatched());}else{_1b5.toggleWatchedStar(false);}},_scrollToTopic:function(_1f9){tangler.util.Helper.scrollElementTo("tList-"+_1f9,"topicList");}});return new _1c1();}();
tangler.manager.HomePage=function(){var _5a9=tangler.util.Options;var _5aa=tangler.manager.TopicList;var _5ab=tangler.util.Element;var _5ac=tangler.manager.Comms;var _5ad=tangler.info.Page;var _5ae=tangler.util.Helper;var _5af;var _5b0;var _5b1;var _5b2;var _5b3=false;var _5b4=false;var _5b5=null;var _5b6=0;var _5b7=new Ext.Template("X");function renderNewTopics(){var _5b8="recentConversations";var el=createNewTopicsSection(_5b8,"New Conversations");var _5ba=_5ab.getEl(_5b2);if(!_5ba){return;}Ext.get(el).insertAfter(_5ba);_5aa.init({topicList:_5b8+"List"});_5b4=true;}function createNewTopicsSection(_5bb,_5bc){var _5bd=_5ab.createNode("div",{attributes:[["id","loading-dlg"],["class","inline-dlg"]],children:[_5ab.createNode("div",{attributes:[["id","loader-element"]]})]});var div=_5ab.createNode("div",{attributes:[["id",_5bb],["title",_5bc]],children:[_5bd,_5ab.createNode("ul",{attributes:[["id",_5bb+"List"],["class","listBoxList"]]})]});div.className="tabbertab tabbertabhide";return div;}function onNewTopicsClicked(){if(!_5b3){if(_5b5==null){_5b5=_5ab.getEl("loading-dlg");}_5ab.getEl("loader-element").appendChild(_5ab.createLoadingElement());_5aa.loadRecentTopics({callback:tangler.manager.HomePage.afterTopicsLoaded});_5ac.longHeartbeat();_5b3=true;}}function getId(id,_5c0){var sp=new Array();sp=id.split(_5c0+"-");return sp[1];}function onTopicClicked(_5c2){return function(){tangler.manager.TopicList.onTopicSelected(_5c2);};}return {initHomeLayout:function(_5c3){_5ad.setView(tangler.info.ViewType.Welcome);Ext.QuickTips.init();_5b2=_5a9.getOptionalArgument("insertAfter",_5c3,"theBuzz");_5b6=tangler.util.Options.getOptionalArgument("topicCount",_5c3,0);_5af=_5a9.getOptionalArgument("initialTabView",_5c3,"newtopics");if(_5af=="newtopics"){activate="New Conversations";}if(_5af=="buzz"){activate="The Buzz";}if(_5af=="friends"){activate="My Friends";}if(_5af=="groupies"){activate="My Groupies";}tangler.manager.HomePage.observeCategoryClicks();},showNewTopics:function(){if(!_5b4){renderNewTopics();}onNewTopicsClicked();},afterTopicsLoaded:function(){_5b5.remove();ellipsiseTopics();},observeCategoryClicks:function(){var el=Ext.get("categoryTogglerLink");el.on("click",tangler.manager.HomePage.toggleCategoryList);Ext.each(Ext.get("categoryList").select("a.topicCatetoryLink").elements,function(_5c5){Ext.get(_5c5).on("click",function(){var _5c6=this.dom.innerText||this.dom.textContent;tangler.manager.HomePage.categoryClicked(_5c6);});});},toggleCategoryList:function(){var elT=Ext.get("categoryList");var to=(elT.getHeight()>0)?0:176;tangler.manager.HomePage.animateCategoryList("categoryToggler",elT,to);},animateCategoryList:function(_5c9,el,toHt){_5c9=Ext.get(_5c9);el=Ext.get(el);var ht=el.getHeight();if(ht==toHt){return;}_5c9.removeClass("expand");_5c9.addClass("collapse");el.animate({height:{to:toHt,from:ht}},0.5,null,"easeOut","run");if(toHt>0){_5c9.removeClass("expand");_5c9.addClass("collapse");Ext.get("categoryLabel").applyStyles({color:"#2C2C2C"});}else{_5c9.removeClass("collapse");_5c9.addClass("expand");Ext.get("categoryMainTab").removeClass("active");Ext.get("categoryList").select("a").removeClass("selected");Ext.get("categoryLabel").applyStyles({color:"#9E9E9E"});}},categoryClicked:function(_5cd){Ext.get("categoryMainTab").addClass("active");tangler.manager.HomePage.animateCategoryList("categoryToggler","categoryList",176);Ext.get("categoryList").select("a").removeClass("selected");Ext.get("categoryList").select("a[title*="+_5cd+"]").addClass("selected");DWRTopicHandler.getTopicsByCategory(null,_5cd,{callback:tangler.manager.HomePage.listTopicsInCategory});},listTopicsInCategory:function(_5ce){Ext.get("categoriesList").dom.innerHTML="";Ext.get("categories").applyStyles({display:"block"});tabber.tabHideAll();scroller.tabberClicked();tangler.manager.Conversations.categoryConversationsFetched(_5ce);},onTabInit:function(){},onTabClicked:function(_5cf){_5cf.getActiveTabIndex();}};}();
tangler.manager.Conversations=function(){var _210=null;var _211=tangler.util.Element;var _212=tangler.util.Options;var _213=false;var _214="yyyy-MM-dd HH:mm:ss";var _215=new Ext.Template("<div id=\"ft-{topicGId}\" class=\"listBox\">","\t<div class=\"listBoxDetails\">","\t\t<div class=\"listBoxSubDetails\">","\t\t\t<div class=\"listBoxSubDetailTitle ellipsis ellipsisTopic\">","\t\t\t\t<a class=\"ellipsis listTopicName ellipsisTopic\" href=\"/conversation/{topicGId}\">{topicName}</a>","\t\t\t</div>","\t\t\t<div class=\"listBoxSubDetailSubTitle\">","\t\t\t  {topicSummary}","\t\t    </div>","\t    </div>","\t\t<a href=\"/conversation/{topicGId}\" class=\"topicView\">View</a>","\t</div>","   <span class=\"topicData\" style=\"visibility:hidden;display:none\">{topicData}</span>","\t<div class=\"listBoxClose\"/>","</div>");var _216=new Ext.Template("<div id=\"rt-{topicGId}\" class=\"listBox\">","       <div class=\"listBoxDetails\">","\t\t\t<div class=\"avatar\">","\t\t\t\t<a href=\"/user/{author}\">","\t\t\t\t\t<img src=\"{avatarUrl}\"/>","\t\t\t\t</a>","\t\t\t</div>","\t\t\t<div class=\"listBoxSubDetails\">","\t\t\t\t<div class=\"listBoxSubDetailTitle ellipsis ellipsisTopic\">","\t\t\t\t\t<a class=\"ellipsis listTopicName ellipsisTopic\" href=\"/conversation/{topicGId}\">{topicName}</a>","\t\t\t\t</div>","\t\t\t\t<div class=\"listBoxSubDetailSubTitle\">","\t\t\t\t\tBy:","\t\t\t\t\t<span>","\t\t\t\t\t\t<a class=\"ellipsis ellipsisScreename\" href=\"/user/{author}\">{author}</a>","\t\t\t\t\t</span>","\t\t\t\t\t- {createdOn} ago"," \t\t\t\t\tin <span><a href=\"javascript:void(0);\" onclick=\"tangler.manager.HomePage.categoryClicked('{categoryName}');\" class=\"topicCatetoryLink\" title=\"{categoryName}\">{categoryName}</a></span>","\t\t\t\t</div>","\t\t\t</div>","\t\t\t<a href=\"/conversation/{topicGId}\" class=\"topicView\">View</a>","\t\t</div>","\t\t<span style=\"visibility: hidden; display: none;\" class=\"topicData\">{topicCreateDate}</span>","\t\t<div class=\"listBoxClose\"/>","</div>");_215.compile();_216.compile();var _217=function(){_217.superclass.constructor.call(this);_210=this;};Ext.extend(_217,Ext.util.Observable,{newConversationsFetched:function(_218,_219){for(var i=0;i<_218.length;i++){var _21b=_218[i].topicDetail.globalId;var _21c=tangler.util.Avatar.getAvatarUrl(_218[i].topicDetail.author.avatar,{height:36,width:36,avatarType:"user"});var _21d=tangler.util.Helper.replaceEscapeHtml(_218[i].topicDetail.name);var _21e=_218[i].topicDetail.author.screenName;var _21f=tangler.util.formatter.showAbstractTime(_218[i].topicDetail.created);var _220=formatDate(_218[i].topicDetail.created,_214);var _221=_218[i].topicDetail.categoryName;var li=tangler.util.Element.createNode("li");_216.append(li,{topicGId:_21b,avatarUrl:_21c,topicName:_21d,author:_21e,createdOn:_21f,categoryName:_221,topicCreateDate:_220});tangler.util.Element.getEl("recentConversationList").dom.appendChild(li);}document.getElementById("scrollStatusMsg").innerHTML="";_219.checkForNewEntries();_219.checkAndDisable();},newConversationsFetchedError:function(data){document.getElementById("scrollStatusMsg").innerHTML="";},myConversationsFetched:function(_224,_225){var _226=_224.list;for(var i=0;i<_226.length;i++){var _228=_226[i].topicDetail.globalId;var _229=tangler.util.Helper.replaceEscapeHtml(_226[i].topicDetail.name);var _224="";if(_226[i].totalMessages==0){_224="No messages posted";}else{_224="Last msg: "+"<span>"+tangler.util.formatter.showAbstractTime(_226[i].lastMessagePosted)+"</span>"+" - Total msgs: "+"<span>"+_226[i].totalMessages+"</span>"+" - Contributors: "+"<span>"+_226[i].contributors+"</span>";}var _22a=formatDate(_226[i].topicDetail.created,_214);var _22b=_226[i].topicDetail.author.screenName;var _22c=tangler.util.formatter.showAbstractTime(_226[i].topicDetail.created);var _22d=formatDate(_226[i].topicDetail.created,_214);var li=tangler.util.Element.createNode("li");_215.append(li,{topicGId:_228,topicName:_229,topicSummary:_224,topicData:_22d});tangler.util.Element.getEl("conversationList").dom.appendChild(li);}document.getElementById("scrollStatusMsg").innerHTML="";_225.checkForNewEntries();_225.checkAndDisable();},myConversationsFetchedError:function(data){document.getElementById("scrollStatusMsg").innerHTML="";},categoryConversationsFetched:function(_230,_231){for(var i=0;i<_230.length;i++){var _233=_230[i].topicDetail.globalId;var _234=tangler.util.Avatar.getAvatarUrl(_230[i].topicDetail.author.avatar,{height:36,width:36,avatarType:"user"});var _235=tangler.util.Helper.replaceEscapeHtml(_230[i].topicDetail.name);var _236=_230[i].topicDetail.author.screenName;var _237=tangler.util.formatter.showAbstractTime(_230[i].topicDetail.created);var _238=_230[i].topicDetail.categoryName;var li=tangler.util.Element.createNode("li");var _23a=formatDate(_230[i].topicDetail.created,_214);_216.append(li,{topicGId:_233,avatarUrl:_234,topicName:_235,author:_236,createdOn:_237,categoryName:_238,topicCreateDate:_23a});Ext.get(li).applyStyles({"margin-bottom":"12px"});tangler.util.Element.getEl("categoriesList").dom.appendChild(li);}document.getElementById("scrollStatusMsg").innerHTML="";var _23b=_231||scroller;if(_23b){_23b.checkForNewEntries();_23b.checkAndDisable();}},categoryConversationsFetchedError:function(data){document.getElementById("scrollStatusMsg").innerHTML="";},fetchContents:function(_23d,_23e){var _23f=_23e.tabber.getActiveTabName();var _240=_23e.tabber.getActiveTab()||"categories";var _241=Ext.get(_240).select("span.topicData").elements;var _242=new Date();if(_241.length>0){var _243=_241[_241.length-1].innerHTML;_242=new Date(getDateFromFormat(_243,_214));}if(_23f=="Conversations"){document.getElementById("scrollStatusMsg").innerHTML="fetching more topics...";DWRUserHandler.getUserConversationsBefore(_23d,_242,{callback:function(_244){_210.myConversationsFetched(_244,_23e);},errorHandler:_210.myConversationsFetchedError});}else{if(_23f=="New Conversations"){document.getElementById("scrollStatusMsg").innerHTML="fetching more topics...";DWRTopicHandler.getRecentTopicsBucket(_242,{callback:function(_245){_210.newConversationsFetched(_245,_23e);},errorHandler:_210.newConversationsFetchedError});}else{if(!_23f){document.getElementById("scrollStatusMsg").innerHTML="fetching more topics...";var _246=Ext.get("categoriesList").select("a.topicCatetoryLink").elements[0];var _247=_246.innerText||_246.textContent;DWRTopicHandler.getTopicsByCategory(_242,_247,{callback:function(_248){_210.categoryConversationsFetched(_248,_23e);},errorHandler:_210.categoryConversationsFetchedError});}}}}});return new _217();}();
function hookEvent(element, eventName, callback)
{
  if(typeof(element) == "string")
    element = document.getElementById(element);
  if(element == null)
    return;
  if(element.addEventListener)
  {
    element.addEventListener(eventName, callback, false);
  }
  else if(element.attachEvent)
    element.attachEvent("on" + eventName, callback);
}

function unhookEvent(element, eventName, callback)
{
  if(typeof(element) == "string")
    element = document.getElementById(element);
  if(element == null)
    return;
  if(element.removeEventListener)
    element.removeEventListener(eventName, callback, false);
  else if(element.detachEvent)
    element.detachEvent("on" + eventName, callback);
}

function getEventTarget(e)
{
  e = e ? e : window.event;
  return e.target ? e.target : e.srcElement;
}

function cancelEvent(e)
{
  e = e ? e : window.event;
  if(e.stopPropagation)
    e.stopPropagation();
  if(e.preventDefault)
    e.preventDefault();
  e.cancelBubble = true;
  e.cancel = true;
  e.returnValue = false;
  return false;
}

function SpinControlAcceleration(increment, milliseconds)
{
  increment = parseFloat(increment);
  if(isNaN(increment) || increment < 0)
    increment = 0;
  
  milliseconds = parseInt(milliseconds);
  if(isNaN(milliseconds) || milliseconds < 0)
    milliseconds = 0;
    
  this.GetIncrement = function()
  { return increment; }
  
  this.GetMilliseconds = function()
  { return milliseconds; }    
}

function SpinControlAccelerationCollection()
{
  var _array = new Array();
  
  this.GetCount = function()
  { return _array.length; }
  
  this.GetIndex = function(index)
  {
    if(index < 0 || index >= _array.length)
      return null;
    
    return _array[index];
  }
  
  this.RemoveIndex = function(index)
  {
    if(index < 0 || index >= _array.length)
      return;
     
    newArray = new Array(); 
    for(var i=0; i<_array.length; i++)
    {
      if(i == index)
        continue;
      newArray.push(_array[i]);
    }
    _array = newArray;
  }
  
  this.Clear = function()
  {
    _array = new Array();
  }
  
  this.Add = function(spa)
  {
    if(spa.constructor != SpinControlAcceleration)
      return;
      
    if(_array.length == 0)
    {
      _array.push(spa);
      return;
    }
    
    var newSec = spa.GetMilliseconds();
    if(newSec > _array[_array.length-1].GetMilliseconds())
    { 
      _array.push(spa);
      return;
    }
    
    var added = false;
    var newArray = new Array();    
    var indexSec;
    for(var i=0; i<_array.length; i++)
    {
      if(added)
      {
        newArray.push(_array[i]);
      }
      else 
      {
        indexSec = _array[i].GetMilliseconds();
        if(indexSec < newSec)
        {
          newArray.push(_array[i]);        
        }
        else if(indexSec == newSec)
        {
          newArray.push(spa);
          added = true;
        }
        else
        {
          newArray.push(_array[i]);
          newArray.push(spa);
          added = true;
        }
      }
    }
    _array = newArray;
    return;     
  }
}

function SpinControl()
{
  var _this = this;
  
  var _accelerationCollection = new SpinControlAccelerationCollection();
  var _callbackArray = new Array();
  var _currentValue = 1;
  var _maximumVal = 100;
  var _minimumVal = 0;
  var _increment = 1;
  var _width = 50;
  
  var _running = 0;
  var _interval = -1;  
  var _timeStart = 0;
  
  var _bodyEventHooked = false;
  
  var _container = document.createElement("DIV");
  _container.className = 'spinContainer';
  
  var _leftEdge = document.createElement("DIV");
  _leftEdge.className = 'spinLeftRightEdge';
  _leftEdge.style.left = '0px';
  
  var _bottomEdge = document.createElement("DIV");
  _bottomEdge.className = 'spinTopBottomEdge';
  _bottomEdge.style.top = '19px';
  
  var _topEdge = document.createElement("DIV");
  _topEdge.className = 'spinTopBottomEdge';
  _topEdge.style.top = '0px';
  
  var _rightEdge = document.createElement("DIV");
  _rightEdge.className = 'spinLeftRightEdge';
  _rightEdge.style.right = '0px';
  
  var _textBox = document.createElement("INPUT");
  _textBox.type = 'hidden';
  _textBox.className = 'spinInput';
  _textBox.value = _currentValue;
  
  var _upButton = document.createElement("DIV");
  _upButton.className = 'spinUpBtn';
  
  var _downButton = document.createElement("DIV");
  _downButton.className = 'spinDownBtn';
  
  /*
   * Because IE 6 and lower don't support the transparent png background 
   * mask that we use for the buttons.
   * So we use a regular old gif instead.
   * This means that, sadly, the button coloring does not work in IE6 and lower.
   */
  var canChangeBtnColors = true;
  if(document.body.filters)
  {
    var arVersion = navigator.appVersion.split("MSIE");
    var version = parseFloat(arVersion[1]);
    if(version < 7)
    {
      canChangeBtnColors = false;
      _downButton.style.backgroundImage = 'url(spin_control_buttons.gif)';
      _upButton.style.backgroundImage = 'url(spin_control_buttons.gif)';
      _downButton.style.backgroundColor = '#FFFFFF';
      _upButton.style.backgroundColor = '#FFFFFF';
    }
  }
  
  _container.appendChild(_leftEdge);
  _container.appendChild(_bottomEdge);
  _container.appendChild(_topEdge);
  _container.appendChild(_rightEdge);
  _container.appendChild(_textBox);
  _container.appendChild(_upButton);
  _container.appendChild(_downButton);  
  
  function Run()
  {
    if(_running == 0)
      return;
    
    var elapsed = new Date().getTime() - _timeStart;
    var inc = _increment;
    
    if(_accelerationCollection.GetCount() != 0)
    {
      inc = 0;
      for(var i = 0; i<_accelerationCollection.GetCount(); i++)
      {
        if(elapsed < _accelerationCollection.GetIndex(i).GetMilliseconds())
          break;
        
        inc = _accelerationCollection.GetIndex(i).GetIncrement();
      }    
    }
    else if(elapsed < 600)
    {
      return;
    }
    
    DoChange(inc);
  }
  
  function CancelRunning()
  {
    _running = 0;
    if(_interval != -1)
    {
      clearInterval(_interval);
      _interval = -1;
    }
  }
  
  function DoChange(inc)
  {
    var newVal = _currentValue + inc * _running;
    UpdateCurrentValue(newVal);
  }
  
  function StartRunning(newState)
  {
    if(_running != 0)
      CancelRunning();

    _running = newState;
  
    DoChange(_increment);
    
    _timeStart = new Date().getTime();
    _interval = setInterval(Run, 150);
  }
  
  function UpdateCurrentValue(newVal)
  {
    /*if(newVal <_minimumVal)
      newVal = _minimumVal;
    if(newVal > _maximumVal)
      newVal = _maximumVal;*/
  
    newVal = Math.round(1000*newVal)/1000;
    
    if(newVal < _textBox.value)
    	scroller.scrollDown();
    else
    	scroller.scrollUp();
    
    _textBox.value = newVal;
    if(newVal == _currentValue)
      return;
    
    _currentValue = newVal;
    
    for(var i=0; i<_callbackArray.length; i++)
      _callbackArray[i](_this, _currentValue);
  }
  
  function UpPress(e)
  {
    _upButton.className = 'spinUpBtnPress';
    _downButton.className = 'spinDownBtn';
    StartRunning(1);
    _textBox.focus();
    return cancelEvent(e);
  }
  
  function DownPress(e)
  {
    _upButton.className = 'spinUpBtn';
    _downButton.className = 'spinDownBtnPress';
    StartRunning(-1);
    _textBox.focus();
    return cancelEvent(e);
  }
 
  function UpHover(e)
  {
    if(!_bodyEventHooked)
      hookEvent(document.body, 'mouseover', ClearBtns);
      
    _upButton.className = 'spinUpBtnHover';
    _downButton.className = 'spinDownBtn';
    CancelRunning();
    return cancelEvent(e);
  }
  
  function DownHover(e)
  {
    if(!_bodyEventHooked)
      hookEvent(document.body, 'mouseover', ClearBtns);
      
    _upButton.className = 'spinUpBtn';
    _downButton.className = 'spinDownBtnHover';
    CancelRunning();
    return cancelEvent(e);
  }
  
  function ClearBtns(e)
  {
    var target = getEventTarget(e);
    if(target == _upButton || target == _downButton)
      return;
    _upButton.className = 'spinUpBtn';
    _downButton.className = 'spinDownBtn';
    CancelRunning();
    
    if(_bodyEventHooked)
    {
      unhookEvent(document.body, 'mouseover', ClearBtns);
      _bodyEventHooked = false;
    }
    return cancelEvent(e);
  }
  
  function BoxChange()
  {
    var val = parseFloat(_textBox.value);
    if(isNaN(val))
      val = _currentValue;
    
    UpdateCurrentValue(val);
  }
  
  function MouseWheel(e)
  {
    e = e ? e : window.event;
    var movement = e.detail ? e.detail / -3 : e.wheelDelta/120;
    UpdateCurrentValue(_currentValue + _increment * movement);
    return cancelEvent(e);
  }
  
  function TextFocused(e)
  {
    hookEvent(window, 'DOMMouseScroll', MouseWheel);
    hookEvent(document, 'mousewheel', MouseWheel);
    return cancelEvent(e);
  }
  
  function TextBlur(e)
  {
    unhookEvent(window, 'DOMMouseScroll', MouseWheel);
    unhookEvent(document, 'mousewheel', MouseWheel);
    return cancelEvent(e);
  }
  
  this.StartListening = function()
  {
    hookEvent(document.getElementById('scrollSet'), 'mouseover', TextFocused);
    document.getElementById('scrollSet').onmouseout = function(){
    	unhookEvent(window, 'DOMMouseScroll', MouseWheel);
    	unhookEvent(document, 'mousewheel', MouseWheel);
    }
  }
   
  this.StopListening = function()
  {
    unhookEvent(_upButton, 'mousedown', UpPress); 
    unhookEvent(_upButton, 'mouseup', UpHover);
    unhookEvent(_upButton, 'mouseover', UpHover);
    
    unhookEvent(_downButton, 'mousedown', DownPress); 
    unhookEvent(_downButton, 'mouseup', DownHover);
    unhookEvent(_downButton, 'mouseover', DownHover);
    
    unhookEvent(_textBox, 'change', BoxChange);
    unhookEvent(_textBox, 'focus', TextFocused);
    unhookEvent(_textBox, 'blur', TextBlur);
    
    
    if(_bodyEventHooked)
    {
      unhookEvent(document.body, 'mouseover', ClearBtns);
      _bodyEventHooked = false;
    }
  }
  
  this.SetMaxValue = function(value)
  {
     value = parseFloat(value);
     if(isNaN(value))
       value = 1;
     _maximumVal = value;
       
    UpdateCurrentValue(_currentValue);
  }
   
  this.SetMinValue = function(value)
  {
     value = parseFloat(value);
     if(isNaN(value))
       value = 0;
     _minimumVal = value;
     
    UpdateCurrentValue(_currentValue);
  }
  
  this.SetCurrentValue = function(value)
  {
    value = parseFloat(value);
    if(isNaN(value))
      value = 0;
     
    UpdateCurrentValue(value);
  }
  
  this.SetWidth = function(value)
  {
    value = parseInt(value);
    if(isNaN(value) || value < 25)
      value = 25;
      
    _width = value;
    
    _container.style.width = _width + 'px';
    _bottomEdge.style.width = (_width - 1) + 'px';
    _topEdge.style.width = (_width - 1) + 'px';
    _textBox.style.width = (_width - 20) + 'px';  
  }
  
  this.SetIncrement = function(value)
  {
    value = parseFloat(value);
    if(isNaN(value))
      value = 0;
    if(value < 0)
      value = -value;
    
    _increment = value;
  }
  
  this.SetBackgroundColor = function(color)
  {
    _container.style.backgroundColor = color;
    _textBox.style.backgroundColor = color;
  }
  
  this.SetButtonColor = function(color)
  {
    if(!canChangeBtnColors)
      return;
      
    _upButton.style.backgroundColor = color;
    _downButton.style.backgroundColor = color;
  }
  
  this.SetFontColor = function(color)
  {
    _textBox.style.color = color;
  }
  
  this.SetBorderColor = function(color)
  {
    _topEdge.style.backgroundColor = color;
    _bottomEdge.style.backgroundColor = color;
    _leftEdge.style.backgroundColor = color;
    _rightEdge.style.backgroundColor = color;
  }
  
  this.AttachValueChangedListener = function(listener)
  {
    for(var i=0; i<_callbackArray.length; i++)
      if(_callbackArray[i] == listener)
        return;
        
    _callbackArray.push(listener);  
  }
  
  this.DetachValueChangedListener = function(listener)
  {
    newArray = new Array();
    for(var i=0; i<_callbackArray.length; i++)
      if(_callbackArray[i] != listener)
        newArray.push(_callbackArray[i]);
        
    _callbackArray = newArray;  
  }

  this.GetContainer = function()
  { return _container; }

  this.GetCurrentValue = function()
  { return _currentValue; }

  this.GetMaxValue = function()
  { return _maximumVal; }
   
  this.GetMinValue = function()
  { return _minimumVal; }
   
  this.GetWidth = function()
  { return _width; }
  
  this.GetIncrement = function()
  { return _increment; }
  
  this.GetAccelerationCollection = function()
  { return _accelerationCollection; }
  
  _this.SetWidth(_width);
}

