
		function Fading(){
						//L'objet qui sera affecté par l'effet
						MyObj = null;
						//Le timer de l'objet
						Timer  = null;
						start    = null;
						end     = null;
						IsIE     = null;
			}
		Fading.prototype.fade = function (start, end)
			{
				if(start==end){return false}
					start>=end?start-=5:start+=5;

					this.IsIE?this.MyObj.filters[0].opacity=start:this.MyObj.style.opacity=start/100;
				
					var temp  = this ;
					clearTimeout(temp.timer);
					if(start != end)
					{
					temp.timer = setTimeout(function(){temp.fade(start,end);},20);
					}
					else
					{
					clearTimeout(temp.timer);
					}
			}
			//Méthode permettant d'associer le fading sur un objet
			/*
			 * Values : hash contenant la valeur de départ et d'arrivée :{start:X,end:X}
			 * Action : hash contenant les actions sur lesquelle appeler l'effet {show:X,hide:X}
			 */			
			Fading.prototype.init = function(Element, Values, Actions){
											this.MyObj = Element;
											this.start = Values['start'];
											this.end = Values['end'];
											this.IsIE = !!document.all;
											var temp = this;
											
											//Ajout du filtre dynamiquement pour combler une bug sous ie
											if (this.IsIE) {
												this.MyObj.style.filter = 'alpha(opacity=' + this.start + ')';
												this.MyObj.filters[0].opacity = this.start;
											}
											else {
												this.MyObj.style.opacity=start /100;
											}
											//Assignation des évènements sur l'objet
											if (this.MyObj.addEventListener) {
												this.MyObj.addEventListener(Actions['show'], function(){
													temp.fade(temp.start, temp.end)
												}, false);
												this.MyObj.addEventListener(Actions['hide'], function(){
													temp.fade(temp.end, temp.start)
												}, false);
											}
											else 
												if (this.MyObj.attachEvent) {
													this.MyObj.attachEvent('on' + Actions['show'], function(){
														temp.fade(temp.start, temp.end)
													});
													this.MyObj.attachEvent('on' + Actions['hide'], function(){
														temp.fade(temp.end, temp.start)
													});
												}
			}
			

                                
function boxFading(BoxAnim,interval){
	this.boxAnim = this.getElement(BoxAnim);
	this.listeImage = new Array();
	this.interval = interval*1000;
	this.IsIE=!!document.all;
	// permet de définir l'image a afficher
	this.currentIndex = 0 ;
	this.imgMax = 0;
	this.relance = null;
	var temp = this;
	//Pour combler un bug ie, on attend le chargement complet de la page
	if ( typeof(window.addEventListener) != "undefined" )
		window.addEventListener( "load", function(){
			temp.init()
		}, false );
	else{
		window.attachEvent( "onload", function(){
			temp.init()
		} );
	}
}
boxFading.prototype.changeImage = function(manuelle){
	
	if(typeof(manuelle) == 'undefined'){
		var next = (this.currentIndex+1 > this.imgMax) ? 0:this.currentIndex+1;
	}
	else{
		var next = manuelle;
	}
	this.fade(100,0,this.listeImage[this.currentIndex]);
	this.fade(0,100,this.listeImage[next]);
	
	
	if(typeof(manuelle) == 'undefined'){
		if(this.currentIndex == this.imgMax){
		this.currentIndex = 0;
		}
		else{
			this.currentIndex++;
		}
	}
	else{
		this.currentIndex = manuelle;
	}
	
	
	
	
}
boxFading.prototype.init = function(){
	//On récupère toutes les images de la div
	this.listeImage = this.boxAnim.getElementsByTagName('img');
	//On assigne la valeur maximum 
	this.imgMax = this.listeImage.length-1;
	this.listeImage[0].style.display = "block";
	//Assignation du timer sur chaque image
	for(var i = 0 , l = this.listeImage.length ; i < l ; i++){
		this.listeImage[i].timer = null;
		//Ajout du filtre pour combler un bug ie
	      if(this.IsIE)
	      {
	        this.listeImage[i].style.filter=(i == 0) ?'alpha(opacity=100)':'alpha(opacity=0)';
	        this.listeImage[i].filters[0].opacity=(i == 0) ? 100:0;
	      }
	      else
	      {
	        this.listeImage[i].style.opacity=(i == 0) ? 1:0;
	      }

	}
	var temp = this;
	//On lance la méthode permettant de changer l'image
	try {
		this.relance = setInterval(function(){
			temp.changeImage()
		}, this.interval);
	}
	catch(err){
		
	}
}


boxFading.prototype.getElement = function(element){
		if(typeof(element) == "string"){
        	return document.getElementById(element);
        }
        else if(typeof(element) == "object"){
        	return (element);
        }
		else {
			return null;
		}
}
//Méthode permettant d'effectuer l'effet de fading sur un objet	
boxFading.prototype.fade = function(start, end, objectToFade){
    if (start == end) {
        return false
    }
	objectToFade.style.display = "block";
	this.IsIE ? objectToFade.filters[0].opacity = start : objectToFade.style.opacity = start / 100;
	
    start >= end ? start -= 5 : start += 5;
    
    //this.IsIE ? objectToFade.filters[0].opacity = start : objectToFade.style.opacity = start / 100;
    
    var temp = this;
    clearTimeout(objectToFade.timer);
    if (start != end) {
        objectToFade.timer = setTimeout(function(){
            temp.fade(start, end , objectToFade);
        }, 25);
    }
    else {
		if(end == 0)
		{
			objectToFade.style.display = "none";
		}
        clearTimeout(objectToFade.timer);
    }
}                         
         


