{"html":"<div id=\"{{uc_id}}\" class=\"ue-nav-menu\" data-show-icons=\"{{show_expand_collapse_icons}}\" data-breakpoint=\"{{responsive_breakpoint}}\" data-full-width=\"{{full_width_on_mobile}}\">\n  \n  <div class=\"ue-nav-menu-mobile-wrapper\">\n    <label class=\"ue-nav-menu-mobile\" for=\"mobile_menu{{uc_id}}\">\n      <span class=\"ue-nav-menu-mobile-icon-open\">{{mobile_icon_html|raw}}<\/span>\n      <span class=\"ue-nav-menu-mobile-icon-close\">{{mobile_icon_close_html|raw}}<\/span>\n    <\/label>\n  <\/div>  \n  \n  <input id=\"mobile_menu{{uc_id}}\" class=\"ue-nav-menu-checkbox\" type=\"checkbox\">\n  \n  {{menu|raw}}\n  \n  <div class=\"ue-nav-menu-icons-holder\" style=\"display: none;\">\n    <span class=\"ue-nav-menu-icon-expand\">{{expand_icon_html|raw}}<\/span>\n    <span class=\"ue-nav-menu-icon-collapse\">{{collapse_icon_html|raw}}<\/span>\n    <span class=\"ue-nav-menu-icon-first-level-expand\">{{first_level_expand_icon_html|raw}}<\/span>\n  <\/div>\n  \n<\/div>","css":"#{{uc_id}}{\n\tposition: relative;\n}\n\n#{{uc_id}} .ue-nav-menu-mobile-wrapper{\n \tdisplay: flex;\n}\n\n#{{uc_id}} .ue-menu{\n    display:flex;\n    list-style:none;\n    margin:0;\n    padding:0;\n    position:relative;\n  \tjustify-content:{{align}};\n}\n\n#{{uc_id}} a{\n  \tposition: relative;\n\ttext-decoration: none;\n \tdisplay: flex;\n  \talign-items: center;  \n}\n\n#{{uc_id}} a:after,\n#{{uc_id}} a:before{\n    content: \"\";\n    z-index: 2;\n    position:absolute;\n}\n\n{% if pointer == \"underline\" %}\n    #{{uc_id}} a:hover:after,\n\t#{{uc_id}} a.uc-active:after{\n        bottom: 0;\n        height: 3px;\n        width: 100%;\n        left: 0;\n        background-color: {{pointer_color}};\n    }  \n{% endif %}\t\n\n{% if pointer == \"overline\" %}\n  \t#{{uc_id}} a:hover:before,\n\t#{{uc_id}} a.uc-active:before{\n      top: 0;\n      height: 3px;\n      width: 100%;\n      left: 0;\n      background-color: {{pointer_color}};\n  \t}\n{% endif %}\n\n\n{% if pointer == \"double\" %}\n  \t#{{uc_id}} a:hover:after,\n\t#{{uc_id}} a.uc-active:after{\n      bottom: 0;\n      height: 3px;\n      width: 100%;\n      left: 0;\n      background-color: {{pointer_color}};\n    }  \n  \t#{{uc_id}} a:hover:before,\n\t#{{uc_id}} a.uc-active:before{\n      top: 0;\n      height: 3px;\n      width: 100%;\n      left: 0;\n      background-color: {{pointer_color}};\n  \t}\n{% endif %}\n\n\n{% if pointer == \"framed\" %}\n  \t#{{uc_id}} a:hover:before,\n\t#{{uc_id}} a.uc-active:before{\n      top: 0;\n      bottom:0;\n      left:0;\n      right:0;\n      height: 100%;\n      width: 100%;\n      border-style:solid;\n      border-width:3px;\n      border-color:{{pointer_color}};\n  \t}\n{% endif %}\n\n\n\n#{{uc_id}} .sub-menu a{\n\tjustify-content: space-between;\n}\n\n#{{uc_id}} .ue-menu > li {\n\tdisplay: block;\n  \t{% if align == \"stretch\" %}\n  \t\tflex-grow: 1;\n  \t{% endif %}\n}\n\n\/* Simple multilevel dropdown *\/\n#{{uc_id}} .ue-menu > li > .sub-menu {\n\topacity: 0;\n\tvisibility: hidden;\n\tposition: absolute;\n\tlist-style: none;\n\ttext-align: inherit;\n\tpadding: 0px;\n    display:block;\n\tz-index: 99;\n}\n\n\/* First level appear *\/\n#{{uc_id}} .ue-menu > li:hover > .sub-menu {\n\topacity: 1;\n\tvisibility: visible;\n}\n\n#{{uc_id}} .ue-menu > li.uc-active > .sub-menu {\n\topacity: 1;\n\tvisibility: visible;\n}\n\n\/* Style for dropdown links *\/\n#{{uc_id}} .ue-menu li > .sub-menu li {\n\tposition: relative;\n\tdisplay: block;\n}\n\n\/* Second and third dropdown level *\/\n#{{uc_id}} .ue-menu > li > .sub-menu li{\n  display: block;\n}\n\n#{{uc_id}} .ue-menu > li > .sub-menu > li .sub-menu {\n\topacity: 0;\n\tvisibility: hidden;\n\tposition: absolute;\n\tlist-style: none;\n\ttop:0px;\n\tpadding: 0px;\n  \tz-index: 100;\n}\n\n\/* Second and third level appears *\/\n#{{uc_id}} .ue-menu > li .sub-menu li:hover > .sub-menu {\n\topacity: 1;\n\tvisibility: visible;\n}\n\n#{{uc_id}} .ue-menu > li .sub-menu li.uc-active > .sub-menu {\n\topacity: 1;\n\tvisibility: visible;\n}\n\n#{{uc_id}} li,\n#{{uc_id}} a{\n\ttransition: all 0.3s ease-in-out;\n}\n\n#{{uc_id}} ul{\n\ttransition: opacity 0.3s ease-in-out;\n}\n\n#{{uc_id}} .ue-nav-menu-checkbox{ \n  \tdisplay: none; \n}\n\n#{{uc_id}} .ue-nav-menu-mobile{\n  \tdisplay: none;\n\ttransition: all .3s;\n}\n\n#{{uc_id}} .ue-nav-menu-icon{\n\tdisplay: flex;\n}\n\n#{{uc_id}} .ue-nav-menu-mobile > *{\n\tdisplay: none;\n  \tjustify-content: center;\n  \talign-items: center;\n}\n#{{uc_id}} .ue-nav-menu-mobile > .uc-active{\n\tdisplay: flex;\n}\n\n@media only screen and (max-width: 1024px) {\n    \n      #{{uc_id}} .ue-menu{\n          justify-content:{{align_tablet}};\n      }\n      {% if align_tablet == \"stretch\" %}\n        #{{uc_id}} .ue-menu > li { \n            flex-grow: 1;  \t\n        }\n      {% endif %}\n}\n\n@media only screen and (max-width: 767px) {\n    \n  \t #{{uc_id}} .ue-menu{\n          justify-content:{{align_mobile}};\n     }\n     {% if align_mobile == \"stretch\" %}\n       #{{uc_id}} .ue-menu > li {  \t\n            flex-grow: 1;  \t\n       }\n     {% endif %}\n}\n\n\n@media only screen and (max-width: {{responsive_breakpoint}}px) {\n  \n\t#{{uc_id}} .ue-menu {\n     \topacity: 0;\n      \ttransform: translate(0, -20px);\n      \tpointer-events: none;\n      \ttransition: all .3s;\n      \tflex-direction: column;\n      \tposition: absolute;\n      \twidth: 100%;\n      \ttop: 100%;\n      \tleft: 0;\n      \tz-index: 1000;\n    }\n  \n    #{{uc_id}} .sub-menu{\n      \tvisibility: visible !important;\n      \topacity: 1 !important;\n      \tinset-inline-start: unset !important;\n        transition-timing-function: ease;\n    } \t\n\n\t#{{uc_id}} .ue-nav-menu-mobile {\n        position: relative;\n        display: flex;\n        align-items:center;\n        justify-content:center;      \n\t}\n\n\t#{{uc_id}} .ue-nav-menu-checkbox:checked + .ue-menu {\n\t\topacity: 1;\n      \ttransform: translate(0, {{responsive_menu_spacing}}px);\n      \tpointer-events: all;\n\t}\n\n\t#{{uc_id}} .ue-menu > li > .sub-menu {\n\t\twidth: 100%;\n        position:relative;\n        top:auto;\n\t}\n\n\t#{{uc_id}} .ue-menu > li > .sub-menu > li .sub-menu {\n\t\twidth: 100%;\n\t\tleft: 0;\n\t\tz-index: 2;\n        position:relative;\n        top:auto;\n\t}\n\n\t#{{uc_id}} .ue-menu > li > ul li ul li ul {\n\t\twidth: 100%;\n      \tposition:relative;\n\t}\n  \n}","js":"jQuery(document).ready(function(){\n  \n  \/\/jquery objects\n  var g_objMenu = jQuery('#{{uc_id}}');  \n  var g_objFirstLevelMenuItems = g_objMenu.find('.ue-menu > .menu-item-has-children');\n  var g_objMenuItems = g_objMenu.find('.menu-item-has-children');\n  var g_objMenuInnerItems = g_objMenu.find('.menu-item-has-children .menu-item-has-children');\n  var g_objMenuLinks = g_objMenu.find('a');\n  var objExpandIcon = g_objMenu.find('.ue-nav-menu-icon-expand');\n  var g_objBurger = g_objMenu.find('.ue-nav-menu-mobile');\n  var g_objOpenBurgerIcon = g_objMenu.find('.ue-nav-menu-mobile-icon-open');\n  var g_objCloseBurgerIcon = g_objMenu.find('.ue-nav-menu-mobile-icon-close');\n  \n  \/\/classes\n  var g_classActive = 'uc-active';\n  var hasChildrenClass = 'menu-item-has-children';\n  \n  \/\/selectors\n  var menuItemSelector = '.'+hasChildrenClass;\n  var iconsSelector = '.ue-nav-menu-icon';\n  var subMenuSelector = '.sub-menu';\n  var linkSelector = '> a';\n  \n  \/\/data attributes\n  var g_showIcons = g_objMenu.data('show-icons');\n  var dataCustomBreakpoint = g_objMenu.data('breakpoint');\n  \n  \/\/html elements\n  var g_expandIconHtml = objExpandIcon.html();  \t\n  \n  \/\/window width\n  var g_viewportWidth = jQuery(window).width();\n  var g_isResponsiveViewport = window.matchMedia(\"(max-width: \"+dataCustomBreakpoint+\"px)\");\n  \n  function isClickedItemOnFirstLevel(objIcon){\n    \n    var firstLevelIconClass = 'uc-first-level-item';\n    \n    \/\/check if clicked itcon is not first level icon\n    var objFirstLevelIcons = g_objFirstLevelMenuItems.find(linkSelector).find(iconsSelector);\n    \n    objFirstLevelIcons.addClass(firstLevelIconClass);\n    \n    if(objIcon.hasClass(firstLevelIconClass) == true)\n    return(true);\n    else\n    return(false);\n    \n  }\n  \n  function setActiveIcon(objClicked){\n    \n    if(g_showIcons == false)\n    return(false);\n    \n    if(objClicked.hasClass(g_classActive) == false)\n    return(false);\n    \n    var objIcon = objClicked.find(iconsSelector);\n    \n    var collapseIconHtml = g_objMenu.find('.ue-nav-menu-icon-collapse').html();\n    \n    if(isClickedItemOnFirstLevel(objIcon) == true)\n    return(false);  \n    \n    objIcon.html(collapseIconHtml);\n    \n  }\n  \n  function setDisactiveIcon(objClicked){\n    \n    if(g_showIcons == false)\n    return(false);\n    \n    var objIcon = objClicked.find(iconsSelector);\n    \n    if(isClickedItemOnFirstLevel(objIcon) == true)\n    return(false);  \n    \n    objIcon.html(g_expandIconHtml);\n    \n  }\n  \n  function cancelFullWidth(objMobileMenu){\n    \n    objMobileMenu.css({\n      'width': '',\n      'left': ''\n    });\n    \n  }\n  \n  function setMenuToFullWidth(objMobileMenu){\n    \n    var dataFullWidth = g_objMenu.data('full-width');\n    \n    if(dataFullWidth == false)\n    return(false);\n    \n    \/\/if not mobile viewport - cancel full width and exit function\n    if(g_isResponsiveViewport.matches == false){        \n      cancelFullWidth(objMobileMenu);\n      return(false);          \n    }      \t\n    \n    \/\/set width to full\n    objMobileMenu.css('width', g_viewportWidth+'px');\n    \n    \/\/set left position\n    var menuLeftPosition = g_objMenu.offset().left;\n    \n    objMobileMenu.css('left', -menuLeftPosition+'px');\n    \n    \n  }\n  \n  function initResponsiveMode(){\n    \n    var objSubMenus = g_objMenu.find(subMenuSelector);\n    var objMobileMenu = g_objMenu.find('.ue-menu');\n    var mobileClass = 'uc-mobile';\n    \n    \/\/update viewport width value\n    g_viewportWidth = jQuery(window).width();      \n    \n    \/\/set full width if needed\n    setTimeout(function(){\n      setMenuToFullWidth(objMobileMenu);\n    },200);\n    \n    if(g_isResponsiveViewport.matches == false){\n      \n      \/\/remove mobile class from menu\n      objMobileMenu.removeClass(mobileClass);\n      \n      objSubMenus.slideDown(300);    \n      \n      var objLinks = objSubMenus.prev();\n      \n      correctOpenMenuPosition(objLinks);\n      \n    }        \n    \n    if(g_isResponsiveViewport.matches == true){\n      \n      \/\/add mobile class to menu\n      objMobileMenu.addClass(mobileClass);\n      \n      objSubMenus.slideUp(300);\n      \n      if(g_objBurger.hasClass(g_classActive) == true){\n        \n        g_objOpenBurgerIcon.removeClass(g_classActive);\n        g_objCloseBurgerIcon.addClass(g_classActive);\n        \n      }else{\n        \n        g_objOpenBurgerIcon.addClass(g_classActive);\n        g_objCloseBurgerIcon.removeClass(g_classActive);\n        \n      }\n      \n    }      \t\n    \n  }\n  \n  \/*\n  *\tcorrect menu item position when there is no space inside viewport\n  *\/\n  function correctOpenMenuPosition(objTarget){  \n    \n    \/\/only on desktop\n    if(g_isResponsiveViewport.matches == true)\n    return(false);\n    \n    var objSubMenu = objTarget.next();\n    \n    \/\/ if no sub menus return \n    if(!objSubMenu.length)\n    return(false);\n    \n    var objParentSubMenus = objTarget.parents(subMenuSelector);\n    \n    \/\/search only from second level menu items\n    if(!objParentSubMenus.length)\n    return(false);  \n    \n    \/\/each parent submenu\n    objParentSubMenus.each(function(parentIndex, parent){\n      \n      var objParentSubMenu = jQuery(this);\n      \n      \/\/ Get the position of the menu item relative to the viewport\n      var objChildSubMenus = objParentSubMenu.find('li >'+subMenuSelector);\n      \n      if(!objChildSubMenus.length)\n      return(true);\n      \n      \/\/each child submenu\n      objChildSubMenus.each(function(childIndex, child){\n        \n        var objChildSubMenu = jQuery(this);        \n        \n        \/\/width of the child\n        var menuItemChildWidth = objChildSubMenu.width();\n        \n        \/\/width of the parent\n        var menuItemParentWidth = objParentSubMenu.width();\n        \n        \/\/right offset of the parent\n        var menuItemRightOffset = objParentSubMenu.offset().left + menuItemParentWidth;\n        var menuItemLeftOffset = objParentSubMenu.offset().left;\n        \n        \/\/ Get the available space on both sides of the screen\n        var spaceRight = window.innerWidth - menuItemRightOffset;\n        \n        \/\/get inset-inline-start value\n        var insetInlineStart = objChildSubMenu.css('inset-inline-start');        \n        \n        \/\/ if there is NOT enough room (left or right) then invert insert-inline-start \n        if (menuItemChildWidth >= spaceRight || menuItemChildWidth >= menuItemLeftOffset)\n        objChildSubMenu.css('inset-inline-start', '-'+insetInlineStart);\n        \n        \/\/ if there is NOT enough room anywhere\n        if (menuItemChildWidth >= spaceRight && menuItemChildWidth >= menuItemLeftOffset){\n          \n          console.log('Can\"t correct position of the dropdown, please adjust width of menu items');\n          \n          return(true);\n          \n        }      \n        \n        \/\/if there is enough room then cancel invert insert-inline-start\n        if (menuItemChildWidth < spaceRight && childIndex != parentIndex){\n          \n          \/\/menuItemChildWidth x2 times because its equal to inset-inline-start\n          var childSubMenuOffsetRight = objParentSubMenu.offset().left + menuItemParentWidth + menuItemChildWidth + menuItemChildWidth; \n      \n          \/\/cancel when child sub-menu offset right is not grater then viewport width (must check if after canceling won't be any horizontal scroll)     \n          if(childSubMenuOffsetRight < window.innerWidth)\n          objChildSubMenu.css('inset-inline-start', '');\n\n        }        \n        \n      });\n      \n    });\n    \n    \n  }\n  \n  \/*\n  * responsive mode menu item click\n  *\/  \n  function onMenuLinkClick(e){\n    \n    if(g_isResponsiveViewport.matches == false)\n    return(true);\n    \n    var objLink = jQuery(this);\n    var objSubMenu = objLink.next();\n    \n    \/\/if click on active item then close it\n    if(objLink.hasClass(g_classActive) == true){\n      \n      setDisactiveIcon(objLink);\n      \n      objSubMenu.slideUp(300);\n      \n      objLink.removeClass(g_classActive);\n      \n      return(true);\n      \n    }   \n    \n    var objSubMenusParent = objSubMenu.parents(subMenuSelector);      \t\n    var objSubMenusNotParents = g_objMenu.find(subMenuSelector).not(objSubMenusParent);    \n    var objMenuLinksParent = objLink.parents(subMenuSelector).prev();\n    var objMenuLinksNotParents = g_objMenu.find('a').not(objMenuLinksParent);\n    \n    objMenuLinksNotParents.removeClass(g_classActive);\n    objLink.addClass(g_classActive);\n    \n    setDisactiveIcon(objMenuLinksNotParents);\n    setActiveIcon(objLink);        \n    \n    objSubMenusNotParents.slideUp(300);\n    objSubMenu.slideDown(300);  \n    \n    if(objSubMenu.length > 0)\n    e.preventDefault();    \n    \n  }\n  \n  function onMenuInnerItemMouseover(e){\n    \n    if(g_isResponsiveViewport.matches == true)\n    return(false);\n    \n    var objHovered = jQuery(this);    \n    var objItem = objHovered.find(linkSelector);\n    \n    setTimeout(function(){\n      setActiveIcon(objItem);\n    },100);  \n    \n    var objTarget = jQuery(e.target);\n    correctOpenMenuPosition(objTarget);\n    \n  }\n  \n  function onMenuInnerItemMouseLeave(){\n    \n    if(g_isResponsiveViewport.matches == true)\n    return(false);\n    \n    var objMenuItem = jQuery(this);    \n    var objItem = objMenuItem.find(linkSelector);\n    \n    setDisactiveIcon(objItem);       \n    \n  }\n  \n  \/**\n  * use this funciton to add active class to all menu item links\n  *\/\n  function onMenuItemMouseover(){\n    \n    if(g_isResponsiveViewport.matches == true)\n    return(false);\n    \n    var objHovered = jQuery(this);    \n    var objItem = objHovered.find(linkSelector);\n    \n    g_objMenuItems.removeClass(g_classActive);\n    objItem.addClass(g_classActive); \n    \n  }\n  \n  \/**\n  * use this funciton to add active class to all menu item links\n  *\/\n  function onMenuItemMouseLeave(){\n    \n    if(g_isResponsiveViewport.matches == true)\n    return(false);\n    \n    var objHovered = jQuery(this);    \n    var objItem = objHovered.find(linkSelector);\n    \n    objItem.removeClass(g_classActive);\n    \n  }\n  \n  function setFirstLevelIcons(){\n    \n    if(g_showIcons == false)\n    return(false);          \n    \n    var objFirstLevelMenuLinks = g_objFirstLevelMenuItems.find(linkSelector); \n    var objFirstLevelExpandIcon = g_objMenu.find('.ue-nav-menu-icon-first-level-expand');\n    var firstLevelExpandIconHtml = objFirstLevelExpandIcon.html();\n    var iconWrapperHtml = \"<span class='ue-nav-menu-icon'>\"+firstLevelExpandIconHtml+\"<\/span>\";\n    \n    objFirstLevelMenuLinks.append(iconWrapperHtml);\n    \n  }\n  \n  function setIcons(){\n    \n    if(g_showIcons == false)\n    return(false);\n    \n    if(!g_objMenuInnerItems)\n    return(false);  \n    \n    var objMenuLinks = g_objMenuInnerItems.find(linkSelector);  \n    var iconHtml = \"<span class='ue-nav-menu-icon'>\"+g_expandIconHtml+\"<\/span>\";\n    \n    objMenuLinks.append(iconHtml);\n    \n  }\n  \n  function onBurgerClick(){\n    \n    if(g_objBurger.hasClass(g_classActive) == true){\n      \n      g_objOpenBurgerIcon.addClass(g_classActive);\n      g_objCloseBurgerIcon.removeClass(g_classActive);\n      \n      g_objBurger.removeClass(g_classActive);\n      \n    }else{\n      \n      g_objOpenBurgerIcon.removeClass(g_classActive);\n      g_objCloseBurgerIcon.addClass(g_classActive);\n      \n      g_objBurger.addClass(g_classActive);\n      \n    }\n    \n  }\n  \n  function onKeyDown(e){\n    \n    \/\/only on desktop\n    if(g_isResponsiveViewport.matches == true)\n    return(true);  \n    \n    \/\/listen only after 'tab' key\n    if(e.keyCode != 9)\n    return(true);      \n    \n    \/\/find all 'li' tags\n    var objItems = g_objMenu.find('li');  \n    \n    \/\/set small timeout, so current menu item was mark as focused and triggered\n    setTimeout(function(){\n      \n      \/\/look after all menu 'li' tags\n      objItems.each(function(){\n        \n        var objItem = jQuery(this);      \n        \n        \/\/if link not focused - skip\n        if(objItem.find(linkSelector).is(':focus') == false)\n        return(true);            \n        \n        var objLink = objItem.find(linkSelector);\n        var objSubMenu = objLink.next();\n        \n        \/\/remove active class from others menu items except parent ones    \n        var objMenuLinksParent = objLink.parents(subMenuSelector).prev();\n        var objMenuLinksNotParents = g_objMenu.find('.ue-menu '+menuItemSelector+' '+subMenuSelector+' a').not(objMenuLinksParent);\n        var objParentsMenuitems = objItem.parents(menuItemSelector);\n        var objMenuItemsNotParents = objItems.not(objParentsMenuitems);\n        \n        var objFirstLevelMenuLinks = jQuery('.ue-nav-menu .ue-menu > li '+linkSelector+'');\n        var isFocusedFirstLevelActiveChildrenLinks = objFirstLevelMenuLinks.next().find('li '+linkSelector).is(':focus');\n        \n        \/\/if there is no expanded menu items inside first level menu items then remove active class      \n        if(isFocusedFirstLevelActiveChildrenLinks == false)\n        objFirstLevelMenuLinks.removeClass(g_classActive);     \n        \n        objMenuLinksNotParents.removeClass(g_classActive);\n        objMenuItemsNotParents.removeClass(g_classActive);\n        \n        setDisactiveIcon(objMenuLinksNotParents);\n        \n        \/\/add active class and use css to open sub menu\n        objItem.addClass(g_classActive);\t                  \n        objLink.addClass(g_classActive); \n        \n        var objParentMenuItemNum = objLink.parents(menuItemSelector).length;\n        \n        if(objParentMenuItemNum > 1)\n        setActiveIcon(objLink);\n        \n      });\n      \n    },50)  \n  }\n  \n  \/**\n  * close menu on body click\n  *\/\n  function onBodyClick(e){\n    \n    if(g_isResponsiveViewport.matches == true)\n    return(true);\n    \n    var objTarget = jQuery(e.target);\n    var objTargetParents = objTarget.parents();\n    \n    if(objTargetParents.hasClass('ue-nav-menu'))\n    return(true);\n    \n    g_objMenuItems.removeClass(g_classActive);\n    g_objMenuLinks.removeClass(g_classActive);\n    \n    setDisactiveIcon(g_objMenuLinks); \n    \n  }\n  \n  setFirstLevelIcons();\n  setIcons();\n  initResponsiveMode();\n  \n  \/\/init events\n  jQuery(window).on('resize', initResponsiveMode);\n  \n  g_objMenuLinks.on('click', onMenuLinkClick);\n  \n  g_objBurger.on('click', onBurgerClick);\n  \n  if(g_objMenuInnerItems){\n    \n    g_objMenuInnerItems.on('mouseover', onMenuInnerItemMouseover);\n    g_objMenuInnerItems.on('mouseleave', onMenuInnerItemMouseLeave);\n    \n  }\n  \n  if(g_objMenuItems){\n    \n    g_objMenuItems.on('mouseover', onMenuItemMouseover);\n    g_objMenuItems.on('mouseleave', onMenuItemMouseLeave);\n    \n  }\n  \n  jQuery(document).on('keydown', onKeyDown);\n  \n  jQuery('body').on('click', function(e){\n    onBodyClick(e);\n  });\n  \n});"}