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')})}} 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')}} function twentytwentyoneExpandSubMenu(el){el.closest('nav').querySelectorAll('.sub-menu-toggle').forEach(function(button){if(button!==el){button.setAttribute('aria-expanded','false')}});twentytwentyoneToggleAriaExpanded(el,!0);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(){var navMenu=function(id){var wrapper=document.body,mobileButton=document.getElementById(id+'-mobile-menu');if(mobileButton){mobileButton.onclick=function(){wrapper.classList.toggle(id+'-navigation-open');wrapper.classList.toggle('lock-scrolling');twentytwentyoneToggleAriaExpanded(mobileButton);mobileButton.focus()}} 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;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(tabKey&&firstEl===lastEl){event.preventDefault()}});document.addEventListener('click',function(event){if(event.target.hash&&event.target.hash.includes('#')){wrapper.classList.remove(id+'-navigation-open','lock-scrolling');twentytwentyoneToggleAriaExpanded(mobileButton);setTimeout(function(){var anchor=document.getElementById(event.target.hash.slice(1));anchor.scrollIntoView()},550)}});document.getElementById('site-navigation').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')})})};window.addEventListener('load',function(){new navMenu('primary')})}());function twentytwentyoneResponsiveEmbeds(){var proportion,parentWidth;document.querySelectorAll('iframe').forEach(function(iframe){if(iframe.width&&iframe.height){proportion=parseFloat(iframe.width)/parseFloat(iframe.height);parentWidth=parseFloat(window.getComputedStyle(iframe.parentElement,null).width.replace('px',''));iframe.style.maxWidth='100%';iframe.style.maxHeight=Math.round(parentWidth/proportion).toString()+'px'}})} twentytwentyoneResponsiveEmbeds();window.onresize=twentytwentyoneResponsiveEmbeds; /*! Lazy Load XT v1.1.0 2016-01-12 * http://ressio.github.io/lazy-load-xt * (C) 2016 RESS.io * Licensed under MIT */ (function($,window,document,undefined){var lazyLoadXT='lazyLoadXT',dataLazied='lazied',load_error='load error',classLazyHidden='lazy-hidden',docElement=document.documentElement||document.body,forceLoad=(window.onscroll===undefined||!!window.operamini||!docElement.getBoundingClientRect),options={autoInit:!0,selector:'img[data-src]',blankImage:'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7',throttle:99,forceLoad:forceLoad,loadEvent:'pageshow',updateEvent:'load orientationchange resize scroll touchmove focus',forceEvent:'lazyloadall',oninit:{removeClass:'lazy'},onshow:{addClass:classLazyHidden},onload:{removeClass:classLazyHidden,addClass:'lazy-loaded'},onerror:{removeClass:classLazyHidden},checkDuplicates:!0},elementOptions={srcAttr:'data-src',edgeX:0,edgeY:0,visibleOnly:!0},$window=$(window),$extend=$.extend,$data=$.data||function(el,name){return $(el).data(name)},elements=[],topLazy=0,waitingMode=0;$[lazyLoadXT]=$extend(options,elementOptions,$[lazyLoadXT]);function getOrDef(obj,prop){return obj[prop]===undefined?options[prop]:obj[prop]} function scrollTop(){var scroll=window.pageYOffset;return(scroll===undefined)?docElement.scrollTop:scroll} $.fn[lazyLoadXT]=function(overrides){overrides=overrides||{};var blankImage=getOrDef(overrides,'blankImage'),checkDuplicates=getOrDef(overrides,'checkDuplicates'),scrollContainer=getOrDef(overrides,'scrollContainer'),forceShow=getOrDef(overrides,'show'),elementOptionsOverrides={},prop;$(scrollContainer).on('scroll',queueCheckLazyElements);for(prop in elementOptions){elementOptionsOverrides[prop]=getOrDef(overrides,prop)} return this.each(function(index,el){if(el===window){$(options.selector).lazyLoadXT(overrides)}else{var duplicate=checkDuplicates&&$data(el,dataLazied),$el=$(el).data(dataLazied,forceShow?-1:1);if(duplicate){queueCheckLazyElements();return} if(blankImage&&el.tagName==='IMG'&&!el.src){el.src=blankImage} $el[lazyLoadXT]=$extend({},elementOptionsOverrides);triggerEvent('init',$el);elements.push($el);queueCheckLazyElements()}})};function triggerEvent(event,$el){var handler=options['on'+event];if(handler){if(typeof handler==="function"){handler.call($el[0])}else{if(handler.addClass){$el.addClass(handler.addClass)} if(handler.removeClass){$el.removeClass(handler.removeClass)}}} $el.trigger('lazy'+event,[$el]);queueCheckLazyElements()} function triggerLoadOrError(e){triggerEvent(e.type,$(this).off(load_error,triggerLoadOrError))} function checkLazyElements(force){if(!elements.length){return} force=force||options.forceLoad;topLazy=Infinity;var viewportTop=scrollTop(),viewportHeight=window.innerHeight||docElement.clientHeight,viewportWidth=window.innerWidth||docElement.clientWidth,i,length;for(i=0,length=elements.length;i-edgeY&&elPos.left<=viewportWidth+edgeX&&elPos.right>-edgeX)} if(visible){$el.on(load_error,triggerLoadOrError);triggerEvent('show',$el);var srcAttr=objData.srcAttr,src=typeof srcAttr==="function"?srcAttr($el):el.getAttribute(srcAttr);if(src){el.src=src} removeNode=!0}else{if(topEdge1){waitingMode=1;checkLazyElements();setTimeout(timeoutLazyElements,options.throttle)}else{waitingMode=0}} function queueCheckLazyElements(e){if(!elements.length){return} if(e&&e.type==='scroll'&&e.currentTarget===window){if(topLazy>=scrollTop()){return}} if(!waitingMode){setTimeout(timeoutLazyElements,0)} waitingMode=2} function initLazyElements(){$window.lazyLoadXT()} function forceLoadAll(){checkLazyElements(!0)} $(document).ready(function(){triggerEvent('start',$window);$window.on(options.updateEvent,queueCheckLazyElements).on(options.forceEvent,forceLoadAll);$(document).on(options.updateEvent,queueCheckLazyElements);if(options.autoInit){$window.on(options.loadEvent,initLazyElements);initLazyElements()}})})(window.jQuery||window.Zepto||window.$,window,document);(function($){var options=$.lazyLoadXT;options.selector+=',video,iframe[data-src],embed[data-src]';options.videoPoster='data-poster';$(document).on('lazyshow','video',function(e,$el){var srcAttr=$el.lazyLoadXT.srcAttr,isFuncSrcAttr=(typeof srcAttr==="function"),changed=!1;$el.attr('poster',$el.attr(options.videoPoster));$el.children('source,track').each(function(index,el){var $child=$(el),src=isFuncSrcAttr?srcAttr($child):$child.attr(srcAttr);if(src){$child.attr('src',src);changed=!0}});if(changed&&typeof $(this).attr('preload')!=='undefined'&&'none'!=$(this).attr('preload')){this.load()} $(this).removeClass('lazy-hidden')});$(document).on('lazyshow','embed',function(e,$el){$(this).removeClass('lazy-hidden')})})(window.jQuery||window.Zepto||window.$); /*! Lazy Load XT v1.1.0 2016-01-12 * http://ressio.github.io/lazy-load-xt * (C) 2016 RESS.io * Licensed under MIT */ (function($,window,document,undefined){var options=$.lazyLoadXT,srcsetSupport=(function(){return'srcset' in(new Image())})(),reUrl=/^\s*(\S*)/,reWidth=/\S\s+(\d+)w/,reHeight=/\S\s+(\d+)h/,reDpr=/\S\s+([\d\.]+)x/,infty=[0,Infinity],one=[0,1],srcsetOptions={srcsetAttr:'data-srcset',srcsetExtended:!0,srcsetBaseAttr:'data-srcset-base',srcsetExtAttr:'data-srcset-ext'},viewport={w:0,h:0,x:0},property,limit;for(property in srcsetOptions){if(options[property]===undefined){options[property]=srcsetOptions[property]}} options.selector+=',img['+options.srcsetAttr+'],source['+options.srcsetAttr+']';function mathFilter(array,action){return Math[action].apply(null,$.map(array,function(item){return item[property]}))} function compareMax(item){return item[property]>=viewport[property]||item[property]===limit} function compareMin(item){return item[property]===limit} function parseSrcset($el){var srcset=$el.attr(options.srcsetAttr);if(!srcset){return!1} var list=$.map(srcset.replace(/(\s[\d.]+[whx]),/g,'$1 @,@ ').split(' @,@ '),function(item){return{url:reUrl.exec(item)[1],w:parseFloat((reWidth.exec(item)||infty)[1]),h:parseFloat((reHeight.exec(item)||infty)[1]),x:parseFloat((reDpr.exec(item)||one)[1])}});if(!list.length){return!1} var documentElement=document.documentElement,whx,src;viewport={w:window.innerWidth||documentElement.clientWidth,h:window.innerHeight||documentElement.clientHeight,x:window.devicePixelRatio||1};for(whx in viewport){property=whx;limit=mathFilter(list,'max');list=$.grep(list,compareMax)} for(whx in viewport){property=whx;limit=mathFilter(list,'min');list=$.grep(list,compareMin)} src=list[0].url;if(options.srcsetExtended){src=($el.attr(options.srcsetBaseAttr)||'')+src+($el.attr(options.srcsetExtAttr)||'')} return src} $(document).on('lazyshow','img',function(e,$el){var srcset=$el.attr(options.srcsetAttr);if(srcset){if(!options.srcsetExtended&&srcsetSupport){$el.attr('srcset',srcset);$el.attr('data-srcset','')}else{$el.lazyLoadXT.srcAttr=parseSrcset}}});$(document).on('lazyshow','source',function(e,$el){$(this).removeClass('lazy-hidden');var srcset=$el.attr(options.srcsetAttr);if(srcset){if(!options.srcsetExtended&&srcsetSupport){$el.attr('srcset',srcset);$el.attr('data-srcset','')}else{$el.lazyLoadXT.srcAttr=parseSrcset}}})})(window.jQuery||window.Zepto||window.$,window,document);jQuery.lazyLoadXT.updateEvent='load orientationchange resize scroll touchmove focus click customlazyloadxtevent';jQuery.lazyLoadXT.edgeY=a3_lazyload_extend_params.edgeY;jQuery.lazyLoadXT.srcsetExtended=!1;if(typeof a3_lazyload_extend_params.horizontal_container_classnames!=='undefined'&&''!==a3_lazyload_extend_params.horizontal_container_classnames){jQuery.lazyLoadXT.scrollContainer=a3_lazyload_extend_params.horizontal_container_classnames} jQuery(document).ready(function($){jQuery(document).on('mouseenter','.site-header-cart',function(){jQuery(document).trigger('customlazyloadxtevent')});jQuery(document).on('mouseenter','.widget_shopping_cart',function(){jQuery(document).trigger('customlazyloadxtevent')});jQuery(document).on('mouseover','#wp-admin-bar-top-secondary',function(){jQuery(document).trigger('customlazyloadxtevent')})});jQuery(document).ajaxComplete(function(){setTimeout(function(){jQuery(window).lazyLoadXT()},1000)});(function(){var supportsPassive=!1;try{var opts=Object.defineProperty({},'passive',{get:function(){supportsPassive=!0}});window.addEventListener('testPassive',null,opts);window.removeEventListener('testPassive',null,opts)}catch(e){} function init(){var input_begin='';var keydowns={};var lastKeyup=null;var lastKeydown=null;var keypresses=[];var modifierKeys=[];var correctionKeys=[];var lastMouseup=null;var lastMousedown=null;var mouseclicks=[];var mousemoveTimer=null;var lastMousemoveX=null;var lastMousemoveY=null;var mousemoveStart=null;var mousemoves=[];var touchmoveCountTimer=null;var touchmoveCount=0;var lastTouchEnd=null;var lastTouchStart=null;var touchEvents=[];var scrollCountTimer=null;var scrollCount=0;var correctionKeyCodes=['Backspace','Delete','ArrowUp','ArrowDown','ArrowLeft','ArrowRight','Home','End','PageUp','PageDown'];var modifierKeyCodes=['Shift','CapsLock'];var forms=document.querySelectorAll('form[method=post]');for(var i=0;i1){keypress.push(keydowns[e.key][1])} keypresses.push(keypress)}} delete keydowns[e.key];lastKeyup=keyupTime},supportsPassive?{passive:!0}:!1);form.addEventListener("focusin",function(e){lastKeydown=null;lastKeyup=null;keydowns={}},supportsPassive?{passive:!0}:!1);form.addEventListener("focusout",function(e){lastKeydown=null;lastKeyup=null;keydowns={}},supportsPassive?{passive:!0}:!1)} document.addEventListener('mousedown',function(e){lastMousedown=(new Date()).getTime()},supportsPassive?{passive:!0}:!1);document.addEventListener('mouseup',function(e){if(!lastMousedown){return} var now=(new Date()).getTime();var mouseclick=[];mouseclick.push(now-lastMousedown);if(lastMouseup){mouseclick.push(lastMousedown-lastMouseup)} mouseclicks.push(mouseclick);lastMouseup=now;lastKeydown=null;lastKeyup=null;keydowns={}},supportsPassive?{passive:!0}:!1);document.addEventListener('mousemove',function(e){if(mousemoveTimer){clearTimeout(mousemoveTimer);mousemoveTimer=null}else{mousemoveStart=(new Date()).getTime();lastMousemoveX=e.offsetX;lastMousemoveY=e.offsetY} mousemoveTimer=setTimeout(function(theEvent,originalMousemoveStart){var now=(new Date()).getTime()-500;var mousemove=[];mousemove.push(now-originalMousemoveStart);mousemove.push(Math.round(Math.sqrt(Math.pow(theEvent.offsetX-lastMousemoveX,2)+Math.pow(theEvent.offsetY-lastMousemoveY,2))));if(mousemove[1]>0){mousemoves.push(mousemove)} mousemoveStart=null;mousemoveTimer=null},500,e,mousemoveStart)},supportsPassive?{passive:!0}:!1);document.addEventListener('touchmove',function(e){if(touchmoveCountTimer){clearTimeout(touchmoveCountTimer)} touchmoveCountTimer=setTimeout(function(){touchmoveCount++},500)},supportsPassive?{passive:!0}:!1);document.addEventListener('touchstart',function(e){lastTouchStart=(new Date()).getTime()},supportsPassive?{passive:!0}:!1);document.addEventListener('touchend',function(e){if(!lastTouchStart){return} var now=(new Date()).getTime();var touchEvent=[];touchEvent.push(now-lastTouchStart);if(lastTouchEnd){touchEvent.push(lastTouchStart-lastTouchEnd)} touchEvents.push(touchEvent);lastTouchEnd=now;lastKeydown=null;lastKeyup=null;keydowns={}},supportsPassive?{passive:!0}:!1);document.addEventListener('scroll',function(e){if(scrollCountTimer){clearTimeout(scrollCountTimer)} scrollCountTimer=setTimeout(function(){scrollCount++},500)},supportsPassive?{passive:!0}:!1)} function prepare_timestamp_array_for_request(a,limit){if(!limit){limit=100} var rv='';if(a.length>0){var random_starting_point=Math.max(0,Math.floor(Math.random()*a.length-limit));for(var i=0;i=2){rv+=","+a[random_starting_point+i][1]} rv+=";"}} return rv} if(document.readyState!=='loading'){init()}else{document.addEventListener('DOMContentLoaded',init)}})()