﻿// JScript File

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);
  }
}

function OpenPopup(src, evt)
{
    if (!gPageLoaded)
        return;
        
    var oPopup = document.getElementById("categoriesPopup");        
    oPopup.style.display = "block";
}

function ClosePopup()
{
    var oPopup = document.getElementById("categoriesPopup");        
    oPopup.style.display = "none";
}

function TogglePopup(src, evt)
{
    var oPopup = document.getElementById("categoriesPopup");        

    if (oPopup.style.display != "none")
    {
        ClosePopup();
    }
    else {
        OpenPopup(src, evt);
    }
}
    
function onMouseOverMenu(src, evt)
{
    if (!checkMouseEnter(src, evt)) return;
    onMouseEnterMenu(src, evt);
}
function onMouseOutMenu(src, evt)
{
    if (!checkMouseLeave(src, evt)) return;
    onMouseLeaveMenu(src, evt);        
}
function onMouseOverPopup(src, evt)
{
    if (!checkMouseEnter(src, evt)) return;
    onMouseEnterPopup(src, evt);
}
function onMouseOutPopup(src, evt)
{
    if (!checkMouseLeave(src, evt)) return;
    onMouseLeavePopup(src, evt);        
}

var gEnteredPopup = false;

function onMouseEnterMenu(src, evt)
{       
    OpenPopup(src, evt);
}
function onMouseLeaveMenu(src, evt)
{
    setTimeout(function() 
    {
        if (!gEnteredPopup)
        {
            ClosePopup();
        }
    }, 10);
}    
function onMouseEnterPopup(src, evt)
{
    gEnteredPopup = true;
}
function onMouseLeavePopup(src, evt)
{
    gEnteredPopup = false;

    ClosePopup();
}
