var toolTipTag = null;
var bodyW = null;
var bodyH = null;

function getMouseX (e)
{	return e ? e.pageX : (window.event ? window.event.clientX : null);	}
function getMouseY (e)
{	return e ? e.pageY : (window.event ? window.event.clientY : null);	}

function showToolTip (tag)
{	setToolTip(tag, true);	}

function hideToolTip (tag)
{	setToolTip(tag, false);	}

function setToolTip (tag, style)
{
	if (toolTipTag = getElt(tag))
		if (style)
			document.onmousemove = drawToolTip;
		else
		{
			toolTipTag.style.display = "none";
			document.onmousemove = null;
		}
}

function drawToolTip (e)
{
	// Dimensions de la page (zone intérieure du navigateur)
	if (bodyW === null)	bodyW = getBodyWidth();
	if (bodyH === null)	bodyH = getBodyHeight();
	var scrollTop = document.documentElement.scrollTop;

	// Dimensions de l'infobulle
	var toolTipW = toolTipTag.offsetWidth;
	var toolTipH = toolTipTag.offsetHeight;

	// Position du pointeur
	var mouseX = getMouseX(e);
	var mouseY = getMouseY(e);

	// Marge en dessous de l'infobulle
	var toolTipBottom = bodyH - mouseY + 15;
	// IE BUG FIX
	if (user.isIE())
		toolTipBottom -= scrollTop;
	// Dépassement éventuel de l'écran (en haut)
	if (toolTipBottom + toolTipH + scrollTop >= bodyH)
		toolTipBottom = bodyH - toolTipH - scrollTop;

	// Marge à gauche de l'infobulle
	var toolTipLeft = mouseX + 15;
	// Dépassement éventuel de l'écran (à droite)
	if (toolTipLeft + toolTipW >= bodyW - 16)
		// Si le pointeur empiète sur l'infobulle, on déplasse l'infobulle à gauche du pointeur
		if (mouseX >= bodyW - toolTipW && (mouseY - scrollTop) <= toolTipH)
			toolTipLeft = mouseX - toolTipW - 15;
		else
			toolTipLeft = bodyW - toolTipW - 16;

	// positionnement de l'infobulle
	toolTipTag.style.bottom = toolTipBottom + "px";
	toolTipTag.style.left = toolTipLeft + "px";
	toolTipTag.style.display = "block";

// DEBUG
//if (getElt("Trace"))
//getElt("Trace").innerHTML =
//	"Body: " + bodyW + "x" + bodyH + "<br/>"
//	+ "Scroll: " + scrollTop + "<br/>"
//	+ "Pointer : " + mouseX + "x" + mouseY + "<br/>"
//	+ "ToolTip : " + toolTipTag.offsetWidth + "x" + toolTipTag.offsetHeight;
// END DEBUG
}
