/* global avaniScreenReaderText */ /** * Adds toggle icon for mobile navigation and dropdown animations for widescreen navigation */ ( function ( $ ) { var scrnRdrSpn = $('', {'class': 'screen-reader-text', text: avaniScreenReaderText.expand}), dropdownToggle = $('', {'class': 'sub-menu-toggle', 'aria-expanded': false}).append(avaniScreenReaderText.icon).append(scrnRdrSpn); $.fn.responsiveMenu = function() { var touchStartFn, i, $this = $(this), parentLink = $this.find('.menu-item-has-children > a, .page_item_has_children > a'), menuToggle = $this.find('.menu-toggle'); if ( !menuToggle.length ) { return; } menuToggle.on('click.avani', function () { $this.toggleClass('toggled-on'); $(this).attr('aria-expanded', $this.hasClass('toggled-on')); } ); parentLink.after(dropdownToggle); $this.find('.sub-menu-toggle').click( function (e) { var screenReaderSpan = $(this).find('.screen-reader-text'); e.preventDefault(); $(this).toggleClass('toggled-on'); $(this).next('.children, .sub-menu').toggleClass('toggled-on'); $(this).attr('aria-expanded', $(this).hasClass('toggled-on')); screenReaderSpan.text( $(this).hasClass('toggled-on') ? avaniScreenReaderText.collapse : avaniScreenReaderText.expand ); } ); if ('ontouchstart' in window) { $(window).on('resize.avani', toggleFocusClassTouchScreen); toggleFocusClassTouchScreen(); } $this.find('a').on('focus.avani blur.avani', function () { $(this).parents('.menu-item, .page_item').toggleClass('focus'); } ); function toggleFocusClassTouchScreen() { if ('none' === menuToggle.css('display')) { $(document.body).on( 'touchstart.avani', function (e) { if (!$(e.target).closest('.nav-menu li').length) { $('.nav-menu li').removeClass('focus'); } } ); parentLink.on('touchstart.avani', function (e) { var el = $(this).parent( 'li' ); if (!el.hasClass('focus')) { e.preventDefault(); el.toggleClass('focus'); el.siblings('.focus').removeClass('focus'); } } ); } else { parentLink.unbind('touchstart.avani'); } } } if ($('.main-navigation').length) { $('.main-navigation').responsiveMenu(); } /* * Test if inline SVGs are supported. * @link https://github.com/Modernizr/Modernizr/ */ function supportsInlineSVG() { var div = document.createElement( 'div' ); div.innerHTML = ''; return 'http://www.w3.org/2000/svg' === ( 'undefined' !== typeof SVGRect && div.firstChild && div.firstChild.namespaceURI ); } // Change HTML class based on SVG support. $( document ).ready( function () { if ( true === supportsInlineSVG() ) { document.documentElement.className = document.documentElement.className.replace( /(\s*)no-svg(\s*)/, '$1svg$2' ); } } ); $(document).ready(function () { var navOffset, scrollPos = 0, scrollTimer = null, $placeholder = $("