﻿//#region Menu Delay Animation

var timer;
var originalHoveredMenuElement;
var newHoveredMenuElement;

var delay = 400;
var animationSpeed = 250;

$(document).ready(function() {

    $(".topnavlinklevel0").hover(
      function() {
          clearTimer();

          newHoveredMenuElement = $(this).next();
          newHoveredMenuElement.addClass("subhover");

          setupMenuChangeTimer();
      },
      function() {
          clearTimer();
          setupMenuHide();
      }
    );
});

$(document).ready(function() {
    $(".subnav").hover(
        function() {
            clearTimer();
        },
        function() {
            clearTimer();
            setupMenuHide();
        }
        );
});

function clearTimer() {

    if (newHoveredMenuElement) {
        newHoveredMenuElement.parent().removeClass("subhover");
    }

    if (originalHoveredMenuElement) {
        originalHoveredMenuElement.removeClass(animationSpeed);
    }

    if (timer) {
        clearTimeout(timer);
        timer = null
    }
}

function setupMenuChangeTimer() {
    timer = setTimeout(function() {
        newHoveredMenuElement.fadeIn(animationSpeed);
        if (originalHoveredMenuElement && newHoveredMenuElement[0] != originalHoveredMenuElement[0]) {
            
            originalHoveredMenuElement.fadeOut(animationSpeed);
        }
        originalHoveredMenuElement = newHoveredMenuElement;
    }, delay)
}

function setupMenuHide() {
    timer = setTimeout(function() {
        if (originalHoveredMenuElement) {
            originalHoveredMenuElement.fadeOut(animationSpeed);
        }
        clearTimer();
    }, delay)
}

//#endregion Menu Delay Animation
