//pozycja myszy
var mousePositionX = 0;
var mousePositionY = 0;

document.onmousedown = captureMousePosition;
document.onmousemove = captureMousePosition;

function captureMousePosition(e) {
  if (!e) var e = window.event;
  if (e.pageX || e.pageY)         {
    mousePositionX = e.pageX;
    mousePositionY = e.pageY;
  }
  else if (e.clientX || e.clientY)        {
    mousePositionX = e.clientX + document.body.scrollLeft
      + document.documentElement.scrollLeft;
    mousePositionY = e.clientY + document.body.scrollTop
      + document.documentElement.scrollTop;
  }
}

//pozycjonowanie layerka obok lub pod myszka
function layerPositioning(popupId, layerPosition) {
  var xOffset = 10;
  var yOffset = 10;
  var scrollSize = 15;
  if (document.all) { //IE
    var xp = document.body.scrollLeft + document.documentElement.scrollLeft;
    var xq = xp + document.documentElement.clientWidth - scrollSize;
    var yp = document.body.scrollTop + document.documentElement.scrollTop;
    var yq = yp + document.documentElement.clientHeight - scrollSize;
  }
  if (!document.all && document.getElementById) { //NS
    var xp = window.pageXOffset;
    var xq = xp + window.innerWidth - scrollSize;
    var yp = window.pageYOffset;
    var yq = yp + window.innerHeight - scrollSize;
  }

  var x = 0;
  if (layerPosition=="near") {
    if (mousePositionX + popupId.clientWidth + xOffset > xq)
      x = mousePositionX - popupId.clientWidth - xOffset; //prawa
    else
      x = mousePositionX + xOffset;                       //srodek
  }
  if (layerPosition=="center") {
    x = mousePositionX - popupId.clientWidth/2;
    if (x + popupId.clientWidth + xOffset > xq) x = xq - popupId.clientWidth - xOffset; //jesli zbyt w prawo
    if (x < xp) x = xp; //jesli zbyt w lewo
  }
  if (layerPosition=="pageCenter") {
    x = xp/2 + xq/2 - popupId.clientWidth/2;
  }

  var y = 0;
  if (layerPosition=="near") {
    if (mousePositionY + popupId.clientHeight + yOffset > yq)
      y = mousePositionY - popupId.clientHeight - yOffset; //dol
    else
      y = mousePositionY + yOffset;                        //srodek
  }
  if (layerPosition=="center") {
    y = mousePositionY - popupId.clientHeight/2;
    if (y + popupId.clientHeight - yOffset > yq) y = yq - popupId.clientHeight + yOffset; //jesli za nisko
    if (y < yp) y = yp; //jesli za wysoko
  }
  if (layerPosition=="pageCenter") {
    y = yp/2 + yq/2 - popupId.clientHeight/2;
  }

  popupId.style.left = x+"px";
  popupId.style.top = y+"px";
}

// tooltip
function showToolTip(text) {
  if (!mousePositionX && !mousePositionY) {
    return;
  }
  var toolTipId = document.getElementById("toolTipId");
  var tooltiptext = '<div class="tooltip">' + text + '</div>';
  toolTipId.innerHTML = tooltiptext;
  layerPositioning(toolTipId, 'near')
  toolTipId.style.visibility = 'visible';
}

// funkcja ukrywajaca tooltip 
function hideToolTip() {
  var toolTipId = document.getElementById("toolTipId");
  toolTipId.style.visibility = 'hidden';
}

// warstwa tooltip 
document.write('<div id="toolTipId" style="visibility:hidden; position:absolute;"></div>');
