P.when(“jQuery”, “ready”).execute(function($) {
"use strict"; var openNavFunc, closeNavFunc, mouseoverTime, mouseleaveTime; var $primaryNavEls = $('.dp-primary-nav-list > .dp-primary-nav-list-item'); var $secondaryNavEls = $('.dp-secondary-nav-list-item'); var $dropDownPanels = $('.dp-dropdown-panel'); var hoverDelayTimer = 200; var navIsActive = false; function getTime() { var d = new Date(); return d.getTime(); } function activateNav(event, el) { clearTimeout(closeNavFunc); mouseoverTime = getTime(); openNavFunc = setTimeout(openSubNav, hoverDelayTimer, event, el); } function deActivateNav(event, el) { mouseleaveTime = getTime(); //ignore accidental mouseover of other elements if(mouseleaveTime - mouseoverTime < hoverDelayTimer) { clearTimeout(openNavFunc); return; } if(navIsActive) { closeNavFunc = setTimeout(closeItAll, hoverDelayTimer, event, el); } } function closeItAll(event, el) { // ie9 does not allow params to be passed in setTimeout if(typeof(event) === "undefined") { return; } $primaryNavEls.removeClass('dp-primary-nav-list-item--isActive dp-primary-nav-list-item--hasCaret'); $(el).find('.dp-dropdown-panel').removeClass('dp-dropdown-panel--isActive'); navIsActive = false; } function openSubNav(event, el) { $secondaryNavEls.removeClass('dp-secondary-nav-list-item--isActive'); // ie9 does not allow params to be passed in setTimeout if(typeof(event) === "undefined") { return; } var $secondaryEl = $(el).find('.dp-secondary-nav-list-item').first(); $(el).siblings('.dp-primary-nav-list-item').removeClass('dp-primary-nav-list-item--isActive dp-primary-nav-list-item--hasCaret'); $(el).addClass('dp-primary-nav-list-item--isActive'); $dropDownPanels.removeClass('dp-dropdown-panel--isActive'); $(el).find('.dp-dropdown-panel').addClass('dp-dropdown-panel--isActive'); $secondaryEl.addClass('dp-secondary-nav-list-item--isActive'); if($(el).children('.dp-dropdown-panel').length > 0) { $(el).addClass('dp-primary-nav-list-item--hasCaret'); } navIsActive = true; } function showTertiaryNav(event, el) { event.stopPropagation(); $secondaryNavEls.removeClass('dp-secondary-nav-list-item--isActive'); $(el).addClass('dp-secondary-nav-list-item--isActive'); } function hideTertiaryNav(event, el) { // if user hovers back over the parent primary el, do nothing if($(event.relatedTarget).has(el) && $(event.relatedTarget).hasClass('dp-primary-nav-list-link')) { return; } else { $secondaryNavEls.removeClass('dp-secondary-nav-list-item--isActive'); } } $primaryNavEls.hover(function(e) { activateNav(e, this); }, function(e) { deActivateNav(e, this); }) $secondaryNavEls.hover(function(e) { showTertiaryNav(e, this); }, function(e) { hideTertiaryNav(e, this); })
});