function fade(E, property, authFadeOut, os, oe, delayFadeOut, vFadeOut, authFadeIn, is, ie, delayFadeIn, vFadeIn){
	
	var _self = this;
	
	this.fading = function (Nstep,vFade,te,ts,delay){
		if(Nstep>0 && _self.step>vFade)
		{
			var s = (_self.step)/Nstep;
			var r = (te[0]+Math.floor((ts[0]-te[0])*s));
			var g = (te[1]+Math.floor((ts[1]-te[1])*s));
			var b = (te[2]+Math.floor((ts[2]-te[2])*s));
			eval('E.style.'+property+' = "rgb('+r+','+g+','+b+')"');
			_self.step -= vFade;
			_self.setFade = setTimeout(function(){_self.fading(Nstep,vFade,te,ts,delay)},delay);
		}
		else eval('E.style.'+property+' = "rgb('+te[0]+','+te[1]+','+te[2]+')"');
	}
	
	if(authFadeIn)
	{
		var NstepFadeIn = Math.max(Math.max(Math.abs(is[0]-ie[0]),Math.abs(is[1]-ie[1])),Math.abs(is[2]-ie[2]));
		addevent(E,'mouseover',function (){
			clearTimeout(_self.setFade);
			_self.step = NstepFadeIn;
			_self.fading(NstepFadeIn,vFadeIn,ie,is,delayFadeIn);
		}, false);
	}
	if(authFadeOut)
	{
		var NstepFadeOut = Math.max(Math.max(Math.abs(os[0]-oe[0]),Math.abs(os[1]-oe[1])),Math.abs(os[2]-oe[2]));
		addevent(E,'mouseout',function (){
			clearTimeout(_self.setFade);
			_self.step = NstepFadeOut;
			_self.fading(NstepFadeOut,vFadeOut,oe,os,delayFadeOut);
		}, false);
	}
}

function addevent(obj,evt,fn,capt){
	if(obj.addEventListener)
	{
		obj.addEventListener(evt, fn, capt);
		return true;
	}
	else if(obj.attachEvent)
	{
		obj.attachEvent('on'+evt, fn);
		return true;
	}
	else return false;
}

function initFade() {
	

	var liste = document.getElementById('menut').getElementsByTagName("a");
	var obj4 = new Array();

	for (k=0;k<liste.length;k++)
	{
		obj4[k] = new fade (
			liste[k], 'color',
			// fade out
			true, new Array(59,126,218), new Array(255,255,255), 50, 8,
			// fade in avec une seule couleur
			true, new Array(36,100,188), new Array(36,100,188), 5, 12
		);
	}
}

if (document.getElementById && document.getElementsByTagName)
{
	addevent(window,'load',initFade, false);
}