/*----------------------------*/
/*   Script Infobulle
/*   www.webelix.net
/*----------------------------*/

// on charge la feuille de style de la bulle.
document.write('<style type="text/css">@import url(infobulle.css);</style>');
// on formate la bulle.
document.write('<div id="bulle" class="infos_bulle"></div>');
// on met à jour la position de la bulle.
document.onmousemove = move_bulle;

var i=false; // La variable i nous dit si la bulle est visible ou non

function ElementId(id)
{
  return document.getElementById(id);
}

function move_bulle(e) // Fonction de suivi de la souris 
{
  if(i){
    if(navigator.appName!="Microsoft Internet Explorer"){
      ElementId("bulle").style.left = 5+e.pageX+"px";
      ElementId("bulle").style.top = 15+e.pageY+"px";
    }else{
      ElementId("bulle").style.left = 5+event.x+document.documentElement.scrollLeft+"px";
      ElementId("bulle").style.top = 15+event.y+document.documentElement.scrollTop+"px";
    }
  }
}

function open_bulle(content)
{
  if(i==false){
    ElementId("bulle").style.visibility = "visible"; // Si la bulle est cacher on la rend visible.
	var texte = URLDecode(content);
    ElementId("bulle").innerHTML =  texte; // on copie le contenu dans la bulle
	move_bulle(ElementId("bulle")); // positionnement initial (correctif X.Dusart)
    i=true;
  }
}

function URLDecode(s )
{
   var encoded = s;
     // Replace + with ' '
     // Replace %xx with equivalent character
     // Put [ERROR] in output if %xx is invalid.
     var HEXCHARS = "0123456789ABCDEFabcdef"; 
     var plaintext = "";
     var i = 0;
     while (i < encoded.length) {
       var ch = encoded.charAt(i);
	     if (ch == "+") {
	         plaintext += " ";
		     i++;
	     } else if (ch == "%") {
			  if (i < (encoded.length-2) 
					  && HEXCHARS.indexOf(encoded.charAt(i+1)) != -1 
					  && HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
				  plaintext += unescape( encoded.substr(i,3) );
				  i += 3;
			  } else {
				  alert( 'Bad escape combination near ...' + encoded.substr(i) );
				  plaintext += "%[ERROR]";
				  i++;
			  }
		  } else {
		     plaintext += ch;
		     i++;
		  }
	  } // while
     return plaintext;
}
function close_bulle()
{
  if(i==true){
    ElementId("bulle").style.visibility = "hidden"; // Si la bulle est visible on la cache
    i=false;
  }
}

