
	// vérifie si la variable est vide ou non
	function empty()
	{
		arg = empty.arguments;
		
			if( arg.length < 1 )
			{
				alert( "Aucune variable n'a été spécifier !" );
				return -1;
			}
		
		if( arg[ 0 ] == "" )
		{
			return true ;
		}
			return false;
	}

	// Vérification si la variable == null
	function is_null()
	{
		arg = is_null.arguments;
		
			if( arg.length < 1 )
			{
				//alert( "Aucune variable n'a été spécifier !" );
				return -1;
			}
		
		if( arg[ 0 ] == null )
		{
			return true ;
		}
			return false;
	}
	
	// Supprime les espaces avant et aprés la chaine spécifier
	function trim()
	{
		arg = trim.arguments;
		
			if( arg.length < 1 )
			{
				//alert( "Aucune chaine n'a été spécifier !" );
				return;
			}
		
		arg[ 0 ] = arg[ 0 ].replace( /^(\s)*/ , '' );
		arg[ 0 ] = arg[ 0 ].replace( /(\s)*$/ , '' );
		
		return arg[ 0 ];
	}

	// Renvoya l'élément spécifier en arguments
	function getElement( div )
    {
        if ( document.getElementById )
        {
            return document.getElementById( div );
        }

        if ( document.layers )
        {
            return document.div;
        }
            return document.all.div;
    }
 
	// Création d'image : makeImage( src , x , y );
	function makeImage()
	{
		arg = makeImage.arguments;
		
			if( arg.length < 1 || empty( arg[ 0 ] ) )
			{
				//alert( "Aucune image spécifier" );
				return null;
			}
			
			if( document.images )
			{
				var img;				
				
					if( arg.length > 2 && !empty( arg[ 1 ] ) && !empty( arg[ 2 ] ) )
					{
						img = new Image( arg[ 1 ] , arg[ 2 ] );
					}
						else
					{
						img = new Image();
					}
			
				img.src = trim( arg[ 0 ] );
				
				return img;
			}
				return null;
	}


	
	/* FONCTION POUR LA CLASSE DE PRECHARGEMENT */

	//Fonction apeller une fois le préchargement effectuer et terminer : A vous de la coder ; elle est inclut dans la classe
	
	
	// Ajout d'objet(s)
	function AddObject()
	{
		arg = this.AddObject.arguments;
		
			if( arg.length < 1 )
			{
				//alert( "Aucun Objet n'a été spécifier" );
				return;
			}
		
		for( index = 0; index < arg.length; index++ )
		{
			this.Objects[ this.Objects.length ] = arg[ index ];
		}
		
		//this.SortObjects();
	}
	
	// trie d'objet(s)
	/*function SortObjects()
	{
		objt = this.Objects;
		news = new Array();
		
		exist = false;
		
		for( index = 0; index < objt.length; index++ )
		{
			if( !empty( trim( this.Objects[ index ] ) ) )
			{
				for( index0 = 0; index0 < objt.length; index0++ )
				{
					if( objt[ index0 ] == objt[ index ] && index != index0 )
					{
						objt[ index ] = "";
						exist = true;
						break;
					}
				}
				
					if( !exist )
					{
						news[ news.length ] = trim( this.Objects[ index ] );
					}
						else
					{
						exist = false;
					}
			}
		}
		
		this.Objects = news;
	}
	*/
	// Suppretion d'objet(s)
	function EraseObjects()
	{
		arg = this.EraseObjects.arguments;
		
			if( arg.length < 1 )
			{
				alert( "Aucun Objet n'a été spécifier" );
				return;
			}
			
		if( arg.length == 1 && ( arg[ 0 ] == "all" || arg[ 0 ] == "*" ) )
		{
			this.Objects = new Array();
		}
			else
		{
			for( index = 0; index < arg.length; index++ )
			{
				if( !empty( trim( arg[ index ] ) ) )
				{
					for( index0 = 0; index0 < this.Objects.length; index0++ )
					{
						if( this.Objects[ index0 ] == arg[ index ] )
						{
							this.Objects[ index0 ] = "";
						}
					}
				}
			}
				this.SortObjects();
		}
	}

	// Lance & Vérifie la continuité du préchargement
	function Check()
	{
		
		ClassName = this;
		
		if(this.doneobj >= this.Objects.length)
				this.doneobj = 0;
				
		//this.SortObjects(); // un peu lourd de le faire a chaque fois mais bon on n'est bien  obliger
		
		
		
		if(!this.preload)
		{
			for(var i=0; i< this.Objects.length; i++)
			{
				this.ImagesL[ i ] = new Array();
				this.ImagesL[ i ][ 'objt' ] = makeImage( this.Objects[ i ] );
			}
			this.preload = true;
		}
		else
		{
			if(this.opacite < 10)
			{
				this.DivSource.style.opacity = '0.' + this.opacite;
				this.DivSource.style.filter = 'alpha(opacity=' + this.opacite + '0)';
				
				
			}
			else 
			{
				this.DivSource.style.opacity = '1';
				this.DivSource.style.filter = 'none';
				this.DivBuff.src = this.DivSource.src;
				this.DivSource.style.opacity = '0';
				this.DivSource.style.filter = 'alpha(opacity=0)';
				
			
			}
			
			if(this.doneobj < this.Objects.length - 1)
			{
			
			this.DivSource.src = this.ImagesL[ this.doneobj +1 ][ 'objt' ].src;
			}
			else
			this.DivSource.src = this.ImagesL[ 0 ][ 'objt' ].src;
	
		}
			
			
			
			
		switch(this.sens)
		{			
			case 0 : // Affichage
				if(this.opacite==10)
				{
					if(this.doneobj==0)
					{
						this.sens = 2;
						this.deplacement = 400;
					}
					else if(this.doneobj==this.Objects.length - 1)
					{
						this.sens = 5;
						this.deplacement = 400;
					}
					else
						this.sens = 1;
				}
				else
					this.opacite++;
				
				setTimeout( "ClassName.CheckPreload();" , this.SetTimeOpacite );
			break;
			
			case 1 : // Arret de l'image
				
					this.sens = 0;
					this.opacite = 0;
					this.doneobj++;
					setTimeout( "ClassName.CheckPreload();" , this.SetTimeImage );
				
			break;
			
			case 2 : // Apparition du premier texte
			
				if(this.opacite_texte==10)
				{
						this.sens = 3;
						this.Texte1.style.opacity = '1';
						this.Texte1.style.filter = 'none';
				}
				else
				{
					
					
					this.Texte1.style.opacity = '0.' + this.opacite_texte;
					this.Texte1.style.filter = 'alpha(opacity=' + this.opacite_texte +'0)';
					
					this.opacite_texte++;
					
					
					this.deplacement -= 45;
					
					
					this.Texte1.style.left = this.deplacement + 'px';
				}
				
				setTimeout( "ClassName.CheckPreload();" , this.SetTimeOpacite );
			break;
			
			case 3 : // Arret sur  prmeier texte
				
					this.sens = 4;
					this.opacite = 0;
					this.doneobj++;
					setTimeout( "ClassName.CheckPreload();" , this.SetTimeImage );
				
			break;
			
			case 4 : // Disparition du premier texte
			
				if(this.opacite_texte==0)
				{
						this.sens = 0;
						this.Texte1.style.opacity = '0';
						this.Texte1.style.filter = 'alpha(opacity=0)';
				}
				else
				{
					
					this.opacite_texte--;
					
					this.Texte1.style.opacity = '0.' + this.opacite_texte;
					this.Texte1.style.filter = 'alpha(opacity=' + this.opacite_texte +'0)';
				}
				
				setTimeout( "ClassName.CheckPreload();" , this.SetTimeOpacite );
			break;
			
			
			case 5 : // Apparition du second texte
			
				if(this.opacite_texte==10)
				{
						this.sens = 6;
						this.Texte2.style.opacity = '1';
						this.Texte2.style.filter = 'none';
				}
				else
				{
					
					
					this.Texte2.style.opacity = '0.' + this.opacite_texte;
					this.Texte2.style.filter = 'alpha(opacity=' + this.opacite_texte +'0)';
					
					this.opacite_texte++;
					
					if(this.deplacement > 0)
						this.deplacement -= 45;
					else
						this.deplacement=0;
					
					this.Texte2.style.right = this.deplacement + 'px';
				}
				
				setTimeout( "ClassName.CheckPreload();" , this.SetTimeOpacite );
			break;
			
			case 6 : // Arret sur second texte
				
					this.sens = 7;
					this.opacite = 0;
					this.doneobj++;
					setTimeout( "ClassName.CheckPreload();" , this.SetTimeImage );
				
			break;
			
			case 7 : // Disparition du premier texte
			
				if(this.opacite_texte==0)
				{
						this.sens = 0;
						this.Texte2.style.opacity = '0';
						this.Texte2.style.filter = 'alpha(opacity=0)';
				}
				else
				{
					
					this.opacite_texte--;
					
					this.Texte2.style.opacity = '0.' + this.opacite_texte;
					this.Texte2.style.filter = 'alpha(opacity=' + this.opacite_texte +'0)';
				}
				
				setTimeout( "ClassName.CheckPreload();" , this.SetTimeOpacite );
			break;
		}
		
	}
	
	// Changer des options
	
	
	// Retourne l'objet spécifier en argument
	function ReturnObject()
	{
		this.SortObjects();
		
		arg = this.ReturnObject.arguments;
		
			if( arg.length < 1 )
				return;
			
		
		obj = null;
		
			if( typeof( arg[ 0 ] ) == "number" && arg[ 0 ] < this.ImagesL.length )
			{
				return this.ImagesL[ arg[ 0 ] ][ 'objt' ];
			}
		
			for( index = 0; index < this.ImagesL.length; index++ )
			{
				if( typeof( this.ImagesL[ index ][ 'objt' ].src ) == "string" && trim( this.ImagesL[ index ][ 'objt' ].src ) == trim( arg[ 0 ] ) )
				{
					obj = this.ImagesL[ index ][ 'objt' ];
					break;
				}
			}
		
		return obj;
	}
	
	
	// "Classe" de prechargement
	function Preload()
	{
		if( !document.images )
		{
				alert( "Le prechargement des images n'est pas suporter par votre navigateur." );
				return;
		}
		
		arg = Preload.arguments;
		this.DivSource = getElement( arg[0] );
		this.DivBuff = getElement( arg[1] );
		this.Texte1 = getElement ( arg[2] );

		
		this.Texte2 = getElement ( arg[3] );
		
		
		this.Objects   = new Array(); // Liste des objets a charger
		this.ImagesL   = new Array(); // Element(s)
		this.doneobj   = 0          ; // Nombre d'Element(s) charger
		this.preload = false;
		this.opacite = 0;
		this.opacite_texte = 0;
		this.deplacement = 450;
		this.sens = 0;
		this.SetTimeImage   = 2000; 
		this.SetTimeOpacite   = 70 ;
		


		this.AddObject      = AddObject     ; // Ajout d'objet(s)
		//this.SortObjects    = SortObjects   ; // trie d'objet(s)
		this.EraseObjects   = EraseObjects  ; // Suppretion d'objet(s)
		this.CheckPreload   = Check         ; // Lance & Vérifie la continuité du préchargement
	
		this.ReturnObject   = ReturnObject  ; // Renvoya l'objet spécifier
		
		
	}
	
//-->
