var offsetfromcursorX = 12; //Customize x offset of tooltip
var offsetfromcursorY = 10; //Customize y offset of tooltip

var offsetdivfrompointerX = 10; //Customize x offset of tooltip DIV relative to pointer image
var offsetdivfrompointerY = 14; //Customize y offset of tooltip DIV relative to pointer image. Tip: Set it to (height_of_pointer_image-1).

var defaultposition = 'rb';
var isLeftChange = true;
var isRightChange = true;
var isTopChange = true;
var isBottomChange = true;

document.write('<div id="tooltipbox" align=left></div>');
document.write('<img id="pointerlefttop" src="/images/pointer_rightbottom.gif">');
document.write('<img id="pointerrighttop" src="/images/pointer_leftbottom.gif">');
document.write('<img id="pointerleftbottom" src="/images/pointer_righttop.gif">');
document.write('<img id="pointerrightbottom" src="/images/pointer_lefttop.gif">');

var ie = document.all
var ns6 = document.getElementById && !document.all
var enabletip = false

if (ie || ns6)
{
  var tooltipbox_obj = document.all ? document.all["tooltipbox"] : document.getElementById? document.getElementById("tooltipbox") : ""
}
var pointerlefttop_obj = document.all ? document.all["pointerlefttop"] : document.getElementById ? document.getElementById("pointerlefttop") : ""
var pointerleftbottom_obj = document.all ? document.all["pointerleftbottom"] : document.getElementById ? document.getElementById("pointerleftbottom") : ""
var pointerrighttop_obj = document.all ? document.all["pointerrighttop"] : document.getElementById ? document.getElementById("pointerrighttop") : ""
var pointerrightbottom_obj = document.all ? document.all["pointerrightbottom"] : document.getElementById ? document.getElementById("pointerrightbottom") : ""

function ietruebody()
{
  return (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body
}

function ddrivetip(thetext, thewidth, theposition, theleftout, therightout, thetopout, thebottomout)
{
  if (ns6 || ie)
  {
    if (typeof thewidth != "undefined")
    {
      tooltipbox_obj.style.width = thewidth + "px"
    }
    if (typeof thecolor != "undefined" && thecolor != "")
    {
      tooltipbox_obj.style.backgroundColor = thecolor
    }
    if (typeof theposition != "undefined" && theposition != "")
    {
      defaultposition = theposition;
    }
    if (typeof theleftout != "undefined")
    {
      isLeftChange = theleftout;
    }
    if (typeof therightout != "undefined")
    {
      isRightChange = therightout;
    }
    if (typeof thetopout != "undefined")
    {
      isTopChange = thetopout;
    }
    if (typeof thebottomout != "undefined")
    {
      isBottomChange = thebottomout;
    }
    tooltipbox_obj.innerHTML = thetext
    enabletip = true
    return false
  }
}

function positiontip(e)
{
  if (enabletip)
  {
    var pointerlefttop_status = false;
    var pointerleftbottom_status = false;
    var pointerrighttop_status = false;
    var pointerrightbottom_status = false;
    var dleft = false;
    var dright = false;
    var dtop = false;
    var dbottom = false;

    var curX = (ns6) ? e.pageX : event.clientX + ietruebody().scrollLeft;
    var curY = (ns6) ? e.pageY : event.clientY + ietruebody().scrollTop;

    //Find out how close the mouse is to the corner of the window
    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;

    //Default pozicio es az elmozgasok figyelese
    if (defaultposition == 'lb' || defaultposition == 'lt') // Default pos bal oldalt van
    {
      //A bal szele kisebb-e az ablaknak mint a szelessege a box-nak
      if (curX < tooltipbox_obj.offsetWidth) // Kevesebb. Valtas ellenorzese
      {
        //Megnezni a bal valtas engedelyet. Ha nincs akkor hagyni bal oldalt megjelenni, ha van akkor kirakni jobbra.
        if (isLeftChange) // Kirakni jobb oldalra
        {
          dleft = false;
          dright = true;
        }
        else // Kirakni bal oldalra
        {
          dleft = true;
          dright = false;
        }
      }
      else // Nem kevesebb balra kirak
      {
      	dleft = true;
       	dright = false;
      }
    }
    else if (defaultposition == 'rb' || defaultposition == 'rt') // Default pos jobb oldalt van
    {
      //A jobb szele kisebb-e az ablaknak mint a box szelessege
      if (rightedge < tooltipbox_obj.offsetWidth) // Kevesebb. Valtas ellenorzese
      {
        if (isRightChange) // Kirakni bal oldalra
        {
          dleft = true;
          dright = false;
        }
        else // Kirakni jobb oldalra
        {
          dleft = false;
          dright = true;
        }
      }
      else // Nem kevesebb jobbra kirak
      {
        dleft = false;
        dright = true;
      }
    }

    // FENT - LENT
    if (defaultposition == 'lt' || defaultposition == 'rt')
    {
      // Felul kevesebb a hely mint a box magassaga
      if (curY < tooltipbox_obj.offsetHeight) // Kevesebb. Valtas ellenorzese
      {
        if (isTopChange) // Le kirak
        {
          dtop = false;
          dbottom = true;
        }
        else // Fel kirak
        {
          dtop = true;
          dbottom = false;
        }
      }
      else // Nem kevesebb. Fel kirak
      {
        dtop = true;
        dbottom = false;
      }
    }
    else if (defaultposition == 'lb' || defaultposition == 'rb')
    {
      // Alul kevesebb a hely mint a box magassaga
    	if (bottomedge < tooltipbox_obj.offsetHeight) // Kevesebb. Valtas ellenorzese
    	{
    	  if (isBottomChange) // Fel kirak
    	  {
          dtop = true;
          dbottom = false;
    	  }
    	  else // Le kirak
    	  {
          dtop = false;
          dbottom = true;
    	  }
    	}
    	else // Nem kevesebb. Le kirak
    	{
        dtop = false;
        dbottom = true;
    	}
    }

    if (dtop && !dbottom && !dleft && dright) // RIGHTTOP
    {
      tooltipbox_obj.style.left = curX + offsetfromcursorX - offsetdivfrompointerX + "px";
  		tooltipbox_obj.style.top = curY - tooltipbox_obj.offsetHeight - offsetfromcursorY + "px";
      pointerrighttop_obj.style.left = curX + offsetfromcursorX + "px";
      pointerrighttop_obj.style.top = curY - offsetfromcursorY - 1 + "px";
      pointerrighttop_status = true;
      pointerrightbottom_status = false;
      pointerlefttop_status = false;
      pointerleftbottom_status = false;
    }
    else if (!dtop && dbottom && !dleft && dright) // RIGHTBOTTOM
    {
		  tooltipbox_obj.style.left = curX + offsetfromcursorX - offsetdivfrompointerX + "px";
			tooltipbox_obj.style.top = curY + offsetfromcursorY + offsetdivfrompointerY + "px";
		  pointerrightbottom_obj.style.left = curX + offsetfromcursorX + "px";
		  pointerrightbottom_obj.style.top = curY + offsetfromcursorY + "px";
		  pointerrighttop_status = false;
		  pointerrightbottom_status = true;
		  pointerlefttop_status = false;
		  pointerleftbottom_status = false;
    }
    else if (dtop && !dbottom && dleft && !dright)
    {
		  tooltipbox_obj.style.left = curX - tooltipbox_obj.offsetWidth + "px";
  		tooltipbox_obj.style.top = curY - tooltipbox_obj.offsetHeight - offsetfromcursorY + "px";
		  pointerlefttop_obj.style.left = curX - pointerrightbottom_obj.offsetWidth - offsetfromcursorX + "px";
		  pointerlefttop_obj.style.top = curY - offsetfromcursorY - 1 + "px";
		  pointerrighttop_status = false;
		  pointerrightbottom_status = false;
		  pointerlefttop_status = true;
		  pointerleftbottom_status = false;
    }
    else if (!dtop && dbottom && dleft && !dright)
    {
		  tooltipbox_obj.style.left = curX - tooltipbox_obj.offsetWidth + "px";
			tooltipbox_obj.style.top = curY + offsetfromcursorY + offsetdivfrompointerY + "px";
		  pointerleftbottom_obj.style.left = curX - pointerrighttop_obj.offsetWidth - offsetfromcursorX + "px";
		  pointerleftbottom_obj.style.top = curY + offsetfromcursorY + "px";
		  pointerrighttop_status = false;
		  pointerrightbottom_status = false;
		  pointerlefttop_status = false;
		  pointerleftbottom_status = true;
    }
    // Tooltip box visibility
    tooltipbox_obj.style.visibility = "visible";
    // Pointer box visibility    
    pointerlefttop_status ? pointerlefttop_obj.style.visibility = "visible" : pointerlefttop_obj.style.visibility = "hidden"
    pointerleftbottom_status ? pointerleftbottom_obj.style.visibility = "visible" : pointerleftbottom_obj.style.visibility = "hidden"
    pointerrighttop_status ? pointerrighttop_obj.style.visibility = "visible" : pointerrighttop_obj.style.visibility = "hidden"
    pointerrightbottom_status ? pointerrightbottom_obj.style.visibility = "visible" : pointerrightbottom_obj.style.visibility = "hidden"
    
  }
}
      
function hideddrivetip()
{
  if (ns6 || ie)
  {
    enabletip = false;
    tooltipbox_obj.style.visibility = "hidden";
    pointerlefttop_obj.style.visibility = "hidden";
    pointerleftbottom_obj.style.visibility = "hidden";
    pointerrighttop_obj.style.visibility = "hidden";
    pointerrightbottom_obj.style.visibility = "hidden";
    // Tooltip box reset
    tooltipbox_obj.style.left = "-1000px";
    tooltipbox_obj.style.backgroundColor = '';
    tooltipbox_obj.style.width = '';
  }
}
document.onmousemove = positiontip;

