(function($) {
bbMegaMenu = {
\!h parent_menu_class : [ "__parent-menu-css-class__", "__accessories__" ],
sub_menu_arrow: '<button class="ast-menu-toggle" role="button" aria-expanded="false"><span class="screen-reader-text">Menu Toggle</span></button>',
sub_menu : '<ul class="sub-menu"><li><div class="fl-builder-content"></div></li></ul>',
init: function()
{
bbMegaMenu._addMegaMenuPanel();
if( $('body').hasClass('fl-builder-edit' ) && FLBuilder !== 'undefined' ) {
FLBuilder.addHook( 'didPublishLayout', bbMegaMenu._addMegaMenuPanel);
FLBuilder.addHook( 'didCancelDiscard', bbMegaMenu._addMegaMenuPanel);
FLBuilder.addHook( 'previewLayout', bbMegaMenu._addMegaMenuPanel);
FLBuilder.addHook( 'restartEditingSession', bbMegaMenu._addMegaMenuPanel);
FLBuilder.addHook( 'endEditingSession', bbMegaMenu._addMegaMenuPanel);
}
},
_addMegaMenuPanel: function()
{
$( bbMegaMenu.parent_menu_class ).each( function( index, value ) {
var parent_li = '.ast-nav-menu > li.' + value,
bb_mega_menu_row = "div." + value + "-sub-menu";
if( $( parent_li ).length > 0 ) {
if( $( parent_li + ' .sub-menu' ).length <= 0 ) {
$( parent_li ).append( bbMegaMenu.sub_menu_arrow );
$( parent_li ).append( bbMegaMenu.sub_menu );
}
if( ! $('body').hasClass('fl-builder-edit' )
&& $( '.site-main ' + bb_mega_menu_row ).length <= 0
&& $( ".bb-mega-menu-tpl " + bb_mega_menu_row ).length > 0
) {
$( ".bb-mega-menu-tpl " + bb_mega_menu_row ).appendTo( parent_li + ' .sub-menu .fl-builder-content' );
}
if( ! $('body').hasClass('fl-builder-edit' )
&& $( '.site-main ' + bb_mega_menu_row ).length > 0 )
{
$( parent_li + ' .sub-menu .fl-builder-content' ).empty();
var row_clone = $( '.site-main ' + bb_mega_menu_row ).clone();
row_clone.appendTo( parent_li + ' .sub-menu .fl-builder-content' );
}
if( $('body').hasClass('fl-builder-edit' ) && $( '.site-main ' + bb_mega_menu_row ).length > 0 ) {
$( parent_li + ' .sub-menu .fl-builder-content' ).empty();
}
$( parent_li ).addClass( 'has-mega-menu menu-item-has-children' );
}
});
}
};
$(function() {
bbMegaMenu.init();
});
})(jQuery);