<!--
/*
	Auteur : Yohann MARILLET

	Version 1.0 : 19/07/2007 
	Version 1.1 : 02/04/2009 // Correction des bugs d'affichage (frame de retard)
	
	Contact : ymarillet@gmail.com
	
	Placer ce module juste apres la balise <body>
	Ce module est codé en UTF-8
	
	Texte à ajouter dans le css (le modifier si necessaire) : 
	.infobulle
	{
		position: absolute;
		display : none;
		border: 1px solid Black;
		padding: 5px;
		font-size: 0.8em;
		background-color: #FFFFCC;
		z-index: 10000;
		clear: both;
	}

	Se servir des infobulles, sur n'importe quelle balise HTML, ajouter en attribut : 
	onmouseover="show_Infobulle(param)" onmouseout="hide_Infobulle()"
	
	où param est une chaine de caractere formattée en HTML (attention aux double et simple quotes, risque de bugs, utiliser les entités HTML)
	
	Testé avec les navigateurs : 
	- Internet Explorer 6
	- Mozilla Firefox 2.0.0.5
	- Opéra 9.21
*/


	//Gestion de l'infobulle (récupéré sur http://blog.damienalexandre.fr/index.php?post/2005/09/24/40-info-bulle-javascript puis modifié)
	
	var infobulle_visible=false;
	var mousemove_event_memory = '';
	 
	function move(e,appel_interne) 
	{	
		mousemove_event_memory = (navigator.appName!="Microsoft Internet Explorer"||appel_interne?e:event);
		e = mousemove_event_memory;
		if(infobulle_visible) // Si la bulle est visible, on calcule en temps reel sa position ideale
		{
			document.getElementById("curseur").style.visibility="hidden";
			document.getElementById("curseur").style.display="block";
			var correction_curseur=5;
			if (navigator.appName!="Microsoft Internet Explorer") // Si on est pas sous IE
			{ 
				var posMouseX = e.pageX;
				var posMouseY = e.pageY;
				var tailleInfobulleX = parseInt(document.getElementById("curseur").offsetWidth);
				var tailleInfobulleY = parseInt(document.getElementById("curseur").offsetHeight);
				var ecartX = 10;
				var ecartY = 15;
				var scrollbarSize = 15;
				var posleft;
				var postop;
				
				if(tailleInfobulleX+posMouseX+ecartX+scrollbarSize < window.innerWidth + window.pageXOffset)
				{
					posleft = e.pageX+ecartX;
				}
				else
				{
					posleft = correction_curseur+e.pageX-tailleInfobulleX-ecartX;
				}
				
				if(tailleInfobulleY+posMouseY+ecartY+scrollbarSize < window.innerHeight + window.pageYOffset)
				{
					postop = e.pageY+ecartY;
				}
				else
				{
					postop = correction_curseur+e.pageY-tailleInfobulleY-ecartY;
				}
				
				if(posleft<window.pageXOffset)
					posleft=correction_curseur+window.pageXOffset;
				if(postop<window.pageYOffset)
					postop=correction_curseur+window.pageYOffset;
				
				document.getElementById("curseur").style.left=posleft+"px";
				document.getElementById("curseur").style.top=postop+"px";
			}
			else //on est sous IE
			{
			    var posMouseX = e.clientX;
				var posMouseY = e.clientY;
				var tailleInfobulleX = parseInt(document.getElementById("curseur").offsetWidth);
				var tailleInfobulleY = parseInt(document.getElementById("curseur").offsetHeight);
				var ecartX = 10;
				var ecartY = 15;
				var scrollbarSize = 16;
				var posleft;
				var postop;
				
				if(tailleInfobulleX+posMouseX+ecartX+scrollbarSize < document.documentElement.offsetWidth)
				{
					posleft = ecartX+e.clientX+document.documentElement.scrollLeft;
				}
				else
				{
					posleft = correction_curseur+e.clientX-ecartX-tailleInfobulleX+document.documentElement.scrollLeft;
					
				}
				
				if(tailleInfobulleY+posMouseY+ecartY+scrollbarSize < document.documentElement.offsetHeight)
				{
					postop = ecartY+e.clientY+document.documentElement.scrollTop;
				}
				else
				{
					postop = correction_curseur+e.clientY-ecartY-tailleInfobulleY+document.documentElement.scrollTop;
				}
				
				if(posleft<document.documentElement.scrollLeft)
					posleft=correction_curseur+document.documentElement.scrollLeft;
				if(postop<document.documentElement.scrollTop)
					postop=correction_curseur+document.documentElement.scrollTop;
				
				document.getElementById("curseur").style.left=posleft+"px";
				document.getElementById("curseur").style.top=postop+"px";
			}
			//on affiche l'infobulle après avoir effectué les calculs
			document.getElementById("curseur").style.visibility="visible";
		}
		else
			document.getElementById("curseur").style.display="none"; // Si la bulle etait visible on la cache
	}
	 
	function show_Infobulle(text) 
	{
		if(text)
		{
			document.getElementById("curseur").innerHTML = text;
		}
		infobulle_visible=true;
		move(mousemove_event_memory,true);
	}
	
	function hide_Infobulle() 
	{
		infobulle_visible=false;
		document.getElementById("curseur").style.left="-1000px";
		document.getElementById("curseur").style.top="-1000px";
	}
	
	document.onmousemove=move; // des que la souris bouge, on appelle la fonction move pour mettre a jour la position de la bulle.
	
	document.write('<div id="curseur" class="infobulle">Infobulle</div>');
-->
