//----------------------------------------------------------
//  Nom Document : evenements.js
//  Auteur       : Danny Goodman
//  Objet        : Gestionnaire d'événements load générique comme gestionnaire de file
//  Création     : 2012/01/18
//----------------------------------------------------------
//  Mise à Jour  : 
//  Objet        :
//  Auteur       :
//----------------------------------------------------------

// Harmoniser les modèles d'événements IE et W3C
// Mettre en place une association entre un événement et une fonction
function ajouteEvenement(elem, typeEvt, fonc, capture) {
  capture = (capture) ? capture : false;
  if (elem.addEventListener) {
    elem.addEventListener(typeEvt, fonc, capture);
  } else if (elem.attachEvent) {
    elem.attachEvent("on" + typeEvt, fonc);
  } else {
    // Pour IE/Mac, NN4 et les anciens navigateurs
    elem["on" + typeEvt] = fonc;
  }
}

// Supprimer une association entre un événement et une fonction
function supprimeEvenement(elem, typeEvt, fonc, capture) {
  capture = (capture) ? capture : false;
  if (elem.removeEventListener) {
    elem.removeEventListener(typeEvt, fonc, capture);
  } else if (elem.detachEvent) { // attachEvent ou detachEvent ???
    elem.detachEvent("on" + typeEvt, fonc);
  } else {
    // Pour IE/Mac, NN4 et les anciens navigateurs
    elem["on" + typeEvt] = null;
  }
}

// Chaque bibliothèque externe ou script dans la page principale peut s'auto-initialiser
// en incluant un appel à la fonction ajouteEvenementLoad().
// Les appels réussisà ajouteEvenementLoad() ajoutent la fonction passée en paramètre
// à la fin de la file des fonctions à appeler par l'événement load.
function ajouteEvenementOnLoad(fonc) {
  if (window.addEventListener || window.attachEvent) {
    ajouteEvenement(window, "load", fonc, false);
  } else {
    var oldQueue = (window.onload) ? window.onload : function() {};
    window.onload = function() {
      oldQueue();
      fonc();
    }
  }
}
