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) {

if (typeof window.pageYOffset != 'undefined') {
   scrollPos = window.pageYOffset;
}
else if (typeof document.compatMode != 'undefined' &&
     document.compatMode != 'BackCompat') {
   scrollPos = document.documentElement.scrollTop;
}
else if (typeof document.body != 'undefined') {
   scrollPos = document.body.scrollTop;
}

  var x = e ? e.pageX : event.x + document.body.scrollLeft;
  var y = e ? e.pageY : event.y + scrollPos;
  var left = x+20;
  var top = y+20;
  var left = left +"px";
  var top = top +"px";
//alert("top:" + top + "left:" + left);
  tt_tooltipEl.style.left = left;
  tt_tooltipEl.style.top  = top;
}

function tt_hideTooltip() {
  if (!tt_supported) return;
  tt_tooltipEl.style.visibility = "hidden";
}
