var nDelay    = 5000;
var sElement  = "promoText";
var nCurrent  = -1;
var myObjects = new Object;
var nLength   = 0;
var jsonString = "";

function opacity(id, opacStart, opacEnd, millisec)
{
	var speed = Math.round(millisec / 100);
	var timer = 0;

	if(opacStart > opacEnd)
	{
	    for(i = opacStart; i >= opacEnd; i--)
		{
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	}
	else if(opacStart < opacEnd)
	{
	    for(i = opacStart; i <= opacEnd; i++)
		{
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	}
}

function changeOpac(opacity, id)
{
	var object = $(id).style;
	object.opacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
}

//load all text from database
function fadeText( sElement, sGroup )
{

    //get the text from the database using AJAX
    new Ajax.Request('/interface/ajax/fadingtext.php?group=' + sGroup,
    {
        method:'get',
        onLoading: function(){ $( sElement ).innerHTML = '<img src="/images/loading.gif" alt="Loading" />' },
        onSuccess: function(transport)
        {
            var response = transport.responseText || '';
            mtFadeEffect( sElement, response );
        },
        onFailure: function(){ alert('Something went wrong...') }
    });

}

//use Mootools to create fade effect
function mtFadeEffect( sElement, jsonString )
{

    myObjects  = JSON.decode( jsonString );
    nLength    = myObjects.length;
    jsonString = jsonString;

    if ( nCurrent < nLength - 1 )
        nCurrent = nCurrent + 1;
    else
        nCurrent = 0;

    //do the fade effect
    $( sElement ).innerHTML = myObjects[nCurrent].message;
    opacity( sElement, 0, 100, nDelay);
    setTimeout("fadeOut();", nDelay);

    setTimeout(function(){mtFadeEffect( sElement, jsonString )}, nDelay * 2);
}

function fadeOut()
{
    opacity( sElement, 100, 0, nDelay);
}

function onload()
{

    //initialize everything
    changeOpac( 0, sElement );

    //load content
    fadeText( sElement, "test" );
}
