/*
# Shaper Tab- Tab Module for joomla by JoomShaper.com
# author    JoomShaper http://www.joomshaper.com
# copyright Copyright (C) 2010 JoomShaper.com. All Rights Reserved.
# @license - Copyrighted Commercial Software
*/
var sptabs=new Class({version:"0.9.01",options:{className:"sptabs",transtype:"scroll:fade",autoHeight:true,fixedHeight:500,fxduration:400,fxtransition:Fx.Transitions.linear,tabSelector:".title",tabText:function(a){return"<span>"+a.getText()+"</span>"},onInitialized:Class.empty,onWalk:Class.empty},initialize:function(a,b){this.setOptions(b);this.container=$(a);this.items=this.container.getChildren();this.tabs=[];this.current=0;this.preceding=false;this.running=false;this.mover=false;this.mover_delta=1;this.build();this.fireEvent("onInitialized")},build:function(){var c,b,e,d,a=0;this.container.addClass(this.options.className);this.tabs_buttons=new Element("div",{"class":"tabs_buttons"}).inject(this.container);this.tab_left=new Element("div",{"class":"tab_left"}).inject(this.tabs_buttons);this.tab_right=new Element("div",{"class":"tab_right"}).inject(this.tabs_buttons);this.tabs_mask=new Element("div",{"class":"tabs_mask"}).inject(this.tabs_buttons);this.tabs_container=new Element("div",{"class":"tabs_container"}).inject(this.tabs_mask);this.items_mask=new Element("div",{"class":"items_mask"}).inject(this.container);for(c=0;c<this.items.length;c++){this.tabs[c]=new Element("div",{"class":"tab"}).setHTML(this.options.tabText(this.items[c].getElement(this.options.tabSelector))).inject(this.tabs_container).addEvents({click:this.walk.bind(this,[c]),mouseenter:function(){this.addClass("tab_over")},mouseleave:function(){this.removeClass("tab_over")}});this.items[c].inject(this.items_mask).setStyles({display:"none",position:"absolute",width: "100%",top:"0",left:"0"});a+=this.tabs[c].getSize().size.x+this.tabs[c].getStyle("margin-left").toInt()+this.tabs[c].getStyle("margin-right").toInt()}[[["tabs_buttons"],{position:"relative",width:"100%",overflow:"hidden"}],[["items_mask"],{position:"relative",overflow:"hidden"}],[["tab_left","tab_right","tabs_mask","tabs_container"],{position:"absolute"}],[["tab_left","tab_right"],{display:"none","z-index":"1"}],[["tabs_buttons","items_mask","tab_left","tab_right","tabs_mask","tabs_container"],{margin:"0",padding:"0"}],[["tabs_container"],{width:a+"px"}]].each(function(g){for(var f=0;f<g[0].length;f++){this[g[0][f]].setStyles(g[1])}},this);b=this.tabs_buttons.getSize().size.x;if(a>b){this.tab_left.setStyle("display","block");this.tab_right.setStyle("display","block");e=this.tab_left.getSize().size.x;d=this.tab_right.getSize().size.x;this.tabs_mask.setStyles({width:(b-e-d)+"px",left:e+"px","z-index":"0"});this.tab_left.setStyle("left","0");this.tab_right.setStyle("left",(b-d)+"px");["left","right"].each(function(f,g){this["tab_"+f].addEvents({mouseenter:this.startMovetabrs.bind(this,[g?-1:+1,this["tab_"+f],f]),mouseleave:this.stopMovetabrs.bind(this)})},this)}this.items[0].setStyle("display","block");this.items_mask.setStyle("width","100%");this.items_mask.setStyle("height",this.options.autoHeight?this.items[0].getSize().size.y+"px":this.options.fixedHeight+"px");this.tabs[0].addClass("active")},startMovetabrs:function(c,b,a){b.addClass("tab_"+a+"_active");this.mover_delta=c;this.mover=this.movetabrs.periodical(20,this)},movetabrs:function(){var d=this.tabs_container.getStyle("left").toInt(),a=d+(this.mover_delta*10),c=this.tabs_container.getSize().size.x,b=this.tabs_mask.getSize().size.x;if(this.mover_delta>0&&a>0){a=0;this.stopMovetabrs()}else{if(this.mover_delta<0&&a<b-c){a=b-c;this.stopMovetabrs()}}this.tabs_container.setStyle("left",a+"px")},stopMovetabrs:function(){$clear(this.mover);this.tab_left.removeClass("tab_left_active");this.tab_right.removeClass("tab_right_active")},displayItem:function(a,d){var c=[],b=this.options.transtype;if(this.options.transtype.indexOf(":")!==-1){c=this.options.transtype.split(":");b=c[0];c=c[1].split("-")}if(!sptabs.transtypes[b]){c=[];b="none"}sptabs.transtypes[b].apply(this,[a,d,c])},walk:function(a){if(!this.running&&this.current!==a){this.running=true;this.preceding=this.current;this.current=a;this.tabs[this.preceding].removeClass("active");this.tabs[this.current].addClass("active");this.displayItem(this.current,this.preceding);this.fireEvent("onWalk",[this.current,this.preceding])}}});sptabs.implement(new Events(),new Options());sptabs.transtypes={simple:function(a,c,b){this.items[c].setStyle("display","none");this.items[a].setStyle("display","block");this.items_mask.setStyle("height",[this.options.autoHeight?this.items[a].getSize().size.y:this.options.fixedHeight]+"px");this.running=false},scroll:function(a,g,f){var e=this.items_mask.getSize().size.y,c=this.items_mask.getSize().size.x,d="fade",b={};if(f.length>0){d=f[0]}this.items[g].setStyles({"z-index":"0",opacity:1});this.items[a].setStyles({"z-index":"1",opacity:0,top:"0",left:"0",width:c+"px",display:"block"});switch(d){case"fade":break;case"horizontal":if(a>g){this.items[a].setStyle("left",c+"px");b={left:[c,0]}}else{this.items[a].setStyle("left",-c+"px");b={left:[-c,0]}}break;case"vertical":if(a>g){this.items[a].setStyle("top",e+"px");b={top:[e,0]}}else{this.items[a].setStyle("top",-e+"px");b={top:[-e,0]}}break}new Fx.Elements([this.items[g],this.items[a],this.items_mask],{duration:this.options.fxduration,transition:this.options.fxtransition,onComplete:function(){this.running=false}.bind(this)}).start({"0":{opacity:[1,0]},"1":$merge({opacity:[0,1]},b),"2":{height:[e,this.options.autoHeight?this.items[a].getSize().size.y:this.options.fixedHeight]}})},bounce:function(a,e,d){var c=this.items_mask.getSize().size.y,b;this.items[e].setStyles({"z-index":"0",opacity:1});this.items[a].setStyles({"z-index":"1",opacity:0,top:"0",left:"0",display:"block"});b=this.items[a].getSize().size.y;new Fx.Elements([this.items[e],this.items[a],this.items_mask],{duration:this.options.fxduration,transition:this.options.fxtransition,onComplete:function(){this.running=false}.bind(this)}).start({"0":{opacity:[1,0]},"1":{},"2":{height:[c,0]}}).chain(function(){this.start({"0":{},"1":{opacity:[0,1]},"2":{height:[0,b]}})})}};
