var FadeTime = 1000.0;
var FadePause = 4000.0;
var FadeElementId = "fadeText";

var FadeTextPointer = 0;
var FadeTexts = new Array();

window.onload = start;

function start()
{
    FadeTexts[0] = "Low Commissions";
    FadeTexts[1] = "Personal Service";
    FadeTexts[2] = "Leading Platform";
    FadeTexts[3] = "Australian and International CFDs";
    FadeTexts[4] = "CFDs on Indices, FX & Commodities";

    changeText(FadeElementId, retrieveNextText());
    setTimeout("startFadeLoop()", FadePause);
}

function startFadeLoop()
{
    // ...start fading out...
    fade(FadeElementId);

    // ...wait the time it takes to fade out before fading in...
    setTimeout("fadeIn(" + "'" + FadeElementId + "')", FadeTime);

    // ...then pause for a while to display the opaque text...
    setTimeout("startFadeLoop()", FadePause + FadeTime);
}

function fadeIn(elementId)
{
    // ...change the displayed text while fully transparent...
    changeText(FadeElementId, retrieveNextText());

    // ...then fade in...
    fade(elementId);
}

function retrieveNextText()
{
    if(FadeTextPointer < FadeTexts.length)
    {
        return FadeTexts[FadeTextPointer++];
    }
    else
    {
        FadeTextPointer = 0;
	return retrieveNextText();
    }
}

function changeText(elementId, text)
{
    var element = document.getElementById(elementId);
    if(element != null)
    {
	// replace the text with the correct one from the array.
        element.innerHTML = text;
    }
}

function fade(elementId)
{
    var element = document.getElementById(elementId);
    if(element != null)
    {
        if(element.FadeState == null)
        {
            if(element.style.opacity == null ||
               element.style.opacity == '' ||
               element.style.opacity == '1')
            {
                element.FadeState = 2;
            }
            else
            {
                element.FadeState = -2;
            }
        }
   
        if(element.FadeState == 1 || element.FadeState == -1)
        {
            element.FadeState = element.FadeState == 1 ? -1 : 1;
            element.FadeTimeLeft = FadeTime - element.FadeTimeLeft;
        }
        else
        {
            element.FadeState = element.FadeState == 2 ? -1 : 1;
            element.FadeTimeLeft = FadeTime;
            setTimeout("animateFade(" + new Date().getTime() + ",'" + elementId + "')", 33);
        }
    }
}

function animateFade(lastTick, eid)
{  
    var curTick = new Date().getTime();
    var elapsedTicks = curTick - lastTick;
 
    var element = document.getElementById(eid);
 
    if(element.FadeTimeLeft <= elapsedTicks)
    {
        element.style.opacity = element.FadeState == 1 ? '1' : '0';
        element.style.filter = 'alpha(opacity = ' + (element.FadeState == 1 ? '100' : '0') + ')';
        element.FadeState = element.FadeState == 1 ? 2 : -2;
        return;
    }
 
    element.FadeTimeLeft -= elapsedTicks;
    var newOpVal = element.FadeTimeLeft/FadeTime;

    if(element.FadeState == 1)
    {
        newOpVal = 1 - newOpVal;
    }

    element.style.opacity = newOpVal;
    element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
 
    setTimeout("animateFade(" + curTick + ",'" + eid + "')", 33);
}

