 //variables globales (ne pas toucher)
 var fad_objets=Array();
 var fad_millisec=Array();
 var fad_curStep=Array();
 var fad_hexDebut=Array();
 var fad_hexFin=Array();
 var fad_diff=Array();
 var fad_loopFade=Array();

 var fad_etapes = 15;

 function Fading(ObjetCible, hexaDebut, hexaFin, nbMillisec, nbLoops)
 {
 var diffTmp = Array();
 fad_objets.push(ObjetCible);
 fad_curStep.push(1);
 fad_hexDebut.push(hexaDebut);
 fad_hexFin.push(hexaFin);
 fad_millisec.push(nbMillisec/fad_etapes);
 fad_loopFade.push(nbLoops);

 for(i=0;i<3;i++)
 diffTmp[i] = hexaFin[i] - hexaDebut[i];
 fad_diff.push(diffTmp);
 GoFading(fad_objets.length-1, 1);
 }

 function GoFading(ID, Sens)
 {
 var curHex = Array();

 if(fad_curStep[ID] < fad_etapes)
 {
 if(Sens)
 {
 for(i=0;i<3;i++)
 curHex[i] = fad_hexDebut[ID][i] + Math.round(fad_diff[ID][i]/fad_etapes*fad_curStep[ID]);
 } else {
 for(i=0;i<3;i++)
 curHex[i] = fad_hexFin[ID][i] - Math.round(fad_diff[ID][i]/fad_etapes*fad_curStep[ID]);
 }

 fad_objets[ID].style.color="rgb("+curHex[0]+","+curHex[1]+","+curHex[2]+")";
for(j=0; j < fad_objets[ID].children.length; j++)
{
	fad_objets[ID].children[j].style.color="rgb("+curHex[0]+","+curHex[1]+","+curHex[2]+")";
};
 fad_curStep[ID]++;
 setTimeout( function() { GoFading(ID,Sens) },fad_millisec[ID]);

 }
 else
 {
 fad_curStep[ID]=1;

 if(Sens)
 {
 fad_objets[ID].style.color="rgb("+fad_hexFin[ID][0]+","+fad_hexFin[ID][1]+","+fad_hexFin[ID][2]+")";

 if(fad_loopFade[ID] != null)
 GoFading(ID, 0);
 } else {
 fad_objets[ID].style.color="rgb("+fad_hexDebut[ID][0]+","+fad_hexDebut[ID][1]+","+fad_hexDebut[ID][2]+")";

 if(fad_loopFade[ID]-1)
 fad_loopFade[ID]--;
 else return;

 GoFading(ID, 1);
 }
 }
 }



