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
	}
});

window.addEvent('domready', function() {
	if ($$('.slide1')) {
		var rotater1 = new Rotater('.slide1', {
			slideInterval : 5000,
			transitionDuration : 2000

		});
	}
	if ($$('.slide2')) {
		var rotater2 = new Rotater('.slide2', {
			slideInterval : 5000,
			transitionDuration : 2000

		});
	}
});