var Slideshow = new Singletone ({
    delay: 5000,
    slide_time: 1000,
    slides: [],
    current: null,
    
    set: function (slides) {
        self.slides = slides;
    },
    
    start: function () {
        Effects.opacity_step = Effects.opacity_delay / self.slide_time;
        self.current = 0;
        var current = self.slides[self.current];
        current.style.zIndex = 2;
        current.show();
        setTimeout(self.next, self.delay);
    },
    
    next: function () {
        self = Slideshow;
        var previous = self.slides[self.current];
        previous.style.zIndex = 1;
        self.current = (self.current + 1) % self.slides.length;
        var current = self.slides[self.current];
        current.style.zIndex = 2;
        current.show(Effects.appear);
        previous.hide(Effects.vanish);
        setTimeout(self.next, self.delay);
    },
    
    fromList: function (list) {
        var slides = [];
        for (var i = 0; i < list.childNodes.length; i ++) {
            if (list.childNodes[i].tagName) {
                slides.push(list.childNodes[i]);
                list.childNodes[i].hide();
            }
        }
        self.set(slides);
    }
});
