﻿var hoverClass = "Menu-Hover";
var topmostClass = "Menu";

function Hover__AspNetMenu(element)
{
////    AddClassUpward__CssFriendlyAdapters(element.firstChild /* gets the inner SPAN or A */, topmostClass, hoverClass);
//    AddClass__CssFriendlyAdapters(element, hoverClass);

    //    AddClassUpward__CssFriendlyAdapters(element.firstChild /* gets the inner SPAN or A */, topmostClass, hoverClass);
    if (element.tagName == "A") {
        element = element.parentNode;

        var ul = element.parentNode; // ul
        if (ul.tagName == 'UL') {
            var toHide;
            for (toHide = 0; toHide < ul.children.length; toHide++) {
                //console.log(toHide + ': ' + ul.children[toHide].tagName);
                if (ul.children[toHide] != element)
                    Unhover__AspNetMenu(ul.children[toHide]);
            }
        }
        clearTimeout(hidetimer);

        //        var found = false;
        //        var help;
        //        var test = 20;
        //        help = element;
        //        while (help != undefined && help.tagName != 'DIV' && !found && test > 0) {
        //            console.log(help.tagName);
        //            if (elemtohide == help)
        //                found = true;
        //            help = help.parentNode;
        //            test = test - 1;
        //        }
        //        if (test == 0) alert("net gut");
        //        console.log("found: " + found);

        //        if(found)
        //            clearTimeout(hidetimer);
    }
    AddClass__CssFriendlyAdapters(element, hoverClass);

}

var elemtohide;
var hidetimer;
function Unhover__AspNetMenu2() {
    RemoveClass__CssFriendlyAdapters(elemtohide, hoverClass);
    clearTimeout(hidetimer);

}

function Unhover__AspNetMenu(element)
{
////    RemoveClassUpward__CssFriendlyAdapters(element.firstChild /* gets the inner SPAN or A */, topmostClass, hoverClass);
    //    RemoveClass__CssFriendlyAdapters(element, hoverClass);
    
    if (element.tagName == "A") {
        elemtohide = element.parentNode;
        hidetimer = setTimeout(Unhover__AspNetMenu2, 50);
    }
    else
    { RemoveClass__CssFriendlyAdapters(element, hoverClass); }
}

function SetHover__AspNetMenu()
{  
    var menus = document.getElementsByTagName("ul");
    for (var i = 0; i < menus.length; i++) {
        if (menus[i].className == topmostClass) {
            var items = menus[i].getElementsByTagName("li");
            for (var k = 0; k < items.length; k++) {
                items[k].onmouseover = function () { Hover__AspNetMenu(this); }
                items[k].onmouseout = function () { Unhover__AspNetMenu(this); }
                //                items[k].onfocus = function () { Hover__AspNetMenu(this); }
                //                items[k].onblur = function () { Unhover__AspNetMenu(this); }
                //                items[k].onfocusin = function () { Hover__AspNetMenu(this); }
                //                items[k].onfocusout = function () { Unhover__AspNetMenu(this); }
            }
        }
    }

    var links = document.getElementsByTagName("a");
    for (var i = 0; i < links.length; i++) {
        if (links[i].className == "Menu-Link") {
            links[i].onblur = function () { Unhover__AspNetMenu(this); }
            links[i].onfocus = function () { Hover__AspNetMenu(this); }
        }
    }
}

window.onload = SetHover__AspNetMenu;

