// DEFER DISPLAY OF MEGA MENUS UNTIL DEPENDANCIES ARE LOADED
var megaMenusAvailable = false;
var megaMenuSelected;
var deferMenu = function(el) {
    var preventDefault = function(e) {
        if (!e) e = window.event;
        e.cancelBubble = true;
        e.returnValue = false;
        if (e.preventDefault) {
            e.preventDefault();
        }
    };

    var offSet = function(o) {
        var l = 0;
        var t = 0;
        if (o.offsetParent) {
            do {
                l += o.offsetLeft;
                t += o.offsetTop;
            }
            while (o = o.offsetParent);
            return [l, t];
        }
    };

    el.onclick = function(e) {
        preventDefault(e);
        var clickedElement = this;
        megaMenuSelected = this.className;

        if (megaMenusAvailable) {
            displayMegaMenu(megaMenuSelected + '_menu');
            return;
        }

        var spnr = document.getElementById('menuSpnr');
        if (!spnr) {
            var spnr = document.createElement('img');
            spnr.id = 'menuSpnr';
            spnr.src = '/v4_shared/i/menu_spinner.gif';
            document.body.appendChild(spnr);
        }
        var butPos = offSet(el);
        var spnStl = spnr.style;
        spnStl.position = 'absolute';
        spnStl.zIndex = '999999';
        spnStl.left = butPos[0] + (el.offsetWidth - 28) + 'px';
        spnStl.top = butPos[1] + 10 + 'px';

        var longWait = new Date().getTime() + 6000;
        var isLoaded = setInterval(function() {
            if (!megaMenusAvailable) {
                spnStl.display = 'block';
                if (longWait <= new Date().getTime()) {
                    clearInterval(isLoaded);
                    document.location = clickedElement.href;
                }
                return;
            }
            spnStl.display = 'none';
            displayMegaMenu(megaMenuSelected + '_menu');
            clearInterval(isLoaded);
        },
        10);
    };
};

var loadingMegaMenus = function() {
    var navMenu = document.getElementById('nav');
    if (!navMenu) {
        setTimeout(function() {
            loadingMegaMenus();
        },
        150);
        return;
    }
    var navMenus = navMenu.getElementsByTagName('a');
    deferMenu(navMenus[1]);
    deferMenu(navMenus[2]);
    deferMenu(navMenus[3]);
}
loadingMegaMenus();
