var SlideShow = new Class({
	
	Implements: Options,
	
	options: {
		fadeTime: 1000,
		stayTime: 3000,
		source: 'SlideIndex'
	},
	
	initialize: function(wrapper, options) {
		var params = Array.link(arguments, {wrapper: $defined, options: Object.type});
		this.wrapper = $(params.wrapper);
		this.setOptions(params.options);
		
		this.slides = $(this.options.source).getElements('div.slide');
		this.index = 0;
		this.topSlide = this.slides[0];
		this.topSlide.set('opacity', 0).inject(this.wrapper).fade('in');
		this.fade.delay(this.options.stayTime, this);
	},
	
	fade: function() {
		this.index = (this.index + 1) % this.slides.length;
		this.bottomSlide = this.topSlide;
		this.topSlide = this.slides[this.index]
			.fade('hide')
			.inject(this.wrapper)
			.fade('in');
		
		(function(){ this.bottomSlide.fade(0); }).delay(60, this);
		this.fade.delay(this.options.stayTime + this.options.fadeTime, this);
	}
	
});

