Object.extend(sjcl.widget,{TabControl:function(){this.cssClass="TabControl";}});sjcl.widget.TabControl.extend({attach:function(target){this.target=target;this.tabs=[];var col=sjcl.dom.getElementsByAttribute(target,"TabContainer");for(var i=0,n=col.length;i<n;i++){var td=col[i];sjcl.event.addMouseHoverEvents(td,this._onTabOver.bindAsEvent(this),this._onTabOut.bindAsEvent(this));sjcl.event.add(td,"click",this._onTabClick.bindAsEvent(this));td.frame=$(this._makeFrameId(this._getTabNameById(td.id)));this.tabs.push(td);}var tab=this.selectedTab?this.selectedTab:(this.tabs.length>0?this._getTabNameById(this.tabs[0].id):"");if(tab)this.selectTab(tab);},selectTab:function(name){if(!this.target){this.selectedTab=name;return;}if(typeof name=="number")name=this._getTabNameById(this.tabs[name].id);for(var i=0;i<this.tabs.length;i++){this.tabs[i].className="Tab Normal";this.tabs[i].frame.style.display="none";}var tab=$(this._makeTabId(name));var frame=$(this._makeFrameId(name));tab.className="Tab Active";frame.style.display="block";this.selectedTab=name;if(this.onSelectionChange)this.onSelectionChange(name);},getTabNameByFrameId:function(id){return id.substring(3);},getTabFrame:function(name){return $(this._makeFrameId(name));},_makeTabId:function(name){return"tct"+name;},_makeFrameId:function(name){return"tcf"+name;},_getNameById:function(id){return id.substring(2);},_getTabNameById:function(id){return id.substring(3);},_onTabOver:function(evt){var event=new sjcl.Event(evt);var td=event.findByClassName("Tab Normal");if(td){var filter=sjcl.dom.getFilter(td,"Fade");filter&&filter.apply();td.className="Tab Hover";filter&&filter.play();}},_onTabOut:function(evt){var event=new sjcl.Event(evt);var td=event.findByClassName("Tab Hover");if(td){var filter=sjcl.dom.getFilter(td,"Fade");filter&&filter.apply();td.className="Tab Normal";filter&&filter.play();}},_onTabClick:function(evt){var event=new sjcl.Event(evt);var td=event.findByClassName("Tab Hover");if(td)this.selectTab(this._getTabNameById(td.id));}});
