var curAtcl = 0;
var timeoutId = 0;
var fadeInProgress = false;
var playing = false;
var slideDelay = 4;

var EFFECT_NONE = 0;
var EFFECT_FADEIN_FADEOUT = 1;
var EFFECT_CROSSFADE = 2;

function SwitchArticle()
{
    var curDiv = document.getElementById("pos" + curAtcl);
    if (curAtcl == atclUBound)
    {
        curAtcl = 0;
    }
    else
    {
        curAtcl++;
    }
    var newDiv = document.getElementById("pos" + curAtcl);
    switch (switchEffect)
    {
        case EFFECT_NONE:
            SwitchNoEffect(curDiv, newDiv);
            break;

        case EFFECT_FADEIN_FADEOUT:
            SwitchFadeInFadeOut(curDiv, newDiv);
            break;

        case EFFECT_CROSSFADE:
            //alert(curDiv.id + ", " + newDiv.id);

            SwitchCrossfade(curDiv, newDiv);
            break;
    }

    timeoutId = window.setTimeout("SwitchArticle()", (switchDelay) * 1000);

}




function CnsNextSlide(idx)
{
    var curDiv = document.getElementById("pos" + curAtcl);
    //alert(curAtcl);
    var newAtcl;
    if (curAtcl == atclUBound) 
    {
        newAtcl = 0;
    }
    else 
    {
        newAtcl = curAtcl + 1;
    }
    //alert(curAtcl + ", " + newAtcl);
    CnsChangeSlide(idx, newAtcl);
}




function CnsPrevSlide(idx) 
{
    var curDiv = document.getElementById("pos" + curAtcl);
    var newAtcl;
    if (curAtcl == 0) 
    {
        newAtcl = atclUBound;
    }
    else 
    {
        newAtcl = curAtcl - 1;
    }

    //alert(curAtcl + ", " + newAtcl);
    CnsChangeSlide(idx, newAtcl);
}



function CnsChangeSlide(idx, slideNo) 
{
    if (fadeInProgress == true)
    {
        return (false);
    }
    if (timeoutId > 0) 
    {
        window.clearTimeout(timeoutId);
    }

    var curDiv = document.getElementById("pos" + curAtcl);
    var newDiv = document.getElementById("pos" + slideNo);
    curAtcl = slideNo;
    SwitchNoEffect(curDiv, newDiv);
}


function CnsStartStop(idx)
{
    var playpause = document.getElementById("startstop_" + idx);
    if (playing)
    {
        playing = false;
        if (timeoutId > 0) 
        {
            window.clearTimeout(timeoutId);
        }
        //alert(playpause.style.backgroundImage);
        playpause.style.backgroundImage = "url('/_structure/images/play.png')";
    }
    else
    {
        StartSwitchTimer(slideDelay);
        playpause.style.backgroundImage = "url('/_structure/images/pause.png')";
    }
}


function StartSwitchTimer(delay) 
{
    slideDelay = delay;
    timeoutId = window.setTimeout("SwitchArticle()", (delay + switchDelay) * 1000);
    playing = true;
}




function SwitchNoEffect(curDiv, newDiv)
{
    DisplaySlideNo(1);
    curDiv.style.display = "none";
    newDiv.style.display = "block";
}




function SwitchFadeInFadeOut(curDiv, newDiv) 
{
    DisplaySlideNo(1);
    fadeInProgress = true;
    $("#" + curDiv.id).fadeOut(switchSpeed * 1000, function() { SwitchFadeIn(newDiv) });
}

function SwitchFadeIn(newDiv)
{
    $("#" + newDiv.id).fadeIn(switchSpeed * 1000, function() { FinishedFade() });
}

function SwitchCrossfade(curDiv, newDiv) 
{
    fadeInProgress = true;
    DisplaySlideNo(1);
    $("#" + curDiv.id).fadeOut(switchSpeed * 1000);
    $("#" + newDiv.id).fadeIn(switchSpeed * 1000, function() { FinishedFade() });
}


function FinishedFade()
{
    fadeInProgress = false;
}


function DisplaySlideNo(idx)
{
    var slideDiv = document.getElementById("cnsslideno_" + idx);
    //alert(slideDiv.id);
    if (slideDiv != null)
    {
        slideDiv.innerHTML = "Slide " + (curAtcl + 1) + " of " + (atclUBound + 1);
    }
}
