﻿var slideshow;
function Slideshow(slideArray, ctrlArray) {
    this.currentIndex = 0;
    this.delay = 5000;
    this.paused = false;
    this.slides = slideArray;
    this.ctrls = ctrlArray;
    this.intervalId = null;
}

function start_slideshow(slides, ctrls) {
    slideshow = new Slideshow(slides, ctrls);
    slideshow.intervalId = setInterval("advance_slides(1)", slideshow.delay);
}

function select_slide(index) {
    clearInterval(slideshow.intervalId);
    clearCtrls();

    var frame = slideshow.slides[slideshow.currentIndex];
    Effect.Fade(frame);

    frame = slideshow.slides[index];
    slideshow.currentIndex = index;

    Effect.Appear(frame);
    selectCtrl(slideshow.ctrls[index]);

    if (!slideshow.paused)
        slideshow.intervalId = setInterval("advance_slides(1)", slideshow.delay);
}

function advance_slides(dir) {
    clearCtrls();
    var frame = slideshow.slides[slideshow.currentIndex];
    Effect.Fade(frame);

    if (dir == -1) {
        if (frame == slideshow.slides[0]) {
            frame = slideshow.slides[slideshow.slides.length - 1];
            slideshow.currentIndex = slideshow.slides.length - 1;
        }
        else {
            frame = slideshow.slides[slideshow.currentIndex - 1];
            slideshow.currentIndex--;
        }
    }
    else {
        if (frame == slideshow.slides[slideshow.slides.length - 1]) {
            frame = slideshow.slides[0]
            slideshow.currentIndex = 0;
        }
        else {
            frame = slideshow.slides[slideshow.currentIndex + 1];
            slideshow.currentIndex++;
        }
    }
    Effect.Appear(frame);    
    selectCtrl(slideshow.ctrls[slideshow.currentIndex]);
}

function toggle_slideshow() {
    var btn = document.getElementById('Play');    
    if (slideshow.paused) {
        btn.className = "pause";
        advance_slides();
        slideshow.intervalId = setInterval("advance_slides(1)", slideshow.delay);
    }
    else {
        btn.className = "play";
        clearInterval(slideshow.intervalId);
    }
    slideshow.paused = !slideshow.paused;
}

function pause_slideshow() {
    var btn = document.getElementById('Play');
    btn.className = "play";
    clearInterval(slideshow.intervalId);
}

function incr_slideshow(dir) {
    clearInterval(slideshow.intervalId);
    advance_slides(dir);
    
    if (!slideshow.paused)
        slideshow.intervalId = setInterval("advance_slides(1)", slideshow.delay);
}

function clearCtrls() {
    for (var i = 0; i < slideshow.ctrls.length; i++) {
        $(slideshow.ctrls[i]).className = "";
    }
}

function selectCtrl(ctrl) {
    $(ctrl).className = "sel";
}
