/*
 * ID         : $Id: form.js,v 1.1 2008-05-16 14:08:36 mo Exp $
 * Description: Traitement des formulaires
 * Auteur     : mo
 * Creation   : 2008-05-16 14:50
 * Version    : $Revision: 1.1 $
 * Historique : $Log: form.js,v $
 * Historique : Revision 1.1  2008-05-16 14:08:36  mo
 * Historique : Version initiale
 * Historique :
 */

if (typeof(window.AFS_FORM_JS) == 'undefined') {
  window.AFS_FORM_JS = true ;

  /**
   * Assemble la valeur de toutes les cases à cocher ayant un certain nom
   * et actives pour former la valeur d'un filtre OR_COMBINATOR. Les cases à
   * cocher sont alors désactivées (disabled="disabled") et un élément 'input'
   * de type 'hidden' est ajouté avec le même nom que les cases à cocher et
   * avec la valeur résultante. Ainsi, le formulaire peut être envoyé tel quel.
   * @param Le nom des cases à cocher
   */
  function afsCheckboxesToFilter(name)
  {
	var value = "" ;
	var boxes = document.getElementsByName(name) ;
	var parent = null ;
	for (var i = 0 ; i < boxes.length ; ++i) {
	  if ((boxes[i].tagName.toLowerCase() == 'input')
		  && (boxes[i].type.toLowerCase() == 'checkbox')
		  && (boxes[i].disabled == false)) {
		if (boxes[i].checked == true) {
		  parent = boxes[i].parentNode ;
		  if (value.length != 0) {
			value += '-' ;
		  }
		  value += boxes[i].value ;
		}
		boxes[i].disabled = true ;
		boxes[i].name = name + '-DISABLED' ;
		--i;
	  }
	}
	if (parent != null) {
	  var node = document.createElement('input') ;
	  node.type = 'hidden' ;
	  node.name = name ;
	  node.value = value ;
	  parent.appendChild(node) ;
	}
  }

  function afsUncheckCheckboxes(name)
  {
	var boxes = document.getElementsByName(name) ;
	for (var i = 0 ; i < boxes.length ; ++i) {
	  if ((boxes[i].tagName.toLowerCase() == 'input')
		  && (boxes[i].type.toLowerCase() == 'checkbox')
		  && (boxes[i].disabled == false)
		  && (boxes[i].checked == true)) {
		boxes[i].checked = false ;
	  }
	}
  }
 }
