﻿// Simple follow the mouse script
var MousePositionX;
var MousePositionY;

function mouseX(evt)
{
    try
    {
        if (!evt)
            evt = window.event;
        if (evt.pageX)
            return evt.pageX;
        else if (evt.clientX)
            return evt.clientX + 
                (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft);
        else
            return 0;
    }
    catch(e)
    {
        return 0;
    }
}
function mouseY(evt)
{
    try
    {
        if (!evt) evt = window.event;
        if (evt.pageY)
            return evt.pageY;
        else if (evt.clientY)
            return evt.clientY +
                (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
        else
            return 0;
    }
    catch(e)
    {
        return 0;
    }
}
function MouseIsInsideDiv(TheDiv,ExtraSensitivity)
{
    // The ExtraSensitivity param is for passing border widths, etc.
    if(ExtraSensitivity==null)
        ExtraSensitivity=0;

    // Not inside if the cursor's to the left of the div's left
    if(MousePositionX-ExtraSensitivity<=parseInt(TheDiv.style.left))
        return false;
    // Not inside if the cursor's to the top of the div's top
    if(MousePositionY-ExtraSensitivity<=parseInt(TheDiv.style.top))
        return false;
    // Not inside if the cursor's to the right of the div's right
    if(MousePositionX+ExtraSensitivity>=parseInt(TheDiv.style.left)+parseInt(TheDiv.clientWidth))
        return false;
    // Not inside if the cursor's below the bottom of the div
    if(MousePositionY+ExtraSensitivity>=parseInt(TheDiv.style.top)+parseInt(TheDiv.clientHeight))
        return false;
    // Well.. What do you know?
    return true;
}
function TrackMouse(evt)
{
    if (document.getElementById)
    {
        MousePositionX=parseInt(mouseX(evt));
        MousePositionY=parseInt(mouseY(evt));
    }
}
document.onmousemove = TrackMouse;

/*  begin mouseover stuff */
function containsDOM (container, containee) {
  var isParent = false;
  do {
    if ((isParent = container == containee))
      break;
    containee = containee.parentNode;
  }
  while (containee != null);
  return isParent;
}

function checkMouseEnter (element, evt)
{
  if (element.contains && evt.fromElement)
    return !element.contains(evt.fromElement);
  else if (evt.relatedTarget)
    return !containsDOM(element, evt.relatedTarget);
}

function checkMouseLeave (element, evt)
{
  if (element.contains && evt.toElement)
    return !element.contains(evt.toElement);
  else if (evt.relatedTarget)
    return !containsDOM(element, evt.relatedTarget);
}
/* end mouseover stuff */
