/* Fonction permettant une animation "extension d'élément"
		
* elmtId : Id de l'élément à agrandir
		
* widthFactor: Facteur d'agrandissement en largeur
		
* heightFactor: Pareil mais pour la hauteur

* nbLoop: Nombre de fois que la taille sera actualisée pendant 
l'animation (plus ce chiffre est grand, moins ça sera saccadé)
		  
* interval : le temps en millisecondes entre chaque "loop"
(permet de régler la vitesse de l'animation, une trop grande valeur rendra l'animation saccadée)

*/
function scale(elmtId, widthFactor, heightFactor, nbLoop, interval) {
	// Corps principal de la fonction
	speed = Math.min(Math.abs(speed), 1);
	widthFactor = Math.abs(widthFactor);
	heightFactor = Math.abs(heightFactor)
	var elmt = document.getElementById(elmtId),
	width = elmt.offsetWidth,
	height = elmt.offsetHeight,
	diffWidth = width * (widthFactor - 1),
	diffHeight = height * (heightFactor - 1),			
	updateStruct = function() {
		elmt.style.width = width + 'px';
		elmt.style.height = height + 'px';
	},
	count = 0,
	speed = 1 / nbLoop,
	updateAnimation = function() {
		width += Math.round(diffWidth * speed);
		height += Math.round(diffHeight * speed);
		++count;
		updateStruct();
		if(count < nbLoop) {
			setTimeout(updateAnimation, interval);
		}
	};
	setTimeout(updateAnimation, interval);
	
	// Initialisation de la transparence
	if(elmt.style.opacity==0.8)
		elmt.style.opacity = 1;
	else{
		elmt.style.opacity = 0.8;
		elmt.children[0].style.opacity = 1;
		elmt.children[1].style.opacity = 1;
	}
}

/* Contrôle le déploiement et la fermeture de l'élément animé
 * id = id de l'élément à animer
 * idc = id de l'élément "balise" et contenant le texte correspondant
 */
function limit(id,idc,h_1,h_2,p){
	var txt = document.getElementById(idc);
	var wit = document.getElementById('witness');
	var wit1 = document.getElementById('witness1');
	var wit2 = document.getElementById('witness2');
	var a_animer = document.getElementById(id);
	if(id=="lien_b"){
		if(wit1.innerHTML==""){
			// Affichage du texte
			txt.style.visibility = "visible";
			// Changement de valeur de la <div> témoin
			wit1.innerHTML = "OK";
		}
		else{
			// Texte effacé
			txt.style.visibility = "hidden";
			// Réinitialisation de la valeur de la <div> témoin
			wit1.innerHTML = "";
		}
	}
	if(id=="lien_g"){
		if(wit.innerHTML==""){
			// Suppression du padding
			a_animer.style.paddingTop = "0%";
			// Redimensionnement de la <div>
			a_animer.style.height = h_2;
			// Exécution de l'animation
			scale(id,3,1,100,0.5);
			// Changement de valeur de la <div> témoin
			wit.innerHTML = "OK";
			// Affichage du texte
			txt.style.visibility = "visible";
		}
		else{
			// Suppression du padding
			a_animer.style.paddingTop = "0%";
			// Redimensionnement de la <div>
			a_animer.style.height = h_1;
			// Repli
			scale(id,0.3,1,100,0.5);
			// Texte effacé
			txt.style.visibility = "hidden";
			// Réinitialisation de la valeur de la <div> témoin
			wit.innerHTML = "";
			// Réinitialisation du padding
			a_animer.style.paddingTop = p;
		}
	}
	if(id=="lien_gb"){
		if(wit2.innerHTML==""){
			// Suppression du padding
			a_animer.style.paddingTop = "0%";
			// Redimensionnement de la <div>
			a_animer.style.height = h_2;
			// Exécution de l'animation
			scale(id,2,1,100,0.5);
			// Affichage du texte
			txt.style.visibility = "visible";
			// Changement de valeur de la <div> témoin
			wit2.innerHTML = "OK";
		}
		else{
			// Suppression du padding
			a_animer.style.paddingTop = "0%";
			// Redimensionnement de la <div>
			a_animer.style.height = h_1;
			// Repli
			scale(id,0.5,1,100,0.5);
			// Texte effacé
			txt.style.visibility = "hidden";
			// Réinitialisation de la valeur de la <div> témoin
			wit2.innerHTML = "";
			// Réinitialisation du padding
			a_animer.style.paddingTop = p;
		}
	}
}
