var spline = [
    0.00, 0.04, 0.08, 0.12, 0.16, 0.20, 0.24, 0.28, 0.32, 0.36, 0.45, 0.48, 0.50,
    0.50, 0.52, 0.55, 0.64 ,0.68, 0.72, 0.76, 0.80, 0.84, 0.88, 0.92, 0.96, 1.00
];

function set_opacity(element, level) {
    element.style.opacity = level;
    element.style.MozOpacity = level;
    element.style.WebkitOpacity = level;
    element.style.KhtmlOpacity = level;
    element.style.filter = "alpha(opacity=" + (level * 100) + ");";
}

function fade(elem1, elem2) {
    elem2.style.display = "block";

    for (var i = 1; i <= 25; i += 1) {
        setTimeout(function (n) {
            set_opacity(elem1, 0.85 - n);
            set_opacity(elem2, n)
        }, 40 * i, spline[i]);
    }

    setTimeout(function () {
        elem1.style.zIndex = 5;
        elem2.style.zIndex = 6;
    }, 500);

    setTimeout(function () {
        elem1.style.display = "none";
    }, 1000);
}

function Slideshow(slideshow, interval) {
    var slides = new Array;
    var current;
    var next;

    for (var i = 0; i < slideshow.childNodes.length; i++) {
        var child = slideshow.childNodes.item(i);

        if (child instanceof Text)
            continue;
        child.style.display = "none";
        child.style.position = "absolute";
        child.style.top = 0;
        child.style.left = 0;
        child.style.zIndex = 5;
        slides[slides.length] = child;
    }

    slideshow.style.position = "relative";
    slideshow.style.top = "0";
    slideshow.style.left = "0";

    slides[0].style.display = "block";
    slides[0].style.zIndex = 6;

    current = 0;
    setInterval(function () {
        next = (current + 1 == slides.length) ? 0 : current + 1;
        fade(slides[current], slides[next]);
        current = next;
    }, interval+1000);
}

function shuffle (o) {
	for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
	return o;
}

function empty(element) {
    for (var i = element.childNodes.length - 1; i >= 0; i--)
        element.removeChild(element.childNodes[i]);
}

function main () {
    var slides = [
    ];
    
    var slideshow = document.getElementById("gallery-slideshow");

    empty(slideshow);

    for (var x in shuffle(slides)) {
        var slide = document.createElement("a");
        slide.setAttribute('href', '/galerie/' + slides[x].id);
        slide.setAttribute('title', slides[x].alt);

        var img = document.createElement("img")
        img.setAttribute('src', slides[x].path);
        img.setAttribute('alt', slides[x].alt);

        slide.appendChild(img);
        slideshow.appendChild(slide);
    }

    Slideshow(slideshow, 4000);
}

//main();

