<!--

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Fonction ColorChanger                                                                                                       //
// @Fonctionalitee appliquer une changement automatique de couleur a intervalle regulier sur n'importe quel element capable de //
// 		gerer des couleurs                                                                                                     //
// @param object Element Objet dont changer la couleur (envoyer le resultat de "getElementById('elem').color ou .bgcolor ..)   //
// @param array TabCouleur Tableau des couleurs a appliquer (envoyer par exemple Array('red','#457852','black')                //
// @param integer Intervalle intervalle en millisecondes entre chaque changement de couleur                                    //
// @param integer Index couleur par laquelle commencer la rotation (valeur de l'index dans le tableau)                         //
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function ColorChanger(Element, TabCouleur, Intervalle, Index, propriete) {
	this.Element = Element;
	this.Couleurs = TabCouleur;
	this.Intervalle = Intervalle;
	this.propriete = propriete;
	this.Index = Index;
	
	this.PCouleur = ProcedeCouleur;
}

function ProcedeCouleur(objName) {
	document.getElementById(this.Element).style.color = this.Couleurs[this.Index];
	if (this.Index== this.Couleurs.length - 1)
		this.Index = 0;
	else
		this.Index = this.Index+1;
	setTimeout(""+objName+".PCouleur('"+objName+"')", this.Intervalle);	
}


//
// Fonction StatusManip
// Wrapper sur diverses manipulations de la barre de status
//
ExitStatusManip=0;
function StatusManip(texte,effet,delai,boucle,position){
	switch (effet) {
		case 'MAE':
		default :
			StatusMAE(texte,delai,boucle,position)
			break;
	}
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Fonction StatusMAE (Machine A Ecrire)                                                                    //
// @Fonctionnalite inscrire un texte dans la barre de status en lui donnant un effet de steno               //
// @param string texte Le texte a inscrire dans la barre de statut                                          //
// @param integer delai Intervalle (en ms) entre chaque affichage                                           //
// @param integer boucle Delai avant de recommencer l'affichage (si 0 on ne reboucle pas) 					//
// @param integer position Position de la prochaine lettre (commence a 1)                                   //
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
function StatusMAE(texte,delai,boucle,position) {
	//une petite porte de sortie si on veut arreter le process a un moment donne
	if (ExitStatusManip == 1) {
		ExitStatusManip=0;
		return false;
	}
	
	//on s'assure de bien commencer avec une lettre minimum
	position = (parseInt(position)!='NaN' && position>0)?position:1;
	//on recupere dans la chaie a afficher la partie du texte correspondante
	affiche = texte.substr(0,position);
	//on affiche
	window.status = affiche;
	
	nextpos = position+1;
	
	//s'il y'a encore au moins une lettre dans la chaine, on continue
	if (nextpos <= texte.length) {
		//if (confirm ('ok pour '+nextpos))
		setTimeout('StatusMAE("'+texte+'",'+delai+','+boucle+','+nextpos+');',delai);//la fonction execute une recursion en se decallant d'une lettre apres 'delai' millisecondes
	}
	else {// si on est au bout de la chaine
		//if (confirm ('longueur depassee'))
		if (boucle) //si on a demandé a boucler
			setTimeout('StatusMAE("'+texte+'",'+delai+','+boucle+',0);',boucle);//la fonction execute une recursion en recommancant a la premiere lettre apres 'delai' millisecondes
	}
}

//-->