function Slideshow(slideshow, timeout, myslides) {
	if(myslides.length < 2) return false;
	
	this.slides = new Array();
	var slider = $(slideshow);
	
	for (var i = 0; i < myslides.length; i++) {
		myslides[i].className = 'slide';
		myslides[i].style.zIndex = myslides.length - i;
		
		this.slides.push(myslides[i]);
	}
	
	this.timeout = timeout;
	this.current = 0;
	
	Element.show(slideshow);
	setTimeout((function(){this.next();}).bind(this), this.timeout);
}
Slideshow.prototype = {
	next: function() {
		for (var i = 0; i < this.slides.length; i++) {
			var slide = this.slides[(this.current + i) % this.slides.length];
			slide.style.zIndex = this.slides.length - i;
			slide.style.left = '0px';
		}

		var fade_delay = 0;

		new Effect.Fade(this.slides[this.current], {duration:1.0,delay:fade_delay,
			afterFinish: function(effect) {
				effect.element.style.zIndex = 0;
				Element.show(effect.element);
				Element.setOpacity(effect.element, 1);
				effect.element.style.left = '0px';
			}
		});

		this.current = (this.current + 1) % this.slides.length;
		setTimeout((function(){this.next();}).bind(this), this.timeout);
	}
}

function init_slideshow() {
	if($('slideshow')) {
		var slides = new Array();
		
		var slideDivs = $$('#slideshow div.slide');
		
		var i = 0;
		slideDivs.each(function(el) {
				slides[i] = el;
				i++;
			});		
			
		new Slideshow('slideshow', 3000, slides);
	}
}
Event.observe(window, 'load', init_slideshow, false);
