 /* La fonction bulle() qui ouvre la bulle d'aide a 3 arguments possibles:
   - le premier est le message a faire apparaitre. 
   - LE DEUXIEME EST OBLIGATOIREMENT "event" (sans les guillemets) 
   c.a.d. un mot cle du javascript.
   - Le 3eme argument est facultatif. Il permet d'ajuster 
   le decalage vertical afin de ne pas tronquer les bulles trop 
   longues ouvertes vers le bas de l'ecran; partez de
       hauteur=1,2 x taille police x nombre de lignes +10
  Example d'utilisation :
  <a href="#" onmouseover="bulle('Votre message ici',event, 100)" onmouseout="couic();">
    pass your mouse over this text
  </a>
  Créer l'objet tip quelquepart dans la page
  <div id="tip"></div>          
   et ajouter sa mise en forme dans la CSS
   
#tip {
  visibility: hidden;
  position: absolute; 
  
  border: 1px solid #beafff;
  padding: 1px;   
  padding-left: 5px;
  padding-right: 5px;
  background-color: #fffff0;
  z-index: 800;  
  height: auto; 
  text-align: left; 
	opacity: 0.80;
	filter:alpha(opacity=80);
}
  */


var bulleStyle=null
if (!document.layers && !document.all && !document.getElementById)
   event="chut";  //pour apaiser NN3 et autres antiquites
var bulleWidth;
var hauteur;
var offset

function bulle(msg,evt,width){
 var xfenetre,yfenetre,xpage,ypage,element=null;
 offset;           // decalage par defaut
 if (!width) {
   bulleWidth=500;       // largeur par defaut 
 } else {
   bulleWidth = width;
 }
 offset = -1 * (bulleWidth/3);
 hauteur=40; // hauteur par d&#381;faut
  var theSource;
  if (document.all) {
    // IE
    element=document.all['tip'];
    //alert('evt.y : ' + evt.y)
    //alert('evt.clientY : ' + evt.clientY)
    xfenetre = evt.x ;yfenetre = evt.y;		
    xpage=xfenetre ; ypage=yfenetre	;	
    theSource = evt.srcElement;
    if (document.body.scrollLeft) xpage = xfenetre + document.body.scrollLeft ; 
    if (document.body.scrollTop) ypage = yfenetre + document.body.scrollTop;
  } else if (document.layers) {
    // SAis pas
    bulleStyle=document.layers['tip'];
    bulleStyle.document.write('<layer '
       +'style="border:1px solid black;color:black">'
       + msg + '</layer>' );
    bulleStyle.document.close();
    xpage = evt.pageX ; ypage  = evt.pageY;
    xfenetre = xpage ;yfenetre = ypage ;		
  } else if (document.getElementById) {
    // Firefox
	  element=document.getElementById('tip');
    theSource = evt.target;
    xfenetre = evt.clientX ;yfenetre = evt.clientY -10;
    //alert('evt.clientY : ' + evt.clientY)
    xpage=xfenetre ; ypage=yfenetre	;	
    if(evt.pageX) xpage = evt.pageX ;
    if(evt.pageY) ypage  = evt.pageY ;
  }
    
  if(element) {
     bulleStyle=element.style;
		 element.innerHTML=msg;
  }
  if(bulleStyle) {
     /* on met la bulle &#710; gauche du pointeur (si c'est possible) 
        et en haut du pointeur si on est assez bas dans l'&#381;cran */
		xpage=xpage+offset+50;
		if (bulleWidth) {
      if (xfenetre > bulleWidth+offset) xpage=xpage+offset;
      else xpage=xpage+15;
    }
    if ( yfenetre > hauteur-50 ) ypage=ypage-hauteur+50;
     
		if (width) {
      bulleStyle.width=width;  
    }
		if(typeof(bulleStyle.left)=='string') {
		  bulleStyle.left=xpage+'px'; bulleStyle.top=ypage+'px';  
    } else {
    	bulleStyle.left=xpage;
    	bulleStyle.top=ypage ; 
    }
    bulleStyle.visibility="visible";
  }
   
  if (document.all) { // IE SUCKS!!!  
    theSource.onmousemove = function() { bougeBulle(event);};
  } else {
    theSource.setAttribute('onMouseMove', 'javascript:bougeBulle(event);');
  }
}
 
function couic(){
  if(bulleStyle)  bulleStyle.visibility="hidden";
}

function bougeBulle(evt) {
  if(bulleStyle) {
    var xfenetre;
    var yfenetre;		
    var xpage; 
    var ypage;	
    if (document.all) {
      var xfenetre = evt.x;
      var yfenetre = evt.y;		
      var xpage=xfenetre ; 
      var ypage=yfenetre;	
    if (document.body.scrollLeft) xpage = xfenetre + document.body.scrollLeft ; 
    if (document.body.scrollTop) ypage = yfenetre + document.body.scrollTop;
    } else  {
      xfenetre = evt.clientX;
      yfenetre = evt.clientY -10;
      xpage=xfenetre ; 
      ypage=yfenetre	;	
      if(evt.pageX) xpage = evt.pageX ;
      if(evt.pageY) ypage  = evt.pageY ;
    }
		xpage=xpage+offset+50;
		if (bulleWidth) {
     if (xfenetre > bulleWidth+offset) xpage=xpage+offset;
    }
    if ( yfenetre > hauteur-50 ) ypage=ypage-hauteur+50;
  	if(typeof(bulleStyle.left)=='string') {
  		bulleStyle.left=xpage+'px'; 
  		bulleStyle.top=ypage+'px';  
  	} else {
  	  bulleStyle.left=xpage; 
  	  bulleStyle.top=ypage; 
  	}
  	bulleStyle.visibility="visible"; 
  }
}