function checkAll(pForm, cball) {
  if (cball.checked == false) {
    var n=pForm.elements.length;
    for (i=0; i<n; i++) {
      var objName = pForm.elements[i].name;
      var objType = pForm.elements[i].type;
      if (objType == "checkbox") {
        box = eval(pForm.elements[i]);
        if (box.name != cball.name && box.checked == true && box.name != 'choix')
          box.checked = false;
      }
    }
  }
  else {
    var n=pForm.elements.length;
    for (i=0; i<n; i++) {
      var objName = pForm.elements[i].name;
      var objType = pForm.elements[i].type;
      if (objType == "checkbox") {
        box = eval(pForm.elements[i]);
        if (box.name != cball.name && box.checked == false && box.name != 'choix')
          box.checked = true;
      }
    }
  }
}

function uncheckAll2(pForm, cball) {
  var n=pForm.elements.length;
  for (i=0; i<n; i++) {
    var objName = pForm.elements[i].name;
    var objType = pForm.elements[i].type;
    if (objType == "checkbox") {
      box = eval(pForm.elements[i]);
      if (box.name != cball.name && box.checked == true && box.name != 'choix')
        box.checked = false;
    }
  }
}

function checkAll2(pForm, cball) {
  var n=pForm.elements.length;
  for (i=0; i<n; i++) {
    var objName = pForm.elements[i].name;
    var objType = pForm.elements[i].type;
    if (objType == "checkbox") {
      box = eval(pForm.elements[i]);
      if (box.name != cball.name && box.checked == false && box.name != 'choix')
        box.checked = true;
    }
  } 
} 

function clearAll(pForm) {
  clearAll(pForm, false);
} 
function clearAll(pForm, eraseall) {
    var n=pForm.elements.length;
    for (i=0; i<n; i++) {
      var objName = pForm.elements[i].name;
      var objType = pForm.elements[i].type;
      var objTagName = pForm.elements[i].tagName;

      if (eraseall == true) {
        if (objType == "checkbox") {
          box = eval(pForm.elements[i]);
          box.checked = false;
        }
      }
      else {
        if ((objType == "checkbox") && (objName.indexOf('Base') < 0) && (objName.indexOf('Cat') < 0) && (objName.indexOf('Option') < 0)) {
          box = eval(pForm.elements[i]);
          box.checked = false;
        }
      }
      if (objType == "text") {
        txt = eval(pForm.elements[i]);
        txt.value = "";
      }
      // PFA - il est préférable de tester le tag html plutot que le type car celui ci peut changer en fonction du navigateur.
      // if ((objType == "select-one") || (objType == "select-multiple")) {
      if (objTagName == "SELECT") {
        list = eval(pForm.elements[i]);
	for (var j=0; j<list.options.length; j++) {
	  list.options[j].selected = false;
	}
        // on reset que les elements dans le formulaire et on laisse les autres par defaut (champ en bas de formulaire tel que le nombre de res./page)
        if (objName.match("F_")) {
          list.selectedIndex = 0;
        }
      }
    }
}

// Soumission du formulaire pour charger les valeurs de la liste fille associee a la valeur de la liste pere
function changePere() {

  document.forms[0].action = document.location;

  document.forms[0].submit();

}

// Soumission du formulaire pour choisir les champs en fonction des bases selectionnes
function checkLast(pForm, cat) {
  pForm.Last_click.value = cat.name;
}

// Soumission du formulaire pour choisir les champs en fonction des bases selectionnes
function updateChamps( valeur) {

  if (valeur == "1") {
    document.forms[0].action = document.location;
  }

  document.forms[0].Champ_multibase.value = valeur;

  document.forms[0].submit();

}

// Afficher les champs caches de date si besoin
/*
function refreshDate(value) {
  if (value == 4) {
    $(".champsDate").css("display" , "inline");
  }
  else {
    $(".champsDate").css("display" , "none");
  }
}
*/
function refreshDate(value) {
  if (value == 4) {
    $$(".champsDate").invoke("show");
  }
  else {
    $$(".champsDate").invoke("hide");
  }
}

// Afficher les champs caches de nombre si besoin
/*
function refreshNombre(value) {
  if (value == 4) {
    $(".champsNombre").css("display" , "inline");
  }
  else {
    $(".champsNombre").css("display" , "none");
  }
}
*/
function refreshNombre(value) {
  if (value == 4) {
    $$(".champsNombre").invoke("show");
  }
  else {
    $$(".champsNombre").invoke("hide");
  }
}

/*******************************************/
/* Fonctions menu deroulant form multibase */
/*******************************************/
function f_attachFunctionToEvent (e) {
        var myElement = Event.element(e);

        myElement = Event.element(e);
        var fils = myElement.parentNode.childNodes;
        var nbFils = fils.length;
        for(var i = 0; i < nbFils; i++) {
          if (fils[i].className=="qes_formmulti_enfant") {
            if (fils[i].style.display == "none") {
              if (! CONFIG.LEAVE_OPENED) {
                f_hideAll();
                          var debug = 0; // afin d'éviter les boucles infinie
                tmp = myElement;
                                while (debug != 1000) {
                                  if (tmp.className == "qes_formmulti_enfant")
                                    tmp.style.display = "block";
                                  tmp = tmp.parentNode;
                                  if (tmp.className == "qes_formmulti_menu") {
                                   break;
                  }
                                  ++debug;
                                }
                                }
  
                                fils[i].style.display = "block";
              myElement.className = "qes_formmulti_parent qes_formmulti_parent_opened";
            } else {
              fils[i].style.display = "none";
              myElement.className = "qes_formmulti_parent qes_formmulti_parent_closed";
            } 
          }
        }
  
        myElement = null;
        fils = null;
        tmp = null;
} 
function f_hideAll() {
        // PFA 03/07/2008 100046 Corriger incompatibilites avec FF3 dans QESFormulaire pour l affichage des bases par thematiques
        var enfants = $$(".qes_formmulti_enfant");
        enfants.each( function(enfant) {
          enfant.style.display="none";
        });
}

function f_toggleView () {
          // si le javascript est activé sur le client web, on peut cacher les
          // éléments et donc faire fonctionner le menu.
          f_hideAll();

          // trouve les elements parent afin d'y ajouter le "onclick"
          // PFA 03/07/2008 100046 Corriger incompatibilites avec FF3 dans QESFormulaire pour l affichage des bases par thematiques
          var parents = $$(".qes_formmulti_parent");
                parents.each( function(parent) {
                        Event.observe (parent, "click", f_attachFunctionToEvent, false);
                });

                // ouvre l'arbre si la page courante est l'un des liens enfants
                // PFA 03/07/2008 100046 Corriger incompatibilites avec FF3 dans QESFormulaire pour l affichage des bases par thematiques
                var enfantOuvert = $$(".qes_formmulti_open");
                enfantOuvert.each( function(childOpen) {
                          if (childOpen.className == "qes_formmulti_enfant")
                            childOpen.style.display = "block";
                  var tmp = childOpen.parentNode;
                  var debug = 0; // afin d'éviter les boucles infinie
                        while (debug != 1000) {
                          if (tmp.className == "qes_formmulti_menu" || tmp.tagName == "BODY") {
                            break;
                          }
                          tmp = tmp.parentNode;
                          if (tmp.className == "qes_formmulti_enfant") {
                            tmp.style.display = "block";
                          }
                          ++debug;
                        }
                });

                // liberation des variables DOM afin d'éviter les 'leek' IE
                tmp=null;
                enfantOuvert=null;
                childOpen=null;
                enfants=null;
                parents=null;
}
   

