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 + 850);
    }
    
    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;
    }
    
    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 + 850);
    }
}
