var messag = new Array;
var infoBull;

// Pour IE qui capte jamais rien ...
if (!document.getElementsByClassName){
document.getElementsByClassName = function (cl) {
var retnode = [];
var myclass = new RegExp ('\\b'+cl+'\\b');
var elem = this.getElementsByTagName ('*');
for (var i = 0; i < elem.length; i++) {
var classes = elem[i].className;
if (myclass.test (classes)) retnode.push (elem[i]);
}
return retnode;
}
}

// Identifie tous les élements devant afficher une infobulle via un nom de class (ici : viewBull)
function catchBull(){
var bullElement = document.getElementsByClassName ('viewBull');
var bullElementNum = bullElement.length;
for (var i=0; i<bullElementNum; i++) {
// récupère le contenu de l'attribut title
messag[i] = bullElement[i].getAttribute ('title')
bullElement[i].removeAttribute ('title');
bullElement[i].onmouseover = thisBullView (i,'view');
bullElement[i].onmouseout = thisBullView (i,'hide');
}
}

// Affiche ou cache la Bulle
function thisBullView (i, show){
return function(){
infoBull.innerHTML=messag[i];
infoBull.className=show;
}
}

// Détection de la souris et positionnement de la Bulle
function move(e){
if(infoBull.className=='view') {
if (navigator.appName!="Microsoft Internet Explorer") {
infoBull.style.left=e.pageX+5+'px';
infoBull.style.top=e.pageY+10+'px';
}else{
if(document.documentElement.clientWidth>0){
infoBull.style.left=20+event.x+document.documentElement.scrollLeft+'px';
infoBull.style.top=10+event.y+document.documentElement.scrollTop+'px';
} else {
infoBull.style.left=20+event.x+document.body.scrollLeft+'px';
infoBull.style.top=10+event.y+document.body.scrollTop+'px';
}
}
}
}

// Chargement du script
window.onload=function(){
infoBull = document.getElementById('infoBull');
catchBull();
document.onmousemove=move;
}
