/* global redux */ (function( $ ) { 'use strict'; $.redux = $.redux || {}; $.redux.tabCheck = function() { var link; var tab; var sTab; var cookieName; var opt_name; $( '.redux-group-tab-link-a' ).on( 'click', function() { var elements; var index; var el; var relid; var oldid; var cookieName; var boxIndex; var parentID; var newParent; link = $( this ); if ( link.parent().hasClass( 'empty_section' ) && link.parent().hasClass( 'hasSubSections' ) ) { elements = $( this ).closest( 'ul' ).find( '.redux-group-tab-link-a' ); index = elements.index( this ); link = elements.slice( index + 1, index + 2 ); } el = link.parents( '.redux-container:first' ); relid = link.data( 'rel' ); // The group ID of interest. oldid = el.find( '.redux-group-tab-link-li.active:first .redux-group-tab-link-a' ).data( 'rel' ); opt_name = $.redux.getOptName( el ); if ( oldid === relid ) { return; } cookieName = ''; if ( ! link.parents( '.postbox-container:first' ).length ) { $( '#currentSection' ).val( relid ); cookieName = 'redux_current_tab_' + redux.optName.args.opt_name; } else { el.prev( '#currentSection' ).val( relid ); boxIndex = el.data( 'index' ); if ( '' !== boxIndex ) { cookieName = 'redux_metabox_' + boxIndex + '_current_tab_' + redux.optName.args.opt_name; } } // Set the proper page cookie. $.cookie( cookieName, relid, { expires: 7, path: '/' } ); if ( el.find( '#' + relid + '_section_group_li' ).parents( '.redux-group-tab-link-li' ).length ) { parentID = el.find( '#' + relid + '_section_group_li' ).parents( '.redux-group-tab-link-li' ).attr( 'id' ).split( '_' ); parentID = parentID[0]; } el.find( '#toplevel_page_' + redux.optName.args.slug + ' .wp-submenu a.current' ).removeClass( 'current' ); el.find( '#toplevel_page_' + redux.optName.args.slug + ' .wp-submenu li.current' ).removeClass( 'current' ); el.find( '#toplevel_page_' + redux.optName.args.slug + ' .wp-submenu a' ).each( function() { var url = $( this ).attr( 'href' ).split( '&tab=' ); if ( url[1] === relid || url[1] === parentID ) { $( this ).addClass( 'current' ); $( this ).parent().addClass( 'current' ); } } ); if ( el.find( '#' + oldid + '_section_group_li' ).find( '#' + oldid + '_section_group_li' ).length ) { el.find( '#' + oldid + '_section_group_li' ).addClass( 'activeChild' ); el.find( '#' + relid + '_section_group_li' ).addClass( 'active' ).removeClass( 'activeChild' ); } else if ( el.find( '#' + relid + '_section_group_li' ).parents( '#' + oldid + '_section_group_li' ).length || el.find( '#' + oldid + '_section_group_li' ).parents( 'ul.subsection' ).find( '#' + relid + '_section_group_li' ).length ) { if ( el.find( '#' + relid + '_section_group_li' ).parents( '#' + oldid + '_section_group_li' ).length ) { el.find( '#' + oldid + '_section_group_li' ).addClass( 'activeChild' ).removeClass( 'active' ); } else { el.find( '#' + relid + '_section_group_li' ).addClass( 'active' ); el.find( '#' + oldid + '_section_group_li' ).removeClass( 'active' ); } el.find( '#' + relid + '_section_group_li' ).removeClass( 'activeChild' ).addClass( 'active' ); } else { setTimeout( function() { el.find( '#' + relid + '_section_group_li' ).addClass( 'active' ).removeClass( 'activeChild' ).find( 'ul.subsection' ).slideDown(); }, 1 ); if ( el.find( '#' + oldid + '_section_group_li' ).find( 'ul.subsection' ).length ) { el.find( '#' + oldid + '_section_group_li' ).find( 'ul.subsection' ).slideUp( 'fast', function() { el.find( '#' + oldid + '_section_group_li' ).removeClass( 'active' ).removeClass( 'activeChild' ); } ); newParent = el.find( '#' + relid + '_section_group_li' ).parents( '.hasSubSections:first' ); if ( newParent.length > 0 ) { el.find( '#' + relid + '_section_group_li' ).removeClass( 'active' ); relid = newParent.find( '.redux-group-tab-link-a:first' ).data( 'rel' ); if ( newParent.hasClass( 'empty_section' ) ) { newParent.find( '.subsection li:first' ).addClass( 'active' ); el.find( '#' + relid + '_section_group_li' ).removeClass( 'active' ).addClass( 'activeChild' ).find( 'ul.subsection' ).slideDown(); newParent = newParent.find( '.subsection li:first' ); relid = newParent.find( '.redux-group-tab-link-a:first' ).data( 'rel' ); } else { el.find( '#' + relid + '_section_group_li' ).addClass( 'active' ).removeClass( 'activeChild' ).find( 'ul.subsection' ).slideDown(); } } } else if ( el.find( '#' + oldid + '_section_group_li' ).parents( 'ul.subsection' ).length ) { if ( ! el.find( '#' + oldid + '_section_group_li' ).parents( '#' + relid + '_section_group_li' ).length ) { el.find( '#' + oldid + '_section_group_li' ).parents( 'ul.subsection' ).slideUp( 'fast', function() { el.find( '#' + oldid + '_section_group_li' ).removeClass( 'active' ); el.find( '#' + oldid + '_section_group_li' ).parents( '.redux-group-tab-link-li' ).removeClass( 'active' ).removeClass( 'activeChild' ); el.find( '#' + relid + '_section_group_li' ).parents( '.redux-group-tab-link-li' ).addClass( 'activeChild' ).find( 'ul.subsection' ).slideDown(); el.find( '#' + relid + '_section_group_li' ).addClass( 'active' ); } ); } else { el.find( '#' + oldid + '_section_group_li' ).removeClass( 'active' ); } } else { el.find( '#' + oldid + '_section_group_li' ).removeClass( 'active' ); if ( el.find( '#' + relid + '_section_group_li' ).parents( '.redux-group-tab-link-li' ).length ) { setTimeout( function() { el.find( '#' + relid + '_section_group_li' ).parents( '.redux-group-tab-link-li' ).addClass( 'activeChild' ).find( 'ul.subsection' ).slideDown(); }, 50 ); el.find( '#' + relid + '_section_group_li' ).addClass( 'active' ); } } } // Show the group. el.find( '#' + oldid + '_section_group' ).hide(); el.find( '#' + relid + '_section_group' ).fadeIn( 200, function() { if ( 0 !== el.find( '#redux-footer' ).length ) { $.redux.stickyInfo(); // Race condition fix. } $.redux.initFields(); } ); $( '#toplevel_page_' + redux.optName.args.slug ).find( '.current' ).removeClass( 'current' ); } ); if ( undefined !== redux.optName.last_tab ) { $( '#' + redux.optName.last_tab + '_section_group_li_a' ).trigger( 'click' ); return; } tab = decodeURI( ( new RegExp( 'tab=(.+?)(&|$)' ).exec( location.search ) || [''])[1] ); if ( '' !== tab ) { if ( $.cookie( 'redux_current_tab_get' ) !== tab ) { $.cookie( 'redux_current_tab', tab, { expires: 7, path: '/' } ); $.cookie( 'redux_current_tab_get', tab, { expires: 7, path: '/' } ); $.cookie( 'redux_current_tab_' + redux.optName.args.opt_name, tab, { expires: 7, path: '/' } ); $( '#' + tab + '_section_group_li' ).trigger( 'click' ); } } else if ( '' !== $.cookie( 'redux_current_tab_get' ) ) { $.removeCookie( 'redux_current_tab_get' ); } $( '.redux-container' ).each( function() { var boxIndex; if ( ! $( this ).parents( '.postbox-container:first' ).length ) { opt_name = $( '.redux-ajax-security' ).data( 'opt-name' ); cookieName = 'redux_current_tab_' + opt_name; sTab = $( this ).find( '#' + $.cookie( cookieName ) + '_section_group_li_a' ); } else { opt_name = $.redux.getOptName( this ); boxIndex = $( this ).data( 'index' ); if ( '' === boxIndex ) { boxIndex = 0; } cookieName = 'redux_metabox_' + boxIndex + '_current_tab_' + opt_name; sTab = $( this ).find( '#' + $.cookie( cookieName ) + '_section_group_li_a' ); } // Tab the first item or the saved one. if ( null === $.cookie( cookieName ) || 'undefined' === typeof ( $.cookie( cookieName ) ) || 0 === sTab.length ) { $( this ).find( '.redux-group-tab-link-a:first' ).trigger( 'click' ); } else { sTab.trigger( 'click' ); } } ); }; })( jQuery );