/* : 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 bulleStyle=null if (!document.layers && !document.all && !document.getElementById) event="chut"; //pour apaiser NN3 et autres antiquites function bullepop(idd,evt){ var xfenetre,yfenetre,xpage,ypage,element=null; // Décalage entre la bulle et le curseur var offset= 40; // decalage par defaut var bulleWidth=400; // largeur par defaut var hauteur=300; // hauteur par defaut 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 = xfenetre + document.body.scrollLeft ; if (document.body.scrollTop) ypage = yfenetre + 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(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; /* a cause des debilites 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 (!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";} } function couic(){ if(bulleStyle) bulleStyle.visibility="hidden"; }