/* 
 * FadingText(divName, numSteps, BGColor)
 * divName : Must match the DIV names defined at the end of the BODY)
 * numSteps: The number of steps in the fading transition
 * BGColor : The background colour of the DIV or document.
 */
 
/*** Create some global variables ***/
var FadingObject = new Array();
var FadeRunning=false;
var FadeInterval=30;


var hexDigit=new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F");
function dec2hex(dec)
{
	return(hexDigit[dec>>4]+hexDigit[dec&15]);
}
function hex2dec(hex)
{
	return(parseInt(hex,16))
}


function createFaderObject(theDiv, numSteps, startColor)
{
	if(!startColor)
		startColor = "000000";
		
	this.name		= theDiv;
	this.text		= null;
	this.color		= "FFFFFF";
	this.next_text	= null;
	this.next_color	= null;
	this.state		= "OFF";
	this.index		= 0;
	this.steps		= numSteps;
	this.r		= hex2dec(startColor.slice(0,2));
	this.g		= hex2dec(startColor.slice(2,4));
	this.b		= hex2dec(startColor.slice(4,6));
}


function FadingText(theDiv, numSteps, startColor)
{
	FadingObject[theDiv] = new createFaderObject(theDiv, numSteps, startColor);
}

function start_fading()
{
	if(!FadeRunning)
		FadeAnimation();
}

function set_text(f)
{
	if(navigator.appName.indexOf("Netscape") != -1
		&& document.getElementById)
	{
		var theElement = document.getElementById(f.name);
		var newRange   = document.createRange();
		newRange.setStartBefore(theElement);
		var strFrag    = newRange.createContextualFragment(f.text);	

		while (theElement.hasChildNodes())
			theElement.removeChild(theElement.lastChild);
		theElement.appendChild(strFrag);
		theElement.style.color="#"+f.startColor;
	}
}

function getColor(f)
{
	var r=hex2dec(f.color.slice(0,2));
	var g=hex2dec(f.color.slice(2,4));
	var b=hex2dec(f.color.slice(4,6));

	r2= Math.floor(f.r+(f.index*(r-f.r))/(f.steps) + .5);
	g2= Math.floor(f.g+(f.index*(g-f.g))/(f.steps) + .5);
	b2= Math.floor(f.b+(f.index*(b-f.b))/(f.steps) + .5);

	return("#" + dec2hex(r2) + dec2hex(g2) + dec2hex(b2));
}

function setColor(fadeObj)
{
	var theColor=getColor(fadeObj);
	var str="<FONT COLOR="+ theColor + ">" + fadeObj.text + "</FONT>";
	var theDiv=fadeObj.name;
	
//if IE 4+
	if(document.all)
	{
		document.all[theDiv].innerHTML=str;
	}	
//else if NS 4
	else if(document.layers)
	{
		document.nscontainer.document.layers[theDiv].document.write(str);
		document.nscontainer.document.layers[theDiv].document.close();
	}
//else if NS 6 (supports new DOM, may work in IE5) - see Website Abstraction for more info.
//http://www.wsabstract.com/javatutors/dynamiccontent4.shtml
	else if (document.getElementById)
	{
		theElement = document.getElementById(theDiv);
		theElement.style.color=theColor;
	}
	
}

function fade_up(theDiv, newText, newColor)
{
	var f=FadingObject[theDiv];

	if(newColor == null)
		newColor="FFFFFF";

	if(f.state == "OFF")
	{
		f.text  = newText;
		f.color = newColor;
		f.state = "FADE_UP";
		set_text(f);
		start_fading();
		
		document.getElementById("CadreTextMenu").style.display = 'block';
		document.getElementById("CadreTextLogOut").style.display = 'none';
		document.getElementById("CadreTextLogOut").innerHTML = '';
		
	}
	else if( f.state == "FADE_UP_DOWN"
		|| f.state == "FADE_DOWN"
		|| f.state == "FADE_DOWN_UP")
	{
		if(newText == f.text)
			f.state = "FADE_UP";
		else
		{
			f.next_text  = newText;
			f.next_color = newColor;
			f.state      = "FADE_DOWN_UP";
		}
		
		document.getElementById("CadreTextMenu").style.display = 'block';
		document.getElementById("CadreTextLogOut").style.display = 'none';
		document.getElementById("CadreTextLogOut").innerHTML = '';
		
	}
}

function fade_down(theDiv, ActiveMenuValeur)
{
	var f=FadingObject[theDiv];
	
	if (ActiveMenuValeur == 1) {
		var TextMenuLogOut = "<a href='?page=classement'><img src='./design/images/classement.gif' title='Les Classements' alt='Les Classements' /></a> <a href='?page=livredor'><img src='./design/images/guestbook.gif' title='Lire les commentaires des joueurs' alt='Lire les commentaires des joueurs' /></a> <a href='?page=nouveaute'><img src='./design/images/status-info.gif' title='Quoi de neuf ?' alt='Quoi de neuf ?' /></a> <a href='?page=compte_modif'><img src='./design/images/mon_compte.gif' title='Modifier les paramètres de mon compte' alt='Mon compte' /></a> <a href='?page=deconnexion'><img src='./design/images/system-log-out.gif' title='Déconnexion' alt='Déconnexion' /></a>";
	}
	else
	{
		var TextMenuLogOut = "";
	}
	
	if(f.state=="ON")
	{
		f.state="FADE_DOWN";
		start_fading();
		
		if (TextMenuLogOut != "") {
		document.getElementById("CadreTextMenu").style.display = 'none';
		document.getElementById("CadreTextLogOut").style.display = 'block';
		document.getElementById("CadreTextLogOut").innerHTML = TextMenuLogOut;
		}
	}
	else if(f.state=="FADE_DOWN_UP")
	{
		f.state="FADE_DOWN";
		f.next_text = null;
		
		if (TextMenuLogOut != "") {
		document.getElementById("CadreTextMenu").style.display = 'none';
		document.getElementById("CadreTextLogOut").style.display = 'block';
		document.getElementById("CadreTextLogOut").innerHTML = TextMenuLogOut;
		}
	}
	else if(f.state == "FADE_UP")
	{
		f.state="FADE_UP_DOWN";
		
		if (TextMenuLogOut != "") {
		document.getElementById("CadreTextMenu").style.display = 'none';
		document.getElementById("CadreTextLogOut").style.display = 'block';
		document.getElementById("CadreTextLogOut").innerHTML = TextMenuLogOut;
		}
	}
}

function FadeAnimation()
{
	FadeRunning = false;
	for (var d in FadingObject)
	{
		var f=FadingObject[d];

		if(f.state == "FADE_UP")
		{
			if(f.index < f.steps)
				f.index++;
			else
				f.index = f.steps;
			setColor(f);

			if(f.index == f.steps)
				f.state="ON";
			else
				FadeRunning = true;
		}
		else if(f.state == "FADE_UP_DOWN")
		{
			if(f.index < f.steps)
				f.index++;
			else
				f.index = f.steps;
			setColor(f);

			if(f.index == f.steps)
				f.state="FADE_DOWN";
			FadeRunning = true;
		}
		else if(f.state == "FADE_DOWN")
		{
			if(f.index > 0)
				f.index--;
			else
				f.index = 0;
			setColor(f);

			if(f.index == 0)
				f.state="OFF";
			else
				FadeRunning = true;
		}
		else if(f.state == "FADE_DOWN_UP")
		{
			if(f.index > 0)
				f.index--;
			else
				f.index = 0;
			setColor(f);

			if(f.index == 0)
			{
				f.text      = f.next_text;
				f.color     = f.next_color;
				f.next_text = null;
				f.state     ="FADE_UP";
				set_text(f);
			}
			FadeRunning = true;
		}
	}
	/*** Check to see if we need to animate any more frames. ***/
	if(FadeRunning)
		setTimeout("FadeAnimation()", FadeInterval);

}

	//if IE 4+
	if(document.all)
	{
		FadingText('fade1', 2,"eddeae");
	}	
	//else if NS 4
	else if(document.layers)
	{
		FadingText('fade1', 2,"eddeae");
	}
	//else if NS 6 (supports new DOM, may work in IE5) - see Website Abstraction for more info.
	//http://www.wsabstract.com/javatutors/dynamiccontent4.shtml
	else if (document.getElementById)
	{
		FadingText('fade1', 8,"eddeae");
	}
	
	/*** The "Frame Interval" Smaller = faster ***/
	FadeInterval=1;