(function($){PPAdvancedMenu=function(settings){this.settingsId=settings.id;this.nodeClass='.fl-node-'+settings.id;this.wrapperClass=this.nodeClass+' .pp-advanced-menu';this.type=settings.type;this.mobileToggle=settings.mobile;this.mobileBelowRow='below'===settings.menuPosition;this.breakpoints=settings.breakpoints;this.mobileBreakpoint=settings.mobileBreakpoint;this.mediaBreakpoint=settings.mediaBreakpoint;this.mobileMenuType=settings.mobileMenuType;this.offCanvasDirection=settings.offCanvasDirection;this.postId=settings.postId;this.isBuilderActive=settings.isBuilderActive;this.currentBrowserWidth=window.innerWidth;this.fullScreenMenu=null;this.offCanvasMenu=null;this.$submenus=null;$(this._initMenu.bind(this));$(window).on('resize',function(e){var width=window.innerWidth;if(width!=this.currentBrowserWidth){this._initMenu();this._clickOrHover();this.currentBrowserWidth=width;}}.bind(this));$('body').on('click',function(e){if('undefined'!==typeof FLBuilderConfig){return;} if($(this.wrapperClass).find('.pp-advanced-menu-mobile-toggle').hasClass('pp-active')&&('expanded'!==this.mobileToggle)){if($(e.target).parents('.fl-module-pp-advanced-menu').length>0){return;} if($(e.target).is('input')&&$(e.target).parents('.pp-advanced-menu').length>0){return;} if($(e.target).hasClass('pp-menu-close-btn')){return;} $(this.wrapperClass).find('.pp-advanced-menu-mobile-toggle').trigger('click');} $(this.wrapperClass).find('.pp-has-submenu').removeClass('focus pp-active');$(this.wrapperClass).find('.pp-has-submenu .sub-menu').removeClass('focus');$(this.wrapperClass).find('.pp-has-submenu-container').removeClass('focus');$(this.wrapperClass).find('.pp-menu-toggle').attr('aria-expanded',false);}.bind(this));$(document).on('keyup',function(e){if(27==e.which){$(this.wrapperClass).find('.pp-has-submenu').removeClass('focus pp-active');$(this.wrapperClass).find('.pp-has-submenu .sub-menu').removeClass('focus');$(this.wrapperClass).find('.pp-has-submenu-container').removeClass('focus');$(this.wrapperClass).find('.pp-menu-toggle').attr('aria-expanded',false);if($(this.wrapperClass).find('.pp-menu-toggle.focus').is(':visible')){$(this.wrapperClass).find('.pp-menu-toggle.focus').delay(100).trigger('focus');}}}.bind(this));};PPAdvancedMenu.prototype={nodeClass:'',wrapperClass:'',type:'',breakpoints:{},$submenus:null,fullScreenMenu:null,offCanvasMenu:null,_isMobile:function(){return window.innerWidth<=this.breakpoints.small?true:false;},_isMedium:function(){return window.innerWidth<=this.breakpoints.medium?true:false;},_isLarge:function(){return window.innerWidth<=this.breakpoints.large?true:false;},_isCustom:function(){return window.innerWidth<=this.breakpoints.custom?true:false;},_isTouch:function(){var prefixes=' -webkit- -moz- -o- -ms- '.split(' ');var mq=function(query){return window.matchMedia(query).matches;} if(('ontouchstart'in window)||window.DocumentTouch&&document instanceof DocumentTouch){return true;} var query=['(',prefixes.join('touch-enabled),('),'heartz',')'].join('');return mq(query);},_isMenuToggle:function(){if(('always'==this.mobileBreakpoint||(this._isMobile()&&'mobile'==this.mobileBreakpoint)||(this._isMedium()&&'medium-mobile'==this.mobileBreakpoint)||(this._isCustom()&&'custom'==this.mobileBreakpoint))&&($(this.nodeClass).find('.pp-advanced-menu-mobile-toggle').is(':visible')||'expanded'==this.mobileToggle)){return true;} return false;},_bindSettingsFormEvents:function(){},_initMenu:function(){this._setupSubmenu();this._menuOnFocus();this._submenuOnClick();if($(this.nodeClass).length&&this.type=='horizontal'){this._initMegaMenus();} if(this.type=='horizontal'||this.type=='vertical'){var self=this;$(this.wrapperClass).find('.pp-has-submenu-container').on('click',function(e){if(self.mobileMenuType!=='off-canvas'&&self.mobileMenuType!=='full-screen'){if(self._isTouch()){if(!$(this).hasClass('first-click')){e.preventDefault();$(this).addClass('first-click');}}}});$(this.wrapperClass).find('li.pp-has-submenu a').on('keyup',function(e){if($(e.target).hasClass('pp-menu-toggle')&&!$(this.nodeClass).find('.pp-advanced-menu-mobile-toggle').is(':visible')){if(e.which==1||e.which==13||e.which==undefined){e.preventDefault();e.stopPropagation();$(e.target).parents('li.pp-has-submenu').toggleClass('pp-active');if($(e.target).parents('li.pp-has-submenu').hasClass('pp-active')){$(e.target).attr('aria-expanded',true);}else{$(e.target).attr('aria-expanded',false);}}}}.bind(this));} if(this._isMenuToggle()||this.type=='accordion'){$(this.wrapperClass).off('mouseenter mouseleave');this._menuOnClick();this._clickOrHover();}else{$(this.wrapperClass).off('click');this._submenuOnRight();this._submenuRowZindexFix();} if(this.mobileToggle!='expanded'){this._toggleForMobile();if(this.mobileMenuType==='off-canvas'){this._initOffCanvas();} if(this.mobileMenuType==='full-screen'){this._initFullScreen();}} $(this.wrapperClass).find('li:not(.menu-item-has-children)').on('click','a',function(e){if($(e.target).closest('.pp-menu-search-item').length>0){return;} $(this.nodeClass).find('.pp-advanced-menu').removeClass('menu-open');$(this.nodeClass).find('.pp-advanced-menu').addClass('menu-close');$('html').removeClass('pp-off-canvas-menu-open');$('html').removeClass('pp-full-screen-menu-open');}.bind(this));if($(this.wrapperClass).find('.pp-menu-search-item').length){this._toggleMenuSearch();} if($(this.wrapperClass).find('.pp-menu-cart-item').length){this._wooUpdateParams();}},_setupSubmenu:function(){$(this.wrapperClass+' ul.sub-menu').each(function(){$(this).closest('li').attr('aria-haspopup','true');});},_menuOnFocus:function(){$(this.nodeClass).off('focus').on('focus','a',function(e){var $menuItem=$(e.target).parents('.menu-item').first(),$parents=$(e.target).parentsUntil(this.wrapperClass);$('.pp-advanced-menu .focus:not(.pp-menu-toggle)').removeClass('focus');$menuItem.addClass('focus');$parents.addClass('focus');}.bind(this)).on('focusout','a',function(e){if($('.pp-advanced-menu .focus').hasClass('pp-has-submenu')){$(e.target).parentsUntil(this.wrapperClass).find('.pp-has-submenu-container').removeClass('first-click');}}.bind(this));$(this.nodeClass).off('focus','.pp-menu-toggle').on('focus','.pp-menu-toggle',function(e){$(e.target).addClass('focus');}.bind(this)).off('blur','.pp-menu-toggle').on('blur','.pp-menu-toggle',function(e){if($(e.target).parents('li.pp-has-submenu.pp-active').length===0||$(e.target).parents('li.pp-has-submenu.pp-active').parent('ul.menu').length===0){$(e.target).removeClass('focus');}}.bind(this));},_menuOnClick:function(){var self=this;var $mainItem='';$(this.wrapperClass).off().on('click.pp-advanced-menu keyup','.pp-has-submenu-container',function(e){var isValidEvent=e.which==1||e.which==13||e.which==undefined;if(!isValidEvent){return;} if(e.which==13&&!$(e.target).hasClass('pp-menu-toggle')){return;} if(self._isTouch()){if(!$(this).hasClass('first-click')){e.preventDefault();$(this).addClass('first-click');}} e.stopPropagation();var isMainEl=$(e.target).parents('.menu-item').parent().parent().hasClass('pp-advanced-menu');if(isMainEl&&$mainItem===''){$mainItem=$(e.target).parents('.menu-item');} var $link=$(e.target).parents('.pp-has-submenu').first(),$subMenu=$link.children('.sub-menu').first(),$href=$link.children('.pp-has-submenu-container').first().find('> a').attr('href'),$subMenuParents=$(e.target).parents('.sub-menu'),$activeParent=$(e.target).closest('.pp-has-submenu.pp-active');if($activeParent.length>0){$activeParent.find('.pp-menu-toggle').first().attr('aria-expanded',true);}else{$activeParent.find('.pp-menu-toggle').first().attr('aria-expanded',false);} if(!$subMenu.is(':visible')||$(e.target).hasClass('pp-menu-toggle')||($subMenu.is(':visible')&&(typeof $href==='undefined'||$href=='#'))){if(!$(this.wrapperClass).hasClass('pp-advanced-menu-accordion-collapse')){e.preventDefault();} if($(e.target).hasClass('pp-menu-toggle')){e.stopPropagation();e.preventDefault();}} else{e.stopPropagation();window.location.href=$href;return;} if($(this.wrapperClass).hasClass('pp-advanced-menu-accordion-collapse')){if($link.parents('.menu-item').length&&!$link.parents('.menu-item').hasClass('pp-active')){$('.menu .pp-active',this.wrapperClass).not($link).removeClass('pp-active');} else if($link.parents('.menu-item').hasClass('pp-active')&&$link.parent('.sub-menu').length){$('.menu .pp-active',this.wrapperClass).not($link).not($activeParent).removeClass('pp-active');} $('.sub-menu',this.wrapperClass).not($subMenu).not($subMenuParents).slideUp('normal');} if($(self.wrapperClass).find('.sub-menu:visible').length>0){$(self.wrapperClass).find('.sub-menu:visible').parent().addClass('pp-active');} $subMenu.slideToggle(400,function(){$(e.target).parents('.pp-has-submenu-container').parent().parent().find('> .menu-item.pp-active').removeClass('pp-active');if($mainItem!==''){$mainItem.parent().find('.menu-item.pp-active').removeClass('pp-active');$(self.wrapperClass).find('.sub-menu').parent().removeClass('pp-active');if($(self.wrapperClass).find('.sub-menu:visible').length>0){$(self.wrapperClass).find('.sub-menu:visible').parent().addClass('pp-active');}else{$link.toggleClass('pp-active');$mainItem.removeClass('pp-active');}}else{$link.toggleClass('pp-active');} if(!$subMenu.is(':visible')){$subMenu.parent().removeClass('pp-active');$subMenu.parent().find('> .pp-has-submenu-container .pp-menu-toggle').attr('aria-expanded',false);}else{$subMenu.parent().find('> .pp-has-submenu-container .pp-menu-toggle').attr('aria-expanded',true);}});}.bind(this));},_submenuOnClick:function(){$(this.wrapperClass+' .sub-menu').off().on('click','a',function(e){if($(e.target).parent().hasClass('focus')){$(e.target).parentsUntil(this.wrapperClass).removeClass('focus');}}.bind(this));},_clickOrHover:function(){this.$submenus=this.$submenus||$(this.wrapperClass).find('.sub-menu');var $wrapper=$(this.wrapperClass),$menu=$wrapper.find('.menu');$li=$wrapper.find('.pp-has-submenu');if(this._isMenuToggle()){$li.each(function(){if(!$(this).hasClass('pp-active')){$(this).find('.sub-menu').fadeOut();}});}else{$li.each(function(){if(!$(this).hasClass('pp-active')){$(this).find('.sub-menu').css({'display':'','opacity':''});}});}},_submenuOnRight:function(){$(this.wrapperClass).on('mouseenter focus','.pp-has-submenu',function(e){if($(e.currentTarget).find('.sub-menu').length===0){return;} var $link=$(e.currentTarget),$parent=$link.parent(),$subMenu=$link.find('.sub-menu'),subMenuWidth=$subMenu.width(),subMenuPos=0,winWidth=window.innerWidth;if($link.closest('.pp-menu-submenu-right').length!==0){$link.addClass('pp-menu-submenu-right');}else if($('body').hasClass('rtl')){subMenuPos=$parent.is('.sub-menu')?$parent.offset().left-subMenuWidth:$link.offset().left-subMenuWidth;if(subMenuPos<=0){$link.addClass('pp-menu-submenu-right');}}else{subMenuPos=$parent.is('.sub-menu')?$parent.offset().left+$parent.width()+subMenuWidth:$link.offset().left+subMenuWidth;if(subMenuPos>winWidth){$link.addClass('pp-menu-submenu-right');}}}.bind(this)).on('mouseleave','.pp-has-submenu',function(e){$(e.currentTarget).removeClass('pp-menu-submenu-right');}.bind(this));},_submenuRowZindexFix:function(e){$(this.wrapperClass).on('mouseenter','ul.menu > .pp-has-submenu',function(e){if($(e.currentTarget).find('.sub-menu').length===0){return;} $(this.nodeClass).closest('.fl-row').find('.fl-row-content').css('z-index','10');}.bind(this)).on('mouseleave','ul.menu > .pp-has-submenu',function(e){$(this.nodeClass).closest('.fl-row').find('.fl-row-content').css('z-index','');}.bind(this));},_toggleForMobile:function(){var $wrapper=null,$menu=null,self=this;if(this._isMenuToggle()){if(this._isMobileBelowRowEnabled()){this._placeMobileMenuBelowRow();$wrapper=$(this.wrapperClass);$menu=$(this.nodeClass+'-clone');$menu.find('ul.menu').show();}else{$wrapper=$(this.wrapperClass);$menu=$wrapper.find('.menu');} if(!$wrapper.find('.pp-advanced-menu-mobile-toggle').hasClass('pp-active')&&this.mobileMenuType==='default'){$menu.css({display:'none'});} $wrapper.on('click','.pp-advanced-menu-mobile-toggle',function(e){$(this).toggleClass('pp-active');$menu.slideToggle();e.stopPropagation();});$menu.on('click','.menu-item > a[href*="#"]',function(e){var $href=$(this).attr('href'),$targetID='';if($href!=='#'){$targetID=$href.split('#')[1];if($('body').find('#'+$targetID).length>0){e.preventDefault();$(this).toggleClass('pp-active');setTimeout(function(){$('html, body').animate({scrollTop:$('#'+$targetID).offset().top},1000,function(){window.location.hash=$targetID;});},500);if(!self._isMenuToggle()){$menu.slideToggle();}}}});} else{if(this._isMobileBelowRowEnabled()){this._removeMenuFromBelowRow();} $wrapper=$(this.wrapperClass),$menu=$wrapper.children('.menu');$wrapper.find('.pp-advanced-menu-mobile-toggle').removeClass('pp-active');$menu.css({display:''});}},_initMegaMenus:function(){var module=$(this.nodeClass),rowContent=module.closest('.fl-row-content'),rowWidth=rowContent.width(),rowOffset=rowContent.offset().left,megas=module.find('.mega-menu'),disabled=module.find('.mega-menu-disabled'),isToggle=this._isMenuToggle();if(isToggle){megas.removeClass('mega-menu').addClass('mega-menu-disabled');module.find('li.mega-menu-disabled > ul.sub-menu').css('width','');rowContent.css('position','');}else{disabled.removeClass('mega-menu-disabled').addClass('mega-menu');module.find('li.mega-menu > ul.sub-menu').css('width',rowWidth+'px');rowContent.css('position','relative');}},_initOffCanvas:function(){$('html').addClass('pp-off-canvas-menu-module');$('html').addClass('pp-off-canvas-menu-'+this.offCanvasDirection);if(null===this.offCanvasMenu&&$(this.nodeClass).find('.pp-advanced-menu.off-canvas').length>0){this.offCanvasMenu=$(this.nodeClass).find('.pp-advanced-menu.off-canvas');} if($('#pp-advanced-menu-off-canvas-'+this.settingsId).length===0&&null!==this.offCanvasMenu&&!this.isBuilderActive){this.offCanvasMenu.appendTo('body').wrap('