;(function(n,e,i){"use strict";var t=n("body");n.DLMenu=function(e,i){this.$el=n(i);this._init(e)};n.DLMenu.defaults={animationClasses:{classin:"dl-animate-in-1",classout:"dl-animate-out-1"},onLevelClick:function(n,e){return false},onLinkClick:function(n,e){return false},backLabel:"Back",showCurrentLabel:"Show this page",useActiveItemAsBackLabel:false,useActiveItemAsLink:true};n.DLMenu.prototype={_init:function(t){this.options=n.extend(true,{},n.DLMenu.defaults,t);this._config();var s={"WebkitAnimation":"webkitAnimationEnd","OAnimation":"oAnimationEnd","msAnimation":"MSAnimationEnd","animation":"animationend","MozAnimation":"animationend"},a={"WebkitTransition":"webkitTransitionEnd","MozTransition":"transitionend","OTransition":"oTransitionEnd","msTransition":"MSTransitionEnd","transition":"transitionend"};if(s[e.supportedAnimation]!=i){this.animEndEventName=s[e.supportedAnimation]+".dlmenu"}else{this.animEndEventName=s["animation"]+".dlmenu"}if(a[e.supportedTransition]!=i){this.transEndEventName=a[e.supportedTransition]+".dlmenu"}else{this.transEndEventName=a["transition"]+".dlmenu"}this.supportAnimations=e.supportsAnimations;this.supportTransitions=e.supportsTransitions;this._initEvents()},_config:function(){var e=this;this.open=false;this.$trigger=this.$el.hasClass("primary-navigation")&&n("#perspective-menu-buttons").length>0?n("#perspective-menu-buttons .dl-trigger"):this.$el.find(".dl-trigger:first");this.$menu=this.$el.find("ul.dl-menu:first");this.$menuitems=this.$menu.find("li:not(.dl-back):not(.not-dlmenu)");this.$el.find("ul.dl-submenu").prepend('
  • '+this.options.backLabel+"
  • ");this.$back=this.$menu.find("li.dl-back");if(this.options.useActiveItemAsBackLabel){this.$back.each(function(){var e=n(this),i=e.parents("li:first").find("a:first").text();e.find("a").html(i)})}if(this.options.useActiveItemAsLink){this.$el.find("ul.dl-submenu").prepend(function(){var i=n(this).parents("li:not(.dl-back):first");var t=i.find("a:first");if(i.hasClass("mobile-clickable"))return'
  • '+e.options.showCurrentLabel+"
  • ";else return""})}},_initEvents:function(){var e=this;this.$trigger.on("click.dlmenu",function(){if(e.open){e._closeMenu()}else{e._openMenu();t.off("click").children().on("click.dlmenu",function(){e._closeMenu()})}return false});this.$menuitems.on("click.dlmenu",function(i){i.stopPropagation();var t=n(this),s=t.children("ul.dl-submenu"),a=1;if(!e.$menu.hasClass("dl-menuopen")){e.options.onLinkClick(t,i);return}var o=t.parent();while(o.attr("id")!="primary-menu"){if(o[0].nodeName.toUpperCase()=="UL"){a++}o=o.parent();if(!o.length){break}}if(a>3){a=3}if(s.length>0&&!n(i.currentTarget).hasClass("dl-subviewopen")){var l=s.clone().addClass("level"+(a+1)).css("opacity",0).insertAfter(e.$menu),r=function(){e.$menu.off(e.animEndEventName).removeClass(e.options.animationClasses.classout).addClass("dl-subview");t.addClass("dl-subviewopen").parents(".dl-subviewopen:first").removeClass("dl-subviewopen").addClass("dl-subview");l.remove()};setTimeout(function(){l.addClass(e.options.animationClasses.classin);e.$menu.addClass(e.options.animationClasses.classout);if(e.supportAnimations){e.$menu.on(e.animEndEventName,r)}else{r.call()}e.options.onLevelClick(t,t.children("a:first").text())});return false}else{e.options.onLinkClick(t,i)}});this.$back.on("click.dlmenu",function(i){var t=n(this),s=t.parents("ul.dl-submenu:first"),a=s.parent(),o=1;var l=t.parent();while(l.attr("id")!="primary-menu"){if(l[0].nodeName.toUpperCase()=="UL"){o++}l=l.parent();if(!l.length){break}}if(o>3){o=3}var r=s.clone().addClass("level"+o).insertAfter(e.$menu);var u=function(){e.$menu.off(e.animEndEventName).removeClass(e.options.animationClasses.classin);r.remove()};setTimeout(function(){r.addClass(e.options.animationClasses.classout);e.$menu.addClass(e.options.animationClasses.classin);if(e.supportAnimations){e.$menu.on(e.animEndEventName,u)}else{u.call()}a.removeClass("dl-subviewopen");var n=t.parents(".dl-subview:first");if(n.is("li")){n.addClass("dl-subviewopen")}n.removeClass("dl-subview")});return false})},closeMenu:function(){if(this.open){this._closeMenu()}},_closeMenu:function(){var n=this,e=function(){n.$menu.off(n.transEndEventName);n._resetMenu()};this.$menu.removeClass("dl-menuopen");this.$menu.addClass("dl-menu-toggle");this.$trigger.removeClass("dl-active");if(this.supportTransitions){this.$menu.on(this.transEndEventName,e)}else{e.call()}this.open=false},openMenu:function(){if(!this.open){this._openMenu()}},_openMenu:function(){var e=this;t.off("click").on("click.dlmenu",function(){e._closeMenu()});this.$menu.addClass("dl-menuopen dl-menu-toggle").on(this.transEndEventName,function(){n(this).removeClass("dl-menu-toggle")});this.$trigger.addClass("dl-active");this.open=true},_resetMenu:function(){this.$menu.removeClass("dl-subview");this.$menuitems.removeClass("dl-subview dl-subviewopen")}};var s=function(n){if(e.console){e.console.error(n)}};n.fn.dlmenu=function(e){if(typeof e==="string"){var i=Array.prototype.slice.call(arguments,1);this.each(function(){var t=n.data(this,"dlmenu");if(!t){s("cannot call methods on dlmenu prior to initialization; "+"attempted to call method '"+e+"'");return}if(!n.isFunction(t[e])||e.charAt(0)==="_"){s("no such method '"+e+"' for dlmenu instance");return}t[e].apply(t,i)})}else{this.each(function(){var i=n.data(this,"dlmenu");if(i){i._init()}else{i=n.data(this,"dlmenu",new n.DLMenu(e,this))}})}return this}})(jQuery,window);