//* FICHIER *******************************************************************
//*                                                                          **
//* Nom: popup.js                                                          **
//*                                                                          **
//* But: Affichage et placement d'un div                                     **
//*                                                                          **
//*****************************************************************************

// Placement de l'id de l'element passé en parametre Pour le positionner sur un Y defini avec comme max buteeHaute
// element : id css de l'element 'bloc_id'
// posY : valeur en pixel pour le centre vertical absolu du pop-up par rapport au document
// buteeHaute : valeur en pixel maximale absolue par rapport au document pour le haut du pop-up
function affPopupY(element,posY,buteeHaute)
{
  e = document.getElementById(element);
  e.style.display='block';
  // Calcul de hauteur du popup
  popH = e.offsetHeight;

  // Calcul de la hauteur de la fenetre (uniquement la zone d'affichage)
  fenH = window.innerHeight;

  yMin = posY-popH/2;
  yMax = yMin + popH;

  if(yMax > (fenH+document.documentElement.scrollTop))
  {
    yMax= fenH+document.documentElement.scrollTop;
    yMin=yMax-popH;
  }
  if(yMin < buteeHaute)
  {
    yMin= buteeHaute;
    yMax=yMin;
  }
  e.style.top=yMin+"px";
}


// Affiche et masque (display) l'element passé en parametre
// element : id css de l'element
// display : display css de l'element none, inline, block, table, table-row-group, compact, etc...;
function toggleDisplayElement(element,display)
{
  e = document.getElementById(element);
	if (e)
	{
	  if (display)
	  {
			if (display == "none" || e.style.display == display)
			{
	    	e.style.display = "none";
			}
			else
			{
				e.style.display = display;
			}
	  }
	  else
	  {
	    e.style.display = (e.style.display=="none")?"":"none";
	  }
	}
	else
	{
		fDebug('ERREUR Génicat: toggleDisplayElement('+ element +', '+ display +'): cet élément n\'existe pas dans la page', 1);
	}
}

function toggleDisplaySection(idEltToggle, formName, inputName)
{
	var a = document.getElementById("a_" + idEltToggle);

	var eltToggleDisp = document.getElementById(idEltToggle);
	var inputName = inputName?inputName:'filtre_sections_ouverte';
	var theform = formName?GetForm(formName, true):document.forms[0];
	var inputHidden = false;
	if (theform)
	{
		inputHidden = GetInputRef(theform, inputName, false);
	}

	var ajoute = '';
	toggleDisplayElement(idEltToggle);
	if (eltToggleDisp.style.display == "none")
	{
		a.className = "form_bouton_afficher";
		ajoute = (inputName!='filtre_sections_ouverte');
	}
	else
	{
		a.className = "form_bouton_masquer";
		ajoute = (inputName=='filtre_sections_ouverte');
	}
	if (inputHidden)
	{
		if (ajoute)
		{
			setInputValue(theform, inputHidden.name, inputHidden.value + idEltToggle + ',');
		}
		else
		{
			setInputValue(theform, inputHidden.name, inputHidden.value.replace(idEltToggle + ',', ''));
		}
	}
}

// Affiche et masque (visibility) l'element passé en parametre
// element : id css de l'element
// Visibility : visibility css de l'element hidden, visible;
function toggleVisibilityElement(element,visibility)
{
  e = document.getElementById(element);

  if(visibility)
  {
    e.style.visibility = visibility;
  }
  else
  {
    e.style.visibility = (e.style.visibility=="hidden")?"visible":"hidden";
  }
}


// Change le display de l'element
function setDisplayElement(element, display)
{
	e = document.getElementById(element);
	if (e)
	{
		e.style.display = display;
	}
	else
	{
		fDebug('ERREUR Génicat: toggleDisplayElement('+ element +', '+ display +'): cet élément n\'existe pas dans la page', 1);
	}
}

// Fait clignoter l'element indiqué
// element : id css de l'element
// delay :   durée en ms d'un demi clignotement
// nb :      nombre de clignotements
function blinkElement(element, delay, nb)
{
	for (var i=1; i<=(nb*2); i++)
	{
		setTimeout("toggleVisibilityElement('"+element+"');", i*delay);
	}
}
