// Document JavaScript
//********************************************************
// Fonctions InfoBulle
// utilisation : onmousemove="InfoBulle_Show('Titre', 'Texte HTML', event);"
//********************************************************
var Bulle_PosX = 0; Bulle_PosY = 0;
var Bulle_xOffset = 5; Bulle_yOffset = 5;
var Bulle_MargeDroite = 20;
var objInfoBulle = null;

function InfoBulle_Show(titre, texte, e) 
{
  // On ne construit le contenu que si l'info bulle était cachée
  if(objInfoBulle.style.display == "none")
  {
    if (titre != "" || texte != "")
  	{
  		if (titre == "")
  			contenu = '<p><span class="bulle-texte">' + texte + '</span></p>';
  		else
  			contenu = '<p><span class="bulle-titre">' + titre + '</span><span class="bulle-texte">' + texte + '</span></p>';
      // Remplissage de l'info-bulle
  		objInfoBulle.innerHTML = contenu;
  	}
  }
  // Récupération des coordonnées de la souris
  getMousePos(e);
  // Positionnement
	objInfoBulle.style.top = (Bulle_PosY + Bulle_yOffset) + "px";
  // On rend l'infobulle visible AVANT son positionnement en largeur
  // pour pouvoir calculer sa largeur (offsetWidth)
	objInfoBulle.style.display = "block";
	// on regarde si l'infobulle dépasse de l'écran (à droite uniquement)
  var WinWidth = (window.innerWidth)? window.innerWidth : document.body.offsetWidth;
	var TipWidth = objInfoBulle.offsetWidth;
	if((Bulle_PosX + Bulle_xOffset + TipWidth) < (WinWidth - Bulle_MargeDroite))
	{
		objInfoBulle.style.left = (Bulle_PosX + Bulle_xOffset) + "px";
		// Modification de l'image du haut
		objInfoBulle.style.backgroundImage = "url(images/infobulle/bulle_topleft.gif)";
	}
	else
	{
	  // Positionnement à gauche
		objInfoBulle.style.left = (Bulle_PosX - Bulle_xOffset - TipWidth) + "px";
		// Modification de l'image du haut
		objInfoBulle.style.backgroundImage = "url(images/infobulle/bulle_topright.gif)";
	}
}

function getMousePos(e) 
{
  if (document.all)
  {
    // document.body.scrollLeft(Top) ne fonctionne pas sous IE en XHTML
    if(document.documentElement && document.documentElement.clientWidth)
      DocRef = document.documentElement;
    else
      DocRef = document.body;
    
    Bulle_PosX = event.clientX + DocRef.scrollLeft;
    Bulle_PosY = event.clientY + DocRef.scrollTop;
  }
  else
  {
    Bulle_PosX = e.pageX;
    Bulle_PosY = e.pageY;
  }
}

function InfoBulle_Hide() 
{
	objInfoBulle.style.display = "none";
}

function InfoBulle_Init() 
{
  // Création du nouvel élément
  objParent = document.getElementsByTagName("body")[0];
  objInfoBulle = document.createElement("div");
  objInfoBulle.setAttribute("id", "InfoBulle");
  objParent.appendChild(objInfoBulle);
  // On précise directement l'invisibilité car le CSS n'est pas lu par cette syntaxe
	objInfoBulle.style.display = "none";
	// On préremplit la bulle pour charger les images
  contenu = '<p><span class="bulle-titre">&nbsp;</span><span class="bulle-texte">&nbsp;</span></p>';
  objInfoBulle.innerHTML = contenu;
}

