{"version":3,"file":"Assets/js/skin.build.js","mappings":"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","sources":["webpack://NavyTheme2/./node_modules/smartmenus-bootstrap-4/jquery.smartmenus.bootstrap-4.js","webpack://NavyTheme2/./node_modules/smartmenus-keyboard/jquery.smartmenus.keyboard.js","webpack://NavyTheme2/./node_modules/smartmenus/dist/jquery.smartmenus.js","webpack://NavyTheme2/external var \"jQuery\"","webpack://NavyTheme2/webpack/bootstrap","webpack://NavyTheme2/webpack/runtime/compat get default export","webpack://NavyTheme2/webpack/runtime/define property getters","webpack://NavyTheme2/webpack/runtime/hasOwnProperty shorthand","webpack://NavyTheme2/./Source/js/frontend/search.js","webpack://NavyTheme2/./Source/js/frontend/keyboardNav.js","webpack://NavyTheme2/./Source/js/skin.js"],"sourcesContent":["/*!\n * SmartMenus jQuery Plugin Bootstrap 4 Addon - v0.1.0 - September 17, 2017\n * http://www.smartmenus.org/\n *\n * Copyright Vasil Dinkov, Vadikom Web Ltd.\n * http://vadikom.com\n *\n * Licensed MIT\n */\n\n(function(factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\t// AMD\n\t\tdefine(['jquery', 'smartmenus'], factory);\n\t} else if (typeof module === 'object' && typeof module.exports === 'object') {\n\t\t// CommonJS\n\t\tmodule.exports = factory(require('jquery'));\n\t} else {\n\t\t// Global jQuery\n\t\tfactory(jQuery);\n\t}\n} (function($) {\n\n\t$.extend($.SmartMenus.Bootstrap = {}, {\n\t\tkeydownFix: false,\n\t\tinit: function() {\n\t\t\t// init all navbars that don't have the \"data-sm-skip\" attribute set\n\t\t\tvar $navbars = $('ul.navbar-nav:not([data-sm-skip])');\n\t\t\t$navbars.each(function() {\n\t\t\t\tvar $this = $(this),\n\t\t\t\t\tobj = $this.data('smartmenus');\n\t\t\t\t// if this navbar is not initialized\n\t\t\t\tif (!obj) {\n\t\t\t\t\tvar skipBehavior = $this.is('[data-sm-skip-collapsible-behavior]'),\n\t\t\t\t\t\trightAligned = $this.hasClass('ml-auto') || $this.prevAll('.mr-auto').length > 0;\n\n\t\t\t\t\t$this.smartmenus({\n\t\t\t\t\t\t\t// these are some good default options that should work for all\n\t\t\t\t\t\t\tsubMenusSubOffsetX: 2,\n\t\t\t\t\t\t\tsubMenusSubOffsetY: -9,\n\t\t\t\t\t\t\tsubIndicators: !skipBehavior,\n\t\t\t\t\t\t\tcollapsibleShowFunction: null,\n\t\t\t\t\t\t\tcollapsibleHideFunction: null,\n\t\t\t\t\t\t\trightToLeftSubMenus: rightAligned,\n\t\t\t\t\t\t\tbottomToTopSubMenus: $this.closest('.fixed-bottom').length > 0,\n\t\t\t\t\t\t\t// custom option(s) for the Bootstrap 4 addon\n\t\t\t\t\t\t\tbootstrapHighlightClasses: 'text-dark bg-light'\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.on({\n\t\t\t\t\t\t\t// set/unset proper Bootstrap classes for some menu elements\n\t\t\t\t\t\t\t'show.smapi': function(e, menu) {\n\t\t\t\t\t\t\t\tvar $menu = $(menu),\n\t\t\t\t\t\t\t\t\t$scrollArrows = $menu.dataSM('scroll-arrows');\n\t\t\t\t\t\t\t\tif ($scrollArrows) {\n\t\t\t\t\t\t\t\t\t$scrollArrows.css('background-color', $menu.css('background-color'));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t$menu.parent().addClass('show');\n\t\t\t\t\t\t\t\tif (obj.opts.keepHighlighted && $menu.dataSM('level') > 2) {\n\t\t\t\t\t\t\t\t\t$menu.prevAll('a').addClass(obj.opts.bootstrapHighlightClasses);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t'hide.smapi': function(e, menu) {\n\t\t\t\t\t\t\t\tvar $menu = $(menu);\n\t\t\t\t\t\t\t\t$menu.parent().removeClass('show');\n\t\t\t\t\t\t\t\tif (obj.opts.keepHighlighted && $menu.dataSM('level') > 2) {\n\t\t\t\t\t\t\t\t\t$menu.prevAll('a').removeClass(obj.opts.bootstrapHighlightClasses);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\tobj = $this.data('smartmenus');\n\n\t\t\t\t\tfunction onInit() {\n\t\t\t\t\t\t// set Bootstrap's \"active\" class to SmartMenus \"current\" items (should someone decide to enable markCurrentItem: true)\n\t\t\t\t\t\t$this.find('a.current').each(function() {\n\t\t\t\t\t\t\tvar $this = $(this);\n\t\t\t\t\t\t\t// dropdown items require the class to be set to the A's while for nav items it should be set to the parent LI's\n\t\t\t\t\t\t\t($this.hasClass('dropdown-item') ? $this : $this.parent()).addClass('active');\n\t\t\t\t\t\t});\n\t\t\t\t\t\t// parent items fixes\n\t\t\t\t\t\t$this.find('a.has-submenu').each(function() {\n\t\t\t\t\t\t\tvar $this = $(this);\n\t\t\t\t\t\t\t// remove Bootstrap required attributes that might cause conflicting issues with the SmartMenus script\n\t\t\t\t\t\t\tif ($this.is('[data-toggle=\"dropdown\"]')) {\n\t\t\t\t\t\t\t\t$this.dataSM('bs-data-toggle-dropdown', true).removeAttr('data-toggle');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// remove Bootstrap's carets generating class\n\t\t\t\t\t\t\tif (!skipBehavior && $this.hasClass('dropdown-toggle')) {\n\t\t\t\t\t\t\t\t$this.dataSM('bs-dropdown-toggle', true).removeClass('dropdown-toggle');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tonInit();\n\n\t\t\t\t\tfunction onBeforeDestroy() {\n\t\t\t\t\t\t$this.find('a.current').each(function() {\n\t\t\t\t\t\t\tvar $this = $(this);\n\t\t\t\t\t\t\t($this.hasClass('active') ? $this : $this.parent()).removeClass('active');\n\t\t\t\t\t\t});\n\t\t\t\t\t\t$this.find('a.has-submenu').each(function() {\n\t\t\t\t\t\t\tvar $this = $(this);\n\t\t\t\t\t\t\tif ($this.dataSM('bs-dropdown-toggle')) {\n\t\t\t\t\t\t\t\t$this.addClass('dropdown-toggle').removeDataSM('bs-dropdown-toggle');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ($this.dataSM('bs-data-toggle-dropdown')) {\n\t\t\t\t\t\t\t\t$this.attr('data-toggle', 'dropdown').removeDataSM('bs-data-toggle-dropdown');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\t// custom \"refresh\" method for Bootstrap\n\t\t\t\t\tobj.refresh = function() {\n\t\t\t\t\t\t$.SmartMenus.prototype.refresh.call(this);\n\t\t\t\t\t\tonInit();\n\t\t\t\t\t\t// update collapsible detection\n\t\t\t\t\t\tdetectCollapsible(true);\n\t\t\t\t\t};\n\n\t\t\t\t\t// custom \"destroy\" method for Bootstrap\n\t\t\t\t\tobj.destroy = function(refresh) {\n\t\t\t\t\t\tonBeforeDestroy();\n\t\t\t\t\t\t$.SmartMenus.prototype.destroy.call(this, refresh);\n\t\t\t\t\t};\n\n\t\t\t\t\t// keep Bootstrap's default behavior (i.e. use the whole item area just as a sub menu toggle)\n\t\t\t\t\tif (skipBehavior) {\n\t\t\t\t\t\tobj.opts.collapsibleBehavior = 'toggle';\n\t\t\t\t\t}\n\n\t\t\t\t\t// onresize detect when the navbar becomes collapsible and add it the \"sm-collapsible\" class\n\t\t\t\t\tvar winW;\n\t\t\t\t\tfunction detectCollapsible(force) {\n\t\t\t\t\t\tvar newW = obj.getViewportWidth();\n\t\t\t\t\t\tif (newW != winW || force) {\n\t\t\t\t\t\t\tif (obj.isCollapsible()) {\n\t\t\t\t\t\t\t\t$this.addClass('sm-collapsible');\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$this.removeClass('sm-collapsible');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twinW = newW;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdetectCollapsible();\n\t\t\t\t\t$(window).on('resize.smartmenus' + obj.rootId, detectCollapsible);\n\t\t\t\t}\n\t\t\t});\n\t\t\t// keydown fix for Bootstrap 4 conflict\n\t\t\tif ($navbars.length && !$.SmartMenus.Bootstrap.keydownFix) {\n\t\t\t\t// unhook BS keydown handler for all dropdowns\n\t\t\t\t$(document).off('keydown.bs.dropdown.data-api', '.dropdown-menu');\n\t\t\t\t// restore BS keydown handler for dropdowns that are not inside SmartMenus navbars\n\t\t\t\t// SmartMenus won't add the \"show\" class so it's handy here\n\t\t\t\tif ($.fn.dropdown && $.fn.dropdown.Constructor) {\n\t\t\t\t\t$(document).on('keydown.bs.dropdown.data-api', '.dropdown-menu.show', $.fn.dropdown.Constructor._dataApiKeydownHandler);\n\t\t\t\t}\n\t\t\t\t$.SmartMenus.Bootstrap.keydownFix = true;\n\t\t\t}\n\t\t}\n\t});\n\n\t// init ondomready\n\t$($.SmartMenus.Bootstrap.init);\n\n\treturn $;\n}));\n","/*!\n * SmartMenus jQuery Plugin Keyboard Addon - v0.4.0 - September 17, 2017\n * http://www.smartmenus.org/\n *\n * Copyright Vasil Dinkov, Vadikom Web Ltd.\n * http://vadikom.com\n *\n * Licensed MIT\n */\n\n(function(factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\t// AMD\n\t\tdefine(['jquery', 'smartmenus'], factory);\n\t} else if (typeof module === 'object' && typeof module.exports === 'object') {\n\t\t// CommonJS\n\t\tmodule.exports = factory(require('jquery'));\n\t} else {\n\t\t// Global jQuery\n\t\tfactory(jQuery);\n\t}\n} (function($) {\n\n\tfunction getFirstItemLink($ul) {\n\t\t// make sure we also allow the link to be nested deeper inside the LI's (e.g. in a heading)\n\t\treturn $ul.find('> li > a:not(.disabled), > li > :not(ul) a:not(.disabled)').eq(0);\n\t}\n\tfunction getLastItemLink($ul) {\n\t\treturn $ul.find('> li > a:not(.disabled), > li > :not(ul) a:not(.disabled)').eq(-1);\n\t}\n\tfunction getNextItemLink($li, noLoop) {\n\t\tvar $a = $li.nextAll('li').find('> a:not(.disabled), > :not(ul) a:not(.disabled)').eq(0);\n\t\treturn noLoop || $a.length ? $a : getFirstItemLink($li.parent());\n\t}\n\tfunction getPreviousItemLink($li, noLoop) {\n\t\t// bug workaround: elements are returned in reverse order just in jQuery 1.8.x\n\t\tvar $a = $li.prevAll('li').find('> a:not(.disabled), > :not(ul) a:not(.disabled)').eq(/^1\\.8\\./.test($.fn.jquery) ? 0 : -1);\n\t\treturn noLoop || $a.length ? $a : getLastItemLink($li.parent());\n\t}\n\n\t// jQuery's .focus() is unreliable in some versions, so we're going to call the links' native JS focus method\n\t$.fn.focusSM = function() {\n\t\tif (this.length && this[0].focus) {\n\t\t\tthis[0].focus();\n\t\t}\n\t\treturn this;\n\t};\n\n\t$.extend($.SmartMenus.Keyboard = {}, {\n\t\tdocKeydown: function(e) {\n\t\t\tvar keyCode = e.keyCode;\n\t\t\tif (!/^(37|38|39|40)$/.test(keyCode)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar $root = $(this),\n\t\t\t\tobj = $root.data('smartmenus'),\n\t\t\t\t$target = $(e.target);\n\t\t\t// exit if this is an A inside a mega drop-down\n\t\t\tif (!obj || !$target.is('a') || !obj.handleItemEvents($target)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar $li = $target.closest('li'),\n\t\t\t\t$ul = $li.parent(),\n\t\t\t\tlevel = $ul.dataSM('level');\n\t\t\t// swap left & right keys\n\t\t\tif ($root.hasClass('sm-rtl')) {\n\t\t\t\tif (keyCode == 37) {\n\t\t\t\t\tkeyCode = 39;\n\t\t\t\t} else if (keyCode == 39) {\n\t\t\t\t\tkeyCode = 37;\n\t\t\t\t}\n\t\t\t}\n\t\t\tswitch (keyCode) {\n\t\t\t\tcase 37: // Left\n\t\t\t\t\tif (obj.isCollapsible()) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif (level > 2 || level == 2 && $root.hasClass('sm-vertical')) {\n\t\t\t\t\t\tobj.activatedItems[level - 2].focusSM();\n\t\t\t\t\t// move to previous non-disabled parent item (make sure we cycle so it might be the last item)\n\t\t\t\t\t} else if (!$root.hasClass('sm-vertical')) {\n\t\t\t\t\t\tgetPreviousItemLink((obj.activatedItems[0] || $target).closest('li')).focusSM();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 38: // Up\n\t\t\t\t\tif (obj.isCollapsible()) {\n\t\t\t\t\t\tvar $firstItem;\n\t\t\t\t\t\t// if this is the first item of a sub menu, move to the parent item\n\t\t\t\t\t\tif (level > 1 && ($firstItem = getFirstItemLink($ul)).length && $target[0] == $firstItem[0]) {\n\t\t\t\t\t\t\tobj.activatedItems[level - 2].focusSM();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgetPreviousItemLink($li).focusSM();\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (level == 1 && !$root.hasClass('sm-vertical') && obj.opts.bottomToTopSubMenus) {\n\t\t\t\t\t\t\tif (!obj.activatedItems[0] && $target.dataSM('sub')) {\n\t\t\t\t\t\t\t\tif (obj.opts.showOnClick) {\n\t\t\t\t\t\t\t\t\tobj.clickActivated = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tobj.itemActivate($target);\n\t\t\t\t\t\t\t\tif ($target.dataSM('sub').is(':visible')) {\n\t\t\t\t\t\t\t\t\tobj.focusActivated = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (obj.activatedItems[0] && obj.activatedItems[0].dataSM('sub') && obj.activatedItems[0].dataSM('sub').is(':visible') && !obj.activatedItems[0].dataSM('sub').hasClass('mega-menu')) {\n\t\t\t\t\t\t\t\tgetLastItemLink(obj.activatedItems[0].dataSM('sub')).focusSM();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (level > 1 || $root.hasClass('sm-vertical')) {\n\t\t\t\t\t\t\tgetPreviousItemLink($li).focusSM();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 39: // Right\n\t\t\t\t\tif (obj.isCollapsible()) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif (level == 1 && $root.hasClass('sm-vertical')) {\n\t\t\t\t\t\tif (!obj.activatedItems[0] && $target.dataSM('sub')) {\n\t\t\t\t\t\t\tif (obj.opts.showOnClick) {\n\t\t\t\t\t\t\t\tobj.clickActivated = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tobj.itemActivate($target);\n\t\t\t\t\t\t\tif ($target.dataSM('sub').is(':visible')) {\n\t\t\t\t\t\t\t\tobj.focusActivated = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (obj.activatedItems[0] && obj.activatedItems[0].dataSM('sub') && obj.activatedItems[0].dataSM('sub').is(':visible') && !obj.activatedItems[0].dataSM('sub').hasClass('mega-menu')) {\n\t\t\t\t\t\t\tgetFirstItemLink(obj.activatedItems[0].dataSM('sub')).focusSM();\n\t\t\t\t\t\t}\n\t\t\t\t\t// move to next non-disabled parent item (make sure we cycle so it might be the last item)\n\t\t\t\t\t} else if ((level == 1 || obj.activatedItems[level - 1] && (!obj.activatedItems[level - 1].dataSM('sub') || !obj.activatedItems[level - 1].dataSM('sub').is(':visible') || obj.activatedItems[level - 1].dataSM('sub').hasClass('mega-menu'))) && !$root.hasClass('sm-vertical')) {\n\t\t\t\t\t\tgetNextItemLink((obj.activatedItems[0] || $target).closest('li')).focusSM();\n\t\t\t\t\t} else if (obj.activatedItems[level - 1] && obj.activatedItems[level - 1].dataSM('sub') && obj.activatedItems[level - 1].dataSM('sub').is(':visible') && !obj.activatedItems[level - 1].dataSM('sub').hasClass('mega-menu')) {\n\t\t\t\t\t\tgetFirstItemLink(obj.activatedItems[level - 1].dataSM('sub')).focusSM();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 40: // Down\n\t\t\t\t\tif (obj.isCollapsible()) {\n\t\t\t\t\t\tvar $firstSubItem,\n\t\t\t\t\t\t\t$lastItem;\n\t\t\t\t\t\t// move to sub menu if appropriate\n\t\t\t\t\t\tif (obj.activatedItems[level - 1] && obj.activatedItems[level - 1].dataSM('sub') && obj.activatedItems[level - 1].dataSM('sub').is(':visible') && !obj.activatedItems[level - 1].dataSM('sub').hasClass('mega-menu') && ($firstSubItem = getFirstItemLink(obj.activatedItems[level - 1].dataSM('sub'))).length) {\n\t\t\t\t\t\t\t$firstSubItem.focusSM();\n\t\t\t\t\t\t// if this is the last item of a sub menu, move to the next parent item\n\t\t\t\t\t\t} else if (level > 1 && ($lastItem = getLastItemLink($ul)).length && $target[0] == $lastItem[0]) {\n\t\t\t\t\t\t\tvar $parentItem = obj.activatedItems[level - 2].closest('li'),\n\t\t\t\t\t\t\t\t$nextParentItem = null;\n\t\t\t\t\t\t\twhile ($parentItem.is('li') && !($nextParentItem = getNextItemLink($parentItem, true)).length) {\n\t\t\t\t\t\t\t\t$parentItem = $parentItem.parent().parent();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ($nextParentItem.length) {\n\t\t\t\t\t\t\t\t$nextParentItem.focusSM();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tgetFirstItemLink($root).focusSM();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgetNextItemLink($li).focusSM();\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (level == 1 && !$root.hasClass('sm-vertical') && !obj.opts.bottomToTopSubMenus) {\n\t\t\t\t\t\t\tif (!obj.activatedItems[0] && $target.dataSM('sub')) {\n\t\t\t\t\t\t\t\tif (obj.opts.showOnClick) {\n\t\t\t\t\t\t\t\t\tobj.clickActivated = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tobj.itemActivate($target);\n\t\t\t\t\t\t\t\tif ($target.dataSM('sub').is(':visible')) {\n\t\t\t\t\t\t\t\t\tobj.focusActivated = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (obj.activatedItems[0] && obj.activatedItems[0].dataSM('sub') && obj.activatedItems[0].dataSM('sub').is(':visible') && !obj.activatedItems[0].dataSM('sub').hasClass('mega-menu')) {\n\t\t\t\t\t\t\t\tgetFirstItemLink(obj.activatedItems[0].dataSM('sub')).focusSM();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (level > 1 || $root.hasClass('sm-vertical')) {\n\t\t\t\t\t\t\tgetNextItemLink($li).focusSM();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t}\n\t});\n\n\t// hook it\n\t$(document).on('keydown.smartmenus', 'ul.sm, ul.navbar-nav:not([data-sm-skip])', $.SmartMenus.Keyboard.docKeydown);\n\n\t$.extend($.SmartMenus.prototype, {\n\t\tkeyboardSetHotkey: function(keyCode, modifiers) {\n\t\t\tvar self = this;\n\t\t\t$(document).on('keydown.smartmenus' + this.rootId, function(e) {\n\t\t\t\tif (keyCode == e.keyCode) {\n\t\t\t\t\tvar procede = true;\n\t\t\t\t\tif (modifiers) {\n\t\t\t\t\t\tif (typeof modifiers == 'string') {\n\t\t\t\t\t\t\tmodifiers = [modifiers];\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$.each(['ctrlKey', 'shiftKey', 'altKey', 'metaKey'], function(index, value) {\n\t\t\t\t\t\t\tif ($.inArray(value, modifiers) >= 0 && !e[value] || $.inArray(value, modifiers) < 0 && e[value]) {\n\t\t\t\t\t\t\t\tprocede = false;\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif (procede) {\n\t\t\t\t\t\tgetFirstItemLink(self.$root).focusSM();\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\n\treturn $;\n}));","/*!\n * SmartMenus jQuery Plugin - v1.1.1 - July 23, 2020\n * http://www.smartmenus.org/\n *\n * Copyright Vasil Dinkov, Vadikom Web Ltd.\n * http://vadikom.com\n *\n * Licensed MIT\n */\n\n(function(factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\t// AMD\n\t\tdefine(['jquery'], factory);\n\t} else if (typeof module === 'object' && typeof module.exports === 'object') {\n\t\t// CommonJS\n\t\tmodule.exports = factory(require('jquery'));\n\t} else {\n\t\t// Global jQuery\n\t\tfactory(jQuery);\n\t}\n} (function($) {\n\n\tvar menuTrees = [],\n\t\tmouse = false, // optimize for touch by default - we will detect for mouse input\n\t\ttouchEvents = 'ontouchstart' in window, // we use this just to choose between toucn and pointer events, not for touch screen detection\n\t\tmouseDetectionEnabled = false,\n\t\trequestAnimationFrame = window.requestAnimationFrame || function(callback) { return setTimeout(callback, 1000 / 60); },\n\t\tcancelAnimationFrame = window.cancelAnimationFrame || function(id) { clearTimeout(id); },\n\t\tcanAnimate = !!$.fn.animate;\n\n\t// Handle detection for mouse input (i.e. desktop browsers, tablets with a mouse, etc.)\n\tfunction initMouseDetection(disable) {\n\t\tvar eNS = '.smartmenus_mouse';\n\t\tif (!mouseDetectionEnabled && !disable) {\n\t\t\t// if we get two consecutive mousemoves within 2 pixels from each other and within 300ms, we assume a real mouse/cursor is present\n\t\t\t// in practice, this seems like impossible to trick unintentianally with a real mouse and a pretty safe detection on touch devices (even with older browsers that do not support touch events)\n\t\t\tvar firstTime = true,\n\t\t\t\tlastMove = null,\n\t\t\t\tevents = {\n\t\t\t\t\t'mousemove': function(e) {\n\t\t\t\t\t\tvar thisMove = { x: e.pageX, y: e.pageY, timeStamp: new Date().getTime() };\n\t\t\t\t\t\tif (lastMove) {\n\t\t\t\t\t\t\tvar deltaX = Math.abs(lastMove.x - thisMove.x),\n\t\t\t\t\t\t\t\tdeltaY = Math.abs(lastMove.y - thisMove.y);\n\t\t \t\t\t\t\tif ((deltaX > 0 || deltaY > 0) && deltaX <= 4 && deltaY <= 4 && thisMove.timeStamp - lastMove.timeStamp <= 300) {\n\t\t\t\t\t\t\t\tmouse = true;\n\t\t\t\t\t\t\t\t// if this is the first check after page load, check if we are not over some item by chance and call the mouseenter handler if yes\n\t\t\t\t\t\t\t\tif (firstTime) {\n\t\t\t\t\t\t\t\t\tvar $a = $(e.target).closest('a');\n\t\t\t\t\t\t\t\t\tif ($a.is('a')) {\n\t\t\t\t\t\t\t\t\t\t$.each(menuTrees, function() {\n\t\t\t\t\t\t\t\t\t\t\tif ($.contains(this.$root[0], $a[0])) {\n\t\t\t\t\t\t\t\t\t\t\t\tthis.itemEnter({ currentTarget: $a[0] });\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tfirstTime = false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlastMove = thisMove;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\tevents[touchEvents ? 'touchstart' : 'pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut'] = function(e) {\n\t\t\t\tif (isTouchEvent(e.originalEvent)) {\n\t\t\t\t\tmouse = false;\n\t\t\t\t}\n\t\t\t};\n\t\t\t$(document).on(getEventsNS(events, eNS));\n\t\t\tmouseDetectionEnabled = true;\n\t\t} else if (mouseDetectionEnabled && disable) {\n\t\t\t$(document).off(eNS);\n\t\t\tmouseDetectionEnabled = false;\n\t\t}\n\t}\n\n\tfunction isTouchEvent(e) {\n\t\treturn !/^(4|mouse)$/.test(e.pointerType);\n\t}\n\n\t// returns a jQuery on() ready object\n\tfunction getEventsNS(events, eNS) {\n\t\tif (!eNS) {\n\t\t\teNS = '';\n\t\t}\n\t\tvar eventsNS = {};\n\t\tfor (var i in events) {\n\t\t\teventsNS[i.split(' ').join(eNS + ' ') + eNS] = events[i];\n\t\t}\n\t\treturn eventsNS;\n\t}\n\n\t$.SmartMenus = function(elm, options) {\n\t\tthis.$root = $(elm);\n\t\tthis.opts = options;\n\t\tthis.rootId = ''; // internal\n\t\tthis.accessIdPrefix = '';\n\t\tthis.$subArrow = null;\n\t\tthis.activatedItems = []; // stores last activated A's for each level\n\t\tthis.visibleSubMenus = []; // stores visible sub menus UL's (might be in no particular order)\n\t\tthis.showTimeout = 0;\n\t\tthis.hideTimeout = 0;\n\t\tthis.scrollTimeout = 0;\n\t\tthis.clickActivated = false;\n\t\tthis.focusActivated = false;\n\t\tthis.zIndexInc = 0;\n\t\tthis.idInc = 0;\n\t\tthis.$firstLink = null; // we'll use these for some tests\n\t\tthis.$firstSub = null; // at runtime so we'll cache them\n\t\tthis.disabled = false;\n\t\tthis.$disableOverlay = null;\n\t\tthis.$touchScrollingSub = null;\n\t\tthis.cssTransforms3d = 'perspective' in elm.style || 'webkitPerspective' in elm.style;\n\t\tthis.wasCollapsible = false;\n\t\tthis.init();\n\t};\n\n\t$.extend($.SmartMenus, {\n\t\thideAll: function() {\n\t\t\t$.each(menuTrees, function() {\n\t\t\t\tthis.menuHideAll();\n\t\t\t});\n\t\t},\n\t\tdestroy: function() {\n\t\t\twhile (menuTrees.length) {\n\t\t\t\tmenuTrees[0].destroy();\n\t\t\t}\n\t\t\tinitMouseDetection(true);\n\t\t},\n\t\tprototype: {\n\t\t\tinit: function(refresh) {\n\t\t\t\tvar self = this;\n\n\t\t\t\tif (!refresh) {\n\t\t\t\t\tmenuTrees.push(this);\n\n\t\t\t\t\tthis.rootId = (new Date().getTime() + Math.random() + '').replace(/\\D/g, '');\n\t\t\t\t\tthis.accessIdPrefix = 'sm-' + this.rootId + '-';\n\n\t\t\t\t\tif (this.$root.hasClass('sm-rtl')) {\n\t\t\t\t\t\tthis.opts.rightToLeftSubMenus = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t// init root (main menu)\n\t\t\t\t\tvar eNS = '.smartmenus';\n\t\t\t\t\tthis.$root\n\t\t\t\t\t\t.data('smartmenus', this)\n\t\t\t\t\t\t.attr('data-smartmenus-id', this.rootId)\n\t\t\t\t\t\t.dataSM('level', 1)\n\t\t\t\t\t\t.on(getEventsNS({\n\t\t\t\t\t\t\t'mouseover focusin': $.proxy(this.rootOver, this),\n\t\t\t\t\t\t\t'mouseout focusout': $.proxy(this.rootOut, this),\n\t\t\t\t\t\t\t'keydown': $.proxy(this.rootKeyDown, this)\n\t\t\t\t\t\t}, eNS))\n\t\t\t\t\t\t.on(getEventsNS({\n\t\t\t\t\t\t\t'mouseenter': $.proxy(this.itemEnter, this),\n\t\t\t\t\t\t\t'mouseleave': $.proxy(this.itemLeave, this),\n\t\t\t\t\t\t\t'mousedown': $.proxy(this.itemDown, this),\n\t\t\t\t\t\t\t'focus': $.proxy(this.itemFocus, this),\n\t\t\t\t\t\t\t'blur': $.proxy(this.itemBlur, this),\n\t\t\t\t\t\t\t'click': $.proxy(this.itemClick, this)\n\t\t\t\t\t\t}, eNS), 'a');\n\n\t\t\t\t\t// hide menus on tap or click outside the root UL\n\t\t\t\t\teNS += this.rootId;\n\t\t\t\t\tif (this.opts.hideOnClick) {\n\t\t\t\t\t\t$(document).on(getEventsNS({\n\t\t\t\t\t\t\t'touchstart': $.proxy(this.docTouchStart, this),\n\t\t\t\t\t\t\t'touchmove': $.proxy(this.docTouchMove, this),\n\t\t\t\t\t\t\t'touchend': $.proxy(this.docTouchEnd, this),\n\t\t\t\t\t\t\t// for Opera Mobile < 11.5, webOS browser, etc. we'll check click too\n\t\t\t\t\t\t\t'click': $.proxy(this.docClick, this)\n\t\t\t\t\t\t}, eNS));\n\t\t\t\t\t}\n\t\t\t\t\t// hide sub menus on resize\n\t\t\t\t\t$(window).on(getEventsNS({ 'resize orientationchange': $.proxy(this.winResize, this) }, eNS));\n\n\t\t\t\t\tif (this.opts.subIndicators) {\n\t\t\t\t\t\tthis.$subArrow = $('').addClass('sub-arrow');\n\t\t\t\t\t\tif (this.opts.subIndicatorsText) {\n\t\t\t\t\t\t\tthis.$subArrow.html(this.opts.subIndicatorsText);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// make sure mouse detection is enabled\n\t\t\t\t\tinitMouseDetection();\n\t\t\t\t}\n\n\t\t\t\t// init sub menus\n\t\t\t\tthis.$firstSub = this.$root.find('ul').each(function() { self.menuInit($(this)); }).eq(0);\n\n\t\t\t\tthis.$firstLink = this.$root.find('a').eq(0);\n\n\t\t\t\t// find current item\n\t\t\t\tif (this.opts.markCurrentItem) {\n\t\t\t\t\tvar reDefaultDoc = /(index|default)\\.[^#\\?\\/]*/i,\n\t\t\t\t\t\treHash = /#.*/,\n\t\t\t\t\t\tlocHref = window.location.href.replace(reDefaultDoc, ''),\n\t\t\t\t\t\tlocHrefNoHash = locHref.replace(reHash, '');\n\t\t\t\t\tthis.$root.find('a:not(.mega-menu a)').each(function() {\n\t\t\t\t\t\tvar href = this.href.replace(reDefaultDoc, ''),\n\t\t\t\t\t\t\t$this = $(this);\n\t\t\t\t\t\tif (href == locHref || href == locHrefNoHash) {\n\t\t\t\t\t\t\t$this.addClass('current');\n\t\t\t\t\t\t\tif (self.opts.markCurrentTree) {\n\t\t\t\t\t\t\t\t$this.parentsUntil('[data-smartmenus-id]', 'ul').each(function() {\n\t\t\t\t\t\t\t\t\t$(this).dataSM('parent-a').addClass('current');\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// save initial state\n\t\t\t\tthis.wasCollapsible = this.isCollapsible();\n\t\t\t},\n\t\t\tdestroy: function(refresh) {\n\t\t\t\tif (!refresh) {\n\t\t\t\t\tvar eNS = '.smartmenus';\n\t\t\t\t\tthis.$root\n\t\t\t\t\t\t.removeData('smartmenus')\n\t\t\t\t\t\t.removeAttr('data-smartmenus-id')\n\t\t\t\t\t\t.removeDataSM('level')\n\t\t\t\t\t\t.off(eNS);\n\t\t\t\t\teNS += this.rootId;\n\t\t\t\t\t$(document).off(eNS);\n\t\t\t\t\t$(window).off(eNS);\n\t\t\t\t\tif (this.opts.subIndicators) {\n\t\t\t\t\t\tthis.$subArrow = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.menuHideAll();\n\t\t\t\tvar self = this;\n\t\t\t\tthis.$root.find('ul').each(function() {\n\t\t\t\t\t\tvar $this = $(this);\n\t\t\t\t\t\tif ($this.dataSM('scroll-arrows')) {\n\t\t\t\t\t\t\t$this.dataSM('scroll-arrows').remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ($this.dataSM('shown-before')) {\n\t\t\t\t\t\t\tif (self.opts.subMenusMinWidth || self.opts.subMenusMaxWidth) {\n\t\t\t\t\t\t\t\t$this.css({ width: '', minWidth: '', maxWidth: '' }).removeClass('sm-nowrap');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ($this.dataSM('scroll-arrows')) {\n\t\t\t\t\t\t\t\t$this.dataSM('scroll-arrows').remove();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$this.css({ zIndex: '', top: '', left: '', marginLeft: '', marginTop: '', display: '' });\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (($this.attr('id') || '').indexOf(self.accessIdPrefix) == 0) {\n\t\t\t\t\t\t\t$this.removeAttr('id');\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.removeDataSM('in-mega')\n\t\t\t\t\t.removeDataSM('shown-before')\n\t\t\t\t\t.removeDataSM('scroll-arrows')\n\t\t\t\t\t.removeDataSM('parent-a')\n\t\t\t\t\t.removeDataSM('level')\n\t\t\t\t\t.removeDataSM('beforefirstshowfired')\n\t\t\t\t\t.removeAttr('role')\n\t\t\t\t\t.removeAttr('aria-hidden')\n\t\t\t\t\t.removeAttr('aria-labelledby')\n\t\t\t\t\t.removeAttr('aria-expanded');\n\t\t\t\tthis.$root.find('a.has-submenu').each(function() {\n\t\t\t\t\t\tvar $this = $(this);\n\t\t\t\t\t\tif ($this.attr('id').indexOf(self.accessIdPrefix) == 0) {\n\t\t\t\t\t\t\t$this.removeAttr('id');\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.removeClass('has-submenu')\n\t\t\t\t\t.removeDataSM('sub')\n\t\t\t\t\t.removeAttr('aria-haspopup')\n\t\t\t\t\t.removeAttr('aria-controls')\n\t\t\t\t\t.removeAttr('aria-expanded')\n\t\t\t\t\t.closest('li').removeDataSM('sub');\n\t\t\t\tif (this.opts.subIndicators) {\n\t\t\t\t\tthis.$root.find('span.sub-arrow').remove();\n\t\t\t\t}\n\t\t\t\tif (this.opts.markCurrentItem) {\n\t\t\t\t\tthis.$root.find('a.current').removeClass('current');\n\t\t\t\t}\n\t\t\t\tif (!refresh) {\n\t\t\t\t\tthis.$root = null;\n\t\t\t\t\tthis.$firstLink = null;\n\t\t\t\t\tthis.$firstSub = null;\n\t\t\t\t\tif (this.$disableOverlay) {\n\t\t\t\t\t\tthis.$disableOverlay.remove();\n\t\t\t\t\t\tthis.$disableOverlay = null;\n\t\t\t\t\t}\n\t\t\t\t\tmenuTrees.splice($.inArray(this, menuTrees), 1);\n\t\t\t\t}\n\t\t\t},\n\t\t\tdisable: function(noOverlay) {\n\t\t\t\tif (!this.disabled) {\n\t\t\t\t\tthis.menuHideAll();\n\t\t\t\t\t// display overlay over the menu to prevent interaction\n\t\t\t\t\tif (!noOverlay && !this.opts.isPopup && this.$root.is(':visible')) {\n\t\t\t\t\t\tvar pos = this.$root.offset();\n\t\t\t\t\t\tthis.$disableOverlay = $('
').css({\n\t\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\t\ttop: pos.top,\n\t\t\t\t\t\t\tleft: pos.left,\n\t\t\t\t\t\t\twidth: this.$root.outerWidth(),\n\t\t\t\t\t\t\theight: this.$root.outerHeight(),\n\t\t\t\t\t\t\tzIndex: this.getStartZIndex(true),\n\t\t\t\t\t\t\topacity: 0\n\t\t\t\t\t\t}).appendTo(document.body);\n\t\t\t\t\t}\n\t\t\t\t\tthis.disabled = true;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdocClick: function(e) {\n\t\t\t\tif (this.$touchScrollingSub) {\n\t\t\t\t\tthis.$touchScrollingSub = null;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// hide on any click outside the menu or on a menu link\n\t\t\t\tif (this.visibleSubMenus.length && !$.contains(this.$root[0], e.target) || $(e.target).closest('a').length) {\n\t\t\t\t\tthis.menuHideAll();\n\t\t\t\t}\n\t\t\t},\n\t\t\tdocTouchEnd: function(e) {\n\t\t\t\tif (!this.lastTouch) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (this.visibleSubMenus.length && (this.lastTouch.x2 === undefined || this.lastTouch.x1 == this.lastTouch.x2) && (this.lastTouch.y2 === undefined || this.lastTouch.y1 == this.lastTouch.y2) && (!this.lastTouch.target || !$.contains(this.$root[0], this.lastTouch.target))) {\n\t\t\t\t\tif (this.hideTimeout) {\n\t\t\t\t\t\tclearTimeout(this.hideTimeout);\n\t\t\t\t\t\tthis.hideTimeout = 0;\n\t\t\t\t\t}\n\t\t\t\t\t// hide with a delay to prevent triggering accidental unwanted click on some page element\n\t\t\t\t\tvar self = this;\n\t\t\t\t\tthis.hideTimeout = setTimeout(function() { self.menuHideAll(); }, 350);\n\t\t\t\t}\n\t\t\t\tthis.lastTouch = null;\n\t\t\t},\n\t\t\tdocTouchMove: function(e) {\n\t\t\t\tif (!this.lastTouch) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar touchPoint = e.originalEvent.touches[0];\n\t\t\t\tthis.lastTouch.x2 = touchPoint.pageX;\n\t\t\t\tthis.lastTouch.y2 = touchPoint.pageY;\n\t\t\t},\n\t\t\tdocTouchStart: function(e) {\n\t\t\t\tvar touchPoint = e.originalEvent.touches[0];\n\t\t\t\tthis.lastTouch = { x1: touchPoint.pageX, y1: touchPoint.pageY, target: touchPoint.target };\n\t\t\t},\n\t\t\tenable: function() {\n\t\t\t\tif (this.disabled) {\n\t\t\t\t\tif (this.$disableOverlay) {\n\t\t\t\t\t\tthis.$disableOverlay.remove();\n\t\t\t\t\t\tthis.$disableOverlay = null;\n\t\t\t\t\t}\n\t\t\t\t\tthis.disabled = false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tgetClosestMenu: function(elm) {\n\t\t\t\tvar $closestMenu = $(elm).closest('ul');\n\t\t\t\twhile ($closestMenu.dataSM('in-mega')) {\n\t\t\t\t\t$closestMenu = $closestMenu.parent().closest('ul');\n\t\t\t\t}\n\t\t\t\treturn $closestMenu[0] || null;\n\t\t\t},\n\t\t\tgetHeight: function($elm) {\n\t\t\t\treturn this.getOffset($elm, true);\n\t\t\t},\n\t\t\t// returns precise width/height float values\n\t\t\tgetOffset: function($elm, height) {\n\t\t\t\tvar old;\n\t\t\t\tif ($elm.css('display') == 'none') {\n\t\t\t\t\told = { position: $elm[0].style.position, visibility: $elm[0].style.visibility };\n\t\t\t\t\t$elm.css({ position: 'absolute', visibility: 'hidden' }).show();\n\t\t\t\t}\n\t\t\t\tvar box = $elm[0].getBoundingClientRect && $elm[0].getBoundingClientRect(),\n\t\t\t\t\tval = box && (height ? box.height || box.bottom - box.top : box.width || box.right - box.left);\n\t\t\t\tif (!val && val !== 0) {\n\t\t\t\t\tval = height ? $elm[0].offsetHeight : $elm[0].offsetWidth;\n\t\t\t\t}\n\t\t\t\tif (old) {\n\t\t\t\t\t$elm.hide().css(old);\n\t\t\t\t}\n\t\t\t\treturn val;\n\t\t\t},\n\t\t\tgetStartZIndex: function(root) {\n\t\t\t\tvar zIndex = parseInt(this[root ? '$root' : '$firstSub'].css('z-index'));\n\t\t\t\tif (!root && isNaN(zIndex)) {\n\t\t\t\t\tzIndex = parseInt(this.$root.css('z-index'));\n\t\t\t\t}\n\t\t\t\treturn !isNaN(zIndex) ? zIndex : 1;\n\t\t\t},\n\t\t\tgetTouchPoint: function(e) {\n\t\t\t\treturn e.touches && e.touches[0] || e.changedTouches && e.changedTouches[0] || e;\n\t\t\t},\n\t\t\tgetViewport: function(height) {\n\t\t\t\tvar name = height ? 'Height' : 'Width',\n\t\t\t\t\tval = document.documentElement['client' + name],\n\t\t\t\t\tval2 = window['inner' + name];\n\t\t\t\tif (val2) {\n\t\t\t\t\tval = Math.min(val, val2);\n\t\t\t\t}\n\t\t\t\treturn val;\n\t\t\t},\n\t\t\tgetViewportHeight: function() {\n\t\t\t\treturn this.getViewport(true);\n\t\t\t},\n\t\t\tgetViewportWidth: function() {\n\t\t\t\treturn this.getViewport();\n\t\t\t},\n\t\t\tgetWidth: function($elm) {\n\t\t\t\treturn this.getOffset($elm);\n\t\t\t},\n\t\t\thandleEvents: function() {\n\t\t\t\treturn !this.disabled && this.isCSSOn();\n\t\t\t},\n\t\t\thandleItemEvents: function($a) {\n\t\t\t\treturn this.handleEvents() && !this.isLinkInMegaMenu($a);\n\t\t\t},\n\t\t\tisCollapsible: function() {\n\t\t\t\treturn this.$firstSub.css('position') == 'static';\n\t\t\t},\n\t\t\tisCSSOn: function() {\n\t\t\t\treturn this.$firstLink.css('display') != 'inline';\n\t\t\t},\n\t\t\tisFixed: function() {\n\t\t\t\tvar isFixed = this.$root.css('position') == 'fixed';\n\t\t\t\tif (!isFixed) {\n\t\t\t\t\tthis.$root.parentsUntil('body').each(function() {\n\t\t\t\t\t\tif ($(this).css('position') == 'fixed') {\n\t\t\t\t\t\t\tisFixed = true;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn isFixed;\n\t\t\t},\n\t\t\tisLinkInMegaMenu: function($a) {\n\t\t\t\treturn $(this.getClosestMenu($a[0])).hasClass('mega-menu');\n\t\t\t},\n\t\t\tisTouchMode: function() {\n\t\t\t\treturn !mouse || this.opts.noMouseOver || this.isCollapsible();\n\t\t\t},\n\t\t\titemActivate: function($a, hideDeeperSubs) {\n\t\t\t\tvar $ul = $a.closest('ul'),\n\t\t\t\t\tlevel = $ul.dataSM('level');\n\t\t\t\t// if for some reason the parent item is not activated (e.g. this is an API call to activate the item), activate all parent items first\n\t\t\t\tif (level > 1 && (!this.activatedItems[level - 2] || this.activatedItems[level - 2][0] != $ul.dataSM('parent-a')[0])) {\n\t\t\t\t\tvar self = this;\n\t\t\t\t\t$($ul.parentsUntil('[data-smartmenus-id]', 'ul').get().reverse()).add($ul).each(function() {\n\t\t\t\t\t\tself.itemActivate($(this).dataSM('parent-a'));\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\t// hide any visible deeper level sub menus\n\t\t\t\tif (!this.isCollapsible() || hideDeeperSubs) {\n\t\t\t\t\tthis.menuHideSubMenus(!this.activatedItems[level - 1] || this.activatedItems[level - 1][0] != $a[0] ? level - 1 : level);\n\t\t\t\t}\n\t\t\t\t// save new active item for this level\n\t\t\t\tthis.activatedItems[level - 1] = $a;\n\t\t\t\tif (this.$root.triggerHandler('activate.smapi', $a[0]) === false) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// show the sub menu if this item has one\n\t\t\t\tvar $sub = $a.dataSM('sub');\n\t\t\t\tif ($sub && (this.isTouchMode() || (!this.opts.showOnClick || this.clickActivated))) {\n\t\t\t\t\tthis.menuShow($sub);\n\t\t\t\t}\n\t\t\t},\n\t\t\titemBlur: function(e) {\n\t\t\t\tvar $a = $(e.currentTarget);\n\t\t\t\tif (!this.handleItemEvents($a)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.$root.triggerHandler('blur.smapi', $a[0]);\n\t\t\t},\n\t\t\titemClick: function(e) {\n\t\t\t\tvar $a = $(e.currentTarget);\n\t\t\t\tif (!this.handleItemEvents($a)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (this.$touchScrollingSub && this.$touchScrollingSub[0] == $a.closest('ul')[0]) {\n\t\t\t\t\tthis.$touchScrollingSub = null;\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (this.$root.triggerHandler('click.smapi', $a[0]) === false) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tvar $sub = $a.dataSM('sub'),\n\t\t\t\t\tfirstLevelSub = $sub ? $sub.dataSM('level') == 2 : false;\n\t\t\t\tif ($sub) {\n\t\t\t\t\tvar subArrowClicked = $(e.target).is('.sub-arrow'),\n\t\t\t\t\t\tcollapsible = this.isCollapsible(),\n\t\t\t\t\t\tbehaviorToggle = /toggle$/.test(this.opts.collapsibleBehavior),\n\t\t\t\t\t\tbehaviorLink = /link$/.test(this.opts.collapsibleBehavior),\n\t\t\t\t\t\tbehaviorAccordion = /^accordion/.test(this.opts.collapsibleBehavior);\n\t\t\t\t\t// if the sub is hidden, try to show it\n\t\t\t\t\tif (!$sub.is(':visible')) {\n\t\t\t\t\t\tif (!behaviorLink || !collapsible || subArrowClicked) {\n\t\t\t\t\t\t\tif (!collapsible && this.opts.showOnClick && firstLevelSub) {\n\t\t\t\t\t\t\t\tthis.clickActivated = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// try to activate the item and show the sub\n\t\t\t\t\t\t\tthis.itemActivate($a, behaviorAccordion);\n\t\t\t\t\t\t\t// if \"itemActivate\" showed the sub, prevent the click so that the link is not loaded\n\t\t\t\t\t\t\t// if it couldn't show it, then the sub menus are disabled with an !important declaration (e.g. via mobile styles) so let the link get loaded\n\t\t\t\t\t\t\tif ($sub.is(':visible')) {\n\t\t\t\t\t\t\t\tthis.focusActivated = true;\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t// if the sub is visible and showOnClick: true, hide the sub\n\t\t\t\t\t} else if (!collapsible && this.opts.showOnClick && firstLevelSub) {\n\t\t\t\t\t\tthis.menuHide($sub);\n\t\t\t\t\t\tthis.clickActivated = false;\n\t\t\t\t\t\tthis.focusActivated = false;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t// if the sub is visible and we are in collapsible mode\n\t\t\t\t\t} else if (collapsible && (behaviorToggle || subArrowClicked)) {\n\t\t\t\t\t\tthis.itemActivate($a, behaviorAccordion);\n\t\t\t\t\t\tthis.menuHide($sub);\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!collapsible && this.opts.showOnClick && firstLevelSub || $a.hasClass('disabled') || this.$root.triggerHandler('select.smapi', $a[0]) === false) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\titemDown: function(e) {\n\t\t\t\tvar $a = $(e.currentTarget);\n\t\t\t\tif (!this.handleItemEvents($a)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t$a.dataSM('mousedown', true);\n\t\t\t},\n\t\t\titemEnter: function(e) {\n\t\t\t\tvar $a = $(e.currentTarget);\n\t\t\t\tif (!this.handleItemEvents($a)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (!this.isTouchMode()) {\n\t\t\t\t\tif (this.showTimeout) {\n\t\t\t\t\t\tclearTimeout(this.showTimeout);\n\t\t\t\t\t\tthis.showTimeout = 0;\n\t\t\t\t\t}\n\t\t\t\t\tvar self = this;\n\t\t\t\t\tthis.showTimeout = setTimeout(function() { self.itemActivate($a); }, this.opts.showOnClick && $a.closest('ul').dataSM('level') == 1 ? 1 : this.opts.showTimeout);\n\t\t\t\t}\n\t\t\t\tthis.$root.triggerHandler('mouseenter.smapi', $a[0]);\n\t\t\t},\n\t\t\titemFocus: function(e) {\n\t\t\t\tvar $a = $(e.currentTarget);\n\t\t\t\tif (!this.handleItemEvents($a)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// fix (the mousedown check): in some browsers a tap/click produces consecutive focus + click events so we don't need to activate the item on focus\n\t\t\t\tif (this.focusActivated && (!this.isTouchMode() || !$a.dataSM('mousedown')) && (!this.activatedItems.length || this.activatedItems[this.activatedItems.length - 1][0] != $a[0])) {\n\t\t\t\t\tthis.itemActivate($a, true);\n\t\t\t\t}\n\t\t\t\tthis.$root.triggerHandler('focus.smapi', $a[0]);\n\t\t\t},\n\t\t\titemLeave: function(e) {\n\t\t\t\tvar $a = $(e.currentTarget);\n\t\t\t\tif (!this.handleItemEvents($a)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (!this.isTouchMode()) {\n\t\t\t\t\t$a[0].blur();\n\t\t\t\t\tif (this.showTimeout) {\n\t\t\t\t\t\tclearTimeout(this.showTimeout);\n\t\t\t\t\t\tthis.showTimeout = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$a.removeDataSM('mousedown');\n\t\t\t\tthis.$root.triggerHandler('mouseleave.smapi', $a[0]);\n\t\t\t},\n\t\t\tmenuHide: function($sub) {\n\t\t\t\tif (this.$root.triggerHandler('beforehide.smapi', $sub[0]) === false) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (canAnimate) {\n\t\t\t\t\t$sub.stop(true, true);\n\t\t\t\t}\n\t\t\t\tif ($sub.css('display') != 'none') {\n\t\t\t\t\tvar complete = function() {\n\t\t\t\t\t\t// unset z-index\n\t\t\t\t\t\t$sub.css('z-index', '');\n\t\t\t\t\t};\n\t\t\t\t\t// if sub is collapsible (mobile view)\n\t\t\t\t\tif (this.isCollapsible()) {\n\t\t\t\t\t\tif (canAnimate && this.opts.collapsibleHideFunction) {\n\t\t\t\t\t\t\tthis.opts.collapsibleHideFunction.call(this, $sub, complete);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$sub.hide(this.opts.collapsibleHideDuration, complete);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (canAnimate && this.opts.hideFunction) {\n\t\t\t\t\t\t\tthis.opts.hideFunction.call(this, $sub, complete);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$sub.hide(this.opts.hideDuration, complete);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// deactivate scrolling if it is activated for this sub\n\t\t\t\t\tif ($sub.dataSM('scroll')) {\n\t\t\t\t\t\tthis.menuScrollStop($sub);\n\t\t\t\t\t\t$sub.css({ 'touch-action': '', '-ms-touch-action': '', '-webkit-transform': '', transform: '' })\n\t\t\t\t\t\t\t.off('.smartmenus_scroll').removeDataSM('scroll').dataSM('scroll-arrows').hide();\n\t\t\t\t\t}\n\t\t\t\t\t// unhighlight parent item + accessibility\n\t\t\t\t\t$sub.dataSM('parent-a').removeClass('highlighted').attr('aria-expanded', 'false');\n\t\t\t\t\t$sub.attr({\n\t\t\t\t\t\t'aria-expanded': 'false',\n\t\t\t\t\t\t'aria-hidden': 'true'\n\t\t\t\t\t});\n\t\t\t\t\tvar level = $sub.dataSM('level');\n\t\t\t\t\tthis.activatedItems.splice(level - 1, 1);\n\t\t\t\t\tthis.visibleSubMenus.splice($.inArray($sub, this.visibleSubMenus), 1);\n\t\t\t\t\tthis.$root.triggerHandler('hide.smapi', $sub[0]);\n\t\t\t\t}\n\t\t\t},\n\t\t\tmenuHideAll: function() {\n\t\t\t\tif (this.showTimeout) {\n\t\t\t\t\tclearTimeout(this.showTimeout);\n\t\t\t\t\tthis.showTimeout = 0;\n\t\t\t\t}\n\t\t\t\t// hide all subs\n\t\t\t\t// if it's a popup, this.visibleSubMenus[0] is the root UL\n\t\t\t\tvar level = this.opts.isPopup ? 1 : 0;\n\t\t\t\tfor (var i = this.visibleSubMenus.length - 1; i >= level; i--) {\n\t\t\t\t\tthis.menuHide(this.visibleSubMenus[i]);\n\t\t\t\t}\n\t\t\t\t// hide root if it's popup\n\t\t\t\tif (this.opts.isPopup) {\n\t\t\t\t\tif (canAnimate) {\n\t\t\t\t\t\tthis.$root.stop(true, true);\n\t\t\t\t\t}\n\t\t\t\t\tif (this.$root.is(':visible')) {\n\t\t\t\t\t\tif (canAnimate && this.opts.hideFunction) {\n\t\t\t\t\t\t\tthis.opts.hideFunction.call(this, this.$root);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.$root.hide(this.opts.hideDuration);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.activatedItems = [];\n\t\t\t\tthis.visibleSubMenus = [];\n\t\t\t\tthis.clickActivated = false;\n\t\t\t\tthis.focusActivated = false;\n\t\t\t\t// reset z-index increment\n\t\t\t\tthis.zIndexInc = 0;\n\t\t\t\tthis.$root.triggerHandler('hideAll.smapi');\n\t\t\t},\n\t\t\tmenuHideSubMenus: function(level) {\n\t\t\t\tfor (var i = this.activatedItems.length - 1; i >= level; i--) {\n\t\t\t\t\tvar $sub = this.activatedItems[i].dataSM('sub');\n\t\t\t\t\tif ($sub) {\n\t\t\t\t\t\tthis.menuHide($sub);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tmenuInit: function($ul) {\n\t\t\t\tif (!$ul.dataSM('in-mega')) {\n\t\t\t\t\t// mark UL's in mega drop downs (if any) so we can neglect them\n\t\t\t\t\tif ($ul.hasClass('mega-menu')) {\n\t\t\t\t\t\t$ul.find('ul').dataSM('in-mega', true);\n\t\t\t\t\t}\n\t\t\t\t\t// get level (much faster than, for example, using parentsUntil)\n\t\t\t\t\tvar level = 2,\n\t\t\t\t\t\tpar = $ul[0];\n\t\t\t\t\twhile ((par = par.parentNode.parentNode) != this.$root[0]) {\n\t\t\t\t\t\tlevel++;\n\t\t\t\t\t}\n\t\t\t\t\t// cache stuff for quick access\n\t\t\t\t\tvar $a = $ul.prevAll('a').eq(-1);\n\t\t\t\t\t// if the link is nested (e.g. in a heading)\n\t\t\t\t\tif (!$a.length) {\n\t\t\t\t\t\t$a = $ul.prevAll().find('a').eq(-1);\n\t\t\t\t\t}\n\t\t\t\t\t$a.addClass('has-submenu').dataSM('sub', $ul);\n\t\t\t\t\t$ul.dataSM('parent-a', $a)\n\t\t\t\t\t\t.dataSM('level', level)\n\t\t\t\t\t\t.parent().dataSM('sub', $ul);\n\t\t\t\t\t// accessibility\n\t\t\t\t\tvar aId = $a.attr('id') || this.accessIdPrefix + (++this.idInc),\n\t\t\t\t\t\tulId = $ul.attr('id') || this.accessIdPrefix + (++this.idInc);\n\t\t\t\t\t$a.attr({\n\t\t\t\t\t\tid: aId,\n\t\t\t\t\t\t'aria-haspopup': 'true',\n\t\t\t\t\t\t'aria-controls': ulId,\n\t\t\t\t\t\t'aria-expanded': 'false'\n\t\t\t\t\t});\n\t\t\t\t\t$ul.attr({\n\t\t\t\t\t\tid: ulId,\n\t\t\t\t\t\t'role': 'group',\n\t\t\t\t\t\t'aria-hidden': 'true',\n\t\t\t\t\t\t'aria-labelledby': aId,\n\t\t\t\t\t\t'aria-expanded': 'false'\n\t\t\t\t\t});\n\t\t\t\t\t// add sub indicator to parent item\n\t\t\t\t\tif (this.opts.subIndicators) {\n\t\t\t\t\t\t$a[this.opts.subIndicatorsPos](this.$subArrow.clone());\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tmenuPosition: function($sub) {\n\t\t\t\tvar $a = $sub.dataSM('parent-a'),\n\t\t\t\t\t$li = $a.closest('li'),\n\t\t\t\t\t$ul = $li.parent(),\n\t\t\t\t\tlevel = $sub.dataSM('level'),\n\t\t\t\t\tsubW = this.getWidth($sub),\n\t\t\t\t\tsubH = this.getHeight($sub),\n\t\t\t\t\titemOffset = $a.offset(),\n\t\t\t\t\titemX = itemOffset.left,\n\t\t\t\t\titemY = itemOffset.top,\n\t\t\t\t\titemW = this.getWidth($a),\n\t\t\t\t\titemH = this.getHeight($a),\n\t\t\t\t\t$win = $(window),\n\t\t\t\t\twinX = $win.scrollLeft(),\n\t\t\t\t\twinY = $win.scrollTop(),\n\t\t\t\t\twinW = this.getViewportWidth(),\n\t\t\t\t\twinH = this.getViewportHeight(),\n\t\t\t\t\thorizontalParent = $ul.parent().is('[data-sm-horizontal-sub]') || level == 2 && !$ul.hasClass('sm-vertical'),\n\t\t\t\t\trightToLeft = this.opts.rightToLeftSubMenus && !$li.is('[data-sm-reverse]') || !this.opts.rightToLeftSubMenus && $li.is('[data-sm-reverse]'),\n\t\t\t\t\tsubOffsetX = level == 2 ? this.opts.mainMenuSubOffsetX : this.opts.subMenusSubOffsetX,\n\t\t\t\t\tsubOffsetY = level == 2 ? this.opts.mainMenuSubOffsetY : this.opts.subMenusSubOffsetY,\n\t\t\t\t\tx, y;\n\t\t\t\tif (horizontalParent) {\n\t\t\t\t\tx = rightToLeft ? itemW - subW - subOffsetX : subOffsetX;\n\t\t\t\t\ty = this.opts.bottomToTopSubMenus ? -subH - subOffsetY : itemH + subOffsetY;\n\t\t\t\t} else {\n\t\t\t\t\tx = rightToLeft ? subOffsetX - subW : itemW - subOffsetX;\n\t\t\t\t\ty = this.opts.bottomToTopSubMenus ? itemH - subOffsetY - subH : subOffsetY;\n\t\t\t\t}\n\t\t\t\tif (this.opts.keepInViewport) {\n\t\t\t\t\tvar absX = itemX + x,\n\t\t\t\t\t\tabsY = itemY + y;\n\t\t\t\t\tif (rightToLeft && absX < winX) {\n\t\t\t\t\t\tx = horizontalParent ? winX - absX + x : itemW - subOffsetX;\n\t\t\t\t\t} else if (!rightToLeft && absX + subW > winX + winW) {\n\t\t\t\t\t\tx = horizontalParent ? winX + winW - subW - absX + x : subOffsetX - subW;\n\t\t\t\t\t}\n\t\t\t\t\tif (!horizontalParent) {\n\t\t\t\t\t\tif (subH < winH && absY + subH > winY + winH) {\n\t\t\t\t\t\t\ty += winY + winH - subH - absY;\n\t\t\t\t\t\t} else if (subH >= winH || absY < winY) {\n\t\t\t\t\t\t\ty += winY - absY;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// do we need scrolling?\n\t\t\t\t\t// 0.49 used for better precision when dealing with float values\n\t\t\t\t\tif (horizontalParent && (absY + subH > winY + winH + 0.49 || absY < winY) || !horizontalParent && subH > winH + 0.49) {\n\t\t\t\t\t\tvar self = this;\n\t\t\t\t\t\tif (!$sub.dataSM('scroll-arrows')) {\n\t\t\t\t\t\t\t$sub.dataSM('scroll-arrows', $([$('')[0], $('')[0]])\n\t\t\t\t\t\t\t\t.on({\n\t\t\t\t\t\t\t\t\tmouseenter: function() {\n\t\t\t\t\t\t\t\t\t\t$sub.dataSM('scroll').up = $(this).hasClass('scroll-up');\n\t\t\t\t\t\t\t\t\t\tself.menuScroll($sub);\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tmouseleave: function(e) {\n\t\t\t\t\t\t\t\t\t\tself.menuScrollStop($sub);\n\t\t\t\t\t\t\t\t\t\tself.menuScrollOut($sub, e);\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t'mousewheel DOMMouseScroll': function(e) { e.preventDefault(); }\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t.insertAfter($sub)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// bind scroll events and save scroll data for this sub\n\t\t\t\t\t\tvar eNS = '.smartmenus_scroll';\n\t\t\t\t\t\t$sub.dataSM('scroll', {\n\t\t\t\t\t\t\t\ty: this.cssTransforms3d ? 0 : y - itemH,\n\t\t\t\t\t\t\t\tstep: 1,\n\t\t\t\t\t\t\t\t// cache stuff for faster recalcs later\n\t\t\t\t\t\t\t\titemH: itemH,\n\t\t\t\t\t\t\t\tsubH: subH,\n\t\t\t\t\t\t\t\tarrowDownH: this.getHeight($sub.dataSM('scroll-arrows').eq(1))\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.on(getEventsNS({\n\t\t\t\t\t\t\t\t'mouseover': function(e) { self.menuScrollOver($sub, e); },\n\t\t\t\t\t\t\t\t'mouseout': function(e) { self.menuScrollOut($sub, e); },\n\t\t\t\t\t\t\t\t'mousewheel DOMMouseScroll': function(e) { self.menuScrollMousewheel($sub, e); }\n\t\t\t\t\t\t\t}, eNS))\n\t\t\t\t\t\t\t.dataSM('scroll-arrows').css({ top: 'auto', left: '0', marginLeft: x + (parseInt($sub.css('border-left-width')) || 0), width: subW - (parseInt($sub.css('border-left-width')) || 0) - (parseInt($sub.css('border-right-width')) || 0), zIndex: $sub.css('z-index') })\n\t\t\t\t\t\t\t\t.eq(horizontalParent && this.opts.bottomToTopSubMenus ? 0 : 1).show();\n\t\t\t\t\t\t// when a menu tree is fixed positioned we allow scrolling via touch too\n\t\t\t\t\t\t// since there is no other way to access such long sub menus if no mouse is present\n\t\t\t\t\t\tif (this.isFixed()) {\n\t\t\t\t\t\t\tvar events = {};\n\t\t\t\t\t\t\tevents[touchEvents ? 'touchstart touchmove touchend' : 'pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp'] = function(e) {\n\t\t\t\t\t\t\t\tself.menuScrollTouch($sub, e);\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t$sub.css({ 'touch-action': 'none', '-ms-touch-action': 'none' }).on(getEventsNS(events, eNS));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$sub.css({ top: 'auto', left: '0', marginLeft: x, marginTop: y - itemH });\n\t\t\t},\n\t\t\tmenuScroll: function($sub, once, step) {\n\t\t\t\tvar data = $sub.dataSM('scroll'),\n\t\t\t\t\t$arrows = $sub.dataSM('scroll-arrows'),\n\t\t\t\t\tend = data.up ? data.upEnd : data.downEnd,\n\t\t\t\t\tdiff;\n\t\t\t\tif (!once && data.momentum) {\n\t\t\t\t\tdata.momentum *= 0.92;\n\t\t\t\t\tdiff = data.momentum;\n\t\t\t\t\tif (diff < 0.5) {\n\t\t\t\t\t\tthis.menuScrollStop($sub);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tdiff = step || (once || !this.opts.scrollAccelerate ? this.opts.scrollStep : Math.floor(data.step));\n\t\t\t\t}\n\t\t\t\t// hide any visible deeper level sub menus\n\t\t\t\tvar level = $sub.dataSM('level');\n\t\t\t\tif (this.activatedItems[level - 1] && this.activatedItems[level - 1].dataSM('sub') && this.activatedItems[level - 1].dataSM('sub').is(':visible')) {\n\t\t\t\t\tthis.menuHideSubMenus(level - 1);\n\t\t\t\t}\n\t\t\t\tdata.y = data.up && end <= data.y || !data.up && end >= data.y ? data.y : (Math.abs(end - data.y) > diff ? data.y + (data.up ? diff : -diff) : end);\n\t\t\t\t$sub.css(this.cssTransforms3d ? { '-webkit-transform': 'translate3d(0, ' + data.y + 'px, 0)', transform: 'translate3d(0, ' + data.y + 'px, 0)' } : { marginTop: data.y });\n\t\t\t\t// show opposite arrow if appropriate\n\t\t\t\tif (mouse && (data.up && data.y > data.downEnd || !data.up && data.y < data.upEnd)) {\n\t\t\t\t\t$arrows.eq(data.up ? 1 : 0).show();\n\t\t\t\t}\n\t\t\t\t// if we've reached the end\n\t\t\t\tif (data.y == end) {\n\t\t\t\t\tif (mouse) {\n\t\t\t\t\t\t$arrows.eq(data.up ? 0 : 1).hide();\n\t\t\t\t\t}\n\t\t\t\t\tthis.menuScrollStop($sub);\n\t\t\t\t} else if (!once) {\n\t\t\t\t\tif (this.opts.scrollAccelerate && data.step < this.opts.scrollStep) {\n\t\t\t\t\t\tdata.step += 0.2;\n\t\t\t\t\t}\n\t\t\t\t\tvar self = this;\n\t\t\t\t\tthis.scrollTimeout = requestAnimationFrame(function() { self.menuScroll($sub); });\n\t\t\t\t}\n\t\t\t},\n\t\t\tmenuScrollMousewheel: function($sub, e) {\n\t\t\t\tif (this.getClosestMenu(e.target) == $sub[0]) {\n\t\t\t\t\te = e.originalEvent;\n\t\t\t\t\tvar up = (e.wheelDelta || -e.detail) > 0;\n\t\t\t\t\tif ($sub.dataSM('scroll-arrows').eq(up ? 0 : 1).is(':visible')) {\n\t\t\t\t\t\t$sub.dataSM('scroll').up = up;\n\t\t\t\t\t\tthis.menuScroll($sub, true);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t},\n\t\t\tmenuScrollOut: function($sub, e) {\n\t\t\t\tif (mouse) {\n\t\t\t\t\tif (!/^scroll-(up|down)/.test((e.relatedTarget || '').className) && ($sub[0] != e.relatedTarget && !$.contains($sub[0], e.relatedTarget) || this.getClosestMenu(e.relatedTarget) != $sub[0])) {\n\t\t\t\t\t\t$sub.dataSM('scroll-arrows').css('visibility', 'hidden');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tmenuScrollOver: function($sub, e) {\n\t\t\t\tif (mouse) {\n\t\t\t\t\tif (!/^scroll-(up|down)/.test(e.target.className) && this.getClosestMenu(e.target) == $sub[0]) {\n\t\t\t\t\t\tthis.menuScrollRefreshData($sub);\n\t\t\t\t\t\tvar data = $sub.dataSM('scroll'),\n\t\t\t\t\t\t\tupEnd = $(window).scrollTop() - $sub.dataSM('parent-a').offset().top - data.itemH;\n\t\t\t\t\t\t$sub.dataSM('scroll-arrows').eq(0).css('margin-top', upEnd).end()\n\t\t\t\t\t\t\t.eq(1).css('margin-top', upEnd + this.getViewportHeight() - data.arrowDownH).end()\n\t\t\t\t\t\t\t.css('visibility', 'visible');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tmenuScrollRefreshData: function($sub) {\n\t\t\t\tvar data = $sub.dataSM('scroll'),\n\t\t\t\t\tupEnd = $(window).scrollTop() - $sub.dataSM('parent-a').offset().top - data.itemH;\n\t\t\t\tif (this.cssTransforms3d) {\n\t\t\t\t\tupEnd = -(parseFloat($sub.css('margin-top')) - upEnd);\n\t\t\t\t}\n\t\t\t\t$.extend(data, {\n\t\t\t\t\tupEnd: upEnd,\n\t\t\t\t\tdownEnd: upEnd + this.getViewportHeight() - data.subH\n\t\t\t\t});\n\t\t\t},\n\t\t\tmenuScrollStop: function($sub) {\n\t\t\t\tif (this.scrollTimeout) {\n\t\t\t\t\tcancelAnimationFrame(this.scrollTimeout);\n\t\t\t\t\tthis.scrollTimeout = 0;\n\t\t\t\t\t$sub.dataSM('scroll').step = 1;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t},\n\t\t\tmenuScrollTouch: function($sub, e) {\n\t\t\t\te = e.originalEvent;\n\t\t\t\tif (isTouchEvent(e)) {\n\t\t\t\t\tvar touchPoint = this.getTouchPoint(e);\n\t\t\t\t\t// neglect event if we touched a visible deeper level sub menu\n\t\t\t\t\tif (this.getClosestMenu(touchPoint.target) == $sub[0]) {\n\t\t\t\t\t\tvar data = $sub.dataSM('scroll');\n\t\t\t\t\t\tif (/(start|down)$/i.test(e.type)) {\n\t\t\t\t\t\t\tif (this.menuScrollStop($sub)) {\n\t\t\t\t\t\t\t\t// if we were scrolling, just stop and don't activate any link on the first touch\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\tthis.$touchScrollingSub = $sub;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.$touchScrollingSub = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// update scroll data since the user might have zoomed, etc.\n\t\t\t\t\t\t\tthis.menuScrollRefreshData($sub);\n\t\t\t\t\t\t\t// extend it with the touch properties\n\t\t\t\t\t\t\t$.extend(data, {\n\t\t\t\t\t\t\t\ttouchStartY: touchPoint.pageY,\n\t\t\t\t\t\t\t\ttouchStartTime: e.timeStamp\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else if (/move$/i.test(e.type)) {\n\t\t\t\t\t\t\tvar prevY = data.touchY !== undefined ? data.touchY : data.touchStartY;\n\t\t\t\t\t\t\tif (prevY !== undefined && prevY != touchPoint.pageY) {\n\t\t\t\t\t\t\t\tthis.$touchScrollingSub = $sub;\n\t\t\t\t\t\t\t\tvar up = prevY < touchPoint.pageY;\n\t\t\t\t\t\t\t\t// changed direction? reset...\n\t\t\t\t\t\t\t\tif (data.up !== undefined && data.up != up) {\n\t\t\t\t\t\t\t\t\t$.extend(data, {\n\t\t\t\t\t\t\t\t\t\ttouchStartY: touchPoint.pageY,\n\t\t\t\t\t\t\t\t\t\ttouchStartTime: e.timeStamp\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t$.extend(data, {\n\t\t\t\t\t\t\t\t\tup: up,\n\t\t\t\t\t\t\t\t\ttouchY: touchPoint.pageY\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tthis.menuScroll($sub, true, Math.abs(touchPoint.pageY - prevY));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t} else { // touchend/pointerup\n\t\t\t\t\t\t\tif (data.touchY !== undefined) {\n\t\t\t\t\t\t\t\tif (data.momentum = Math.pow(Math.abs(touchPoint.pageY - data.touchStartY) / (e.timeStamp - data.touchStartTime), 2) * 15) {\n\t\t\t\t\t\t\t\t\tthis.menuScrollStop($sub);\n\t\t\t\t\t\t\t\t\tthis.menuScroll($sub);\n\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdelete data.touchY;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tmenuShow: function($sub) {\n\t\t\t\tif (!$sub.dataSM('beforefirstshowfired')) {\n\t\t\t\t\t$sub.dataSM('beforefirstshowfired', true);\n\t\t\t\t\tif (this.$root.triggerHandler('beforefirstshow.smapi', $sub[0]) === false) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (this.$root.triggerHandler('beforeshow.smapi', $sub[0]) === false) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t$sub.dataSM('shown-before', true);\n\t\t\t\tif (canAnimate) {\n\t\t\t\t\t$sub.stop(true, true);\n\t\t\t\t}\n\t\t\t\tif (!$sub.is(':visible')) {\n\t\t\t\t\t// highlight parent item\n\t\t\t\t\tvar $a = $sub.dataSM('parent-a'),\n\t\t\t\t\t\tcollapsible = this.isCollapsible();\n\t\t\t\t\tif (this.opts.keepHighlighted || collapsible) {\n\t\t\t\t\t\t$a.addClass('highlighted');\n\t\t\t\t\t}\n\t\t\t\t\tif (collapsible) {\n\t\t\t\t\t\t$sub.removeClass('sm-nowrap').css({ zIndex: '', width: 'auto', minWidth: '', maxWidth: '', top: '', left: '', marginLeft: '', marginTop: '' });\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// set z-index\n\t\t\t\t\t\t$sub.css('z-index', this.zIndexInc = (this.zIndexInc || this.getStartZIndex()) + 1);\n\t\t\t\t\t\t// min/max-width fix - no way to rely purely on CSS as all UL's are nested\n\t\t\t\t\t\tif (this.opts.subMenusMinWidth || this.opts.subMenusMaxWidth) {\n\t\t\t\t\t\t\t$sub.css({ width: 'auto', minWidth: '', maxWidth: '' }).addClass('sm-nowrap');\n\t\t\t\t\t\t\tif (this.opts.subMenusMinWidth) {\n\t\t\t\t\t\t\t \t$sub.css('min-width', this.opts.subMenusMinWidth);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (this.opts.subMenusMaxWidth) {\n\t\t\t\t\t\t\t \tvar noMaxWidth = this.getWidth($sub);\n\t\t\t\t\t\t\t \t$sub.css('max-width', this.opts.subMenusMaxWidth);\n\t\t\t\t\t\t\t\tif (noMaxWidth > this.getWidth($sub)) {\n\t\t\t\t\t\t\t\t\t$sub.removeClass('sm-nowrap').css('width', this.opts.subMenusMaxWidth);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.menuPosition($sub);\n\t\t\t\t\t}\n\t\t\t\t\tvar complete = function() {\n\t\t\t\t\t\t// fix: \"overflow: hidden;\" is not reset on animation complete in jQuery < 1.9.0 in Chrome when global \"box-sizing: border-box;\" is used\n\t\t\t\t\t\t$sub.css('overflow', '');\n\t\t\t\t\t};\n\t\t\t\t\t// if sub is collapsible (mobile view)\n\t\t\t\t\tif (collapsible) {\n\t\t\t\t\t\tif (canAnimate && this.opts.collapsibleShowFunction) {\n\t\t\t\t\t\t\tthis.opts.collapsibleShowFunction.call(this, $sub, complete);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$sub.show(this.opts.collapsibleShowDuration, complete);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (canAnimate && this.opts.showFunction) {\n\t\t\t\t\t\t\tthis.opts.showFunction.call(this, $sub, complete);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$sub.show(this.opts.showDuration, complete);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// accessibility\n\t\t\t\t\t$a.attr('aria-expanded', 'true');\n\t\t\t\t\t$sub.attr({\n\t\t\t\t\t\t'aria-expanded': 'true',\n\t\t\t\t\t\t'aria-hidden': 'false'\n\t\t\t\t\t});\n\t\t\t\t\t// store sub menu in visible array\n\t\t\t\t\tthis.visibleSubMenus.push($sub);\n\t\t\t\t\tthis.$root.triggerHandler('show.smapi', $sub[0]);\n\t\t\t\t}\n\t\t\t},\n\t\t\tpopupHide: function(noHideTimeout) {\n\t\t\t\tif (this.hideTimeout) {\n\t\t\t\t\tclearTimeout(this.hideTimeout);\n\t\t\t\t\tthis.hideTimeout = 0;\n\t\t\t\t}\n\t\t\t\tvar self = this;\n\t\t\t\tthis.hideTimeout = setTimeout(function() {\n\t\t\t\t\tself.menuHideAll();\n\t\t\t\t}, noHideTimeout ? 1 : this.opts.hideTimeout);\n\t\t\t},\n\t\t\tpopupShow: function(left, top) {\n\t\t\t\tif (!this.opts.isPopup) {\n\t\t\t\t\talert('SmartMenus jQuery Error:\\n\\nIf you want to show this menu via the \"popupShow\" method, set the isPopup:true option.');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (this.hideTimeout) {\n\t\t\t\t\tclearTimeout(this.hideTimeout);\n\t\t\t\t\tthis.hideTimeout = 0;\n\t\t\t\t}\n\t\t\t\tthis.$root.dataSM('shown-before', true);\n\t\t\t\tif (canAnimate) {\n\t\t\t\t\tthis.$root.stop(true, true);\n\t\t\t\t}\n\t\t\t\tif (!this.$root.is(':visible')) {\n\t\t\t\t\tthis.$root.css({ left: left, top: top });\n\t\t\t\t\t// show menu\n\t\t\t\t\tvar self = this,\n\t\t\t\t\t\tcomplete = function() {\n\t\t\t\t\t\t\tself.$root.css('overflow', '');\n\t\t\t\t\t\t};\n\t\t\t\t\tif (canAnimate && this.opts.showFunction) {\n\t\t\t\t\t\tthis.opts.showFunction.call(this, this.$root, complete);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.$root.show(this.opts.showDuration, complete);\n\t\t\t\t\t}\n\t\t\t\t\tthis.visibleSubMenus[0] = this.$root;\n\t\t\t\t}\n\t\t\t},\n\t\t\trefresh: function() {\n\t\t\t\tthis.destroy(true);\n\t\t\t\tthis.init(true);\n\t\t\t},\n\t\t\trootKeyDown: function(e) {\n\t\t\t\tif (!this.handleEvents()) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswitch (e.keyCode) {\n\t\t\t\t\tcase 27: // reset on Esc\n\t\t\t\t\t\tvar $activeTopItem = this.activatedItems[0];\n\t\t\t\t\t\tif ($activeTopItem) {\n\t\t\t\t\t\t\tthis.menuHideAll();\n\t\t\t\t\t\t\t$activeTopItem[0].focus();\n\t\t\t\t\t\t\tvar $sub = $activeTopItem.dataSM('sub');\n\t\t\t\t\t\t\tif ($sub) {\n\t\t\t\t\t\t\t\tthis.menuHide($sub);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 32: // activate item's sub on Space\n\t\t\t\t\t\tvar $target = $(e.target);\n\t\t\t\t\t\tif ($target.is('a') && this.handleItemEvents($target)) {\n\t\t\t\t\t\t\tvar $sub = $target.dataSM('sub');\n\t\t\t\t\t\t\tif ($sub && !$sub.is(':visible')) {\n\t\t\t\t\t\t\t\tthis.itemClick({ currentTarget: e.target });\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t},\n\t\t\trootOut: function(e) {\n\t\t\t\tif (!this.handleEvents() || this.isTouchMode() || e.target == this.$root[0]) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (this.hideTimeout) {\n\t\t\t\t\tclearTimeout(this.hideTimeout);\n\t\t\t\t\tthis.hideTimeout = 0;\n\t\t\t\t}\n\t\t\t\tif (!this.opts.showOnClick || !this.opts.hideOnClick) {\n\t\t\t\t\tvar self = this;\n\t\t\t\t\tthis.hideTimeout = setTimeout(function() { self.menuHideAll(); }, this.opts.hideTimeout);\n\t\t\t\t}\n\t\t\t},\n\t\t\trootOver: function(e) {\n\t\t\t\tif (!this.handleEvents() || this.isTouchMode() || e.target == this.$root[0]) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (this.hideTimeout) {\n\t\t\t\t\tclearTimeout(this.hideTimeout);\n\t\t\t\t\tthis.hideTimeout = 0;\n\t\t\t\t}\n\t\t\t},\n\t\t\twinResize: function(e) {\n\t\t\t\tif (!this.handleEvents()) {\n\t\t\t\t\t// we still need to resize the disable overlay if it's visible\n\t\t\t\t\tif (this.$disableOverlay) {\n\t\t\t\t\t\tvar pos = this.$root.offset();\n\t \t\t\t\t\tthis.$disableOverlay.css({\n\t\t\t\t\t\t\ttop: pos.top,\n\t\t\t\t\t\t\tleft: pos.left,\n\t\t\t\t\t\t\twidth: this.$root.outerWidth(),\n\t\t\t\t\t\t\theight: this.$root.outerHeight()\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// hide sub menus on resize - on mobile do it only on orientation change\n\t\t\t\tif (!('onorientationchange' in window) || e.type == 'orientationchange') {\n\t\t\t\t\tvar collapsible = this.isCollapsible();\n\t\t\t\t\t// if it was collapsible before resize and still is, don't do it\n\t\t\t\t\tif (!(this.wasCollapsible && collapsible)) { \n\t\t\t\t\t\tif (this.activatedItems.length) {\n\t\t\t\t\t\t\tthis.activatedItems[this.activatedItems.length - 1][0].blur();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.menuHideAll();\n\t\t\t\t\t}\n\t\t\t\t\tthis.wasCollapsible = collapsible;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\t$.fn.dataSM = function(key, val) {\n\t\tif (val) {\n\t\t\treturn this.data(key + '_smartmenus', val);\n\t\t}\n\t\treturn this.data(key + '_smartmenus');\n\t};\n\n\t$.fn.removeDataSM = function(key) {\n\t\treturn this.removeData(key + '_smartmenus');\n\t};\n\n\t$.fn.smartmenus = function(options) {\n\t\tif (typeof options == 'string') {\n\t\t\tvar args = arguments,\n\t\t\t\tmethod = options;\n\t\t\tArray.prototype.shift.call(args);\n\t\t\treturn this.each(function() {\n\t\t\t\tvar smartmenus = $(this).data('smartmenus');\n\t\t\t\tif (smartmenus && smartmenus[method]) {\n\t\t\t\t\tsmartmenus[method].apply(smartmenus, args);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn this.each(function() {\n\t\t\t// [data-sm-options] attribute on the root UL\n\t\t\tvar dataOpts = $(this).data('sm-options') || null;\n\t\t\tif (dataOpts && typeof dataOpts !== 'object') {\n\t\t\t\ttry {\n\t\t\t\t\tdataOpts = eval('(' + dataOpts + ')');\n\t\t\t\t} catch(e) {\n\t\t\t\t\tdataOpts = null;\n\t\t\t\t\talert('ERROR\\n\\nSmartMenus jQuery init:\\nInvalid \"data-sm-options\" attribute value syntax.');\n\t\t\t\t};\n\t\t\t}\n\t\t\tnew $.SmartMenus(this, $.extend({}, $.fn.smartmenus.defaults, options, dataOpts));\n\t\t});\n\t};\n\n\t// default settings\n\t$.fn.smartmenus.defaults = {\n\t\tisPopup:\t\tfalse,\t\t// is this a popup menu (can be shown via the popupShow/popupHide methods) or a permanent menu bar\n\t\tmainMenuSubOffsetX:\t0,\t\t// pixels offset from default position\n\t\tmainMenuSubOffsetY:\t0,\t\t// pixels offset from default position\n\t\tsubMenusSubOffsetX:\t0,\t\t// pixels offset from default position\n\t\tsubMenusSubOffsetY:\t0,\t\t// pixels offset from default position\n\t\tsubMenusMinWidth:\t'10em',\t\t// min-width for the sub menus (any CSS unit) - if set, the fixed width set in CSS will be ignored\n\t\tsubMenusMaxWidth:\t'20em',\t\t// max-width for the sub menus (any CSS unit) - if set, the fixed width set in CSS will be ignored\n\t\tsubIndicators: \t\ttrue,\t\t// create sub menu indicators - creates a SPAN and inserts it in the A\n\t\tsubIndicatorsPos: \t'append',\t// position of the SPAN relative to the menu item content ('append', 'prepend')\n\t\tsubIndicatorsText:\t'',\t\t// [optionally] add text in the SPAN (e.g. '+') (you may want to check the CSS for the sub indicators too)\n\t\tscrollStep: \t\t30,\t\t// pixels step when scrolling long sub menus that do not fit in the viewport height\n\t\tscrollAccelerate:\ttrue,\t\t// accelerate scrolling or use a fixed step\n\t\tshowTimeout:\t\t250,\t\t// timeout before showing the sub menus\n\t\thideTimeout:\t\t500,\t\t// timeout before hiding the sub menus\n\t\tshowDuration:\t\t0,\t\t// duration for show animation - set to 0 for no animation - matters only if showFunction:null\n\t\tshowFunction:\t\tnull,\t\t// custom function to use when showing a sub menu (the default is the jQuery 'show')\n\t\t\t\t\t\t\t// don't forget to call complete() at the end of whatever you do\n\t\t\t\t\t\t\t// e.g.: function($ul, complete) { $ul.fadeIn(250, complete); }\n\t\thideDuration:\t\t0,\t\t// duration for hide animation - set to 0 for no animation - matters only if hideFunction:null\n\t\thideFunction:\t\tfunction($ul, complete) { $ul.fadeOut(200, complete); },\t// custom function to use when hiding a sub menu (the default is the jQuery 'hide')\n\t\t\t\t\t\t\t// don't forget to call complete() at the end of whatever you do\n\t\t\t\t\t\t\t// e.g.: function($ul, complete) { $ul.fadeOut(250, complete); }\n\t\tcollapsibleShowDuration:0,\t\t// duration for show animation for collapsible sub menus - matters only if collapsibleShowFunction:null\n\t\tcollapsibleShowFunction:function($ul, complete) { $ul.slideDown(200, complete); },\t// custom function to use when showing a collapsible sub menu\n\t\t\t\t\t\t\t// (i.e. when mobile styles are used to make the sub menus collapsible)\n\t\tcollapsibleHideDuration:0,\t\t// duration for hide animation for collapsible sub menus - matters only if collapsibleHideFunction:null\n\t\tcollapsibleHideFunction:function($ul, complete) { $ul.slideUp(200, complete); },\t// custom function to use when hiding a collapsible sub menu\n\t\t\t\t\t\t\t// (i.e. when mobile styles are used to make the sub menus collapsible)\n\t\tshowOnClick:\t\tfalse,\t\t// show the first-level sub menus onclick instead of onmouseover (i.e. mimic desktop app menus) (matters only for mouse input)\n\t\thideOnClick:\t\ttrue,\t\t// hide the sub menus on click/tap anywhere on the page\n\t\tnoMouseOver:\t\tfalse,\t\t// disable sub menus activation onmouseover (i.e. behave like in touch mode - use just mouse clicks) (matters only for mouse input)\n\t\tkeepInViewport:\t\ttrue,\t\t// reposition the sub menus if needed to make sure they always appear inside the viewport\n\t\tkeepHighlighted:\ttrue,\t\t// keep all ancestor items of the current sub menu highlighted (adds the 'highlighted' class to the A's)\n\t\tmarkCurrentItem:\tfalse,\t\t// automatically add the 'current' class to the A element of the item linking to the current URL\n\t\tmarkCurrentTree:\ttrue,\t\t// add the 'current' class also to the A elements of all ancestor items of the current item\n\t\trightToLeftSubMenus:\tfalse,\t\t// right to left display of the sub menus (check the CSS for the sub indicators' position)\n\t\tbottomToTopSubMenus:\tfalse,\t\t// bottom to top display of the sub menus\n\t\tcollapsibleBehavior:\t'default'\t// parent items behavior in collapsible (mobile) view ('default', 'toggle', 'link', 'accordion', 'accordion-toggle', 'accordion-link')\n\t\t\t\t\t\t\t// 'default' - first tap on parent item expands sub, second tap loads its link\n\t\t\t\t\t\t\t// 'toggle' - the whole parent item acts just as a toggle button for its sub menu (expands/collapses on each tap)\n\t\t\t\t\t\t\t// 'link' - the parent item acts as a regular item (first tap loads its link), the sub menu can be expanded only via the +/- button\n\t\t\t\t\t\t\t// 'accordion' - like 'default' but on expand also resets any visible sub menus from deeper levels or other branches\n\t\t\t\t\t\t\t// 'accordion-toggle' - like 'toggle' but on expand also resets any visible sub menus from deeper levels or other branches\n\t\t\t\t\t\t\t// 'accordion-link' - like 'link' but on expand also resets any visible sub menus from deeper levels or other branches\n\t};\n\n\treturn $;\n}));","module.exports = jQuery;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","export default function configureSearch() {\r\n var script = document.createElement('script');\r\n script.type = 'text/javascript';\r\n script.src = '//search.usa.gov/javascripts/remote.loader.js';\r\n document.getElementsByTagName('head')[0].appendChild(script);\r\n\r\n // This prevents the click from submitting the webforms form\r\n $('.skin-search-go').on('click', function (e) {\r\n e.stopImmediatePropagation();\r\n submitSearch($(this));\r\n });\r\n $('#mobile-search input').on('keyup touchend', function (e) {\r\n if (e.keyCode === 13) {\r\n e.stopImmediatePropagation();\r\n submitSearch($(this));\r\n }\r\n });\r\n\r\n // This is the function that submits the search\r\n function submitSearch($this) {\r\n const query = $this ? ($this.val() || $this.parent().find('input').val()) : '';\r\n const affiliate = skinvars.aid;\r\n window.location = '//search.usa.gov/search?query=' + DOMPurify.sanitize(query) + '&affiliate=' + affiliate + '&utf8=%26%23x2713%3B';\r\n }\r\n\r\n // This turns hides the autocomplete box if the user scrolls the page\r\n //$(window).on('scroll',\r\n // function () {\r\n // $('#usasearch_sayt ul').hide();\r\n //});\r\n}\r\n\r\nwindow.usasearch_config = {\r\n siteHandle: skinvars.aid,\r\n autoSubmitOnSelect: false,\r\n};\r\n","\r\n\r\n// @todo, make it part of parallax scenes\r\nfunction keyboardNav() {\r\n\r\n var container = $('.main-nav');\r\n\r\n let focusable = 'a:visible, button:visible, :input:visible, [tabindex]:visible';\r\n //fixes jquery focus oddities between browsers\r\n $.fn.focusItem = function () {\r\n if (this.length && this[0].focus) {\r\n this[0].focus();\r\n }\r\n return this;\r\n };\r\n\r\n container.on('keydown', function (e) {\r\n //handle arrows and space\r\n handleOtherKeyboardNav(e);\r\n });\r\n\r\n container.find('a, button, :input, [tabindex]').on('focus', function (e) {\r\n //handle arrows and space\r\n handleCleanupOpenDropdowns(e);\r\n });\r\n\r\n function focusNextFocusable($ele) {\r\n let $focusable = $(focusable),\r\n i = $focusable.index($ele) + 1;\r\n if (i >= $focusable.length) i = 0;\r\n $focusable.eq(i).focusItem();\r\n }\r\n\r\n function focusPreviousFocusable($ele) {\r\n let $focusable = $(focusable),\r\n i = $focusable.index($ele) - 1;\r\n if (i <= 0) i = $focusable.length;\r\n $focusable.eq(i).focusItem();\r\n }\r\n\r\n function triggerClick($ele) {\r\n $ele.trigger('click');\r\n }\r\n\r\n function handleCleanupOpenDropdowns(e) {\r\n let $target = $(e.target);\r\n let $parent = $target.parents('.nav-item.display-menu');\r\n\r\n $('.nav-item').not($parent).each(function () {\r\n $(this).removeClass('display-menu').find('.dropdown-menu').hide();\r\n });\r\n }\r\n\r\n function handleOtherKeyboardNav(e) {\r\n let keyCode = e.keyCode,\r\n $target = $(e.target),\r\n stop = function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n };\r\n\r\n //only listening for space or arrows on focusable items left, up, right, down\r\n if (!/^(32|37|38|39|40)$/.test(keyCode) || !$target.is(focusable)) {\r\n return;\r\n }\r\n switch (keyCode) {\r\n case 32: //space\r\n triggerClick($target);\r\n stop(e);\r\n break;\r\n case 37: //left\r\n case 38: // Up\r\n focusPreviousFocusable($target)\r\n stop(e);\r\n break;\r\n case 39: // Right\r\n case 40: // Down\r\n focusNextFocusable($target)\r\n stop(e);\r\n break;\r\n } //switch\r\n }\r\n /* end keyboard nav additions */\r\n\r\n}\r\n\r\nexport default keyboardNav;\r\n","import $ from 'jquery';\r\nimport 'smartmenus';\r\nimport 'smartmenus-keyboard';\r\nimport 'smartmenus-bootstrap-4';\r\nimport configureSearch from './frontend/search';\r\nimport keyboardNav from './frontend/keyboardNav';\r\nimport '../scss/index.scss';\r\n\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n // Set up the search\r\n configureSearch();\r\n\r\n keyboardNav();\r\n\r\n // Breadcrumb modifications\r\n const $breadcrumbLinks = $('.breadcrumbs a');\r\n $breadcrumbLinks.last().removeAttr('href').css('text-decoration', 'none');\r\n $breadcrumbLinks.first().html(' Home Icon');\r\n}, false);\r\n\r\n//mobile nav/seach open and close classes on body\r\n(function ($) {\r\n var $body = $('body');\r\n var $nav = $('#mobile-nav');\r\n\r\n $('.mobile-nav-trigger').click(function (e) {\r\n e.preventDefault();\r\n $body.removeClass('mobile-search-open');\r\n if ($body.hasClass('mobile-nav-open')) {\r\n $body.removeClass('mobile-nav-open');\r\n setTimeout(function () {\r\n //$body.css('overflow', '');\r\n $body.removeClass('mobile-overflow-hidden');\r\n $nav[0].scrollTop = 0;\r\n }, 200); //wait for css transition of menu\r\n } else {\r\n //$body.css('overflow', 'hidden');\r\n $body.addClass('mobile-overflow-hidden');\r\n $body.addClass('mobile-nav-open');\r\n }\r\n });\r\n\r\n $('#mobile-search-trigger').click(function (e) {\r\n e.preventDefault();\r\n $body.removeClass('mobile-nav-open');\r\n if ($body.hasClass('mobile-search-open')) {\r\n $body.removeClass('mobile-search-open');\r\n setTimeout(function () {\r\n //$body.css('overflow', '');\r\n $body.removeClass('mobile-overflow-hidden');\r\n }, 200); //wait for css transition of menu\r\n } else {\r\n $body.addClass('mobile-search-open');\r\n //$body.css('overflow', '');\r\n $body.removeClass('mobile-overflow-hidden');\r\n }\r\n });\r\n\r\n})(jQuery);\r\n\r\n\r\n//fun with iOS safari\r\n// this is here to deal with well-documented viewport issues on mobile safari so we can position the mobile menu on the bottom\r\n// basically just keeping track of the viewport via js and attaching css when needed\r\n\r\n(function ($) {\r\n var $body = $('body');\r\n\r\n var style,\r\n min_inner_height = false,\r\n max_inner_height = false,\r\n saved_inner_height_diff = false,\r\n debounce_timer;\r\n\r\n var adjustCSS = function () {\r\n var win_inner_h = window.innerHeight;\r\n //console.log(window.innerHeight);\r\n if (!style) {\r\n style = document.createElement('style');\r\n style.appendChild(document.createTextNode(''));\r\n document.head.appendChild(style);\r\n }\r\n\r\n if (min_inner_height === false || win_inner_h < min_inner_height) {\r\n min_inner_height = win_inner_h;\r\n }\r\n if (max_inner_height === false || win_inner_h > max_inner_height) {\r\n max_inner_height = win_inner_h;\r\n }\r\n if (saved_inner_height_diff !== max_inner_height - min_inner_height) {\r\n saved_inner_height_diff = max_inner_height - min_inner_height;\r\n var i = style.sheet.cssRules.length - 1;\r\n while (i >= 0) {\r\n if ('deleteRule' in style.sheet) { style.sheet.deleteRule(i); }\r\n else if ('removeRule' in style.sheet) { style.sheet.removeRule(i); }\r\n i--;\r\n }\r\n style.sheet.insertRule('@media only screen and (orientation: landscape) { .safari-toolbars-shown.mobile-buttons-open #mobile-buttons, .safari-toolbars-shown.mobile-nav-open #mobile-buttons{ bottom: ' + saved_inner_height_diff + 'px; }');\r\n style.sheet.insertRule('@media only screen and (orientation: landscape) { .safari-toolbars-shown.mobile-search-open.mobile-buttons-open #mobile-search{ bottom: ' + (parseInt(saved_inner_height_diff) + 81) + 'px; }');\r\n\r\n }\r\n\r\n if (max_inner_height !== false && max_inner_height === win_inner_h) {\r\n $body.removeClass('safari-toolbars-shown');\r\n } else {\r\n $body.addClass('safari-toolbars-shown');\r\n }\r\n };\r\n\r\n if (/iPad|iPhone|iPod/.test(navigator.userAgent)) {\r\n\r\n window.addEventListener('orientationchange', function () {\r\n min_inner_height = false;\r\n max_inner_height = false;\r\n saved_inner_height_diff = false;\r\n setTimeout(adjustCSS, 200);\r\n });\r\n\r\n window.addEventListener('scroll', function (event) {\r\n if (debounce_timer)\r\n window.cancelAnimationFrame(debounce_timer);\r\n\r\n debounce_timer = window.requestAnimationFrame(function () {\r\n adjustCSS();\r\n });\r\n\r\n }, false);\r\n }\r\n\r\n \r\n})(jQuery);\r\n\r\n"],"names":["$","extend","SmartMenus","Bootstrap","keydownFix","init","$navbars","each","$this","this","obj","data","winW","skipBehavior","is","rightAligned","hasClass","prevAll","length","onInit","find","parent","addClass","dataSM","removeAttr","removeClass","onBeforeDestroy","removeDataSM","attr","detectCollapsible","force","newW","getViewportWidth","isCollapsible","smartmenus","subMenusSubOffsetX","subMenusSubOffsetY","subIndicators","collapsibleShowFunction","collapsibleHideFunction","rightToLeftSubMenus","bottomToTopSubMenus","closest","bootstrapHighlightClasses","on","e","menu","$menu","$scrollArrows","css","opts","keepHighlighted","refresh","prototype","call","destroy","collapsibleBehavior","window","rootId","document","off","fn","dropdown","Constructor","_dataApiKeydownHandler","getFirstItemLink","$ul","eq","getLastItemLink","getNextItemLink","$li","noLoop","$a","nextAll","getPreviousItemLink","test","jquery","focusSM","focus","Keyboard","docKeydown","keyCode","$root","$target","target","handleItemEvents","level","activatedItems","$firstItem","showOnClick","clickActivated","itemActivate","focusActivated","$firstSubItem","$lastItem","$parentItem","$nextParentItem","stopPropagation","preventDefault","keyboardSetHotkey","modifiers","self","procede","index","value","inArray","factory","menuTrees","mouse","touchEvents","mouseDetectionEnabled","requestAnimationFrame","callback","setTimeout","cancelAnimationFrame","id","clearTimeout","canAnimate","animate","initMouseDetection","disable","eNS","firstTime","lastMove","events","thisMove","x","pageX","y","pageY","timeStamp","Date","getTime","deltaX","Math","abs","deltaY","contains","itemEnter","currentTarget","isTouchEvent","originalEvent","getEventsNS","pointerType","eventsNS","i","split","join","elm","options","accessIdPrefix","$subArrow","visibleSubMenus","showTimeout","hideTimeout","scrollTimeout","zIndexInc","idInc","$firstLink","$firstSub","disabled","$disableOverlay","$touchScrollingSub","cssTransforms3d","style","wasCollapsible","hideAll","menuHideAll","push","random","replace","proxy","rootOver","rootOut","rootKeyDown","itemLeave","itemDown","itemFocus","itemBlur","itemClick","hideOnClick","docTouchStart","docTouchMove","docTouchEnd","docClick","winResize","subIndicatorsText","html","menuInit","markCurrentItem","reDefaultDoc","locHref","location","href","locHrefNoHash","markCurrentTree","parentsUntil","removeData","remove","subMenusMinWidth","subMenusMaxWidth","width","minWidth","maxWidth","zIndex","top","left","marginLeft","marginTop","display","indexOf","splice","noOverlay","isPopup","pos","offset","position","outerWidth","height","outerHeight","getStartZIndex","opacity","appendTo","body","lastTouch","undefined","x2","x1","y2","y1","touchPoint","touches","enable","getClosestMenu","$closestMenu","getHeight","$elm","getOffset","old","visibility","show","box","getBoundingClientRect","val","bottom","right","offsetHeight","offsetWidth","hide","root","parseInt","isNaN","getTouchPoint","changedTouches","getViewport","name","documentElement","val2","min","getViewportHeight","getWidth","handleEvents","isCSSOn","isLinkInMegaMenu","isFixed","isTouchMode","noMouseOver","hideDeeperSubs","get","reverse","add","menuHideSubMenus","triggerHandler","$sub","menuShow","firstLevelSub","subArrowClicked","collapsible","behaviorToggle","behaviorLink","behaviorAccordion","menuHide","blur","stop","complete","collapsibleHideDuration","hideFunction","hideDuration","menuScrollStop","transform","par","parentNode","aId","ulId","subIndicatorsPos","clone","menuPosition","subW","subH","itemOffset","itemX","itemY","itemW","itemH","$win","winX","scrollLeft","winY","scrollTop","winH","horizontalParent","rightToLeft","subOffsetX","mainMenuSubOffsetX","subOffsetY","mainMenuSubOffsetY","keepInViewport","absX","absY","mouseenter","up","menuScroll","mouseleave","menuScrollOut","insertAfter","step","arrowDownH","menuScrollOver","menuScrollMousewheel","menuScrollTouch","once","diff","$arrows","end","upEnd","downEnd","momentum","scrollAccelerate","scrollStep","floor","wheelDelta","detail","relatedTarget","className","menuScrollRefreshData","parseFloat","type","touchStartY","touchStartTime","prevY","touchY","pow","noMaxWidth","collapsibleShowDuration","showFunction","showDuration","popupHide","noHideTimeout","popupShow","alert","$activeTopItem","key","args","arguments","method","Array","shift","apply","dataOpts","eval","defaults","fadeOut","slideDown","slideUp","module","exports","jQuery","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","d","a","definition","o","Object","defineProperty","enumerable","prop","hasOwnProperty","usasearch_config","siteHandle","skinvars","aid","autoSubmitOnSelect","handleOtherKeyboardNav","$ele","trigger","triggerClick","$focusable","focusItem","focusPreviousFocusable","focusNextFocusable","container","$parent","parents","not","handleCleanupOpenDropdowns","$body","$nav","addEventListener","submitSearch","query","affiliate","DOMPurify","sanitize","script","createElement","src","getElementsByTagName","appendChild","stopImmediatePropagation","configureSearch","keyboardNav","$breadcrumbLinks","last","first","click","debounce_timer","min_inner_height","max_inner_height","saved_inner_height_diff","adjustCSS","win_inner_h","innerHeight","createTextNode","head","sheet","cssRules","deleteRule","removeRule","insertRule","navigator","userAgent"],"sourceRoot":""}