// Parametres
var id_infobulle = "divbulle";
var obj_infobulle = "infobulle";
var offset_curseur = 10;
var i=false; // La variable i nous dit si la bulle est visible ou non
var alt_saved = "";

function GetId(id) {
	return document.getElementById(id);
}

/**
 * Initialisation des infos bulles
 * Recup les tags img avec un id infobulle puis ajoute les evenements onmouseover et onmouseout
 */
function init_infobulle() {
	
	var elem_img = document.getElementsByTagName("img");
	
	for(var i=0; i != elem_img.length; i++) {
		
		if(elem_img[i].id == obj_infobulle) {
			elem_img[i].onmouseover = function() { show(this); }
			elem_img[i].onmouseout = function() { hide(this); }
		}
	}
}

/**
* Récupération de la position de la souris
*/
function move(e) {
	if(i) {  // Si la bulle est visible, on calcul en temps reel sa position ideale
		if (navigator.appName!="Microsoft Internet Explorer") { // Si on est pas sous IE
			GetId(id_infobulle).style.left=e.pageX + offset_curseur + "px";
			GetId(id_infobulle).style.top=e.pageY + offset_curseur + "px";
		}
		else { // Modif proposé par TeDeum, merci à lui
			if(document.documentElement.clientWidth>0) {
				GetId(id_infobulle).style.left=offset_curseur + event.x + document.documentElement.scrollLeft + "px";
				GetId(id_infobulle).style.top=offset_curseur + event.y + document.documentElement.scrollTop + "px";
			}
			else {
				GetId(id_infobulle).style.left=offset_curseur + event.x + document.body.scrollLeft + "px";
				GetId(id_infobulle).style.top=offset_curseur + event.y + document.body.scrollTop + "px";
			}
		}
	}
}

/**
* Affiche le texte passé en paramètre
*/
function show(obj) {
	if(i==false) {
		
		text = obj.alt;
		alt_saved = obj.alt;
		obj.alt = "";
	
		GetId(id_infobulle).style.visibility="visible"; // Si il est cacher (la verif n'est qu'une securité) on le rend visible.
		GetId(id_infobulle).innerHTML = text; // Cette fonction est a améliorer, il parait qu'elle n'est pas valide (mais elle marche)
		i=true;
	}
}

/**
* Cache la bulle
*/
function hide(obj) {
	if(i==true) {
		
		obj.alt = alt_saved;
		GetId(id_infobulle).style.visibility="hidden"; // Si la bulle etais visible on la cache
		i=false;
	}
}

/**
* Affiche le texte passé en paramètre
*/
function show_txt(obj, txt) {
	if(i==false) {
	
		alt_saved = obj.alt;
		obj.alt = "";
		
		GetId(id_infobulle).style.visibility="visible"; // Si il est cacher (la verif n'est qu'une securité) on le rend visible.
		GetId(id_infobulle).innerHTML = txt; // Cette fonction est a améliorer, il parait qu'elle n'est pas valide (mais elle marche)
		i=true;
	}
}

document.onmousemove=move; // des que la souris bouge, on appelle la fonction move pour mettre a jour la position de la bulle.