// position of the tooltip relative to the mouse in pixel //
var tooltip_ox = 12;
var tooltip_oy =  8;
var tooltip_el = null;

function tooltip_move(e) {
  e = e || event;
  var mousex = e.clientX, mousey = e.clientY, b = document.body;
	if (mousex > b.clientWidth/2) {
    tooltip_el.style.left = 'auto';
	  tooltip_el.style.right = (b.clientWidth - b.scrollLeft - mousex + tooltip_ox) + 'px';
  } else {
	  tooltip_el.style.left = b.scrollLeft + (mousex + tooltip_ox) + 'px';
    tooltip_el.style.right = 'auto';
  }
	if (mousey > b.clientHeight/2) {
	  tooltip_el.style.bottom =  (b.clientHeight - b.scrollTop  - mousey + tooltip_oy) + 'px';
		tooltip_el.style.top = 'auto';
  } else {
	  tooltip_el.style.top =  b.scrollTop  + (mousey + tooltip_oy) + 'px';
		tooltip_el.style.bottom = 'auto';
	}
  tooltip_el.style.display = '';
}

function tooltip(tip) {
	var b = document.body;
  b.style.cursor = 'help';
  if(!tooltip_el) {
	  tooltip_el = document.createElement('div');
		tooltip_el.id = 'tooltip';
    var w =  b.clientWidth/2 - tooltip_ox;
    if (w > 600) w = 600;
    w += 'px';
    tooltip_el.appendChild(document.createElement('div'));
    if (document.all && navigator.userAgent.toLowerCase().indexOf("msie 6.") != -1) {
      var tooltip_iframe = document.createElement('iframe');
      tooltip_iframe.setAttribute("src", "/blank.html");
      tooltip_el.appendChild(tooltip_iframe);
      tooltip_el.style.width = w;
    }
    else {
      tooltip_el.style.maxWidth = w;
    }
		with (tooltip_el.style) { position = 'absolute'; display = 'none'; }
		b.appendChild(tooltip_el);
  }
	tooltip_el.firstChild.innerHTML = tip;
  b.onmousemove = tooltip_move;
}

function tooltip_exit() {
  var b = document.body;
  b.onmousemove = null;
  b.style.cursor = '';
  tooltip_el.style.display = 'none';
}
