TabSetTransitions={expander:function(n,t){n=n||{},t=t||n;var i=function(){};return i.prototype={init:function(n){this.tabSet=n},changeTab:function(i,r,u,f){i?u?u.set("tween",$extend(t,{onComplete:function(){this.activeContent=f,f&&f.fade("in").set("tween",$extend(n,{onComplete:function(){f.setStyle("height","auto")}})).tween("height",f.getScrollSize().y),this.fireEvent("change",[r,f])}.bind(this.tabSet)})).setStyles({height:u.getScrollSize().y}).fade("out").tween("height",0):(this.tabSet.fireEvent("change",[r,f]),this.tabSet.activeContent=f.fade("in").set("tween",$extend(n,{onComplete:$empty})).tween("height",f.getScrollSize().y)):(this.tabSet.fireEvent("change",[r,f]),this.tabSet.activeContent=f,f.setStyle("height","auto"))}},new i},dualExpander:function(n,t){n=n||{},t=t||n;var i=function(){};return i.prototype={init:function(n){this.tabSet=n},changeTab:function(i,r,u,f){i?(u&&u.set("tween",t).setStyles({height:u.getScrollSize().y}).fade("out").tween("height",0),this.tabSet.fireEvent("change",[r,f]),this.tabSet.activeContent=f,f&&f.fade("in").set("tween",$extend(n,{onComplete:function(){this.tabSet.options.scrollIntoView&&Utilities.scrollIntoView(this.tabSet.options.scrollIntoView=="tab"?[r,f]:f,this.tabSet.options.scrollIntoViewOptions)}.bind(this)})).tween("height",f.getScrollSize().y)):(this.tabSet.fireEvent("change",[r,f]),this.tabSet.activeContent=f,f.setStyle("height","auto"))}},new i},scroller:function(n,t){t=t||n,tween=null;var i=function(){};return i.prototype={init:function(n){this.tabSet=n,this.$monitorSize=this.monitorSize.periodical(50,this)},changeTab:function(t,i,r,u){this.tabSet.fireEvent("change",[i,u]),this.tabSet.activeContent=u;var f=u.getParent(),e=-u.getPosition(f).x;t?f.set("tween",$extend(n,{onComplete:function(){this.tabSet.options.scrollIntoView&&Utilities.scrollIntoView(this.tabSet.options.scrollIntoView=="tab"?[i,u]:u,this.tabSet.options.scrollIntoViewOptions)}.bind(this)})).tween("margin-left",e):(this.tabSet.activeContent=u,f.setStyle("margin-left",e).setStyle("height",u.getScrollSize().y))},monitorSize:function(){var n,i;if(!this.tabSet.activeContent)return;n=this.tabSet.activeContent.getScrollSize().y,this.oldSize!=n&&(this.oldSize=n,i=this.tabSet.activeContent.getParent(),tween&&tween.element==i?tween.cancel():tween=new Fx.Tween(i,t),tween.start("height",n))}},new i}};var TabSet=new Class({options:{activeClass:"active",cookieName:"",cookieOptions:{duration:30,path:"/"},transition:TabSetTransitions.expander({duration:600},{duration:600}),startAnimated:!1,startIndex:0,allowClose:!1,scrollIntoView:null,scrollIntoViewOptions:{duration:1e3}},Implements:[Options,Events],initialize:function(n,t,i){this.setOptions(i),this.tabs=$$(n),this.contents=$$(t);var r=Cookie.read(this.options.cookieName)||this.options.startIndex;r<this.tabs.length||(r=this.tabs.length-1),this.tabs.each(function(n,t){this._processItem(n,this.contents[t],t)},this),this.options.transition.init(this),r<0||this._activateTab(this.tabs[r].addClass(this.options.activeClass),this.contents[r],this.options.startAnimated),this.fireEvent("load")},gotoTab:function(n,t){$type(n)=="integer"&&(n=this.tabs[n]),n!=this.activeTab?this._activateTab(n,n.retrieve("TabSet:Content"),t):this.options.allowClose&&this._activateTab(null,null,t),t&&this.options.cookieName&&Cookie.write(this.options.cookieName,this.tabs.indexOf(n),this.options.cookieOptions)},_processItem:function(n,t){n.store("TabSet:Content",t),n.store("TabSet",this),t.store("TabSet:Tab",n),t.store("TabSet",this),n.addEvent("click",function(t){t&&t.stop(),this.gotoTab(n,!0)}.bind(this))},_activateTab:function(n,t,i){this.activeTab&&this.activeTab.removeClass(this.options.activeClass),this.activeContent&&this.activeContent.removeClass(this.options.activeClass),this.activeTab=n,n&&n.addClass(this.options.activeClass),t&&t.addClass(this.options.activeClass),this.options.transition.changeTab(i,n,this.activeContent,t)}});TabSet.getTab=function(n){n=$$(n),n.length&&(n=n[0]);while(n){if(n.retrieve("TabSet:Content"))return n;var t=n.retrieve("TabSet:Tab");if(t)return t;n=n.getParent()}return n},TabSet.getTabSet=function(n){n=$$(n),n.length&&(n=n[0]);while(n){var t=n.retrieve("TabSet");if(t)return t;n=n.getParent()}return null},TabSet.gotoTab=function(n,t){var r=TabSet.getTabSet(n),i;if(!r)return;i=TabSet.getTab(n),i&&r.gotoTab(i,t)}
