// ***********************************************************************************************
// Gestion des listes déroulantes
// ***********************************************************************************************
// !!! Besoin de la bibliothèque d'interpolation

// ---------------------------------------------------------
// Initialisation de toutes les balises <a> des listes déroulantes en cours d'affichage
function iniListesAccordeon(){
	
	// Récupération de toutes les balises <strong> de la page
	var listeBaliseStrong = document.getElementsByTagName("strong");
	var j = 0;
	for(var i=0; (pointeurBaliseStrong = listeBaliseStrong[i]); i++){
		
		// Nous recherchons toutes les balises <a> de la page ayant la classe "declencheur"
		if(pointeurBaliseStrong.className == "declencheur"){
			
			// Elimination de l'attribut "target" pour ne pas que la PopIn ne s'ouvre dans une nouvelle fenêtre
			//pointeurBaliseA.removeAttribute("target");
			
			var action = new classDerouleEnroule(pointeurBaliseStrong, false);			
			pointeurBaliseStrong.onmousedown = action.declencher;
			
			// Application d'un événement de souris au lien
			// pointeurBaliseA.setAttribute("href", "javascript: declencher()");
			
			if(j==0)
			{
				var pointeurElementParent = pointeurBaliseStrong.parentNode;
				
				pointeurElementParent.className = pointeurElementParent.className.replace(/ enroule/, "");
				
				var hauteurEnroule = pointeurBaliseStrong.hauteurEnroule;
				
				var hauteurDeroule = pointeurBaliseStrong.hauteurDeroule;
				
				// Création de l'interpolation
				var interpolAccordeon = new classInterpolation(pointeurElementParent, false, "height", "decelerer", hauteurEnroule, hauteurDeroule, hauteurDeroule * 3);
				interpolAccordeon.start();
				
			}
			
			j++;
			
		}
	}
	
	// Réinitialisation des scroll
			
				iniScroll();
			
	// ---------------------------------------------------------
	
	
	
}

function closeAllList(){
	
	// Récupération de toutes les balises <strong> de la page
	var listeBaliseStrong = document.getElementsByTagName("strong");
	
	for(var i=0; (pointeurBaliseStrong = listeBaliseStrong[i]); i++){
		
		// Nous recherchons toutes les balises <a> de la page ayant la classe "declencheur"
		if(pointeurBaliseStrong.className == "declencheur"){
			
		
			// Application d'un événement de souris au lien
			// pointeurBaliseA.setAttribute("href", "javascript: declencher()");
			
			var pointeurElementParent = pointeurBaliseStrong.parentNode;
			var classeActuelle = pointeurElementParent.className;
			
			var recherche = classeActuelle.search(/ enroule/);
			if(recherche == -1){
				
				var classeAjout = " enroule";
				pointeurElementParent.className = classeActuelle + classeAjout;
				
				var hauteurEnroule = pointeurBaliseStrong.hauteurEnroule;
				
				var hauteurDeroule = pointeurBaliseStrong.hauteurDeroule;
				pointeurElementParent.style.height = hauteurEnroule+"px";
				// Création de l'interpolation
				//var interpolAccordeon = new classInterpolation(pointeurElementParent, false, "height", "decelerer", hauteurEnroule, hauteurDeroule, hauteurDeroule * 3);
				//interpolAccordeon.start();
			}
					
		}
	}
	
	
	
}


// ---------------------------------------------------------
// Class pour dérouler ou enrouler la liste concernée
function classDerouleEnroule(pointeurElement, identifiant){
	
	// ---------------------------------------------------------
	// Initialisation des variables
	if(identifiant){
		var pointeurElement = document.getElementById(pointeurElement);
	}
	this.pointeurElement = pointeurElement;
	
	// ---------------------------------------------------------
	// Toutes les listes sont enroulées si le javascript est activé
	var pointeurElementParent = this.pointeurElement.parentNode;
	
	// Détermination de la hauteur de la liste déroulée
	this.pointeurElement.hauteurDeroule = connaitreHauteur(pointeurElementParent, false);
	
	// Application de la classe CSS pour enrouler la liste
	var classeActuelle = pointeurElementParent.className;
	var classeAjout = " enroule";
	pointeurElementParent.className = classeActuelle + classeAjout;

	// Détermination de la hauteur de la liste enroulée
	this.pointeurElement.hauteurEnroule = connaitreHauteur(pointeurElement, false);

	pointeurElementParent.style.height = this.pointeurElement.hauteurEnroule + "px";
	
	this.openList = function (){
	
	
	}
	
	// ---------------------------------------------------------
	// Méthode de la classe
	this.declencher = function(){
		// Pointage de l'élément parent du déclencheur
		var pointeurElementParent = this.parentNode;
		// Récupération de la classe de la liste
		var classeActuelle = pointeurElementParent.className;
		
		var recherche = classeActuelle.search(/ enroule/);
		if(recherche > -1){
			
			//on referme toutes les autres listes
			closeAllList();
			
			// Application du style CSS pour dérouler la liste
			pointeurElementParent.className = pointeurElementParent.className.replace(/ enroule/, "");
			
			// Création de l'interpolation
			var interpolAccordeon = new classInterpolation(pointeurElementParent, false, "height", "decelerer", this.hauteurEnroule, this.hauteurDeroule, this.hauteurDeroule * 3);
// ---------------------------------------------------------
	// ---------------------------------------------------------
	// Réinitialisation des scroll
			interpolAccordeon.finSeq = function(){
				iniScroll();
			}
	// ---------------------------------------------------------
	// ---------------------------------------------------------
			interpolAccordeon.start();
		}else{
			// Application du style CSS pour enrouler la liste
			var classeAjout = " enroule";
			pointeurElementParent.className = classeActuelle + classeAjout;
			
			// Création de l'interpolation
			var interpolAccordeon = new classInterpolation(pointeurElementParent, false, "height", "decelerer", this.hauteurDeroule, this.hauteurEnroule, this.hauteurDeroule * 3);
			
			// ---------------------------------------------------------
	// ---------------------------------------------------------
	// Réinitialisation des scroll
			interpolAccordeon.finSeq = function(){
				iniScroll();
			}
	// ---------------------------------------------------------
	// ---------------------------------------------------------
			
			interpolAccordeon.start();
		}
	}
}