function AnimeOver() {
  typeBouton = this.className;
  if (!typeBouton) {
    typeBouton = this.parentNode.id;
  }
  this.style.backgroundPosition='0px -'+Boutons[typeBouton]['espace']+'px';
  Bouton=this;
}

function AnimeOut() {
  Bouton.style.backgroundPosition='0px 0px';
}

function AnimeDown() {
  this.style.backgroundPosition='0px -'+(2*Boutons[typeBouton]['espace'])+'px';
}

function AnimeUp() {
  this.style.backgroundPosition='0px -'+Boutons[typeBouton]['espace']+'px';
}

function InitAnime() {
  //Active les blinks
  Blink();

  // Initialise le tableau pour chaque bouton :
  // * espace indique le nombre de pixels séparant verticalement deux états
  // * série est faux si la balise portant l'id est l'objet à animer.
  //   Si série est vrai, l'animation portera sur chaque enfant de cette même balise
  // L'id correspond à la clef du tableau. Il définit aussi le nom du fichier gif du
  // répertoire images à utiliser.
  Boutons = new Array();
  Boutons['editeur'] = new Array();
  Boutons['editeur']['espace'] = 24;
  Boutons['editeur']['série'] = false;

  var boutons;
  for (var type in Boutons) {

    // Pour les séries, les boutons sont les enfants du conteneur id
    if (Boutons[type]['série']) {
      boutons = document.getElementById(type).childNodes;

    // Sinon, les boutons sont les éléments div de classe type
    } else {
      boutons = new Array();
      var j = 0;
      var divs = document.getElementsByTagName('DIV');
      for (i=0; i < divs.length; i++) {
        if (divs[i].className == type) {
          boutons[j] = divs[i];
          j++;
        }
      }
    }

    // Initialise les boutons à animer : image, comportement. Seuls les noeuds éléments
    // sont pris en compte
    for (i in boutons) {
      if(boutons[i].nodeType == 1) {
        boutons[i].style.backgroundRepeat = 'no-repeat';
        boutons[i].onmouseover = AnimeOver;
        boutons[i].onmousedown = AnimeDown;
        boutons[i].onmouseup = AnimeUp;
        boutons[i].onmouseout = AnimeOut;
      }
    }
  }
}

// Affiche l'élément éventuellement indiqué, masque le reste
// Définit la classe du menu pointé
function Montre(categ,numero,classe) {
  var nbéléments=0;
  while (document.getElementById(categ+(nbéléments+1))) {
    nbéléments++;
    document.getElementById(categ+nbéléments).style.display = 'none';
  }

  // Affichage du sous-menu
  if (numero>0) {
    with (document.getElementById(categ+numero)) {
      style.display = 'block';

      // Style du bouton pour menu horizontal
      if (categ=='smh') {
        with (parentNode.firstChild) {
          switch(classe) {
            case 'N' : className = 'boutonhactif';break;
            case 'R' : className = 'resah';break;
            case 'A' : className = 'boutonhactif';break;
            case 'C' : className = 'boutonhactif';break;
          }
        }
      }
    }

  } else if (numero<0) {

    // Style du bouton pour menu horizontal au masquage du sous-menu
    if (categ=='smh') {
      with (document.getElementById(categ+(-numero))) {
        with (parentNode.firstChild) {
          switch(classe) {
            case 'N' : className = 'normal';break;
            case 'R' : className = 'resah';break;
            case 'A' : className = 'boutonhactif';break;
             case 'C' : className = 'boutonhcontact';break;
          }
        }
      }
    }
  }
}


