var xOffset=6
var yOffset=5
var affiche = false; // La variable i nous dit si le bloc est visible ou non
var w3c=document.getElementById && !document.all;
var ie=document.all;
if (ie||w3c) {
var laBulle
}

function ietruebody(){ // retourne le bon corps...
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function deplacer(e) {
if(affiche){
var curX = (w3c) ? e.pageX : event.x + ietruebody().scrollLeft;
var curY = (w3c) ? e.pageY : event.y + ietruebody().scrollTop;

var winwidth = ie && !window.opera ? ietruebody().clientWidth : window.innerWidth - 20;
var winheight = ie && !window.opera ? ietruebody().clientHeight : window.innerHeight - 20;

var rightedge = ie && !window.opera ? winwidth - event.clientX - xOffset : winwidth - e.clientX - xOffset;
var bottomedge = ie && !window.opera ? winheight - event.clientY - yOffset : winheight - e.clientY - yOffset;

var leftedge = (xOffset < 0) ? xOffset*(-1) : -1000

//Modifie la largeur du conteneur si il est trop grand
if(laBulle.offsetWidth > winwidth / 3){
laBulle.style.width = winwidth / 3
}

// si la largeur horizontale n'est pas assez grande pour l'info bulle
if(rightedge < laBulle.offsetWidth){
// bouge la position horizontale de sa largeur à gauche
laBulle.style.left = curX - laBulle.offsetWidth + "px"
} else {
if(curX < leftedge){
laBulle.style.left = "5px"
} else{
// la position horizontale de la souris
laBulle.style.left = curX + xOffset + "px"
}
}

// même chose avec la verticale
if(bottomedge < laBulle.offsetHeight){
laBulle.style.top = curY - laBulle.offsetHeight - yOffset + "px"
} else {
laBulle.style.top = curY + yOffset + "px"
}
}
}
//Fonction qui affiche l'info bulle
function montre(text) {
if (w3c||ie){
laBulle = document.all ? document.all["apercu_ref"] : document.getElementById ? document.getElementById("apercu_ref") : ""
laBulle.innerHTML = "<img src=img-petite" + text + " />"; // fixe l'image dans l'infobulle
laBulle.style.visibility = "visible"; // Si le conteneur est caché, on le rend visible.
affiche = true; //Permet de calculer la position de l'info bulle lorsqu'elle est visible
}
}

//Fonction qui cache l'info bulle
function cache() {
if (w3c||ie){
affiche = false //Permet de ne pas calculer la position de l'info bulle lorsqu'elle est cachée
laBulle.style.visibility="hidden" //Modifie le style du conteneur, en mettant sa proprieté visibility à hidden : conteneur caché
laBulle.style.top = '-1000px'
laBulle.style.backgroundColor = ''
laBulle.style.width = ''
}
}
document.onmousemove = deplacer; //Lorsque la souris bouge, on appelle la foncton deplacer qui met à jour la position de l'info bulle