var over, cont;

var tooltip_offsetX = 35;
var tooltip_offsetY = 20;

var docX, docY;

function findDocXY(o) {
  docX = 0;
  docY = 0;
  while (o != null) {
    docX += o.offsetLeft;
    docY += o.offsetTop;
    o = o.offsetParent;
  }
}

function tooltip_mousemove(evt) {
  //over.style.left = docX+tooltip_offsetX + 'px';
  //over.style.top  = docY+tooltip_offsetY + 'px';
}

function tooltip(evt, html) {
  if (!over) {
    over = document.getElementById('tooltip');
    cont = document.getElementById('tooltip_cont');
  }
  if (!over || !cont)
    return;

  var target = evt.target;
  if (evt.srcElement) // We hates IE!
    target = evt.srcElement;

  findDocXY(target);

  //target.onmousemove = tooltip_mousemove;

  tooltip_offsetX = target.offsetWidth;
  tooltip_offsetY = target.offsetHeight;

  cont.innerHTML = html;
  over.style.left = docX+tooltip_offsetX + 'px';
  over.style.top  = docY+tooltip_offsetY + 'px';
  over.style.visibility = 'visible';
}

function rm_tooltip(evt) {
  if (!over) {
    over = document.getElementById('tooltip');
    cont = document.getElementById('tooltip_cont');
  }
  if (!over || !cont)
    return false;

  over.style.visibility = 'hidden';

  return true;
}

