"use strict"; $.fn.pcodedmenu = function(settings) { var oid = this.attr("id"); // Pcoded Menu default settings: var defaults = { // Common option both for vertical nad horizontal themelayout: 'vertical', // value should be horizontal/vertical MenuTrigger: 'click', // value should be hover/click SubMenuTrigger: 'click', // value should be hover/click activeMenuClass: 'active', ThemeBackgroundPattern: 'pattern6', // Value should be HeaderBackground: 'theme4', // Value should be theme1/theme2/theme3/theme4/theme5/theme6/theme7/theme8/theme9 LHeaderBackground: 'theme4', // Value should be theme1/theme2/theme3/theme4/theme5/theme6/theme7/theme8/theme9 NavbarBackground: 'theme4', // Value should be theme1/theme2/theme3/theme4/theme5/theme6/theme7/theme8/theme9 ActiveItemBackground: 'theme0', // Value should be theme1/theme2/theme3/theme4/theme5/theme6/theme7/theme8/theme9 SubItemBackground: 'theme4', // Value should be theme1/theme2/theme3/theme4/theme5/theme6/theme7/theme8/theme9 ActiveItemStyle: 'style0', ItemBorder: true, ItemBorderStyle: 'solid', // value should be solid/dotted/dashed SubItemBorder: true, DropDownIconStyle: 'style1', // value should be style1,style2,style3 FixedNavbarPosition: false, FixedHeaderPosition: false, // Horizontal Navigation option horizontalMenuplacement: 'top', // value should be top/bottom horizontalMenulayout: 'widebox', //value should be wide/box/widebox horizontalBrandItem: true, horizontalLeftNavItem: true, horizontalRightItem: false, horizontalSearchItem: false, horizontalBrandItemAlign: 'left', horizontalLeftNavItemAlign: 'right', horizontalRightItemAlign: 'right', horizontalsearchItemAlign: 'right', horizontalstickynavigation: false, horizontalNavigationView: 'view1', horizontalNavIsCentered: false, horizontalNavigationMenuIcon: true, layouttype:'light', // Vertical Navigation option verticalMenuplacement: 'left', // value should be left/right verticalMenulayout: 'wide', // value should be wide/box/widebox collapseVerticalLeftHeader: true, VerticalSubMenuItemIconStyle: 'style6', // value should be style1,style2,style3 VerticalNavigationView: 'view1', verticalMenueffect: { desktop: "shrink", tablet: "push", phone: "overlay", }, defaultVerticalMenu: { desktop: "expanded", // value should be offcanvas/collapsed/expanded/compact/compact-acc/fullpage/ex-popover/sub-expanded tablet: "collapsed", // value should be offcanvas/collapsed/expanded/compact phone: "offcanvas", // value should be offcanvas/collapsed/expanded/compact }, onToggleVerticalMenu: { desktop: "collapsed", // value should be offcanvas/collapsed/expanded/compact tablet: "expanded", // value should be offcanvas/collapsed/expanded/compact phone: "expanded", // value should be offcanvas/collapsed/expanded/compact }, }; var satnt,mt,tw,dt,is_chrome,is_explorer ,is_firefox,is_safari,is_opera,is_mac,is_windows; var settings = $.extend({}, defaults, settings); var PcodedMenu = { PcodedMenuInit: function() { PcodedMenu.Handlethemelayout(); PcodedMenu.HandleverticalMenuplacement(); PcodedMenu.HandlehorizontalMenuplacement(); PcodedMenu.HandleMenulayout(); PcodedMenu.HandleDeviceType(); PcodedMenu.Handlecomponetheight(); PcodedMenu.HandleMenuOnClick(); PcodedMenu.HandleMenuTrigger(); PcodedMenu.HandleSubMenuTrigger(); PcodedMenu.HandleActiveItem(); PcodedMenu.HandleOffcanvasMenu(); PcodedMenu.HandleVerticalLeftHeader(); PcodedMenu.HandleThemeBackground(); PcodedMenu.HandleActiveItemStyle(); PcodedMenu.HandleItemBorder(); PcodedMenu.HandleBorderStyle(); PcodedMenu.HandleSubItemBorder(); PcodedMenu.HandleDropDownIconStyle(); PcodedMenu.HandleOptionSelectorPanel(); PcodedMenu.HandleNavbarPosition(); PcodedMenu.HandleVerticalSubMenuItemIconStyle(); PcodedMenu.HandleVerticalNavigationView(); PcodedMenu.HandleHorizontalItemIsCentered(); PcodedMenu.HandleHorizontalItemAlignment(); PcodedMenu.HandleSubMenuOffset(); PcodedMenu.HandleHorizontalStickyNavigation(); PcodedMenu.HandleDocumentClickEvent(); PcodedMenu.HandleVerticalScrollbar(); PcodedMenu.HandleHorizontalMobileMenuToggle(); PcodedMenu.horizontalNavigationMenuIcon(); PcodedMenu.verticalNavigationSearchBar(); PcodedMenu.safariBrowsercompatibility(); PcodedMenu.Handlemenutype(); PcodedMenu.Handlelayoutvartype(); }, safariBrowsercompatibility: function() { is_chrome = navigator.userAgent.indexOf('Chrome') > -1; is_explorer = navigator.userAgent.indexOf('MSIE') > -1; is_firefox = navigator.userAgent.indexOf('Firefox') > -1; is_safari = navigator.userAgent.indexOf("Safari") > -1; is_opera = navigator.userAgent.indexOf("Presto") > -1; is_mac = (navigator.userAgent.indexOf('Mac OS') != -1); is_windows = !is_mac; if (is_chrome && is_safari) { is_safari = false; } if (is_safari || is_windows) {} }, verticalNavigationSearchBar: function() { if (settings.themelayout === "vertical") { $('.searchbar-toggle').on('click', function() { $(this).parent('.pcoded-search').toggleClass('open'); }); } }, horizontalNavigationMenuIcon: function() { if (settings.themelayout === "horizontal") { switch (settings.horizontalNavigationMenuIcon) { case false: $('#' + oid + '.pcoded .pcoded-navbar .pcoded-item > li > a .pcoded-micon').hide(); $('#' + oid + '.pcoded .pcoded-navbar .pcoded-item.pcoded-search-item > li > a .pcoded-micon').show(); break; default: } } }, HandleHorizontalMobileMenuToggle: function() { if (settings.themelayout === "horizontal") { $('#mobile-collapse').on('click', function() { $('.pcoded-navbar').toggleClass('show-menu') }); } }, HandleVerticalScrollbar: function() { if (settings.themelayout === "vertical") { satnt = settings.defaultVerticalMenu.desktop; if (satnt === "expanded" || satnt === "compact") { mt = settings.MenuTrigger; if (mt === "click") { $(window).on("load", function() { $(".sidebar_toggle a").click(function(e) { e.preventDefault(); var $this = $(this); rel = $this.attr("rel"); el = $(".pcoded-navbar"); // if (el.hasClass("mCS_destroyed")) { // el.mCustomScrollbar({ // axis:"y", // setHeight:"calc(100% - 80px)", // autoHideScrollbar: false, // scrollInertia: 100, // theme:"minimal", // }); // } else { // el.mCustomScrollbar("destroy"); // } }); }); } // $(".main-menu").mCustomScrollbar({ // axis:"y", // setHeight:"calc(100% - 80px)", // autoHideScrollbar: false, // scrollInertia: 100, // theme:"minimal", // }); } } }, HandleDocumentClickEvent: function() { function closeSubMenu() { $(document).on('click', function(evt) { var target = $(evt.target); var sdt = $('#' + oid).attr('pcoded-device-type'); var vnt = $('#' + oid).attr('vertical-nav-type'); var el = $('#' + oid + ' .pcoded-item li'); if (!target.parents('.pcoded-item').length) { if (sdt != "phone") { if (vnt != "expanded") { el.removeClass('pcoded-trigger'); } } } }); }; function closeLeftbarSearch() { $(document).on('click', function(evt) { var target = $(evt.target); var el = $('#' + oid + ' .pcoded-search'); if (!target.parents('.pcoded-search').length) { el.removeClass('open'); } }); }; closeSubMenu(); closeLeftbarSearch(); }, HandleHorizontalStickyNavigation: function() { switch (settings.horizontalstickynavigation) { case true: $(window).on('scroll', function() { var scrolltop = $(this).scrollTop(); if (scrolltop >= 100) { $('.pcoded-navbar').addClass('stickybar'); $('stickybar').fadeIn(3000); } else if (scrolltop <= 100) { $('.pcoded-navbar').removeClass('stickybar') $('.stickybar').fadeOut(3000); } }); break; case false: $('.pcoded-navbar').removeClass('stickybar') break; default: } }, HandleSubMenuOffset: function() { switch (settings.themelayout) { case 'horizontal': var trigger = settings.SubMenuTrigger; if (trigger === "hover") { $("li.pcoded-hasmenu").on('mouseenter mouseleave', function(e) { if ($('.pcoded-submenu', this).length) { var elm = $('.pcoded-submenu:first', this); var off = elm.offset(); var l = off.left; var w = elm.width(); var docH = $(window).height(); var docW = $(window).width(); //console.log("length = " + $('.pcoded-submenu', this).length + " off=" + off + " l=" + l+ " w=" + w + " doch=" + docH + " docW=" + docW) var isEntirelyVisible = (l + w <= docW); if (!isEntirelyVisible) { $(this).addClass('edge'); } else { $(this).removeClass('edge'); } } }); } else { $("li.pcoded-hasmenu").on('click', function(e) { e.preventDefault(); if ($('.pcoded-submenu', this).length) { var elm = $('.pcoded-submenu:first', this); var off = elm.offset(); var l = off.left; var w = elm.width(); var docH = $(window).height(); var docW = $(window).width(); var isEntirelyVisible = (l + w <= docW); if (!isEntirelyVisible) { $(this).toggleClass('edge'); } } }); } break; default: } }, HandleHorizontalItemIsCentered: function() { if (settings.themelayout === "horizontal") { switch (settings.horizontalNavIsCentered) { case true: $('#' + oid + ' .pcoded-navbar').addClass("isCentered"); break; case false: $('#' + oid + ' .pcoded-navbar').removeClass("isCentered"); break; default: } } }, HandleHorizontalItemAlignment: function() { var layout = settings.themelayout; if (layout === "horizontal") { function branditemalignment() { var elm = $('#' + oid + '.pcoded .pcoded-navbar .pcoded-brand'); if (settings.horizontalBrandItem === true) { switch (settings.horizontalBrandItemAlign) { case 'left': elm.removeClass('pcoded-right-align'); elm.addClass('pcoded-left-align'); break; case 'right': elm.removeClass('pcoded-left-align'); elm.addClass('pcoded-right-align'); break; default: } } else { elm.hide(); } }; function leftitemalignment() { var elm = $('#' + oid + '.pcoded .pcoded-navbar .pcoded-item.pcoded-left-item'); if (settings.horizontalLeftNavItem === true) { switch (settings.horizontalLeftNavItemAlign) { case 'left': elm.removeClass('pcoded-right-align'); elm.addClass('pcoded-left-align'); break; case 'right': elm.removeClass('pcoded-left-align'); elm.addClass('pcoded-right-align'); break; default: } } else { elm.hide(); } }; function rightitemalignment() { var elm = $('#' + oid + '.pcoded .pcoded-navbar .pcoded-item.pcoded-right-item'); if (settings.horizontalRightItem === true) { switch (settings.horizontalRightItemAlign) { case 'left': elm.removeClass('pcoded-right-align'); elm.addClass('pcoded-left-align'); break; case 'right': elm.removeClass('pcoded-left-align'); elm.addClass('pcoded-right-align'); break; default: } } else { elm.hide(); } }; function searchitemalignment() { var elm = $('#' + oid + '.pcoded .pcoded-navbar .pcoded-search-item'); if (settings.horizontalSearchItem === true) { switch (settings.horizontalsearchItemAlign) { case 'left': elm.removeClass('pcoded-right-align'); elm.addClass('pcoded-left-align'); break; case 'right': elm.removeClass('pcoded-left-align'); elm.addClass('pcoded-right-align'); break; default: } } else { elm.hide(); } }; if (settings.horizontalNavIsCentered === false) { branditemalignment(); leftitemalignment(); rightitemalignment(); searchitemalignment(); } } }, HandleVerticalNavigationView: function() { switch (settings.themelayout) { case 'vertical': var ev = settings.VerticalNavigationView; $('#' + oid + '.pcoded').attr("vnavigation-view", ev); break; case 'horizontal': var ev = settings.horizontalNavigationView; $('#' + oid + '.pcoded').attr("hnavigation-view", ev); break; default: } }, HandleVerticalSubMenuItemIconStyle: function() { switch (settings.themelayout) { case 'vertical': var ev = settings.VerticalSubMenuItemIconStyle; $('#' + oid + ' .pcoded-navbar .pcoded-hasmenu').attr("subitem-icon", ev); break; case 'horizontal': $('#' + oid + ' .pcoded-navbar .pcoded-hasmenu').attr("subitem-icon", ev); break; default: } }, HandleNavbarPosition: function() { var navposition = settings.FixedNavbarPosition; var headerposition = settings.FixedHeaderPosition; var rheaderposition = settings.FixedRightHeaderPosition; switch (settings.themelayout) { case 'vertical': if (navposition == true) { $('#' + oid + ' .pcoded-navbar').attr("pcoded-navbar-position", 'fixed'); $('#' + oid + ' .pcoded-header .pcoded-left-header').attr("pcoded-lheader-position", 'fixed'); } else { $('#' + oid + ' .pcoded-navbar').attr("pcoded-navbar-position", 'absolute'); $('#' + oid + ' .pcoded-header .pcoded-left-header').attr("pcoded-lheader-position", 'absolute'); } if (headerposition == true) { $('#' + oid + ' .pcoded-header').attr("pcoded-header-position", 'fixed'); $('#' + oid + ' .pcoded-main-container').css('margin-top', $(".pcoded-header").outerHeight()); } else { $('#' + oid + ' .pcoded-header').attr("pcoded-header-position", 'relative'); $('#' + oid + ' .pcoded-main-container').css('margin-top', '0px'); } break; case 'horizontal': if (navposition == true) { $('#' + oid + ' .pcoded-navbar').attr("pcoded-navbar-position", 'fixed'); $('#' + oid + ' .pcoded-header .pcoded-left-header').attr("pcoded-lheader-position", 'fixed'); } else { $('#' + oid + ' .pcoded-navbar').attr("pcoded-navbar-position", 'absolute'); $('#' + oid + ' .pcoded-header .pcoded-left-header').attr("pcoded-lheader-position", 'absolute'); } if (headerposition == true) { $('#' + oid + ' .pcoded-header').attr("pcoded-header-position", 'fixed'); $('#' + oid + ' .pcoded-main-container').css('margin-top', $(".pcoded-header").outerHeight()); } else { $('#' + oid + ' .pcoded-header').attr("pcoded-header-position", 'relative'); $('#' + oid + ' .pcoded-main-container').css('margin-top', '0px'); } break; default: } }, HandleOptionSelectorPanel: function() { $('.selector-toggle > a').on("click", function() { //debugger; $('#styleSelector').toggleClass('open') }); }, HandleDropDownIconStyle: function() { var ev = settings.DropDownIconStyle; switch (settings.themelayout) { case 'vertical': $('#' + oid + ' .pcoded-navbar .pcoded-hasmenu').attr("dropdown-icon", ev); break; case 'horizontal': $('#' + oid + ' .pcoded-navbar .pcoded-hasmenu').attr("dropdown-icon", ev); break; default: } }, HandleSubItemBorder: function() { switch (settings.SubItemBorder) { case true: $('#' + oid + ' .pcoded-navbar .pcoded-item').attr("subitem-border", "true"); break; case false: $('#' + oid + ' .pcoded-navbar .pcoded-item').attr("subitem-border", "false"); break; default: } }, HandleBorderStyle: function() { var ev = settings.ItemBorderStyle; switch (settings.ItemBorder) { case true: $('#' + oid + ' .pcoded-navbar .pcoded-item').attr("item-border-style", ev); break; case false: $('#' + oid + ' .pcoded-navbar .pcoded-item').attr("item-border-style", ""); break; default: } }, HandleItemBorder: function() { switch (settings.ItemBorder) { case true: $('#' + oid + ' .pcoded-navbar .pcoded-item').attr("item-border", "true"); break; case false: $('#' + oid + ' .pcoded-navbar .pcoded-item').attr("item-border", "false"); break; default: } }, HandleActiveItemStyle: function() { var ev = settings.ActiveItemStyle; if (ev != undefined && ev != "") { $('#' + oid + ' .pcoded-navbar').attr("active-item-style", ev); } else { $('#' + oid + ' .pcoded-navbar').attr("active-item-style", "style0"); } }, Handlemenutype: function() { var ev = settings.menutype; var ef = settings.freamtype; var nimg = settings.NavbarImage; var img = settings.ActiveNavbarImage; if (ev != undefined && ev != "") { $('#' + oid).attr("nav-type", ev); } else { $('#' + oid).attr("nav-type", "st1"); } if (ef != undefined && ef != "") { $('#' + oid).attr("fream-type", ef); } else { $('#' + oid).attr("fream-type", "theme1"); } if (nimg != undefined && nimg != "") { $('#' + oid).attr("sidebar-img", nimg); } else { $('#' + oid).attr("sidebar-img", "false"); } if (img != undefined && img != "") { $('#' + oid).attr("sidebar-img-type", img); } else { $('#' + oid).attr("sidebar-img-type", "img1"); } }, Handlelayoutvartype: function() { var ev = settings.layouttype; if (ev != undefined && ev != "") { $('#' + oid).attr("layout-type", ev); } else { $('#' + oid).attr("layout-type", "light"); } }, HandleThemeBackground: function() { function themebackgroundpattern() { var ev = settings.ThemeBackgroundPattern; if (ev != undefined && ev != "") { $('body').attr("themebg-pattern", ev); } else { $('body').attr("themebg-pattern", "pattern1"); } }; function setheadertheme() { var ev = settings.HeaderBackground; if (ev != undefined && ev != "") { $('#' + oid + ' .pcoded-header').attr("header-theme", ev); } else { $('#' + oid + ' .pcoded-header').attr("header-theme", "theme1"); } }; function setlheadertheme() { var ev = settings.LHeaderBackground; if (ev != undefined && ev != "") { $('#' + oid + ' .pcoded-header .navbar-logo').attr("logo-theme", ev); $('#' + oid + ' .pcoded-navigatio-lavel').attr("menu-title-theme", "theme5"); } else { $('#' + oid + ' .pcoded-header .navbar-logo').attr("logo-theme", "theme4"); $('#' + oid + ' .pcoded-navigatio-lavel').attr("menu-title-theme", "theme5"); } }; function setnavbartheme() { var ev = settings.NavbarBackground; if (ev != undefined && ev != "") { $('#' + oid + ' .pcoded-navbar').attr("navbar-theme", ev); } else { $('#' + oid + ' .pcoded-navbar').attr("navbar-theme", "theme1"); } }; function setactiveitemtheme() { var ev = settings.ActiveItemBackground; if (ev != undefined && ev != "") { $('#' + oid + ' .pcoded-navbar').attr("active-item-theme", ev); } else { $('#' + oid + ' .pcoded-navbar').attr("active-item-theme", "theme1"); } }; function setsubitemtheme() { var ev = settings.SubItemBackground; if (ev != undefined && ev != "") { $('#' + oid + ' .pcoded-navbar').attr("sub-item-theme", ev); } else { $('#' + oid + ' .pcoded-navbar').attr("sub-item-theme", "theme1"); } }; themebackgroundpattern(); setheadertheme(); setlheadertheme(); setnavbartheme(); setactiveitemtheme(); setsubitemtheme(); }, HandleVerticalLeftHeader: function() { if (settings.themelayout === "vertical") { switch (settings.collapseVerticalLeftHeader) { case true: $('#' + oid + ' .pcoded-header').addClass('iscollapsed'); $('#' + oid + ' .pcoded-header').removeClass('nocollapsed'); $('#' + oid + '.pcoded').addClass('iscollapsed'); $('#' + oid + '.pcoded').removeClass('nocollapsed'); /* $('#'+oid + ' .pcoded-header.nocollapsed .pcoded-left-header').css('width', ''); */ break; case false: $('#' + oid + ' .pcoded-header').removeClass('iscollapsed'); $('#' + oid + ' .pcoded-header').addClass('nocollapsed'); $('#' + oid + '.pcoded').removeClass('iscollapsed'); $('#' + oid + '.pcoded').addClass('nocollapsed'); /* $('#'+oid + ' .pcoded-header.nocollapsed .pcoded-left-header').css('width', $(".pcoded-navbar").width()); */ break; default: } } else { return false; } }, HandleOffcanvasMenu: function() { if (settings.themelayout === "vertical") { var vnt = $('#' + oid).attr("vertical-nav-type"); if (vnt == "offcanvas") { $('#' + oid).attr("vertical-layout", "wide"); } } }, HandleActiveItem: function() { /*switch(settings.activeMenuClass){ case "active": $('li:not("li.pcoded-hasmenu")').on( 'click', function () { var str = $(this).closest('.pcoded-submenu').length; if (str === 0){ $(this).closest('.pcoded-inner-navbar').find('li.active').removeClass('active'); $(this).addClass('active'); }else{ if($(this).hasClass('active')){ $(this).removeClass('active'); }else{ $(this).closest('.pcoded-inner-navbar').find('li.active').removeClass('active'); $(this).parents('.pcoded-hasmenu').addClass('active'); $(this).addClass('active'); } } }); break; case false: $('.pcoded-header').removeClass(settings.navbbgclass); break; default: }*/ }, HandleSubMenuTrigger: function() { switch (settings.SubMenuTrigger) { case 'hover': $('#' + oid + ' .pcoded-navbar .pcoded-hasmenu').addClass('is-hover'); // Initialize var $window = $(window); var $dropdown = $('.pcoded-submenu > li'); var currentSize = $window.width(); var currentEvent = ''; // Attach current event on load (currentSize >= 767) ? bindTwo('hover'): bindTwo('click'); // Atach window resize event $window.resize(function() { // get windows new size var newSize = $window.width(); // Exit if size is same if (currentSize == newSize) { return; } // Check if size changed, if its greater/smaller and which current event is attached so we dont attach multiple events if (newSize >= 767 && currentEvent != 'hover') { bindTwo('hover'); } else if (newSize < 767 && currentEvent != 'click') { bindTwo('click'); } // Update new size currentSize = newSize; }); function bindTwo(eventType) { if (eventType == 'hover') { // Update currentEvent currentEvent = eventType; // Make sure all previous events are removed and attach hover $dropdown.off('click').off('mouseenter mouseleave').hover( function() { $(this).addClass('pcoded-trigger'); }, function() { $(this).removeClass('pcoded-trigger'); } ); } else if (eventType == 'click') { // Update currentEvent currentEvent = eventType; // Make sure all previous events are removed and attach hover $dropdown.off('mouseenter mouseleave').off('click').on('click', function(e) { e.stopPropagation(); var str = $(this).closest('.pcoded-submenu').length; if (str === 0) { if ($(this).hasClass('pcoded-trigger')) { $(this).removeClass('pcoded-trigger'); } else { $(this).closest('.pcoded-inner-navbar').find('li.pcoded-trigger').removeClass('pcoded-trigger'); $(this).addClass('pcoded-trigger'); } } else { if ($(this).hasClass('pcoded-trigger')) { $(this).removeClass('pcoded-trigger'); } else { $(this).closest('.pcoded-submenu').find('li.pcoded-trigger').removeClass('pcoded-trigger'); $(this).addClass('pcoded-trigger'); } } } ); } } break; case 'click': $('#' + oid + ' .pcoded-navbar .pcoded-hasmenu').removeClass('is-hover'); $(".pcoded-submenu > li").on('click', function(e) { e.stopPropagation(); var str = $(this).closest('.pcoded-submenu').length; if (str === 0) { if ($(this).hasClass('pcoded-trigger')) { $(this).removeClass('pcoded-trigger'); } else { $(this).closest('.pcoded-inner-navbar').find('li.pcoded-trigger').removeClass('pcoded-trigger'); $(this).addClass('pcoded-trigger'); } } else { if ($(this).hasClass('pcoded-trigger')) { $(this).removeClass('pcoded-trigger'); } else { $(this).closest('.pcoded-submenu').find('li.pcoded-trigger').removeClass('pcoded-trigger'); $(this).addClass('pcoded-trigger'); } } }); break; } }, HandleMenuTrigger: function() { switch (settings.MenuTrigger) { case 'hover': $('#' + oid + ' .pcoded-navbar').addClass('is-hover'); // Initialize var $window = $(window); var $dropdown = $(".pcoded-item > li"); var currentSize = $window.width(); var currentEvent = ''; // Attach current event on load (currentSize >= 767) ? bindOne('hover'): bindOne('click'); // Atach window resize event $window.resize(function() { // get windows new size var newSize = $window.width(); // Exit if size is same if (currentSize == newSize) { return; } // Check if size changed, if its greater/smaller and which current event is attached so we dont attach multiple events if (newSize >= 767 && currentEvent != 'hover') { bindOne('hover'); } else if (newSize < 767 && currentEvent != 'click') { bindOne('click'); } // Update new size currentSize = newSize; }); function bindOne(eventType) { if (eventType == 'hover') { // Update currentEvent currentEvent = eventType; // Make sure all previous events are removed and attach hover $dropdown.off('click').off('mouseenter mouseleave').hover( function() { $(this).addClass('pcoded-trigger'); }, function() { $(this).removeClass('pcoded-trigger'); } ); } else if (eventType == 'click') { // Update currentEvent currentEvent = eventType; // Make sure all previous events are removed and attach hover $dropdown.off('mouseenter mouseleave').off('click').on('click', function() { if ($(this).hasClass('pcoded-trigger')) { $(this).removeClass('pcoded-trigger'); } else { $(this).closest('.pcoded-inner-navbar').find('li.pcoded-trigger').removeClass('pcoded-trigger'); $(this).addClass('pcoded-trigger'); } } ); } } break; case 'click': $('#' + oid + ' .pcoded-navbar').removeClass('is-hover'); $(".pcoded-item > li ").on('click', function() { if ($(this).hasClass('pcoded-trigger')) { $(this).removeClass('pcoded-trigger'); } else { $(this).closest('.pcoded-inner-navbar').find('li.pcoded-trigger').removeClass('pcoded-trigger'); $(this).addClass('pcoded-trigger'); } }); break; } }, HandleMenuOnClick: function() { var totalwidth = $(window)[0].innerWidth; if (settings.themelayout === "vertical") { $('#mobile-collapse,.sidebar_toggle a, .pcoded-overlay-box,.menu-toggle a').on("click", function() { $(this).parent().find('.menu-icon').toggleClass("is-clicked"); var dt = $('#' + oid).attr("pcoded-device-type"); if (dt == "desktop") { var dmc = settings.onToggleVerticalMenu.desktop; var dm = settings.defaultVerticalMenu.desktop; var dn = $('#' + oid).attr("vertical-nav-type"); if (dn == dm) { $('#' + oid).attr("vertical-nav-type", dmc); } else if (dn == dmc) { $('#' + oid).attr("vertical-nav-type", dm); } else { return false; } } else if (dt == "tablet") { var tmc = settings.onToggleVerticalMenu.tablet; var tm = settings.defaultVerticalMenu.tablet; var tn = $('#' + oid).attr("vertical-nav-type"); if (tn == tm) { $('#' + oid).attr("vertical-nav-type", tmc); } else if (dn == dmc) { $('#' + oid).attr("vertical-nav-type", tm); } } else if (dt == "phone") { var pmc = settings.onToggleVerticalMenu.phone; var pm = settings.defaultVerticalMenu.phone; var pn = $('#' + oid).attr("vertical-nav-type"); if (pn == pm) { $('#' + oid).attr("vertical-nav-type", pmc); } else if (dn == dmc) { $('#' + oid).attr("vertical-nav-type", pm); } } $('.pcoded').addClass("pcoded-toggle-animate"); setTimeout(function() { $('.pcoded').removeClass("pcoded-toggle-animate"); }, 250); }); } else if (settings.themelayout === "horizontal") { if (totalwidth >= 768 && totalwidth <= 992) { $('#' + oid).attr("pcoded-device-type", "tablet"); } else if (totalwidth < 768) { $('#' + oid).attr("pcoded-device-type", "phone"); } else { $('#' + oid).attr("pcoded-device-type", "desktop"); } } }, Handlecomponetheight: function() { function setHeight() { var WH = $(window).height(); var HH = $(".pcoded-header").innerHeight(); var NH = $(".pcoded-navbar").innerHeight(); var FH = $(".pcoded-footer").innerHeight(); var contentHH = WH - HH; var contentVH = WH - HH; var lpanelH = WH - HH; // if (settings.themelayout === "horizontal" ) { // $(".pcoded-navbar").css('height', contentHH); // } else if (settings.themelayout === "vertical" ) { // if ( contentVH >= lpanelH ){ // $(".pcoded-navbar").css('height', contentVH); // }else { // $(".pcoded-navbar").css('height', lpanelH); // } // } else { // return false; // } }; setHeight(); $(window).resize(function() { setHeight(); }); }, HandleDeviceType: function() { function devicesize() { var totalwidth = $(window)[0].innerWidth; if (settings.themelayout === "vertical") { if (totalwidth >= 768 && totalwidth <= 992) { $('#' + oid).attr("pcoded-device-type", "tablet"); var value = settings.defaultVerticalMenu.tablet; if (value != undefined && value != "") { $('#' + oid).attr("vertical-nav-type", value); } else { $('#' + oid).attr("vertical-nav-type", "collapsed"); } var ev = settings.verticalMenueffect.tablet; if (ev != undefined && value != "") { $('#' + oid).attr("vertical-effect", ev); } else { $('#' + oid).attr("vertical-effect", "shrink"); } } else if (totalwidth < 768) { $('#' + oid).attr("pcoded-device-type", "phone"); var value = settings.defaultVerticalMenu.phone; if (value != undefined && value != "") { $('#' + oid).attr("vertical-nav-type", value); } else { $('#' + oid).attr("vertical-nav-type", "offcanvas"); } var ev = settings.verticalMenueffect.phone; if (ev != undefined && value != "") { $('#' + oid).attr("vertical-effect", ev); } else { $('#' + oid).attr("vertical-effect", "push"); } } else { $('#' + oid).attr("pcoded-device-type", "desktop"); var value = settings.defaultVerticalMenu.desktop; if (value != undefined && value != "") { $('#' + oid).attr("vertical-nav-type", value); } else { $('#' + oid).attr("vertical-nav-type", "expanded"); } var ev = settings.verticalMenueffect.desktop; if (ev != undefined && value != "") { $('#' + oid).attr("vertical-effect", ev); } else { $('#' + oid).attr("vertical-effect", "shrink"); } } } else if (settings.themelayout === "horizontal") { if (totalwidth >= 768 && totalwidth <= 992) { $('#' + oid).attr("pcoded-device-type", "tablet"); } else if (totalwidth < 768) { $('#' + oid).attr("pcoded-device-type", "phone"); } else { $('#' + oid).attr("pcoded-device-type", "desktop"); } } }; devicesize(); $(window).resize(function() { tw = $(window)[0].innerWidth; dt = $('#' + oid).attr('pcoded-device-type') if (dt == 'desktop' && tw < 992) { devicesize(); } else if (dt == 'phone' && tw > 768) { devicesize(); } else if (dt == 'tablet' && tw < 768) { devicesize(); } else if (dt == 'tablet' && tw > 992) { devicesize(); } }); }, HandleMenulayout: function() { if (settings.themelayout === "vertical") { switch (settings.verticalMenulayout) { case 'wide': $('#' + oid).attr("vertical-layout", "wide"); break; case 'box': $('#' + oid).attr("vertical-layout", "box"); break; case 'widebox': $('#' + oid).attr("vertical-layout", "widebox"); break; default: } } else if (settings.themelayout === "horizontal") { switch (settings.horizontalMenulayout) { case 'wide': $('#' + oid).attr("horizontal-layout", "wide"); break; case 'box': $('#' + oid).attr("horizontal-layout", "box"); break; case 'widebox': $('#' + oid).attr("horizontal-layout", "widebox"); break; default: } } else { return false; } }, HandlehorizontalMenuplacement: function() { if (settings.themelayout === "horizontal") { switch (settings.horizontalMenuplacement) { case 'bottom': $('#' + oid).attr("horizontal-placement", "bottom"); break; case 'top': $('#' + oid).attr("horizontal-placement", "top"); break; default: } } else { $('#' + oid).removeAttr("horizontal-placement"); } }, HandleverticalMenuplacement: function() { if (settings.themelayout === "vertical") { switch (settings.verticalMenuplacement) { case 'left': $('#' + oid).attr("vertical-placement", "left"); break; case 'right': $('#' + oid).attr("vertical-placement", "right"); break; default: } } else { $('#' + oid).removeAttr("vertical-placement"); } }, Handlethemelayout: function() { switch (settings.themelayout) { case 'horizontal': $('#' + oid).attr("theme-layout", "horizontal"); break; case 'vertical': $('#' + oid).attr("theme-layout", "vertical"); break; default: } }, }; PcodedMenu.PcodedMenuInit(); }; // menu [ vertical ] $(window).scroll(function() { if ($(this).scrollTop() > 80) { $('.pcoded[theme-layout="vertical"] .pcoded-navbar[pcoded-navbar-position="fixed"][pcoded-header-position="relative"]').css('position', 'fixed'); $('.pcoded[theme-layout="vertical"] .pcoded-navbar[pcoded-navbar-position="fixed"][pcoded-header-position="relative"]').css('top', 0); } else { $('.pcoded[theme-layout="vertical"] .pcoded-navbar[pcoded-navbar-position="fixed"][pcoded-header-position="relative"]').css('position', 'absolute'); $('.pcoded[theme-layout="vertical"] .pcoded-navbar[pcoded-navbar-position="fixed"][pcoded-header-position="relative"]').css('top', 'auto'); } }); // menu [ horizontal ] $(window).scroll(function() { if ($(this).scrollTop() > 80) { $('.pcoded[theme-layout="horizontal"][pcoded-device-type="desktop"] .pcoded-navbar[pcoded-navbar-position="fixed"][pcoded-header-position="relative"]').css('position', 'fixed'); $('.pcoded[theme-layout="horizontal"][pcoded-device-type="desktop"] .pcoded-navbar[pcoded-navbar-position="fixed"][pcoded-header-position="relative"]').css('top', 0); } else { $('.pcoded[theme-layout="horizontal"][pcoded-device-type="desktop"] .pcoded-navbar[pcoded-navbar-position="fixed"][pcoded-header-position="relative"]').css('position', 'absolute'); $('.pcoded[theme-layout="horizontal"][pcoded-device-type="desktop"] .pcoded-navbar[pcoded-navbar-position="fixed"][pcoded-header-position="relative"]').css('top', 'auto'); } });