var g_clCurrentSlide = null;
var g_aSlides = Array();
var g_bGotoNext = false;
var g_niSlides = 0;
var g_cSlide = 0;
var g_fOpacity = 0.0;
var g_clBackDiv = null;
var g_clFrontDiv = null;
var g_fIncrement;
var g_sSlidesDir = "";
var g_sBackgroundColor = "";

function Transition_AddSlide(sImage, iTime)
{
    g_aSlides[g_niSlides] = new Array();
    g_aSlides[g_niSlides]['Image'] = new Image();
    g_aSlides[g_niSlides]['Image'].src = g_sSlidesDir + sImage;
    g_aSlides[g_niSlides]['Time'] = iTime;
    
    g_niSlides++;
}


function Transition_SlideLoaded()
{
    TransitionNextSlide();
}

function Transition_Initialize(sFrontDiv, sBackDiv, sSlidesDir, fIncrement, sBackgroundColor)
{
    g_clBackDiv = document.getElementById(sBackDiv);
    g_clFrontDiv = document.getElementById(sFrontDiv);
    g_sSlidesDir = sSlidesDir;
    g_fIncrement = fIncrement;
    g_sBackgroundColor = sBackgroundColor;
}

function Transition_Start()
{
    if (!g_niSlides)
        return;
    
    g_clFrontDiv.style.background = "url(" + g_aSlides[0]['Image'].src + ") 0px 0px " + g_sBackgroundColor + " no-repeat";
    
    if (g_niSlides > 1)
    {
        g_cSlide++;
        g_clBackDiv.style.background = "url(" + g_aSlides[1]['Image'].src + ") 0px 0px transparent no-repeat";
    }

    setTimeout('Transition_NextSlide()', g_aSlides[0]['Time']);
}

function Transition_NextSlide()
{
    if (g_niSlides <= 1)
        return;
    
    /* This is true when we're going to the next slide, and false when we're doing a opacity transition */
    if (g_bGotoNext)
    {
        g_cSlide++;
        
        if (g_cSlide >= g_niSlides)
            g_cSlide = 0;
            
        g_clBackDiv.style.backgroundImage = "url(" + g_aSlides[g_cSlide]['Image'].src + ")";
        g_bGotoNext = false;
    }
    
    g_fOpacity += g_fIncrement;
    
    if (g_fOpacity >= 1.0)
    {
        g_fOpacity = 0.0;
        
        g_clFrontDiv.style.opacity = 1.0;
        g_clFrontDiv.style.filter = "alpha(opacity=100)";
        g_clFrontDiv.style.backgroundImage = g_clBackDiv.style.backgroundImage;

        g_bGotoNext = true;

        setTimeout('Transition_NextSlide()', g_aSlides[g_cSlide]['Time']);
    }
    else
    {
        var fNewOpacity = 1.0 - g_fOpacity;
        
        g_clFrontDiv.style.filter = "alpha(opacity=" + Math.round(fNewOpacity * 100) + ")";
        g_clFrontDiv.style.opacity = 1.0 - g_fOpacity;
        g_clFrontDiv.style.backgroundColor = "transparent";
        
        setTimeout('Transition_NextSlide()', 17);
    }
}