/**
 * Ouvre/ferme l'arborescence d'une zone AOC
 * @param string codeZone_ Code de la zone concernée
 * @param boolean open_ Indique si on ouvre (true) ou on ferme (false)
 * l'arborescence de la zone
 */
function openZone(codeZone_, open_) {
  blockZone = window.document.getElementById('block' + codeZone_);
  selectZone = window.document.getElementById('select' + codeZone_);
  if (open_) {
	  selectZone.src = '/image/itemDown.gif';
		blockZone.style.display = 'block';
  } else {
	  selectZone.src = '/image/itemUp.gif';
		blockZone.style.display = 'none';
  }
}

/**
 * Gère l'affichage de l'arborescence d'une zone AOC
 *
 * Suivant l'état actuel de la zone, la fonction va basculer entre l'ouverture
 * et la fermeture de son arborescence
 * @param string codeZone_ Code de la zone concernée par l'affichage de
 * l'arborescence
 * @param boolean display_
 */
function arboZone(codeZone_, display_) {
  //blockZone = window.document.getElementById('block' + codeZone_);
	//if (blockZone.style.display == 'none') {
	index = indexZones[codeZone_];
	if (arboZones[index]) {
		//Mise à jour du récapitulatif des arborescences
		arboZones[index] = false;
		if (display_) {
      openZone(codeZone_, false);
		}
	} else {
		//Mise à jour du récapitulatif des arborescences
		arboZones[index] = true;
		if (display_) {
  	  openZone(codeZone_, true);
		}
	}
  //Enregistrement de l'arborescende des zones dans le cookie de sauvegarde
  setCookie('arboZones', arboZones);
}

/**
 * Affichage de l'arborescence des zones
 */
function initArbo() {
  for (index in indexZones) {
    openZone(index, arboZones[indexZones[index]]);
  }
}

/**
 * Définition d'un cookie
 * @param string name_ Nom du cookie
 * @param string value_ Valeur du cookie
 * @param string expire_ Date d'expiration du cookie
 * @param string path_ Sous-répertoire ou fichier du serveur sur lequel le
 * cookie est valide
 * @param string domain_ Nom du serveur associé au cookie
 * @param boolean secure_ Permet de spécifier que le cookie sera envoyé
 * uniquement si la connexion est sécurisée
 */
function setCookie(name_, value_, expire_, path_, domain_, secure_) {
  valCookie = name_ + "=" + escape(value_) +
      ((expire_) ? "; expires=" + expire_.toGMTString() : "") +
      ((path_) ? "; path=" + path_ : "") +
      ((domain_) ? "; domain=" + domain_ : "") +
      ((secure_) ? "; secure" : "");
  document.cookie = valCookie;
}

/**
 * Récupération de la valeur d'un cookie
 * @param string name_ Nom du cookie
 * @return string
 */
function getCookie(name_) {
  //On vérifie si le cookie est valide
  if (document.cookie) {
    index = document.cookie.indexOf(name_);
    if (index != -1) {
      nDeb = document.cookie.indexOf("=", index) + 1;
      nFin = document.cookie.indexOf(";", index);
      if (nFin == -1) {
        nFin = document.cookie.length;
      }
      return unescape(document.cookie.substring(nDeb, nFin));
    }
  }
  return null;
}

//Préchargement de l'image utilisée pour la gestion de l'arborescence
//des zones d'AOC
MM_preloadImages('/image/itemDown.gif');

//Définition du tableau de correspondance code zone AOC/index
var indexZones = new Array();
indexZones['BDX'] = 0;
indexZones['LIB'] = 1;
//Définition du tableau d'arborescence des zones AOC
var arboZones;

//On vérifie si le cookie d'arborescence des zones est défini
arboCookie = getCookie('arboZones');
if (arboCookie) {
  //On récupère l'arborescence des zones enregistrée dans le cookie
  tmpArboZones = arboCookie.split(',');
  //On convertie les valeurs récupérées en booléens
  arboZones = new Array();
  for (index in tmpArboZones) {
    arboZones[index] = (tmpArboZones[index] == 'true') ? true : false;
  }
} else {
  //On définit l'arborescence des zones par défaut et on l'enregistre dans
  //le cookie de sauvegarde
  arboZones = new Array(false, false, false, false);
  setCookie('arboZones', arboZones.join());
}
