var MorphTabs=new Class({Implements:[Options,Chain],version:"1.3",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}});
