function TabPanel(id,fade){this.id=id;this.obj=new dObj(id);this.obj.css.position='absolute';this.canFade=true;if(!fade||browser.isIE||this.obj.el.getElementsByTagName('object').length>0){this.canFade=false;}if(this.canFade){this.obj.setOpacity(0);}else{this.obj.hide();}}
TabPanel.prototype={
show:function(){if(this.canFade){this.obj.fadeTo(99,200);}else {this.obj.show();}},
hide:function(){if(this.canFade){this.obj.fadeTo(0,100);}else{this.obj.hide();}}
}
var TabActuators=new Array();
function TabActuator(linkEl,tabSystem,fade){this.i=TabActuators.length;linkEl.id=this.i;this.el=linkEl;this.panel=new TabPanel(linkEl.hash.substring(1),fade);this.tabSys=tabSystem;TabActuators[this.i]=this;}
TabActuator.prototype={
select:function(){this.panel.show();this.el.className+=' selected';},
deselect:function(){this.panel.hide();removeClass(this.el,'selected');},
setActive:function(){this.tabSys.setActive(this);}
}
var TabSystems=new Array();
function TabSystem(tabWrapID,panelWrapID,fade,defaultIndex){if(arguments.length<3) return;this.tabs=new Array();this.activeTab=null;var linkEls=document.getElementById(tabWrapID).getElementsByTagName('a');var activeIndex=0;for(var i=0;i<linkEls.length;i++){this.tabs[i]=new TabActuator(linkEls[i],this,fade);var tabEl=this.tabs[i].el;if(tabEl.className=='selected'){activeIndex=i;tabEl.className='';}eLib.addListener(tabEl,'click',TabSystem.tabListener,true);}this.panelWrap=document.getElementById(panelWrapID);this.panelWrap.style.paddingTop='.01em';this.setWrapperHeight();if(defaultIndex!=null&&defaultIndex!='') activeIndex=defaultIndex;var panelId=window.location.hash.substring(1);if(panelId&&panelId.length>0){for(i=0;i<this.tabs.length;i++){if(this.tabs[i].panel.id==panelId){activeIndex=i;break;}}}this.activeTab=this.tabs[activeIndex];this.activeTab.select();this.i=TabSystems.length;TabSystems[this.i]=this;}
TabSystem.prototype={
setActive:function(tab){if(tab==this.activeTab) return;this.activeTab.deselect();this.activeTab=tab;this.activeTab.select();},
setWrapperHeight:function(){var h=0;for(var i=0;i<this.tabs.length;i++){var tempH=this.tabs[i].panel.obj.el.offsetHeight;if(tempH>h){h=tempH;}}this.panelWrap.style.height=h + 'px';}
}
TabSystem.tabListener=function(e){TabActuators[eLib.getTarget(e).id].setActive();eLib.preventDefault(e);return false;}
TabSystem.resizeListener=function(e){for(var i=0;i<TabSystems.length;i++){TabSystems[i].setWrapperHeight();}}
eLib.addListener(window,'resize',TabSystem.resizeListener,true);

