var tt_supported = false;
var tt_tooltipEl = null;
var tt_maxWidth  = 0;

function tt_init(maxWidth) {
  if (!document.getElementById) return;
  tt_supported = true;
  tt_maxWidth = maxWidth;
  tt_tooltipEl = document.createElement("div");
  tt_tooltipEl.style.position   = "absolute";
  tt_tooltipEl.style.visibility = "hidden";
  tt_tooltipEl.className        = "tooltip";
  if (typeof(tt_tooltipEl.style.maxWidth) != "undefined") tt_tooltipEl.style.maxWidth = maxWidth + "px";
  document.getElementsByTagName("body")[0].appendChild(tt_tooltipEl);
  if(document.captureEvents) document.captureEvents(Event.MOUSEMOVE);
  document.onmousemove = tt_mouseMove;
}

function tt(msg) {
  if (!tt_supported) return;
  if (!msg) { tt_hideTooltip(); return; }
  tt_tooltipEl.innerHTML = msg;
  tt_tooltipEl.style.width = "auto";
  if (!tt_tooltipEl.style.maxWidth && tt_tooltipEl.clientWidth > tt_maxWidth)
    tt_tooltipEl.style.width = tt_maxWidth + "px";
  tt_tooltipEl.style.visibility = "visible";
}

function tt_mouseMove(e) {
  var x = e ? e.pageX : event.x + document.body.scrollLeft;
  var y = e ? e.pageY : event.y + document.body.scrollTop;
  tt_tooltipEl.style.left = x - 60;
  tt_tooltipEl.style.top  = y - 160;
}

function tt_hideTooltip() {
  if (!tt_supported) return;
  tt_tooltipEl.style.visibility = "hidden";
}
