// The Sliding Tabs mootools plugin is a creation of Jenna 'Blueberry' Fox!
// This isn't free software, so don't forget to give me a gift of some sort!
// some idea's include poetry, drawings, songs, doodads, whosits, fuzzy things,
// software licenses, and general free stuff. Contact me at http://creativepony.com/#contact
// and let me know where you're using Sliding Tabs!
// Documentation: http://creativepony.com/journal/scripts/sliding-tabs/
// version: 1.8 - Works with mootool v1.2.1 core
// Upgrade : Christophe Persoz - Ogoon media, www.ogoon.fr
// version: 1.9 - Add autoSlide options to SlidingTabs

var SlidingTabs=new Class({options:{startingSlide:false,activeButtonClass:"sel",activationEvent:"click",wrap:true,slideEffect:{duration:400,transition:Fx.Transitions.Quad.easeOut},minHeight:375,animateHeight:true,rightOversized:0,autoSlideDelay:4,autoSlide:false,autoSlideDirection:"next",autoShow:null,autoHide:null},current:null,buttons:false,outerSlidesBox:null,innerSlidesBox:null,panes:null,fx:null,heightFx:null,initialize:function(b,c,a){if(b){this.buttons=$(b).getChildren()}this.outerSlidesBox=$(c);this.innerSlidesBox=this.outerSlidesBox.getFirst();this.panes=this.innerSlidesBox.getChildren();this.setOptions(a);this.refreshStyles();this.fx=new Fx.Scroll(this.outerSlidesBox,this.options.slideEffect);this.heightFx=this.outerSlidesBox.set("height",this.options.slideEffect);this.current=this.options.startingSlide?this.panes.indexOf($(this.options.startingSlide)):0;if(this.buttons){this.buttons[this.current].addClass(this.options.activeButtonClass)}this.outerSlidesBox.setStyle("overflow","hidden");this.panes.each(function(e,d){e.setStyles({"float":"left",overflow:"hidden"})}.bind(this));this.innerSlidesBox.setStyle("float","left");if(this.options.startingSlide){this.fx.toElement(this.options.startingSlide)}if(this.buttons){this.buttons.each(function(d){d.addEvent(this.options.activationEvent,this.buttonEventHandler.bindWithEvent(this,d))}.bind(this))}if(this.options.animateHeight&&this.panes[this.current].offsetHeight>this.options.minHeight){this.heightFx.set(this.panes[this.current].offsetHeight)}else{this.heightFx.set(this.options.minHeight)}this.recalcWidths();this.autoSlider=(function(){if(this.options.autoSlide==true){this[this.options.autoSlideDirection]();this.options.autoSlide=true}}).periodical(this.options.autoSlideDelay*1000,this)},changeTo:function(b,a){this.refreshStyles();if($type(b)=="number"){b=this.panes[b-1]}if(!$defined(a)){a=true}var c={cancel:false,target:$(b),animateChange:a};this.fireEvent("change",c);if(c.cancel==true){return}if(this.buttons&&this.buttons[this.current]){this.buttons[this.current].removeClass(this.options.activeButtonClass)}this.current=this.panes.indexOf($(c.target));this.fx.cancel();if(c.animateChange){this.fx.toElement(c.target)}else{this.outerSlidesBox.scrollTo(this.current*this.outerSlidesBox.offsetWidth.toInt(),0)}var d=this.outerSlidesBox.getStyle("height");var d=this.outerSlidesBox.setStyle("height",d);if(this.options.animateHeight&&this.panes[this.current].offsetHeight>this.options.minHeight){this.heightFx.tween("height",this.panes[this.current].offsetHeight)}else{if(this.panes[this.current].offsetHeight<=this.options.minHeight){this.heightFx.tween("height",this.options.minHeight)}}if(this.buttons&&this.buttons[this.current]){this.buttons[this.current].addClass(this.options.activeButtonClass)}this.options.autoSlide=false},refreshStyles:function(){if(this.options.autoShow){if($$(this.options.autoShow).getStyle("display")!="block"){$$(this.options.autoShow).setStyle("display","block")}if($$(this.options.autoShow).getStyle("opacity")!=1){$$(this.options.autoShow).setStyle("opacity",1)}}if(this.options.autoHide){if($$(this.options.autoShow).getStyle("display")!="none"){$$(this.options.autoHide).setStyle("display","none")}if($$(this.options.autoShow).getStyle("opacity")!=0){$$(this.options.autoHide).setStyle("opacity",0)}}},buttonEventHandler:function(b,a){b.stop();if(b.target==this.buttons[this.current]){return}this.changeTo(this.panes[this.buttons.indexOf($(a))])},next:function(){var a=this.current+1;if(a==this.panes.length){if(this.options.wrap==true){a=0}else{return}}this.changeTo(this.panes[a])},previous:function(){var a=this.current-1;if(a<0){if(this.options.wrap==true){a=this.panes.length-1}else{return}}this.changeTo(this.panes[a])},recalcWidths:function(){this.panes.each(function(b,a){b.setStyle("width",this.outerSlidesBox.offsetWidth.toInt()-this.options.rightOversized+"px")}.bind(this));this.innerSlidesBox.setStyle("width",(this.outerSlidesBox.offsetWidth.toInt()*this.panes.length)+"px");if(this.current>0){this.fx.cancel();this.outerSlidesBox.scrollTo(this.current*this.outerSlidesBox.offsetWidth.toInt(),0)}},recalcHeight:function(){if(this.options.animateHeight){this.heightFx.tween("height",this.options.minHeight)}else{this.panes[this.current].set("height",this.options.minHeight)}}});SlidingTabs.implement(new Options,new Events);