function tooltipFindPosX( aObject )
{
  lCurLeft = 0;
  if( aObject.offsetParent )
  {
    while( aObject.offsetParent )
    {
      lCurLeft += aObject.offsetLeft;
      aObject = aObject.offsetParent;
    }
  }
  else if( aObject.x )
    lCurLeft += aObject.x;
  return lCurLeft;
}

function tooltipFindPosY( aObject )
{
  lCurTop = 0;
  if( aObject.offsetParent )
  {
    while( aObject.offsetParent )
    {
      lCurTop += aObject.offsetTop;
      aObject = aObject.offsetParent;
    }
  }
  else if( aObject.y )
    lCurTop += aObject.y;
  return lCurTop;
}

function tooltipShow( aTooltipID, aParentID, aPosX, aPosY, aOffset )
{
  lMarginRight = 20;
  lOffsetLeft = -4;
  lOffsetTop = 18;

  lTooltip = document.getElementById( aTooltipID );

  if( ( lTooltip.style.top == '' || lTooltip.style.top == 0 ) &&
      ( lTooltip.style.left == '' || lTooltip.style.left == 0 ) )
  {
    lTooltip.style.width = lTooltip.offsetWidth + 'px';
    lTooltip.style.height = lTooltip.offsetHeight + 'px';
  }

  lParent = document.getElementById( aParentID );

  lPosX = tooltipFindPosX( lParent ) + aPosX;
  lPosY = tooltipFindPosY( lParent ) + aPosY;

  if( aOffset == "right" )
    lPosX += lParent.offsetWidth;
  else if( aOffset == "bottom" )
    lPosY += lParent.offsetHeight;

  // Fit the tooltip on the screen (here - horizontally only):
  lMaxPosX = screen.availWidth - lMarginRight - lTooltip.offsetWidth;
  lMinPosX = 0;
  if (lPosX > lMaxPosX)
    lPosX = lMaxPosX;
  if (lPosX < lMinPosX )
    lPosX = lMinPosX;

  lPosX += lOffsetLeft;
  lPosY += lOffsetTop;

  lTooltip.style.left = lPosX + 'px';
  lTooltip.style.top = lPosY + 'px';

  lTooltip.style.visibility = 'visible';
}

function tooltipHide( aTooltipID )
{
  lTooltip = document.getElementById( aTooltipID );
  lTooltip.style.visibility = 'hidden';
}

