var SlideShow = Class.create({
	initialize: function(className, delay) {
		this.delay = delay;
		this.fadeDuration = 1.0;
		this.slides = $$('.' + className);
		this.numSlides = this.slides.length;
		this.currentSlide = 0;
	},
	
	start: function() {
		var me = this;
		this.interval = window.setInterval(function(){me.slide(1);}, this.delay);
	},
	
	stop: function() {
		window.clearInterval(this.interval);
	},
	
	slide: function(next) {
		Effect.Fade(this.slides[this.currentSlide], {duration: this.fadeDuration});
		
		this.currentSlide += next;
		if (this.currentSlide < 0) {
			this.currentSlide = this.numSlides - 1; 
		} else if (this.currentSlide >= this.numSlides) {
			this.currentSlide = 0;
		}
		
		Effect.Appear(this.slides[this.currentSlide], {duration: this.fadeDuration});
	},
	
	manualSlide: function(next) {
		this.stop();
		var d = this.fadeDuration;
		this.fadeDuration = 0.2;
		this.slide(next);
		this.fadeDuration = d;
		this.start();
	}
});

var show;
Event.observe(window, 'load', function(){show = new SlideShow('slide', 4000); show.start();});

