function AnimationDLN(param)
{
	this._cible 	= null;
	this._debut 	= null;
	this._fin 		= 0;
	this._valeur 	= 100;
	this._type		= 'fondu';
	this._vitesse   = 100;
	
	var instance 	= this;
	//------------------------------------------------------
	//											   		init
	this.init = function(param)
	{
		if(param != null)
		{
			this._cible = (param.cible != null) ? param.cible : null;
			this._cible = (typeof this._cible == 'object') ? this._cible : $$('#'+this._cible);
			
			if(this._cible == null)
			return false;
			
			this._cible._opacite = this._cible.style.offsetOpacity;
			this._debut = (param.debut != null) ? param.debut : this._cible.opacite;
			this._fin = (param.debut != null) ? param.fin : this._fin;
			this._type = (param.type != null) ? param.type : this._type;
			
			this._valeur = (param.valeur == null) ? this._valeur : param.valeur;
			this._type = (param.type == null) ? this._type : param.type
			
		}//if(param != null)
	}//init
	
	//------------------------------------------------------
	//											    afficher
	this.afficher = function(lancerUneFonctionQuandTerminer)
	{
		 this['afficher_'+this._type](lancerUneFonctionQuandTerminer)
	}//afficher
	
	//------------------------------------------------------
	//										   afficher_fondu
	this.afficher_fondu = function(lancerUneFonctionQuandTerminer)
	{
		 var opacite;
		 if(navigator.userAgent.toLowerCase().indexOf("msie") > 0)
		 {
			 opacite = instance._cible.filters.alpha.opacity;
		  //	this._cible.style.filter="alpha(opacity="+txOpacite+")";
		 }//if(navigator.userAgent.toLowerCase().indexOf("msie") > 0)
		if(instance._valeur < 110)
		{
			instance._cible.style.opacity = instance._valeur/100;
			var fonction = function(){instance.afficher(lancerUneFonctionQuandTerminer)};
			setTimeout(fonction, 50);
		}
		else
		{
			if(lancerUneFonctionQuandTerminer != null)
			{
				lancerUneFonctionQuandTerminer.call();
			}
		}
		instance._valeur = instance._valeur + 10
	}//afficher
	
	//------------------------------------------------------
	//											     masquer
	this.masquer = function(lancerUneFonctionQuandTerminer)
	{
		 this['masquer_'+this._type](lancerUneFonctionQuandTerminer)
	}//masquer
	
	//------------------------------------------------------
	//										   masquer_fondu
	this.masquer_fondu = function(lancerUneFonctionQuandTerminer)
	{
		 var opacite;
		 if(navigator.userAgent.toLowerCase().indexOf("msie") > 0)
		 {
			 opacite = instance._cible.filters.alpha.opacity;
		  //	this._cible.style.filter="alpha(opacity="+txOpacite+")";
		 }//if(navigator.userAgent.toLowerCase().indexOf("msie") > 0)
		if(instance._valeur > -10)
		{
			instance._cible.style.opacity = instance._valeur/100;
			var fonction = function(){instance.masquer(lancerUneFonctionQuandTerminer)};
			setTimeout(fonction, 50);
		}
		else
		{
			if(lancerUneFonctionQuandTerminer != null)
			lancerUneFonctionQuandTerminer.call();
		}
		instance._valeur = instance._valeur - 10
		
	}//masquer
	
	//------------------------------------------------------
	//								     afficher_horizontal
	this.afficher_horizontal = function(lancerUneFonctionQuandTerminer)
	{
		 var opacite;
	
		 if(navigator.userAgent.toLowerCase().indexOf("msie") > 0)
		 {
			 opacite = instance._cible.filters.alpha.opacity;
		  //	this._cible.style.filter="alpha(opacity="+txOpacite+")";
		 }//if(navigator.userAgent.toLowerCase().indexOf("msie") > 0)
		if(instance._valeur < 110)
		{
			instance._cible.style.opacity = instance._valeur/100;
			var fonction = function(){instance.afficher(lancerUneFonctionQuandTerminer)};
			setTimeout(fonction, 50);
		}
		else
		{
			if(lancerUneFonctionQuandTerminer != null)
			{
				lancerUneFonctionQuandTerminer.call();
			}
		}
		instance._valeur = instance._valeur + 10
	}//afficher
	
	
	//------------------------------------------------------
	//								     			deplacer
	this.deplacer = function(param)
	{
		
		if(param == null)
		return false;
		
		var direction = param.direction;
		var vitesse = (param.vitesse == null) ? instance._vitesse : param.vitesse
		var px = param.px;
		var debut;
		var fin;
		
		if(direction == 'h')
		{
			debut = instance._cible.offsetLeft
		}
		
		if(direction == 'v')
		{
			debut = instance._cible.offsetTop;
		}
		
		fin = debut + px; 	
		
		
		instance.__fin = (instance.__fin == null) ? fin : instance.__fin;
		
		if(debut > instance.__fin && px < 0)
		{
			
			var deplacement = vitesse;
			var diff = (debut - instance.__fin);
			deplacement = ( diff < deplacement) ? diff : deplacement ;
			var valeur = debut -deplacement+ 'px';
			
			instance._cible.style.left = debut -deplacement+"px"; 
			var fonction = function(){instance.deplacer(param)};
			setTimeout(fonction, 50);
		}
		else if(debut < instance.__fin && px > 0)
		{
			
			var deplacement = vitesse;
			var diff = Math.abs(debut - instance.__fin);
			deplacement = ( diff > deplacement) ? deplacement : diff ;
			var valeur = debut  + deplacement+ 'px';
			//alert('diff:'+Math.abs(diff) + " deplacement: " + deplacement)
			instance._cible.style.left = valeur; 
			var fonction = function(){instance.deplacer(param)};
			setTimeout(fonction, 50);
		}
		else
		{
			//alert('fini')
			instance.__fin = null;
			if(param.lancerUneFonctionQuandTerminer != null)
			{
				param.lancerUneFonctionQuandTerminer.call();
			}
		}
		
	}//deplacer
	
	
	this.animation = function(debut, fin, type)
	{
		
		this._interval = setInterval("this.animation()", 1000)
	}//animation
	
	this.init(param);
	
}//AnimationDLN
