//
// ToolTip Client Side Handling Code
//
// Requires common.js
//
function ShowTooltip(event, text)
{
	var div = document.getElementById("tooltip");
	if (div) {
	    div.innerHTML = text;
        div.style.visibility = "visible";
        div.style.display = "block";
        // Must reposition after setting style/visibility so the new client width
        // has been set.
        PositionTooltip(event, div);
    }
}

function HideTooltip()
{
    var div = document.getElementById("tooltip");
	if (div) {
	    div.style.display = "none";
        div.innerHTML = "";
	    div.style.top = "1px"
	    div.style.left = "1px"
    }
}

function PositionTooltip(event, div)
{
  if (event==undefined) { alert("Need event to position a tooltip"); return; }

  var posx=0;
  var posy=0;

  posx =  event.clientX + 12;
  posy =  event.clientY + getScrollTop()+12;
  div.style.top = posy + "px";
  div.style.left = posx + "px";
  
  // Its quite narrow for it's height
  var lastposx = -1;
  var limitLeft = getScrollLeft();
  if (div.innerHTML.length>12)
  {
    while ((div.clientWidth<(div.clientHeight*3)) & (posx!=lastposx)) {
       lastposx=posx;
       posx=posx-div.clientWidth/2;
       if (posx<limitLeft) { posx=limitLeft; }
       div.style.left=posx + "px";
    }
  }
  
  // Is it too low, try above instead
  var limitTop=getScrollTop(); 
  var limitBottom = limitTop + getClientHeight();
  if ((posy+div.clientHeight)>limitBottom) 
  { 
    if ((posy-div.clientHeight-12)>limitTop)
    {
        posy = posy-div.clientHeight-12;
        div.style.top = posy + "px";
    }
  }
}
