//
// Code for managing tooltips.
//

var TooltipDelay = 5000;        // ms until the tip pops up.

var Tooltip = {
  activeTip: null,
  timer: null
};

function TooltipTimerStart(tipId)
{
  var eventTip = document.getElementById(tipId);
  
  // If the event tip is the same as the current
  // then don't do anything.
  if (Tooltip.activeTip == eventTip)
    return;
  
  // If we have a tip active, cancel it
  if (Tooltip.activeTip != null)
    TooltipCancel();
  
  // There is no tip here, so ignore it.
  if (eventTip == null)
    return;
  
  Tooltip.activeTip = eventTip;  
  Tooltip.tipTimer = setTimeout("TooltipTrigger()", TooltipDelay);
}

function TooltipCancel()
{
  if (Tooltip.activeTip == null)
    return;
  
  if (Tooltip.tipTimer != null)
    clearTimeout(Tooltip.tipTimer);
    
  Tooltip.activeTip.style.display = "none";
  Tooltip.activeTip = null;
}

function TooltipTrigger()
{
  Tooltip.tipTimer = null;
  Tooltip.activeTip.style.display = "block";
  if (Tooltip.activeTip.offsetWidth > 300)
    Tooltip.activeTip.style.width = "300px";
}

function TooltipResetCounter()
{
  if (Tooltip.activeTip == null)
    return;
    
  // The tooltip has already appeared.
  if (Tooltip.tipTimer == null)
    return;

  clearTimeout(Tooltip.tipTimer);
  
  Tooltip.tipTimer = setTimeout("TooltipTrigger()", TooltipDelay);  
}

