/* Script "z'experts" : http://perso.wanadoo.fr/coin.des.experts/
   delivre sans aucune garantie, ni des auteurs, ni du gouvernement. 
   Diffusion libre, mais merci de conserver cette signature :-)  */
   
/* Attention au doctype : si vous en mettez un (c'est quand meme mieux) et 
   si voulez que ca fonctionne avec IE6 il faut un HTLM 4 transitional **SANS URL**
   (cf ci-dessus), c.a.d. IE6 doit rester dans son mode "microsoft".
   Toujours ? cause des bugs de IE6, n'essayez pas de permuter les
   tests sur document.all et sur document.getElementById */   

/* Les bulles doivent avoir ete preparees dans autant de calques separes
   en position:absolute (sans qu'il soit necessaire de preciser de top ou 
   left) que l'on rendra invisible (visibility:hidden). Il est important 
   d'avoir fixe la largeur et la hauteur de ces calques-bulles EN PIXELS. */

 /* La fonction bullepop() qui ouvre la bulle d'aide doit etre appelee 
    avec 2 arguments:
   - le premier est l'identificateur (ID) du calque a faire apparaitre. 
   - LE DEUXIEME EST OBLIGATOIREMENT "event" (sans les guillemets) 
   c.a.d. un mot cle du javascript.
  */
var ImageCoorX=0;
var ImageCoorY=0;
var ImageFenX=0;
var ImageFenY=0;

if (!document.layers && !document.all && !document.getElementById)
   event="chut";  //pour apaiser NN3 et autres antiquites

function CoorCarte(evt){
    
 var xfenetre=0,yfenetre=0,xpage=0,ypage=0;
 
  if (document.layers) {
    xpage = evt.pageX ; ypage  = evt.pageY;
    xfenetre = xpage ;yfenetre = ypage ;		
  } else if (document.all) {
    xfenetre = evt.x ;yfenetre = evt.y ;
    xpage=xfenetre ; ypage=yfenetre	;	
    if (document.body.scrollLeft) xpage += document.body.scrollLeft ; 
    if (document.body.scrollTop) ypage += document.body.scrollTop;
  } else if (document.getElementById) {
    xfenetre = evt.clientX ; yfenetre = evt.clientY ;
    xpage=xfenetre ; ypage=yfenetre	;	
    if(evt.pageX) xpage = evt.pageX ;
    if(evt.pageY) ypage  = evt.pageY ;
  }
  ImageCoorX=xpage;
  ImageCoorY=ypage;
  ImageFenX=xfenetre;
  ImageFenY=yfenetre;
}

function bullepop(idd,evt,BMode,UtiliseCF){
 
    
 var xfenetre,yfenetre,xpage,ypage,element=null;
 var offset= 20;           // decalage par defaut
 var bulleWidth=200;       // largeur par defaut 
 var hauteur=50;           // hauteur par defaut
 var bulleStyle=null;
 
  if (document.layers) {
    bulleStyle=document.layers[idd];
    xpage = evt.pageX ; ypage  = evt.pageY;
    xfenetre = xpage ;yfenetre = ypage ;		
  } else if (document.all) {
    element=document.all[idd]
    xfenetre = evt.x ;yfenetre = evt.y ;
    xpage=xfenetre ; ypage=yfenetre	;	
    if (document.body.scrollLeft) xpage += document.body.scrollLeft ; 
    if (document.body.scrollTop) ypage += document.body.scrollTop;
  } else if (document.getElementById) {
	  element=document.getElementById(idd)
    xfenetre = evt.clientX ; yfenetre = evt.clientY ;
    xpage=xfenetre ; ypage=yfenetre	;	
    if(evt.pageX) xpage = evt.pageX ;
    if(evt.pageY) ypage  = evt.pageY ;
  }
    
  if (element)  bulleStyle=element.style;
  if (UtiliseCF) {
  	xpage=ImageCoorX;
  	ypage=ImageCoorY;
  	xfenetre=ImageFenX;
  	yfenetre=ImageFenY;
  }
  xfenetre=xpage; yfenetre=ypage;
  if (document.all) {
    if (document.body.scrollLeft) xfenetre -= document.body.scrollLeft ; 
    if (document.body.scrollTop) yfenetre -= document.body.scrollTop;
  }
  if (bulleStyle) {
   
     var yp0=ypage;
	 var yf0=yfenetre;
		 

     /* tests incongrus à cause d'Opera5 */
     if (bulleStyle.width) bulleWidth = parseFloat(bulleStyle.width);
     if (bulleStyle.height) hauteur = parseFloat(bulleStyle.height);

		 
     /* on met la bulle à gauche du pointeur (si c'est possible) 
        et en haut du pointeur si on est assez bas dans l'écran */
				
     if (xfenetre > bulleWidth+offset) xpage=xpage-bulleWidth-offset;
     else {
         if (xfenetre >0.5*bulleWidth+offset) xpage=xpage-0.5*bulleWidth-offset;
				 else xpage=xpage+15;}
     if ( yfenetre > hauteur+offset ) ypage=ypage-hauteur-offset
		 else ypage=ypage+offset;
		 
		/* à cause des debilités d'Opera5 il faut rectifier 'ypage' pour eviter
		   que la bulle ne s'ouvre par-dessus la souris. La bulle s'ouvrira
			 TOUJOURS en bas avec Opera5. Derniere vacherie : il faut faire le test sur
			 bulleStyle.width pour se proteger des distraits qui n'auront pas
			 rempli bulleStyle.height */
		 if (BMode==1) {
		 		ypage=5;xpage=10;		
		 }	 
		 if (!bulleStyle.width)	ypage=yfenetre+offset;
		 if (typeof(bulleStyle.left)=='string') {
				 bulleStyle.left=xpage+'px'; bulleStyle.top=ypage+'px';  
		 } else {
			bulleStyle.left=xpage; 
			bulleStyle.top=ypage ; 
		 } 
     	 bulleStyle.visibility="visible"; 
     	 bulleStyle.zIndex="99";
  }
	 
	 return true;
}
 
function couic(idd){
  	var element=null;
	var bulleStyle=null;

  if (document.layers) {
    bulleStyle=document.layers[idd];
  } else if (document.all) {
    element=document.all[idd];
  } else if (document.getElementById) {
	element=document.getElementById(idd);
  }
  if (element)  bulleStyle=element.style;
  if (bulleStyle)  bulleStyle.visibility="hidden";
}


