/*--------------------------------------------------------------------- Foldering --------------------------------------------------------------------*/
G_Foldering = Class.create();
G_Foldering.prototype = {
	   initialize: function(params) {
			function param_default(pname, def) { if (typeof params[pname] == "undefined") { params[pname] = def; } };
			
			this.params = params;
	
			param_default("class_ouverture","ouvert");
			param_default("lier",true);
			param_default("alt_title_ouvrir","ouvrir");
			param_default("alt_title_fermer","fermer");
			param_default("class_change_lien","");
			param_default("bloc_impression","");
			param_default("bloc_no_impression","");
			param_default("class_lien","");
			param_default("class_lien_2","");
			param_default("class_conteneur","");
			param_default("class_titre","");
			param_default("rendu_impression","");
		
			this.nb_elements_ouverts = 0;
			this.element_ouvert = null;
			this.elements = new Array;
			this.anim = false;
			this.setup();
	   },
	   setup:function() {
		   var lien = $A(new Array());
		   var conteneur = $A(new Array());
		   var titre = $A(new Array());
		   var lien_2 = $A(new Array());

				
				lien = document.getElementsByClassName(this.params['class_lien'])
				conteneur = document.getElementsByClassName(this.params['class_conteneur'])
				if(this.params['class_titre'] != ""){titre = document.getElementsByClassName(this.params['class_titre'])}
				if(this.params['class_lien_2'] != ""){lien_2 = document.getElementsByClassName(this.params['class_lien_2'])}
				
				// plus tard mettre selecteur CSS qd plus ie55
				/*$$(this.params['class_lien']).each(function(element){
				lien.push(element)
				});
	
				$$(this.params['class_conteneur']).each(function(element){
				conteneur.push(element)
				});*/
				
			for(var i=0; i < lien.length ; i++)
			{
				this.add(new Foldering(lien[i], conteneur[i], titre[i], lien_2[i]))
			}
		},
	  add:function(element) {
		  	element.gestionnaire = this;
			element.params = this.params;
			element.setup()
			this.elements.push(element);
			if(element.etat_initial)
			{
				this.nb_elements_ouverts++;
				if(this.nb_elements_ouverts>1){alert("Pour l'initialisation du script, il ne doit y avoir qu'un seul conteneur d'ouvert au maximum")}
				this.element_ouvert = element;
			}			
	   },
	   impression: function() {
			this.bloc_no_impression = $(this.params["bloc_no_impression"]);
			this.bloc_impression  = $(this.params["bloc_impression"]);
			var eval_rendu = this.params["rendu_impression"]

			this.bloc_impression.innerHTML = '';
			var rendu = '';
			this.elements.each(function(element){
				rendu += eval(eval_rendu)
			});
			this.bloc_impression.innerHTML = rendu;
	   }
	};
	
	
Foldering = Class.create();
Foldering.prototype = {
	   initialize: function(id_lien,id_conteneur, id_titre, id_lien_2) {
			this.lien = $(id_lien);
			this.lien_image = (this.lien.firstChild.nodeName == "IMG") ? true : false;
			if(this.lien_image){this.image = this.lien.firstChild;}
			this.conteneur = $(id_conteneur);
			this.titre = (id_titre == "") ? "" : $(id_titre);
			this.lien_2 = (id_lien_2 == "") ? "" : $(id_lien_2);
			Element.fixeHeight(this.conteneur);
			this.lien.onclick = this.onclick.bindAsEventListener(this);
			//alert(this.lien_2.innerHTML);
			if(this.lien_2){this.lien_2.onclick = this.onclick.bindAsEventListener(this);}
	   },
	   setup : function()
	   {
			// affichage
			if(!Element.hasClassName(this.conteneur,this.params["class_ouverture"]))
			{
				Element.setStyle(this.conteneur,{display:'none'});
			}
			this.etat_initial = Element.hasClassName(this.conteneur,this.params["class_ouverture"]) ? true : false;// true ouvert, false ferme	
			
			// gestion bouton
			if(this.lien_image)
			{
				this.img_lien_src_ouvrir = this.params["img_src_ouvrir"];
				this.img_lien_src_fermer = this.params["img_src_fermer"];
				if(this.params["class_rollover_img"] != "undefined"){if(Element.hasClassName(this.image,this.params["class_rollover_img"])){new Img_rollover(this.image)}}
			}

	   },
	  onclick: function(evt) {
		if(!this.gestionnaire.anim)
		 {
			 if(this.etat_initial)
			 {
				this.ferme()
				}
			 else
			 {
				 this.ouvre()
			}
		 }
	   },
	   ouvre: function() {
		  if(this.params["class_change_lien"] != ""){Element.addClassName(this.lien,this.params["class_change_lien"])}
		   
		  if(this.lien_image){
			  this.image.src = this.img_lien_src_fermer;
			  this.image.alt = this.params["alt_title_fermer"];
			  this.lien.title = this.params["alt_title_fermer"];
			 if(this.params["class_rollover_img"] != "undefined"){
				 if(Element.hasClassName(this.image,this.params["class_rollover_img"]))
				 {new Img_rollover(this.image);}
				}
			 }
		 Effect.BlindDown(this.conteneur,{gestionnaire:this.gestionnaire, duration:0.5, beforeStart:function() {this.gestionnaire.anim=true;}, afterFinish:function(){this.gestionnaire.anim=false;}});
		  if(this.gestionnaire.element_ouvert != null &&  this.gestionnaire.element_ouvert != this && this.params["lier"]){this.gestionnaire.element_ouvert.ferme()}
		  this.etat_initial = true;
		  this.gestionnaire.element_ouvert = this;
		  
	   },
	   ferme: function() {
		  if(this.params["class_change_lien"] != ""){Element.removeClassName(this.lien,this.params["class_change_lien"])}

          if(this.lien_image){
			  this.image.src = this.img_lien_src_ouvrir; 
			  this.image.alt = this.params["alt_title_ouvrir"]; 
			  this.lien.title = this.params["alt_title_ouvrir"];
				if(this.params["class_rollover_img"] != "undefined"){
					if(Element.hasClassName(this.image,this.params["class_rollover_img"])){new Img_rollover(this.image);}
				}
			  }
		  Effect.BlindUp(this.conteneur,{gestionnaire:this.gestionnaire, duration:0.5, beforeStart:function() {this.gestionnaire.anim=true;}, afterFinish:function(){this.gestionnaire.anim=false}});
			this.etat_initial = false;
	   }
	};

/*--------------------------------------------------------------------- /Foldering --------------------------------------------------------------------*/