var Infobulle = new Object;
var isNetscape4 = (document.layers) ? true : false;
var isNetscape6 = !document.all && document.getElementById;
var isNetscape = isNetscape4 || isNetscape6;
var DHTML = document.getElementById || document.all || document.layers;

function initInfobulle(couleurTexte, couleurFond, couleurCadre, largeurCadre) {
  Infobulle.couleurTexte = couleurTexte;
  Infobulle.couleurFond = couleurFond;
  Infobulle.couleurCadre = couleurCadre;
  Infobulle.largeurCadre = largeurCadre;
  
  document.write("<STYLE TYPE='text/css'>");
  document.write(".styleInfobulle {VISIBILITY: hidden;");
  document.write("POSITION: absolute;}");
  document.write("</STYLE>");
  
  document.write("<SPAN ID='bulle' CLASS='styleInfobulle'></SPAN>");
  
  if (isNetscape6)
    document.addEventListener("mousemove", gestionSouris, true);
  else {
    if (isNetscape4)
      document.captureEvents(Event.MOUSEMOVE);
    document.onmousemove = gestionSouris;
  }
}

function gestionSouris(evenement) {
  if (isNetscape) {
    sourisX = evenement.pageX;
    sourisY = evenement.pageY;
  }
  else {
    sourisX = event.clientX + document.body.scrollLeft;
    sourisY = event.clientY + document.body.scrollTop;
  }
  x = sourisX-20 < 0 ? 0 : sourisX-10;
  y = sourisY+20;
  deplacement_absolu("bulle", x, y);
}

function afficherInfobulle(texte) {
  contenu = "<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=";
  contenu += Infobulle.largeurCadre+">";
  contenu += "<TR BGCOLOR='"+Infobulle.couleurCadre+"'>";
  contenu += "<TD><TABLE BORDER=0 CELLPADDING=2 CELLSPACING=0 BGCOLOR='";
  contenu += Infobulle.couleurFond+"'>";
  contenu += "<TR><TD><i><b><FONT SIZE='-1' FACE='arial' COLOR='";
  contenu += Infobulle.couleurTexte+"'>";
  contenu += texte+"</FONT></b></i></TD></TR></TABLE></TD></TR></TABLE>";
  ecriture("bulle", contenu);
  visibilite("bulle", true);
}

function cacherInfobulle() {
  visibilite("bulle", false);
  ecriture("bulle", "");
}

function getObjet(nom) {
  if (isNetscape6)
    objet = document.getElementById(nom);
  else if (isNetscape4)
    objet = document.layers[nom];
  else
    objet = document.all[nom];
  return(objet);
}

function getStyle(nom) {
  if (isNetscape6)
    style = document.getElementById(nom).style;
  else if (isNetscape4)
    style = document.layers[nom];
  else
    style = document.all[nom].style;
  return(style);
}

function visibilite(nom, flag) {
  if (!DHTML)
    return;
  getStyle(nom).visibility = (flag) ? 'visible' : 'hidden';
}

function deplacement_absolu(nom, abscisse, ordonnee) {
  if (!DHTML)
    return;
  getStyle(nom).left = abscisse;
  getStyle(nom).top = ordonnee;
}

function ecriture(nom, texte) {
  if (!DHTML)
    return;
  if (isNetscape4) {
    getObjet(nom).document.write(texte);
    getObjet(nom).document.close();
  }
  else
    getObjet(nom).innerHTML = texte;
}

