﻿function slideshow(slide) {
    var cover = null, slidecanvases = [], opacity = 100, t = null, canvasIndex = 0;

    var doshowcover = function() { showcover(); }
    function showcover() {
        if (opacity == 100) {
            t = clearInterval(t);

            slidecanvases[canvasIndex].style.zIndex = 1;
            canvasIndex++;
            if (canvasIndex == slidecanvases.length)
                canvasIndex = 0;
            slidecanvases[canvasIndex].style.zIndex = 99;

            startfadingcover();
            return;
        }
        opacity += 10;

        cover.style.filter = "alpha(opacity=" + opacity + ")";
        cover.style.opacity = opacity / 100;
    }

    var dofadecover = function() { fadecover(); }
    function fadecover() {
        if (opacity == 0) {
            cover.style.zIndex = 1;
            t = clearInterval(t);
            setTimeout(startshowingcover, 3000);
            return;
        }
        opacity -= 10;
        cover.style.filter = "alpha(opacity=" + opacity + ")";
        cover.style.opacity = opacity / 100;
    } 


    this.start = function() {
        for (var i = 0; i < slide.childNodes.length; i++) {
            if (slide.childNodes[i].className) {
                if (slide.childNodes[i].className.indexOf('slidecanvas') != -1)
                    slidecanvases.push(slide.childNodes[i]);
                else if (slide.childNodes[i].className.indexOf('cover') != -1)
                    cover = slide.childNodes[i];
            }
        }

        if (cover != null && slidecanvases.length > 2) {
            slidecanvases[canvasIndex].style.zIndex = 99;
            startfadingcover();
        }
    }

    function startfadingcover() {
        t = setInterval(dofadecover, 50);
    }
    var startshowingcover = function() {
        cover.style.zIndex = 100;
        t = setInterval(doshowcover, 50);
    }

}




function initSlideShow() {
    var getSlides = true, slides = [], slidenr = 1;

    while (getSlides) {
        var slide = document.getElementById('slide_' + slidenr);

        if (slide)
            slides.push(slide);
        else
            getSlides = false;

        slidenr++;            
    }

    for (var i = 0; i < slides.length; i++) {
        instanciateslide(slides[i]);
    }

    function instanciateslide(slide) {
        var newslideshow = new slideshow(slide);
        newslideshow.start();
    }
}
