var IB=new Object;
var posX=0;posY=40;
var xOffset=0;yOffset=0;
var switchAffichage = 0;
var IDinterval = 0;
var bouton;

function calculeXOffsetPopUp(largeurPopUp,positionImg){
	// Calcul de l'offset
	if (navigator.userAgent.indexOf("MSIE") > 0){
		var largeurNav = (document.body.clientWidth);
	}else{
		var largeurNav = (window.innerWidth);
	}
	var totalLargeur = (positionImg.offsetLeft)+largeurPopUp;
	// Calcul de la pos img
	var nouvelOffset;
	if (totalLargeur > largeurNav){
		depassement = totalLargeur - largeurNav;
		nouvelOffset = positionImg.offsetLeft - (depassement+100) // +20 pour une petite marge...
	}else{
		nouvelOffset = -1;
	}
	return nouvelOffset;
}

function AffBulle(texte,positionPop,positionImg,largeurBulle,boutonParam) {
 
  bouton = boutonParam;
  switchAffichage = 0;
  maintientAffichageBulle();
  
  posPop = 0;
  if (positionPop == 2)
  	posPop = 105;
  else
  	if (positionPop == 3)
		posPop = 210;
	else
		if (positionPop == 4)
			posPop = 315;
		else
			if (positionPop == 5)
				posPop = 420;
			else
				if (positionPop == 6)
					posPop = 525;

  if (texte != ''){
  contenu = "<table cellspacing=0 cellpadding=0 class=popUp onmouseout='javascript:HideBulle(0)' onmouseover='javascript:maintientAffichageBulle(),allumeBouton()'><tr><td><table border=0 cellpadding=2 cellspacing=2><tr><td>"+texte+"</td></tr></td></tr></table>";
  }
  else contenu = "";
  var finalPosX=posX-xOffset;
  if (finalPosX<0) finalPosX=0;
 
  // On détermine la position de la popup
  var positionTop = positionImg.offsetTop + 30;
  
  // On recalcule si nécessaire la position de la popup
  var positionLeft;
  var decalage = 20;
  monOffset = calculeXOffsetPopUp(largeurBulle,positionImg);
  if (monOffset != -1) positionLeft = monOffset + posPop + decalage;
  else positionLeft = positionImg.offsetLeft - 20 + posPop + decalage;
 
  
  //alert(positionLeft);
  if (document.layers) {
    document.layers["bulle"].document.write(contenu);
    document.layers["bulle"].document.close();
    
    //document.layers["bulle"].top=posY+yOffset;
    //document.layers["bulle"].left=finalPosX;
    document.layers["bulle"].top = positionTop;
    document.layers["bulle"].left = positionLeft;
    
    document.layers["bulle"].visibility="show";}
  if (document.all) {
    //var f=window.event;
    //doc=document.body.scrollTop;
    bulle.innerHTML=contenu;
    
    //document.all["bulle"].style.top=posY+yOffset;
    //document.all["bulle"].style.left=finalPosX;//f.x-xOffset;
    document.all["bulle"].style.top = positionTop;
    document.all["bulle"].style.left = positionLeft;
    
    document.all["bulle"].style.visibility="visible";
  }
  //modif CL 09/2001 - NS6 : celui-ci ne supporte plus document.layers mais document.getElementById
  else if (document.getElementById) {
    document.getElementById("bulle").innerHTML=contenu;
    
    //document.getElementById("bulle").style.top=posY+yOffset;
    //document.getElementById("bulle").style.left=finalPosX;
    document.getElementById("bulle").style.top = positionTop;
    document.getElementById("bulle").style.left = positionLeft;
    
    document.getElementById("bulle").style.visibility="visible";
  }
 
}

function allumeBouton(){
	MM_swapImage(bouton,'','Images/'+bouton+'.gif',1);
}

function getMousePos(e) {
  if (document.all) {
  posX=event.x+document.body.scrollLeft; //modifs CL 09/2001 - IE : regrouper l'évènement
  posY=event.y+document.body.scrollTop;
  }
  else {
  posX=e.pageX; //modifs CL 09/2001 - NS6 : celui-ci ne supporte pas e.x et e.y
  posY=e.pageY; 
  }
}

function HideBulle(tempo) {
	switchAffichage = 0;
	IDinterval = setInterval('executeHide()', tempo);
	//setTimeout('executeHide()',tempo);
}

function executeHide(){
	if (switchAffichage == 0){
	MM_swapImgRestore()
		if (document.layers) {document.layers["bulle"].visibility="hide";}
		if (document.all) {document.all["bulle"].style.visibility="hidden";}
		else if (document.getElementById){document.getElementById("bulle").style.visibility="hidden";}
	}
}

function maintientAffichageBulle(){
	clearInterval(IDinterval);
	if (switchAffichage == 0) switchAffichage = 1;
	//alert(switchAffichage);
}

function clearAffichageBulle(){
	var tempo = 1000;
	//alert('clearAffichageBulle');
	setTimeout("clearBulle()",100);
}

function clearBulle(){
	//alert('clearBulle');
	switchAffichage = 0;
	executeHide();
}

function InitBulle(ColTexte,ColFond,ColContour,NbPixel) {
	IB.ColTexte=ColTexte;IB.ColFond=ColFond;IB.ColContour=ColContour;IB.NbPixel=NbPixel;
	if (document.layers) {
		window.captureEvents(Event.MOUSEMOVE);window.onMouseMove=getMousePos;
		document.write("<LAYER name='bulle' top=0 left=0 visibility='hide'></LAYER>");
	}
	if (document.all) {
		document.write("<DIV id='bulle' style='position:absolute;top:0;left:0;z-index:20;visibility:hidden'></DIV>");
		document.onmousemove=getMousePos;
	}
	//modif CL 09/2001 - NS6 : celui-ci ne supporte plus document.layers mais document.getElementById
	else if (document.getElementById) {
	        document.onmousemove=getMousePos;
	        document.write("<DIV id='bulle' style='position:absolute;top:0;left:0;visibility:hidden'></DIV>");
	}

}

document.onmouseup = clearAffichageBulle;

