var MorphTabs=new Class({Implements:[Options,Chain],version:"1.4",options:{width:"300px",height:"200px",changeTransition:{transition:"linear",duration:"long"},panelStartFx:"blind:left",panelEndFx:"blind:right",mouseOverClass:"over",activateOnLoad:"first",activateTabFunction:$empty,evalScripts:false,useAjax:false,ajaxUrl:"",ajaxOptions:{},ajaxLoadingText:"Loading...",slideShow:false,slideShowDelay:3},initialize:function(b,a){this.setOptions(a);this.el=$(b);this.elid=b;this.el.setStyles({height:this.options.height,width:this.options.width});this.titles=$$("#"+this.elid+" ul.morphtabs_title li");this.panelHeight=this.options.height.toInt()-(this.titles[0].getSize().y+4);this.panelWidth=this.el.getSize().x;this.panel=new Element("div",{id:"morphPanel","class":"morphtabs_panel",styles:{width:this.panelWidth+"px",height:this.panelHeight+"px"}}).inject(this.el.getFirst(),"after");this.panelWrapBorder=this.panel.getStyle("border-width").toInt()*2;this.panelWrap=new Element("div",{id:"morphPanelWrap","class":"morphtabs_panelwrap",styles:{height:(this.panelHeight+this.panelWrapBorder)+"px",width:(this.panelWidth+this.panelWrapBorder)+"px"}}).wraps(this.panel);this.panelTop=this.panelWrap.getStyle("top").toInt();if(isNaN(this.panelTop)){this.panelTop=0;}this.panelWrap.setStyle("top",(Browser.Engine.trident5)?(this.panelTop+4)+"px":this.panelTop+"px");this.attach(this.titles);if(this.options.activateOnLoad!="none"){this.firstRun=true;if(this.options.activateOnLoad=="first"){this.activate(this.titles[0]);}else{this.activate(this.options.activateOnLoad);}}if(this.options.slideShow){this.start();}},attach:function(a){$$(a).each(function(d){var g=d.retrieve("tab:enter",this.elementEnter.bindWithEvent(this,d));var c=d.retrieve("tab:leave",this.elementLeave.bindWithEvent(this,d));var b=d.retrieve("tab:click",this.elementClick.bindWithEvent(this,d));d.addEvents({mouseenter:g,mouseleave:c,click:b});var e=$(d.get("title"));d.store("panel:html",e.get("html"));d.store("panel:id",e.id);var f=$(d.get("title")).dispose();},this);return this;},detach:function(a){$$(a).each(function(b){b.removeEvent("mouseenter",b.retrieve("tab:enter")||$empty);b.removeEvent("mouseleave",b.retrieve("tab:leave")||$empty);b.removeEvent("mouseclick",b.retrieve("tab:click")||$empty);b.eliminate("tab:enter").eliminate("tab:leave").eliminate("tab:click").eliminate("panel:html").eliminate("panel:id");var c=b.dispose();});return this;},activate:function(b){if($type(b)=="string"){myTab=$$("#"+this.elid+" ul li").filter("[title="+b+"]")[0];b=myTab;}if($type(b)=="element"){var a=b.retrieve("panel:html");this.panel.id=b.retrieve("panel:id");this.titles.removeClass("active");b.addClass("active");this.activeTitle=b;this.panel.setStyle("overflow","hidden");if($type(this.options.changeTransition)=="object"&&!this.firstRun){this.getPanelFx(this.options.panelStartFx).chain(function(){this.fill(this.panel,a);this.getPanelFx(this.options.panelEndFx).chain(function(){this.options.activateTabFunction(this.panel.id);this.panel.setStyle("overflow","auto");this.panel.scrollTo(0,0);}.bind(this));}.bind(this));}else{if($type(this.options.changeTransition)=="object"&&this.firstRun){this.fill(this.panel,a);this.panel.store("flag","end");this.getPanelFx(this.options.panelEndFx).chain(function(){this.options.activateTabFunction(this.panel.id);this.panel.setStyle("overflow","auto");this.panel.scrollTo(0,0);}.bind(this));}else{this.fill(this.panel,a);this.options.activateTabFunction(this.panel.id);this.panel.setStyle("overflow","auto");this.panel.scrollTo(0,0);}}}},elementEnter:function(b,a){if(a!=this.activeTitle){a.addClass(this.options.mouseOverClass);}},elementLeave:function(b,a){if(a!=this.activeTitle){a.removeClass(this.options.mouseOverClass);}},elementClick:function(b,a){if(a!=this.activeTitle){a.removeClass(this.options.mouseOverClass);this.activate(a);}if(this.slideShow){this.setOptions(this.slideShow,false);this.clearChain();this.stop();this.panel.store("fxEffect:flag","show");}},fill:function(a,b){if(this.options.useAjax){this.getContent();}else{a.set("html",b);if(this.options.evalScripts){a.get("html").stripScripts(true);}}},getContent:function(){this.panel.set("html",this.options.ajaxLoadingText);var b={url:this.options.ajaxUrl+"?tab="+this.activeTitle.getProperty("title"),update:this.panel};this.options.ajaxOptions=$merge(this.options.ajaxOptions,b);var a=new Request.HTML(this.options.ajaxOptions);a.send();},addTab:function(d,b,c){var e=new Element("li",{title:d});e.appendText(b);this.titles.include(e);$$("#"+this.elid+" ul").adopt(e);var a=new Element("div",{id:d,"class":"mootabs_panel"});if(!this.options.useAjax){a.set("html",c);}this.el.adopt(a);this.attach(e);},removeTab:function(b){if(this.activeTitle.title==b){this.activate(this.titles[0]);}var a=$$("#"+this.elid+" ul li").filter("[title="+b+"]")[0];this.detach(a);},start:function(){this.slideShow=this.next.periodical(this.options.slideShowDelay*1000,this);},stop:function(){$clear(this.slideShow);},next:function(){var a=this.activeTitle.getNext();if(!a){a=this.titles[0];}this.activate(a);},previous:function(){var a=this.activeTitle.getPrevious();if(!a){a=this.titles[this.titles.length-1];}this.activate(a);},getPanelFx:function(b){this.flag=(this.firstRun)?this.panel.retrieve("fxEffect:flag","show"):this.panel.retrieve("fxEffect:flag");var a={"margin-top":[0,0],"margin-left":[0,0],width:[this.panelWidth,this.panelWidth],height:[this.panelHeight,this.panelHeight],opacity:[1,1]};fxEffect=this.panel.get("morph",this.options.changeTransition);switch(b){case"blind:up":if(this.flag=="hide"){a=fxEffect.start($merge(a,{height:[this.panelHeight,0]}));}else{a=fxEffect.start($merge(a,{"margin-top":[this.panelHeight,0],height:[0,this.panelHeight]}));}break;case"blind:down":if(this.flag=="hide"){a=fxEffect.start($merge(a,{"margin-top":[this.panelHeight],height:[0]}));}else{a=fxEffect.start($merge(a,{height:[0,this.panelHeight]}));}break;case"blind:left":if(this.flag=="hide"){a=fxEffect.start($merge(a,{width:[this.panelWidth,0]}));}else{a=fxEffect.start($merge(a,{"margin-left":[this.panelWidth,0],width:[0,this.panelWidth]}));}break;case"blind:right":if(this.flag=="hide"){a=fxEffect.start($merge(a,{"margin-left":[this.panelWidth],width:[0]}));}else{a=fxEffect.start($merge(a,{width:[0,this.panelWidth]}));}break;case"slide:up":if(this.flag=="hide"){a=fxEffect.start($merge(a,{"margin-top":[0,-this.panelHeight],width:[this.panelWidth],height:[this.panelHeight]}));}else{a=fxEffect.start($merge(a,{"margin-top":[this.panelHeight,0]}));}break;case"slide:down":if(this.flag=="hide"){a=fxEffect.start($merge(a,{"margin-top":[0,this.panelHeight],width:[this.panelWidth],height:[this.panelHeight]}));}else{a=fxEffect.start($merge(a,{"margin-top":[-this.panelHeight,0]}));}break;case"slide:left":if(this.flag=="hide"){a=fxEffect.start($merge(a,{"margin-left":[0,-this.panelWidth],width:[this.panelWidth],height:[this.panelHeight]}));}else{a=fxEffect.start($merge(a,{"margin-left":[this.panelWidth,0]}));}break;case"slide:right":if(this.flag=="hide"){a=fxEffect.start($merge(a,{"margin-left":[0,this.panelWidth],width:[this.panelWidth],height:[this.panelHeight]}));}else{a=fxEffect.start($merge(a,{"margin-left":[-this.panelWidth,0]}));}break;case"fade":if(this.flag=="hide"){a=fxEffect.start($merge(a,{opacity:[1,0]}));}break;case"appear":if(this.flag=="show"){a=fxEffect.start($merge(a,{opacity:[0,1]}));}break;}this.panel.store("fxEffect:flag",(this.flag=="hide")?"show":"hide");if(this.firstRun){this.firstRun=false;}return a;}});