if(typeof Effect=='undefined')
throw("tabs.js requires including script.aculo.us' effects.js library!");var tabset=Class.create();tabset.prototype={tabs:[],panels:[],showPanel:null,currentPanel:null,initialize:function(container,options){this.options=Object.extend({classNames:{tab:'tab',panel:'panel',tabActive:'selected'},ids:{tab:'tab_',panel:'panel_'},onEvent:'click',effects:true},options||{});container=$(container);this.tabs=container.select('.'+this.options.classNames.tab);this.tabs.each(function(tab){Event.observe(tab,this.options.onEvent,this.activate.bind(this,tab),false);}.bind(this));this.panels=container.select('.'+this.options.classNames.panel);this.panels.invoke('hide');},activate:function(tab){var tabName=tab.id.replace(this.options.ids.tab,'');this.currentPanel=this.options.ids.panel+tabName;if(this.showPanel==this.currentPanel){return false;}
if(this.showPanel){if(this.options.effects){new Effect.Fade(this.showPanel,{queue:'front'});}else{$(this.currentPanel).hide();}}
if(this.options.effects){new Effect.Appear(this.currentPanel,{queue:'end'});}else{$(this.showPanel).show();}
this.tabs.invoke('removeClassName',this.options.classNames.tabActive);tab.addClassName(this.options.classNames.tabActive);this.showPanel=this.currentPanel;},getHash:function(){var hash=window.location.hash;return hash.substring(1);},autoActivate:function(tab){var canDoAuto=false;var hash=this.getHash();if(hash){var autoTab=$(this.options.ids.tab+hash);if(autoTab){this.activate(autoTab);canDoAuto=true;}}
if(!canDoAuto&&tab){this.activate(tab);}}}
