//*************************************************************************************************
//FLASH SUCKS LIBRARY		v0.1.3		17/10/2005
//*************************************************************************************************
//DOM VERSION
//*************************************************************************************************

  
  
//*************************************************************************************************  
//Copyleft BlueScreen 2003-2006
//http://www.b-l-u-e-s-c-r-e-e-n[.net|.com]
//*************************************************************************************************
//FICHIER JavaScript
//*************************************************************************************************

//*************************************************************************************************
//INIT
//*************************************************************************************************
fslVars = new Array();
function fslInit()
{  
  fslVars['version'] = 0.1;			//FSL version
  fslVars['compatibility'] = "DOM";		//FSL Compatibitily
  
//Opacity system
      if(document.all && document.getElementById) fslVars['opacityAtribute'] = "filters.alpha.opacity";
      else if(!document.all && document.getElementById) 
		{
		if(document.getElementById('fslTests').style.MozOpacity!="undefined") fslVars['opacityAtribute'] = "style.MozOpacity";
		else if(document.getElementById('fslTests').style.KHTMLOpacity!="undefined") fslVars['opacityAtribute'] = "style.KHTMLOpacity";
		else if(document.getElementById('fslTests').style.opacity!="undefined") fslVars['opacityAtribute'] = "style.opacity";
		else fslVars['opacityAtribute'] = "Unknown";
		}
      else fslVars['opacityAtribute'] = "Unknown";
}
//*************************************************************************************************
//FONCTION PRINCIPALE
//*************************************************************************************************
function fsl(cible,action,params,options)
{
var chn = params;
if( params && ( typeof(chn) != "number") ) 
	{	
	if( (chn.indexOf("=",0)>0) && (action != "content") ) eval( "var " + chn.replace(",","; var ") );		
	}

var chn = options;
if( options && ( typeof(chn) != "number") ) 
	{	
	if( (chn.indexOf("=",0)>0) && (action != "content") ) eval( "var " + chn.replace(",","; var ") );	
	}
				
switch(action)
	{
	//_________________________________________________________________________________________
	case "visibility":
	//_________________________________________________________________________________________
	if(params) document.getElementById(cible).style.visibility=params;
	else
		{		
		if(document.getElementById(cible).style.visibility=="visible") return "visible";
		return "hidden";
		}		
	break;
	//_________________________________________________________________________________________
	case "left":
	//_________________________________________________________________________________________

	if(typeof(params)=="number")
		{
		if(typeof(mode) == "undefined" || mode=="absolute" || mode=="") document.getElementById(cible).style.left=params;
		else document.getElementById(cible).style.left=fsl(cible,'left','unit=\'no\'')+params;
		}
		else if( typeof(unit)!="undefined" && unit=="no" )	
			{
			out=document.getElementById(cible).style.left;			
			if(out.charAt(out.length-2) == "p") out=out.slice(0,out.length-2);
			return new Number(out);
			}	
			else return document.getElementById(cible).style.left;
	break;
	//_________________________________________________________________________________________
	case "top":
	//_________________________________________________________________________________________

	if(typeof(params)=="number")
		{
		if(typeof(mode) == "undefined" || mode=="absolute" || mode=="") document.getElementById(cible).style.top=params;
		else document.getElementById(cible).style.top=fsl(cible,'top','unit=\'no\'')+params;
		}
		else if( typeof(unit)!="undefined" && unit=="no" )	
			{
			out=document.getElementById(cible).style.top;			
			if(out.charAt(out.length-2) == "p") out=out.slice(0,out.length-2);
			return new Number(out);
			}	
			else return document.getElementById(cible).style.top;
	break;
	//_________________________________________________________________________________________
	case "width":
	//_________________________________________________________________________________________

	if(typeof(params)=="number")
		{				
		if(typeof(align) != "undefined" && align!="left") 
				{	
						
				switch(align)
					{															
					case "center": 	var pX2=-(params/2)+fsl(cible,"width","unit='no'")/2;
							fsl(cible,'left',pX2,'mode="relative"')	
							break;
					case "right": 	var pX2=-params+(fsl(cible,"width","unit='no'"));
							fsl(cible,'left',pX2,'mode="relative"')
							break;	
					}
				}
		document.getElementById(cible).style.width=params;
		}
		else if( typeof(unit)!="undefined" && unit=="no" )	
			{
			out=document.getElementById(cible).style.width;			
			if(out.charAt(out.length-2) == "p") out=out.slice(0,out.length-2);
			return new Number(out);
			}
			else return document.getElementById(cible).style.width;
	break;
	//_________________________________________________________________________________________	
	case "height":
	//_________________________________________________________________________________________

	if(typeof(params)=="number")
		{				
		if(typeof(align) != "undefined" && align!="top") 
				{	
						
				switch(align)
					{															
					case "center": 	var pX2=-(params/2)+fsl(cible,"height","unit='no'")/2;
							fsl(cible,'top',pX2,'mode="relative"')	
							break;
					case "bottom": 	var pX2=-params+(fsl(cible,"height","unit='no'"));
							fsl(cible,'top',pX2,'mode="relative"')
							break;	
					}
				}
		document.getElementById(cible).style.height=params;
		}
		else if( typeof(unit)!="undefined" && unit=="no" )	
			{
			out=document.getElementById(cible).style.height;			
			if(out.charAt(out.length-2) == "p") out=out.slice(0,out.length-2);
			return new Number(out);
			}
			else return document.getElementById(cible).style.height;
	break;
	//_________________________________________________________________________________________		
	case "content":
	//_________________________________________________________________________________________
	if(params)
		{
		document.getElementById(cible).innerHTML=params;
		}
		else
			{
			return document.getElementById(cible).innerHTML;
			}	
	break;
	//_________________________________________________________________________________________	
	case "opacity":
	//_________________________________________________________________________________________
	if(typeof(detect) != "undefined") 
		{ 
		//detection manuelle du parametre opacity (utilise lors de la declaration des layers puisque avant onLoad="fslInit()" )
		if(document.all && document.getElementById) fslVars['opacityAtribute'] = "filters.alpha.opacity";
		else if(!document.all && document.getElementById) 
				{
				if(document.getElementById(cible).style.MozOpacity!="undefined") fslVars['opacityAtribute'] = "style.MozOpacity";
				else if(document.getElementById(cible).style.KHTMLOpacity!="undefined") fslVars['opacityAtribute'] = "style.KHTMLOpacity";
				else if(document.getElementById(cible).style.opacity!="undefined") fslVars['opacityAtribute'] = "style.opacity";
				else fslVars['opacityAtribute'] = "Unknown";
				}
		else fslVars['opacityAtribute'] = "Unknown";		
		}
	if(params)
		{
		if(params==100) params=99;
		if(fslVars['opacityAtribute']!="filters.alpha.opacity") params = params/100;		
		eval("document.getElementById(cible)."+fslVars['opacityAtribute']+" = params"); 
		}
		else
			{
			nbr = eval("document.getElementById(cible)."+fslVars['opacityAtribute']);
			if(fslVars['opacityAtribute']!="filters.alpha.opacity") nbr=nbr*100;
			return(nbr)
			}
	break;
	//_________________________________________________________________________________________		
	case "bgcolor":
	case "bgColor":
	//_________________________________________________________________________________________
	if(params)
		{
		exp=reg = new RegExp("^[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]$");
 		if(reg.test(params)) params="#"+params;
		document.getElementById(cible).style.backgroundColor=params;		
		}
		else
			{
	  		return document.getElementById(cible).style.backgroundColor;	    
			}	
	//_________________________________________________________________________________________	
	
	}
}


//*************************************************************************************************
//ANNIMATIONS
//*************************************************************************************************
function fsl_animate(cible,params,sensor)
{
attributeName="";
from=0;
to=0;
begin=0;
dur=0;
freq=1;

params = params.replace(",", ";var ")
reg = new RegExp( "([0-9]*)(x)([0-9]*)", "g" ) ;
params=params.replace(reg, "$1,$3");

eval(params);


// alert("attributeName:"+attributeName+"\nfrom:"+from+"\nto:"+to+"\nbegin:"+begin+"\ndur:"+dur+"\nfreq:"+freq+"\nsensor:"+sensor)

	if(attributeName=="color") 
	{
	nombreLoop=dur/freq;

	if(from.charAt(0) == "#") startChar=1; else startChar=0;
	
	from=[HexToDec(from.charAt(startChar)+from.charAt(startChar+1)),HexToDec(from.charAt(startChar+2)+from.charAt(startChar+3)),HexToDec(from.charAt(startChar+4)+from.charAt(startChar+5))];
	//devel_outWrite('uD!!!!!!! from:'+from,'black');
	levelMax=[HexToDec(to.charAt(startChar)+to.charAt(startChar+1)),HexToDec(to.charAt(startChar+2)+to.charAt(startChar+3)),HexToDec(to.charAt(startChar+4)+to.charAt(startChar+5))];

	pitch= [Math.abs((levelMax[0]-from[0])/nombreLoop),Math.abs((levelMax[1]-from[1])/nombreLoop),Math.abs((levelMax[2]-from[2])/nombreLoop)];		
	delai=dur/nombreLoop;

	chn = "fsl_animate_loop(["+from+"],["+from+"],["+levelMax+"],"+delai+",'"+cible+"','"+attributeName+"',["+pitch+"],\""+sensor+"\",'"+mode+"','"+repeatParam+"')";	
	
	setTimeout(chn,begin)
	}			
	else if(attributeName=="position") 
	{
	fsl_animate(cible,'attributeName=\'posX\', from='+from[0]+', to='+to[0]+', begin='+begin+', dur='+dur+', freq='+freq)
	fsl_animate(cible,'attributeName=\'posY\', from='+from[1]+', to='+to[1]+', begin='+begin+', dur='+dur+', freq='+freq,sensor)
	}
	else if(attributeName=="size") 
	{
	fsl_animate(cible,'attributeName=\'width\', from='+from[0]+', to='+to[0]+', begin='+begin+', dur='+dur+', freq='+freq)
	fsl_animate(cible,'attributeName=\'height\', from='+from[1]+', to='+to[1]+', begin='+begin+', dur='+dur+', freq='+freq,sensor)
	}		
	else
	{
	nombreLoop=dur/freq;
	pitch=Math.abs( (to-from)/nombreLoop );
	delai=dur/nombreLoop;
	chn = "fsl_animate_loop("+from+","+from+","+to+","+delai+",'"+cible+"','"+attributeName+"',"+pitch+",\""+sensor+"\")";	
	setTimeout(chn,begin)
	}


}


mode="";
repeatParam="";

function fsl_animate_loop(from,levelAct,levelMax,delai,elemName,attributeName,pitch,capteur,mode,repeatParam)
{ 
//devel_outWrite('udLoop FROM:'+from,'white');
//if(elemName=="test5") devel_outWrite('from:'+from+'<BR>levelAct:'+levelAct+'<BR>levelMax:'+levelMax+'<BR>delai:'+delai+'<BR>elemName:'+elemName+'<BR>pitch:'+pitch+'<BR>capteur:'+capteur+'<BR>mode:'+mode+'<BR>repeatParam:'+repeatParam+'<HR>','green');
//if(elemName=="test7") devel_outWrite('from:'+from+'<BR>levelAct:'+levelAct+'<BR>levelMax:'+levelMax+'<BR>delai:'+delai+'<BR>elemName:'+elemName+'<BR>pitch:'+pitch+'<BR>capteur:'+capteur+'<BR>mode:'+mode+'<BR>repeatParam:'+repeatParam+'<HR>','red');

//if(elemName=="test5") devel_outWrite('ICI3 from:'+from+'<HR>','blue');			

//alert(repeat)
if(attributeName=="color")
	{
	if(from[0]<levelMax[0]) levelAct[0]=levelAct[0]+pitch[0]; else levelAct[0]=levelAct[0]-pitch[0];
	if(from[1]<levelMax[1]) levelAct[1]=levelAct[1]+pitch[1]; else levelAct[1]=levelAct[1]-pitch[1];
	if(from[2]<levelMax[2]) levelAct[2]=levelAct[2]+pitch[2]; else levelAct[2]=levelAct[2]-pitch[2];		
	}
	else
	{
	if(from<levelMax) levelAct=levelAct+pitch;
	else levelAct=levelAct-pitch;
	}

//if(elemName=="test5") devel_outWrite('ICI2 from:'+from+'<HR>','blue');			

switch(attributeName)
	{
	case "width": 	//uDwidth(elemName,levelAct); 
			fsl(elemName,'width',levelAct); 												
			chn="fsl_animate_loop("+from+","+levelAct+","+levelMax+","+delai+",'"+elemName+"','"+attributeName+"',"+pitch+",\""+capteur+"\")";
			break;
			
	case "height": 	//uDheight(elemName,levelAct); 
			fsl(elemName,'height',levelAct); 												
			chn="fsl_animate_loop("+from+","+levelAct+","+levelMax+","+delai+",'"+elemName+"','"+attributeName+"',"+pitch+",\""+capteur+"\")";
			break;
	
	case "posX": 	//uDmoveToX(elemName,levelAct); 
			fsl(elemName,'left',levelAct);
			chn="fsl_animate_loop("+from+","+levelAct+","+levelMax+","+delai+",'"+elemName+"','"+attributeName+"',"+pitch+",\""+capteur+"\")";
			break;
			
	case "posY": 	//uDmoveToY(elemName,levelAct); 
			fsl(elemName,'top',levelAct);
			chn="fsl_animate_loop("+from+","+levelAct+","+levelMax+","+delai+",'"+elemName+"','"+attributeName+"',"+pitch+",\""+capteur+"\")";
			break;	

	case "color": 																			
			uDbgColor(elemName,'#'+DecToHex(levelAct[0])+''+DecToHex(levelAct[1])+''+DecToHex(levelAct[2])); 
			//if(elemName=="test5") devel_outWrite('ICI from:'+from+'<HR>','blue');			
			chn="fsl_animate_loop(["+from+"],["+levelAct+"],["+levelMax+"],"+delai+",'"+elemName+"','"+attributeName+"',["+pitch+"],\""+capteur+"\",'"+mode+"','"+repeatParam+"')";
			break;	

	case "opacity": 																			
			fsl(elemName,'opacity',levelAct); 
			//if(elemName=="test5") devel_outWrite('ICI from:'+from+'<HR>','blue');			
			chn="fsl_animate_loop(["+from+"],["+levelAct+"],["+levelMax+"],"+delai+",'"+elemName+"','"+attributeName+"',["+pitch+"],\""+capteur+"\",'"+mode+"','"+repeatParam+"')";
			break;	
	}


if(attributeName!="color")
	{
	//TT PARAM SAUF COLOR:
	
	if( ( (from<levelMax) && (levelAct+pitch<levelMax) ) | ( (from>levelMax) && (levelAct-pitch>levelMax) ) ) setTimeout(chn,delai);
	else 
		{
		//FIN DE L ANNIMATION:
		switch(attributeName)
			{
			//case "width": 	uDwidth(elemName,levelMax); break;
			//case "height": 	uDheight(elemName,levelMax); break;							
			//case "posX": 	uDmoveToX(elemName,levelMax); break;							
			//case "posY": 	uDmoveToY(elemName,levelMax); break;														

			case "posX": 	fsl(elemName,'left',levelMax); break;							
			case "posY": 	fsl(elemName,'top',levelMax); break;														
			case "width": 	fsl(elemName,'width',levelMax); break;														
			case "height": 	fsl(elemName,'height',levelMax); break;														
						
			
			}
		if(capteur) eval(capteur);				
		}
	}
	else 
		{

		//COLOR:
		
		if( ( ((from[0]<levelMax[0])&&(levelAct[0]+pitch[0])<(levelMax[0]))|((from[0]>levelMax[0])&&(levelAct[0]-pitch[0]>levelMax[0])) ) | ( ((from[1]<levelMax[1])&&(levelAct[1]+pitch[1])<(levelMax[1]))|((from[1]>levelMax[1])&&(levelAct[1]-pitch[1]>levelMax[1])) )|( ((from[2]<levelMax[2])&&(levelAct[2]+pitch[2])<(levelMax[2]))|((from[2]>levelMax[2])&&(levelAct[2]-pitch[2]>levelMax[2])) ) ) setTimeout(chn,delai); 
		else 
			{

//if(elemName=="test5") devel_outWrite('LIMIT<HR>','pink');			
			
			if(capteur) eval(capteur);		
			//alert(modeParam)
			
			switch(mode)
				{
				case "init":	uDbgColor(elemName,'#'+DecToHex(from[0])+''+DecToHex(from[1])+''+DecToHex(from[2]));
						//from=levelMax;
						levelAct=from;
						break;

				case "back":	fsl_animate_loop(levelMax,levelMax,from,delai,elemName,attributeName,pitch,capteur,'backInProgress',repeatParam)
						break;
											
				default:	uDbgColor(elemName,'#'+DecToHex(levelMax[0])+''+DecToHex(levelMax[1])+''+DecToHex(levelMax[2]));
						levelAct=levelMax;
						
				}

			if(repeatParam&&mode!="back"&&(repeatParam>1|repeatParam=="infinite"))
				{				
				if(repeatParam!="infinite") repeatParam--;

//if(elemName=="test5") devel_outWrite('REPEAT<HR>','red');

				if(mode=="backInProgress") 
					{
					//devel_outWrite('------backReverse-----','red');
					//alert("bIP")
					mode="back";
						cachFrom=from;
						from=levelMax;
						levelMax=cachFrom;
					}
				//devel_outWrite('REPEAT EXEC!','white')
				fsl_animate_loop(from,from,levelMax,delai,elemName,attributeName,pitch,capteur,mode,repeatParam);
				}

				
			}
			
			
		}

}



//*************************************************************************************************
//SOUS FONCTIONS
//*************************************************************************************************





//*************************************************************************************************
//*************************************************************************************************
//*************************************************************************************************
//*************************************************************************************************
//*************************************************************************************************
//C H A N T I E R
//*************************************************************************************************
//*************************************************************************************************
//*************************************************************************************************
//*************************************************************************************************
//*************************************************************************************************









//*************************************************************************************************
//SIZE
//*************************************************************************************************

function uDsize(nom,largeur,hauteur)
{
if(largeur)
	{
	uDwidth(nom,largeur);
	uDheight(nom,hauteur);
	}
	else {
		uDresult = new Array();
		uDresult[0] = uDwidth(nom);
		uDresult[1] = uDheight(nom);
		return uDresult;
	     }
}



//*************************************************************************************************
//COLOR
//*************************************************************************************************

function uDbgColor(nom,couleur)
{
//alert(couleur)
if(couleur)
	{
	//MODIFIER COULEUR
	if(couleur.charAt(0) != "#") couleur="#"+couleur;
	document.getElementById(nom).style.backgroundColor=couleur;	
	}	
	else
	    {
	    //RETOURNER COULEUR
	    return document.getElementById(nom).style.backgroundColor;	    
	    }
}

//*************************************************************************************************
//CONTENU
//*************************************************************************************************

function uDcontent(nom,content)
{

if(content)
	{
	//MODIFIE CONTENU
	document.getElementById(nom).innerHTML=content;
	}
	else
	    {
	    //RETOURNE CONTENU
	    return document.getElementById(nom).innerHTML;	    
	    }
}

//*************************************************************************************************
//FONCTIONS ANNIMATION
//*************************************************************************************************

//devel_outOpen()

function uDanimate(elemName,attributeName,from,to,begin,dur,freq,capteur,mode,repeatParam)
{

//devel_outWrite('elemName:'+elemName+'<BR>attributeName:'+attributeName+'<BR>from:'+from+'<BR>to:'+to+'<BR>begin:'+begin+'<BR>dur:'+dur+'<BR>freq:'+freq+'<BR>capteur:'+capteur+'<BR>mode:'+mode+'<BR>repeatParam:'+repeatParam+'<HR>','green');

//alert(repeatParam)
	if(attributeName=="color") 
	{
	nombreLoop=dur/freq;

	if(from.charAt(0) == "#") startChar=1; else startChar=0;
	
	from=[HexToDec(from.charAt(startChar)+from.charAt(startChar+1)),HexToDec(from.charAt(startChar+2)+from.charAt(startChar+3)),HexToDec(from.charAt(startChar+4)+from.charAt(startChar+5))];
	//devel_outWrite('uD!!!!!!! from:'+from,'black');
	levelMax=[HexToDec(to.charAt(startChar)+to.charAt(startChar+1)),HexToDec(to.charAt(startChar+2)+to.charAt(startChar+3)),HexToDec(to.charAt(startChar+4)+to.charAt(startChar+5))];

	pitch= [Math.abs((levelMax[0]-from[0])/nombreLoop),Math.abs((levelMax[1]-from[1])/nombreLoop),Math.abs((levelMax[2]-from[2])/nombreLoop)];		
	delai=dur/nombreLoop;

	chn = "uDanimateLoop(["+from+"],["+from+"],["+levelMax+"],"+delai+",'"+elemName+"','"+attributeName+"',["+pitch+"],'"+capteur+"','"+mode+"','"+repeatParam+"')";	
	
	setTimeout(chn,begin)
	}
	
	else if(attributeName=="position") 
	{
	uDanimate(elemName,"posX",from[0],to[0],begin,dur,freq)
	uDanimate(elemName,"posY",from[1],to[1],begin,dur,freq,capteur)
	}

	else if(attributeName=="width-height") 
	{
	uDanimate(elemName,"width",from[0],to[0],begin,dur,freq)
	uDanimate(elemName,"height",from[1],to[1],begin,dur,freq,capteur)
	}
	
	
	else
	{
	nombreLoop=dur/freq;
	pitch=Math.abs( (to-from)/nombreLoop );
	delai=dur/nombreLoop;
	chn = "uDanimateLoop("+from+","+from+","+to+","+delai+",'"+elemName+"','"+attributeName+"',"+pitch+",'"+capteur+"')";	
	setTimeout(chn,begin)
	}
}

function uDanimateLoop(from,levelAct,levelMax,delai,elemName,attributeName,pitch,capteur,mode,repeatParam)
{
//devel_outWrite('udLoop FROM:'+from,'white');
//if(elemName=="test5") devel_outWrite('from:'+from+'<BR>levelAct:'+levelAct+'<BR>levelMax:'+levelMax+'<BR>delai:'+delai+'<BR>elemName:'+elemName+'<BR>pitch:'+pitch+'<BR>capteur:'+capteur+'<BR>mode:'+mode+'<BR>repeatParam:'+repeatParam+'<HR>','green');
//if(elemName=="test7") devel_outWrite('from:'+from+'<BR>levelAct:'+levelAct+'<BR>levelMax:'+levelMax+'<BR>delai:'+delai+'<BR>elemName:'+elemName+'<BR>pitch:'+pitch+'<BR>capteur:'+capteur+'<BR>mode:'+mode+'<BR>repeatParam:'+repeatParam+'<HR>','red');

//if(elemName=="test5") devel_outWrite('ICI3 from:'+from+'<HR>','blue');			

//alert(repeat)
if(attributeName=="color")
	{
	if(from[0]<levelMax[0]) levelAct[0]=levelAct[0]+pitch[0]; else levelAct[0]=levelAct[0]-pitch[0];
	if(from[1]<levelMax[1]) levelAct[1]=levelAct[1]+pitch[1]; else levelAct[1]=levelAct[1]-pitch[1];
	if(from[2]<levelMax[2]) levelAct[2]=levelAct[2]+pitch[2]; else levelAct[2]=levelAct[2]-pitch[2];		
	}
	else
	{
	if(from<levelMax) levelAct=levelAct+pitch;
	else levelAct=levelAct-pitch;
	}

//if(elemName=="test5") devel_outWrite('ICI2 from:'+from+'<HR>','blue');			

switch(attributeName)
	{
	case "width": 	//uDwidth(elemName,levelAct); 
			fsl(elemName,'width',levelAct); 												
			chn="uDanimateLoop("+from+","+levelAct+","+levelMax+","+delai+",'"+elemName+"','"+attributeName+"',"+pitch+",'"+capteur+"')";
			break;
			
	case "height": 	//uDheight(elemName,levelAct); 
			fsl(elemName,'height',levelAct); 												
			chn="uDanimateLoop("+from+","+levelAct+","+levelMax+","+delai+",'"+elemName+"','"+attributeName+"',"+pitch+",'"+capteur+"')";
			break;
	
	case "posX": 	//uDmoveToX(elemName,levelAct); 
			fsl(elemName,'left',levelAct);
			chn="uDanimateLoop("+from+","+levelAct+","+levelMax+","+delai+",'"+elemName+"','"+attributeName+"',"+pitch+",'"+capteur+"')";
			break;
			
	case "posY": 	//uDmoveToY(elemName,levelAct); 
			fsl(elemName,'top',levelAct);
			chn="uDanimateLoop("+from+","+levelAct+","+levelMax+","+delai+",'"+elemName+"','"+attributeName+"',"+pitch+",'"+capteur+"')";
			break;	

	case "color": 																			
			uDbgColor(elemName,'#'+DecToHex(levelAct[0])+''+DecToHex(levelAct[1])+''+DecToHex(levelAct[2])); 
			//if(elemName=="test5") devel_outWrite('ICI from:'+from+'<HR>','blue');			
			chn="uDanimateLoop(["+from+"],["+levelAct+"],["+levelMax+"],"+delai+",'"+elemName+"','"+attributeName+"',["+pitch+"],'"+capteur+"','"+mode+"','"+repeatParam+"')";
			break;	
	}


if(attributeName!="color")
	{
	//TT PARAM SAUF COLOR:
	
	if( ( (from<levelMax) && (levelAct+pitch<levelMax) ) | ( (from>levelMax) && (levelAct-pitch>levelMax) ) ) setTimeout(chn,delai);
	else 
		{
		//FIN DE L ANNIMATION:
		switch(attributeName)
			{
			//case "width": 	uDwidth(elemName,levelMax); break;
			//case "height": 	uDheight(elemName,levelMax); break;							
			//case "posX": 	uDmoveToX(elemName,levelMax); break;							
			//case "posY": 	uDmoveToY(elemName,levelMax); break;														

			case "posX": 	fsl(elemName,'left',levelMax); break;							
			case "posY": 	fsl(elemName,'top',levelMax); break;														
			case "width": 	fsl(elemName,'width',levelMax); break;														
			case "height": 	fsl(elemName,'height',levelMax); break;														
						
			
			}
		if(capteur) eval(capteur);				
		}
	}
	else 
		{

		//COLOR:
		
		if( ( ((from[0]<levelMax[0])&&(levelAct[0]+pitch[0])<(levelMax[0]))|((from[0]>levelMax[0])&&(levelAct[0]-pitch[0]>levelMax[0])) ) | ( ((from[1]<levelMax[1])&&(levelAct[1]+pitch[1])<(levelMax[1]))|((from[1]>levelMax[1])&&(levelAct[1]-pitch[1]>levelMax[1])) )|( ((from[2]<levelMax[2])&&(levelAct[2]+pitch[2])<(levelMax[2]))|((from[2]>levelMax[2])&&(levelAct[2]-pitch[2]>levelMax[2])) ) ) setTimeout(chn,delai); 
		else 
			{

//if(elemName=="test5") devel_outWrite('LIMIT<HR>','pink');			
			
			if(capteur) eval(capteur);		
			//alert(modeParam)
			
			switch(mode)
				{
				case "init":	uDbgColor(elemName,'#'+DecToHex(from[0])+''+DecToHex(from[1])+''+DecToHex(from[2]));
						//from=levelMax;
						levelAct=from;
						break;

				case "back":	uDanimateLoop(levelMax,levelMax,from,delai,elemName,attributeName,pitch,capteur,'backInProgress',repeatParam)
						break;
											
				default:	uDbgColor(elemName,'#'+DecToHex(levelMax[0])+''+DecToHex(levelMax[1])+''+DecToHex(levelMax[2]));
						levelAct=levelMax;
						
				}

			if(repeatParam&&mode!="back"&&(repeatParam>1|repeatParam=="infinite"))
				{				
				if(repeatParam!="infinite") repeatParam--;

//if(elemName=="test5") devel_outWrite('REPEAT<HR>','red');

				if(mode=="backInProgress") 
					{
					//devel_outWrite('------backReverse-----','red');
					//alert("bIP")
					mode="back";
						cachFrom=from;
						from=levelMax;
						levelMax=cachFrom;
					}
				//devel_outWrite('REPEAT EXEC!','white')
				uDanimateLoop(from,from,levelMax,delai,elemName,attributeName,pitch,capteur,mode,repeatParam);
				}

				
			}
			
			
		}

}


//*************************************************************************************************
//Listener : position
//*************************************************************************************************

var posMouseX=0;
var posMouseY=0;



	function mouseMove (evt) {
		var x=0; var y=0;

	if(document.layers) { posMouseX=evt.posMouseY; y=evt.y; }
	if(document.all) { posMouseX=event.clientX; posMouseY=event.clientY; }
else 	if(document.getElementById) { posMouseX=evt.clientX; posMouseY=evt.clientY; }

posMouseXdoc = (navigator.appName.substring(0,3) == "Net") ? evt.pageX : event.x+document.body.scrollLeft;
posMouseYdoc = (navigator.appName.substring(0,3) == "Net") ? evt.pageY : event.y+document.body.scrollTop;


		//++++++++++++++++
		//window.status = "X="+posMouseX + '; Y=' + posMouseY;
		//xAct = x
		//yAct = y
		//++++++++++++++++
	}



function uDeventMouse(chn)
{
if (document.layers) document.captureEvents(Event.MOUSEMOVE);
if (document.layers || document.all) document.onmousemove = mouseMove;
if (document.addEventListener) document.addEventListener('mousemove', mouseMove, true);
uDmouseMoveAction=chn
}

//*************************************************************************************************

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//SOUS FONCTIONS
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//d�ecte le navigateur utilis�
ie=0;
gecko=0;

ie=navigator.userAgent.toLowerCase().indexOf("msie");
gecko=navigator.userAgent.toLowerCase().indexOf("gecko");

if(ie>0){version=parseFloat(navigator.userAgent.substring(ie+5,ie+8))}
if((ie>0 && version<5) || (ie<0 && gecko<0)){
						//alert("error");
						void(0);
					    }


var hexa = "0123456789ABCDEF";

//Conversion Decimal --> Hexadecimal
function DecToHex(nb)
{
hexNum = hexa.charAt(Math.floor(nb/16)) + hexa.charAt(nb%16);
if(hexNum.length==1) hexNum="0"+hexNum;
return hexNum; 
}

//Conversion Hexad�imal --> Decimal
function HexToDec(nb)
{
y=hexa.indexOf(nb.charAt(0))*16;
z=hexa.indexOf(nb.charAt(1));
return(y+z);
}

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//*************************************************************************************************
//*************************************************************************************************
//*************************************************************************************************


