function Slideshow(slideshow, timeout) {
	this.slides = [];
		var nl = $(slideshow).getElementsByTagName('div');
			for (var i = 0; i < nl.length; i++) {
				if (Element.hasClassName(nl[i], 'slide')) {
					this.slides.push(nl[i]);
		}
	}

		for (var i = 0; i < this.slides.length; i++) {
			this.slides[i].style.zIndex = this.slides.length - i;
		}

		this.timeout = timeout;
    	this.current = 0;

       Element.show(slideshow);
       setTimeout((function(){this.next();}).bind(this), this.timeout + 150);
     }
     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 +1 - i;
         }

         Effect.Fade(this.slides[this.current], {
           afterFinish: function(effect) {
             effect.element.style.zIndex = 0;
             Element.show(effect.element);
             Element.setOpacity(effect.element, 1);
           }
         });
    
         this.current = (this.current + 1) % this.slides.length;
         setTimeout((function(){this.next();}).bind(this), this.timeout + 150);
       }
     }   
