var Rotater = new Class({ Implements: [Options, Events], options: { slideInterval: 4000, transitionDuration: 1000, startIndex: 0, autoplay: true }, initialize: function(B, A) { this.setOptions(A); this.slides = $$(B); this.createFx(); this.showSlide(this.options.startIndex); if (this.slides.length < 2) { this.options.autoplay = false } if (this.options.autoplay) { this.autoplay() } return this }, toElement: function() { return this.container }, createFx: function() { if (!this.slideFx) { this.slideFx = new Fx.Elements(this.slides, { duration: this.options.transitionDuration }) } this.slides.each(function(A) { A.setStyle("opacity", 0) }) }, showSlide: function(B) { var A = {}; this.slides.each(function(C, D) { if (D == B && D != this.currentSlide) { A[D.toString()] = { opacity: 1} } else { A[D.toString()] = { opacity: 0} } }, this); this.fireEvent("onShowSlide", B); this.currentSlide = B; this.slideFx.start(A); return this }, autoplay: function() { this.slideshowInt = this.rotate.periodical(this.options.slideInterval, this); this.fireEvent("onAutoPlay"); return this }, stop: function() { $clear(this.slideshowInt); this.fireEvent("onStop"); return this }, rotate: function() { current = this.currentSlide; next = (current + 1 >= this.slides.length) ? 0 : current + 1; this.showSlide(next); this.fireEvent("onRotate", next); return this } });
