1<!doctype html> 2<html class="js" lang="en"> 3 <head> 4 <meta charset="utf-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 <meta name="viewport" content="width=device-width,initial-scale=1"> 7 <meta name="theme-color" content=""> 8 <link rel="canonical" href="https://www.exercize4life.com/pages/contact"><link rel="icon" type="image/png" href="//www.exercize4life.com/cdn/shop/files/by_1.png?crop=center&height=32&v=1784685326&width=32"><link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin><title> 9 Contact Us 10 – Bingocize</title> 11 12 13 14 15 16<meta property="og:site_name" content="Bingocize"> 17<meta property="og:url" content="https://www.exercize4life.com/pages/contact"> 18<meta property="og:title" content="Contact Us"> 19<meta property="og:type" content="website"> 20<meta property="og:description" content="Bingocize® isn't just another health program. It's a vibrant fusion of fitness, health education, and Bingo that is a game-changer for older adults and people with disabilities everywhere."><meta property="og:image" content="http://www.exercize4life.com/cdn/shop/files/6-IMG_3409_Large_4665c125-88db-4a5f-a403-271e06e1fb2a.jpg?v=1737347936"> 21 <meta property="og:image:secure_url" content="https://www.exercize4life.com/cdn/shop/files/6-IMG_3409_Large_4665c125-88db-4a5f-a403-271e06e1fb2a.jpg?v=1737347936"> 22 <meta property="og:image:width" content="853"> 23 <meta property="og:image:height" content="1280"><meta name="twitter:card" content="summary_large_image"> 24<meta name="twitter:title" content="Contact Us"> 25<meta name="twitter:description" content="Bingocize® isn't just another health program. It's a vibrant fusion of fitness, health education, and Bingo that is a game-changer for older adults and people with disabilities everywhere."> 26 27 28
28<script src="//www.exercize4life.com/cdn/shop/t/2/assets/constants.js?v=132983761750457495441736177392" defer="defer"></script>
28 29
29<script src="//www.exercize4life.com/cdn/shop/t/2/assets/pubsub.js?v=158357773527763999511736177394" defer="defer"></script>
29 30
30<script src="//www.exercize4life.com/cdn/shop/t/2/assets/global.js?v=152862011079830610291736177392" defer="defer"></script>
30 31
31<script src="//www.exercize4life.com/cdn/shop/t/2/assets/details-disclosure.js?v=13653116266235556501736177392" defer="defer"></script>
31 32
32<script src="//www.exercize4life.com/cdn/shop/t/2/assets/details-modal.js?v=25581673532751508451736177392" defer="defer"></script>
32 33
33<script src="//www.exercize4life.com/cdn/shop/t/2/assets/search-form.js?v=133129549252120666541736177394" defer="defer"></script>
33<script src="//www.exercize4life.com/cdn/shop/t/2/assets/animations.js?v=88693664871331136111736177391" defer="defer"></script>
33<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
33<meta name="google-site-verification" content="8oUouqyyN42oH_Y0OiaCif67UCE6p4ReK8oWvViVEjw"> 34<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/57415073841/digital_wallets/dialog"> 35<meta id="in-context-paypal-metadata" data-shop-id="57415073841" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD"> 36<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
36<script async="async" src="/checkouts/internal/preloads.js?locale=en-US"></script>
36 37<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
38<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&shop_id=57415073841" crossorigin="anonymous"></script>
vendor: 1 bytes, line 38
38
39<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":57415073841,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/57415073841","merchantName":"Bingocize","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","discover","amex","elo","jcb"],"total":{"type":"pending","label":"Bingocize","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 39
39
40<script id="shopify-features" type="application/json">{"accessToken":"70d99f12cda2bb9e659d5ce51210974f","betas":["rich-media-storefront-analytics"],"domain":"www.exercize4life.com","predictiveSearch":true,"shopId":57415073841,"locale":"en"}</script>
vendor: 1 bytes, line 40
40
41<script>var Shopify = Shopify || {}; 42Shopify.shop = "xksb0b-yc.myshopify.com"; 43Shopify.locale = "en"; 44Shopify.currency = {"active":"USD","rate":"1.0"}; 45Shopify.country = "US"; 46Shopify.theme = {"name":"Trade","id":125196632113,"schema_name":"Trade","schema_version":"15.2.0","theme_store_id":2699,"role":"main"}; 47Shopify.theme.handle = "null"; 48Shopify.theme.style = {"id":null,"handle":null}; 49Shopify.cdnHost = "www.exercize4life.com/cdn"; 50Shopify.routes = Shopify.routes || {}; 51Shopify.routes.root = "/"; 52Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 53Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 54Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 55Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 55
55
56<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 56
56
57<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 57
57
58<script> 59 window.ShopifyPay = window.ShopifyPay || {}; 60 window.ShopifyPay.apiHost = "shop.app\/pay"; 61 window.ShopifyPay.redirectState = null; 62</script>
vendor: 1 bytes, line 62
62
63<script> 64 window.Shopify = window.Shopify || {}; 65 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 66 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 67 window.Shopify.SignInWithShop.eligible = true; 68</script>
vendor: 1 bytes, line 68
68
69<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 69
69
70<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 70
70
71<script type="module"> 72 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 73 74 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 75 76</script>
vendor: 1 bytes, line 76
76
77<script> 78 window.Shopify = window.Shopify || {}; 79 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 80 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"]}; 81</script>
vendor: 1 bytes, line 81
81
82<script>(function() { 83 var isLoaded = false; 84 function asyncLoad() { 85 if (isLoaded) return; 86 isLoaded = true; 87 var urls = ["https:\/\/s01.live2support.com\/channels\/ShopifyChat.php?token=K0NWbkdyMVdMKzdnNWlNd3BpMnNodz09\u0026pp_shop=xksb0b-yc.myshopify.com\u0026shop=xksb0b-yc.myshopify.com","https:\/\/s01.live2support.com\/channels\/ShopifyChat.php?token=UVFJWncwdy93OTQxNmdYOGZ3NndSZz09\u0026pp_shop=xksb0b-yc.myshopify.com\u0026shop=xksb0b-yc.myshopify.com"]; 88 for (var i = 0; i < urls.length; i++) { 89 var s = document.createElement('script'); 90 s.type = 'text/javascript'; 91 s.async = true; 92 s.src = urls[i]; 93 var x = document.getElementsByTagName('script')[0]; 94 x.parentNode.insertBefore(s, x); 95 } 96 }; 97 if(window.attachEvent) { 98 window.attachEvent('onload', asyncLoad); 99 } else { 100 window.addEventListener('load', asyncLoad, false); 101 } 102})();</script>
vendor: 1 bytes, line 102
102
103<script id="__st">var __st={"a":57415073841,"offset":-18000,"reqid":"5eaa0a94-ae2d-47d9-8633-b07fdeb9b9be-1791599347","pageurl":"www.exercize4life.com\/pages\/contact","s":"pages-87550263345","u":"4befb0abddf3","p":"page","rtyp":"page","rid":87550263345};</script>
vendor: 1 bytes, line 103
103
104<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 104
104
105<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 105
105
106<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.exercize4life.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 106
106
107<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 = "//www.exercize4life.com/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>
107<script crossorigin="anonymous" defer="defer" src="//www.exercize4life.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-f0e26bdf.js?v=20250812"></script>
vendor: 1 bytes, line 107
107
108<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 108
108
109<script> 110 window.Shopify = window.Shopify || {}; 111 window.Shopify.MCP = window.Shopify.MCP || {}; 112 window.Shopify.MCP.enabled = true; 113 window.Shopify.MCP.shop = "xksb0b-yc.myshopify.com"; 114 window.Shopify.MCP.mcpEndpoint = "https:\/\/www.exercize4life.com\/api\/mcp"; 115 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"]}}]; 116</script>
vendor: 1 bytes, line 116
116
117<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("\/\/www.exercize4life.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-f427de6a.js","sha256-ypGF+5vIq4Psw4WG7nsVtdd\/TCfsJWnrNuACdqLCElY=");})(); 118</script>
vendor: 1 bytes, line 118
118
119<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://www.exercize4life.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 120</script>
vendor: 1 bytes, line 120
120
121<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 122 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); 123</script>
vendor: 1 bytes, line 123
123
124<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})}})); 125</script>
125 126<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://www.exercize4life.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 127<style id="shopify-accelerated-checkout-cart"> 128 #shopify-buyer-consent { 129 margin-top: 1em; 130 display: inline-block; 131 width: 100%; 132} 133 134#shopify-buyer-consent.hidden { 135 display: none; 136} 137 138#shopify-subscription-policy-button { 139 background: none; 140 border: none; 141 padding: 0; 142 text-decoration: underline; 143 font-size: inherit; 144 cursor: pointer; 145} 146 147#shopify-subscription-policy-button::before { 148 box-shadow: none; 149} 150 151 </style>
152<script id="sections-script" data-sections="header" defer="defer" src="//www.exercize4life.com/cdn/shop/t/2/compiled_assets/scripts.js?v=184325197989695213571736177414"></script>
vendor: 1 bytes, line 152
152
153<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
153 154 155 156 <style data-shopify> 157 @font-face { 158 font-family: Figtree; 159 font-weight: 400; 160 font-style: normal; 161 font-display: swap; 162 src: url("//www.exercize4life.com/cdn/fonts/figtree/figtree_n4.3c0838aba1701047e60be6a99a1b0a40ce9b8419.woff2") format("woff2"), 163 url("//www.exercize4life.com/cdn/fonts/figtree/figtree_n4.c0575d1db21fc3821f17fd6617d3dee552312137.woff") format("woff"); 164} 165 166 @font-face { 167 font-family: Figtree; 168 font-weight: 700; 169 font-style: normal; 170 font-display: swap; 171 src: url("//www.exercize4life.com/cdn/fonts/figtree/figtree_n7.2fd9bfe01586148e644724096c9d75e8c7a90e55.woff2") format("woff2"), 172 url("//www.exercize4life.com/cdn/fonts/figtree/figtree_n7.ea05de92d862f9594794ab281c4c3a67501ef5fc.woff") format("woff"); 173} 174 175 @font-face { 176 font-family: Figtree; 177 font-weight: 400; 178 font-style: italic; 179 font-display: swap; 180 src: url("//www.exercize4life.com/cdn/fonts/figtree/figtree_i4.89f7a4275c064845c304a4cf8a4a586060656db2.woff2") format("woff2"), 181 url("//www.exercize4life.com/cdn/fonts/figtree/figtree_i4.6f955aaaafc55a22ffc1f32ecf3756859a5ad3e2.woff") format("woff"); 182} 183 184 @font-face { 185 font-family: Figtree; 186 font-weight: 700; 187 font-style: italic; 188 font-display: swap; 189 src: url("//www.exercize4life.com/cdn/fonts/figtree/figtree_i7.06add7096a6f2ab742e09ec7e498115904eda1fe.woff2") format("woff2"), 190 url("//www.exercize4life.com/cdn/fonts/figtree/figtree_i7.ee584b5fcaccdbb5518c0228158941f8df81b101.woff") format("woff"); 191} 192 193 @font-face { 194 font-family: Nunito; 195 font-weight: 300; 196 font-style: normal; 197 font-display: swap; 198 src: url("//www.exercize4life.com/cdn/fonts/nunito/nunito_n3.c1d7c2242f5519d084eafc479d7cc132bcc8c480.woff2") format("woff2"), 199 url("//www.exercize4life.com/cdn/fonts/nunito/nunito_n3.d543cae3671591d99f8b7ed9ea9ca8387fc73b09.woff") format("woff"); 200} 201 202 203 204 :root, 205 .color-scheme-1 { 206 --color-background: 244,244,244; 207 208 --gradient-background: #f4f4f4; 209 210 211 212 213 --color-foreground: 43,44,45; 214 --color-background-contrast: 180,180,180; 215 --color-shadow: 0,17,40; 216 --color-button: 183,172,162; 217 --color-button-text: 38,38,38; 218 --color-secondary-button: 244,244,244; 219 --color-secondary-button-text: 0,17,40; 220 --color-link: 0,17,40; 221 --color-badge-foreground: 43,44,45; 222 --color-badge-background: 244,244,244; 223 --color-badge-border: 43,44,45; 224 --payment-terms-background-color: rgb(244 244 244); 225 } 226 227 228 .color-scheme-2 { 229 --color-background: 255,255,255; 230 231 --gradient-background: #ffffff; 232 233 234 235 236 --color-foreground: 38,38,38; 237 --color-background-contrast: 191,191,191; 238 --color-shadow: 0,17,40; 239 --color-button: 121,112,104; 240 --color-button-text: 255,255,255; 241 --color-secondary-button: 255,255,255; 242 --color-secondary-button-text: 121,117,114; 243 --color-link: 121,117,114; 244 --color-badge-foreground: 38,38,38; 245 --color-badge-background: 255,255,255; 246 --color-badge-border: 38,38,38; 247 --payment-terms-background-color: rgb(255 255 255); 248 } 249 250 251 .color-scheme-3 { 252 --color-background: 194,183,172; 253 254 --gradient-background: #c2b7ac; 255 256 257 258 259 --color-foreground: 38,38,38; 260 --color-background-contrast: 137,119,101; 261 --color-shadow: 0,17,40; 262 --color-button: 253,253,253; 263 --color-button-text: 38,38,38; 264 --color-secondary-button: 194,183,172; 265 --color-secondary-button-text: 84,72,60; 266 --color-link: 84,72,60; 267 --color-badge-foreground: 38,38,38; 268 --color-badge-background: 194,183,172; 269 --color-badge-border: 38,38,38; 270 --payment-terms-background-color: rgb(194 183 172); 271 } 272 273 274 .color-scheme-4 { 275 --color-background: 28,34,40; 276 277 --gradient-background: #1c2228; 278 279 280 281 282 --color-foreground: 255,255,255; 283 --color-background-contrast: 39,47,55; 284 --color-shadow: 0,17,40; 285 --color-button: 255,255,255; 286 --color-button-text: 0,17,40; 287 --color-secondary-button: 28,34,40; 288 --color-secondary-button-text: 255,255,255; 289 --color-link: 255,255,255; 290 --color-badge-foreground: 255,255,255; 291 --color-badge-background: 28,34,40; 292 --color-badge-border: 255,255,255; 293 --payment-terms-background-color: rgb(28 34 40); 294 } 295 296 297 .color-scheme-5 { 298 --color-background: 50,56,65; 299 300 --gradient-background: #323841; 301 302 303 304 305 --color-foreground: 255,255,255; 306 --color-background-contrast: 61,68,79; 307 --color-shadow: 0,17,40; 308 --color-button: 183,172,162; 309 --color-button-text: 38,38,38; 310 --color-secondary-button: 50,56,65; 311 --color-secondary-button-text: 255,255,255; 312 --color-link: 255,255,255; 313 --color-badge-foreground: 255,255,255; 314 --color-badge-background: 50,56,65; 315 --color-badge-border: 255,255,255; 316 --payment-terms-background-color: rgb(50 56 65); 317 } 318 319 320 body, .color-scheme-1, .color-scheme-2, .color-scheme-3, .color-scheme-4, .color-scheme-5 { 321 color: rgba(var(--color-foreground), 0.75); 322 background-color: rgb(var(--color-background)); 323 } 324 325 :root { 326 --font-body-family: Figtree, sans-serif; 327 --font-body-style: normal; 328 --font-body-weight: 400; 329 --font-body-weight-bold: 700; 330 331 --font-heading-family: Nunito, sans-serif; 332 --font-heading-style: normal; 333 --font-heading-weight: 300; 334 335 --font-body-scale: 1.1; 336 --font-heading-scale: 0.9545454545454546; 337 338 --media-padding: px; 339 --media-border-opacity: 0.05; 340 --media-border-width: 0px; 341 --media-radius: 8px;
342 --media-shadow-opacity: 0.0; 343 --media-shadow-horizontal-offset: 0px; 344 --media-shadow-vertical-offset: 4px; 345 --media-shadow-blur-radius: 5px; 346 --media-shadow-visible: 0; 347 348 --page-width: 120rem; 349 --page-width-margin: 0rem; 350 351 --product-card-image-padding: 1.2rem; 352 --product-card-corner-radius: 0.8rem; 353 --product-card-text-alignment: left; 354 --product-card-border-width: 0.0rem; 355 --product-card-border-opacity: 0.0; 356 --product-card-shadow-opacity: 0.0; 357 --product-card-shadow-visible: 0; 358 --product-card-shadow-horizontal-offset: 0.0rem; 359 --product-card-shadow-vertical-offset: 0.4rem; 360 --product-card-shadow-blur-radius: 0.5rem; 361 362 --collection-card-image-padding: 0.0rem; 363 --collection-card-corner-radius: 0.8rem; 364 --collection-card-text-alignment: left; 365 --collection-card-border-width: 0.0rem; 366 --collection-card-border-opacity: 0.1; 367 --collection-card-shadow-opacity: 0.0; 368 --collection-card-shadow-visible: 0; 369 --collection-card-shadow-horizontal-offset: 0.0rem; 370 --collection-card-shadow-vertical-offset: 0.4rem; 371 --collection-card-shadow-blur-radius: 0.5rem; 372 373 --blog-card-image-padding: 0.0rem; 374 --blog-card-corner-radius: 0.8rem; 375 --blog-card-text-alignment: left; 376 --blog-card-border-width: 0.0rem; 377 --blog-card-border-opacity: 0.1; 378 --blog-card-shadow-opacity: 0.0; 379 --blog-card-shadow-visible: 0; 380 --blog-card-shadow-horizontal-offset: 0.0rem; 381 --blog-card-shadow-vertical-offset: 0.4rem; 382 --blog-card-shadow-blur-radius: 0.5rem; 383 384 --badge-corner-radius: 4.0rem; 385 386 --popup-border-width: 1px; 387 --popup-border-opacity: 0.1; 388 --popup-corner-radius: 8px; 389 --popup-shadow-opacity: 0.05; 390 --popup-shadow-horizontal-offset: 0px; 391 --popup-shadow-vertical-offset: 4px; 392 --popup-shadow-blur-radius: 5px; 393 394 --drawer-border-width: 1px; 395 --drawer-border-opacity: 0.1; 396 --drawer-shadow-opacity: 0.0; 397 --drawer-shadow-horizontal-offset: 0px; 398 --drawer-shadow-vertical-offset: 4px; 399 --drawer-shadow-blur-radius: 5px; 400 401 --spacing-sections-desktop: 0px; 402 --spacing-sections-mobile: 0px; 403 404 --grid-desktop-vertical-spacing: 12px; 405 --grid-desktop-horizontal-spacing: 12px; 406 --grid-mobile-vertical-spacing: 6px; 407 --grid-mobile-horizontal-spacing: 6px; 408 409 --text-boxes-border-opacity: 0.1; 410 --text-boxes-border-width: 0px; 411 --text-boxes-radius: 8px; 412 --text-boxes-shadow-opacity: 0.45; 413 --text-boxes-shadow-visible: 1; 414 --text-boxes-shadow-horizontal-offset: 0px; 415 --text-boxes-shadow-vertical-offset: 4px; 416 --text-boxes-shadow-blur-radius: 5px; 417 418 --buttons-radius: 6px; 419 --buttons-radius-outset: 7px; 420 --buttons-border-width: 1px; 421 --buttons-border-opacity: 1.0; 422 --buttons-shadow-opacity: 0.0; 423 --buttons-shadow-visible: 0; 424 --buttons-shadow-horizontal-offset: 0px; 425 --buttons-shadow-vertical-offset: 4px; 426 --buttons-shadow-blur-radius: 5px; 427 --buttons-border-offset: 0.3px; 428 429 --inputs-radius: 6px; 430 --inputs-border-width: 1px; 431 --inputs-border-opacity: 0.55; 432 --inputs-shadow-opacity: 0.0; 433 --inputs-shadow-horizontal-offset: 0px; 434 --inputs-margin-offset: 0px; 435 --inputs-shadow-vertical-offset: 4px; 436 --inputs-shadow-blur-radius: 5px; 437 --inputs-radius-outset: 7px; 438 439 --variant-pills-radius: 40px; 440 --variant-pills-border-width: 1px; 441 --variant-pills-border-opacity: 0.55; 442 --variant-pills-shadow-opacity: 0.0; 443 --variant-pills-shadow-horizontal-offset: 0px; 444 --variant-pills-shadow-vertical-offset: 4px; 445 --variant-pills-shadow-blur-radius: 5px; 446 } 447 448 *, 449 *::before, 450 *::after { 451 box-sizing: inherit; 452 } 453 454 html { 455 box-sizing: border-box; 456 font-size: calc(var(--font-body-scale) * 62.5%); 457 height: 100%; 458 } 459 460 body { 461 display: grid; 462 grid-template-rows: auto auto 1fr auto; 463 grid-template-columns: 100%; 464 min-height: 100%; 465 margin: 0; 466 font-size: 1.5rem; 467 letter-spacing: 0.06rem; 468 line-height: calc(1 + 0.8 / var(--font-body-scale)); 469 font-family: var(--font-body-family); 470 font-style: var(--font-body-style); 471 font-weight: var(--font-body-weight); 472 } 473 474 @media screen and (min-width: 750px) { 475 body { 476 font-size: 1.6rem; 477 } 478 } 479 </style> 480 481 <link href="//www.exercize4life.com/cdn/shop/t/2/assets/base.css?v=159841507637079171801736177391" rel="stylesheet" type="text/css" media="all" /> 482 <link rel="stylesheet" href="//www.exercize4life.com/cdn/shop/t/2/assets/component-cart-items.css?v=123238115697927560811736177392" media="print" onload="this.media='all'"> 483 <link rel="preload" as="font" href="//www.exercize4life.com/cdn/fonts/figtree/figtree_n4.3c0838aba1701047e60be6a99a1b0a40ce9b8419.woff2" type="font/woff2" crossorigin> 484 485 486 <link rel="preload" as="font" href="//www.exercize4life.com/cdn/fonts/nunito/nunito_n3.c1d7c2242f5519d084eafc479d7cc132bcc8c480.woff2" type="font/woff2" crossorigin> 487 488<link 489 rel="stylesheet" 490 href="//www.exercize4life.com/cdn/shop/t/2/assets/component-predictive-search.css?v=118923337488134913561736177392" 491 media="print" 492 onload="this.media='all'" 493 >
493<script> 494 if (Shopify.designMode) { 495 document.documentElement.classList.add('shopify-design-mode'); 496 } 497 </script>
497 498 <!-- BEGIN app block: shopify://apps/gtm-data-layer/blocks/gropulse-gtm/ec1066b4-8b00-4630-a216-c88f51204a28 --><!-- BEGIN app snippet: custom-event-selector --> 499 500<div id="gropulse-custom-event-selector-modal" class="gropulse-custom-event-modal"> 501 <div class="gropulse-custom-event-modal-content"> 502 <div class="gropulse-custom-event-modal-header"> 503 <p class="gropulse-modal-title">Custom Event Setup</p> 504 <span class="gropulse-custom-event-close">×</span> 505 </div> 506 <div class="gropulse-custom-event-modal-body"> 507 <p>Click on the elements you want to track as custom events. Selected elements will appear in the list below.</p> 508 509 <button id="gropulse-track-new-button" class="gropulse-track-new-button">Track New Element</button> 510 511 <div class="gropulse-selected-elements"> 512 <span class="gropulse-selected-elements-title">Selected Elements (0)</span> 513 <ul id="gropulse-selected-elements-list"></ul> 514 </div> 515 </div> 516 <div class="gropulse-custom-event-modal-footer"> 517 <button id="gropulse-finish-setup-button" class="gropulse-finish-setup-button">Finish Setup</button> 518 </div> 519 </div> 520</div> 521 522<style> 523.gropulse-custom-event-modal { 524 display: none; 525 position: fixed; 526 z-index: 99999; 527 left: 20px; 528 top: 20px; 529 width: 400px; 530 background-color: #fff; 531 border-radius: 8px; 532 box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2); 533 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; 534 max-height: 90vh; 535 overflow-y: auto; 536} 537 538.gropulse-custom-event-modal-content { 539 width: 100%; 540} 541 542.gropulse-custom-event-modal-header { 543 padding: 15px 20px; 544 display: flex; 545 justify-content: space-between; 546 align-items: center; 547 border-bottom: 1px solid #e5e5e5; 548} 549 550.gropulse-custom-event-modal-header .gropulse-modal-title { 551 margin: 0; 552 font-size: 18px; 553 font-weight: 600; 554 color: #333; 555} 556 557.gropulse-custom-event-close { 558 color: #aaa; 559 font-size: 24px; 560 font-weight: bold; 561 cursor: pointer; 562} 563 564.gropulse-custom-event-close:hover { 565 color: #555; 566} 567 568.gropulse-custom-event-modal-body { 569 padding: 20px; 570} 571 572.gropulse-custom-event-modal-footer { 573 padding: 15px 20px; 574 border-top: 1px solid #e5e5e5; 575 text-align: right; 576} 577 578.gropulse-track-new-button, 579.gropulse-finish-setup-button { 580 padding: 10px 15px; 581 border-radius: 4px; 582 border: none; 583 font-size: 14px; 584 font-weight: 500; 585 cursor: pointer; 586} 587 588.gropulse-track-new-button { 589 background-color: #4CAF50; 590 color: white; 591 margin-top: 10px; 592} 593 594.gropulse-finish-setup-button { 595 background-color: #2196F3; 596 color: white; 597} 598 599.gropulse-selected-elements { 600 margin-top: 20px; 601} 602 603.gropulse-selected-elements-title { 604 display: block; 605 font-size: 16px; 606 margin-bottom: 10px; 607 font-weight: 500; 608} 609 610#gropulse-selected-elements-list { 611 list-style: none; 612 padding: 0; 613 margin: 0; 614 max-height: 200px; 615 overflow-y: auto; 616 border: 1px solid #e5e5e5; 617 border-radius: 4px; 618} 619 620#gropulse-selected-elements-list li { 621 padding: 10px; 622 border-bottom: 1px solid #e5e5e5; 623 display: flex; 624 justify-content: space-between; 625 align-items: center; 626} 627 628#gropulse-selected-elements-list li:last-child { 629 border-bottom: none; 630} 631 632.gropulse-element-info { 633 flex: 1; 634 font-size: 14px; 635 word-break: break-word; 636} 637 638.gropulse-remove-element { 639 color: #f44336; 640 cursor: pointer; 641 margin-left: 10px; 642} 643 644.gropulse-page-overlay { 645 position: fixed; 646 top: 0; 647 left: 0; 648 width: 100%; 649 height: 100%; 650 background-color: rgba(0, 0, 0, 0.3); 651 z-index: 99990; 652 pointer-events: none; 653} 654 655.gropulse-highlight-element { 656 position: absolute; 657 pointer-events: none; 658 background-color: rgba(76, 175, 80, 0.2); 659 border: 2px solid #4CAF50; 660 z-index: 99991; 661 box-sizing: border-box; 662} 663 664/* Make modal draggable */ 665.gropulse-custom-event-modal-header { 666 cursor: move; 667} 668 669/* Responsive styles */ 670@media screen and (max-width: 480px) { 671 .gropulse-custom-event-modal { 672 width: 90%; 673 left: 5%; 674 top: 5%; 675 } 676} 677</style> 678
679<script> 680document.addEventListener('DOMContentLoaded', function() { 681 // Parse URL parameters 682 const urlParams = new URLSearchParams(window.location.search); 683 const customEventParam = urlParams.get('customEvent'); 684 const redirectUrl = urlParams.get('redirectUrl'); 685 686 // Initialize session storage if customEvent param is present 687 if (customEventParam === '1') { 688 // Set flag in session storage to show the modal across page navigation 689 sessionStorage.setItem('gropulseCustomEventSetupActive', 'true'); 690 // Store redirect URL for later use 691 if (redirectUrl) { 692 sessionStorage.setItem('gropulseCustomEventRedirectUrl', redirectUrl); 693 } 694 } 695 696 // Don't proceed if setup mode is not active 697 if (sessionStorage.getItem('gropulseCustomEventSetupActive') !== 'true') return; 698 699 const modal = document.getElementById('gropulse-custom-event-selector-modal'); 700 const trackNewButton = document.getElementById('gropulse-track-new-button'); 701 const finishSetupButton = document.getElementById('gropulse-finish-setup-button'); 702 const closeButton = document.querySelector('.gropulse-custom-event-close'); 703 const selectedElementsList = document.getElementById('gropulse-selected-elements-list'); 704 const selectedElementsHeader = document.querySelector('.gropulse-selected-elements-title'); 705 706 let isSelectionMode = false; 707 let selectedElements = []; 708 let overlay = null; 709 let highlightElement = null; 710 711 // Load previously selected elements from session storage 712 const storedElements = sessionStorage.getItem('gropulseSelectedElements'); 713 if (storedElements) { 714 try { 715 selectedElements = JSON.parse(storedElements); 716 updateSelectedElementsList(); 717 } catch (error) { 718 console.error('Error loading stored elements:', error); 719 } 720 } 721 722 // Make the modal draggable 723 makeElementDraggable(modal, document.querySelector('.gropulse-custom-event-modal-header')); 724 725 // Show the modal 726 modal.style.display = 'block'; 727 728 // Click event handlers 729 trackNewButton.addEventListener('click', function() { 730 if (isSelectionMode) { 731 // Cancel selection mode if active 732 disableSelectionMode(); 733 } else { 734 // Enable selection mode 735 enableSelectionMode(); 736 } 737 }); 738 finishSetupButton.addEventListener('click', finishSetup); 739 closeButton.addEventListener('click', closeModal); 740 741 function makeElementDraggable(element, handle) { 742 let pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0; 743 744 // Try to get saved position from session storage 745 const savedPosition = getSavedModalPosition(); 746 if (savedPosition) { 747 element.style.top = savedPosition.top + "px"; 748 element.style.left = savedPosition.left + "px"; 749 } 750 751 handle.onmousedown = dragMouseDown; 752 753 function dragMouseDown(e) { 754 e.preventDefault(); 755 pos3 = e.clientX; 756 pos4 = e.clientY; 757 document.onmouseup = closeDragElement; 758 document.onmousemove = elementDrag; 759 } 760 761 function elementDrag(e) { 762 e.preventDefault(); 763 pos1 = pos3 - e.clientX; 764 pos2 = pos4 - e.clientY; 765 pos3 = e.clientX; 766 pos4 = e.clientY; 767 768 // Calculate new position ensuring it stays within viewport 769 let newTop = element.offsetTop - pos2; 770 let newLeft = element.offsetLeft - pos1; 771 772 // Get viewport dimensions 773 const viewportWidth = window.innerWidth; 774 const viewportHeight = window.innerHeight; 775 776 // Limit to viewport boundaries 777 newTop = Math.max(0, Math.min(newTop, viewportHeight - 100)); 778 newLeft = Math.max(0, Math.min(newLeft, viewportWidth - 100)); 779 780 element.style.top = newTop + "px"; 781 element.style.left = newLeft + "px"; 782 783 // Save position to session storage 784 saveModalPosition(newTop, newLeft); 785 } 786 787 function closeDragElement() { 788 document.onmouseup = null; 789 document.onmousemove = null; 790 791 // Save final position 792 saveModalPosition(element.offsetTop, element.offsetLeft); 793 } 794 } 795 796 // Save modal position to session storage 797 function saveModalPosition(top, left) { 798 try { 799 sessionStorage.setItem('gropulseModalPosition', JSON.stringify({ top, left })); 800 } catch (error) { 801 console.error('Error saving modal position:', error); 802 } 803 } 804 805 // Get saved modal position from session storage 806 function getSavedModalPosition() { 807 try { 808 const position = sessionStorage.getItem('gropulseModalPosition'); 809 return position ? JSON.parse(position) : null; 810 } catch (error) { 811 console.error('Error getting modal position:', error); 812 return null; 813 } 814 } 815 816 function enableSelectionMode() { 817 if (isSelectionMode) return; 818 819 isSelectionMode = true; 820 trackNewButton.textContent = 'Cancel Selection'; 821 trackNewButton.style.backgroundColor = '#f44336'; 822 823 // Create overlay
824 overlay = document.createElement('div'); 825 overlay.className = 'gropulse-page-overlay'; 826 document.body.appendChild(overlay); 827 828 // Create highlight element 829 highlightElement = document.createElement('div'); 830 highlightElement.className = 'gropulse-highlight-element'; 831 document.body.appendChild(highlightElement); 832 833 // Add event listeners for element selection 834 document.addEventListener('mouseover', highlightTargetElement); 835 document.addEventListener('click', selectElement, true); 836 } 837 838 function disableSelectionMode() { 839 if (!isSelectionMode) return; 840 841 isSelectionMode = false; 842 trackNewButton.textContent = 'Track New Element'; 843 trackNewButton.style.backgroundColor = '#4CAF50'; 844 845 // Remove overlay and highlight 846 if (overlay) { 847 document.body.removeChild(overlay); 848 overlay = null; 849 } 850 851 if (highlightElement) { 852 document.body.removeChild(highlightElement); 853 highlightElement = null; 854 } 855 856 // Remove event listeners 857 document.removeEventListener('mouseover', highlightTargetElement); 858 document.removeEventListener('click', selectElement, true); 859 } 860 861 // Helper function to update the list of selected elements 862 function updateSelectedElementsList() { 863 // Clear existing list 864 selectedElementsList.innerHTML = ''; 865 866 // Update the header count 867 selectedElementsHeader.textContent = `Selected Elements (${selectedElements.length})`; 868 869 // Add each element to the list 870 selectedElements.forEach(element => { 871 const li = document.createElement('li'); 872 li.dataset.id = element.id; 873 874 const elementInfo = document.createElement('div'); 875 elementInfo.className = 'gropulse-element-info'; 876 elementInfo.textContent = `"${element.text}" (${element.selector})`; 877 878 const removeButton = document.createElement('span'); 879 removeButton.className = 'gropulse-remove-element'; 880 removeButton.textContent = 'â'; 881 removeButton.addEventListener('click', function() {
882 removeElementFromList(element.id); 883 }); 884 885 li.appendChild(elementInfo); 886 li.appendChild(removeButton); 887 selectedElementsList.appendChild(li); 888 }); 889 890 // Save to session storage 891 sessionStorage.setItem('gropulseSelectedElements', JSON.stringify(selectedElements)); 892 } 893 894 function highlightTargetElement(e) { 895 if (!isSelectionMode) return; 896 897 // Don't highlight elements in the modal itself 898 if (e.target.closest('#gropulse-custom-event-selector-modal')) { 899 if (highlightElement) { 900 highlightElement.style.display = 'none'; 901 } 902 return; 903 } 904 905 const rect = e.target.getBoundingClientRect(); 906 highlightElement.style.display = 'block'; 907 highlightElement.style.width = rect.width + 'px'; 908 highlightElement.style.height = rect.height + 'px'; 909 highlightElement.style.left = (window.pageXOffset + rect.left) + 'px'; 910 highlightElement.style.top = (window.pageYOffset + rect.top) + 'px'; 911 } 912 913 function selectElement(e) { 914 if (!isSelectionMode) return; 915 916 // Don't select elements in the modal itself 917 if (e.target.closest('#gropulse-custom-event-selector-modal')) { 918 return; 919 } 920 921 // Prevent default action (like following links) 922 e.preventDefault(); 923 e.stopPropagation(); 924 925 // Generate a selector for the clicked element 926 const selector = generateSelector(e.target); 927 928 // Add to selected elements list 929 addElementToList(e.target, selector); 930 931 // Disable selection mode 932 disableSelectionMode(); 933 } 934 935 function generateSelector(element) { 936 // First try ID selector if available 937 if (element.id) { 938 return `#${element.id}`; 939 } 940 941 // Try with classes 942 if (element.className && typeof element.className === 'string') { 943 const classes = element.className.trim().split(/\s+/); 944 if (classes.length > 0) { 945 const classSelector = `.${classes.join('.')}`; 946 if (document.querySelectorAll(classSelector).length === 1) { 947 return classSelector; 948 } 949 } 950 } 951 952 // Use tag name with nth-child 953 let path = ''; 954 let parent = element; 955 956 while (parent) { 957 if (parent === document.body) { 958 path = 'body ' + path; 959 break; 960 } 961 962 let tag = parent.tagName.toLowerCase(); 963 let siblings = Array.from(parent.parentNode.children).filter(child => child.tagName === parent.tagName); 964 965 if (siblings.length > 1) { 966 let index = siblings.indexOf(parent) + 1; 967 tag += `:nth-child(${index})`; 968 } 969 970 path = tag + (path ? ' > ' + path : ''); 971 parent = parent.parentNode; 972 973 // Stop at a certain depth to avoid overly complex selectors 974 if (path.split('>').length > 5) { 975 break; 976 } 977 } 978 979 return path.trim(); 980 } 981 982 function addElementToList(element, selector) { 983 // Create a unique ID for this element 984 const elementId = 'element-' + Date.now(); 985 986 // Add to our array 987 selectedElements.push({ 988 id: elementId, 989 selector: selector, 990 text: element.textContent.trim().substring(0, 50) || element.tagName.toLowerCase() 991 }); 992 993 // Update the display 994 updateSelectedElementsList(); 995 } 996
997 function removeElementFromList(id) { 998 // Remove from array 999 selectedElements = selectedElements.filter(el => el.id !== id); 1000 1001 // Update the display 1002 updateSelectedElementsList(); 1003 } 1004 1005 function closeModal() { 1006 disableSelectionMode(); 1007 modal.style.display = 'none'; 1008 1009 // Clear setup mode and data but keep the modal position 1010 sessionStorage.removeItem('gropulseCustomEventSetupActive'); 1011 sessionStorage.removeItem('gropulseSelectedElements'); 1012 // We intentionally don't remove gropulseModalPosition here to persist it across sessions 1013 } 1014 1015 function finishSetup() { 1016 1017 // Check if we have elements selected 1018 if (selectedElements.length > 0) { 1019 // Clean up our internal tracking but keep the modal position 1020 sessionStorage.removeItem('gropulseCustomEventSetupActive'); 1021 sessionStorage.removeItem('gropulseSelectedElements'); 1022 // We intentionally don't remove gropulseModalPosition to persist it 1023 1024 // Redirect back to the app with selected elements as a URL parameter 1025 const savedRedirectUrl = sessionStorage.getItem('gropulseCustomEventRedirectUrl') || redirectUrl; 1026 1027 if (savedRedirectUrl) { 1028 // Encode selected elements for URL 1029 const encodedElements = encodeURIComponent(JSON.stringify(selectedElements)); 1030 1031 // Determine if we need to add a ? or & for the parameter 1032 const separator = savedRedirectUrl.includes('?') ? '&' : '?'; 1033 1034 // Redirect to the app with the selected elements in the URL 1035 window.location.href = `${savedRedirectUrl}${separator}selectedElements=${encodedElements}`; 1036 } 1037 } else { 1038 alert('Please select at least one element to track.'); 1039 } 1040 } 1041}); 1042</script>
1042 1043<!-- END app snippet --> 1044<!-- Google Tag Manager Head Tag Code Start --> 1045
1045<script> 1046 sessionStorage.setItem('gropulseGTMId', "GTM-K9GV92R5" ); 1047 sessionStorage.setItem('gropulseGTMPlanName', "free" ); 1048 sessionStorage.setItem("gropulseGTMEventListData", JSON.stringify(null)); 1049 sessionStorage.setItem("gropulseGTMServerType", "direct"); 1050 sessionStorage.setItem("gropulseGTMMeasurementId", ""); 1051 sessionStorage.setItem("gropulseGTMShopName", "xksb0b-yc.myshopify.com"); 1052 sessionStorage.setItem("gropulseGTMLinkedInConfig", JSON.stringify(null)); 1053 sessionStorage.setItem("gropulseGTMConsentTrackingGiven", "false"); 1054 sessionStorage.setItem("gropulseGTMWebPixelActivated", "false");sessionStorage.removeItem("gropulseGTMEnhancedConversion");sessionStorage.setItem("gropulseGTMCustomEvents", "");window.groPulseGTMDatalayer = window.groPulseGTMDatalayer || []; 1055 1056 function gtmGtag(){ 1057 window.groPulseGTMDatalayer.push(arguments); 1058 }
vendor: 474 bytes, lines 1058-1073
1058 1059 1060 1061 1062 (function(w, d, s, l, i) { 1063 w[l] = w[l] || []; 1064 w[l].push({"gtm.start": new Date().getTime(), event: "gtm.js"}); 1065 var f = d.getElementsByTagName(s)[0], 1066 j = d.createElement(s), 1067 dl = l != "dataLayer" 1068 ? "&l=" + l 1069 : ""; 1070 j.async = true; 1071 j.src = "https://www.googletagmanager.com/gtm.js?id=" + i + dl; 1072 f.parentNode.insertBefore(j, f); 1073 })(window, document, "script", "groPulseGTMDatalayer", "
1073GTM-K9GV92R5
vendor: 22 bytes, lines 1073-1077
1073"); 1074 1075 1076 1077
1077window.Shopify.loadFeatures([ 1078 { 1079 name: "consent-tracking-api", 1080 version: "0.1" 1081 } 1082 ], (error) => { 1083 if (error) { 1084 console.error("Error loading consent-tracking-api feature:", error); 1085 } 1086 1087 const consentTrackingGiven = false; 1088 1089 if(!consentTrackingGiven){ 1090 const event = new Event("gtm_start_tracking"); 1091 window.dispatchEvent(event); 1092 return; 1093 } 1094 1095 const trackingConsentStatus = Shopify?.customerPrivacy?.getTrackingConsent?.() ?? 'no_interaction'; 1096 const hasExplicitConsent = trackingConsentStatus !== 'no_interaction'; 1097 1098 // Only update consent and start tracking if user has explicitly interacted with consent banner 1099 if (hasExplicitConsent) { 1100 const marketingAllowed = Shopify?.customerPrivacy?.marketingAllowed() ?? false; 1101 const analyticsAllowed = Shopify?.customerPrivacy?.analyticsProcessingAllowed() ?? false; 1102 1103 gtmGtag('consent', 'update', { 1104 'ad_storage': marketingAllowed ? 'granted' : 'denied', 1105 'ad_user_data': marketingAllowed ? 'granted' : 'denied', 1106 'ad_personalization': marketingAllowed ? 'granted' : 'denied', 1107 'analytics_storage': analyticsAllowed ? 'granted' : 'denied' 1108 }); 1109 1110 // Start tracking only after user has previously consented 1111 const trackingEvent = new Event("gtm_start_tracking"); 1112 window.dispatchEvent(trackingEvent); 1113 } 1114 1115 document.addEventListener("visitorConsentCollected", (event) => { 1116 const marketingAllowed = event.detail.marketingAllowed; 1117 const analyticsAllowed = event.detail.analyticsAllowed; 1118 1119 gtmGtag('consent', 'update', { 1120 'ad_storage': marketingAllowed ? 'granted' : 'denied', 1121 'ad_user_data': marketingAllowed ? 'granted' : 'denied', 1122 'ad_personalization': marketingAllowed ? 'granted' : 'denied', 1123 'analytics_storage': analyticsAllowed ? 'granted' : 'denied' 1124 }); 1125 1126 // Start tracking after user interacts with consent banner 1127 const trackingEvent = new Event("gtm_start_tracking"); 1128 window.dispatchEvent(trackingEvent); 1129 }); 1130 }); 1131 </script>
1131 1132 <!-- Google Tag Manager Head Tag Code End --> 1133 1134 <!-- Google Tag Manager Noscript Code Start -->
vendor: 81 bytes, lines 1134-1137
1134 1135 <noscript> 1136 <iframe 1137 src="https://www.googletagmanager.com/ns.html?id=
1137GTM-K9GV92R5
vendor: 106 bytes, lines 1137-1142
1137" 1138 height="0" 1139 width="0" 1140 style="display:none;visibility:hidden"></iframe> 1141 </noscript> 1142
1142<!-- Google Tag Manager Noscript Code End -->
1142<script> 1143 // Initialize dataLayer 1144 1145 1146 const linkedinConfig = null; 1147 1148 function getGA4ClientId() { 1149 try { 1150 const cookies = document.cookie.split(';'); 1151 for (const cookie of cookies) { 1152 const trimmedCookie = cookie.trim(); 1153 if (trimmedCookie.startsWith('_ga=')) { 1154 const parts = trimmedCookie.substring(4).split('.'); 1155 return parts.slice(2).join('.'); 1156 } 1157 } 1158 } catch(e) { 1159 console.error('Error getting GA4 client ID:', e); 1160 } 1161 return null; 1162 } 1163 1164 function getGA4SessionId(measurementId) { 1165 try { 1166 const normalizedId = measurementId.replace('G-', ''); 1167 const cookieName = `_ga_${normalizedId}`; 1168 1169 const cookies = document.cookie.split(';'); 1170 for (const cookie of cookies) { 1171 const trimmedCookie = cookie.trim(); 1172 if (trimmedCookie.startsWith(`${cookieName}=`)) { 1173 const cookieValue = trimmedCookie.substring(cookieName.length + 1); 1174 const sessionInfo = cookieValue.split('.')[2]; 1175 1176 if (sessionInfo) { 1177 return sessionInfo.split('$')[0].substring(1); 1178 } 1179 } 1180 } 1181 } catch(e) { 1182 console.error('Error getting GA4 session ID:', e); 1183 } 1184 return null; 1185 } 1186 1187 function collectGA4Data() { 1188 const measurementId = ""; 1189 const clientId = getGA4ClientId(); 1190 const sessionId = getGA4SessionId(measurementId); 1191 1192 if (clientId || sessionId) { 1193 localStorage.setItem('gropulse_gtm_sse', JSON.stringify({ 1194 client_id: clientId, 1195 session_id: sessionId, 1196 timestamp: Date.now() 1197 })); 1198 } 1199 } 1200 1201 function getCookie(name) { 1202 let cookie = {}; 1203 document.cookie.split(";").forEach(function (el) { 1204 let [k, v] = el.split("="); 1205 cookie[k.trim()] = v; 1206 }); 1207 return cookie[name]; 1208 } 1209 1210 function getFacebookBrowserParams() { 1211 let fbp = getCookie("_fbp") || null; 1212 let fbc = getCookie("_fbc") || null; 1213 1214 if (!fbc && window.location.search.includes("fbclid=")) { 1215 const urlParams = new URLSearchParams(window.location.search); 1216 const fbclidValue = urlParams.get("fbclid"); 1217 if (fbclidValue) { 1218 fbc = `fb.1.${Date.now()}.${fbclidValue}`; 1219 } 1220 } 1221 1222 return { fbp, fbc }; 1223 } 1224 1225 function getTiktokBrowserParams() { 1226 let ttp = getCookie("_ttp") || null; 1227 let ttclid = getCookie("ttclid") || null; 1228 1229 return { ttp, ttclid }; 1230 } 1231 1232 function getShopifyUniqueId() { 1233 let shopify_y = document.cookie 1234 .split(";") 1235 .filter((c) => c.includes("_shopify_y=")) 1236 .map((c) => c.split("_shopify_y=")[1]); 1237 1238 return (shopify_y.length && shopify_y[0]) || ""; 1239 } 1240 1241 function collectBrowserCookies() { 1242 const { fbp, fbc } = getFacebookBrowserParams(); 1243 const { ttp, ttclid } = getTiktokBrowserParams(); 1244 const shopifyUniqueId = getShopifyUniqueId(); 1245 1246 // Store browser cookies in localStorage for webpixel access 1247 if (fbp) localStorage.setItem("_fbp", fbp); 1248 if (fbc) localStorage.setItem("_fbc", fbc); 1249 if (ttp) localStorage.setItem("_ttp", ttp); 1250 if (ttclid) localStorage.setItem("ttclid", ttclid); 1251 if (shopifyUniqueId) localStorage.setItem("_shopify_y", shopifyUniqueId); 1252 } 1253 1254 window.addEventListener('load', () => { 1255 collectGA4Data(); 1256 collectBrowserCookies(); 1257 }); 1258 1259 window.isServerEventEnabled = function(event) { 1260 try { 1261 const gropulseGTMEventListData = null; 1262 if (!gropulseGTMEventListData?.serverEvents) return false; 1263 1264 const eventMapping = { 1265 "purchase": "serverPurchase", 1266 "begin_checkout": "serverCheckout", 1267 "add_to_cart": "serverAddToCart", 1268 "view_item_list": "serverCollectionPage" 1269 }; 1270 1271 const mappedEvent = eventMapping[event]; 1272 return mappedEvent ? !!gropulseGTMEventListData.serverEvents[mappedEvent] : false; 1273 } catch (error) { 1274 console.error("Error in isServerEventEnabled:", error); 1275 return false; 1276 } 1277 }; 1278 1279 window.generateEventId = function() { 1280 const key = 'gropulseGTMEventId'; 1281 1282 const eventId = `${Math.floor(Date.now())}_${Math.random().toString(36).slice(2, 8)}`; 1283 sessionStorage.setItem(key, eventId); 1284 1285 return eventId; 1286 }; 1287 1288 window.getLinkedInConversionIds = function(eventName) { 1289 return linkedinConfig?.conversionEvents?.[eventName] || ""; 1290 }// Customer data rendered server-side â null-safe defaults. 1291 window.gropulseGTMCustomerData = { 1292 email: "", 1293 phone: "", 1294 first_name: "", 1295 last_name: "", 1296 address1: "", 1297 city: "", 1298 province: "", 1299 province_code:"", 1300 zip: "", 1301 country_code: "" 1302 }; 1303 window.gropulseGTMCustomerId = ""; 1304 window.gropulseGTMShopDomain = "xksb0b-yc.myshopify.com"; 1305 1306 window.gropulseGetEnhancedConversionConfig = function() { 1307 try { 1308 const raw = sessionStorage.getItem("gropulseGTMEnhancedConversion"); 1309 return raw ? JSON.parse(raw) : null; 1310 } catch (e) { 1311 return null; 1312 } 1313 }; 1314 1315 window.gropulseIsMarketingAllowed = function() { 1316 try { 1317 if (typeof window.Shopify?.customerPrivacy?.marketingAllowed === "function") { 1318 return window.Shopify.customerPrivacy.marketingAllowed(); 1319 } 1320 } catch (e) {} 1321 // If consent state is indeterminate, default to allow (matches existing tracking behaviour).
1322 return true; 1323 }; 1324 1325 window.gropulseBuildUserData = function(eventType) { 1326 try { 1327 const cfg = window.gropulseGetEnhancedConversionConfig(); 1328 if (!cfg || !cfg.enabled) return null; 1329 if (!cfg.events || !cfg.events[eventType]) return null; 1330 // Consent enforcement is delegated to Google Consent Mode v2 downstream. 1331 // Shopify's `marketingAllowed` returns false both when the customer 1332 // denied AND when they haven't interacted with the consent banner yet, 1333 // so gating here over-blocks. Google's tags respect `ad_user_data` / 1334 // `ad_personalization` signals and drop user_data on their own. 1335 1336 const c = window.gropulseGTMCustomerData || {}; 1337 const norm = function(v) { 1338 if (v == null) return null; 1339 const s = String(v).trim().toLowerCase(); 1340 return s.length ? s : null; 1341 }; 1342 const e164 = function(v) { 1343 if (!v) return null; 1344 const cleaned = String(v).replace(/\s|-|\(|\)/g, ""); 1345 return /^\+[1-9]\d{9,13}$/.test(cleaned) && cleaned.length >= 11 && cleaned.length <= 15 1346 ? cleaned 1347 : null; 1348 }; 1349 1350 const userData = {}; 1351 const email = norm(c.email); 1352 if (email) userData.email = email; 1353 const phone = e164(c.phone); 1354 if (phone) userData.phone_number = phone; 1355 1356 const address = {}; 1357 const firstName = norm(c.first_name); 1358 const lastName = norm(c.last_name); 1359 const street = norm(c.address1); 1360 const city = norm(c.city); 1361 const region = norm(c.province_code || c.province); 1362 const postalCode = norm(c.zip); 1363 const country = norm(c.country_code); 1364 if (firstName) address.first_name = firstName; 1365 if (lastName) address.last_name = lastName; 1366 if (street) address.street = street; 1367 if (city) address.city = city; 1368 if (region) address.region = region; 1369 if (postalCode) address.postal_code = postalCode; 1370 if (country) address.country = country; 1371 if (Object.keys(address).length) userData.address = address; 1372 1373 if (!userData.email && !userData.phone_number) return null; 1374 return userData; 1375 } catch (e) { 1376 return null; 1377 } 1378 }; 1379 1380 // GA4 user_id â SHA-256(shopDomain:customerId), first 16 hex, cached. 1381 window.gropulseGTMUserIdCache = null; 1382 (async function primeGropulseUserId() { 1383 try { 1384 if (!window.gropulseGTMCustomerId) return; 1385 if (!window.crypto || !window.crypto.subtle) return; 1386 const input = new TextEncoder().encode( 1387 window.gropulseGTMShopDomain + ":" + window.gropulseGTMCustomerId 1388 ); 1389 const buf = await window.crypto.subtle.digest("SHA-256", input); 1390 const hex = Array.from(new Uint8Array(buf)) 1391 .map(function(b) { return b.toString(16).padStart(2, "0"); }) 1392 .join(""); 1393 window.gropulseGTMUserIdCache = hex.slice(0, 16); 1394 } catch (e) {} 1395 })(); 1396 1397 window.gropulseGetUserId = function() { 1398 const cfg = window.gropulseGetEnhancedConversionConfig(); 1399 if (!cfg || cfg.ga4UserIdEnabled === false) return null; 1400 // Consent gate delegated to Google Consent Mode v2 downstream. 1401 return window.gropulseGTMUserIdCache || null; 1402 }; 1403 1404 window.gropulseAttachEnhancedConversionData = function(eventData, eventType) { 1405 const ud = window.gropulseBuildUserData(eventType); 1406 const uid = window.gropulseGetUserId(); 1407 if (ud) eventData.user_data = ud; 1408 if (uid) eventData.user_id = uid; 1409 return eventData; 1410 }; 1411 1412 window.sendToServerSideEndpoint = function (eventName, standardizedData, eventId) { 1413 const { fbp, fbc } = getFacebookBrowserParams(); 1414 const { ttp, ttclid } = getTiktokBrowserParams(); 1415 const shopifyUniqueId = getShopifyUniqueId(); 1416 1417 const sseData = JSON.parse(localStorage.getItem("gropulse_gtm_sse")); 1418 const requestBody = { 1419 event: eventName, 1420 event_id: eventId, 1421 shop_domain: "xksb0b-yc.myshopify.com", 1422 timestamp: Math.floor(Date.now() / 1000), 1423 user_agent: navigator.userAgent, 1424 url: document.referrer || location.href, 1425 client_ip: null, // Will be set by server 1426 1427 // Browser/tracking data 1428 browser_data: { 1429 fbp: fbp, 1430 fbc: fbc, 1431 shopify_unique_id: shopifyUniqueId, 1432 ga4_client_id: sseData?.client_id, 1433 ga4_session_id: sseData?.session_id, 1434 ttp: ttp, 1435 ttclid: ttclid, 1436 }, 1437 1438 // Customer data (would be populated if available) 1439 customer_data: { 1440 email: "", 1441 first_name: "", 1442 last_name: "", 1443 phone: "", 1444 gender: "", 1445 date_of_birth: "", 1446 city: "", 1447 state: "", 1448 zip: "", 1449 country: "", 1450 }, 1451 1452 // Event-specific data in standardized format 1453 event_data: standardizedData, 1454 }; 1455 1456 fetch('https://gtm.gropulse.com/server-side-events', { 1457 method: "POST", 1458 headers: { 1459 "Content-Type": "application/json", 1460 }, 1461 mode: "cors", 1462 body: JSON.stringify(requestBody), 1463 }).catch((error) => { 1464 console.error("Error sending server-side event:", error); 1465 }); 1466 } 1467 1468</script>
vendor: 1 bytes, line 1468
1468
1469<script> 1470 function htSGTMCheckCart() { 1471 1472 /** 1473 * 1474 * @param {Array} dataList 1475 * @param {Object} singleData 1476 */ 1477 const isDataUseable = (dataList, checkData) => { 1478 if (dataList.length === 0) 1479 return checkData; 1480 1481 for (let index = 0; index < dataList.length; index++) { 1482 const singleData = dataList[index]; 1483 if (singleData.id === checkData.id) { 1484 if (checkData.quantity > singleData.quantity) { 1485 const newData = { 1486 ...checkData, 1487 quantity: checkData.quantity - singleData.quantity 1488 }; 1489 return newData; 1490 } else { 1491 return false; 1492 } 1493 } 1494 } 1495 return checkData; 1496 }; 1497 1498 /** 1499 * 1500 * @param {Array} localStoreData 1501 * @param {Array} newFetchData 1502 */ 1503 const checkAddToACart = (localStoreData, newFetchData) => { 1504 return newFetchData.map((singleFetchData) => isDataUseable(localStoreData, singleFetchData)).filter(Boolean); 1505 }; 1506 1507 /** 1508 * 1509 * @param {Array} localStoreData 1510 * @param {Array} newFetchData 1511 */ 1512 const checkRemoveFromACart = (localStoreData, newFetchData) => { 1513 return localStoreData.map((singleLocalStoreData) => isDataUseable(newFetchData, singleLocalStoreData)).filter(Boolean); 1514 }; 1515 1516 const addToCartFire = (cartData) => { 1517 const dataLayerItems = cartData.map((singleCartData, i) => { 1518 return { 1519 item_name: singleCartData.product_title, 1520 item_id: singleCartData.product_id, 1521 variant_id: singleCartData.variant_id, 1522 price: singleCartData.price / 100, 1523 currency: Shopify.currency.active, 1524 item_variant: singleCartData.variant_title, 1525 quantity: singleCartData.quantity, 1526 index: i + 1, 1527 item_brand: singleCartData.vendor, 1528 sku: singleCartData.sku 1529 }; 1530 }); 1531 1532 const eventName = "add_to_cart"; 1533 const eventId = window.generateEventId(); 1534 const eventData = { 1535 event: eventName, 1536 server_side_event: window.isServerEventEnabled(eventName) || false, 1537 event_id: eventId, 1538 linkedin_conversion_ids: window.getLinkedInConversionIds(eventName), 1539 ecommerce: { 1540 items: dataLayerItems 1541 } 1542 }; 1543 1544 window.gropulseAttachEnhancedConversionData(eventData, "add_to_cart"); 1545 1546 groPulseGTMDatalayer.push({ecommerce: null}); 1547 groPulseGTMDatalayer.push(eventData); 1548 }; 1549 1550 const removeFromCartFire = (cartData) => { 1551 const dataLayerItems = cartData.map((singleCartData, i) => { 1552 return { 1553 item_name: singleCartData.product_title, 1554 item_id: singleCartData.product_id, 1555 variant_id: singleCartData.variant_id, 1556 price: singleCartData.price / 100, 1557 currency: Shopify.currency.active, 1558 item_variant: singleCartData.variant_title, 1559 quantity: singleCartData.quantity, 1560 index: i + 1, 1561 item_brand: singleCartData.vendor, 1562 sku: singleCartData.sku 1563 }; 1564 }); 1565 1566 const eventName = "remove_from_cart"; 1567 const eventId = window.generateEventId(); 1568 const eventData = { 1569 event: eventName, 1570 server_side_event: window.isServerEventEnabled(eventName) || false, 1571 event_id: eventId, 1572 ecommerce: { 1573 items: dataLayerItems 1574 } 1575 }; 1576 groPulseGTMDatalayer.push({ecommerce: null}); 1577 groPulseGTMDatalayer.push(eventData); 1578 } 1579 1580 window.addEventListener("gtm_start_tracking", (event) => { 1581 setInterval(function() { 1582 fetch("/cart.js").then((response) => response.json()).then((data) => { 1583 const lsData = JSON.parse(localStorage.getItem("ht-sgtm-cart-data")) || []; 1584 const fetchData = data.items;localStorage.setItem("ht-sgtm-cart-data", JSON.stringify(fetchData)); 1585 }); 1586 }, 3000); 1587 }); 1588 } 1589 const isGroPulseGTMWebPixelLoaded = Boolean(sessionStorage.getItem("isGroPulseGTMWebPixelLoaded")); 1590 1591 if(!isGroPulseGTMWebPixelLoaded) { 1592 htSGTMCheckCart() 1593 }; 1594 1595</script>
1595<script> 1596 function generateEventId() { 1597 return `${Date.now()}_${Math.random().toString(36).slice(2, 11)}`; 1598 } 1599 1600 function setupCustomEventTracking() { 1601 const customEventsStr = sessionStorage.getItem("gropulseGTMCustomEvents"); 1602 1603 if (!customEventsStr) return; 1604 1605 try { 1606 const customEvents = JSON.parse(customEventsStr); 1607 if (!customEvents || !Array.isArray(customEvents)) return; 1608 1609 customEvents.forEach(event => { 1610 if (!event.isActive) return; 1611 1612 const elements = document.querySelectorAll(event.selector); 1613 if (!elements || elements.length === 0) return; 1614 1615 elements.forEach(element => { 1616 element.addEventListener('click', function(e) { 1617 // Prevent default if it's a link or button 1618 if (element.tagName === 'A' || element.tagName === 'BUTTON') { 1619 e.preventDefault(); 1620 } 1621 1622 // Generate event ID for deduplication 1623 const eventId = generateEventId(); 1624 1625 // Create event parameters 1626 const eventParams = event.eventParameters || {}; 1627 1628 // Publish to web pixel for handling 1629 window.Shopify = window.Shopify || {}; 1630 window.Shopify.analytics = window.Shopify.analytics || {}; 1631 window.Shopify.analytics.publish = window.Shopify.analytics.publish || function() {}; 1632 1633 window.Shopify.analytics.publish("custom_event", { 1634 event_name: event.eventName, 1635 event_id: eventId, 1636 event_parameters: eventParams, 1637 timestamp: Date.now() 1638 }); 1639 1640 // If it was a link, navigate after a short delay 1641 if (element.tagName === 'A' && element.href) { 1642 setTimeout(() => { 1643 window.location.href = element.href; 1644 }, 300); 1645 } 1646 }); 1647 }); 1648 }); 1649 } catch (error) { 1650 console.error('Error setting up custom events:', error); 1651 } 1652 } 1653 1654 window.addEventListener("load", setupCustomEventTracking); 1655</script>
1655<!-- END app block --><link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1656<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: 57415073841,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 1656
1656
1657<script> 1658 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 1659</script>
vendor: 1 bytes, line 1659
1659
1660<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}
1660).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: 57415073841,storefrontBaseUrl: "https://www.exercize4life.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.exercize4life.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab"],webPixelsConfigList: [{"id":"317259825","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-Q0FHWSPMG9\\\",\\\"GT-TBBKFJMF\\\"],\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"G-Q0FHWSPMG9\\\"},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"G-Q0FHWSPMG9\\\"},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-Q0FHWSPMG9\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-Q0FHWSPMG9\\\",\\\"MC-S86RNHT36B\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-Q0FHWSPMG9\\\",\\\"MC-S86RNHT36B\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-Q0FHWSPMG9\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-Q0FHWSPMG9\\\",\\\"MC-S86RNHT36B\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-Q0FHWSPMG9\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"G-Q0FHWSPMG9\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"G-Q0FHWSPMG9\\\"},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-Q0FHWSPMG9\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"46858289","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Google Tag Manager"},{"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":"Bingocize","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"xksb0b-yc.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/www.exercize4life.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://www.exercize4life.com/cdn","7ec887c8w14f9f074p854094e1m1370c602",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"125196632113","themeStoreId":"2699","themePublished":"true","eventMetadataId":"1f4f8d77-d9b0-41a2-916d-2f9275b6cb06","pageType":"page","resourceId":"87550263345","shopId":"57415073841","storefrontBaseUrl":"https:\/\/www.exercize4life.com","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>
1660<script> 1661 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 1662 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 1663 window.ShopifyAnalytics.meta.currency = 'USD'; 1664 var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":87550263345,"requestId":"5eaa0a94-ae2d-47d9-8633-b07fdeb9b9be-1791599347"}}; 1665 for (var attr in meta) { 1666 window.ShopifyAnalytics.meta[attr] = meta[attr]; 1667 } 1668</script>
vendor: 1 bytes, line 1668
1668
1669<script class="analytics"> 1670 (function () { 1671 var customDocumentWrite = function(content) { 1672 var jquery = null; 1673 1674 if (window.jQuery) { 1675 jquery = window.jQuery; 1676 } else if (window.Checkout && window.Checkout.$) { 1677 jquery = window.Checkout.$; 1678 } 1679 1680 if (jquery) { 1681 jquery('body').append(content); 1682 } 1683 }; 1684 1685 var hasLoggedConversion = function(token) { 1686 if (token) { 1687 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 1688 } 1689 return false; 1690 } 1691 1692 var setCookieIfConversion = function(token) { 1693 if (token) { 1694 var twoMonthsFromNow = new Date(Date.now()); 1695 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 1696 1697 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 1698 } 1699 } 1700 1701 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 1702 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 1703 if (trekkie.integrations) { 1704 return; 1705 } 1706 trekkie.methods = [ 1707 'identify', 1708 'page', 1709 'ready', 1710 'track', 1711 'trackForm', 1712 'trackLink' 1713 ]; 1714 trekkie.factory = function(method) { 1715 return function() { 1716 var args = Array.prototype.slice.call(arguments); 1717 args.unshift(method); 1718 trekkie.push(args); 1719 if (method == 'track' || method == 'page') { 1720 var pageUrl; 1721 try { 1722 pageUrl = window.location.href; 1723 } catch (e) {} 1724 var pageReferrer; 1725 try { 1726 pageReferrer = document.referrer; 1727 } catch (e) {} 1728 try { 1729 if (window.__TREKKIE_SHIM_QUEUE == null) { 1730 window.__TREKKIE_SHIM_QUEUE = []; 1731 } 1732 window.__TREKKIE_SHIM_QUEUE.push({ 1733 from: 'trekkie-stub', 1734 method: method, 1735 args: args.slice(1), 1736 pageContext: { 1737 url: pageUrl, 1738 referrer: pageReferrer 1739 } 1740 }); 1741 } catch (e) { 1742 // no-op 1743 } 1744 } 1745 return trekkie; 1746 }; 1747 }; 1748 for (var i = 0; i < trekkie.methods.length; i++) { 1749 var key = trekkie.methods[i]; 1750 trekkie[key] = trekkie.factory(key); 1751 } 1752 trekkie.load = function(config) { 1753 trekkie.config = config || {}; 1754 trekkie.config.initialDocumentCookie = document.cookie; 1755 var first = document.getElementsByTagName('script')[0]; 1756var script = document.createElement('script'); 1757script.type = 'text/javascript'; 1758script.onerror = function(e) { 1759 var scriptFallback = document.createElement('script'); 1760 scriptFallback.type = 'text/javascript'; 1761 scriptFallback.onerror = function(error) { 1762 var Monorail = { 1763 produce: function produce(monorailDomain, schemaId, payload) { 1764 var currentMs = new Date().getTime(); 1765 var event = { 1766 schema_id: schemaId, 1767 payload: payload, 1768 metadata: { 1769 event_created_at_ms: currentMs, 1770 event_sent_at_ms: currentMs 1771 } 1772 }; 1773 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 1774 }, 1775 sendRequest: function sendRequest(endpointUrl, payload) { 1776 // Try the sendBeacon API 1777 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 1778 var blobData = new window.Blob([payload], { 1779 type: 'text/plain' 1780 }); 1781 1782 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 1783 return true; 1784 } // sendBeacon was not successful 1785 1786 } // XHR beacon 1787 1788 var xhr = new XMLHttpRequest(); 1789 1790 try { 1791 xhr.open('POST', endpointUrl); 1792 xhr.setRequestHeader('Content-Type', 'text/plain'); 1793 xhr.send(payload); 1794 } catch (e) { 1795 console.log(e); 1796 } 1797 1798 return false; 1799 }, 1800 isIos12: function isIos12() { 1801 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 1802 } 1803 }; 1804 Monorail.produce('monorail-edge.shopifysvc.com', 1805 'trekkie_storefront_load_errors/1.1', 1806 {shop_id: 57415073841, 1807 theme_id: 125196632113, 1808 app_name: "storefront", 1809 context_url: window.location.href, 1810 source_url: "//www.exercize4life.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js"}); 1811 1812 }; 1813 scriptFallback.async = true; 1814 scriptFallback.src = '//www.exercize4life.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js'; 1815 first.parentNode.insertBefore(scriptFallback, first); 1816}; 1817script.async = true; 1818script.src = '//www.exercize4life.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js'; 1819first.parentNode.insertBefore(script, first); 1820 1821 }; 1822 trekkie.load( 1823 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":57415073841,"isMerchantRequest":null,"themeId":125196632113,"themeCityHash":"14370038773642293749","contentLanguage":"en","currency":"USD","eventMetadataId":"1f4f8d77-d9b0-41a2-916d-2f9275b6cb06"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}} 1824 ); 1825 1826 var loaded = false;
1827 trekkie.ready(function() { 1828 if (loaded) return; 1829 loaded = true; 1830 1831 window.ShopifyAnalytics.lib = window.trekkie; 1832 1833 var originalDocumentWrite = document.write; 1834 document.write = customDocumentWrite; 1835 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 1836 document.write = originalDocumentWrite; 1837 1838 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 1839 var token = match? match[1]: undefined; 1840 if (!hasLoggedConversion(token)) { 1841 setCookieIfConversion(token); 1842 1843 } 1844 }); 1845 1846 window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":87550263345,"requestId":"5eaa0a94-ae2d-47d9-8633-b07fdeb9b9be-1791599347","shopifyEmitted":true}); 1847 1848 var eventsListenerScript = document.createElement('script'); 1849 eventsListenerScript.async = true; 1850 eventsListenerScript.src = "//www.exercize4life.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 1851 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 1852})();</script>
vendor: 1 bytes, line 1852
1852
1853<script 1854 defer 1855 src="https://www.exercize4life.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.10.1.min.js" 1856 data-application="storefront-renderer" 1857 data-shop-id="57415073841" 1858 data-render-region="gcp-us-central1" 1859 data-page-type="page" 1860 data-theme-instance-id="125196632113" 1861 data-theme-name="Trade" 1862 data-theme-version="15.2.0" 1863 data-monorail-region="shop_domain" 1864 data-resource-timing-sampling-rate="10" 1865 data-shs="true" 1866 data-shs-beacon="true" 1867 data-shs-export-with-fetch="true" 1868 data-shs-logs-sample-rate="1" 1869 data-shs-beacon-endpoint="https://www.exercize4life.com/api/collect" 1870></script>
1870 1871<meta name="shopify-y" content="dacffae0-f4d3-46eb-94d4-fb44df882b6b" data-expiration="1823156947000"><meta name="shopify-s" content="e2690b07-169b-4e6a-b4da-0490f004292e" data-expiration="1791601147000"> 1872</head> 1873 1874 <body class="gradient animate--hover-default"> 1875 <a class="skip-to-content-link button visually-hidden" href="#MainContent"> 1876 Skip to content 1877 </a><!-- BEGIN sections: header-group --> 1878<div id="shopify-section-sections--15089215307825__header" class="shopify-section shopify-section-group-header-group section-header"> 1879<link rel="stylesheet" href="//www.exercize4life.com/cdn/shop/t/2/assets/component-list-menu.css?v=151968516119678728991736177392" media="print" onload="this.media='all'"> 1880<link rel="stylesheet" href="//www.exercize4life.com/cdn/shop/t/2/assets/component-search.css?v=165164710990765432851736177392" media="print" onload="this.media='all'"> 1881<link rel="stylesheet" href="//www.exercize4life.com/cdn/shop/t/2/assets/component-menu-drawer.css?v=147478906057189667651736177392" media="print" onload="this.media='all'"> 1882<link rel="stylesheet" href="//www.exercize4life.com/cdn/shop/t/2/assets/component-cart-notification.css?v=54116361853792938221736177392" media="print" onload="this.media='all'"><link rel="stylesheet" href="//www.exercize4life.com/cdn/shop/t/2/assets/component-price.css?v=70172745017360139101736177392" media="print" onload="this.media='all'"><style> 1883 header-drawer { 1884 justify-self: start; 1885 margin-left: -1.2rem; 1886 }@media screen and (min-width: 990px) { 1887 header-drawer { 1888 display: none; 1889 } 1890 }.menu-drawer-container { 1891 display: flex; 1892 } 1893 1894 .list-menu { 1895 list-style: none; 1896 padding: 0; 1897 margin: 0; 1898 } 1899 1900 .list-menu--inline { 1901 display: inline-flex; 1902 flex-wrap: wrap; 1903 } 1904 1905 summary.list-menu__item { 1906 padding-right: 2.7rem; 1907 } 1908 1909 .list-menu__item { 1910 display: flex; 1911 align-items: center; 1912 line-height: calc(1 + 0.3 / var(--font-body-scale)); 1913 } 1914 1915 .list-menu__item--link { 1916 text-decoration: none; 1917 padding-bottom: 1rem; 1918 padding-top: 1rem; 1919 line-height: calc(1 + 0.8 / var(--font-body-scale)); 1920 } 1921 1922 @media screen and (min-width: 750px) { 1923 .list-menu__item--link { 1924 padding-bottom: 0.5rem; 1925 padding-top: 0.5rem; 1926 } 1927 } 1928</style><style data-shopify>.header { 1929 padding: 4px 3rem 4px 3rem; 1930 } 1931 1932 .section-header { 1933 position: sticky; /* This is for fixing a Safari z-index issue. PR #2147 */ 1934 margin-bottom: 0px; 1935 } 1936 1937 @media screen and (min-width: 750px) { 1938 .section-header { 1939 margin-bottom: 0px; 1940 } 1941 } 1942 1943 @media screen and (min-width: 990px) { 1944 .header { 1945 padding-top: 8px; 1946 padding-bottom: 8px; 1947 } 1948 }</style>
1948<script src="//www.exercize4life.com/cdn/shop/t/2/assets/cart-notification.js?v=133508293167896966491736177392" defer="defer"></script>
1948<sticky-header data-sticky-type="always" class="header-wrapper color-scheme-4 gradient header-wrapper--border-bottom"><header class="header header--top-left header--mobile-left page-width header--has-menu header--has-social header--has-account"> 1949 1950<header-drawer data-breakpoint="tablet"> 1951 <details id="Details-menu-drawer-container" class="menu-drawer-container"> 1952 <summary 1953 class="header__icon header__icon--menu header__icon--summary link focus-inset" 1954 aria-label="Menu" 1955 > 1956 <span><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-hamburger" viewBox="0 0 18 16"><path fill="currentColor" d="M1 .5a.5.5 0 1 0 0 1h15.71a.5.5 0 0 0 0-1zM.5 8a.5.5 0 0 1 .5-.5h15.71a.5.5 0 0 1 0 1H1A.5.5 0 0 1 .5 8m0 7a.5.5 0 0 1 .5-.5h15.71a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5"/></svg> 1957<svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg> 1958</span> 1959 </summary> 1960 <div id="menu-drawer" class="gradient menu-drawer motion-reduce color-scheme-4"> 1961 <div class="menu-drawer__inner-container"> 1962 <div class="menu-drawer__navigation-container"> 1963 <nav class="menu-drawer__navigation"> 1964 <ul class="menu-drawer__menu has-submenu list-menu" role="list"><li><a 1965 id="HeaderDrawer-home" 1966 href="/" 1967 class="menu-drawer__menu-item list-menu__item link link--text focus-inset" 1968 1969 > 1970 Home 1971 </a></li><li><details id="Details-menu-drawer-menu-item-2"> 1972 <summary 1973 id="HeaderDrawer-about-bingocize®" 1974 class="menu-drawer__menu-item list-menu__item link link--text focus-inset" 1975 > 1976 About Bingocize® 1977 <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
1977ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg> 1978</span> 1979 <span class="svg-wrapper"><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg> 1980</span> 1981 </summary> 1982 <div 1983 id="link-about-bingocize®" 1984 class="menu-drawer__submenu has-submenu gradient motion-reduce" 1985 tabindex="-1" 1986 > 1987 <div class="menu-drawer__inner-submenu"> 1988 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 1989 <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
1989ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg> 1990</span> 1991 About Bingocize® 1992 </button> 1993 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a 1994 id="HeaderDrawer-about-bingocize®-our-story" 1995 href="/pages/our-story" 1996 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1997 1998 > 1999 Our Story 2000 </a></li><li><a 2001 id="HeaderDrawer-about-bingocize®-faqs" 2002 href="/pages/faq" 2003 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 2004 2005 > 2006 FAQs 2007 </a></li><li><a 2008 id="HeaderDrawer-about-bingocize®-about-the-program" 2009 href="/pages/about-bingocize" 2010 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 2011 2012 > 2013 About the Program 2014 </a></li><li><a 2015 id="HeaderDrawer-about-bingocize®-cms-civil-money-penalty-cmp-funding-for-nursing-homes" 2016 href="/pages/cmprp" 2017 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 2018 2019 > 2020 CMS Civil Money Penalty (CMP) Funding for Nursing Homes 2021 </a></li><li><a 2022 id="HeaderDrawer-about-bingocize®-research" 2023 href="/pages/bingocize-research" 2024 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 2025 2026 > 2027 Research 2028 </a></li></ul> 2029 </div> 2030 </div> 2031 </details></li><li><a 2032 id="HeaderDrawer-contact-us" 2033 href="/pages/contact" 2034 class="menu-drawer__menu-item list-menu__item link link--text focus-inset menu-drawer__menu-item--active" 2035 2036 aria-current="page" 2037 2038 > 2039 Contact Us 2040 </a></li><li><details id="Details-menu-drawer-menu-item-4"> 2041 <summary 2042 id="HeaderDrawer-store" 2043 class="menu-drawer__menu-item list-menu__item link link--text focus-inset" 2044 > 2045 Store 2046 <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
2046ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg> 2047</span> 2048 <span class="svg-wrapper"><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg> 2049</span> 2050 </summary> 2051 <div 2052 id="link-store" 2053 class="menu-drawer__submenu has-submenu gradient motion-reduce" 2054 tabindex="-1" 2055 > 2056 <div class="menu-drawer__inner-submenu"> 2057 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 2058 <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
2058ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg> 2059</span> 2060 Store 2061 </button> 2062 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a 2063 id="HeaderDrawer-store-all-bingocize®-items" 2064 href="/collections/all-items" 2065 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 2066 2067 > 2068 All Bingocize® Items 2069 </a></li><li><a 2070 id="HeaderDrawer-store-pre-picked-boxes-and-packs" 2071 href="/collections/boxes-and-packs" 2072 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 2073 2074 > 2075 Pre-Picked Boxes and Packs 2076 </a></li></ul> 2077 </div> 2078 </div> 2079 </details></li></ul> 2080 </nav> 2081 <div class="menu-drawer__utility-links"><a 2082 href="https://www.exercize4life.com/customer_authentication/redirect?locale=en®ion_country=US" 2083 class="menu-drawer__account link focus-inset h5 medium-hide large-up-hide" 2084 rel="nofollow" 2085 ><account-icon><span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-account" viewBox="0 0 18 19"><path fill="currentColor" fill-rule="evenodd" d="M6 4.5a3 3 0 1 1 6 0 3 3 0 0 1-6 0m3-4a4 4 0 1 0 0 8 4 4 0 0 0 0-8m5.58 12.15c1.12.82 1.83 2.24 1.91 4.85H1.51c.08-2.6.79-4.03 1.9-4.85C4.66 11.75 6.5 11.5 9 11.5s4.35.26 5.58 1.15M9 10.5c-2.5 0-4.65.24-6.17 1.35C1.27 12.98.5 14.93.5 18v.5h17V18c0-3.07-.77-5.02-2.33-6.15-1.52-1.1-3.67-1.35-6.17-1.35" clip-rule="evenodd"/></svg> 2086</span></account-icon>Log in</a><div class="menu-drawer__localization header-localization"> 2087</div><ul class="list list-social list-unstyled" role="list"><li class="list-social__item"> 2088 <a href="https://www.facebook.com/Bingocize/" class="list-social__link link"> 2089 <span class="svg-wrapper"><svg class="icon icon-facebook" viewBox="0 0 20 20"><path fill="currentColor" d="M18 10.049C18 5.603 14.419 2 10 2s-8 3.603-8 8.049C2 14.067 4.925 17.396 8.75 18v-5.624H6.719v-2.328h2.03V8.275c0-2.017 1.195-3.132 3.023-3.132.874 0 1.79.158 1.79.158v1.98h-1.009c-.994 0-1.303.621-1.303 1.258v1.51h2.219l-.355 2.326H11.25V18c3.825-.604 6.75-3.933 6.75-7.951"/></svg> 2090</span> 2091 <span class="visually-hidden">Facebook</span> 2092 </a> 2093 </li><li class="list-social__item"> 2094 <a href="https://www.youtube.com/channel/UCFFdMUGbB6NDAvspaYskUsg" class="list-social__link link"> 2095 <span class="svg-wrapper"><svg class="icon icon-youtube" viewBox="0 0 20 20"><path fill="currentColor" d="M18.16 5.87c.34 1.309.34 4.08.34 4.08s0 2.771-.34 4.08a2.13 2.13 0 0 1-1.53 1.53c-1.309.34-6.63.34-6.63.34s-5.321 0-6.63-.34a2.13 2.13 0 0 1-1.53-1.53c-.34-1.309-.34-4.08-.34-4.08s0-2.771.34-4.08a2.17 2.17 0 0 1 1.53-1.53C4.679 4 10 4 10 4s5.321 0 6.63.34a2.17 2.17 0 0 1 1.53 1.53M8.3 12.5l4.42-2.55L8.3 7.4z"/></svg> 2096</span> 2097 <span class="visually-hidden">YouTube</span> 2098 </a> 2099 </li></ul> 2100 </div> 2101 </div> 2102 </div> 2103 </div> 2104 </details> 2105</header-drawer> 2106<a href="/" class="header__heading-link link link--text focus-inset"><div class="header__heading-logo-wrapper"> 2107 2108 <img src="//www.exercize4life.com/cdn/shop/files/by.png?v=1784685037&width=600" alt="Bingocize" srcset="//www.exercize4life.com/cdn/shop/files/by.png?v=1784685037&width=300 300w, //www.exercize4life.com/cdn/shop/files/by.png?v=1784685037&width=450 450w, //www.exercize4life.com/cdn/shop/files/by.png?v=1784685037&width=600 600w" width="300" height="77.19665271966527" loading="eager" class="header__heading-logo motion-reduce" sizes="(max-width: 600px) 50vw, 300px"> 2109 </div></a> 2110 2111<nav class="header__inline-menu"> 2112 <ul class="list-menu list-menu--inline" role="list"><li><a 2113 id="HeaderMenu-home" 2114 href="/" 2115 class="header__menu-item list-menu__item link link--text focus-inset" 2116 2117 >
2118 <span 2119 >Home</span> 2120 </a></li><li><header-menu> 2121 <details id="Details-HeaderMenu-2"> 2122 <summary 2123 id="HeaderMenu-about-bingocize®" 2124 class="header__menu-item list-menu__item link focus-inset" 2125 > 2126 <span 2127 >About Bingocize®</span><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg> 2128</summary> 2129 <ul 2130 id="HeaderMenu-MenuList-2" 2131 class="header__submenu list-menu list-menu--disclosure color-scheme-4 gradient caption-large motion-reduce global-settings-popup" 2132 role="list" 2133 tabindex="-1" 2134 ><li><a 2135 id="HeaderMenu-about-bingocize®-our-story" 2136 href="/pages/our-story" 2137 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 2138 2139 > 2140 Our Story 2141 </a></li><li><a 2142 id="HeaderMenu-about-bingocize®-faqs" 2143 href="/pages/faq" 2144 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 2145 2146 > 2147 FAQs 2148 </a></li><li><a 2149 id="HeaderMenu-about-bingocize®-about-the-program" 2150 href="/pages/about-bingocize" 2151 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 2152 2153 > 2154 About the Program 2155 </a></li><li><a 2156 id="HeaderMenu-about-bingocize®-cms-civil-money-penalty-cmp-funding-for-nursing-homes" 2157 href="/pages/cmprp" 2158 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 2159 2160 > 2161 CMS Civil Money Penalty (CMP) Funding for Nursing Homes 2162 </a></li><li><a 2163 id="HeaderMenu-about-bingocize®-research" 2164 href="/pages/bingocize-research" 2165 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 2166 2167 > 2168 Research 2169 </a></li></ul> 2170 </details> 2171 </header-menu></li><li><a 2172 id="HeaderMenu-contact-us" 2173 href="/pages/contact" 2174 class="header__menu-item list-menu__item link link--text focus-inset" 2175 2176 aria-current="page" 2177 2178 > 2179 <span 2180 class="header__active-menu-item" 2181 2182 >Contact Us</span> 2183 </a></li><li><header-menu> 2184 <details id="Details-HeaderMenu-4"> 2185 <summary 2186 id="HeaderMenu-store" 2187 class="header__menu-item list-menu__item link focus-inset" 2188 > 2189 <span 2190 >Store</span><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg> 2191</summary> 2192 <ul 2193 id="HeaderMenu-MenuList-4" 2194 class="header__submenu list-menu list-menu--disclosure color-scheme-4 gradient caption-large motion-reduce global-settings-popup" 2195 role="list" 2196 tabindex="-1" 2197 ><li><a 2198 id="HeaderMenu-store-all-bingocize®-items" 2199 href="/collections/all-items" 2200 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 2201 2202 > 2203 All Bingocize® Items 2204 </a></li><li><a 2205 id="HeaderMenu-store-pre-picked-boxes-and-packs" 2206 href="/collections/boxes-and-packs" 2207 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 2208 2209 > 2210 Pre-Picked Boxes and Packs 2211 </a></li></ul> 2212 </details> 2213 </header-menu></li></ul> 2214</nav> 2215 2216<div class="header__icons header__icons--localization header-localization"> 2217 <div class="desktop-localization-wrapper"> 2218</div> 2219 2220 2221<details-modal class="header__search"> 2222 <details> 2223 <summary 2224 class="header__icon header__icon--search header__icon--summary link focus-inset modal__toggle" 2225 aria-haspopup="dialog" 2226 aria-label="Search" 2227 >
2228 <span> 2229 <span class="svg-wrapper"><svg fill="none" class="icon icon-search" viewBox="0 0 18 19"><path fill="currentColor" fill-rule="evenodd" d="M11.03 11.68A5.784 5.784 0 1 1 2.85 3.5a5.784 5.784 0 0 1 8.18 8.18m.26 1.12a6.78 6.78 0 1 1 .72-.7l5.4 5.4a.5.5 0 1 1-.71.7z" clip-rule="evenodd"/></svg> 2230</span> 2231 <span class="svg-wrapper header__icon-close"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg> 2232</span> 2233 </span> 2234 </summary> 2235 <div 2236 class="search-modal modal__content gradient" 2237 role="dialog" 2238 aria-modal="true" 2239 aria-label="Search" 2240 > 2241 <div class="modal-overlay"></div> 2242 <div 2243 class="search-modal__content search-modal__content-bottom" 2244 tabindex="-1" 2245 ><predictive-search class="search-modal__form" data-loading-text="Loading..."><form action="/search" method="get" role="search" class="search search-modal__form"> 2246 <div class="field"> 2247 <input 2248 class="search__input field__input" 2249 id="Search-In-Modal" 2250 type="search" 2251 name="q" 2252 value="" 2253 placeholder="Search"role="combobox" 2254 aria-expanded="false" 2255 aria-owns="predictive-search-results" 2256 aria-controls="predictive-search-results" 2257 aria-haspopup="listbox" 2258 aria-autocomplete="list" 2259 autocorrect="off" 2260 autocomplete="off" 2261 autocapitalize="off" 2262 spellcheck="false"> 2263 <label class="field__label" for="Search-In-Modal">Search</label> 2264 <input type="hidden" name="options[prefix]" value="last"> 2265 <button 2266 type="reset" 2267 class="reset__button field__button hidden" 2268 aria-label="Clear search term" 2269 > 2270 <span class="svg-wrapper"><svg fill="none" stroke="currentColor" class="icon icon-close" viewBox="0 0 18 18"><circle cx="9" cy="9" r="8.5" stroke-opacity=".2"/><path stroke-linecap="round" stroke-linejoin="round" d="M11.83 11.83 6.172 6.17M6.229 11.885l5.544-5.77"/></svg> 2271</span> 2272 </button> 2273 <button class="search__button field__button" aria-label="Search"> 2274 <span class="svg-wrapper"><svg fill="none" class="icon icon-search" viewBox="0 0 18 19"><path fill="currentColor" fill-rule="evenodd" d="M11.03 11.68A5.784 5.784 0 1 1 2.85 3.5a5.784 5.784 0 0 1 8.18 8.18m.26 1.12a6.78 6.78 0 1 1 .72-.7l5.4 5.4a.5.5 0 1 1-.71.7z" clip-rule="evenodd"/></svg> 2275</span> 2276 </button> 2277 </div><div class="predictive-search predictive-search--header" tabindex="-1" data-predictive-search> 2278 2279<div class="predictive-search__loading-state"> 2280 <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg> 2281 2282</div> 2283</div> 2284 2285 <span class="predictive-search-status visually-hidden" role="status" aria-hidden="true"></span></form></predictive-search><button 2286 type="button" 2287 class="search-modal__close-button modal__close-button link link--text focus-inset" 2288 aria-label="Close" 2289 > 2290 <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg> 2291</span> 2292 </button> 2293 </div> 2294 </div> 2295 </details> 2296</details-modal> 2297 2298<a 2299 href="https://www.exercize4life.com/customer_authentication/redirect?locale=en®ion_country=US" 2300 class="header__icon header__icon--account link focus-inset small-hide" 2301 rel="nofollow" 2302 ><account-icon>
2302<span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-account" viewBox="0 0 18 19"><path fill="currentColor" fill-rule="evenodd" d="M6 4.5a3 3 0 1 1 6 0 3 3 0 0 1-6 0m3-4a4 4 0 1 0 0 8 4 4 0 0 0 0-8m5.58 12.15c1.12.82 1.83 2.24 1.91 4.85H1.51c.08-2.6.79-4.03 1.9-4.85C4.66 11.75 6.5 11.5 9 11.5s4.35.26 5.58 1.15M9 10.5c-2.5 0-4.65.24-6.17 1.35C1.27 12.98.5 14.93.5 18v.5h17V18c0-3.07-.77-5.02-2.33-6.15-1.52-1.1-3.67-1.35-6.17-1.35" clip-rule="evenodd"/></svg> 2303</span></account-icon><span class="visually-hidden">Log in</span> 2304 </a><a href="/cart" class="header__icon header__icon--cart link focus-inset" id="cart-icon-bubble"> 2305 2306 <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-cart-empty" viewBox="0 0 40 40"><path fill="currentColor" fill-rule="evenodd" d="M15.75 11.8h-3.16l-.77 11.6a5 5 0 0 0 4.99 5.34h7.38a5 5 0 0 0 4.99-5.33L28.4 11.8zm0 1h-2.22l-.71 10.67a4 4 0 0 0 3.99 4.27h7.38a4 4 0 0 0 4-4.27l-.72-10.67h-2.22v.63a4.75 4.75 0 1 1-9.5 0zm8.5 0h-7.5v.63a3.75 3.75 0 1 0 7.5 0z"/></svg> 2307</span> 2308 2309 <span class="visually-hidden">Cart</span></a> 2310 </div> 2311 </header> 2312</sticky-header> 2313 2314<cart-notification> 2315 <div class="cart-notification-wrapper page-width"> 2316 <div 2317 id="cart-notification" 2318 class="cart-notification focus-inset color-scheme-4 gradient" 2319 aria-modal="true" 2320 aria-label="Item added to your cart" 2321 role="dialog" 2322 tabindex="-1" 2323 > 2324 <div class="cart-notification__header"> 2325 <h2 class="cart-notification__heading caption-large text-body"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-checkmark" viewBox="0 0 12 9"><path fill="currentColor" fill-rule="evenodd" d="M11.35.643a.5.5 0 0 1 .006.707l-6.77 6.886a.5.5 0 0 1-.719-.006L.638 4.845a.5.5 0 1 1 .724-.69l2.872 3.011 6.41-6.517a.5.5 0 0 1 .707-.006z" clip-rule="evenodd"/></svg> 2326Item added to your cart 2327 </h2> 2328 <button 2329 type="button" 2330 class="cart-notification__close modal__close-button link link--text focus-inset" 2331 aria-label="Close" 2332 > 2333 <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg> 2334</span> 2335 </button> 2336 </div> 2337 <div id="cart-notification-product" class="cart-notification-product"></div> 2338 <div class="cart-notification__links"> 2339 <a 2340 href="/cart" 2341 id="cart-notification-button" 2342 class="button button--secondary button--full-width" 2343 >View cart</a> 2344 <form action="/cart" method="post" id="cart-notification-form"> 2345 <button class="button button--primary button--full-width" name="checkout"> 2346 Check out 2347 </button> 2348 </form> 2349 <button type="button" class="link button-label">Continue shopping</button> 2350 </div> 2351 </div> 2352 </div> 2353</cart-notification> 2354<style data-shopify> 2355 .cart-notification { 2356 display: none; 2357 } 2358</style> 2359 2360
2361<script type="application/ld+json"> 2362 { 2363 "@context": "http://schema.org", 2364 "@type": "Organization", 2365 "name": "Bingocize", 2366 2367 "logo": "https:\/\/www.exercize4life.com\/cdn\/shop\/files\/by.png?v=1784685037\u0026width=500", 2368 2369 "sameAs": [ 2370 "", 2371 "https:\/\/www.facebook.com\/Bingocize\/", 2372 "", 2373 "", 2374 "", 2375 "", 2376 "", 2377 "https:\/\/www.youtube.com\/channel\/UCFFdMUGbB6NDAvspaYskUsg", 2378 "" 2379 ], 2380 "url": "https:\/\/www.exercize4life.com\/pages\/contact" 2381 } 2382</script>
2382 2383</div> 2384<!-- END sections: header-group --> 2385 2386 <main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1"> 2387 <section id="shopify-section-template--15131890679857__main" class="shopify-section section"><link href="//www.exercize4life.com/cdn/shop/t/2/assets/section-main-page.css?v=848677459125201531736177395" rel="stylesheet" type="text/css" media="all" /> 2388<style data-shopify>.section-template--15131890679857__main-padding { 2389 padding-top: 21px; 2390 padding-bottom: 6px; 2391 } 2392 2393 @media screen and (min-width: 750px) { 2394 .section-template--15131890679857__main-padding { 2395 padding-top: 28px; 2396 padding-bottom: 8px; 2397 } 2398 }</style><div class="page-width page-width--narrow section-template--15131890679857__main-padding"> 2399 <h1 class="main-page-title page-title h0 scroll-trigger animate--fade-in"> 2400 Contact Us 2401 </h1> 2402 <div class="rte scroll-trigger animate--slide-in"> 2403 2404 </div> 2405</div> 2406 2407 2408</section><section id="shopify-section-template--15131890679857__slideshow_cLFake" class="shopify-section section"><link href="//www.exercize4life.com/cdn/shop/t/2/assets/section-image-banner.css?v=124819179385751388401736177395" rel="stylesheet" type="text/css" media="all" /> 2409<link href="//www.exercize4life.com/cdn/shop/t/2/assets/component-slider.css?v=14039311878856620671736177392" rel="stylesheet" type="text/css" media="all" /> 2410<link href="//www.exercize4life.com/cdn/shop/t/2/assets/component-slideshow.css?v=17933591812325749411736177392" rel="stylesheet" type="text/css" media="all" /> 2411<slideshow-component 2412 class="slider-mobile-gutter" 2413 role="region" 2414 aria-roledescription="Carousel" 2415 aria-label="Slideshow about our brand" 2416><div 2417 class="slideshow banner banner--small grid grid--1-col slider slider--everywhere scroll-tr
2417igger animate--fade-in" 2418 id="Slider-template--15131890679857__slideshow_cLFake" 2419 aria-live="polite" 2420 aria-atomic="true" 2421 data-autoplay="false" 2422 data-speed="5" 2423 ><style> 2424 #Slide-template--15131890679857__slideshow_cLFake-1 .banner__media::after { 2425 opacity: 0.0; 2426 } 2427 </style> 2428 <div 2429 class="slideshow__slide grid__item grid--1-col slider__slide" 2430 id="Slide-template--15131890679857__slideshow_cLFake-1" 2431 2432 role="group" 2433 aria-roledescription="Slide" 2434 aria-label="1 of 1" 2435 tabindex="-1" 2436 > 2437 <div class="slideshow__media banner__media media"> 2438 <img src="//www.exercize4life.com/cdn/shop/files/Screenshot_2025-01-06_at_7.17.12_PM_91d7baaa-f781-41b5-85f4-93d006961780.png?v=1736212888&width=3840" alt="" srcset="//www.exercize4life.com/cdn/shop/files/Screenshot_2025-01-06_at_7.17.12_PM_91d7baaa-f781-41b5-85f4-93d006961780.png?v=1736212888&width=375 375w, //www.exercize4life.com/cdn/shop/files/Screenshot_2025-01-06_at_7.17.12_PM_91d7baaa-f781-41b5-85f4-93d006961780.png?v=1736212888&width=550 550w, //www.exercize4life.com/cdn/shop/files/Screenshot_2025-01-06_at_7.17.12_PM_91d7baaa-f781-41b5-85f4-93d006961780.png?v=1736212888&width=750 750w, //www.exercize4life.com/cdn/shop/files/Screenshot_2025-01-06_at_7.17.12_PM_91d7baaa-f781-41b5-85f4-93d006961780.png?v=1736212888&width=1100 1100w, //www.exercize4life.com/cdn/shop/files/Screenshot_2025-01-06_at_7.17.12_PM_91d7baaa-f781-41b5-85f4-93d006961780.png?v=1736212888&width=1500 1500w, //www.exercize4life.com/cdn/shop/files/Screenshot_2025-01-06_at_7.17.12_PM_91d7baaa-f781-41b5-85f4-93d006961780.png?v=1736212888&width=1780 1780w, //www.exercize4life.com/cdn/shop/files/Screenshot_2025-01-06_at_7.17.12_PM_91d7baaa-f781-41b5-85f4-93d006961780.png?v=1736212888&width=2000 2000w, //www.exercize4life.com/cdn/shop/files/Screenshot_2025-01-06_at_7.17.12_PM_91d7baaa-f781-41b5-85f4-93d006961780.png?v=1736212888&width=3000 3000w, //www.exercize4life.com/cdn/shop/files/Screenshot_2025-01-06_at_7.17.12_PM_91d7baaa-f781-41b5-85f4-93d006961780.png?v=1736212888&width=3840 3840w" height="1827" sizes="100vw" fetchpriority="auto"> 2439</div> 2440 <div class="slideshow__text-wrapper banner__content banner__content--middle-center page-width scroll-trigger animate--slide-in"> 2441 <div class="slideshow__text banner__box content-container content-container--full-width-mobile color-scheme-2 gradient slideshow__text--center slideshow__text-mobile--center"><h2 class="banner__heading inline-richtext h1"> 2442 Email, Chat with Us, or Fill Out our Inquiry Form 2443 </h2><div class="banner__text rte" > 2444 <p><strong>Sales</strong>: [email protected] <strong>Other Questions</strong>: [email protected]</p> 2445 </div></div> 2446 </div> 2447 </div></div></slideshow-component> 2448</section><section id="shopify-section-template--15131890679857__custom_liquid_KtaEyj" class="shopify-section section"><style data-shopify>.section-template--15131890679857__custom_liquid_KtaEyj-padding { 2449 padding-top: calc(40px * 0.75); 2450 padding-bottom: calc(52px * 0.75); 2451 } 2452 2453 @media screen and (min-width: 750px) { 2454 .section-template--15131890679857__custom_liquid_KtaEyj-padding { 2455 padding-top: 40px; 2456 padding-bottom: 52px; 2457 } 2458 }</style><div class="color-scheme-1 gradient"> 2459 <div class="section-template--15131890679857__custom_liquid_KtaEyj-padding"> 2460 <iframe frameborder="0" allowfullscreen="" src="https://forms.zohopublic.com/bingocize/form/InquiryForm/formperma/xquDJI458LQAv0YOtNAQPiBeakDI_JCkx5P5_q-pYuc" style="height:1400px;width:99%;border:none;"></iframe> 2461 </div> 2462</div> 2463 2464 2465</section> 2466 </main> 2467 2468 <!-- BEGIN sections: footer-group --> 2469<div id="shopify-section-sections--15089215275057__footer" class="shopify-section shopify-section-group-footer-group"> 2470<link href="//www.exercize4life.com/cdn/shop/t/2/assets/section-footer.css?v=60318643098753476351736177395" rel="stylesheet" type="text/css" media="all" /> 2471<link href="//www.exercize4life.com/cdn/shop/t/2/assets/component-newsletter.css?v=4727253280200485261736177392" rel="stylesheet" type="text/css" media="all" /> 2472<link href="//www.exercize4life.com/cdn/shop/t/2/assets/component-list-menu.css?v=151968516119678728991736177392" rel="stylesheet" type="text/css" media="all" /> 2473<link href="//www.exercize4life.com/cdn/shop/t/2/assets/component-list-payment.css?v=69253961410771838501736177392" rel="stylesheet" type="text/css" media="all" /> 2474<link href="//www.exercize4life.com/cdn/shop/t/2/assets/component-list-social.css?v=35792976012981934991736177392" rel="stylesheet" type="text/css" media="all" /> 2475<style data-shopify>.footer { 2476 margin-top: 0px; 2477 } 2478 2479 .section-sections--15089215275057__footer-padding { 2480 padding-top: 27px; 2481 padding-bottom: 27px; 2482 } 2483 2484 @media screen and (min-width: 750px) { 2485 .footer { 2486 margin-top: 0px; 2487 } 2488 2489 .section-sections--15089215275057__footer-padding { 2490 padding-top: 36px; 2491 padding-bottom: 36px; 2492 } 2493 }</style><footer class="footer color-scheme-4 gradient section-sections--15089215275057__footer-padding">
2493<div class="footer__content-top page-width"><div 2494 class="footer-block--newsletter scroll-trigger animate--slide-in" 2495 2496 data-cascade 2497 2498 ><div class="footer-block__newsletter"><h2 class="footer-block__heading inline-richtext">Subscribe to our emails</h2><form method="post" action="/contact#ContactFooter" id="ContactFooter" accept-charset="UTF-8" class="footer__newsletter newsletter-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="contact[tags]" value="newsletter"> 2499 <div class="newsletter-form__field-wrapper"> 2500 <div class="field"> 2501 <input 2502 id="NewsletterForm--sections--15089215275057__footer" 2503 type="email" 2504 name="contact[email]" 2505 class="field__input" 2506 value="" 2507 aria-required="true" 2508 autocorrect="off" 2509 autocapitalize="off" 2510 autocomplete="email" 2511 2512 placeholder="Email" 2513 required 2514 > 2515 <label class="field__label" for="NewsletterForm--sections--15089215275057__footer"> 2516 Email 2517 </label> 2518 <button 2519 type="submit" 2520 class="newsletter-form__button field__button" 2521 name="commit" 2522 id="Subscribe" 2523 aria-label="Subscribe" 2524 > 2525 <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
2525ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg> 2526</span> 2527 </button> 2528 </div></div></form></div><div class="footer__follow-on-shop"> 2529
2529<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.shop-follow-button.en.esm.js"></script>
vendor: 1 bytes, line 2529
2529
2530<script type="module"> 2531 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.shop-follow-button.en.esm.js"); 2532 2533 2534</script>
2534 2535 2536<shop-follow-button ux-mode="windoid" return-uri="https://www.exercize4life.com/account/redirect" proxy="true"></shop-follow-button> 2537 2538 </div> 2539 2540<ul class="list-unstyled list-social footer__list-social" role="list"><li class="list-social__item"> 2541 <a href="https://www.facebook.com/Bingocize/" class="link list-social__link"> 2542 <span class="svg-wrapper"><svg class="icon icon-facebook" viewBox="0 0 20 20"><path fill="currentColor" d="M18 10.049C18 5.603 14.419 2 10 2s-8 3.603-8 8.049C2 14.067 4.925 17.396 8.75 18v-5.624H6.719v-2.328h2.03V8.275c0-2.017 1.195-3.132 3.023-3.132.874 0 1.79.158 1.79.158v1.98h-1.009c-.994 0-1.303.621-1.303 1.258v1.51h2.219l-.355 2.326H11.25V18c3.825-.604 6.75-3.933 6.75-7.951"/></svg> 2543</span> 2544 <span class="visually-hidden">Facebook</span> 2545 </a> 2546 </li><li class="list-social__item"> 2547 <a href="https://www.youtube.com/channel/UCFFdMUGbB6NDAvspaYskUsg" class="link list-social__link"> 2548 <span class="svg-wrapper"><svg class="icon icon-youtube" viewBox="0 0 20 20"><path fill="currentColor" d="M18.16 5.87c.34 1.309.34 4.08.34 4.08s0 2.771-.34 4.08a2.13 2.13 0 0 1-1.53 1.53c-1.309.34-6.63.34-6.63.34s-5.321 0-6.63-.34a2.13 2.13 0 0 1-1.53-1.53c-.34-1.309-.34-4.08-.34-4.08s0-2.771.34-4.08a2.17 2.17 0 0 1 1.53-1.53C4.679 4 10 4 10 4s5.321 0 6.63.34a2.17 2.17 0 0 1 1.53 1.53M8.3 12.5l4.42-2.55L8.3 7.4z"/></svg> 2549</span> 2550 <span class="visually-hidden">YouTube</span> 2551 </a> 2552 </li></ul> 2553</div> 2554 </div><div 2555 class="footer__content-bottom scroll-trigger animate--slide-in" 2556 2557 data-cascade 2558 2559 > 2560 <div class="footer__content-bottom-wrapper page-width"> 2561 <div class="footer__column footer__localization isolate"></div> 2562 <div class="footer__column footer__column--info"></div> 2563 </div> 2564 <div class="footer__content-bottom-wrapper page-width"> 2565 <div class="footer__copyright caption"> 2566 <small class="copyright__content" 2567 >© 2026, <a href="/" title="">Bingocize</a></small> 2568 <small class="copyright__content"><a target="_blank" rel="nofollow" href="https://www.shopify.com?utm_campaign=poweredby&utm_medium=shopify&utm_source=onlinestore">Powered by Shopify</a></small><ul class="policies list-unstyled"><li> 2569 <small class="copyright__content" 2570 ><a href="/policies/privacy-policy">Privacy policy</a></small 2571 > 2572 </li><li> 2573 <small class="copyright__content" 2574 ><a href="/policies/terms-of-service">Terms of service</a></small 2575 > 2576 </li><li> 2577 <small class="copyright__content" 2578 ><a href="/policies/shipping-policy">Shipping policy</a></small 2579 > 2580 </li><li> 2581 <small class="copyright__content" 2582 ><a href="/policies/refund-policy">Refund policy</a></small 2583 > 2584 </li><li> 2585 <small class="copyright__content" 2586 ><a href="/policies/contact-information">Contact information</a></small 2587 > 2588 </li></ul></div> 2589 </div> 2590 </div> 2591</footer> 2592 2593 2594</div> 2595<!-- END sections: footer-group --> 2596 2597 <ul hidden> 2598 <li id="a11y-refresh-page-message">Choosing a selection results in a full page refresh.</li> 2599 <li id="a11y-new-window-message">Opens in a new window.</li> 2600 </ul> 2601 2602
2602<script> 2603 window.shopUrl = 'https://www.exercize4life.com'; 2604 window.routes = { 2605 cart_add_url: '/cart/add', 2606 cart_change_url: '/cart/change', 2607 cart_update_url: '/cart/update', 2608 cart_url: '/cart', 2609 predictive_search_url: '/search/suggest', 2610 }; 2611 2612 window.cartStrings = { 2613 error: `There was an error while updating your cart. Please try again.`, 2614 quantityError: `You can only add [quantity] of this item to your cart.`, 2615 }; 2616 2617 window.variantStrings = { 2618 addToCart: `Add to cart`, 2619 soldOut: `Sold out`, 2620 unavailable: `Unavailable`, 2621 unavailable_with_option: `[value] - Unavailable`, 2622 }; 2623 2624 window.quickOrderListStrings = { 2625 itemsAdded: `[quantity] items added`, 2626 itemAdded: `[quantity] item added`, 2627 itemsRemoved: `[quantity] items removed`, 2628 itemRemoved: `[quantity] item removed`, 2629 viewCart: `View cart`, 2630 each: `[money]/ea`, 2631 min_error: `This item has a minimum of [min]`, 2632 max_error: `This item has a maximum of [max]`, 2633 step_error: `You can only add this item in increments of [step]`, 2634 }; 2635 2636 window.accessibilityStrings = { 2637 imageAvailable: `Image [index] is now available in gallery view`, 2638 shareSuccess: `Link copied to clipboard`, 2639 pauseSlideshow: `Pause slideshow`, 2640 playSlideshow: `Play slideshow`, 2641 recipientFormExpanded: `Gift card recipient form expanded`, 2642 recipientFormCollapsed: `Gift card recipient form collapsed`, 2643 countrySelectorSearchCount: `[count] countries/regions found`, 2644 }; 2645 </script>
2645<script src="//www.exercize4life.com/cdn/shop/t/2/assets/predictive-search.js?v=57209189334897115771736177394" defer="defer"></script>
2645<script>(function(){var pp=document.createElement('script'), ppr=document.getElementsByTagName('script')[0]; stid='UVFJWncwdy93OTQxNmdYOGZ3NndSZz09';pp.type='text/javascript'; pp.async=true; pp.src=('https:' == document.location.protocol ? 'https://' : 'http://') + 's01.live2support.com/dashboardv2/chatwindow/'; ppr.parentNode.insertBefore(pp, ppr);})();</script>
2645<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
2645 2646</body> 2647</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.