Fx.Scroll.Carousel=new Class({Extends:Fx.Scroll,options:{mode:"horizontal",childSelector:false,loopOnScrollEnd:true},initialize:function(b,a){this.parent(b,a);this.cacheElements();this.currentIndex=0},cacheElements:function(){var a=this.options.childSelector;if(a){els=this.element.getElements(a)}else{if(this.options.mode=="horizontal"){els=this.element.getElements(":first-child > *")}else{els=this.element.getChildren()}}this.elements=els;return this},toNext:function(){if(this.checkLink()){return this}this.currentIndex=this.getNextIndex();this.toElement(this.elements[this.currentIndex]);this.fireEvent("next");return this},toPrevious:function(){if(this.checkLink()){return this}this.currentIndex=this.getPreviousIndex();this.toElement(this.elements[this.currentIndex]);this.fireEvent("previous");return this},getNextIndex:function(){this.currentIndex++;if(this.currentIndex==this.elements.length||this.checkScroll()){this.fireEvent("loop");this.fireEvent("nextLoop");return 0}else{return this.currentIndex}},getPreviousIndex:function(){this.currentIndex--;var a=this.checkScroll();if(this.currentIndex<0||a){this.fireEvent("loop");this.fireEvent("previousLoop");return(a)?this.getOffsetIndex():this.elements.length-1}else{return this.currentIndex}},getOffsetIndex:function(){var a=(this.options.mode=="horizontal")?this.element.getStyle("width").toInt()/this.elements[0].getStyle("width").toInt():this.element.getStyle("height").toInt()/this.elements[0].getStyle("height").toInt();return this.currentIndex+1-a},checkLink:function(){return(this.timer&&this.options.link=="ignore")},checkScroll:function(){if(!this.options.loopOnScrollEnd){return false}if(this.options.mode=="horizontal"){var a=this.element.getScroll().x;var b=this.element.getScrollSize().x-this.element.getSize().x}else{var a=this.element.getScroll().y;var b=this.element.getScrollSize().y-this.element.getSize().y}return(a==b)},getCurrent:function(){return this.elements[this.currentIndex]}});
