//////////////////////////////////////////////////
// Auteur : Alexandre Baussano
// Date de creation : 9/02/2009
// Date de modification : 14/03/2009
// Fonctionalite : fonction affichage dynamique
//                 javascript
// Copyright : ab-techweb
//////////////////////////////////////////////////

//
// affiche une div
// parametres : laDiv : nom de la div
//
function ab_affichDiv(laDiv){
	if (document.getElementById(laDiv)) document.getElementById(laDiv).style.display = "block";
}

//
// affiche un element
// parametres : laDiv : nom de la div
//
function ab_affichInline(laDiv){
	if (document.getElementById(laDiv)) document.getElementById(laDiv).style.display = "inline";
}
  
// 
// ferme une div ou un element
// parametres : laDiv : nom de la div
//
function ab_fermerDiv(laDiv){
  if (document.getElementById(laDiv)) document.getElementById(laDiv).style.display = "none";
}

//
// calcule la hauteur d une div sans le padding
// parametres : laDiv : nom de la div
//
function ab_calcHauteur(laDiv){
	if (objDiv = document.getElementById(laDiv)){
		laHauteur = parseInt(objDiv.offsetHeight);
		objDiv.style.paddingTop = "0px";
		lePaddingTop = laHauteur-parseInt(objDiv.offsetHeight);
		objDiv.style.paddingTop = lePaddingTop + "px";
		objDiv.style.paddingBottom = "0px";
		lePaddingBottom = laHauteur-parseInt(objDiv.offsetHeight);
		objDiv.style.paddingBottom = lePaddingBottom + "px";
		return laHauteur = laHauteur - lePaddingTop - lePaddingBottom;		
	}
}

//
// affiche une div avec effet
// parametres : laDiv : nom de la div
//              leDelay :  defini la vitesse des effets de la div
//              effect : effet a donner a la div (longueur, fondu, longueurfondu)
// 
function ab_affichDivEffect(laDiv,leDelay,effect){
	if (objDiv = document.getElementById(laDiv)){
		// timer
		leTimer = 0;
		// affichage de la div
		objDiv.style.display = "block";
		if (effect == "longueur"){
			// recuperation hauteur div
		  laHauteur = ab_calcHauteur(laDiv);
		  // hidden pour que la div ne s adapte pas au contenu
		  objDiv.style.overflow = "hidden";
		  // hauteur 0
		  objDiv.style.minHeight = "0px";
		  objDiv.style.height = "0px";
		  for(i=0;i<laHauteur+1;i++){ 
		    setTimeout("ab_retailleDivVertical('"+laDiv+"','"+i+"')",leTimer);
		    leTimer = leTimer+leDelay;
		  }
		  setTimeout("objDiv.style.overflow = \"visible\";",leTimer);
		} else if (effect == "fondu"){
			ab_fonduDiv(laDiv,0)
	    for(j=0;j<101;j++){ 
	      setTimeout("ab_fonduDiv('"+laDiv+"','"+j+"')",leTimer);
	      leTimer = leTimer+(leDelay*2); 
	    } 
		} else if (effect == "longueurfondu"){
			ab_affichDivEffect(laDiv,leDelay,'longueur');
			ab_affichDivEffect(laDiv,leDelay,'fondu');
		}
	}
}

//
// ferme une div avec effet
// parametres : laDiv : nom de la div
//              leDelay :  defini la vitesse des effets de la div
//              effect : effet a donner a la div (longueur, fondu, longueurfondu)
// 
function ab_fermerDivEffect(laDiv,leDelay,effect){
	if (objDiv = document.getElementById(laDiv)){
		// timer
		leTimer = 0;
		if (effect == "longueur"){
			// recuperation hauteur div
		  laHauteur = ab_calcHauteur(laDiv);
		  // hidden pour que la div ne s adapte pas au contenu
		  objDiv.style.overflow = "hidden";
		  for(i=laHauteur;i>0;i--){ 
		    setTimeout("ab_retailleDivVertical('"+laDiv+"','"+i+"')",leTimer);
		    leTimer = leTimer+leDelay; 
		  }
		  setTimeout("objDiv.style.overflow = \"visible\";",leTimer);
	  	// masquage de la div
		  setTimeout("ab_fermerDiv('"+laDiv+"')",leTimer);
		  // taille origine
		  setTimeout("ab_retailleDivVertical('"+laDiv+"','"+laHauteur+"')",leTimer);
		} else if (effect == "fondu"){
	    for(j=100;j>=0;j--){ 
	      setTimeout("ab_fonduDiv('"+laDiv+"','"+j+"')",leTimer);
	      leTimer = leTimer+(leDelay*2); 
	    }
	    setTimeout("ab_fermerDiv('"+laDiv+"')",leTimer);
		} else if (effect == "longueurfondu"){
		  ab_fermerDivEffect(laDiv,leDelay,'longueur');
		  ab_fermerDivEffect(laDiv,leDelay,'fondu');
		}
  }
}

//
// fonction permettant le fondu d une div
// parametres : laDiv : nom de la div
//              lopacite :  defini l opacite de la div
// 
function ab_fonduDiv(laDiv,lopacite){ 
  if (objDiv = document.getElementById(laDiv)){
    objDiv.style.opacity = (lopacite / 100);
    objDiv.style.MozOpacity = (lopacite / 100);
    objDiv.style.KhtmlOpacity = (lopacite / 100);
    // pas de transparence ie7 car bug sur png
    objDiv.style.filter = "alpha(opacity="+lopacite+")";
  }
}

//
// fonction permettant la retaille verticale d une div
// parametres : laDiv : nom de la div
//              leHauteur :  hauteur a appliquer a la div
// 
function ab_retailleDivVertical(laDiv,laHauteur){
  if (document.getElementById(laDiv)) document.getElementById(laDiv).style.minHeight = laHauteur + "px";
}
