var offsetfromcursorX = 12;
var offsetfromcursorY = 10;
var offsetdivfrompointerX = 10;
var offsetdivfrompointerY = 14;

if ($) {
  $(function() {
    $('.x-manual-tooltip')
      .mouseout(function() {
        hideTooltip();
      })
      .mouseover(function() {
        showTooltip($(this).data('message'), $(this).data('dialog-width'));
      });
  });
}
document.write('<div id="hinttooltip" style="z-index: 1000000000 !important; position: absolute; left:-300px; width:150px; border:1px solid #888; border-right: 2px solid #555; ' + 
               'border-bottom: 1px solid #555; padding: 3px; text-align: left; visibility: hidden; z-index: 100;"></div>')
document.write('<img id="hintpointer" style="z-index: 1000000000 !important; position:absolute; left:-300px; z-index:101; visibility: hidden;" src="https://sedi.luxtram.lu/images/arrow_tooltip.gif">')

var ie = document.all;
var ns6 = document.getElementById && !document.all;
var enabletip = false;

if (ie || ns6) {
  var tipobj = document.all ? document.all["hinttooltip"] : document.getElementById ? document.getElementById("hinttooltip") : "";
  var pointerobj = document.all ? document.all["hintpointer"] : document.getElementById ? document.getElementById("hintpointer") : "";
}

function ietruebody() {
  return (document.compatMode && document.compatMode!="BackCompat") ? document.documentElement : document.body;
}

function showTooltip(thetext, thewidth, thecolor) {
  if (ns6 || ie) {
    if (typeof thewidth!="undefined") 
      tipobj.style.width=thewidth+"px";
    if (typeof thecolor!="undefined" && thecolor!="") 
      tipobj.style.backgroundColor=thecolor;
    tipobj.innerHTML = thetext;
    enabletip = true;
    return false;
  }
}

function positiontip(e) {
  if (enabletip) {
    var nondefaultpos = false;
    var curX = (ns6) ? e.pageX : event.clientX+ietruebody().scrollLeft;
    var curY = (ns6) ? e.pageY : event.clientY+ietruebody().scrollTop;

    var winwidth = ie && !window.opera ? ietruebody().clientWidth : window.innerWidth - 20;
    var winheight = ie && !window.opera ? ietruebody().clientHeight : window.innerHeight - 20;

    var rightedge = ie && !window.opera ? winwidth-event.clientX - offsetfromcursorX : winwidth - e.clientX - offsetfromcursorX;
    var bottomedge = ie && !window.opera? winheight-event.clientY - offsetfromcursorY : winheight - e.clientY - offsetfromcursorY;

    var leftedge = (offsetfromcursorX <0) ? offsetfromcursorX * (-1) : -1000;

    if (rightedge <tipobj.offsetWidth) {
      tipobj.style.left = curX - tipobj.offsetWidth + "px";
      nondefaultpos=true;
    } else 
      if (curX<leftedge)
        tipobj.style.left="5px";
      else {
        tipobj.style.left = curX + offsetfromcursorX - offsetdivfrompointerX + "px";
        pointerobj.style.left = curX + offsetfromcursorX + "px";
      }

    if (bottomedge <tipobj.offsetHeight) {
      tipobj.style.top = curY - tipobj.offsetHeight - offsetfromcursorY + "px";
      nondefaultpos = true;
    } else {
      tipobj.style.top = curY + offsetfromcursorY + offsetdivfrompointerY + "px";
      pointerobj.style.top = curY + offsetfromcursorY + "px";
    }
    tipobj.style.visibility = "visible";
    if (!nondefaultpos)
      pointerobj.style.visibility = "visible";
    else
      pointerobj.style.visibility = "hidden";
  }
}

function hideTooltip() {
  if (ns6 || ie) {
    enabletip = false;
    tipobj.style.visibility = "hidden";
    pointerobj.style.visibility = "hidden";
    tipobj.style.left = "-1000px";
    //tipobj.style.backgroundColor = '';
    tipobj.style.width = '';
  }
}

document.onmousemove = positiontip