PageSourceSearch

https://walkerengineering.co/pages/airsep

html walkerengineering.co collected 2026-10-09 22:50:54 UTC 131,291 bytes, 2,620 lines download raw bytes

1<!doctype html>
2<html class="no-js no-touch" lang="en">
3  <head>
3<script data-source-attribution="shopify.event_observer.bootstrap">
4(function(){let e=navigator,t=`prototype`,n=`sendBeacon`,r=e[n],i=fetch,a=XMLHttpRequest[t],{open:o,send:s}=a,c=`EventListener`,l=`add${c}`,u=`remove${c}`,d=EventTarget[t],f=d[l],p=d[u],m=e=>Error((e=document.currentScript)&&[e?.src,e?.id||e?.dataset?.sourceAttribution]),h=(e=[],t=0)=>(e.p=n=>e[t++%1e3]=n,[e,t=>(e.forEach(e.p=t),e.length=0)]),[g,_]=h(),[v,y]=h(),b,x=new WeakMap,S=e=>e&&g.p([e,b||[m()]]);d[l]=function(e,t,n){let r=this,i=t?.handleEvent||t,a=x.get(t),o=m();i?.call&&!a&&x.set(t,a=function(e){b=[o,e.type];try{i.call(t==i?this:t,e)}finally{b=null}}),v.p([e,o,a,r?.tagName||r+``,r?.id]),f.call(r,e,a||t,n)},d[u]=function(e,t,n){p.call(this,e,x.get(t)||t,n)},a.open=function(e,t){x.set(this,[t+``,e]),o.apply(this,arguments)},a.send=function(e){S(x.get(this)),s.call(this,e)},fetch=(e,t)=>(S([(e?.url||e)+``,t?.method]),i(e,t)),e[n]=(t,n)=>(S([t+``,``]),r.call(e,t,n)),setTimeout(()=>import("//walkerengineering.co/cdn/shopifycloud/storefront/assets/storefront/event_observer_reporter-ed358274.js").then(e=>e.$(_,y,f,i,`75266359613`)))})();
5//# sourceURL=event-observer-collector.js
6</script>
6
7
8    
8<script>
9      window.Store = window.Store || {};
10      window.Store.id = 75266359613;
11    </script>
11
12    <meta charset="utf-8">
13    <meta http-equiv="x-ua-compatible" content="IE=edge">
14
15    <link rel="preconnect" href="https://cdn.shopify.com">
16    <link rel="preconnect" href="https://fonts.shopifycdn.com">
17    <link rel="preconnect" href="https://v.shopify.com">
18    <link rel="preconnect" href="https://cdn.shopifycloud.com">
19
20    <title>Shop Walker AIRSEP® — Walker Engineering Enterprises</title>
21
22    
23
24    
25
26    <link rel="shortcut icon" type="image/png" href="//walkerengineering.co/cdn/shop/t/3/assets/WE_Favicon-v3_small.png?v=179895633577425385511688739897">
27
28    
29      <link rel="canonical" href="https://walkerengineering.co/pages/airsep" />
30    
31
32    <meta name="viewport" content="width=device-width">
33
34    
35    
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51<meta property="og:site_name" content="Walker Engineering Enterprises">
52<meta property="og:url" content="https://walkerengineering.co/pages/airsep">
53<meta property="og:title" content="Shop Walker AIRSEP®">
54<meta property="og:type" content="website">
55<meta property="og:description" content="Walker Engineering is the home of Walker Airsep and Walker Performance Filtration.
56All products designed, engineered and manufactured in USA.  ">
57
58
59
60
61    
62    
63    
64
65    
66    
67    <meta
68      property="og:image"
69      content="https://walkerengineering.co/cdn/shop/files/Walker_Engineering_9_2557x630.png?v=1699549793"
70    />
71    <meta
72      property="og:image:secure_url"
73      content="https://walkerengineering.co/cdn/shop/files/Walker_Engineering_9_2557x630.png?v=1699549793"
74    />
75    <meta property="og:image:width" content="2557" />
76    <meta property="og:image:height" content="630" />
77    
78    
79    <meta property="og:image:alt" content="Social media image" />
80  
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97<meta name="twitter:title" content="Shop Walker AIRSEP®">
98<meta name="twitter:description" content="Walker Engineering is the home of Walker Airsep and Walker Performance Filtration.
99All products designed, engineered and manufactured in USA.  ">
100
101
102    
103    
104    
105      
106      
107      <meta name="twitter:card" content="summary_large_image">
108    
109    
110    <meta
111      property="twitter:image"
112      content="https://walkerengineering.co/cdn/shop/files/Walker_Engineering_9_1200x600_crop_center.png?v=1699549793"
113    />
114    <meta property="twitter:image:width" content="1200" />
115    <meta property="twitter:image:height" content="600" />
116    
117    
118    <meta property="twitter:image:alt" content="Social media image" />
119  
120
121
122
123    <link
124      rel="preload"
125      href="//walkerengineering.co/cdn/fonts/nunito_sans/nunitosans_n7.25d963ed46da26098ebeab731e90d8802d989fa5.woff2"
126      as="font"
127      crossorigin="anonymous">
128    <link
129      rel="preload"
130      as="style"
131      href="//walkerengineering.co/cdn/shop/t/3/assets/theme.css?v=38850419095854054801787080067">
132
133    
133<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
133<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/75266359613/digital_wallets/dialog">
134<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
134<script async="async" src="/checkouts/internal/preloads.js?locale=en-US"></script>
134
135<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
136<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&shop_id=75266359613" crossorigin="anonymous"></script>
vendor: 1 bytes, line 136
136
137<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":75266359613,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/75266359613","merchantName":"Walker Engineering Enterprises","requiredBillingContactFields":["postalAddress","email"],"requiredShippingContactFields":["postalAddress","email"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","discover","amex","elo","jcb"],"total":{"type":"pending","label":"Walker Engineering Enterprises","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 137
137
138<script id="shopify-features" type="application/json">{"accessToken":"27e32c75c855b11bf176a7a393086a07","betas":["rich-media-storefront-analytics"],"domain":"walkerengineering.co","predictiveSearch":true,"shopId":75266359613,"locale":"en"}</script>
vendor: 1 bytes, line 138
138
139<script>var Shopify = Shopify || {};
140Shopify.shop = "walker-engineering-group.myshopify.com";
141Shopify.locale = "en";
142Shopify.currency = {"active":"USD","rate":"1.0"};
143Shopify.country = "US";
144Shopify.theme = {"name":"Walker Engineering","id":149380956477,"schema_name":"Empire","schema_version":"9.0.0","theme_store_id":838,"role":"main"};
145Shopify.theme.handle = "null";
146Shopify.theme.style = {"id":null,"handle":null};
147Shopify.cdnHost = "walkerengineering.co/cdn";
148Shopify.routes = Shopify.routes || {};
149Shopify.routes.root = "/";
150Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
151Shopify.SignInWithShop = Shopify.SignInWithShop || {};
152Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
153Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 153
153
154<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 154
154
155<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 155
155
156<script>
157  window.ShopifyPay = window.ShopifyPay || {};
158  window.ShopifyPay.apiHost = "shop.app\/pay";
159  window.ShopifyPay.redirectState = null;
160</script>
vendor: 1 bytes, line 160
160
161<script>
162  window.Shopify = window.Shopify || {};
163  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
164  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
165  window.Shopify.SignInWithShop.eligible = true;
166</script>
vendor: 1 bytes, line 166
166
167<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 167
167
168<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 168
168
169<script type="module">
170  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");
171
172  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
173
174</script>
vendor: 1 bytes, line 174
174
175<script>
176  window.Shopify = window.Shopify || {};
177  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
178  window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]};
179</script>
vendor: 1 bytes, line 179
179
180<script>(function() {
181  var isLoaded = false;
182  function asyncLoad() {
183    if (isLoaded) return;
184    isLoaded = true;
185    var urls = ["\/\/cdn.shopify.com\/proxy\/160d71d7603ab2469e73dd94f9567f6b2a8d92aa11806f6fd5b6054b3510a79a\/shopify.livechatinc.com\/api\/v2\/script\/a863bfd3-4470-4ef9-8efa-2c063d6b4ca1\/widget.js?shop=walker-engineering-group.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA"];
186    for (var i = 0; i < urls.length; i++) {
187      var s = document.createElement('script');
188      s.type = 'text/javascript';
189      s.async = true;
190      s.src = urls[i];
191      var x = document.getElementsByTagName('script')[0];
192      x.parentNode.insertBefore(s, x);
193    }
194  };
195  if(window.attachEvent) {
196    window.attachEvent('onload', asyncLoad);
197  } else {
198    window.addEventListener('load', asyncLoad, false);
199  }
200})();</script>
vendor: 1 bytes, line 200
200
201<script id="__st">var __st={"a":75266359613,"offset":-25200,"reqid":"0199b1a5-3674-492e-8ebd-a12311caa0f7-1791586254","pageurl":"walkerengineering.co\/pages\/airsep","s":"pages-122369605949","u":"72948f7cef0f","p":"page","rtyp":"page","rid":122369605949};</script>
vendor: 1 bytes, line 201
201
202<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 202
202
203<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
vendor: 1 bytes, line 203
203
204<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//walkerengineering.co/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 204
204
205<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//walkerengineering.co/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
205<script crossorigin="anonymous" defer="defer" src="//walkerengineering.co/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-f0e26bdf.js?v=20250812"></script>
vendor: 1 bytes, line 205
205
206<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 206
206
207<script>
208  window.Shopify = window.Shopify || {};
209  window.Shopify.MCP = window.Shopify.MCP || {};
210  window.Shopify.MCP.enabled = true;
211  window.Shopify.MCP.shop = "walker-engineering-group.myshopify.com";
212  window.Shopify.MCP.mcpEndpoint = "https:\/\/walkerengineering.co\/api\/mcp";
213  window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n  - What is your return policy?\n  - What is your shipping policy?\n  - What is your phone number?\n  - What are your hours of operation?\"\nSet policy_types to also get the store's written policies (full text and URL).\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."},"policy_types":{"type":"array","items":{"type":"string","enum":["refund","shipping","privacy","terms_of_service","terms_of_sale","subscription","legal_notice","contact"]},"description":"Policy kinds to fetch, chosen from the user's question — e.g. [\"refund\"] for returns\/exchanges\/damaged items, [\"contact\"] for phone\/hours\/address. Include every kind the question touches. Omit it to get only FAQ answers."}},"required":["query"]}}];
214</script>
vendor: 1 bytes, line 214
214
215<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/walkerengineering.co\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-f427de6a.js","sha256-ypGF+5vIq4Psw4WG7nsVtdd\/TCfsJWnrNuACdqLCElY=");})();
216</script>
vendor: 1 bytes, line 216
216
217<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://walkerengineering.co/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
218</script>
vendor: 1 bytes, line 218
218
219<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
220  function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent);
221</script>
vendor: 1 bytes, line 221
221
222<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}}));
223</script>
223
224<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://walkerengineering.co/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
225<style id="shopify-accelerated-checkout-cart">
226        #shopify-buyer-consent {
227  margin-top: 1em;
228  display: inline-block;
229  width: 100%;
230}
231
232#shopify-buyer-consent.hidden {
233  display: none;
234}
235
236#shopify-subscription-policy-button {
237  background: none;
238  border: none;
239  padding: 0;
240  text-decoration: underline;
241  font-size: inherit;
242  cursor: pointer;
243}
244
245#shopify-subscription-policy-button::before {
246  box-shadow: none;
247}
248
249      </style>
250
251<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
251
252
253    <base href="/">
254
255    <!-- WEE Custom Elements | CSS -->
256    <link rel="stylesheet" href="https://cdn.shopify.com/s/files/1/0752/6635/9613/files/walker-engineering.css?v=1696965663">
257
258    <!-- WEE Custom Elements | JS -->
259    
259<script src="https://cdn.shopify.com/s/files/1/0752/6635/9613/files/walker-engineering.js?v=1696965604"></script>
259
260
261    <!-- Empire Theme CSS -->
262    <link href="//walkerengineering.co/cdn/shop/t/3/assets/theme.css?v=38850419095854054801787080067" rel="stylesheet" type="text/css" media="all" />
263
264    <!-- Custom Walker Theme CSS -->
265    <link href="//walkerengineering.co/cdn/shop/t/3/assets/we-theme.css?v=90328815194256822831698869928" rel="stylesheet" type="text/css" media="all" />
266
267    <!-- jQuery | JS -->
268    
268<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
268
269
270    <!-- Flickity | CSS -->
271    
272    <link rel="stylesheet" href="//walkerengineering.co/cdn/shop/t/3/assets/flickity.css?v=97171539250019436281688729839">
273
274    <!-- Flickity | JS -->
275    
276    
276<script src="//walkerengineering.co/cdn/shop/t/3/assets/flickity.js?v=114460508543641870001688729839"> </script>
276
277
278    <!-- Vue | JS -->
279    
279<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
279
280
281    <!-- AddToAny | JS -->
282    
282<script src="https://static.addtoany.com/menu/page.js"></script>
282
283
284    <!-- Moment | JS -->
285    
285<script
286      src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment.min.js"
287      integrity="sha512-CryKbMe7sjSCDPl18jtJI5DR5jtkUWxPXWaLCst6QjH8wxDexfRJic2WRmRXmstr2Y8SxDDWuBO6CQC6IE4KTA=="
288      crossorigin="anonymous"
289      referrerpolicy="no-referrer">
290    </script>
290
291
292    
293    
293<script>
294      window.Theme = window.Theme || {};
295      window.Theme.version = '9.0.0';
296      window.Theme.name = 'Empire';
297      window.Theme.routes = {
298        "root_url": "/",
299        "account_url": "/account",
300        "account_login_url": "/account/login",
301        "account_logout_url": "/account/logout",
302        "account_register_url": "/account/register",
303        "account_addresses_url": "/account/addresses",
304        "collections_url": "/collections",
305        "all_products_collection_url": "/collections/all",
306        "search_url": "/search",
307        "predictive_search_url": "/search/suggest",
308        "cart_url": "/cart",
309        "cart_add_url": "/cart/add",
310        "cart_change_url": "/cart/change",
311        "cart_clear_url": "/cart/clear",
312        "product_recommendations_url": "/recommendations/products"
313      };
314    </script>
314
315    
316
317  <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
318<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 75266359613,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "page"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 318
318
319<script>
320  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
321</script>
vendor: 1 bytes, line 321
321
322<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
322).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 75266359613,storefrontBaseUrl: "https://walkerengineering.co",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://walkerengineering.co/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab"],webPixelsConfigList: [{"id":"1657307453","configuration":"{\"storeUuid\":\"a863bfd3-4470-4ef9-8efa-2c063d6b4ca1\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"3238ef9155de00529c40d347490289c4","type":"APP","apiClientId":1806141,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"}
322,{"id":"140902717","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS"],"name":"Google Analytics tag (migrated)"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Walker Engineering Enterprises","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"walker-engineering-group.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/walkerengineering.co"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://walkerengineering.co/cdn","7ec887c8w14f9f074p854094e1m1370c602",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"149380956477","themeStoreId":"838","themePublished":"true","eventMetadataId":"61a8819d-520e-4c87-9976-77089eed4a4b","pageType":"page","resourceId":"122369605949","shopId":"75266359613","storefrontBaseUrl":"https:\/\/walkerengineering.co","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\"]","isMerchantRequest":"false","hashVersion":"7ec887c8w14f9f074p854094e1m1370c602","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
322<script>
323  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
324  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
325  window.ShopifyAnalytics.meta.currency = 'USD';
326  var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":122369605949,"requestId":"0199b1a5-3674-492e-8ebd-a12311caa0f7-1791586254"}};
327  for (var attr in meta) {
328    window.ShopifyAnalytics.meta[attr] = meta[attr];
329  }
330</script>
vendor: 1 bytes, line 330
330
331<script class="analytics">
332  (function () {
333    var customDocumentWrite = function(content) {
334      var jquery = null;
335
336      if (window.jQuery) {
337        jquery = window.jQuery;
338      } else if (window.Checkout && window.Checkout.$) {
339        jquery = window.Checkout.$;
340      }
341
342      if (jquery) {
343        jquery('body').append(content);
344      }
345    };
346
347    var hasLoggedConversion = function(token) {
348      if (token) {
349        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
350      }
351      return false;
352    }
353
354    var setCookieIfConversion = function(token) {
355      if (token) {
356        var twoMonthsFromNow = new Date(Date.now());
357        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
358
359        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
360      }
361    }
362
363    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
364    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
365    if (trekkie.integrations) {
366      return;
367    }
368    trekkie.methods = [
369      'identify',
370      'page',
371      'ready',
372      'track',
373      'trackForm',
374      'trackLink'
375    ];
376    trekkie.factory = function(method) {
377      return function() {
378        var args = Array.prototype.slice.call(arguments);
379        args.unshift(method);
380        trekkie.push(args);
381        if (method == 'track' || method == 'page') {
382          var pageUrl;
383          try {
384            pageUrl = window.location.href;
385          } catch (e) {}
386          var pageReferrer;
387          try {
388            pageReferrer = document.referrer;
389          } catch (e) {}
390          try {
391            if (window.__TREKKIE_SHIM_QUEUE == null) {
392              window.__TREKKIE_SHIM_QUEUE = [];
393            }
394            window.__TREKKIE_SHIM_QUEUE.push({
395              from: 'trekkie-stub',
396              method: method,
397              args: args.slice(1),
398              pageContext: {
399                url: pageUrl,
400                referrer: pageReferrer
401              }
402            });
403          } catch (e) {
404            // no-op
405          }
406        }
407        return trekkie;
408      };
409    };
410    for (var i = 0; i < trekkie.methods.length; i++) {
411      var key = trekkie.methods[i];
412      trekkie[key] = trekkie.factory(key);
413    }
414    trekkie.load = function(config) {
415      trekkie.config = config || {};
416      trekkie.config.initialDocumentCookie = document.cookie;
417      var first = document.getElementsByTagName('script')[0];
418var script = document.createElement('script');
419script.type = 'text/javascript';
420script.onerror = function(e) {
421  var scriptFallback = document.createElement('script');
422  scriptFallback.type = 'text/javascript';
423  scriptFallback.onerror = function(error) {
424          var Monorail = {
425      produce: function produce(monorailDomain, schemaId, payload) {
426        var currentMs = new Date().getTime();
427        var event = {
428          schema_id: schemaId,
429          payload: payload,
430          metadata: {
431            event_created_at_ms: currentMs,
432            event_sent_at_ms: currentMs
433          }
434        };
435        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
436      },
437      sendRequest: function sendRequest(endpointUrl, payload) {
438        // Try the sendBeacon API
439        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
440          var blobData = new window.Blob([payload], {
441            type: 'text/plain'
442          });
443
444          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
445            return true;
446          } // sendBeacon was not successful
447
448        } // XHR beacon
449
450        var xhr = new XMLHttpRequest();
451
452        try {
453          xhr.open('POST', endpointUrl);
454          xhr.setRequestHeader('Content-Type', 'text/plain');
455          xhr.send(payload);
456        } catch (e) {
457          console.log(e);
458        }
459
460        return false;
461      },
462      isIos12: function isIos12() {
463        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
464      }
465    };
466    Monorail.produce('monorail-edge.shopifysvc.com',
467      'trekkie_storefront_load_errors/1.1',
468      {shop_id: 75266359613,
469      theme_id: 149380956477,
470      app_name: "storefront",
471      context_url: window.location.href,
472      source_url: "//walkerengineering.co/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js"});
473
474  };
475  scriptFallback.async = true;
476  scriptFallback.src = '//walkerengineering.co/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js';
477  first.parentNode.insertBefore(scriptFallback, first);
478};
479script.async = true;
480script.src = '//walkerengineering.co/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js';
481first.parentNode.insertBefore(script, first);
482
483    };
484    trekkie.load(
485      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":75266359613,"isMerchantRequest":null,"themeId":149380956477,"themeCityHash":"6846141463861659198","contentLanguage":"en","currency":"USD","eventMetadataId":"61a8819d-520e-4c87-9976-77089eed4a4b"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}}
486    );
487
488    var loaded = false;
489    trekkie.ready(function() {
490      if (loaded) return;
491      loaded = true;
492
493      window.ShopifyAnalytics.lib = window.trekkie;
494
495      var originalDocumentWrite = document.write;
496      document.write = customDocumentWrite;
497      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
498      document.write = originalDocumentWrite;
499
500      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
501      var token = match? match[1]: undefined;
502      if (!hasLoggedConversion(token)) {
503        setCookieIfConversion(token);
504        
505      }
506    });
507
508    window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":122369605949,"requestId":"0199b1a5-3674-492e-8ebd-a12311caa0f7-1791586254","shopifyEmitted":true});
509
510    var eventsListenerScript = document.createElement('script');
511    eventsListenerScript.async = true;
512    eventsListenerScript.src = "//walkerengineering.co/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
513    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
514})();</script>
514
515  
515<script>
516  if (!window.ga || (window.ga && typeof window.ga !== 'function')) {
517    window.ga = function ga() {
518      (window.ga.q = window.ga.q || []).push(arguments);
519      if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
520        window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"});
521      }
522      console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information.");
523    };
524    if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
525      window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"});
526    }
527  }
528</script>
vendor: 1 bytes, line 528
528
529<script
530  defer
531  src="https://walkerengineering.co/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.10.1.min.js"
532  data-application="storefront-renderer"
533  data-shop-id="75266359613"
534  data-render-region="gcp-us-central1"
535  data-page-type="page"
536  data-theme-instance-id="149380956477"
537  data-theme-name="Empire"
538  data-theme-version="9.0.0"
539  data-monorail-region="shop_domain"
540  data-resource-timing-sampling-rate="10"
541  data-shs="true"
542  data-shs-beacon="true"
543  data-shs-export-with-fetch="true"
544  data-shs-logs-sample-rate="1"
545  data-shs-beacon-endpoint="https://walkerengineering.co/api/collect"
546></script>
546
547<meta name="shopify-y" content="caa912d6-aed0-4b10-bf08-2cf188ae4ef9" data-expiration="1823143854000"><meta name="shopify-s" content="b41a66d1-bb5b-4940-8c32-75a13560d5a5" data-expiration="1791588054000">
548</head>
549
550  <body class="template-page we-scroll-bar"
551    data-instant-allow-query-string
552
553    >
554
555    
555<script>
556      document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/, 'js');
557      if (window.Shopify && window.Shopify.designMode) 
558        document.documentElement.className += ' in-theme-editor';
559      
560      if (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) 
561        document.documentElement.className = document.documentElement.className.replace(/\bno-touch\b/, 'has-touch');
562    </script>
562
563
564    
565    <svg class="icon-star-reference"
566      aria-hidden="true"
567      focusable="false"
568      role="presentation"
569      xmlns="http://www.w3.org/2000/svg"
570      width="20"
571      height="20"
572      viewBox="3 3 17 17"
573      fill="none">
574      <symbol id="icon-star">
575        <rect class="icon-star-background"
576          width="20"
577          height="20"
578          fill="currentColor">
579        </rect>
580        <path d="M10 3L12.163 7.60778L17 8.35121L13.5 11.9359L14.326 17L10 14.6078L5.674 17L6.5 11.9359L3 8.35121L7.837 7.60778L10 3Z"
581          stroke="currentColor"
582          stroke-width="2"
583          stroke-linecap="round"
584          stroke-linejoin="round"
585          fill="none">
586        </path>
587      </symbol>
588      <clipPath id="icon-star-clip">
589        <path d="M10 3L12.163 7.60778L17 8.35121L13.5 11.9359L14.326 17L10 14.6078L5.674 17L6.5 11.9359L3 8.35121L7.837 7.60778L10 3Z"
590          stroke="currentColor"
591          stroke-width="2"
592          stroke-linecap="round"
593          stroke-linejoin="round">
594        </path>
595      </clipPath>
596    </svg>
597    
598
599    <a class="skip-to-main" href="#site-main">Skip to content</a>
600
601    
602
603    
604
605<!-- START: WEE Custom Header -->
606<div class="we-custom-header">
607  <we-elements type="header"
608    v-if="header.primary.loader"
609    headerlogos='{
610      "title": "Walker Engineering Enterprises",
611      "url": "https://walkerengineering.co"
612    }'
613    :headernav1='header.primary.data'
614    headernav2='[
615      {
616        "name": "Shop Walker AIRSEP",
617        "url": "https://walkerengineering.co/pages/category-airsep",
618        "newTab": false
619      },
620      {
621        "name": "Shop Walker Performance Filtration",
622        "url": "https://walkerengineering.co/pages/category-performance",
623        "newTab": false
624      }
625    ]'
626    contactdetails='[
627      {
628        "title": "Address",
629        "label": "Walker Engineering 9255 San Fernando Rd. Sun Valley, CA 91352",
630        "url": "https://goo.gl/maps/mmjRv4sDBt4wBGpE7?coh=178572&entry=tt",
631        "newTab": true
632      },
633      {
634        "title": "Phone",
635        "label": "1-818-252-7788",
636        "url": "tel:1-818-252-7788",
637        "newTab": false
638      },
639      {
640        "title": "Fax",
641        "label": "818-252-7785",
642        "url": "tel:818-252-7785",
643        "newTab": false
644      },
645      {
646        "title": "Email",
647        "label": "",
648        "url": "/",
649        "newTab": false
650      }
651    ]'
652    >
653  </we-elements>
654</div>
655<!-- END: WEE Custom Header -->
656<script>
657  const WE_SF_Header_Options = {
658    name: 'WE SF Header Options',
659    data() {
660      return {
661        header: {
662          primary: {
663            endpoint: 'https://blog.walkerengineering.co/wp-json/walkerengineering/v1/menu-header-primary',
664            loader: false,
665            data: [],
666          }
667        },
668      }
669    },
670    created() {
671      this.fetchHeaderMenus();
672    },
673    mounted() {},
674    updated() {},
675    methods: {
676      fetchHeaderMenus() {
677        const dateNow = Date.now();
678        fetch(`${this.header.primary.endpoint}?time=${dateNow}`)
679        .then((response) => response.json())
680        .then((data) => {
681          console.log(`Fetch Menu - Header Primary from Endpoint SUCCESS...`, data);
682          this.header.primary.data = JSON.stringify(data);
683        })
684        .catch((error) => {
685          console.log(`Fetch Menu - Header Primary from Endpoint FAILED...`, data);
686        })
687        .finally(() => {
688          this.header.primary.loader = true;
689        });
690      },
691    }
692  };
693
694  Vue.createApp(WE_SF_Header_Options).mount('.we-custom-header');
695</script>
695
696
697    
698
699    <div class="intersection-target" data-header-intersection-target></div>
700    <div class="site-main-dimmer" data-site-main-dimmer></div>
701    <main class="site-main"
702      id="site-main"
703      aria-label="Main content"
704      tabindex="-1">
705      <div id="shopify-section-template--19830471655741__page-shop-airsep" class="shopify-section"><div class="we-page we-page--shop-airsep">
706
707  
708
709  <section class="we-section we-section--shop-search-bar"
710    :class="{ '--on-search' : shop.products.search.active }">
711    <div class="we-container">
712      <div class="we-search-wrap">
713        <div class="we-group-input --product-search">
714          <input class="product-search-input"
715            type="text"
716            placeholder="Search Products"
717            v-model="shop.products.search.query"
718            @click="toggleProductSearch(true);"
719            @keyup="doProductSearch();"/>
720          <svg class="product-search-icon we-svg"
721            width="23"
722            height="23"
723            viewBox="0 0 23 23"
724            fill="none"
725            xmlns="http://www.w3.org/2000/svg">
726            <path id="path_01"
727              d="M17.9409 19.5341C16.0477 21.0758 13.6318 22 11 22C4.92487 22 0 17.0751 0 11C0 4.92487 4.92487 0 11 0C17.0751 0 22 4.92487 22 11C22 13.6318 21.0758 16.0477 19.5341 17.9409L23 21.5L21.5 23L17.9409 19.5341ZM17.1961 17.5275C15.5824 19.0598 13.401 20 11 20C6.02944 20 2 15.9706 2 11C2 6.02944 6.02944 2 11 2C15.9706 2 20 6.02944 20 11C20 13.3994 19.0611 15.5795 17.5305 17.1929C17.3899 17.3114 17.3169 17.3844 17.1961 17.5275Z"
728              fill-rule="evenodd"
729              clip-rule="evenodd"
730              fill="#8A8A8A">
731            </path>
732          </svg>        
733        </div>
734      </div>
735      <div class="we-search-result-wrap we-scroll-bar"
736        v-if="shop.products.search.active && shop.products.search.query != ''">
737        <h2 
738          v-if="shop.products.search.resultList.length != 0"
739          v-text="'PRODUCTS'">
740        </h2>
741        <div class="we-search-result-list">
742          <div class="we-search-result-item"
743            v-for="searchProduct in shop.products.search.resultList"
744            @click="goToProductPage(searchProduct.handle);">
745            <div class="we-row">
746              <div class="we-col">
747
748                
749                <div class="product-img"
750                  v-if="searchProduct.images.length != 0"
751                  :style="{ backgroundImage: 'url(' + searchProduct.images[0].src + ')' }">
752                </div>
753                <div class="product-img"
754                  v-if="searchProduct.images.length == 0"
755                  style="background-image: url(//walkerengineering.co/cdn/shop/t/3/assets/we-svg-placeholder-img.svg?v=155693266228122343601685996760);">
756                </div>
757
758              </div>
759              <div class="we-col">
760
761                
762                <div class="product-discount"
763                  v-if="searchProduct.variants[0].compare_at_price != null"
764                  v-text="calculateProductDiscount(searchProduct.variants[0].compare_at_price, searchProduct.variants[0].price)">
765                </div>
766
767                
768                <div class="product-title"
769                  v-text="searchProduct.title"
770                  @click="goToProductPage(searchProduct.handle);">
771                </div>
772              
773                
774                <div class="product-type"
775                  v-if="searchProduct.product_type != ''"
776                  v-text="searchProduct.product_type">
777                </div>
778
779                
780
781              </div>
782              <div class="we-col">
783
784                
785                <div class="product-current-price"
786                  v-text="'$'+searchProduct.variants[0].price">
787                </div>
788                
789                
790                <div class="product-before-price"
791                  v-if="searchProduct.variants[0].compare_at_price != null"
792                  v-text="'$'+searchProduct.variants[0].compare_at_price">
793                </div>
794
795              </div>
796            </div>
797          </div>
798        </div>
799        <div class="we-search-result-not-found"
800          v-if="shop.products.search.resultList.length == 0 && shop.products.search.query != ''"
801          v-text="'No matching result found.'">
802        </div>
803        <div class="we-search-result-query"
804          v-text="'Search for &quot;'+shop.products.search.query+'&quot;'">
805        </div>
806      </div>
807    </div>
808    <div class="we-search-full-screen-overlay"
809      @click="toggleProductSearch(false);">
810    </div>
811  </section>
812
813  <section class="we-section we-section--shop-product-listing">
814    <div class="we-container">
815      <img class="we-shop-logo"
816        alt="Airsep"
817        title="Airsep"
818        src="//walkerengineering.co/cdn/shop/t/3/assets/we-svg-logo-airsep-engineering-enterprise.svg?v=145112468011637481001685458500"
819        width=""
820        height=""
821        loading="lazy"/>
822      <div class="filtered-list-tags"
823        v-text="shop.products.utilities.filters.selected.tag.join(', ')">
824      </div>
825      <div class="we-row">
826        <div class="we-col we-scroll-bar"
827          :class="{ '--show' : shop.products.utilities.filters.toggleOnMobile }">
828          <div class="product-filter">
829            <button class="we-btn--close-filters"
830              title="Close Filters"
831              @click="productFiltersToggleOnMobile();">
832              <svg class="we-svg-icon-close we-svg"
833                width="16"
834                height="16"
835                viewBox="0 0 16 16"
836                fill="none"
837                xmlns="http://www.w3.org/2000/svg">
838                <path id="path_01"
839                  d="M15.8576 1.88992L14.2934 0.325684L8.09188 6.52716L1.89041 0.325684L0.326172 1.88992L6.52764 8.09139L0.326172 14.2929L1.89041 15.8571L8.09188 9.65563L14.2934 15.8571L15.8576 14.2929L9.65611 8.09139L15.8576 1.88992Z"
840                  fill="#000000">
841                </path>
842              </svg>
843            </button>
844            <div class="product-filter-group product-filter-reset">
845              <div class="we-row">
846                <h4 class="product-filter-title"
847                  v-text="'Filter'">
848                </h4>
849                <button class="we-btn--product-filter product-filter-reset"
850                  @click="productFiltersReset();">
851                  <div class="we-btn-label"
852                    v-text="'Reset'">
853                  </div>
854                </button>
855              </div>
856            </div>
857            <div class="product-filter-group product-filter-by-price"
858              :class="{ '--show' : shop.products.utilities.filters.price.show }">
859              <div class="we-row">
860                <h4 class="product-filter-title"
861                  v-text="'Price'">
862                </h4>
863                <button class="we-btn--product-filter product-filter-by-price"
864                  @click="shop.products.utilities.filters.price.show = !shop.products.utilities.filters.price.show;">
865                  <div class="we-btn-label"
866                    v-text="shop.products.utilities.filters.price.show ? 'Hide' : 'Show'">
867                  </div>
868                  <svg class="we-svg-icon-angle-up we-svg"
869                    width="7"
870                    height="4"
871                    viewBox="0 0 7 4"
872                    fill="none"
873                    xmlns="http://www.w3.org/2000/svg">
874                    <path id="path_01"
875                      d="M6.14645 3.85355C6.34171 4.04882 6.65829 4.04882 6.85355 3.85355C7.04882 3.65829 7.04882 3.34171 6.85355 3.14645L3.85355 0.146447C3.65829 -0.0488157 3.34171 -0.0488157 3.14645 0.146447L0.146446 3.14645C-0.0488157 3.34171 -0.0488157 3.65829 0.146446 3.85355C0.341709 4.04882 0.658291 4.04882 0.853554 3.85355L3.5 1.20711L6.14645 3.85355Z"
876                      fill="#6B6B6B">
877                    </path>
878                  </svg>
879                </button>
880              </div>
881              <input class="product-filter-by-price-input"
882                v-if="shop.products.utilities.filters.price.show"
883                type="range"
884                min="1"
885                v-bind:max="shop.products.utilities.filters.price.max"
886                v-model="shop.products.utilities.filters.selected.price"
887                @wheel="$event.preventDefault();"
888                @change="productFiltersPerform();"/>
889              <div class="product-filter-by-price-row"
890                v-if="shop.products.utilities.filters.price.show">
891                <div class="product-filter-by-price-max-input"
892                  v-text="'Max. $'+shop.products.utilities.filters.price.max">
893                </div>
894                <div class="product-filter-by-price-value"
895                  v-text="'$'+shop.products.utilities.filters.selected.price">
896                </div>
897              </div>
898            </div>
899            <div class="product-filter-group product-filter-by-type"
900              v-if="shop.products.utilities.filters.type.list.length"
901              :class="{ '--show' : shop.products.utilities.filters.type.show }">
902              <div class="we-row">
903                <h4 class="product-filter-title"
904                  v-text="'By Product Type'">
905                </h4>
906                <button class="we-btn--product-filter product-filter-by-type"
907                  @click="shop.products.utilities.filters.type.show = !shop.products.utilities.filters.type.show;">
908                  <div class="we-btn-label"
909                    v-text="shop.products.utilities.filters.type.show ? 'Hide' : 'Show'">
910                  </div>
911                  <svg class="we-svg-icon-angle-up we-svg"
912                    width="7"
913                    height="4"
914                    viewBox="0 0 7 4"
915                    fill="none"
916                    xmlns="http://www.w3.org/2000/svg">
917                    <path id="path_01"
918                      d="M6.14645 3.85355C6.34171 4.04882 6.65829 4.04882 6.85355 3.85355C7.04882 3.65829 7.04882 3.34171 6.85355 3.14645L3.85355 0.146447C3.65829 -0.0488157 3.34171 -0.0488157 3.14645 0.146447L0.146446 3.14645C-0.0488157 3.34171 -0.0488157 3.65829 0.146446 3.85355C0.341709 4.04882 0.658291 4.04882 0.853554 3.85355L3.5 1.20711L6.14645 3.85355Z"
919                      fill="#6B6B6B">
920                    </path>
921                  </svg>
922                </button>
923              </div>
924              <ul class="checkbox-list"
925                v-if="shop.products.utilities.filters.type.show">
926                <li class="checkbox-item"
927                  v-for="product_type in shop.products.utilities.filters.type.list.slice(0, shop.products.utilities.filters.type.listLimit)">
928                  <input class="checkbox-input"
929                    :id="'Type: '+product_type"
930                    type="checkbox"
931                    :value="product_type"
932                    v-model="shop.products.utilities.filters.selected.type"
933                    @change="productFiltersPerform();">
934                  <label class="checkbox-label"
935                    :for="'Type: '+product_type"
936                    v-text="product_type">
937                  </label>
938                </li>
939              </ul>
940              <div class="product-filter-see-all-list"
941                v-if="shop.products.utilities.filters.type.list.length > 5 && shop.products.utilities.filters.type.show"
942                v-text="shop.products.utilities.filters.type.listLimit == shop.products.utilities.filters.type.list.length ? 'Hide' : 'See All'"
943                @click="productFiltersSeeAll('type');">
944              </div>
945            </div>
946            <div class="product-filter-group product-filter-by-tag"
947              v-if="shop.products.utilities.filters.tag.list.length"
948              :class="{ '--show' : shop.products.utilities.filters.tag.show }">
949              <div class="we-row">
950                <h4 class="product-filter-title"
951                  v-text="'By Product Tag'">
952                </h4>
953                <button class="we-btn--product-filter product-filter-by-tag"
954                  @click="shop.products.utilities.filters.tag.show = !shop.products.utilities.filters.tag.show;">
955                  <div class="we-btn-label"
956                    v-text="shop.products.utilities.filters.tag.show ? 'Hide' : 'Show'">
957                  </div>
958                  <svg class="we-svg-icon-angle-up we-svg"
959                    width="7"
960                    height="4"
961                    viewBox="0 0 7 4"
962                    fill="none"
963                    xmlns="http://www.w3.org/2000/svg">
964                    <path id="path_01"
965                      d="M6.14645 3.85355C6.34171 4.04882 6.65829 4.04882 6.85355 3.85355C7.04882 3.65829 7.04882 3.34171 6.85355 3.14645L3.85355 0.146447C3.65829 -0.0488157 3.34171 -0.0488157 3.14645 0.146447L0.146446 3.14645C-0.0488157 3.34171 -0.0488157 3.65829 0.146446 3.85355C0.341709 4.04882 0.658291 4.04882 0.853554 3.85355L3.5 1.20711L6.14645 3.85355Z"
966                      fill="#6B6B6B">
967                    </path>
968                  </svg>
969                </button>
970              </div>
971              <ul class="checkbox-list"
972                v-if="shop.products.utilities.filters.tag.show">
973                <li class="checkbox-item"
974                  v-for="product_tag in shop.products.utilities.filters.tag.list.slice(0, shop.products.utilities.filters.tag.listLimit)">
975                  <input class="checkbox-input"
976                    :id="'Tag: '+product_tag"
977                    type="checkbox"
978                    :value="product_tag"
979                    v-model="shop.products.utilities.filters.selected.tag"
980                    @change="productFiltersPerform();">
981                  <label class="checkbox-label"
982                    :for="'Tag: '+product_tag"
983                    v-text="product_tag">
984                  </label>
985                </li>
986              </ul>
987              <div class="product-filter-see-all-list"
988                v-if="shop.products.utilities.filters.tag.list.length > 5 && shop.products.utilities.filters.tag.show"
989                v-text="shop.products.utilities.filters.tag.listLimit == shop.products.utilities.filters.tag.list.length ? 'Hide' : 'See All'"
990                @click="productFiltersSeeAll('tag');">
991              </div>
992            </div>
993            <div class="product-filter-group product-filter-by-vendor"
994              v-if="shop.products.utilities.filters.vendor.list.length"
995              :class="{ '--show' : shop.products.utilities.filters.vendor.show }">
996              <div class="we-row">
997                <h4 class="product-filter-title"
998                  v-text="'By Vendor'">
999                </h4>
1000                <button class="we-btn--product-filter product-filter-by-vendor"
1001                  @click="shop.products.utilities.filters.vendor.show = !shop.products.utilities.filters.vendor.show;">
1002                  <div class="we-btn-label"
1003                    v-text="shop.products.utilities.filters.vendor.show ? 'Hide' : 'Show'">
1004                  </div>
1005                  <svg class="we-svg-icon-angle-up we-svg"
1006                    width="7"
1007                    height="4"
1008                    viewBox="0 0 7 4"
1009                    fill="none"
1010                    xmlns="http://www.w3.org/2000/svg">
1011                    <path id="path_01"
1012                      d="M6.14645 3.85355C6.34171 4.04882 6.65829 4.04882 6.85355 3.85355C7.04882 3.65829 7.04882 3.34171 6.85355 3.14645L3.85355 0.146447C3.65829 -0.0488157 3.34171 -0.0488157 3.14645 0.146447L0.146446 3.14645C-0.0488157 3.34171 -0.0488157 3.65829 0.146446 3.85355C0.341709 4.04882 0.658291 4.04882 0.853554 3.85355L3.5 1.20711L6.14645 3.85355Z"
1013                      fill="#6B6B6B">
1014                    </path>
1015                  </svg>
1016                </button>
1017              </div>
1018              <ul class="checkbox-list"
1019                v-if="shop.products.utilities.filters.vendor.show">
1020                <li class="checkbox-item"
1021                  v-for="product_vendor in shop.products.utilities.filters.vendor.list.slice(0, shop.products.utilities.filters.vendor.listLimit)">
1022                  <input class="checkbox-input"
1023                    :id="'Vendor: '+product_vendor"
1024                    type="checkbox"
1025                    :value="product_vendor"
1026                    v-model="shop.products.utilities.filters.selected.vendor"
1027                    @change="productFiltersPerform();">
1028                  <label class="checkbox-label"
1029                    :for="'Vendor: '+product_vendor"
1030                    v-text="product_vendor">
1031                  </label>
1032                </li>
1033              </ul>
1034              <div class="product-filter-see-all-list"
1035                v-if="shop.products.utilities.filters.vendor.list.length > 5 && shop.products.utilities.filters.vendor.show"
1036                v-text="shop.products.utilities.filters.vendor.listLimit == shop.products.utilities.filters.vendor.list.length ? 'Hide' : 'See All'"
1037                @click="productFiltersSeeAll('vendor');">
1038              </div>
1039            </div>
1040          </div>
1041        </div>
1042        <div class="we-col">
1043          <div class="products-utilities">
1044            <div class="product-counts"
1045              :class="{ '--show' : !shop.products.loader }">
1046              Found <span v-text="shop.products.list.filtered.length"></span> items on filter
1047            </div>
1048            <button class="we-btn--product-filters"
1049              @click="productFiltersToggleOnMobile();">
1050              <div class="we-btn-label">All Filters</div>
1051              <svg class="we-svg-icon-filters we-svg"
1052                xmlns="http://www.w3.org/2000/svg"
1053                width="24"
1054                height="24"
1055                viewBox="0 0 24 24"
1056                fill="none">
1057                <path id="path_01"
1058                  d="M3 5H7M21 5H11M3 12H15M21 12H19M3 19H5M21 19H9"
1059                  stroke="#1B1B1B66"
1060                  stroke-width="2"
1061                  stroke-linecap="round">
1062                </path>
1063                <circle id="circle_01"
1064                  cx="9"
1065                  cy="5"
1066                  r="2"
1067                  stroke="#1B1B1B66"
1068                  stroke-width="2"
1069                  stroke-linecap="round">
1070                </circle>
1071                <circle id="circle_02"
1072                  cx="17"
1073                  cy="12"
1074                  r="2"
1075                  stroke="#1B1B1B66"
1076                  stroke-width="2"
1077                  stroke-linecap="round">
1078                </circle>
1079                <circle id="circle_03"
1080                  cx="7"
1081                  cy="19"
1082                  r="2"
1083                  stroke="#1B1B1B66"
1084                  stroke-width="2"
1085                  stroke-linecap="round">
1086                </circle>
1087              </svg>
1088            </button>
1089            <div class="product-sort-row">
1090              <div class="product-sort-label"
1091                v-text="'Sort by'">
1092              </div>
1093              <div class="product-sort-wrap ds-view"
1094                :class="{ '--show' : shop.products.utilities.sort.showList }">
1095                <input class="product-sort-input"
1096                  type="text"
1097                  :value="shop.products.utilities.sort.by"
1098                  @click="toggleProductSort();"
1099                  readonly/>
1100                <svg class="we-svg-icon-angle-down we-svg"
1101                  width="8"
1102                  height="4"
1103                  viewBox="0 0 8 4"
1104                  fill="none"
1105                  xmlns="http://www.w3.org/2000/svg">
1106                  <path id="path_01"
1107                    d="M1.35355 0.146447C1.15829 -0.0488155 0.841709 -0.0488155 0.646447 0.146447C0.451184 0.341709 0.451184 0.658291 0.646447 0.853553L3.64645 3.85355C3.84171 4.04882 4.15829 4.04882 4.35355 3.85355L7.35355 0.853553C7.54882 0.658291 7.54882 0.341709 7.35355 0.146447C7.15829 -0.0488155 6.84171 -0.0488155 6.64645 0.146447L4 2.79289L1.35355 0.146447Z"
1108                    fill="#FFFFFF">
1109                  </path>
1110                </svg>
1111                <div class="product-sort-list we-scroll-bar">
1112                  <div class="product-sort-item"
1113                    v-for="sortItem in shop.products.utilities.sort.list"
1114                    v-text="sortItem"
1115                    @click="selectedProductSort(sortItem);">
1116                  </div>
1117                </div>
1118              </div>
1119              <div class="product-sort-wrap mb-view">
1120                <select class="product-sort-select"
1121                  v-model="shop.products.utilities.sort.by"
1122                  @change="selectedProductSort(shop.products.utilities.sort.by);">
1123                  <option class="product-sort-option"
1124                    v-for="sortItem in shop.products.utilities.sort.list"
1125                    :value="sortItem"
1126                    v-text="sortItem">
1127                  </option>
1128                </select>
1129                <svg class="we-svg-icon-angle-down we-svg"
1130                  width="8"
1131                  height="4"
1132                  viewBox="0 0 8 4"
1133                  fill="none"
1134                  xmlns="http://www.w3.org/2000/svg">
1135                  <path id="path_01"
1136                    d="M1.35355 0.146447C1.15829 -0.0488155 0.841709 -0.0488155 0.646447 0.146447C0.451184 0.341709 0.451184 0.658291 0.646447 0.853553L3.64645 3.85355C3.84171 4.04882 4.15829 4.04882 4.35355 3.85355L7.35355 0.853553C7.54882 0.658291 7.54882 0.341709 7.35355 0.146447C7.15829 -0.0488155 6.84171 -0.0488155 6.64645 0.146447L4 2.79289L1.35355 0.146447Z"
1137                    fill="#FFFFFF">
1138                  </path>
1139                </svg>
1140              </div>
1141            </div>
1142          </div>
1143          <div class="products-loader"
1144            v-if="shop.products.loader">
1145            <svg class="we-svg-icon-loader we-svg" version="1.1" id="L3" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 100 100" enable-background="new 0 0 0 0" xml:space="preserve">
1146  <circle id="circle_01" cx="50" cy="50" r="44" fill="none" stroke="#00407B" stroke-width="4" style="opacity: 0.5;"></circle>
1147  <circle id="circle_02" cx="8" cy="54" r="6" fill="#00407B" stroke="#09244F" stroke-width="3">
1148    <animateTransform
1149      attributeName="transform"
1150      dur="2s"
1151      type="rotate"
1152      from="0 50 48"
1153      to="360 50 52"
1154      repeatCount="indefinite" />
1155  </circle>
1156</svg>
1157          </div>
1158          <div class="products-not-found"
1159            v-if="!shop.products.loader && !shop.products.pagination.paginate.list.length"
1160            v-text="'NO PRODUCTS FOUND'">
1161          </div>
1162          <div class="products-grid-listing"
1163            v-if="!shop.products.loader && shop.products.pagination.paginate.list.length">
1164            <div class="product-grid-item"
1165              v-for="(productItem, productIndex) in shop.products.pagination.paginate.list"
1166              :id="productIndex"
1167              :data-product-title="productItem.title"
1168              :data-product-price="productItem.variants[0].price"
1169              :data-product-id="productItem.id">
1170
1171              
1172              <div class="product-img"
1173                v-if="productItem.images.length != 0"
1174                :style="{ backgroundImage: 'url(' + productItem.images[0].src + ')' }"
1175                @click="goToProductPage(productItem.handle);">
1176              </div>
1177              <div class="product-img"
1178                v-if="productItem.images.length == 0"
1179                style="background-image: url(//walkerengineering.co/cdn/shop/t/3/assets/we-svg-placeholder-img.svg?v=155693266228122343601685996760);"
1180                @click="goToProductPage(productItem.handle);">
1181              </div>
1182
1183              
1184              <div class="product-discount"
1185                v-if="productItem.variants[0].compare_at_price != null"
1186                v-html="calculateProductDiscount(productItem.variants[0].compare_at_price, productItem.variants[0].price)">
1187              </div>
1188              
1189              <div class="product-details">
1190                
1191                
1192                <div class="product-new"
1193                  v-if="isProductNew(productItem.created_at)"
1194                  v-text="'NEW'">
1195                </div>
1196
1197                
1198                <div class="product-title"
1199                  :title="productItem.title"
1200                  v-text="productItem.title"
1201                  @click="goToProductPage(productItem.handle);">
1202                </div>
1203
1204                
1205                <div class="product-type"
1206                  v-text="productItem.product_type">
1207                </div>
1208
1209                
1210
1211                <div class="we-row">
1212                  
1213                  
1214                  <div class="product-current-price"
1215                    v-text="'$'+productItem.variants[0].price">
1216                  </div>
1217                  
1218                  
1219                  <div class="product-before-price"
1220                    v-if="productItem.variants[0].compare_at_price != null"
1221                    v-text="'$'+productItem.variants[0].compare_at_price">
1222                  </div>
1223
1224                  
1225                  <button class="we-btn--add-to-cart"
1226                    title="Add to Cart"
1227                    @click="addThisToCart(productItem, $event);">
1228                    <svg class="we-svg-icon-cart we-svg" width="20" height="19" viewBox="0 0 20 19" fill="none" xmlns="http://www.w3.org/2000/svg">
1229  <path id="path_01" d="M5.79447 19.0005C5.27182 19.0005 4.82455 18.8146 4.45267 18.4428C4.08016 18.0704 3.8939 17.623 3.8939 17.1005C3.8939 16.578 4.08016 16.1305 4.45267 15.7581C4.82455 15.3864 5.27182 15.2005 5.79447 15.2005C6.31713 15.2005 6.76439 15.3864 7.13627 15.7581C7.50878 16.1305 7.69504 16.578 7.69504 17.1005C7.69504 17.623 7.50878 18.0704 7.13627 18.4428C6.76439 18.8146 6.31713 19.0005 5.79447 19.0005ZM15.2973 19.0005C14.7746 19.000
12295 14.3274 18.8146 13.9555 18.4428C13.583 18.0704 13.3967 17.623 13.3967 17.1005C13.3967 16.578 13.583 16.1305 13.9555 15.7581C14.3274 15.3864 14.7746 15.2005 15.2973 15.2005C15.82 15.2005 16.2675 15.3864 16.64 15.7581C17.0119 16.1305 17.1979 16.578 17.1979 17.1005C17.1979 17.623 17.0119 18.0704 16.64 18.4428C16.2675 18.8146 15.82 19.0005 15.2973 19.0005ZM4.98673 3.80049L7.26741 8.55049H13.9194L16.5327 3.80049H4.98673ZM5.79447 14.2505C5.08176 14.2505 4.54326 13.9376 4.17899 13.3119C3.81471 12.6868 3.79888 12.0655 4.13148 11.448L5.41436 9.12049L1.99334 1.90049H1.0193C0.750052 1.90049 0.52832 1.80929 0.354101 1.62689C0.179883 1.44512 0.0927734 1.21965 0.0927734 0.950488C0.0927734 0.681322 0.184001 0.455538 0.366455 0.273138C0.548276 0.0913716 0.773809 0.000488281 1.04306 0.000488281H2.58727C2.76148 0.000488281 2.92778 0.0479884 3.08616 0.142988C3.24454 0.237988 3.36333 0.372572 3.44252 0.546738L4.08396 1.90049H18.1006C18.5283 1.90049 18.8213 2.05882 18.9796 2.37549C19.138 2.69215 19.1301 3.02466 18.9559 3.37299L15.5824 9.45299C15.4082 9.76965 15.1785 10.0151 14.8934 10.1892C14.6083 10.3634 14.2837 10.4505 13.9194 10.4505H6.83978L5.79447 12.3505H16.2713C16.5406 12.3505 16.7623 12.4414 16.9365 12.6231C17.1108 12.8055 17.1979 13.0313 17.1979 13.3005C17.1979 13.5697 17.1066 13.7951 16.9242 13.9769C16.7424 14.1593 16.5168 14.2505 16.2476 14.2505H5.79447Z" fill="#1B1B1B"></path>
1230</svg>
1231                  </button>
1232
1233                </div>
1234              </div>
1235            </div>
1236          </div>
1237          <div class="products-pagination we-sf-pagination --airsep-accent"
1238            v-if="shop.products.pagination.total > 1">
1239
1240            <div class="prev"
1241              v-if="shop.products.pagination.current != 1"
1242              @click="paginationPrevPage();">
1243              <svg class="we-svg-arrow-left we-svg" width="8" height="14" viewBox="0 0 8 14" fill="none" xmlns="http://www.w3.org/2000/svg">
1244  <path id="path_01" d="M2.41421 7L7.70711 1.70711C8.09763 1.31658 8.09763 0.683417 7.70711 0.292893C7.31658 -0.0976311 6.68342 -0.0976311 6.29289 0.292893L0.292893 6.29289C-0.0976311 6.68342 -0.0976311 7.31658 0.292893 7.70711L6.29289 13.7071C6.68342 14.0976 7.31658 14.0976 7.70711 13.7071C8.09763 13.3166 8.09763 12.6834 7.70711 12.2929L2.41421 7Z" fill="#4C5157"></path>
1245</svg>
1246            </div>
1247
1248            <div class="pages"
1249              :class="{ 'current' : 1 == shop.products.pagination.current }"
1250              @click="paginationSelectedPage(1);"
1251              v-html="1">
1252            </div>
1253
1254            <div class="dots"
1255              v-if="shop.products.pagination.total > 6 && shop.products.pagination.current >= shop.products.pagination.rangeCount"
1256              @click="paginationSelectedPage(shop.products.pagination.startCount);"
1257              v-text="'...'">
1258            </div>
1259
1260            <div class="pages"
1261              :class="{ 'current' : n == shop.products.pagination.current }"
1262              v-for="n in shop.products.pagination.pages.slice(shop.products.pagination.startCount, shop.products.pagination.endCount)"
1263              @click="paginationSelectedPage(n);"
1264              v-html="n">
1265            </div>
1266
1267            <div class="dots"
1268              v-if="shop.products.pagination.total > 6 && shop.products.pagination.current <= (shop.products.pagination.total - (shop.products.pagination.rangeCount - 1))"
1269              @click="paginationSelectedPage(shop.products.pagination.endCount + 1);"
1270              v-text="'...'">
1271            </div>
1272
1273            <div class="pages"
1274              v-if="shop.products.pagination.total > 1"
1275              :class="{ 'current' : shop.products.pagination.total == shop.products.pagination.current }"
1276              @click="paginationSelectedPage(shop.products.pagination.total);"
1277              v-html="shop.products.pagination.total">
1278            </div>
1279
1280            <div class="next"
1281              v-if="shop.products.pagination.current != shop.products.pagination.total"
1282              @click="paginationNextPage();">
1283              <svg class="we-svg-arrow-right we-svg" width="8" height="14" viewBox="0 0 8 14" fill="none" xmlns="http://www.w3.org/2000/svg">
1284  <path id="path_01" d="M1.70711 0.292893C1.31658 -0.0976311 0.683417 -0.0976311 0.292893 0.292893C-0.0976311 0.683417 -0.0976311 1.31658 0.292893 1.70711L5.58579 7L0.292893 12.2929C-0.0976311 12.6834 -0.0976311 13.3166 0.292893 13.7071C0.683417 14.0976 1.31658 14.0976 1.70711 13.7071L7.70711 7.70711C8.09763 7.31658 8.09763 6.68342 7.70711 6.29289L1.70711 0.292893Z" fill="#4C5157"></path>
1285</svg>
1286            </div>
1287
1288          </div>
1289        </div>
1290      </div>
1291    </div>
1292  </section>
1293
1294</div>
1295<script>
1296  const WE_SF_Page_Shop_Airsep_Options = {
1297    name: 'WE SF Page Shop Airsep Options',
1298    data() {
1299      return {
1300        shop: {
1301          products: {
1302            count: 224,
1303            loader: true,
1304            list: {
1305              all: [],
1306              airsep: [],
1307              filtered: [],
1308            },
1309            pagination: {
1310              current: 1, // current page
1311              total: 0, // get total pages
1312              pages: [], // array of pages after calculating list divided by perPage
1313              rangeCount: 5,
1314              startCount: 0, // startCount is index of pages[] array to display
1315              endCount: 0, // endCount is index of pages[] array to display
1316              paginate: {
1317                list: [], // list to paginate
1318                startIndex: 0, // startIndex of list to display in paginataion
1319                perPage: 9, // number of items to display per page
1320                endIndex: 0, // endIndex of list to display in pagination
1321              },
1322            },
1323            utilities: {
1324              sort: {
1325                list: [
1326                  'Name',
1327                  /* 'Reviews', */
1328                  'Price: High-Low',
1329                  'Price: Low-High',
1330                  'Sale',
1331                ],
1332                showList: false,
1333                by: 'Name',
1334              },
1335              filters: {
1336                price: {
1337                  show: false,
1338                  max: 0,
1339                },
1340                type: {
1341                  show: false,
1342                  listLimit: 5,
1343                  list: [],
1344                },
1345                tag: {
1346                  show: false,
1347                  listLimit: 5,
1348                  list: [],
1349                },
1350                vendor: {
1351                  show: false,
1352                  listLimit: 5,
1353                  list: [],
1354                },
1355                selected: {
1356                  price: 0,
1357                  type: [],
1358                  tag: [],
1359                  vendor: [],
1360                },
1361                toggleOnMobile: false,
1362              },
1363            },
1364            search: {
1365              active: false,
1366              query: '',
1367              resultList: [],
1368            },
1369          },
1370        },
1371
1372        collection: {
1373          data: {
1374            title: 'All Products',
1375            handle: 'all-products',
1376          },
1377          count: {
1378            loader: true,
1379          },
1380          products: {
1381            loader: true,
1382            list: {
1383              all: [],
1384              filtered: [],
1385            },
1386            pagination: {
1387              current: 1, // current page
1388              total: 0, // get total pages
1389              pages: [], // array of pages after calculating list divided by perPage
1390              rangeCount: 5,
1391              startCount: 0, // startCount is index of pages[] array to display
1392              endCount: 0, // endCount is index of pages[] array to display
1393              paginate: {
1394                list: [], // list to paginate
1395                startIndex: 0, // startIndex of list to display in paginataion
1396                perPage: 9, // number of items to display per page
1397                endIndex: 0, // endIndex of list to display in pagination
1398              },
1399            },
1400            utilities: {
1401              sort: {
1402                list: [
1403                  'Name',
1404                  /* 'Reviews', */
1405                  'Price: High-Low',
1406                  'Price: Low-High',
1407                  'Sale',
1408                ],
1409                showList: false,
1410                by: 'Name',
1411              },
1412              filters: {
1413                price: {
1414                  show: false,
1415                  max: 0,
1416                },
1417                type: {
1418                  show: false,
1419                  listLimit: 5,
1420                  list: [],
1421                },
1422                tag: {
1423                  show: false,
1424                  listLimit: 5,
1425                  list: [],
1426                },
1427                vendor: {
1428                  show: false,
1429                  listLimit: 5,
1430                  list: [],
1431                },
1432                selected: {
1433                  price: 0,
1434                  type: [],
1435                  tag: [],
1436                  vendor: [],
1437                },
1438                toggleOnMobile: false,
1439              },
1440            },
1441            search: {
1442              active: false,
1443              query: '',
1444              resultList: [],
1445            },
1446          },
1447        },
1448      }
1449    },
1450    created() {
1451      this.initPage();
1452      this.fetchCollectionData();
1453    },
1454    mounted() {},
1455    updated() {},
1456    methods: {
1457      // fetch shop products
1458      async initPage() {
1459        var productsLimitPerFetch = 30;
1460        var productsTotalPageFetch = Math.ceil(this.shop.products.count / productsLimitPerFetch);
1461        // console.log('productsTotalPageFetch =', productsTotalPageFetch);
1462        
1463        await this.fetchShopProducts(productsLimitPerFetch, productsTotalPageFetch);
1464
1465        this.paginationSetTotalPages();
1466        this.paginationPaginateLists();
1467        this.getProductMaxPrice();
1468        this.getProductTypes();
1469        this.getProductTags();
1470        this.getProductVendors();
1471
1472        this.shop.products.loader = false;
1473
1474        this.filterInitDataByData();
1475      },
1476      async fetchShopProducts(productsLimitPerFetch, productsTotalPageFetch) {
1477        for (let page = 1; page <= productsTotalPageFetch; page++) {
1478          
1479          // console.log('page =', page);
1480          var productEndpoint = `/products.json?page=${page}`;
1481          
1482          const response = await fetch(productEndpoint);
1483          const data = await response.json();
1484          console.log('data =', data);
1485          data.products.forEach((item) => {
1486            this.shop.products.list.all.push(item);
1487            if (item.vendor.toLowerCase().includes('airsep')) {
1488              this.shop.products.list.airsep.push(item);
1489              this.shop.products.list.filtered.push(item);
1490            }
1491          });
1492        
1493        }
1494      },
1495
1496      // fetch collection data
1497      fetchCollectionData() {
1498        const collectionEndpoint = `/collections/${this.collection.data.handle}/count.json`;
1499        fetch(collectionEndpoint)
1500        .then(response => response.json())
1501        .then(data => {
1502          console.log(`Fetch Collection Data from Endpoint SUCCESS...`, data);
1503          this.collection.count = data.collection;
1504          this.fetchProductsInCollection();
1505        })
1506        .catch(error => {
1507          console.log(`Fetch Collection Data from Endpoint FAILED...`, error);
1508        })
1509        .finally(() => {
1510          this.collection.count.loader = false;
1511          if (this.collection.count.products_count == 0) this.shop.products.loader = false;
1512        });
1513      },
1514
1515      // onload filter products by application tag
1516      filterInitDataByData() {
1517        let queryString = window.location.search;
1518        let urlParams = new URLSearchParams(queryString);
1519        if (urlParams.has('tags')) {
1520          tagFilter = urlParams.get('tags');
1521          // console.log('YES!', tagFilter);
1522          this.shop.products.utilities.filters.selected.tag.push(tagFilter);
1523          // this.shop.products.utilities.filters.tag.show = true;
1524          this.productFiltersSeeAll('tag');
1525          this.productFiltersPerform();
1526        }
1527      },
1528
1529      // fetching products in collection
1530      fetchProductsInCollection() {
1531        var productsLimitPerFetch = 30;
1532        var productsTotalPageFetch = Math.ceil(this.collection.count.products_count / productsLimitPerFetch);
1533        // console.log('productsTotalPageFetch =', productsTotalPageFetch);
1534
1535        for (var page = 1; page <= productsTotalPageFetch; page++) {
1536          var productEndpoint = `/collections/${this.collection.data.handle}/products.json?page=${page}`;
1537          fetch(productEndpoint)
1538          .then(response => response.json())
1539          .then(data => {
1540            console.log(`Fetch Products in Collection from Endpoint SUCCESS...`, productEndpoint, data);
1541            data.products.forEach((item) => {
1542              this.collection.products.list.all.push(item);
1543              this.collection.products.list.filtered.push(item);
1544            });
1545          })
1546          .catch(error => {
1547            console.log(`Fetch Products in Collection from Endpoint FAILED...`, productEndpoint, error);
1548          })
1549          .finally(() => {
1550            this.collection.products.loader = false;
1551          });
1552        }
1553      },
1554
1555      // pagination and products display
1556      paginationSetTotalPages() {
1557        // console.log('paginationSetTotalPages');
1558        this.shop.products.pagination.current = 1;
1559        this.shop.products.pagination.paginate.startIndex = 0;
1560        this.shop.products.pagination.paginate.endIndex = this.shop.products.pagination.paginate.perPage;
1561        this.shop.products.pagination.total = Math.ceil(this.shop.products.list.filtered.length / this.shop.products.pagination.paginate.perPage);
1562        this.shop.products.pagination.startCount = this.shop.products.pagination.rangeCount - (this.shop.products.pagination.rangeCount - 1);
1563        this.shop.products.pagination.endCount = this.shop.products.pagination.rangeCount;
1564
1565        this.shop.products.pagination.pages = [];
1566        for (var n = 1; n <= this.shop.products.pagination.total; n++) {
1567          this.shop.products.pagination.pages.push(n);
1568        }
1569      },
1570      paginationSelectedPage(page) {
1571        // console.log('paginationSelectedPage');
1572        this.shop.products.pagination.current = page;
1573        this.shop.products.pagination.paginate.startIndex = (page * this.shop.products.pagination.paginate.perPage) - (this.shop.products.pagination.paginate.perPage);
1574        this.shop.products.pagination.paginate.endIndex = (page * this.shop.products.pagination.paginate.perPage);
1575
1576        // if pagination.total is less than or equal to pagination.rangeCount
1577        if (this.shop.products.pagination.total <= this.shop.products.pagination.rangeCount) {
1578          // console.log('if - A');
1579          this.shop.products.pagination.startCount = this.shop.products.pagination.rangeCount - (this.shop.products.pagination.rangeCount - 1);
1580          this.shop.products.pagination.endCount = (this.shop.products.pagination.total - 1);
1581        }
1582        // else pagination.total is greater than pagination.rangeCount
1583        else {
1584          if (this.shop.products.pagination.current < this.shop.products.pagination.rangeCount) {
1585            // console.log('if - B1');
1586            this.shop.products.pagination.startCount = this.shop.products.pagination.rangeCount - (this.shop.products.pagination.rangeCount - 1);
1587            this.shop.products.pagination.endCount = this.shop.products.pagination.rangeCount;
1588          }
1589          else if (this.shop.products.pagination.current > (this.shop.products.pagination.total - (this.shop.products.pagination.rangeCount - 1))) {
1590            // console.log('if - B2');
1591            this.shop.products.pagination.startCount = (this.shop.products.pagination.total - this.shop.products.pagination.rangeCount);
1592            this.shop.products.pagination.endCount = this.shop.products.pagination.total - 1;
1593          }
1594          else {
1595            // console.log('if - B3');
1596            this.shop.products.pagination.startCount = this.shop.products.pagination.current - 3;
1597            this.shop.products.pagination.endCount = this.shop.products.pagination.current + 2;
1598          }
1599        }
1600
1601        this.paginationPaginateLists();
1602
1603        this.paginationScrollTop();
1604      },
1605      paginationPrevPage() {
1606        // console.log('paginationPrevPage');
1607        this.shop.products.pagination.current -= 1;
1608        this.paginationSelectedPage(this.shop.products.pagination.current);
1609      },
1610      paginationNextPage() {
1611        // console.log('paginationNextPage');
1612        this.shop.products.pagination.current += 1;
1613        this.paginationSelectedPage(this.shop.products.pagination.current);
1614      },
1615      paginationPaginateLists() {
1616        // console.log('paginationPaginateLists');
1617        this.shop.products.pagination.paginate.list = [];
1618        this.productsFadeIn(500);
1619        this.doProductSortBy();
1620        
1621        this.shop.products.list.filtered.slice(this.shop.products.pagination.paginate.startIndex, this.shop.products.pagination.paginate.endIndex).forEach((item, index) => {
1622          this.shop.products.pagination.paginate.list.push(item);
1623        });
1624      },
1625      paginationScrollTop() {
1626        // console.log('paginationScrollTop');
1627        const scrollTo = document.querySelector('.we-section--shop-product-listing');
1628        scrollTo.scrollIntoView();
1629      },
1630
1631      // product filters
1632      getProductTypes() {
1633        // console.log('getProductTypes');
1634
1635        const tempArr = [];
1636        this.shop.products.list.filtered.forEach((productItem, productIndex) => {
1637          if (productItem.product_type != '') tempArr.push(productItem.product_type);
1638        });
1639        
1640        this.shop.products.utilities.filters.type.list = tempArr.reduce((final, current) => {
1641          let data = final.find((item) => item === current);
1642        
1643          if (data) return final;
1644          return final.concat([current]);
1645        }, []);
1646      },
1647      getProductTags() {
1648        // console.log('getProductTags');
1649
1650        const tempArr = [];
1651        this.shop.products.list.filtered.forEach((productItem, productIndex) => {
1652          productItem.tags.forEach((tagItem, tagIndex) => {
1653            if (tagItem != '') tempArr.push(tagItem);
1654          });
1655        });
1656
1657        this.shop.products.utilities.filters.tag.list = tempArr.reduce((final, current) => {
1658          let data = final.find((item) => item === current);
1659
1660          if (data) return final;
1661          return final.concat([current]);
1662        }, []);
1663      },
1664      getProductVendors() {
1665        // console.log('getProductVendors');
1666
1667        const tempArr = [];
1668        this.shop.products.list.filtered.forEach((productItem, productIndex) => {
1669          if (productItem.vendor != '') tempArr.push(productItem.vendor);
1670        });
1671
1672        this.shop.products.utilities.filters.vendor.list = tempArr.reduce((final, current) => {
1673          let data = final.find((item) => item === current);
1674
1675          if (data) return final;
1676          return final.concat([current]);
1677        }, []);
1678      },
1679      getProductMaxPrice() {
1680        // console.log('getProductMaxPrice');
1681        
1682        const tempArr = [];
1683        this.shop.products.list.filtered.forEach((productItem, productIndex) => {
1684          productItem.variants.forEach((variantItem, variantIndex) => {
1685            tempArr.push(Number(variantItem.price));
1686          });
1687        });
1688
1689        tempArr.sort((a, b) => {
1690          if (a < b) return 1;
1691          if (a > b) return -1;
1692          return 0;
1693        });
1694
1695        this.shop.products.utilities.filters.price.max = tempArr[0];
1696        this.shop.products.utilities.filters.selected.price = this.shop.products.utilities.filters.price.max;
1697      },
1698      productFiltersReset() {
1699        // console.log('productFiltersReset');
1700        this.shop.products.utilities.filters.selected.price = this.shop.products.utilities.filters.price.max;
1701        this.shop.products.utilities.filters.selected.type = [];
1702        this.shop.products.utilities.filters.selected.tag = [];
1703        this.shop.products.utilities.filters.selected.vendor = [];
1704        this.shop.products.list.filtered = this.shop.products.list.airsep;
1705        this.paginationSetTotalPages();
1706        this.paginationSelectedPage(1);
1707      },
1708      productFiltersSeeAll(name) {
1709        // console.log('productFiltersSeeAll =', name);
1710        if (name == 'type') {
1711          this.shop.products.utilities.filters.type.listLimit = (this.shop.products.utilities.filters.type.listLimit == 5) ? this.shop.products.utilities.filters.type.list.length : 5;
1712        }
1713        if (name == 'tag') {
1714          this.shop.products.utilities.filters.tag.listLimit = (this.shop.products.utilities.filters.tag.listLimit == 5) ? this.shop.products.utilities.filters.tag.list.length : 5;
1715        }
1716        if (name == 'vendor') {
1717          this.shop.products.utilities.filters.vendor.listLimit = (this.shop.products.utilities.filters.vendor.listLimit == 5) ? this.shop.products.utilities.filters.vendor.list.length : 5;
1718        }
1719      },
1720      productFiltersPerform() {
1721        // console.log('productFiltersPerform');
1722        if (
1723          this.shop.products.utilities.filters.selected.price ||
1724          this.shop.products.utilities.filters.selected.type.length ||
1725          this.shop.products.utilities.filters.selected.tag.length ||
1726          this.shop.products.utilities.filters.selected.vendor.length
1727        ) {
1728          // empty shop.products.list.filtered
1729          this.shop.products.list.filtered = [];
1730          this.shop.products.list.airsep.forEach((productItem, productIndex) => {
1731            
1732            // variable isProductFilter meet/comply each filters
1733            var isProductFilter = {
1734              price: true,
1735              type: true,
1736              tag: true,
1737              vendor: true,
1738            };
1739            
1740            // filter products that is less than shop.products.utilities.filters.selected.price
1741            Number(productItem.variants[0].price) <= this.shop.products.utilities.filters.selected.price ? isProductFilter.price = true : isProductFilter.price = false;
1742            
1743            // filter products that is equal to each index of shop.products.utilities.filters.selected.type
1744            if (this.shop.products.utilities.filters.selected.type.length) {
1745              this.shop.products.utilities.filters.selected.type.includes(productItem.product_type) ? isProductFilter.type = true : isProductFilter.type = false;
1746            }
1747            else {
1748              isProductFilter.type = true;
1749            }
1750            
1751            // filter products that is equal to each index of shop.products.utilities.filters.selected.tag
1752            if (this.shop.products.utilities.filters.selected.tag.length) {
1753              isProductFilter.tag = this.shop.products.utilities.filters.selected.tag.some(item => productItem.tags.includes(item));
1754            }
1755            else {
1756              isProductFilter.tag = true;
1757            }
1758            
1759            // filter products that is equal to each index of shop.products.utilities.filters.selected.vendor
1760            if (this.shop.products.utilities.filters.selected.vendor.length) {
1761              this.shop.products.utilities.filters.selected.vendor.includes(productItem.vendor) ? isProductFilter.vendor = true : isProductFilter.vendor = false;
1762            }
1763            else {
1764              isProductFilter.vendor = true;
1765            }
1766
1767            // isProductFilter meet/comply then push to shop.products.list.filtered
1768            // console.log('isProductFilter =', isProductFilter);
1769            if (isProductFilter.price && isProductFilter.type && isProductFilter.tag && isProductFilter.vendor) this.shop.products.list.filtered.push(productItem);
1770          });
1771          this.paginationSetTotalPages();
1772          this.paginationSelectedPage(1);
1773        }
1774        else {
1775          this.shop.products.list.filtered = this.shop.products.list.airsep;
1776          this.paginationSetTotalPages();
1777          this.paginationSelectedPage(1);
1778        }
1779      },
1780      productFiltersToggleOnMobile() {
1781        // console.log('productFiltersToggleOnMobile');
1782        this.shop.products.utilities.filters.toggleOnMobile = !this.shop.products.utilities.filters.toggleOnMobile;
1783      },
1784      
1785      // product sorting
1786      toggleProductSort() {
1787        // console.log('toggleProductSort');
1788        this.shop.products.utilities.sort.showList = !this.shop.products.utilities.sort.showList;
1789      },
1790      selectedProductSort(name) {
1791        // console.log('selectedProductSort');
1792        this.shop.products.utilities.sort.by = name;
1793        this.productsFadeIn(500);
1794        this.toggleProductSort();
1795        this.paginationSelectedPage(1);
1796      },
1797      doProductSortBy() {
1798        // console.log('doProductSortBy = '+this.shop.products.utilities.sort.by);
1799        if (this.shop.products.utilities.sort.by == 'Name') {
1800          return this.shop.products.list.filtered.sort((a, b) => {
1801            let prodA = a.title.toLowerCase();
1802            let prodB = b.title.toLowerCase();
1803            if (prodA < prodB) return -1;
1804            if (prodA > prodB) return 1;
1805            return 0;
1806          });
1807        }
1808
1809        if (this.shop.products.utilities.sort.by == 'Price: High-Low') {
1810          return this.shop.products.list.filtered.sort((a, b) => {
1811            let prodA = Number(a.variants[0].price);
1812            let prodB = Number(b.variants[0].price);
1813            if (prodA < prodB) return 1;
1814            if (prodA > prodB) return -1;
1815            return 0;
1816          });
1817        }
1818
1819        if (this.shop.products.utilities.sort.by == 'Price: Low-High') {
1820          return this.shop.products.list.filtered.sort((a, b) => {
1821            let prodA = Number(a.variants[0].price);
1822            let prodB = Number(b.variants[0].price);
1823            if (prodA < prodB) return -1;
1824            if (prodA > prodB) return 1;
1825            return 0;
1826          });
1827        }
1828
1829        if (this.shop.products.utilities.sort.by == 'Sale') {
1830          return this.shop.products.list.filtered.sort((a, b) => {
1831            let prodA = this.calculateProductDiscount(a.variants[0].compare_at_price, a.variants[0].price);
1832            let prodB = this.calculateProductDiscount(b.variants[0].compare_at_price, b.variants[0].price);
1833            if (prodA < prodB) return -1;
1834            if (prodA > prodB) return 1;
1835            return 0;
1836          });
1837        }
1838      },
1839      
1840      // product item methods
1841      productsFadeIn(delay) {
1842        document.querySelectorAll('.products-grid-listing .product-grid-item').forEach((item, index) => {
1843          item.classList.remove('fade-in');
1844        });
1845
1846        setTimeout(() => {
1847          document.querySelectorAll('.products-grid-listing .product-grid-item').forEach((item, index) => {
1848            setTimeout(() => {
1849              item.classList.add('fade-in');
1850            }, (index * 100));
1851          });
1852        }, delay);
1853      },
1854      goToProductPage(productHandle) {
1855        window.location = `https://walkerengineering.co/products/${productHandle}`;
1856      },
1857      calculateProductDiscount(compare_at_price, price) {
1858        var calculate;
1859        var discount;
1860        if (price == 0 || price == '0.00') {
1861          return '100% OFF';
1862        }
1863        else {
1864          // divide the price to compare_at_price then times 100 then minu
1864s 100
1865          calculate = 100 - ((price/compare_at_price) * 100);
1866          discount = calculate < 0 ? calculate * -1 : calculate;
1867          return discount.toFixed(0)+'% OFF';
1868        }
1869      },
1870      isProductNew(created_at) {
1871        const dateNow = new Date();
1872        const dateNowMonth = dateNow.getMonth();
1873
1874        const dateCreated = new Date(created_at);
1875        const dateCreatedMonth = dateCreated.getMonth();
1876
1877        if (dateCreatedMonth == dateNowMonth) return true;
1878        return false;
1879      },
1880      toggleCartDrawer(boolean) {
1881        const openCartDrawer = document.querySelector('.we-btn--open-cart');
1882        const closeCartDrawer = document.querySelector('.we-btn--close-cart');
1883        if (boolean) openCartDrawer.click();
1884        else closeCartDrawer.click();
1885      },
1886      addToCart() {
1887        let items = [
1888          {
1889            id: this.product.data.variants[0].id,
1890            quantity: this.product.inputQuantity
1891          }
1892        ];
1893
1894        console.log('addToCart =', items);
1895
1896        let self = this;
1897
1898        $.ajax({
1899          type: "POST",
1900          url: '/cart/add.js',
1901          dataType: 'json',
1902          crossDomain: true,
1903          data: {
1904            items: items
1905          },
1906          success: function(data) {
1907            console.log('Added to Cart SUCCESS...', data);
1908            self.toggleCartDrawer(true);
1909          },
1910          error: function(error) {
1911            console.log('Added to Cart FAILED...', error);
1912          }
1913        });
1914      },
1915      addThisToCart(product, event) {
1916        console.log('AddThisToCart =', product);
1917        console.log('event =', event);
1918
1919        event.stopPropagation();
1920        let items = [
1921          {
1922            id: product.variants[0].id,
1923            quantity: 1,
1924          }
1925        ];
1926
1927        let self = this;
1928
1929        $.ajax({
1930          type: "POST",
1931          url: '/cart/add.js',
1932          dataType: 'json',
1933          crossDomain: true,
1934          data: {
1935            items: items
1936          },
1937          success: function(data) {
1938            console.log('Added this to Cart SUCCESS...', data);
1939            self.toggleCartDrawer(true);
1940          },
1941          error: function(error) {
1942            console.log('Added this to Cart FAILED...', error);
1943          }
1944        });
1945      },
1946      proceedToBuyNow() {
1947        this.addToCart();
1948        setTimeout(() => {
1949          window.location = `https://walkerengineering.co/cart`;
1950        }, 1000);
1951      },
1952      
1953      // product search
1954      toggleProductSearch(boolean) {
1955        // console.log('toggleProductSearch');
1956        this.shop.products.search.active = boolean;
1957        this.clearProductSearch();
1958      },
1959      clearProductSearch() {
1960        // console.log('clearProductSearch');
1961        this.shop.products.search.query = '';
1962        this.shop.products.search.resultList = [];
1963      },
1964      doProductSearch() {
1965        // console.log('doProductSearch');
1966        this.shop.products.search.resultList = [];
1967        this.shop.products.list.all.forEach((productItem, productIndex) => {
1968          if (productItem.title.toLowerCase().includes(this.shop.products.search.query.toLowerCase()) && this.shop.products.search.query != '') {
1969            this.shop.products.search.resultList.push(productItem);
1970          }
1971        });
1972      },
1973    }
1974  };
1975
1976  Vue.createApp(WE_SF_Page_Shop_Airsep_Options).mount('.we-page--shop-airsep');
1977</script>
1977</div>
1978    </main>
1979
1980    
1981
1982    
1983
1984<!-- START: WEE Custom Footer -->
1985<div class="we-custom-footer">
1986  <we-elements type="footer"
1987    v-if="footer.primary.loader && footer.socialmedia.loader"
1988    :footermenu1='footer.primary.data'
1989    :socialmedialist='footer.socialmedia.data'
1990    contactdetails='[
1991      {
1992        "title": "Address",
1993        "label": "Walker Engineering 9255 San Fernando Rd. Sun Valley, CA 91352",
1994        "url": "https://goo.gl/maps/mmjRv4sDBt4wBGpE7?coh=178572&entry=tt",
1995        "newTab": true
1996      },
1997      {
1998        "title": "Phone",
1999        "label": "1-818-252-7788",
2000        "url": "tel:1-818-252-7788",
2001        "newTab": false
2002      },
2003      {
2004        "title": "Fax",
2005        "label": "818-252-7785",
2006        "url": "tel:818-252-7785",
2007        "newTab": false
2008      },
2009      {
2010        "title": "Email",
2011        "label": "[email protected]",
2012        "url": "mailto:[email protected]",
2013        "newTab": false
2014      }
2015    ]'
2016    copyrightyear='2023'
2017    policylist='[
2018      {
2019        "name": "Privacy Policy",
2020        "url": "https://cdn.shopify.com/s/files/1/0752/6635/9613/files/Walker_Privacy_Policy_V2.pdf?v=1688745095",
2021        "newTab": true
2022      },
2023      {
2024        "name": "Terms and Condition",
2025        "url": "https://cdn.shopify.com/s/files/1/0752/6635/9613/files/Walker_Terms_of_Use_V2.pdf?v=1688745095",
2026        "newTab": true
2027      }
2028    ]'
2029    disclaimertext='Our products, including racing filters, are expressly designed and intended solely for off-road and racing applications. These products are not certified for use on public roads or in any jurisdiction requiring emissions compliance. By purchasing and using our products, you acknowledge that they are not suitable for street use and accept any associated legal and regulatory risks. We do not assume responsibility for any unauthorized or non-compliant use of our products. It is your responsibility to adhere to local laws and regulations governing vehicle modifications. Using our products in non-compliant areas may result in legal consequences and void any warranties.'
2030    >
2031  </we-elements>
2032</div>
2033<!-- END: WEE Custom Footer -->
2034<script>
2035  const WE_SF_Footer_Options = {
2036    name: 'WE SF Footer Options',
2037    data() {
2038      return {
2039        footer: {
2040          primary: {
2041            endpoint: 'https://blog.walkerengineering.co/wp-json/walkerengineering/v1/menu-footer-primary',
2042            loader: false,
2043            data: [],
2044          },
2045          socialmedia: {
2046            endpoint: 'https://blog.walkerengineering.co/wp-json/walkerengineering/v1/menu-social-media',
2047            loader: false,
2048            data: [],
2049          },
2050        },
2051      }
2052    },
2053    created() {
2054      this.fetchFooterPrimaryMenu();
2055      this.fetchFooterSocialMediaMenu();
2056    },
2057    mounted() {},
2058    updated() {},
2059    methods: {
2060      fetchFooterPrimaryMenu() {
2061        const dateNow = Date.now();
2062        fetch(`${this.footer.primary.endpoint}?time=${dateNow}`)
2063        .then((response) => response.json())
2064        .then((data) => {
2065          console.log(`Fetch Menu - Footer Primary from Endpoint SUCCESS...`, data);
2066          this.footer.primary.data = JSON.stringify(data);
2067        })
2068        .catch((error) => {
2069          console.log(`Fetch Menu - Footer Primary from Endpoint FAILED...`, data);
2070        })
2071        .finally(() => {
2072          this.footer.primary.loader = true;
2073        });
2074      },
2075      fetchFooterSocialMediaMenu() {
2076        const dateNow = Date.now();
2077        fetch(`${this.footer.socialmedia.endpoint}?time=${dateNow}`)
2078        .then((response) => response.json())
2079        .then((data) => {
2080          console.log(`Fetch Menu - Social Media List from Endpoint SUCCESS...`, data);
2081          this.footer.socialmedia.data = JSON.stringify(data);
2082        })
2083        .catch((error) => {
2084          console.log(`Fetch Menu - Social Media List from Endpoint FAILED...`, data);
2085        })
2086        .finally(() => {
2087          this.footer.socialmedia.loader = true;
2088        });
2089      }
2090    }
2091  };
2092
2093  Vue.createApp(WE_SF_Footer_Options).mount('.we-custom-footer');
2094</script>
2094
2095
2096    
2097    <div style="display: none;"
2098      aria-hidden="true"
2099      data-templates>
2100      
2101      <div class="message-banner--container"
2102        role="alert"
2103        data-message-banner>
2104        <div class="message-banner--outer">
2105          <div class="message-banner--inner" data-message-banner-content></div>
2106
2107          <button class="message-banner--close"
2108            type="button"
2109            aria-label="Close"
2110            data-message-banner-close><svg
2111  aria-hidden="true"
2112  focusable="false"
2113  role="presentation"
2114  xmlns="http://www.w3.org/2000/svg"
2115  width="13"
2116  height="13"
2117  viewBox="0 0 13 13"
2118>
2119  <path fill="currentColor" fill-rule="evenodd" d="M5.306 6.5L0 1.194 1.194 0 6.5 5.306 11.806 0 13 1.194 7.694 6.5 13 11.806 11.806 13 6.5 7.694 1.194 13 0 11.806 5.306 6.5z"/>
2120</svg></button>
2121        </div>
2122      </div>
2123      
2124
2125      
2126      <section class="atc-banner--container"
2127        role="log"
2128        data-atc-banner>
2129        <div class="atc-banner--outer">
2130          <div class="atc-banner--inner">
2131            <div class="atc-banner--product">
2132              <h2 class="atc-banner--product-title">
2133                <span class="atc-banner--product-title--icon">
2134                  
2135
2136
2137                <svg class="icon-checkmark "    aria-hidden="true"    focusable="false"    role="presentation"    xmlns="http://www.w3.org/2000/svg" width="18"  height="13" viewBox="0 0 18 13" xmlns="http://www.w3.org/2000/svg">      <path fill="currentColor" fill-rule="evenodd" d="M6.23 9.1L2.078 5.2 0 7.15 6.23 13 18 1.95 15.923 0z" />    </svg>                                                                                                    
2138
2139                </span>
2140                Added to your cart:
2141              </h2>
2142
2143              <div class="atc--product">
2144                <div class="atc--product-image" data-atc-banner-product-image>
2145                  <svg class="placeholder--image" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 525.5 525.5"><path d="M324.5 212.7H203c-1.6 0-2.8 1.3-2.8 2.8V308c0 1.6 1.3 2.8 2.8 2.8h121.6c1.6 0 2.8-1.3 2.8-2.8v-92.5c0-1.6-1.3-2.8-2.9-2.8zm1.1 95.3c0 .6-.5 1.1-1.1 1.1H203c-.6 0-1.1-.5-1.1-1.1v-92.5c0-.6.5-1.1 1.1-1.1h121.6c.6 0 1.1.5 1.1 1.1V308z"/><path d="M210.4 299.5H240v.1s.1 0 .2-.1h75.2v-76.2h-105v76.2zm1.8-7.2l20-20c1.6-1.6 3.8-2.5 6.1-2.5s4.5.9 6.1 2.5l1.5 1.5 16.8 16.8c-12.9 3.3-20.7 6.3-22.8 7.2h-27.7v-5.5zm101.5-10.1c-20.1 1.7-36.7 4.8-49.1 7.9l-16.9-16.9 26.3-26.3c1.6-1.6 3.8-2.5 6.1-2.5s4.5.9 6.1 2.5l27.5 27.5v7.8zm-68.9 15.5c9.7-3.5 33.9-10.9 68.9-13.8v13.8h-68.9zm68.9-72.7v46.8l-26.2-26.2c-1.9-1.9-4.5-3-7.3-3s-5.4 1.1-7.3 3l-26.3 26.3-.9-.9c-1.9-1.9-4.5-3-7.3-3s-5.4 1.1-7.3 3l-18.8 18.8V225h101.4z"/><path d="M232.8 254c4.6 0 8.3-3.7 8.3-8.3s-3.7-8.3-8.3-8.3-8.3 3.7-8.3 8.3 3.7 8.3 8.3 8.3zm0-14.9c3.6 0 6.6 2.9 6.6 6.6s-2.9 6.6-6.6 6.6-6.6-2.9-6.6-6.6 3-6.6 6.6-6.6z"/></svg>
2146                </div>
2147                <div class="atc--product-details">
2148                  <h2 class="atc--product-details--title" data-atc-banner-product-title></h2>
2149                  <span class="atc--product-details--options" data-atc-banner-product-options></span>
2150                  <span class="atc--product-details--price">
2151                    <span class="atc--product-details--price-quantity" data-atc-banner-product-price-quantity></span>
2152                    <span class="atc--product-details--price-value money" data-atc-banner-product-price-value></span>
2153                    <span class="atc--product-details--price-discounted money" data-atc-banner-product-price-discounted></span>
2154                    <span class="atc--product-details--unit-price hidden" data-atc-banner-unit-price>
2155                      ** total_quantity ** | ** unit_price ** / ** unit_measure **
2156                    </span>
2157                  </span>
2158                  <ul class="discount-list" data-atc-banner-product-discounts>
2159                    <li class="discount-list-item">
2160                      
2161
2162
2163                                                                        <svg class="icon-sale-tag "    aria-hidden="true"    focusable="false"    role="presentation"    xmlns="http://www.w3.org/2000/svg" width="350" height="350" viewB
2163ox="0 0 350 350" fill="none">      <path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M0 197.826C0 192.95 1.93821 188.275 5.38762 184.83L179.459 10.7587C186.348 3.86966 195.692 -0.000356971 205.435 2.46966e-08H334.782C343.187 2.46966e-08 350 6.81304 350 15.2173V144.565C350 154.308 346.13 163.651 339.241 170.541L165.17 344.612C161.725 348.061 157.049 350 152.174 350C147.299 350 142.624 348.061 139.179 344.612L5.38762 210.821C1.93821 207.376 0 202.701 0 197.826ZM304.348 68.4786C304.348 81.085 294.128 91.3046 281.521 91.3046C268.915 91.3046 258.695 81.085 258.695 68.4786C258.695 55.8721 268.915 45.6525 281.521 45.6525C294.128 45.6525 304.348 55.8721 304.348 68.4786Z" fill="currentColor"/>    </svg>                                            
2164
2165                      <span class="discount-title"></span>
2166                      (-<span class="money discount-amount"></span>)
2167                    </li>
2168                  </ul>
2169                  <span class="atc--line-item-subscriptions" data-atc-banner-product-subscription-title></span>
2170                </div>
2171              </div>
2172            </div>
2173
2174            <div class="atc-banner--cart">
2175              <div class="atc-banner--cart-subtotal">
2176                <span class="atc-subtotal--label">
2177                  Cart subtotal
2178                </span>
2179                <span class="atc-subtotal--price money" data-atc-banner-cart-subtotal></span>
2180              </div>
2181
2182              <footer class="atc-banner--cart-footer">
2183                <a class="button-secondary atc-button--viewcart"
2184                  href="/cart"
2185                  data-atc-banner-cart-button>
2186                  View cart (<span></span>)
2187                </a>
2188                <form class=""
2189                  action="/cart"
2190                  method="post"
2191                  aria-label="cart checkout">
2192                  <button class="button-primary atc-button--checkout"
2193                    type="submit"
2194                    name="checkout">
2195                    
2196                    <span>Checkout</span>
2197                  </button>
2198                </form>
2199              </footer>
2200            </div>
2201          </div>
2202
2203          <button class="atc-banner--close"
2204            type="button"
2205            aria-label="Close"
2206            data-atc-banner-close><svg
2207  aria-hidden="true"
2208  focusable="false"
2209  role="presentation"
2210  xmlns="http://www.w3.org/2000/svg"
2211  width="13"
2212  height="13"
2213  viewBox="0 0 13 13"
2214>
2215  <path fill="currentColor" fill-rule="evenodd" d="M5.306 6.5L0 1.194 1.194 0 6.5 5.306 11.806 0 13 1.194 7.694 6.5 13 11.806 11.806 13 6.5 7.694 1.194 13 0 11.806 5.306 6.5z"/>
2216</svg></button>
2217        </div>
2218      </section>
2219      
2220
2221    </div>
2222
2223    
2224    
2225    <div class="modal"
2226      data-modal-container
2227      aria-label="modal window"
2228      data-trap-focus>
2229      <div class="modal-inner" data-modal-inner>
2230        <button class="modal-close"
2231          type="button"
2232          aria-label="Close"
2233          data-modal-close>
2234          <svg
2235  aria-hidden="true"
2236  focusable="false"
2237  role="presentation"
2238  xmlns="http://www.w3.org/2000/svg"
2239  width="13"
2240  height="13"
2241  viewBox="0 0 13 13"
2242>
2243  <path fill="currentColor" fill-rule="evenodd" d="M5.306 6.5L0 1.194 1.194 0 6.5 5.306 11.806 0 13 1.194 7.694 6.5 13 11.806 11.806 13 6.5 7.694 1.194 13 0 11.806 5.306 6.5z"/>
2244</svg>
2245        </button>
2246        <div class="modal-content" data-modal-content></div>
2247      </div>
2248    </div>
2249
2250    <div class="modal-1"
2251      data-modal-container-1
2252      aria-label="modal window">
2253      <div class="modal-inner" data-modal-inner>
2254        <button class="modal-close"
2255          type="button"
2256          aria-label="Close"
2257          data-modal-1-close>
2258          <svg
2259  aria-hidden="true"
2260  focusable="false"
2261  role="presentation"
2262  xmlns="http://www.w3.org/2000/svg"
2263  width="13"
2264  height="13"
2265  viewBox="0 0 13 13"
2266>
2267  <path fill="currentColor" fill-rule="evenodd" d="M5.306 6.5L0 1.194 1.194 0 6.5 5.306 11.806 0 13 1.194 7.694 6.5 13 11.806 11.806 13 6.5 7.694 1.194 13 0 11.806 5.306 6.5z"/>
2268</svg>
2269        </button>
2270        <div class="modal-content" data-modal-content></div>
2271      </div>
2272    </div>
2273    
2274
2275
2276    
2277    
2278    
2279    <div class="pswp"
2280      tabindex="-1"
2281      role="dialog"
2282      aria-hidden="true"
2283      aria-label="Product zoom dialog"
2284      data-photoswipe> 
2285      <div class="pswp__bg"></div>
2286
2287      
2288      <div class="pswp__scroll-wrap">
2289        
2290        <div class="pswp__container" aria-hidden="true">
2291          <div class="pswp__item"></div>
2292          <div class="pswp__item"></div>
2293          <div class="pswp__item"></div>
2294        </div>
2295
2296        
2297        <div class="pswp__ui pswp__ui--hidden">
2298          <div class="pswp__top-bar">
2299            
2300            <div class="pswp__counter"></div>
2301            <button class="pswp__button pswp__button--close" title="Close">
2302              <span tabindex="-1">
2303                
2304
2305
2306              <svg class="icon-close "    aria-hidden="true"    focusable="false"    role="presentation"    xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none">      <path d="M17 1L1 17" stroke="currentColor" stroke-width="1.75" stroke-linejoin="round"/>      <path d="M1 1L17 17" stroke="currentColor" stroke-width="1.75" stroke-linejoin="round"/>    </svg>                                                                                                      
2307
2308              </span>
2309            </button>
2310            <button class="pswp__button pswp__button--share" title="Share"></button>
2311            <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>
2312            <button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>
2313
2314            
2315            
2316            <div class="pswp__preloader">
2317              <div class="pswp__preloader__icn">
2318                <div class="pswp__preloader__cut">
2319                  <div class="pswp__preloader__donut"></div>
2320                </div>
2321              </div>
2322            </div>
2323          </div>
2324
2325          <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
2326            <div class="pswp__share-tooltip"></div>
2327          </div>
2328
2329          <button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)"></button>
2330          <button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)"></button>
2331
2332          <div class="pswp__caption">
2333            <div class="pswp__caption__center"></div>
2334          </div>
2335        </div>
2336      </div>
2337      <div class="product-zoom--thumbnails" data-photoswipe-thumbs>
2338        <button
2339          class="gallery-navigation--scroll-button scroll-left"
2340          aria-label="Scroll thumbnails left"
2341          data-gallery-scroll-button>
2342          <svg
2343  aria-hidden="true"
2344  focusable="false"
2345  role="presentation"
2346  width="14"
2347  height="8"
2348  viewBox="0 0 14 8"
2349  fill="none"
2350  xmlns="http://www.w3.org/2000/svg"
2351>
2352  <path class="icon-chevron-down-left" d="M7 6.75L12.5 1.25" stroke="currentColor" stroke-width="1.75" stroke-linecap="square"/>
2353  <path class="icon-chevron-down-right" d="M7 6.75L1.5 1.25" stroke="currentColor" stroke-width="1.75" stroke-linecap="square"/>
2354</svg>
2355
2356        </button>
2357        <button
2358          class="gallery-navigation--scroll-button scroll-right"
2359          aria-label="Scroll thumbnails right"
2360          data-gallery-scroll-button>
2361          <svg
2362  aria-hidden="true"
2363  focusable="false"
2364  role="presentation"
2365  width="14"
2366  height="8"
2367  viewBox="0 0 14 8"
2368  fill="none"
2369  xmlns="http://www.w3.org/2000/svg"
2370>
2371  <path class="icon-chevron-down-left" d="M7 6.75L12.5 1.25" stroke="currentColor" stroke-width="1.75" stroke-linecap="square"/>
2372  <path class="icon-chevron-down-right" d="M7 6.75L1.5 1.25" stroke="currentColor" stroke-width="1.75" stroke-linecap="square"/>
2373</svg>
2374
2375        </button>
2376        <div class="product-zoom--thumb-scroller" data-photoswipe-thumb-scroller></div>
2377      </div>
2378    </div>
2379    
2380
2381
2382    
2383    
2384    
2385      
2386    
2387
2388    
2389      
2390      <div class="product-compare-drawer" data-product-compare-drawer>
2391        <div class="product-compare-drawer__header" data-product-compare-drawer-header>
2392          <h2 class="product-compare-drawer__title" data-product-compare-drawer-title>
2393            Compare products
2394          </h2>
2395
2396          <p class="product-compare-drawer__notification"
2397            data-product-count-one="Select 2 or 3 items to compare"
2398            data-product-count-other="** count ** of 3 items selected"
2399            data-product-compare-drawer-notification>
2400            {&quot;one&quot;=&gt;&quot;Select 2 or 3 items to compare&quot;, &quot;other&quot;=&gt;&quot;{{ count }} of 3 items selected&quot;}
2401          </p>
2402
2403          <span class="product-compare-drawer__trigger">
2404            <svg
2405  aria-hidden="true"
2406  focusable="false"
2407  role="presentation"
2408  width="14"
2409  height="8"
2410  viewBox="0 0 14 8"
2411  fill="none"
2412  xmlns="http://www.w3.org/2000/svg"
2413>
2414  <path class="icon-chevron-down-left" d="M7 6.75L12.5 1.25" stroke="currentColor" stroke-width="1.75" stroke-linecap="square"/>
2415  <path class="icon-chevron-down-right" d="M7 6.75L1.5 1.25" stroke="currentColor" stroke-width="1.75" stroke-linecap="square"/>
2416</svg>
2417
2418          </span>
2419        </div>
2420
2421        <div class="product-compare-drawer__container">
2422          <div class="product-compare-drawer__items" data-compare-drawer-items-container>
2423            <template data-product-compare-drawer-item-template>
2424              <div class='product-compare-drawer__item
2425                imagestyle--
2426                natural'>
2427                <div class="product-compare-drawer__image">
2428                  <figure class="productitem--image" data-product-compare-drawer-image></figure>
2429                </div>
2430                <a class="product-compare-drawer__item-title" data-product-compare-drawer-title></a>
2431                <button class="product-compare-drawer__remove" data-product-compare-drawer-remove>
2432                  
2433
2434
2435                                                                      <svg class="icon-remove product-compare-drawer__remove-icon"    aria-hidden="true"    focusable="false"    role="presentation"    xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewB
2435ox="0 0 10 10" xmlns="http://www.w3.org/2000/svg">      <path fill="currentColor" d="M6.08785659,5 L9.77469752,1.31315906 L8.68684094,0.225302476 L5,3.91214341 L1.31315906,0.225302476 L0.225302476,1.31315906 L3.91214341,5 L0.225302476,8.68684094 L1.31315906,9.77469752 L5,6.08785659 L8.68684094,9.77469752 L9.77469752,8.68684094 L6.08785659,5 Z"></path>    </svg>                                              
2436
2437                </button>
2438              </div>
2439            </template>
2440
2441            
2442              <div class="product-compare-drawer__item-placeholder" data-product-compare-drawer-item-placeholder>
2443                <p class="product-compare-drawer__item-placeholder-text">
2444                  
2445                    Select first item to compare
2446                  
2447                </p>
2448              </div>
2449            
2450              <div class="product-compare-drawer__item-placeholder" data-product-compare-drawer-item-placeholder>
2451                <p class="product-compare-drawer__item-placeholder-text">
2452                  
2453                    Select second item to compare
2454                  
2455                </p>
2456              </div>
2457            
2458              <div class="product-compare-drawer__item-placeholder" data-product-compare-drawer-item-placeholder>
2459                <p class="product-compare-drawer__item-placeholder-text">
2460                  
2461                    Select third item to compare
2462                  
2463                </p>
2464              </div>
2465            
2466          </div>
2467
2468          <div class="product-compare-drawer__actions">
2469            <a class=""
2470              href="/"
2471              data-product-compare-drawer-link
2472              data-product-compare-drawer-link-text="Compare">
2473              Compare
2474            </a>
2475
2476            <button class="product-compare-drawer__clear-all" data-product-compare-clear-all>
2477              Clear all
2478            </button>
2479          </div>
2480        </div>
2481      </div>
2482      
2483
2484    
2485
2486    
2487      
2488      
2489
2490      
2491
2492      
2493
2494      
2495
2496      
2496<script type="application/json" data-product-compare-breadcrumb-data>
2497        {
2498          "title": null,
2499          "update": true
2500        }
2501      </script>
2501
2502      
2503
2504    
2505
2506      
2506<script>
2507        (function() {
2508          var classes = {
2509            block: 'pxu-lia-block',
2510            element: 'pxu-lia-element'
2511          };
2512
2513          document.querySelectorAll('[type="application/pxs-animation-mapping+json"]').forEach(function(mappingEl) {
2514            const section = mappingEl.parentNode;
2515            try {
2516              const mapping = JSON.parse(mappingEl.innerHTML);
2517              mapping.elements.forEach(function(elementSelector) {
2518                section.querySelectorAll(elementSelector).forEach(function(element) {
2519                  element.classList.add(classes.element);
2520                });
2521              });
2522
2523              mapping.blocks.forEach(function(blockSelector) {
2524                section.querySelectorAll(blockSelector).forEach(function(block) {
2525                  block.classList.add(classes.block);
2526                });
2527              });
2528            } catch (error) {
2529              console.warn('Unable to parse animation mapping', mappingEl, error);
2530            }
2531          });
2532        })()
2533      </script>
2533
2534    
2535
2536    
2536<script
2537      src="//walkerengineering.co/cdn/shop/t/3/assets/empire.js?v=67293966988499847241683835266"
2538      data-scripts
2539      data-shopify-api-url="//walkerengineering.co/cdn/shopifycloud/storefront/assets/themes_support/api.jquery-7ab1a3a4.js"
2540      data-shopify-countries="/services/javascripts/countries.js"
2541      data-shopify-common="//walkerengineering.co/cdn/shopifycloud/storefront/assets/themes_support/shopify_common-5f594365.js"
2542      data-shopify-cart="//walkerengineering.co/cdn/shop/t/3/assets/jquery.cart.js?v=9642"
2543      data-pxu-polyfills="//walkerengineering.co/cdn/shop/t/3/assets/polyfills.min.js?v=176531307415821907591683220674">
2544    </script>
2544
2545
2546    
2547
2548
2549
2550
2551
2552
2553
2554
2555  
2555<script type="application/ld+json">
2556    {
2557      "@context": "http://schema.org",
2558      "@type": "BreadcrumbList",
2559      "itemListElement": [
2560      
2561          {
2562            "@type": "ListItem",
2563            "position": 1,
2564            "item": {
2565              "@id": "/pages/airsep",
2566              "name": "Shop Walker AIRSEP®"
2567            }
2568          }
2569        
2570      ]
2571    }
2572  </script>
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581<script type="application/ld+json">
2582  {
2583    "@context": "http://schema.org",
2584    "@type": "WebSite",
2585    "name": "Walker Engineering Enterprises",
2586    "url": "https://walkerengineering.co"
2587  }
2588</script>
2588
2589
2590
2591    
2591<script>
2592      (function() {
2593        function handleFirstTab(e) {
2594          if (e.keyCode === 9) { // the "I am a keyboard user" key
2595            document.body.classList.add('user-is-tabbing');
2596            window.removeEventListener('keydown', handleFirstTab);
2597          }
2598        }
2599        window.addEventListener('keydown', handleFirstTab);
2600      })();
2601    </script>
2601
2602
2603    
2604      <link href="//walkerengineering.co/cdn/shop/t/3/assets/ripple.css?v=100240391239311985871683220674" rel="stylesheet" type="text/css" media="all" />
2605    
2606
2607    
2607<script
2608      src="//walkerengineering.co/cdn/shop/t/3/assets/instantPage.min.js?v=178386566408336040481683220674"
2609      type="module"
2610      defer>
2611    </script>
2611
2612  <style> .post.has-post-thumbnail p.has-text-align-center,.home .post p.has-text-align-center,.blog post p.has-text-align-center {text-align: center;} </style>
2613<div id="shopify-block-AUmU0akhDazRra1h5V__9246707248847178381" class="shopify-block shopify-app-block">
2614  
2614<script src="https://shopify.livechatinc.com/api/v1/script/shop/walker-engineering-group.myshopify.com/widget.js" defer></script>
2614
2615
2616
2617
2618</div>
2618<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
2618
2619</body>
2620</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.