(function( $ ) { var $html = $( document.documentElement ), $document = $( document ), $window = $( window ), $body = $( document.body ), // Functionalities $aplApplicatorGoCtNav = $html.closest( '.applicator--go-content-nav' ), $aplApplicatorGoStartNav = $html.closest( '.applicator--go-start-nav' ), $aplApplicatorMainSearch = $html.closest( '.applicator--main-search' ), $aplApplicatorSubNav = $html.closest( '.applicator--sub-nav' ), $aplApplicatorMainMenu = $html.closest( '.applicator--main-menu' ), $applicatorComments = $html.closest( '.applicator--comments' ), $applicatorPageNav = $html.closest( '.applicator--page-nav' ), $mainHrAsEnabled = $html.closest( '.main-header-aside--enabled' ), showHideTxtCss = 'show-hide---txt', showHideTxtLabelCss = 'show-hide---l', funcTerm = 'func', tabKeyActCss = 'tab-key--active', tabKeyInactCss = 'tab-key--inactive', $page = $( '#page' ), pageHeight, $webProductContainer = $page.find( '.wbp---cr' ), $webProductCopyright = $( '#copyright' ), copyrightHeight = $webProductCopyright.height(), pageShortCss = 'page--short', pageLongCss = 'page--long', $goContentNav = $( '#go-content-nav' ), $aplWildcard = $( '#applicator-wildcard' ), $aplWildcardCr = $aplWildcard.find( '.applicator-wildcard---cr' ), overlayTerm = 'overlay', overlayMu; /* ------------------------- Overlay ------------------------- */ function overlayActivate( funcName ) { overlayMu = $( '
', { 'class': overlayTerm + ' ' + overlayTerm + '--' + funcName, 'role' : 'presentation' } ); $aplWildcardCr.append( overlayMu ); }; // ------------------------- Go to Content Nav function initGoContentNav( $cp ) { if ( ! $aplApplicatorGoCtNav.length ) { return; } funcName = 'go-content-nav-func'; $cp .addClass( funcName ) .addClass( funcTerm ); overlayActivate( funcName ); var $goCtNaviA = $( '#go-ct-navi---a' ), goCtNavActCss = 'go-content-nav--active', goCtNavInactCss = 'go-content-nav--inactive', aplGoCtNavActCss = 'applicator--go-content-nav--active', aplGoCtNavInactCss = 'applicator--go-content-nav--inactive'; function goCtNavActivate() { $cp .addClass( goCtNavActCss ) .removeClass( goCtNavInactCss ); $html .addClass( aplGoCtNavActCss ) .removeClass( aplGoCtNavInactCss ); } function goCtNavDeactivate() { $cp .addClass( goCtNavInactCss ) .removeClass( goCtNavActCss ); $html .addClass( aplGoCtNavInactCss ) .removeClass( aplGoCtNavActCss ); } // Initiate goCtNavDeactivate(); // Focus In > Activate $goCtNaviA.on( 'focusin.applicator', function() { goCtNavActivate(); } ); // Focus Out > Deactivate $goCtNaviA.on( 'focusout.applicator', function() { goCtNavDeactivate(); } ); // Deactivate via keyboard ESC key $window.load( function() { $document.on( 'keyup.applicator', function ( e ) { if ( $cp.hasClass( goCtNavActCss ) && e.keyCode == 27 ) { goCtNavDeactivate(); } } ); } ); } // Go to Content Nav initGoContentNav( $( '#go-content-nav' ) ); // ------------------------- Go to Start Nav function initGoStartNav( $cp ) { if ( ! $aplApplicatorGoStartNav.length ) { return; } funcName = 'go-start-nav-func'; $cp .addClass( funcName ) .addClass( funcTerm ); var $goStartNaviA = $( '#go-start-navi---a' ), goStartNavActCss = 'go-start-nav--active', goStartNavInactCss = 'go-start-nav--inactive', aplgoStartNavActCss = 'applicator--go-start-nav--active', aplgoStartNavInactCss = 'applicator--go-start-nav--inactive', $goStartNavArrowIco = aplDataGoStartNav.goStartNavArrowIco, $colophonHeight = $('#main-footer').height(), bodyOffsetCriteriaHeight, bodyOffsetHeight; function goStartNavActivate() { $cp .addClass( goStartNavActCss ) .removeClass( goStartNavInactCss ); $html .addClass( aplgoStartNavActCss ) .removeClass( aplgoStartNavInactCss ); } function goStartNavDeactivate() { $cp .addClass( goStartNavInactCss ) .removeClass( goStartNavActCss ); $html .addClass( aplgoStartNavInactCss ) .removeClass( aplgoStartNavActCss ); } // Initiate goStartNavDeactivate(); function goStartNav() { bodyOffsetCriteriaHeight = document.body.offsetHeight / 2; bodyOffsetHeight = document.body.offsetHeight; if ( ( window.innerHeight ) <= ( bodyOffsetCriteriaHeight ) ) { // http://stackoverflow.com/a/40370876 $window.scroll( function( e ) { if ( ( ( window.innerHeight + window.pageYOffset ) >= ( bodyOffsetHeight / 4 ) ) && ( ! window.pageYOffset == 0 ) ) { goStartNavActivate(); } else if ( ( ( window.innerHeight + window.pageYOffset ) < ( bodyOffsetHeight / 4 ) ) || ( window.pageYOffset == 0 ) ) { goStartNavDeactivate(); } } ); } } goStartNav(); new ResizeSensor( $page, function() { goStartNav(); } ); // Smooth Scroll to #start $goStartNaviA.bind( 'click.applicator', function( e ) { e.preventDefault(); var target = $( this ).attr( "href" ); $( 'html, body' ).stop().animate( { scrollTop: $( target ).offset().top }, 1000, 'easeInOutCirc', function() { location.hash = target; } ); return false; } ); // Add Icon to Button $goStartNaviAL = $goStartNaviA.find( '.go-start-navi---a_l' ); $goStartNaviAL.append( $goStartNavArrowIco ); } initGoStartNav( $( '#go-start-nav' ) ); /* ------------------------ Main Menu ------------------------ */ function initMainMenu( $cp ) { if ( ! $aplApplicatorMainMenu.length ) { return; } if ( ! $mainHrAsEnabled.length ) { return; } funcName = 'main-menu-func'; $cp .addClass( funcName ) .addClass( funcTerm ); overlayActivate( funcName ); var mainMenuTogObjMu, mainMenuTogBtnMu, mainMenuTogBtnLmu, mainMenuTogBtnLTxtMu, mainMenuActCss = 'main-menu--active', mainMenuInactCss = 'main-menu--inactive', aplMainMenuActCss = 'applicator--main-menu--active', aplMainMenuInactCss = 'applicator--main-menu--inactive', $mainMenuTogBtnHideIco = $( aplDataMainMenu.mainMenuHideIco ), $mainMenuTogBtnShowIco = $( aplDataMainMenu.mainMenuShowIco ), $mainMenuShowL = aplDataMainMenu.mainMenuShowL, $mainMenuHideL = aplDataMainMenu.mainMenuHideL, $mainHrAsH, $mainHrAsCt, $mainMenuTogBtn, $mainMenuTogBtnL, $mainMenuTogBtnLTxt, $mainHrAsCtCr; // Markup ( function() { mainMenuTogBtnLTxtMu = $( '', { 'class': 'txt ' + showHideTxtCss, 'text': $mainMenuHideL } ); mainMenuTogBtnLmu = $( '', { 'class': 'b_l main-menu-tog---b_l' } ) .append( mainMenuTogBtnLTxtMu ) .append( $mainMenuTogBtnHideIco ); // Button mainMenuTogBtnMu = $( '