var fadeEffect;

var fade1 = 'fade1';
var fade2 = 'fade2';
var fade3 = 'fade3'

var curFade;
var curEffect;
var curTimeout;

function cancelFade()
{
    clearTimeout(curTimeout);
    fadeEffect.cancel();   
}

function startFade()
{
    curFade = fade1;
    curEffect = 'appear';
    doAppear(fade1);
}

function resumeFade()
{
    doFade(curFade);  
}

function doAppear(fade)
{
    curEffect = 'appear';
    fadeEffect = new Effect.Appear(fade, 
        { 
            duration: 2.0, 
            afterFinish: appearFinish
        });

}

function doFade(fade)
{
    curEffect = 'fade';
    fadeEffect = new Effect.Fade(curFade,
        {
            duration: 2.0,
            afterFinish: fadeFinish
        });
}    


function appearFinish()
{
    curTimeout = setTimeout("doFade('"+curFade+"')",7000);
}
    
function fadeFinish()
{
    if( curFade == fade1 )
    {
        curFade = fade2;
        doAppear(fade2);
    }
    else if( curFade == fade2 )
    {
        curFade = fade3;
        doAppear(fade3);
    }
    else
        doFinishFade();
}

function doFinishFade()
{
    doSingleAppear('fade_finish1');
    setTimeout("doSingleAppear('fade_finish2');",2000);
    setTimeout("doSingleAppear('fade_finish3');",4000);
    
    setTimeout("restartFade();", 13000);
}

function restartFade()
{
    Effect.Fade( $('fade_finish1'), {duration:1.0} );
    Effect.Fade( $('fade_finish2'), {duration:1.0} );
    Effect.Fade( $('fade_finish3'), {duration:1.0} );
    Effect.Fade( $('fade1'), {duration:0.5} );
    Effect.Fade( $('fade2'), {duration:0.5} );
    Effect.Fade( $('fade3'), {duration:0.5} );
    setTimeout("startFade();", 1000);
    
}

function doSingleAppear( id )
{
    Effect.Appear(id, 
        { 
            duration: 3.0 
        });    
}

function miniFadeClick(id)
{
    new Effect.Fade('fade_finish1', {duration: 1.5});
    new Effect.Fade('fade_finish2', {duration: 1.5});
    new Effect.Fade('fade_finish3', {duration: 1.5});
    setTimeout("doSingleAppear('"+id+"');",1600);
}

