var animations = new Array();
var timers = new Array();
var gifAnimInvisible = "images/invisible.gif";
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Lance l'animation correspondante dans animations[]
function animer(theIndex) {
	animations[theIndex].imageSuivante();
	timers[theIndex] = setTimeout("animer(" + theIndex + ")", animations[theIndex].tempo);	// tempo est en millisecondes
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Initialise un clignotement
// nomimg				: chaine attribuée au paramètre "NAME" de la balise "<IMG"
// delai					: entier correspondant au temps qui sécoule entre chaque image
// nombreImages	: nombre d'images affectées à l'animation (si 0, l'image alterne -clignote- avec un fichier "invisible.gif" situé dans le même dossier)
// racineSrc			: racine des noms des fichiers de l'animation. si nombreImages = 0, c'est le nom du fichier de l'image à faire clignoter
// extension			: extension des fichiers images (en général "gif" ou "jpg". Ne pas mettre le point
// enBoucle			: si false, l'animation n'est jouée qu'une fois
// L'animation n'est pas lancée (cf animer(theIndex))
function initClignotement(nomimg, delai, racineSrc, extension, enBoucle) {
	initAnimation(nomimg, delai, 0, racineSrc, extension, enBoucle);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Initialise une animation
// nomimg				: chaine attribuée au paramètre "NAME" de la balise "<IMG"
// delai					: entier correspondant au temps qui sécoule entre chaque image
// nombreImages	: nombre d'images affectées à l'animation (si 0, l'image alterne -clignote- avec un fichier "invisible.gif" situé dans le même dossier)
// racineSrc			: racine des noms des fichiers de l'animation. si nombreImages = 0, c'est le nom du fichier de l'image à faire clignoter
// extension			: extension des fichiers images (en général "gif" ou "jpg". Ne pas mettre le point
// enBoucle			: si false, l'animation n'est jouée qu'une fois
// L'animation n'est pas lancée (cf animer(theIndex))
function initAnimation(nomimg, delai, nombreImages, racineSrc, extension, enBoucle) {
	var uneAnimation = new oAnimation(nomimg, delai, nombreImages, racineSrc, extension, enBoucle);
	animations[animations.length] = uneAnimation;
	timers[timers.length] = null;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function getImageByName(nomElementImage) {
	var uneImage = null;
	
	if (document.images)
		uneImage = document.images[nomElementImage];
		
	if (isNetscape) {
		if (uneImage == null) {
			for (var i = 0; i < document.layers.length; i++) {
				uneImage = document.layers[i].document.images[nomElementImage];
				if (uneImage != null)
					break;
			}	// for (var i = 0; i < document.layers; i++)
		}	// if (uneImage == null)
	}	// if (isNetscape)
	return uneImage;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function setImage(nomElementImage, nomFichierImage) {
	var uneImage = getImageByName(nomElementImage);
	
	if (uneImage != null)
		uneImage.src = nomFichierImage;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// objet oAnimation
function oAnimation(nomimg, delai, nombreImages, racineSrc, extension, enBoucle) {
	this.img = nomimg;
	this.tempo = delai;
	this.nImages = nombreImages;
	this.boucle = enBoucle;
	if (this.nImages == 0)
		this.index = 1;
	else
		this.index = 0;
	this.srcRacine = racineSrc;
	this.ext = extension;
		
	//---------------------------------------------
	function imageSuivante() {
		switch (this.nImages) {
			case 0:
				// cligotement
				if (this.index == 0) {
					setImage(this.img, gifAnimInvisible);
					this.index = 1;
				} else {
					setImage(this.img, this.srcRacine + "." + this.ext);
					this.index = 0;
				}
				break;
			default:
				this.index++;
				if (this.index == this.nImages)
					this.index = 0;
					
				setImage(this.img, this.srcRacine + this.index + "." + this.ext);
			break;
		} // switch (this.nImages)
	}

	this.imageSuivante = imageSuivante;

}	// oAnimation
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

