PageSourceSearch

https://www.jjdog.com/competition-equipment/rally/utility-articles/

html jjdog.com collected 2026-09-26 02:57:26 UTC 174,256 bytes, 3,939 lines download raw bytes

1
2
3
4<!DOCTYPE html>
5<html class="no-js" lang="en">
6    <head>
7        <meta charset="utf-8">
8        
9        
10        <!-- Google Tag Manager -->
11<script type="77683c8daf3a83c7926e58dc-text/javascript">
vendor: 331 bytes, lines 11-15
11(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
12new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
13j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
14'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
15})(window,document,'script','dataLayer','
15GTM-K9M5NP2
vendor: 3 bytes, line 15
15');
15</script>
15
16<!-- End Google Tag Manager -->
17<meta name="facebook-domain-verification" content="3e86bam6t39eynfx646wrwl2qsdeur" />
18
19<link rel="preload" href="https://i.shgcdn.com/aaac221f-26e6-47de-ae2a-9d6c4ad06882/-/format/auto/-/preview/3000x3000/-/quality/lighter/" as="image">
20        
21        <title>Utility Articles For Rally Dog Training - J&amp;J Dog Supplies</title>
22        <link rel="dns-prefetch preconnect" href="https://cdn11.bigcommerce.com/s-cftgfbe14j" crossorigin><link rel="dns-prefetch preconnect" href="https://fonts.googleapis.com/" crossorigin><link rel="dns-prefetch preconnect" href="https://fonts.gstatic.com/" crossorigin>
23        <link rel='canonical' href='https://www.jjdog.com/competition-equipment/rally/utility-articles/' /><meta name='platform' content='bigcommerce.stencil' />
24        
25        
26
27        <link href="https://cdn11.bigcommerce.com/s-cftgfbe14j/product_images/jjdog-favicon.png" rel="shortcut icon">
28        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
29
30        
30<script type="77683c8daf3a83c7926e58dc-text/javascript">
31            document.documentElement.className = document.documentElement.className.replace('no-js', 'js');
32        </script>
32
33
34        
34<script type="77683c8daf3a83c7926e58dc-text/javascript">
35    function browserSupportsAllFeatures() {
36        return window.Promise
37            && window.fetch
38            && window.URL
39            && window.URLSearchParams
40            && window.WeakMap
41            // object-fit support
42            && ('objectFit' in document.documentElement.style);
43    }
44
45    function loadScript(src) {
46        var js = document.createElement('script');
47        js.src = src;
48        js.onerror = function () {
49            console.error('Failed to load polyfill script ' + src);
50        };
51        document.head.appendChild(js);
52    }
53
54    if (!browserSupportsAllFeatures()) {
55        loadScript('https://cdn11.bigcommerce.com/s-cftgfbe14j/stencil/1d272760-e709-0138-dd55-0242ac11000f/e/959864e0-7e25-013f-a515-4add52f6d68f/dist/theme-bundle.polyfills.js');
56    }
57</script>
57
58
59        
59<script type="77683c8daf3a83c7926e58dc-text/javascript">
60            window.lazySizesConfig = window.lazySizesConfig || {};
61            window.lazySizesConfig.loadMode = 1;
62        </script>
62
63        
63<script async src="https://cdn11.bigcommerce.com/s-cftgfbe14j/stencil/1d272760-e709-0138-dd55-0242ac11000f/e/959864e0-7e25-013f-a515-4add52f6d68f/dist/theme-bundle.head_async.js" type="77683c8daf3a83c7926e58dc-text/javascript"></script>
63
64        
64<script type="77683c8daf3a83c7926e58dc-text/javascript" src="https://cdn11.bigcommerce.com/s-cftgfbe14j/stencil/1d272760-e709-0138-dd55-0242ac11000f/e/959864e0-7e25-013f-a515-4add52f6d68f/js/theme/custom/jquery.min.js"></script>
64
65
66        <link href="https://fonts.googleapis.com/css?family=Montserrat:700,500%7COpen+Sans:400%7COswald:400&display=swap" rel="stylesheet">
67        <link data-stencil-stylesheet href="https://cdn11.bigcommerce.com/s-cftgfbe14j/stencil/1d272760-e709-0138-dd55-0242ac11000f/e/959864e0-7e25-013f-a515-4add52f6d68f/css/theme-e4f2b1a0-6b24-013e-ae5f-52ccad0afc2b.css" rel="stylesheet">
68
69        <!-- Start Tracking Code for analytics_facebook -->
70
71<script type="77683c8daf3a83c7926e58dc-text/javascript">
72!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,document,'script','https://connect.facebook.net/en_US/fbevents.js');
73
74fbq('set', 'autoConfig', 'false', '1494282947604199');
75fbq('dataProcessingOptions', ['LDU'], 0, 0);
76fbq('init', '1494282947604199', {"external_id":"c46fece1-df7e-400f-b8d1-a58eb361af20"});
77fbq('set', 'agent', 'bigcommerce', '1494282947604199');
78
79function trackEvents() {
80    var pathName = window.location.pathname;
81
82    
83
84    // Search events start -- only fire if the shopper lands on the /search.php page
85    if (pathName.indexOf('/search.php') === 0 && getUrlParameter('search_query')) {
86        fbq('trackSingle', '1494282947604199', 'Search', {
87            content_type: 'product_group',
88            content_ids: [],
89            search_string: getUrlParameter('search_query')
90        });
91    }
92    // Search events end
93
94    // Wishlist events start -- only fire if the shopper attempts to add an item to their wishlist
95    if (pathName.indexOf('/wishlist.php') === 0 && getUrlParameter('added_product_id')) {
96        fbq('trackSingle', '1494282947604199', 'AddToWishlist', {
97            content_type: 'product_group',
98            content_ids: []
99        });
100    }
101    // Wishlist events end
102
103    // Lead events start -- only fire if the shopper subscribes to newsletter
104    if (pathName.indexOf('/subscribe.php') === 0 && getUrlParameter('result') === 'success') {
105        fbq('trackSingle', '1494282947604199', 'Lead', {});
106    }
107    // Lead events end
108
109    // Registration events start -- only fire if the shopper registers an account
110    if (pathName.indexOf('/login.php') === 0 && getUrlParameter('action') === 'account_created') {
111        fbq('trackSingle', '1494282947604199', 'CompleteRegistration', {}, "");
112    }
113    // Registration events end
114
115    
116
117    function getUrlParameter(name) {
118        var cleanName = name.replace(/[\[]/, '\[').replace(/[\]]/, '\]');
119        var regex = new RegExp('[\?&]' + cleanName + '=([^&#]*)');
120        var results = regex.exec(window.location.search);
121        return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
122    }
123}
124
125if (window.addEventListener) {
126    window.addEventListener("load", trackEvents, false)
127}
128</script>
128
129<noscript><img height="1" width="1" style="display:none" alt="null" src="https://www.facebook.com/tr?id=1494282947604199&ev=PageView&noscript=1&a=plbigcommerce1.2&eid="/></noscript>
130
131<!-- End Tracking Code for analytics_facebook -->
132
133<!-- Start Tracking Code for analytics_googleanalytics4 -->
134
135<script data-cfasync="false" src="https://cdn11.bigcommerce.com/shared/js/google_analytics4_bodl_subscribers-358423becf5d870b8b603a81de597c10f6bc7699.js" integrity="sha256-gtOfJ3Avc1pEE/hx6SKj/96cca7JvfqllWA9FTQJyfI=" crossorigin="anonymous"></script>
vendor: 1 bytes, line 135
135
136<script data-cfasync="false">
137  (function () {
138    window.dataLayer = window.dataLayer || [];
139
140    function gtag(){
141        dataLayer.push(arguments);
142    }
143
144    function initGA4(event) {
145         function setupGtag() {
146            function configureGtag() {
147                gtag('js', new Date());
148                gtag('set', 'developer_id.dMjk3Nj', true);
149                gtag('config', 'G-7FS1HSHX07');
150            }
151
152            var script = document.createElement('script');
153
154            script.src = 'https://www.googletagmanager.com/gtag/js?id=G-7FS1HSHX07';
155            script.async = true;
156            script.onload = configureGtag;
157
158            document.head.appendChild(script);
159        }
160
161        setupGtag();
162
163        if (typeof subscribeOnBodlEvents === 'function') {
164            subscribeOnBodlEvents('G-7FS1HSHX07', false);
165        }
166
167        window.removeEventListener(event.type, initGA4);
168    }
169
170    
171
172    var eventName = document.readyState === 'complete' ? 'consentScriptsLoaded' : 'DOMContentLoaded';
173    window.addEventListener(eventName, initGA4, false);
174  })()
175</script>
175
176
177<!-- End Tracking Code for analytics_googleanalytics4 -->
178
179<!-- Start Tracking Code for analytics_siteverification -->
180
181<meta name="google-site-verification" content="oXjAdE6ogaVqPtH1Fbcr6Xb784o5KN-jrPYnal97sMc" />
182
183<!-- End Tracking Code for analytics_siteverification -->
184
185
186<script type="77683c8daf3a83c7926e58dc-text/javascript" src="https://checkout-sdk.bigcommerce.com/v1/loader.js" defer></script>
vendor: 1 bytes, line 186
186
187<script type="77683c8daf3a83c7926e58dc-text/javascript">
188fbq('trackSingle', '1494282947604199', 'ViewCategory', {"content_ids":["758","757","756","710","558","484"],"content_type":"product_group","content_category":"Utility Articles"});
189</script>
vendor: 1 bytes, line 189
189
190<script type="77683c8daf3a83c7926e58dc-text/javascript">
191var BCData = {};
192</script>
vendor: 1 bytes, line 192
192
193<script src='https://searchanise-ef84.kxcdn.com/widgets/bigcommerce/init.js?api_key=7y3i6j5K9Q' async type="77683c8daf3a83c7926e58dc-text/javascript"></script>
193<script async type="77683c8daf3a83c7926e58dc-text/javascript" id="sig-bc" data-store-id="stores/cftgfbe14j" src="https://cdn-scripts.signifyd.com/bigcommerce/script-tag.js"></script>
193<script src="https://www.paypal.com/sdk/js?client-id=Ad6sKAAKgkpEonl9L_WI6vqFoWoMq7UAwSRYmvk6ByP1PqjptvhrwAUnurQPsJ1BxKhW3s77FGN8pgQV&components=messages" data-namespace="PayPalSDK" type="77683c8daf3a83c7926e58dc-text/javascript">
194</script>
194<script type="77683c8daf3a83c7926e58dc-text/javascript">
195    (function(c,l,a,r,i,t,y){
196        c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
197        t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
198        y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
199    })(window, document, "clarity", "script", "gzx4zeziw9");
200</script>
200<script type="77683c8daf3a83c7926e58dc-text/javascript">
201    function addEventListenerStamped(el, eventName, handler) {
202if (el.addEventListener) { el.addEventListener(eventName, handler); }
203else { el.attachEvent('on' + eventName, function () { handler.call(el); }); }
204}
205
206// Listening for launcher loaded event
207addEventListenerStamped(document, 'stamped:widget:rewards-summary:loaded', function(e) {
208	$(document).ready(function(){
209  setTimeout(function () {
210    $( "span.stamped-rewards-widget-points.stamped-point-balance" ).each(function() {
211      var pointsTotal = $(this).text().replace(/\D/g, '');
212      nfObject = new Intl.NumberFormat('en-US');
213      formattedNumber = nfObject.format(pointsTotal);
214      $(this).text(formattedNumber + " points");
215    });
216  }, 2000);
217});
218
219});
220</script>
220<script type="77683c8daf3a83c7926e58dc-text/javascript"> shippedConfig = {"isGreen":false,"isShield":true,"isOrderProtection":false,"isOffByDefault":false,"isMandatory":false,"isInformational":false,"isWidgetOff":false,"storefrontApiToken":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJjaWQiOjEsImNvcnMiOlsiaHR0cHM6Ly93d3cuampkb2cuY29tIl0sImVhdCI6MjE0NzQ4MzY0NywiaWF0IjoxNjk0MTA4OTQzLCJpc3MiOiJCQyIsInNpZCI6MTAwMDg5NjEzMCwic3ViIjoiN2gzcTE3cjZsbGpscXVmbnlxNWpkNWpxeHR3ajE5ZiIsInN1Yl90eXBlIjoyLCJ0b2tlbl90eXBlIjoxfQ.4ymxbs0d1jxW3zgMvHM3hz0PSnNzJjyPCQ3O5RxtDh-W9wh9GKnZLgS8M62qKmGpHapmSoPfJF8TsB2BrhePzQ","managedProducts":[{"id":1183,"type":"insurance"}]} </script>
220<script async src="https://dmt83xaifx31y.cloudfront.net/public/js/prikidsizecharts.js?v=44#store=cftgfbe14j" crossorigin="anonymous" type="77683c8daf3a83c7926e58dc-text/javascript"></script>
220<script nonce="" type="77683c8daf3a83c7926e58dc-text/javascript">
221if(typeof fbq === 'function') {
222  fbq('trackSingle', '1494282947604199', 'PageView', {}, {"eventID":"f3d8297f-fd0b-4cfc-ac0a-32486879bfbd"});
223} else if (typeof window.addEventListener === 'function') {
224  window.addEventListener("load", function() { fbq('trackSingle', '1494282947604199', 'PageView', {}, {"eventID":"f3d8297f-fd0b-4cfc-ac0a-32486879bfbd"}); }, false)
225}
226</script>
226
227 
227<script data-cfasync="false" src="https://microapps.bigcommerce.com/bodl-events/1.9.4/index.js" integrity="sha256-Y0tDj1qsyiKBRibKllwV0ZJ1aFlGYaHHGl/oUFoXJ7Y=" nonce="" crossorigin="anonymous"></script>
227
228 
228<script data-cfasync="false" nonce="">
229
230 (function() {
231    function decodeBase64(base64) {
232       const text = atob(base64);
233       const length = text.length;
234       const bytes = new Uint8Array(length);
235       for (let i = 0; i < length; i++) {
236          bytes[i] = text.charCodeAt(i);
237       }
238       const decoder = new TextDecoder();
239       return decoder.decode(bytes);
240    }
241    window.bodl = JSON.parse(decodeBase64("eyJzZXNzaW9uIjp7ImlkIjoiNDllMjRkYzMtYTg3ZS00MWFiLTg0NDktOWM2YTJmZjZjYzZmIiwiZmlyc3RfdG91Y2hfdGltZXN0YW1wIjoiMjAyNi0wOS0yNlQwMjo1NzoyNiIsImZpcnN0X3RvdWNoX3JlZmVycmFsX3VybCI6IiIsImZpcnN0X3RvdWNoX3JlcXVlc3RfdXJsIjoiaHR0cHM6Ly93d3cuampkb2cuY29tL2NvbXBldGl0aW9uLWVxdWlwbWVudC9yYWxseS91dGlsaXR5LWFydGljbGVzLyJ9LCJzaG9wcGVyIjp7InZpc2l0b3JfaWQiOiIiLCJjdXN0b21lcl9pZCI6bnVsbCwiZW1haWwiOm51bGwsImZpcnN0X25hbWUiOm51bGwsImxhc3RfbmFtZSI6bnVsbH0sImRhdGFfY29uc2VudCI6eyJmdW5jdGlvbmFsIjp0cnVlLCJhbmFseXRpY3MiOnRydWUsImFkdmVydGlzaW5nIjp0cnVlfSwiZXZlbnRzIjpbeyJib2RsX3YxX3Byb2R1Y3RfY2F0ZWdvcnlfdmlld2VkIjp7ImV2ZW50X2lkIjoiYjFjOTgxZjYtOGI3Mi00YTgxLTgxMjMtYWM2NzNkNzVmNTg1IiwiY2hhbm5lbF9pZCI6MSwiY2F0ZWdvcnlfaWQiOjg1NSwiY2F0ZWdvcnlfbmFtZSI6IlV0aWxpdHkgQXJ0aWNsZXMiLCJsaW5lX2l0ZW1zIjpbeyJwcm9kdWN0X2lkIjoiNzU4Iiwic2t1IjoiU0dNUi1QIiwidmFyaWFudF9pZCI6bnVsbCwicHJvZHVjdF9uYW1lIjoiUmVwbGFjZW1lbnQgTWV0YWwgVXRpbGl0eSBBcnRpY2xlcyIsImdpZnRfY2VydGlmaWNhdGVfaWQiOm51bGwsImdpZnRfY2VydGlmaWNhdGVfbmFtZSI6bnVsbCwiZ2lmdF9jZXJ0aWZpY2F0ZV90aGVtZSI6bnVsbCwicHVyY2hhc2VfcHJpY2UiOjUuOTksInNhbGVfcHJpY2UiOjUuOTksImJhc2VfcHJpY2UiOm51bGwsInJldGFpbF9wcmljZSI6MTQuOTksInF1YW50aXR5IjowLCJkaXNjb3VudCI6OS4wLCJjb3Vwb25fYW1vdW50IjpudWxsLCJpbmRleCI6MCwiYnJhbmRfbmFtZSI6IkomSiBEb2cgU3VwcGxpZXMiLCJjYXRlZ29yeV9uYW1lcyI6WyJVdGlsaXR5IEFydGljbGVzIl0sImN1cnJlbmN5IjoiVVNEIn0seyJwcm9kdWN0X2lkIjoiNzU3Iiwic2t1IjoiU0dNLVAiLCJ2YXJpYW50X2lkIjpudWxsLCJwcm9kdWN0X25hbWUiOiJDb21wZXRpdGlvbiBNZXRhbCBVdGlsaXR5IEFydGljbGUgU2V0IiwiZ2lmdF9jZXJ0aWZpY2F0ZV9pZCI6bnVsbCwiZ2lmdF9jZXJ0aWZpY2F0ZV9uYW1lIjpudWxsLCJnaWZ0X2NlcnRpZmljYXRlX3RoZW1lIjpudWxsLCJwdXJjaGFzZV9wcmljZSI6NzkuOTksInNhbGVfcHJpY2UiOm51bGwsImJhc2VfcHJpY2UiOm51bGwsInJldGFpbF9wcmljZSI6bnVsbCwicXVhbnRpdHkiOjAsImRpc2NvdW50IjpudWxsLCJjb3Vwb25fYW1vdW50IjpudWxsLCJpbmRleCI6MSwiYnJhbmRfbmFtZSI6IkomSiBEb2cgU3VwcGxpZXMiLCJjYXRlZ29yeV9uYW1lcyI6WyJVdGlsaXR5IEFydGljbGVzIl0sImN1cnJlbmN5IjoiVVNEIn0seyJwcm9kdWN0X2lkIjoiNzU2Iiwic2t1IjoiU0dMLVAiLCJ2YXJpYW50X2lkIjpudWxsLCJwcm9kdWN0X25hbWUiOiJDb21wZXRpdGlvbiBMZWF0aGVyIFV0aWxpdHkgQXJ0aWNsZSBTZXQiLCJnaWZ0X2NlcnRpZmljYXRlX2lkIjpudWxsLCJnaWZ0X2NlcnRpZmljYXRlX25hbWUiOm51bGwsImdpZnRfY2VydGlmaWNhdGVfdGhlbWUiOm51bGwsInB1cmNoYXNlX3ByaWNlIjo5OS45OSwic2FsZV9wcmljZSI6bnVsbCwiYmFzZV9wcmljZSI6bnVsbCwicmV0YWlsX3ByaWNlIjpudWxsLCJxdWFudGl0eSI6bnVsbCwiZGlzY291bnQiOm51bGwsImNvdXBvbl9hbW91bnQiOm51bGwsImluZGV4IjoyLCJicmFuZF9uYW1lIjoiSiZKIERvZyBTdXBwbGllcyIsImNhdGVnb3J5X25hbWVzIjpbIlV0aWxpdHkgQXJ0aWNsZXMiXSwiY3VycmVuY3kiOiJVU0QifSx7InByb2R1Y3RfaWQiOiI3MTAiLCJza3UiOiJTR0xSLVAiLCJ2YXJpYW50X2lkIjpudWxsLCJwcm9kdWN0X25hbWUiOiJSZXBsYWNlbWVudCBMZWF0aGVyIFV0aWxpdHkgQXJ0aWNsZXMiLCJnaWZ0X2NlcnRpZmljYXRlX2lkIjpudWxsLCJnaWZ0X2NlcnRpZmljYXRlX25hbWUiOm51bGwsImdpZnRfY2VydGlmaWNhdGVfdGhlbWUiOm51bGwsInB1cmNoYXNlX3ByaWNlIjoxOS45OSwic2FsZV9wcmljZSI6bnVsbCwiYmFzZV9wcmljZSI6bnVsbCwicmV0YWlsX3ByaWNlIjpudWxsLCJxdWFudGl0eSI6bnVsbCwiZGlzY291bnQiOm51bGwsImNvdXBvbl9hbW91bnQiOm51bGwsImluZGV4IjozLCJicmFuZF9uYW1lIjoiSiZKIERvZyBTdXBwbGllcyIsImNhdGVnb3J5X25hbWVzIjpbIlV0aWxpdHkgQXJ0aWNsZXMiXSwiY3VycmVuY3kiOiJVU0QifSx7InByb2R1Y3RfaWQiOiI1NTgiLCJza3UiOiJCMTE1LVAiLCJ2YXJpYW50X2lkIjpudWxsLCJwcm9kdWN0X25hbWUiOiJOeWxvbiBNZXNoIEFydGljbGUgQmFnIiwiZ2lmdF9jZXJ0aWZpY2F0ZV9pZCI6bnVsbCwiZ2lmdF9jZXJ0aWZpY2F0ZV9uYW1lIjpudWxsLCJnaWZ0X2NlcnRpZmljYXRlX3RoZW1lIjpudWxsLCJwdXJjaGFzZV9wcmljZSI6NDQuOTksInNhbGVfcHJpY2UiOm51bGwsImJhc2VfcHJpY2UiOm51bGwsInJldGFpbF9wcmljZSI6bnVsbCwicXVhbnRpdHkiOm51bGwsImRpc2NvdW50IjpudWxsLCJjb3Vwb25fYW1vdW50IjpudWxsLCJpbmRleCI6NCwiYnJhbmRfbmFtZSI6IlJheSBBbGxlbiBNYW51ZmFjdHVyaW5nIiwiY2F0ZWdvcnlfbmFtZXMiOlsiVXRpbGl0eSBBcnRpY2xlcyJdLCJjdXJyZW5jeSI6IlVTRCJ9LHsicHJvZHVjdF9pZCI6IjQ4NCIsInNrdSI6IlVNMTAwIiwidmFyaWFudF9pZCI6bnVsbCwicHJvZHVjdF9uYW1lIjoiVXRpbGl0eSBBcnRpY2xlIFRyYWluaW5nIE1hdCIsImdpZnRfY2VydGlmaWNhdGVfaWQiOm51bGwsImdpZnRfY2VydGlmaWNhdGVfbmFtZSI6bnVsbCwiZ2lmdF9jZXJ0aWZpY2F0ZV90aGVtZSI6bnVsbCwicHVyY2hhc2VfcHJpY2UiOjU5Ljk5LCJzYWxlX3ByaWNlIjpudWxsLCJiYXNlX3ByaWNlIjpudWxsLCJyZXRhaWxfcHJpY2UiOm51bGwsInF1YW50aXR5IjpudWxsLCJkaXNjb3VudCI6bnVsbCwiY291cG9uX2Ftb3VudCI6bnVsbCwiaW5kZXgiOjUsImJyYW5kX25hbWUiOiJKJkogRG9nIFN1cHBsaWVzIiwiY2F0ZWdvcnlfbmFtZXMiOlsiVXRpbGl0eSBBcnRpY2xlcyJdLCJjdXJyZW5jeSI6IlVTRCJ9XX19XX0="));
242 })()
243
244 </script>
244
245
246<script nonce="" type="77683c8daf3a83c7926e58dc-text/javascript">
247(function () {
248    var xmlHttp = new XMLHttpRequest();
249    
250    xmlHttp.open('POST', 'https://bes.gcp.data.bigcommerce.com/nobot');
251    xmlHttp.setRequestHeader('Content-Type', 'application/json');
252    xmlHttp.send('{"store_id":"1000896130","timezone_offset":"-6.0","timestamp":"2026-09-26T02:57:26.21344900Z","visit_id":"fb2eabf0-77c2-405f-bf66-408f1f4b32c7","channel_id":1}');
253})();
254</script>
254
255
256        
257                
257<script async src="//www.searchanise.com/widgets/bigcommerce/init.js?api_key=7y3i6j5K9Q" type="77683c8daf3a83c7926e58dc-text/javascript"></script>
257
258
259        
259<script src="https://www.paypal.com/sdk/js?client-id=Ad6sKAAKgkpEonl9L_WI6vqFoWoMq7UAwSRYmvk6ByP1PqjptvhrwAUnurQPsJ1BxKhW3s77FGN8pgQV&components=messages" data-namespace="PayPalSDK" type="77683c8daf3a83c7926e58dc-text/javascript">
260</script>
260
261
262    </head>
263    <body>
264        
265        <!-- Google Tag Manager (noscript) -->
vendor: 69 bytes, lines 265-266
265
266<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
266GTM-K9M5NP2
vendor: 85 bytes, lines 266-267
266"
267height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
268<!-- End Google Tag Manager (noscript) -->
269        
270        <svg data-src="https://cdn11.bigcommerce.com/s-cftgfbe14j/stencil/1d272760-e709-0138-dd55-0242ac11000f/e/959864e0-7e25-013f-a515-4add52f6d68f/img/icon-sprite.svg" class="icons-svg-sprite"></svg>
271
272        <header class="header" role="banner">
273    <a href="#" class="mobileMenu-toggle" data-mobile-menu-toggle="menu">
274        <span class="mobileMenu-toggleIcon">Toggle menu</span>
275    </a>
276    <nav class="navUser">
277<span class="header-top-banner"><a href="https://www.jjdog.com/shipping-information/">FREE SHIPPING* for orders $75+</a></span>
278
279    <ul class="navUser-section navUser-section--alt">
280          
281            <li class="navUser-item navUser-item--social">
282                    <ul class="socialLinks socialLinks--alt">
283            <li class="socialLinks-item">
284                <a class="icon icon--facebook" href="https://www.facebook.com/jjdogsupplies" target="_blank" rel="noopener">
285                    <svg><use xlink:href="#icon-facebook" /></svg>
286                </a>
287            </li>
288            <li class="socialLinks-item">
289                <a class="icon icon--instagram" href="https://www.instagram.com/jjdogsupplies" target="_blank" rel="noopener">
290                    <svg><use xlink:href="#icon-instagram" /></svg>
291                </a>
292            </li>
293            <li class="socialLinks-item">
294                <a class="icon icon--youtube" href="https://www.youtube.com/c/jjdogsupplies" target="_blank" rel="noopener">
295                    <svg><use xlink:href="#icon-youtube" /></svg>
296                </a>
297            </li>
298    </ul>
299            </li>
300            <li class="navUser-item navUser-item--divider">|</li>
301<li class="navUser-item">
302<a href="#" data-search="quickSearch" aria-controls="quickSearch" aria-expanded="false">
303<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-search" width="24" height="24" viewBox="0 0 24 24" stroke-width="3" stroke="#ffffff" fill="none" stroke-linecap="round" stroke-linejoin="round">
304  <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
305  <path d="M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0" />
306  <path d="M21 21l-6 -6" />
307</svg>
308</a> </li>
309        <li class="navUser-item">
310            <a class="navUser-action" href="/quick-order/">Quick Order</a>
311        </li>
312        <li class="navUser-item">
313                            <a class="navUser-action"  href="/blog/">Blog</a>
314                        </li>
315       
316        <li class="navUser-item">
317                            <a class="navUser-action"  href="/featured-paws/">Featured Paws</a>
318                        </li>
319        <li class="navUser-item">
320                            <a class="navUser-action"  href="/best-friends-club/">Rewards</a>
321                        </li>
322        
323        <li class="navUser-item navUser-item--account">
324                <a class="navUser-action" href="https://www.jjdog.com/login.php">Sign in</a>
325                    <span class="navUser-or">or</span> <a class="navUser-action" href="https://www.jjdog.com/login.php?action=create_account">Register</a>
326        </li>
327        
328            <li class="navUser-item navUser-item--search">
329  <a href="#" 
330     class="navUser-action-svg snize-custom-widget-opener" 
331     aria-label="Search">
332    <svg xmlns="http://www.w3.org/2000/svg"
333         class="icon icon-tabler icon-tabler-search" 
334         width="24" height="24" viewBox="0 0 24 24" 
335         stroke-width="3" stroke="#909090" fill="none" 
336         stroke-linecap="round" stroke-linejoin="round">
337      <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
338      <path d="M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0" />
339      <path d="M21 21l-6 -6" />
340    </svg>
341  </a>
342</li>
343
344        
345        <li class="navUser-item navUser-item--cart">
346            <a
347                class="navUser-action"
348                data-cart-preview
349                data-dropdown="cart-preview-dropdown"
350                data-options="align:right"
351                href="https://www.jjdog.com/cart.php">
352                <span class="navUser-item-cartLabel">Cart</span> <span class="countPill cart-quantity"></span>
353            </a>
354
355            <div class="dropdown-menu" id="cart-preview-dropdown" data-dropdown-content aria-hidden="true"></div>
356        </li>
357    </ul>
358    <div class="dropdown dropdown--quickSearch" id="quickSearch" aria-hidden="true" tabindex="-1" data-prevent-quick-search-close>
359        <div class="container">
360    <form class="form" action="https://www.jjdog.com/search.php">
361        <fieldset class="form-fieldset">
362            <div class="form-field">
363                <label class="is-srOnly" for="search_query">Search</label>
364                <input class="form-input" data-search-quick name="search_query" id="search_query" data-error-message="Search field cannot be empty." placeholder="Search the store" autocomplete="off">
365            </div>
366        </fieldset>
367    </form>
368    <section class="quickSearchResults" data-bind="html: results"></section>
369</div>
370    </div>
371</nav>
372
373        <div class="header-logo header-logo--center">
374            <a href="https://www.jjdog.com/">
375            <div class="header-logo-image-container">
376                <img class="header-logo-image" src="https://cdn11.bigcommerce.com/s-cftgfbe14j/images/stencil/183x110/ne
376w-logo-horizontal_1590511746__09058.original.jpg" alt="J&amp;J Dog Supplies" title="J&amp;J Dog Supplies">
377            </div>
378</a>
379        </div>
380    <div class="navPages-container" id="menu" data-menu>
381        <nav class="navPages">
382    <div class="navPages-quickSearch">
383        <div class="container">
384    <form class="form" action="https://www.jjdog.com/search.php">
385        <fieldset class="form-fieldset">
386            <div class="form-field">
387                <label class="is-srOnly" for="search_query">Search</label>
388                <input class="form-input" data-search-quick name="search_query" id="search_query" data-error-message="Search field cannot be empty." placeholder="Search the store" autocomplete="off">
389            </div>
390        </fieldset>
391    </form>
392    <section class="quickSearchResults" data-bind="html: results"></section>
393</div>
394    </div>
395    <ul class="navPages-list">
396        
397      
398        
399            <li class="navPages-item">
400                <a class="navPages-action" href="https://www.jjdog.com/new-products/">New</a>
401            </li>
402            <li class="navPages-item">
403                <a class="navPages-action has-subMenu activePage" href="https://www.jjdog.com/competition-equipment/" data-collapsible="navPages-30">
404    Competition Equipment <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
405</a>
406<div class="navPage-subMenu" id="navPages-30" aria-hidden="true" tabindex="-1">
407    <ul class="navPage-subMenu-list">
408        <li class="navPage-subMenu-item">
409            <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/competition-equipment/">All Competition Equipment</a>
410        </li>
411            <li class="navPage-subMenu-item">
412                    <a
413                        class="navPage-subMenu-action navPages-action has-subMenu"
414                        href="https://www.jjdog.com/competition-equipment/agility/"
415                        data-collapsible="navPages-44"
416                        data-collapsible-disabled-breakpoint="medium"
417                        data-collapsible-disabled-state="open"
418                        data-collapsible-enabled-state="closed">
419                        Agility <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
420                    </a>
421                    <ul class="navPage-childList" id="navPages-44">
422                        <li class="navPage-childList-item">
423                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/agility/tunnels/">Tunnels</a>
424                        </li>
425                        <li class="navPage-childList-item">
426                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/agility/weave-poles/">Weave Poles</a>
427                        </li>
428                        <li class="navPage-childList-item">
429                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/agility/jumps/">Jumps</a>
430                        </li>
431                        <li class="navPage-childList-item">
432                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/agility/walk-p
432ause/">Walk &amp; Pause</a>
433                        </li>
434                        <li class="navPage-childList-item">
435                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/agility/strength-balance/">Strength &amp; Balance</a>
436                        </li>
437                        <li class="navPage-childList-item">
438                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/agility/accessories/">Accessories</a>
439                        </li>
440                        <li class="navPage-childList-item">
441                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/agility/view-all/">VIEW ALL</a>
442                        </li>
443                    </ul>
444            </li>
445            <li class="navPage-subMenu-item">
446                    <a
447                        class="navPage-subMenu-action navPages-action has-subMenu"
448                        href="https://www.jjdog.com/competition-equipment/obedience/"
449                        data-collapsible="navPages-43"
450                        data-collapsible-disabled-breakpoint="medium"
451                        data-collapsible-disabled-state="open"
452                        data-collapsible-enabled-state="closed">
453                        Obedience <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
454                    </a>
455                    <ul class="navPage-childList" id="navPages-43">
456                        <li class="navPage-childList-item">
457                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/obedience/dumbbells/">Dumbbells</a>
458                        </li>
459                        <li class="navPage-childList-item">
460                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/obedience/wobble-boards/">Wobble Boards</a>
461                        </li>
462                        <li class="navPage-childList-item">
463                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/obedience/pause-stations/">Pause Stations</a>
464                        </li>
465                        <li class="navPage-childList-item">
466                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/obedience/accessories/">Accessories</a>
467                        </li>
468                        <li class="navPage-childList-item">
469                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/obedience/view-all/">VIEW ALL</a>
470                        </li>
471                    </ul>
472            </li>
473            <li class="navPage-subMenu-item">
474                    <a
475                        class="navPage-subMenu-action navPages-action has-subMenu activePage"
476                        href="https://www.jjdog.com/competition-equipment/rally/"
477                        data-collapsible="navPages-45"
478                        data-collapsible-disabled-breakpoint="medium"
479                        data-collapsible-disabled-state="open"
480                        data-collapsible-enabled-state="closed">
481                        Rally <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
482                    </a>
483                    <ul class="navPage-childList" id="navPages-45">
484                        <li class="navPage-childList-item">
485                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/rally/dumbbells/">Dumbbells</a>
486                        </li>
487                        <li class="navPage-childList-item">
488                            <a class="navPage-childList-action navPages-action activePage" href="https://www.jjdog.com/competition-equipment/rally/utility-articles/">Utility Articles</a>
489                        </li>
490                        <li class="navPage-childList-item">
491                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/rally/pins-patches/">Pins &amp; Patches</a>
492                        </li>
493                        <li class="navPage-childList-item">
494                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/rally/accessories/">Accessories</a>
495                        </li>
496                        <li class="navPage-childList-item">
497                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/rally/view-all/">VIEW ALL</a>
498                        </li>
499                    </ul>
500            </li>
501            <li class="navPage-subMenu-item">
502                    <a
503                        class="navPage-subMenu-action navPages-action has-subMenu"
504                        href="https://www.jjdog.com/competition-equipment/nosework/"
505                        data-collapsible="navPages-38"
506                        data-collapsible-disabled-breakpoint="medium"
507                        data-collapsible-disabled-state="open"
508                        data-collapsible-enabled-state="closed">
509                        Nosework <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
510                    </a>
511                    <ul class="navPage-childList" id="navPages-38">
512                        <li class="navPage-childList-item">
513                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/nosework/scent-articles/">Scent Articles</a>
514                        </li>
515                        <li class="navPage-childList-item">
516                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/nosework/scent-bags/">Scent Bags</a>
517                        </li>
518                        <li class="navPage-childList-item">
519                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/nosework/scent-boxes/">Scent Boxes</a>
520                        </li>
521                        <li class="navPage-childList-item">
522                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/nosework/essential-oils/">Essential Oils</a>
523                        </li>
524                        <li class="navPage-childList-item">
525                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/nosework/view-all/">VIEW ALL</a>
526                        </li>
527                    </ul>
528            </li>
529            <li class="navPage-subMenu-item">
530                    <a
531                        class="navPage-subMenu-action navPages-action has-subMenu"
532                        href="https://www.jjdog.com/competition-equipment/tracking/"
533                        data-collapsible="navPages-31"
534                        data-collapsible-disabled-breakpoint="medium"
535                        data-collapsible-disabled-state="open"
536                        data-collapsible-enabled-state="closed">
537                        Tracking <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
538                    </a>
539                    <ul class="navPage-childList" id="navPages-31">
540                        <li class="navPage-childList-item">
541                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/tracking/harnessess/">Harnessess</a>
542                        </li>
543                        <li class="navPage-childList-item">
544                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/tracking/long-lines/">Long Lines</a>
545                        </li>
546                        <li class="navPage-childList-item">
547                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/tracking/accessories/">Accessories</a>
548                        </li>
549                        <li class="navPage-childList-item">
550                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/tracking/view-all/">VIEW ALL</a>
551                        </li>
552                    </ul>
553            </li>
554            <li class="navPage-subMenu-item">
555                    <a
556                        class="navPage-subMenu-action navPages-action has-subMenu"
557                        href="https://www.jjdog.com/competition-equipment/other-dog-sports/"
558                        data-collapsible="navPages-799"
559                        data-collapsible-disabled-breakpoint="medium"
560                        data-collapsible-disabled-state="open"
561                        data-collapsible-enabled-state="closed">
562                        Other Dog Sports <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
563                    </a>
564                    <ul class="navPage-childList" id="navPages-799">
565                        <li class="navPage-childList-item">
566                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/flyball/">Flyball</a>
567                        </li>
568                        <li class="navPage-childList-item">
569                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/other-dog-sports/herding/">Herding</a>
570                        </li>
571                        <li class="navPage-childList-item">
572                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/other-dog-sports/dock-diving/">Dock Diving</a>
573                        </li>
574                        <li class="navPage-childList-item">
575                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/competition-equipment/other-dog-sports/accessories/">Accessories</a>
576                        </li>
577                    </ul>
578            </li>
579            <li class="navPage-subMenu-item">
580                    <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/competition-equipment/conditioning/">Conditioning</a>
581            </li>
582    </ul>
583</div>
584            </li>
585            <li class="navPages-item">
586                <a class="navPages-action has-subMenu" href="https://www.jjdog.com/trainer-gear/" data-collapsible="navPages-32">
587    Trainer Gear <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
588</a>
589<div class="navPage-subMenu" id="navPages-32" aria-hidden="true" tabindex="-1">
590    <ul class="navPage-subMenu-list">
591        <li class="navPage-subMenu-item">
592            <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/trainer-gear/">All Trainer Gear</a>
593        </li>
594            <li class="navPage-subMenu-item">
595                    <a
596                        class="navPage-subMenu-action navPages-action has-subMenu"
597                        href="https://www.jjdog.com/trainer-gear/apparel-accessories/"
598                        data-collapsible="navPages-33"
599                        data-collapsible-disabled-breakpoint="medium"
600                        data-collapsible-disabled-state="open"
601                        data-collapsible-enabled-state="closed">
602                        Apparel &amp; Accessories <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
603                    </a>
604                    <ul class="navPage-childList" id="navPages-33">
605                        <li class="navPage-childList-item">
606                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/trainer-gear/apparel-accessories/tops/">Tops</a>
607                        </li>
608                        <li class="navPage-childList-item">
609                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/trainer-gear/apparel-accessories/bottoms/">Bottoms</a>
610                        </li>
611                        <li class="navPage-childList-item">
612                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/trainer-gear/apparel-accessories/gloves/">Gloves</a>
613                        </li>
614                        <li class="navPage-childList-item">
615                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/trainer-gear/apparel-accessories/pins/">Pins</a>
616                        </li>
617                        <li class="navPage-childList-item">
618                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/trainer-gear/apparel-accessories/accessories/">Accessories</a>
619                        </li>
620                        <li class="navPage-childList-item">
621                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/trainer-gear/apparel-accessories/view-all/">VIEW ALL</a>
622                        </li>
623                    </ul>
624            </li>
625            <li class="navPage-subMenu-item">
626                    <a
627                        class="navPage-subMenu-action navPages-action has-subMenu"
628                        href="https://www.jjdog.com/trainer-gear/training-tools/"
629                        data-collapsible="navPages-747"
630                        data-collapsible-disabled-breakpoint="medium"
631                        data-collapsible-disabled-state="open"
632                        data-collapsible-enabled-state="closed">
633                        Training Tools <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
634                    </a>
635                    <ul class="navPage-childList" id="navPages-747">
636                        <li class="navPage-childList-item">
637                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/trainer-gear/training-tools/clicker-training/">Clicker Training</a>
638                        </li>
639                        <li class="navPage-childList-item">
640                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/trainer-gear/training-tools/treat-pouches/">Treat Pouches</a>
641                        </li>
642                        <li class="navPage-childList-item">
643                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/trainer-gear/training-tools/books-and-dvds/">Books &amp; DVDs</a>
644                        </li>
645                        <li class="navPage-childList-item">
646                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/trainer-gear/training-tools/accessories/">Accessories</a>
647                        </li>
648                        <li class="navPage-childList-item">
649                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/trainer-gear/training-tools/view-all/">VIEW ALL</a>
650                        </li>
651                    </ul>
652            </li>
653            <li class="navPage-subMenu-item">
654                    <a
655                        class="navPage-subMenu-action navPages-action has-subMenu"
656                        href="https://www.jjdog.com/trainer-gear/bags-and-packs/"
657                        data-collapsible="navPages-885"
658                        data-collapsible-disabled-breakpoint="medium"
659                        data-collaps
659ible-disabled-state="open"
660                        data-collapsible-enabled-state="closed">
661                        Packs &amp; Bags <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
662                    </a>
663                    <ul class="navPage-childList" id="navPages-885">
664                        <li class="navPage-childList-item">
665                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/trainer-gear/training-tools/gear-bags/">Gear Bags</a>
666                        </li>
667                        <li class="navPage-childList-item">
668                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/trainer-gear/bags-packs/backpacks/">Backpacks</a>
669                        </li>
670                        <li class="navPage-childList-item">
671                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/trainer-gear/bags-packs/view-all/">VIEW ALL</a>
672                        </li>
673                    </ul>
674            </li>
675    </ul>
676</div>
677            </li>
678            <li class="navPages-item">
679                <a class="navPages-action has-subMenu" href="https://www.jjdog.com/dog-gear/" data-collapsible="navPages-27">
680    Dog Gear <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
681</a>
682<div class="navPage-subMenu" id="navPages-27" aria-hidden="true" tabindex="-1">
683    <ul class="navPage-subMenu-list">
684        <li class="navPage-subMenu-item">
685            <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/dog-gear/">All Dog Gear</a>
686        </li>
687            <li class="navPage-subMenu-item">
688                    <a
689                        class="navPage-subMenu-action navPages-action has-subMenu"
690                        href="https://www.jjdog.com/dog-gear/collars/"
691                        data-collapsible="navPages-29"
692                        data-collapsible-disabled-breakpoint="medium"
693                        data-collapsible-disabled-state="open"
694                        data-collapsible-enabled-state="closed">
695                        Collars <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
696                    </a>
697                    <ul class="navPage-childList" id="navPages-29">
698                        <li class="navPage-childList-item">
699                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/collars/leather-collars/">Leather Collars</a>
700                        </li>
701                        <li class="navPage-childList-item">
702                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/collars/nylon-collars/">Nylon Collars</a>
703                        </li>
704                        <li class="navPage-childList-item">
705                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/collars/biothane-collars/">Biothane Collars</a>
706                        </li>
707                        <li class="navPage-childList-item">
708                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/collars/metal-collars/">Metal Collars</a>
709                        </li>
710                        <li class="navPage-childList-item">
711                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/collars/gps-collars/">GPS Collars</a>
712                        </li>
713                        <li class="navPage-childList-item">
714                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/collars/accessories/">Accessories</a>
715                        </li>
716                        <li class="navPage-childList-item">
717                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/collars/view-all/">VIEW ALL</a>
718                        </li>
719                    </ul>
720            </li>
721            <li class="navPage-subMenu-item">
722                    <a
723                        class="navPage-subMenu-action navPages-action has-subMenu"
724                        href="https://www.jjdog.com/dog-gear/leashes/"
725                        data-collapsible="navPages-28"
726                        data-collapsible-disabled-breakpoint="medium"
727                        data-collapsible-disabled-state="open"
728                        data-collapsible-enabled-state="closed">
729                        Leashes <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
730                    </a>
731                    <ul class="navPage-childList" id="navPages-28">
732                        <li class="navPage-childList-item">
733                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/leashes/leather-leashes/">Leather Leashes</a>
734                        </li>
735                        <li class="navPage-childList-item">
736                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/leashes/waist-leads/">Waist Leads</a>
737                        </li>
738                        <li class="navPage-childList-item">
739                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/leashes/nylon-leashes/">Nylon Leashes</a>
740                        </li>
741                        <li class="navPage-childList-item">
742                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/leashes/biothane-leashes/">Biothane Leashes</a>
743                        </li>
744                        <li class="navPage-childList-item">
745                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/leashes/long-lines/">Long Lines</a>
746                        </li>
747                        <li class="navPage-childList-item">
748                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/leashes/traffic-leads/">Traffic Leads</a>
749                        </li>
750                        <li class="navPage-childList-item">
751                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/leashes/tabs/">Tabs</a>
752                        </li>
753                        <li class="navPage-childList-item">
754                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/leashes/accessories/">Accessories</a>
755                        </li>
756                        <li class="navPage-childList-item">
757                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/leashes/view-all/">VIEW ALL</a>
758                        </li>
759                    </ul>
760            </li>
761            <li class="navPage-subMenu-item">
762                    <a
763                        class="navPage-subMenu-action navPages-action has-subMenu"
764                        href="https://www.jjdog.com/dog-gear/harnesses-vests/"
765                        data-collapsible="navPages-41"
766                        data-collapsible-disabled-breakpoint="medium"
767                        data-collapsible-disabled-state="open"
768                        data-collapsible-enabled-state="closed">
769                        Harnesses &amp; Vests <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
770                    </a>
771                    <ul class="navPage-childList" id="navPages-41">
772                        <li class="navPage-childList-item">
773                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/harnesses-vests/adventure/">Adventure</a>
774                        </li>
775                        <li class="navPage-childList-item">
776                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/harnesses-vests/tracking/">Tracking</a>
777                        </li>
778                        <li class="navPage-childList-item">
779                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/harnesses-vests/vests/">Vests</a>
780                        </li>
781                        <li class="navPage-childList-item">
782                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/harnesses-vests/patches/">Patches</a>
783                        </li>
784                        <li class="navPage-childList-item">
785                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/harnesses-vests/accessories/">Accessories</a>
786                        </li>
787                        <li class="navPage-childList-item">
788                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/harnesses-vests/view-all/">VIEW ALL</a>
789                        </li>
790                    </ul>
791            </li>
792            <li class="navPage-subMenu-item">
793                    <a
794                        class="navPage-subMenu-action navPages-action has-subMenu"
795                        href="https://www.jjdog.com/dog-gear/protection/"
796                        data-collapsible="navPages-816"
797                        data-collapsible-disabled-breakpoint="medium"
798                        data-collapsible-disabled-state="open"
799                        data-collapsible-enabled-state="closed">
800                        Protection <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
801                    </a>
802                    <ul class="navPage-childList" id="navPages-816">
803                        <li class="navPage-childList-item">
804                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/protection/dog-boots/">Dog Boots</a>
805                        </li>
806                        <li class="navPage-childList-item">
807                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/protection/dog-goggles/">Dog Goggles</a>
808                        </li>
809                        <li class="navPage-childList-item">
810                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/protection/dog-muffs/">Dog Muffs</a>
811                        </li>
812                        <li class="navPage-childList-item">
813                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/protection/dog-lights/">Dog Lights</a>
814                        </li>
815                        <li class="navPage-childList-item">
816                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-gear/protection/view-all/">VIEW ALL</a>
817                        </li>
818                    </ul>
819            </li>
820            <li class="navPage-subMenu-item">
821                    <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/dog-gear/muzzles/">Muzzles</a>
822            </li>
823            <li class="navPage-subMenu-item">
824                    <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/dog-gear/service-therapy-dogs/">Service &amp; Therapy Dogs</a>
825            </li>
826            <li class="navPage-subMenu-item">
827                    <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/dog-gear/accessories/">Accessories</a>
828            </li>
829    </ul>
830</div>
831            </li>
832            <li class="navPages-item">
833                <a class="navPages-action has-subMenu" href="https://www.jjdog.com/dog-supplies/" data-collapsible="navPages-745">
834    Dog Supplies <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
835</a>
836<div class="navPage-subMenu" id="navPages-745" aria-hidden="true" tabindex="-1">
837    <ul class="navPage-subMenu-list">
838        <li class="navPage-subMenu-item">
839            <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/dog-supplies/">All Dog Supplies</a>
840        </li>
841            <li class="navPage-subMenu-item">
842                    <a
843                        class="navPage-subMenu-action navPages-action has-subMenu"
844                        href="https://www.jjdog.com/dog-supplies/toys-tugs/"
845                        data-collapsible="navPages-49"
846                        data-collapsible-disabled-breakpoint="medium"
847                        data-collapsible-disabled-state="open"
848                        data-collapsible-enabled-state="closed">
849                        Toys &amp; Tugs <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
850                    </a>
851                    <ul class="navPage-childList" id="navPages-49">
852                        <li class="navPage-childList-item">
853                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-supplies/toys-tugs/chew-toys/">Chew Toys</a>
854                        </li>
855                        <li class="navPage-childList-item">
856                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-supplies/toys-tugs/fetch-toys/">Fetch Toys</a>
857                        </li>
858                        <li class="navPage-childList-item">
859                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-supplies/toys-tugs/tug-toys/">Tug Toys</a>
860                        </li>
861                        <li class="navPage-childList-item">
862                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-supplies/toys-tugs/interactive-toys/">Interactive Toys</a>
863                        </li>
864                        <li class="navPage-childList-item">
865                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-supplies/toys-tugs/plush-toys/">Plush Toys</a>
866                        </li>
867                        <li class="navPage-childList-item">
868                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-supplies/toys-tugs/accessories/">Accessories</a>
869                        </li>
870                        <li class="navPage-childList-item">
871                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-supplies/toys-tugs/view-all/">VIEW ALL</a>
872                        </li>
873                    </ul>
874            </li>
875            <li class="navPage-subMenu-item">
876                    <a
877                        class="navPage-subMenu-action navPages-action has-subMenu"
878                        href="https://www.jjdog.com/dog-supplies/treats/"
879                        data-collapsible="navPages-50"
880                        data-collapsible-disabled-breakpoint="medium"
881                        data-collapsible-disabled-state="open"
882                        data-collapsible-enabled-state="closed">
883                        Treats <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
884                    </a>
885                    <ul class="navPage-childList" id="navPages-50">
886                        <li class="navPage-childList-item">
887                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-supplies/treats/bones-rawhide/">Bones &amp; Rawhide</a>
888                        </li>
889                        <li class="navPage-childList-item">
890                            <a class="navPage-childList-action navPages-action" href
890="https://www.jjdog.com/dog-supplies/treats/freeze-dried/">Freeze Dried</a>
891                        </li>
892                        <li class="navPage-childList-item">
893                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-supplies/treats/soft-chews/">Soft Chews</a>
894                        </li>
895                        <li class="navPage-childList-item">
896                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-supplies/treats/toy-fillers/">Toy Fillers</a>
897                        </li>
898                        <li class="navPage-childList-item">
899                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-supplies/treats/view-all/">VIEW ALL</a>
900                        </li>
901                    </ul>
902            </li>
903            <li class="navPage-subMenu-item">
904                    <a
905                        class="navPage-subMenu-action navPages-action has-subMenu"
906                        href="https://www.jjdog.com/dog-supplies/health-nutrition/"
907                        data-collapsible="navPages-40"
908                        data-collapsible-disabled-breakpoint="medium"
909                        data-collapsible-disabled-state="open"
910                        data-collapsible-enabled-state="closed">
911                        Health &amp; Nutrition <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
912                    </a>
913                    <ul class="navPage-childList" id="navPages-40">
914                        <li class="navPage-childList-item">
915                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-supplies/health-nutrition/nutrition/">Nutrition</a>
916                        </li>
917                        <li class="navPage-childList-item">
918                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-supplies/health-nutrition/oral-dental/">Oral &amp; Dental</a>
919                        </li>
920                        <li class="navPage-childList-item">
921                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-supplies/health-nutrition/mobility-rehab/">Mobility &amp; Rehab</a>
922                        </li>
923                        <li class="navPage-childList-item">
924                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-supplies/health-nutrition/first-aid/">First Aid</a>
925                        </li>
926                        <li class="navPage-childList-item">
927                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-supplies/health-nutrition/view-all/">VIEW ALL</a>
928                        </li>
929                    </ul>
930            </li>
931            <li class="navPage-subMenu-item">
932                    <a
933                        class="navPage-subMenu-action navPages-action has-subMenu"
934                        href="https://www.jjdog.com/dog-supplies/grooming/"
935                        data-collapsible="navPages-36"
936                        data-collapsible-disabled-breakpoint="medium"
937                        data-collapsible-disabled-state="open"
938                        data-collapsible-enabled-state="closed">
939                        Grooming <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
940                    </a>
941                    <ul class="navPage-childList" id="navPages-36">
942                        <li class="navPage-childList-item">
943                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-supplies/grooming/brushes/">Brushes</a>
944                        </li>
945                        <li class="navPage-childList-item">
946                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-supplies/grooming/bath/">Bath</a>
947                        </li>
948                        <li class="navPage-childList-item">
949                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-supplies/grooming/shampoo/">Shampoo</a>
950                        </li>
951                        <li class="navPage-childList-item">
952                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-supplies/grooming/de-odor/">De-Odor</a>
953                        </li>
954                        <li class="navPage-childList-item">
955                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-supplies/grooming/clippers/">Clippers</a>
956                        </li>
957                        <li class="navPage-childList-item">
958                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-supplies/grooming/accessories/">Accessories</a>
959                        </li>
960                        <li class="navPage-childList-item">
961                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/dog-supplies/grooming/view-all/">VIEW ALL</a>
962                        </li>
963                    </ul>
964            </li>
965            <li class="navPage-subMenu-item">
966                    <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/dog-supplies/puppy-essentials/">Puppy Essentials</a>
967            </li>
968            <li class="navPage-subMenu-item">
969                    <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/dog-supplies/accessories/">Accessories</a>
970            </li>
971    </ul>
972</div>
973            </li>
974            <li class="navPages-item">
975                <a class="navPages-action has-subMenu" href="https://www.jjdog.com/dog-show-supplies/" data-collapsible="navPages-53">
976    Show Supplies <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
977</a>
978<div class="navPage-subMenu" id="navPages-53" aria-hidden="true" tabindex="-1">
979    <ul class="navPage-subMenu-list">
980        <li class="navPage-subMenu-item">
981            <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/dog-show-supplies/">All Show Supplies</a>
982        </li>
983            <li class="navPage-subMenu-item">
984                    <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/dog-show-supplies/ring-gates/">Ring Gates</a>
985            </li>
986            <li class="navPage-subMenu-item">
987                    <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/dog-show-supplies/matting/">Matting</a>
988            </li>
989            <li class="navPage-subMenu-item">
990                    <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/dog-show-supplies/cones/">Cones</a>
991            </li>
992            <li class="navPage-subMenu-item">
993                    <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/dog-show-supplies/signs/">Signs</a>
994            </li>
995            <li class="navPage-subMenu-item">
996                    <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/dog-show-supplies/accessories/">Accessories</a>
997            </li>
998    </ul>
999</div>
1000            </li>
1001            <li class="navPages-item">
1002                <a class="navPages-action has-subMenu" href="https://www.jjdog.com/home-travel/" data-collapsible="navPages-34">
1003    Home &amp; Travel <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
1004</a>
1005<div class="navPage-subMenu" id="navPages-34" aria-hidden="true" tabindex="-1">
1006    <ul class="navPage-subMenu-list">
1007        <li class="navPage-subMenu-item">
1008            <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/home-travel/">All Home &amp; Travel</a>
1009        </li>
1010            <li class="navPage-subMenu-item">
1011                    <a
1012                        class="navPage-subMenu-action navPages-action has-subMenu"
1013                        href="https://www.jjdog.com/home-travel/crates-kennels/"
1014                        data-collapsible="navPages-37"
1015                        data-collapsible-disabled-breakpoint="medium"
1016                        data-collapsible-disabled-state="open"
1017                        data-collapsible-enabled-state="closed">
1018                        Crates &amp; Kennels <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
1019                    </a>
1020                    <ul class="navPage-childList" id="navPages-37">
1021                        <li class="navPage-childList-item">
1022                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/home-travel/crates-kennels/travel-crates/">Travel Crates</a>
1023                        </li>
1024                        <li class="navPage-childList-item">
1025                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/home-travel/crates-kennels/wire-kennels/">Wire Kennels</a>
1026                        </li>
1027                        <li class="navPage-childList-item">
1028                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/home-travel/crates-kennels/accessories/">Accessories</a>
1029                        </li>
1030                        <li class="navPage-childList-item">
1031                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/home-travel/crates-kennels/view-all/">VIEW ALL</a>
1032                        </li>
1033                    </ul>
1034            </li>
1035            <li class="navPage-subMenu-item">
1036                    <a
1037                        class="navPage-subMenu-action navPages-action has-subMenu"
1038                        href="https://www.jjdog.com/home-travel/bowls-feeders/"
1039                        data-collapsible="navPages-35"
1040                        data-collapsible-disabled-breakpoint="medium"
1041                        data-collapsible-disabled-state="open"
1042                        data-collapsible-enabled-state="closed">
1043                        Bowls &amp; Feeders <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
1044                    </a>
1045                    <ul class="navPage-childList" id="navPages-35">
1046                        <li class="navPage-childList-item">
1047                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/home-travel/bowls-feeders/bowls/">Bowls</a>
1048                        </li>
1049                        <li class="navPage-childList-item">
1050                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/home-travel/bowls-feeders/dog-food-storage/">Dog Food Storage</a>
1051                        </li>
1052                        <li class="navPage-childList-item">
1053                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/home-travel/bowls-feeders/water-bottles/">Water Bottles</a>
1054                        </li>
1055                        <li class="navPage-childList-item">
1056                            <a class="navPage-childList-action navPages-action" href="https://www.jjdog.com/home-travel/bowls-feeders/view-all/">VIEW ALL</a>
1057                        </li>
1058                    </ul>
1059            </li>
1060            <li class="navPage-subMenu-item">
1061                    <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/home-travel/beds-cots/">Beds &amp; Cots</a>
1062            </li>
1063            <li class="navPage-subMenu-item">
1064                    <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/home-travel/vehicle-products/">Vehicle Products</a>
1065            </li>
1066            <li class="navPage-subMenu-item">
1067                    <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/home-travel/scoops-bags/">Scoops &amp; Bags</a>
1068            </li>
1069            <li class="navPage-subMenu-item">
1070                    <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/home-travel/accessories/">Accessories</a>
1071            </li>
1072    </ul>
1073</div>
1074            </li>
1075            <li class="navPages-item">
1076                <a class="navPages-action has-subMenu" href="https://www.jjdog.com/promos/" data-collapsible="navPages-748">
1077    Promos <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
1078</a>
1079<div class="navPage-subMenu" id="navPages-748" aria-hidden="true" tabindex="-1">
1080    <ul class="navPage-subMenu-list">
1081        <li class="navPage-subMenu-item">
1082            <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/promos/">All Promos</a>
1083        </li>
1084            <li class="navPage-subMenu-item">
1085                    <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/promos/clearance/">Clearance</a>
1086            </li>
1087            <li class="navPage-subMenu-item">
1088                    <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/promos/volume-pricing/">Volume Pricing</a>
1089            </li>
1090            <li class="navPage-subMenu-item">
1091                    <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/promos/featured-paws/">Featured Paws</a>
1092            </li>
1093            <li class="navPage-subMenu-item">
1094                    <a class="navPage-subMenu-action navPages-action" href="https://www.jjdog.com/promos/best-friends-club/">Best Friends Club</a>
1095            </li>
1096    </ul>
1097</div>
1098            </li>
1099    </ul>
1100    <ul class="navPages-list navPages-list--user">
1101        <li class="navPages-item">
1102            <a class="navPages-action" href="/quick-order/">Quick Order</a>
1103        </li>
1104        
1105        
1106                      <li class="navPages-item">
1107            <a class="navPages-action" href="/best-friends-club">Best Friends Club</a>
1108        </li>        
1109  <li class="navPages-item">
1110            <a class="navPages-action" href="/featured-paws">Featured Paws</a>
1111        </li>
1112          <li class="navPages-item">
1113            <a class="navPages-action" href="/blog/">Blog</a>
1114        </li>
1115        
1116        <li class="navPages-item">
1117            <a class="navPages-action" href="/contact-us">Contact Us</a>
1118        </li>
1119            
1120        
1121        
1122            <li class="navPages-item">
1123                <a class="navPages-action" href="https://www.jjdog.com/login.php">Sign in</a>
1124                    or <a class="navPages-action" href="https://www.jjdog.com/login.php?action=create_account">Register</a>
1125            </li>
1126            <li class="navPages-item">
1127                    <ul class="socialLinks socialLinks--alt">
1128            <li class="socialLinks-item">
1129                <a class="icon icon--facebook" href="https://www.facebook.com/jjdogsupplies" target="_blank" rel="noopener">
1130                    <svg><use xlink:href="#icon-facebook" /></svg>
1131                </a>
1132            </li>
1133            <li class="socialLinks-item">
1134                <a class="icon icon--instagram" href="https://www.instagram.com/jjdogsupplies" target="_blank" rel="noopener">
1135                    <svg><use xlink:href="#icon-instagram" /></svg>
1136                </a>
1137            </li>
1138            <li class="socialLinks-item">
1139                <a class="icon icon--youtube" href="https://www.youtube.com/c/jjdogsupplies" target="_blank" rel="noopener">
1140                    <svg><use xlink:href="#icon-youtube" /></svg>
1141                </a>
1142            </li>
1143    </ul>
1144            </li>
1145       <li class="navPages-item">
1146            <span class="show-room-mobile"><a href="https://www.jjdog.com/shipping-information/">FREE SHIPPING* for orders $75+</a></span>
1147        </li>
1148    </ul>
1149</nav>
1150    </div>
1151</header>
1152<div data-content-region="header_bottom"></div>
1153        
1153<script type="77683c8daf3a83c7926e58dc-text/javascript">
1154    $(document).on('Searchanise.ResultsUpdated', function(event, results) {
1155        //Tmp Solution until its live
1156        $('.snize-quick-view-button').remove();
1157        $('.snize-product').prepend("<div class='card-figcaption-body'><a class='snize-button snize-action-button card-figcaption-button zoy-quickview'>Quick view</a></div>");
1158    });
1159</script>
1159
1160<div class="body" data-currency-code="USD">
1161     
1162    <div class="container">
1163        
1164
1165<div class="category">
1166<ul class="breadcrumbs" itemscope itemtype="http://schema.org/BreadcrumbList">
1167            <li class="breadcrumb " itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
1168                    <a href="https://www.jjdog.com/" class="breadcrumb-label" itemprop="item"><span itemprop="name">Home</span></a>
1169                <meta itemprop="position" content="1" />
1170            </li>
1171            <li class="breadcrumb " itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
1172                    <a href="https://www.jjdog.com/competition-equipment/" class="breadcrumb-label" itemprop="item"><span itemprop="name">Competition Equipment</span></a>
1173                <meta itemprop="position" content="2" />
1174            </li>
1175            <li class="breadcrumb " itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
1176                    <a href="https://www.jjdog.com/competition-equipment/rally/" class="breadcrumb-label" itemprop="item"><span itemprop="name">Rally</span></a>
1177                <meta itemprop="position" content="3" />
1178            </li>
1179            <li class="breadcrumb is-active" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
1180                    <meta itemprop="item" content="https://www.jjdog.com/competition-equipment/rally/utility-articles/">
1181                    <span class="breadcrumb-label" itemprop="name">Utility Articles</span>
1182                <meta itemprop="position" content="4" />
1183            </li>
1184</ul>
1185
1186        <h1 class="page-heading">Dog Utility Articles</h1>
1187         
1188         <div data-content-region="category_below_header"></div>
1189
1190<p><span id="docs-internal-guid-f107c4b6-7fff-a650-c682-232cd2762a97"><span>Choose from our selection of utility articles for rally dog events and training sessions. Our competition-focused utility articles include single, double and triple bar styles commonly used in highly competitive rally dog events. We feature a variety of dog utility articles made from different materials including wood, metal, and leather.</span></span></p>
1191<script src="//www.searchanise.com/widgets/bigcommerce/init.js?api_key=7y3i6j5K9Q" type="77683c8daf3a83c7926e58dc-text/javascript"></script>
1191
1192<div class="snize" id="snize_results"></div>
1193
1194<div id="shogun-below-grid-placeholder"></div>
1195<script type="77683c8daf3a83c7926e58dc-text/javascript">
1196  document.addEventListener("DOMContentLoaded", function () {
1197    var shogunBelow = document.querySelector(".shogun-below-grid");
1198    var placeholder = document.getElementById("shogun-below-grid-placeholder");
1199
1200    if (shogunBelow && placeholder) {
1201      placeholder.parentNode.insertBefore(shogunBelow, placeholder.nextSibling);
1202    }
1203  });
1204</script>
1204
1205
1206<style type="text/css"><!--
1207/* Load spinner */
1208#snize-preload-spinner {
1209    height: 100px;
1210    width: 32px;
1211    margin: 0 auto;
1212    background-position: 0px center;
1213    background-repeat: no-repeat;
1214    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYAAAAALCAYAAAB2x1oQAAAACXBIWXMAAAsTAAALEwEAmpwYAAAIj0lEQVR42u2bbWhTWRrHn3Puzc37JNYmTduhTMZBZLBF6gt+2h1HMxRUOrjmgzJfXGUXLU23Y0WHYpdWikp13LZU2cVZvwwK1i0WEcq2ju5+ErVSapEi40TqtE3TtE2meb0v5+wHE4l3kjRX9qaF6QMXwsn/3t/93//Jc9P0XIDVWq3VWq3V+k0WAgCYnZ01CILwNaX0DwBgBYAxjHFHaWnpfzPtNDMz85Eoit8AwOfJoR9Ylj1bUlLyKpN+enr6d4SQEwCwEQCCCKF/aTSab202WxQA4P79+6ZQKPS1JEluhJCVUjqq1Wo79uzZ86AQ/CtXrpgmJydPJhKJfRjjIkrpiMlk6mhpafmhEPzjx49/MD4+/k00Gn3LLy4uPn/z5s2hleh/YGDgo2g0ejqdbzAYztTU1BQk/wsXLnw8Ozt7GgB2JYeGbDbbmaampp/eh690/h85cuQTr9f7Dt/pdJ65evXqj4XgK/V/586dz3ieP4EQqqKUBhmG6bVYLN/u2LEj/D58pfm3tbV9Hg6HTyCENhFC5rVabV95efn5o0ePhgvRf9xu9665ubmTKb7BYOjbsGHD2YsXL/5SCP5y+8+VPwoEAqZEIjFICNn+zp0BIRFj/OeysrJ/po/7fL4qURTvUUqLZfoAy7I7HQ7HaPr41NTUHwkhf6eUsunjGOOHWq3WNTo6CvPz8/ckSdomO29Rp9Mdra2tvaomv7e3F16+fHk/kUhskfu3Wq11bW1t/1CTf+7cOfz48eP/hMPhTbL3SVlZWX1/f//lleT/7t27myKRyGAmvtFodO3evXtEzfzb29urZ2dnByVJKkofZxhm3mazuZqbm58q4QMAKJn/Bw4c2OL1egcFQbCmj2s0mqDT6XTduHHjiZp8pf77+/uPxOPxKwDAyvSPioqKdlZVVSniK82/paXlT8FgsEfuX6vVPlm3bt0Ot9sNavaf2traY1NTU92EEJw+bjKZRrZu3fr7U6dOETX5y+1/qfwxz/PNlNLtCCFI3wCAJYR0+/3+svQdJUn6DgCKM+iLk++9Lb/fX0YI6QYAVq6nlG7neb45FAqdFkVxG6UUZBubSCS6BwcHP
12141STPzEx0SpvfgAAlFI2FAp1dnZ2VqjJf/bsWau8+QMAEEKwz+e7VFdXV7GS/Mdise8IIcXyvAghxbFYTPX8g8HgNXnzS16XomAweE0pX+n8n56eviZv/gAAgiBYp6enVecr8T84OPhhIpHoppSy8usriuK2UCj0V6V8Jfl3dnZWhEKhTnnzS970trx+/bpVzf5TV1dX4fP5LsmbPwBAOBzeNDY2dkZN/nL7zyd/TCn9KsdPRAZRFL9Mm9DrKaVbsokppVv8fv+Gt1/h3uxryKH/SpKkrHxCiC4SiajKFwThYIbmA5RSkCRJ5/f796nJj8fjWf2Losh5vd79K8X/0NDQp5IkVWc7niRJ1UNDQ5+qlX9XV9fGeDxele184/F4VVdX10YlfCXz3+PxVC0uLm7MJl5cXNzo8Xg2qcVX6j8SiXxJCNHlyOugEr7S/P1+/z5JknTZzpfn+YNq9h+v17tfFEUumz4Wi6nKX27/+eTPUkrLKKWQ40NYnnrN83xObVLjAIDx1L5L6MskSUrdwTKWIAiq8gVByMmPRqMlavJjsRjOJQgGgyUrxf/CwoI9+edmVv3CwoIDAJ6rkb/X612Sn9Lky09+cPKa/8PDw8VL/VNteHi4SC2+Uv+CIJTn0kqS5Eg1o3z4SvOPRqMlubQ8zzsopUSt/hMKhUpyaaPRaLGa/OX2n0/+GCE0leuAGOPJ1GuO43y5DogQAo7jfJn2zaKfYhjGl0uj0WhU5Ws0Gn+2OzSlFAwGw4yafL1eH8jFt1qtMyvF/5o1a/xLNUCr1apa/k6n059qmJm2dE2+fCXzf/PmzfNL8aurq+fV4iv1n37tMhXDMD4lfKX5GwyGmVxzKzmfVes/FotlZom5HVCTv9z+88kfI4S+l/+elLZFWZa9ndrBbrePI4Se5NA/sdvt4yk9y7K3EULRHPrvGYa5nu0CIYTiRqNRVT7HcddzXKC43W7vU5Ov1+uv52h+vNPpvLVS/O/ates5wzBPs+XFMMxTl8v1XK38PR7PmE6nG812vjqdbtTj8Ywp4SuZ/11dXSNms3ksG99sNo91d3ePqMVX6t9oNN5GCMVz5HVdCV9p/na7vY9hmHi28+U47rqa/cfpdN7SaDR8Nr5er1eVv9z+88kfcxzXjhB6mOknaIxxvd1un5I1hcMAEMigDyTfg7QTnsIY1wOAmOFu9ZDjuHaLxdLKsuyjDGZErVZb73K5flaTX1FR0arT6X51UTHGxGKxNDQ0NEyoya+srDxtNptH5HyGYYjD4Wjs6emZWEn+9Xr9YYxxIIM+oNfrVc/farUeYll2Xq5nWXbearUeUspXOv9LS0sPcRwXlPM5jguWlpaqzlfi3+Vy/azVausRQmIG/SOLxdKqlK8k/4aGhgmLxdKAMSZyvU6ne1pRUdGqZv/p6emZcDgcjQzD/IpvNptHKisrT6vJX27/+eSfeg7AJAjCXyilbnizDnU0j3WozQDwWXLoAcuy7XmsQ6+CN+ugezUazd9sNlsYAODevXumxcXFE5Ik7UMIFVFKRzmOO793794HheBfvnzZNDk5eZLn+f0YYyuldNRkMp1f4jmA/xu/sbHxgxcvXrzzHMDatWs7ent7/70S/Q8MDHwciUSaIW0dstFobK+pqfmpEPl3dHR8EggEmuHddfDtTU1NP74PX+n8P3z48PpXr141A8AXKX7yOYAXheAr9Z9cB34yuQ58nmGYPrPZ3LFz58734ivNP7kO/iRCqIoQEuQ47lZ5efn5Y8eOhQvRf9xu9xdzc3Mn0p8DWL9+/dlLly79Ugj+cvtfKv/VWq3VWq3V+g3W/wAZmNaB1vZW4QAAAABJRU5ErkJggg==);
1215}
1216--></style>
1217
1218<script type="77683c8daf3a83c7926e58dc-text/javascript">// <![CDATA[
1219(function(window, undefined) {
1220    var sXpos = 0, sIndex = 0, sTotalFrames = 12, sInterval = null;
1221
1222    if (document.getElementById('snize_results').innerHTML != '') {
1223        return;
1224    }
1225
1226    document.getElementById('snize_results').innerHTML = '<div id="snize-preload-spinner"></div>';
1227    sInterval = setInterval(function()
1228    {
1229        var spinner = document.getElementById('snize-preload-spinner');
1230        if (spinner) {
1231            document.getElementById('snize-preload-spinner').style.backgroundPosition = (- sXpos) + 'px center';
1232        } else {
1233            clearInterval(sInterval);
1234        }
1235
1236        sXpos  += 32;
1237        sIndex += 1;
1238
1239        if (sIndex >= 12) {
1240            sXpos  = 0;
1241            sIndex = 0;
1242        }
1243    }, 30);
1244}(window));
1245// ]]></script>
1245
1246
1247
1248    </div>
1249    <div id="modal" class="modal" data-reveal data-prevent-quick-search-close>
1250    <a href="#" class="modal-close" aria-label="Close" role="button">
1251        <span aria-hidden="true">&#215;</span>
1252    </a>
1253    <div class="modal-content"></div>
1254    <div class="loadingOverlay"></div>
1255</div>
1256    <div id="alert-modal" class="modal modal--alert modal--small" data-reveal data-prevent-quick-search-close>
1257    <div class="swal2-icon swal2-error swal2-icon-show"><span class="swal2-x-mark"><span class="swal2-x-mark-line-left"></span><span class="swal2-x-mark-line-right"></span></span></div>
1258
1259    <div class="modal-content"></div>
1260
1261    <div class="button-container"><button type="button" class="confirm button" data-reveal-close>OK</button></div>
1262</div>
1263</div>
1264        <footer class="footer" role="contentinfo">
1265    <div class="container">
1266        <section class="footer-info">
1267            <article class="footer-info-col footer-info-col--small" data-section-type="footer-webPages">
1268                <h5 class="footer-info-heading">Quick Links</h5>
1269                <ul class="footer-info-list">
1270                    <li>
1271                            <a href="https://www.jjdog.com/best-friends-club">Best Friends Club</a>
1272                        </li>
1273                        <li>
1274                            <a href="https://www.jjdog.com/featured-paws">Featured Paws</a>
1275                        </li>
1276<li>
1277                            <a href="https://www.jjdog.com/about-us/">About Us</a>
1278                        </li>
1279                        
1280                    
1281                        <li>
1282                            <a href="https://www.jjdog.com/giftcertificates.php">Gift Certificates</a>
1283                        </li>
1284                        
1285                        <li>
1286                            <a href="https://www.jjdog.com/shopping-faq/">Shopping FAQ</a>
1287                        </li>
1288                        <li>
1289                            <a href="https://www.jjdog.com/shipping-information/">Shipping Information</a>
1290                        </li>
1291                        <li>
1292                            <a href="https://www.jjdog.com/returns-warranty/">Returns &amp; Warranty</a>
1293                        </li>
1294                        <li>
1295                            <a href="https://www.jjdog.com/customer-service/">Customer Service</a>
1296                        </li>
1297
1298                        <li>
1299                            <a href="https://www.jjdog.com/partner-program/">Partner Program</a>
1300                        </li>
1301                        <li>
1302                            <a href="https://www.jjdog.com/blog/">Dog Training Blog</a>
1303                            
1304                        </li>
1305                            <li>
1306                            <a href="https://www.jjdog.com/request-a-catalog/">Catalog Request</a>
1307                        </li>
1308                        <li>
1309                            <a href="https://www.jjdog.com/donations/">Donations</a>
1310                        </li>
1311                        <li>
1312                            <a href="https://www.jjdog.com/promo-restrictions/">Promo Restrictions</a>
1313                        </li>
1314                        <li>
1315                            <a href="https://www.jjdog.com/international-customers/">International Customers</a>
1316                        </li>
1317                        <li>
1318                            <a href="https://www.jjdog.com/privacy-policy/">Privacy Policy</a>
1319                        </li>
1320                        <li>
1321                            <a href="https://www.jjdog.com/terms-of-use/">Terms of Use</a>
1322                        </li>
1323                        <li>
1324                            <a href="https://www.jjdog.com/accessibility/">Accessibility</a>
1325                        </li>
1326                </ul>
1327            </article>
1328
1329            <article class="footer-info-col footer-info-col--small" data-section-type="footer-categories">
1330                <h5 class="footer-info-heading">Categories</h5>
1331                <ul class="footer-info-list">
1332                      <li>
1333                            <a href="https://www.jjdog.com/promos/clearance/">Clearance</a>
1334                        </li>
1335                        <li>
1336                            <a href="https://www.jjdog.com/new-products/">New</a>
1337                        </li>
1338                        <li>
1339                            <a href="https://www.jjdog.com/competition-equipment/">Competition Equipment</a>
1340                        </li>
1341                        <li>
1342                            <a href="https://www.jjdog.com/trainer-gear/">Trainer Gear</a>
1343                        </li>
1344                        <li>
1345                            <a href="https://www.jjdog.com/dog-gear/">Dog Gear</a>
1346                        </li>
1347                        <li>
1348                            <a href="https://www.jjdog.com/dog-supplies/">Dog Supplies</a>
1349                        </li>
1350                        <li>
1351                            <a href="https://www.jjdog.com/dog-show-supplies/">Show Supplies</a>
1352                        </li>
1353                        <li>
1354                            <a href="https://www.jjdog.com/home-travel/">Home &amp; Travel</a>
1355                        </li>
1356                        <li>
1357                            <a href="https://www.jjdog.com/promos/">Promos</a>
1358                        </li>
1359                </ul>
1360            </article>
1361
1362            
1363            <article class="footer-info-col footer-info-col--small" data-section-type="footer-brands">
1364                <h5 class="footer-info-heading">Popular Brands</h5>
1365                <ul class="footer-info-list">
1366                          <li>
1367                            <a href="https://www.jjdog.com/j-j-dog-supplies/">J&amp;J Dog Supplies</a>
1368                        </li>
1369                        <li>
1370                            <a href="https://www.jjdog.com/ray-allen-manufacturing/">Ray Allen Manufacturing</a>
1371                        </li>
1372                        <li>
1373                            <a href="https://www.jjdog.com/kong/">KONG</a>
1374                        </li>
1375                        <li>
1376                            <a href="https://www.jjdog.com/herm-sprenger/">Herm Sprenger</a>
1377                        </li>
1378                        <li>
1379                            <a href="https://www.jjdog.com/ruffwear/">RuffWear</a>
1380                        </li>
1381                        <li>
1382                            <a href="https://www.jjdog.com/clip-and-go-agility/">Clip and Go Agility</a>
1383                        </li>
1384                        <li>
1385                            <a href="https://www.jjdog.com/5-11-tactical/">5.11 Tactical</a>
1386                        </li>
1387                        <li>
1388                            <a href="https://www.jjdog.com/julius-k-9/">Julius K-9</a>
1389                        </li>
1390                        <li>
1391                            <a href="https://www.jjdog.com/company-of-animals/">Company of Animals</a>
1392                        </li>
1393                        <li>
1394                            <a href="https://www.jjdog.com/fitpaws/">FitPAWS</a>
1395                        </li>
1396                    <li><a href="https://www.jjdog.com/brands/">View All</a></li>
1397                </ul>
1398            </article>
1399
1400            <article class="footer-info-col footer-info-col--small" data-section-type="storeInfo">
1401                <h5 class="footer-info-heading">Contact Us</h5>
1402                                <ul class="footer-info-list">
1403                     <li><a href="tel:+1-800-642-2050"><strong><i class="fa fa-phone" aria-hidden="true"></i> 1-800-642-2050</strong></a> </li>                                   
1404<li><strong><a href="https://www.jjdog.com/contact-us/"><i class="fa fa-paper-plane" aria-hidden="true"></i> Send Message</a></strong> </li>
1405                <li><a href="https://www.google.com/maps/place/J%26J+Dog+Supplies/@38.8458193,-104.7124816,17z/data=!3m1!4b1!4m5!3m4!1s0x87e195e9541d6615:0xeb9fa1466ab815c!8m2!3d38.8458193!4d-104.7102929?hl=en"><i class="fa fa-car" aria-hidden="true"></i> <strong>Get Directions<br></strong>J&amp;J Dog Supplies<br>
1406975 Ford St<br>
1407Colorado Springs, CO 80915</a> </li>
1408                     </ul>
1409            </article>
1410
1411            <article class="footer-info-col" data-section-type="newsletterSubscription">
1412                    <h5 class="footer-info-heading">Subscribe to our newsletter</h5>
1413<ul class="footer-info-list"><li>Get the latest updates on new products and upcoming sales</li></ul>
1414
1415<div class="klaviyo-form-VxY4Ui"></div>
1416<!--
1417<form class="form" action="https://www.jjdog.com/subscribe.php" method="post">
1418    <fieldset class="form-fieldset">
1419        <input type="hidden" name="action" value="subscribe">
1420        <input type="hidden" name="nl_first_name" value="bc">
1421        <input type="hidden" name="check" value="1">
1422        <div class="form-field">
1423            <label class="form-label is-srOnly" for="nl_email">Email Address</label>
1424            <div class="form-prefixPostfix wrap">
1425                <input class="form-input" id="nl_email" name="nl_email" type="email" value="" placeholder="Your email address">
1426                <input class="button button--primary form-prefixPostfix-button--postfix" type="submit" value="Subscribe">
1427            </div>
1428        </div>
1429    </fieldset>
1430</form>
1431-->
1432                                
1433                
1434            <div id="google-rating-badge"> </div>
1435            
1436            <div class="payment-icons">
1437    
1438            <img class="payment-icons" src="https://cdn11.bigcommerce.com/s-cftgfbe14j/product_images/uploaded_images/payment-methods.png?t=1596832795&_ga=2.66591276.321628550.1596465426-1511795599.1594160554" alt="Payment Methods Accepted: Paypal, Visa, Mastercard, Discover, AmEx">
1439        </div>
1440        
1441    
1442    
1443    
1444            </article>
1445        </section>
1446     
1447            <div class="footer-copyright">
1448                <p class="powered-by">&copy; 2026 J&amp;J Dog Supplies </p>
1449            </div>
1450            </div>
1451
1452
1453    
1454    
1455    
1456    
1457    
1458    
1459    
1460    
1461    
1462
1463</footer>
1464
1465        
1465<script type="77683c8daf3a83c7926e58dc-text/javascript">window.__webpack_public_path__ = "https://cdn11.bigcommerce.com/s-cftgfbe14j/stencil/1d272760-e709-0138-dd55-0242ac11000f/e/959864e0-7e25-013f-a515-4add52f6d68f/dist/";</script>
1465
1466        
1466<script src="https://cdn11.bigcommerce.com/s-cftgfbe14j/stencil/1d272760-e709-0138-dd55-0242ac11000f/e/959864e0-7e25-013f-a515-4add52f6d68f/dist/theme-bundle.main.js" type="77683c8daf3a83c7926e58dc-text/javascript"></script>
1466
1467        
1467<script type="77683c8daf3a83c7926e58dc-text/javascript">
1468            window.stencilBootstrap("category", "{\"categoryProductsPerPage\":12,\"categoryId\":855,\"themeSettings\":{\"optimizedCheckout-formChecklist-color\":\"#333333\",\"homepage_new_products_column_count\":4,\"card--alternate-color--hover\":\"#ffffff\",\"optimizedCheckout-colorFocus\":\"#4496f6\",\"fontSize-root\":14,\"show_accept_amex\":false,\"optimizedCheckout-buttonPrimary-borderColorDisabled\":\"transparent\",\"homepage_top_products_count\":0,\"paymentbuttons-paypal-size\":\"responsive\",\"optimizedCheckout-buttonPrimary-backgroundColorActive\":\"#000000\",\"brandpage_products_per_page\":12,\"color-secondaryDarker\":\"#cccccc\",\"navUser-color\":\"#444444\",\"color-textBase--active\":\"#757575\",\"social_icon_placement_bottom\":\"bottom_none\",\"show_powered_by\":false,\"show_accept_amazonpay\":false,\"fontSize-h4\":20,\"checkRadio-borderColor\":\"#cccccc\",\"color-primaryDarker\":\"#333333\",\"optimizedCheckout-buttonPrimary-colorHover\":\"#ffffff\",\"brand_size\":\"190x250\",\"optimizedCheckout-logo-position\":\"left\",\"optimizedCheckout-discountBanner-backgroundColor\":\"#e5e5e5\",\"color-textLink--hover\":\"#099CBF\",\"pdp-sale-price-label\":\"Now:\",\"optimizedCheckout-buttonSecondary-backgroundColorHover\":\"#f5f5f5\",\"optimizedCheckout-headingPrimary-font\":\"Google_Montserrat_700\",\"logo_size\":\"183x110\",\"optimizedCheckout-formField-backgroundColor\":\"#ffffff\",\"footer-backgroundColor\":\"#ffffff\",\"navPages-color\":\"#185076\",\"productpage_reviews_count\":9,\"optimizedCheckout-step-borderColor\":\"#dddddd\",\"show_accept_paypal\":false,\"paymentbuttons-paypal-label\":\"checkout\",\"paymentbuttons-paypal-shape\":\"pill\",\"optimizedCheckout-discountBanner-textColor\":\"#333333\",\"optimizedCheckout-backgroundImage-size\":\"1000x400\",\"pdp-retail-price-label\":\"MSRP:\",\"optimizedCheckout-buttonPrimary-font\":\"Google_Montserrat_500\",\"carousel-dot-color\":\"#333333\",\"button--disabled-backgroundColor\":\"#cccccc\",\"blockquote-cite-font-color\":\"#999999\",\"optimizedCheckout-formField-shadowColor\":\"transparent\",\"categorypage_products_per_page\":12,\"container-fill-base\":\"#ffffff\",\"paymentbuttons-paypal-layout\":\"vertical\",\"homepage_featured_products_column_count\":4,\"button--default-color\":\"#666666\",\"pace-progress-backgroundColor\":\"#099CBF\",\"color-textLink--active\":\"#099CBF\",\"optimizedCheckout-loadingToaster-backgroundColor\":\"#333333\",\"color-textHeading\":\"#185076\",\"show_accept_discover\":false,\"optimizedCheckout-formField-errorColor\":\"#d14343\",\"spinner-borderColor-dark\":\"#099CBF\",\"restrict_to_login\":false,\"input-font-color\":\"#666666\",\"select-bg-color\":\"#ffffff\",\"show_accept_mastercard\":false,\"show_custom_fields_tabs\":true,\"color_text_product_sale_badges\":\"#ffffff\",\"optimizedCheckout-link-font\":\"Google_Montserrat_500\",\"homepage_show_carousel_arrows\":false,\"carousel-arrow-bgColor\":\"#ffffff\",\"lazyload_mode\":\"lazyload\",\"carousel-title-color\":\"#444444\",\"header-top-banner\":\"Showroom temporarily closed. Curbside pickup is available.\",\"supported_payment_methods\":[\"card\",\"paypal\"],\"color_hover_product_sale_badges\":\"#000000\",\"show_accept_googlepay\":false,\"card--alternate-borderColor\":\"#ffffff\",\"homepage_new_products_count\":0,\"button--disabled-color\":\"#ffffff\",\"color-primaryDark\":\"#666666\",\"color-grey\":\"#999999\",\"body-font\":\"Google_Open+Sans_400\",\"optimizedCheckout-step-textColor\":\"#ffffff\",\"optimizedCheckout-buttonPrimary-borderColorActive\":\"transparent\",\"navPages-subMenu-backgroundColor\":\"#e5e5e5\",\"button--primary-backgroundColor\":\"#099CBF\",\"optimizedCheckout-formField-borderColor\":\"#cccccc\",\"checkRadio-color\":\"#333333\",\"show_product_dimensions\":false,\"optimizedCheckout-link-color\":\"#476bef\",\"card-figcaption-button-background\":\"#099CBF\",\"icon-color-hover\":\"#999999\",\"button--default-borderColor\":\"#cccccc\",\"optimizedCheckout-headingSecondary-font\":\"Google_Montserrat_700\",\"headings-font\":\"Google_O
1468swald_400\",\"label-backgroundColor\":\"#cccccc\",\"button--primary-backgroundColorHover\":\"#22A6C5\",\"pdp-non-sale-price-label\":\"Was:\",\"button--disabled-borderColor\":\"transparent\",\"label-color\":\"#ffffff\",\"optimizedCheckout-headingSecondary-color\":\"#333333\",\"select-arrow-color\":\"#757575\",\"logo_fontSize\":28,\"alert-backgroundColor\":\"#ffffff\",\"optimizedCheckout-logo-size\":\"250x100\",\"default_image_brand\":\"img/BrandDefault.gif\",\"card-title-color\":\"#185076\",\"product_list_display_mode\":\"grid\",\"optimizedCheckout-link-hoverColor\":\"#002fe1\",\"fontSize-h5\":15,\"product_size\":\"500x659\",\"paymentbuttons-paypal-color\":\"gold\",\"homepage_show_carousel\":false,\"optimizedCheckout-body-backgroundColor\":\"#ffffff\",\"carousel-arrow-borderColor\":\"#ffffff\",\"button--default-borderColorActive\":\"#757575\",\"header-backgroundColor\":\"#FFFFFF\",\"paymentbuttons-paypal-tagline\":false,\"color-greyDarkest\":\"#000000\",\"color_badge_product_sale_badges\":\"#007dc6\",\"price_ranges\":true,\"productpage_videos_count\":8,\"color-greyDark\":\"#666666\",\"optimizedCheckout-buttonSecondary-borderColorHover\":\"#999999\",\"optimizedCheckout-discountBanner-iconColor\":\"#333333\",\"optimizedCheckout-buttonSecondary-borderColor\":\"#cccccc\",\"optimizedCheckout-loadingToaster-textColor\":\"#ffffff\",\"optimizedCheckout-buttonPrimary-colorDisabled\":\"#ffffff\",\"optimizedCheckout-formField-placeholderColor\":\"#999999\",\"navUser-color-hover\":\"#757575\",\"icon-ratingFull\":\"#ffc600\",\"default_image_gift_certificate\":\"img/GiftCertificate.png\",\"color-textBase--hover\":\"#757575\",\"color-errorLight\":\"#ffdddd\",\"social_icon_placement_top\":true,\"blog_size\":\"190x250\",\"shop_by_price_visibility\":true,\"optimizedCheckout-buttonSecondary-colorActive\":\"#000000\",\"optimizedCheckout-orderSummary-backgroundColor\":\"#ffffff\",\"color-warningLight\":\"#fffdea\",\"show_product_weight\":true,\"button--default-colorActive\":\"#000000\",\"color-info\":\"#666666\",\"optimizedCheckout-formChecklist-backgroundColorSelected\":\"#f5f5f5\",\"show_product_quick_view\":true,\"button--default-borderColorHover\":\"#999999\",\"card--alternate-backgroundColor\":\"#ffffff\",\"hide_content_navigation\":true,\"pdp-price-label\":\"\",\"show_copyright_footer\":true,\"swatch_option_size\":\"22x22\",\"optimizedCheckout-orderSummary-borderColor\":\"#dddddd\",\"optimizedCheckout-show-logo\":\"none\",\"carousel-description-color\":\"#333333\",\"optimizedCheckout-formChecklist-backgroundColor\":\"#ffffff\",\"fontSize-h2\":25,\"optimizedCheckout-step-backgroundColor\":\"#757575\",\"optimizedCheckout-headingPrimary-color\":\"#333333\",\"color-textBase\":\"#333333\",\"color-warning\":\"#f1a500\",\"productgallery_size\":\"500x659\",\"alert-color\":\"#333333\",\"shop_by_brand_show_footer\":true,\"card-figcaption-button-color\":\"#FFFFFF\",\"searchpage_products_per_page\":12,\"color-textSecondary--active\":\"#333333\",\"optimizedCheckout-formField-inputControlColor\":\"#476bef\",\"optimizedCheckout-contentPrimary-color\":\"#333333\",\"optimizedCheckout-buttonSecondary-font\":\"Google_Montserrat_500\",\"storeName-color\":\"#333333\",\"optimizedCheckout-backgroundImage\":\"\",\"form-label-font-color\":\"#666666\",\"color-greyLightest\":\"#e5e5e5\",\"optimizedCheckout-header-backgroundColor\":\"#f5f5f5\",\"productpage_related_products_count\":10,\"optimizedCheckout-buttonSecondary-backgroundColorActive\":\"#e5e5e5\",\"color-textLink\":\"#333333\",\"color-greyLighter\":\"#cccccc\",\"color-secondaryDark\":\"#e5e5e5\",\"fontSize-h6\":13,\"paymentbuttons-paypal-fundingicons\":false,\"carousel-arrow-color\":\"#999999\",\"productpage_similar_by_views_count\":10,\"show-admin-bar\":true,\"pdp-custom-fields-tab-label\":\"Additional Information\",\"loadingOverlay-backgroundColor\":\"#ffffff\",\"optimizedCheckout-buttonPrimary-color\":\"#ffffff\",\"input-bg-color\":\"#ffffff\",\"navPages-subMenu-separatorColor\":\"#cccccc\",\"navPages-color-hover\":\"#007DC6\",\"color-infoLight\":\"#dfdfdf\",\"product_sale_badges\":\"none\",\"default_image_product\":\"img/ProductDefault.gif\",\"navUser-dropdown-borderColor\":\"#cccccc\",\"optimizedCheckout-buttonPrimary-colorActive\":\"#ffffff\",\"color-greyMedium\":\"#757575\",\"o
1468ptimizedCheckout-formChecklist-borderColor\":\"#cccccc\",\"fontSize-h1\":28,\"homepage_featured_products_count\":0,\"color-greyLight\":\"#999999\",\"optimizedCheckout-logo\":\"\",\"icon-ratingEmpty\":\"#cccccc\",\"show_product_details_tabs\":true,\"icon-color\":\"#757575\",\"overlay-backgroundColor\":\"#333333\",\"input-border-color-active\":\"#999999\",\"hide_contact_us_page_heading\":false,\"container-fill-dark\":\"#e5e5e5\",\"optimizedCheckout-buttonPrimary-backgroundColorDisabled\":\"#cccccc\",\"button--primary-color\":\"#ffffff\",\"optimizedCheckout-buttonPrimary-borderColorHover\":\"transparent\",\"color-successLight\":\"#d5ffd8\",\"color-greyDarker\":\"#333333\",\"show_product_quantity_box\":true,\"color-success\":\"#008a06\",\"optimizedCheckout-header-borderColor\":\"#dddddd\",\"zoom_size\":\"1280x1280\",\"color-white\":\"#ffffff\",\"optimizedCheckout-buttonSecondary-backgroundColor\":\"#ffffff\",\"productview_thumb_size\":\"50x50\",\"fontSize-h3\":22,\"spinner-borderColor-light\":\"#ffffff\",\"geotrust_ssl_common_name\":\"\",\"carousel-bgColor\":\"#ffffff\",\"carousel-dot-color-active\":\"#757575\",\"input-border-color\":\"#cccccc\",\"optimizedCheckout-buttonPrimary-backgroundColor\":\"#333333\",\"color-secondary\":\"#ffffff\",\"button--primary-backgroundColorActive\":\"#22A6C5\",\"color-textSecondary--hover\":\"#333333\",\"color-whitesBase\":\"#e5e5e5\",\"body-bg\":\"#ffffff\",\"dropdown--quickSearch-backgroundColor\":\"#e5e5e5\",\"optimizedCheckout-contentSecondary-font\":\"Google_Montserrat_500\",\"navUser-dropdown-backgroundColor\":\"#ffffff\",\"color-primary\":\"#757575\",\"optimizedCheckout-contentPrimary-font\":\"Google_Montserrat_500\",\"supported_card_type_icons\":[\"american_express\",\"diners\",\"discover\",\"mastercard\",\"visa\"],\"navigation_design\":\"simple\",\"optimizedCheckout-formField-textColor\":\"#333333\",\"color-black\":\"#ffffff\",\"homepage_top_products_column_count\":4,\"hide_page_heading\":false,\"optimizedCheckout-buttonSecondary-colorHover\":\"#333333\",\"button--primary-colorActive\":\"#ffffff\",\"homepage_stretch_carousel_images\":false,\"optimizedCheckout-contentSecondary-color\":\"#757575\",\"card-title-color-hover\":\"#099CBF\",\"applePay-button\":\"black\",\"thumb_size\":\"100x100\",\"hide_breadcrumbs\":false,\"show_accept_klarna\":false,\"optimizedCheckout-buttonPrimary-borderColor\":\"#333333\",\"navUser-indicator-backgroundColor\":\"#333333\",\"optimizedCheckout-buttonSecondary-borderColorActive\":\"#757575\",\"hide_blog_page_heading\":false,\"optimizedCheckout-header-textColor\":\"#333333\",\"hide_category_page_heading\":false,\"optimizedCheckout-show-backgroundImage\":false,\"color-primaryLight\":\"#999999\",\"show_accept_visa\":false,\"logo-position\":\"center\",\"show_product_reviews_tabs\":false,\"carousel-dot-bgColor\":\"#ffffff\",\"optimizedCheckout-form-textColor\":\"#666666\",\"optimizedCheckout-buttonSecondary-color\":\"#333333\",\"geotrust_ssl_seal_size\":\"M\",\"button--icon-svg-color\":\"#757575\",\"alert-color-alt\":\"#ffffff\",\"button--default-colorHover\":\"#333333\",\"checkRadio-backgroundColor\":\"#ffffff\",\"optimizedCheckout-buttonPrimary-backgroundColorHover\":\"#666666\",\"input-disabled-bg\":\"#ffffff\",\"dropdown--wishList-backgroundColor\":\"#ffffff\",\"container-border-global-color-base\":\"#e5e5e5\",\"productthumb_size\":\"100x100\",\"button--primary-colorHover\":\"#ffffff\",\"color-error\":\"#cc4749\",\"homepage_blog_posts_count\":3,\"color-textSecondary\":\"#757575\",\"gallery_size\":\"300x300\"},\"genericError\":\"Oops! Something went wrong.\",\"maintenanceModeSettings\":[],\"adminBarLanguage\":\"{\\\"locale\\\":\\\"en\\\",\\\"locales\\\":{\\\"admin.maintenance_header\\\":\\\"en\\\",\\\"admin.maintenance_tooltip\\\":\\\"en\\\",\\\"admin.maintenance_showstore_link\\\":\\\"en\\\",\\\"admin.prelaunch_header\\\":\\\"en\\\",\\\"admin.page_builder_link\\\":\\\"en\\\"},\\\"translations\\\":{\\\"admin.maintenance_header\\\":\\\"Your store is down for maintenance.\\\",\\\"admin.maintenance_tooltip\\\":\\\"Only administrators can view the store at the moment. Visit your control panel settings page to disable maintenance mode.\\\",\\\"admin.maintenance_showstore_link\\\":\\\"Click here to see what your visitors will see.\\\",\\\"admin.prelaunch_header\\\":\\\"Your storefront is private. Share your site with preview code:\\\",\\\"admin.page_builder_link\\\":\\\"Design this page in Page Builder\\\"}}\",\"urls\":{\"home\":\"https://www.jjdog.com/\",\"brands\":\"https://www.jjdog.com/brands/\",\"search\":\"https://www.jjdog.com/search.php\",\"compare\":\"https://www.jjdog.com/compare\",\"sitemap\":\"https://www.jjdog.com/sitemap.php\",\"contact_us_submit\":\"https://www.jjdog.com/pages.php?action=sendContactForm\",\"subscribe\"
1468:{\"action\":\"https://www.jjdog.com/subscribe.php\"},\"checkout\":{\"single_address\":\"https://www.jjdog.com/checkout\",\"multiple_address\":\"https://www.jjdog.com/checkout.php?action=multiple\"},\"account\":{\"orders\":{\"all\":\"https://www.jjdog.com/account.php?action=order_status\",\"completed\":\"https://www.jjdog.com/account.php?action=view_orders\",\"save_new_return\":\"https://www.jjdog.com/account.php?action=save_new_return\"},\"returns\":\"https://www.jjdog.com/account.php?action=view_returns\",\"addresses\":\"https://www.jjdog.com/account.php?action=address_book\",\"inbox\":\"https://www.jjdog.com/account.php?action=inbox\",\"send_message\":\"https://www.jjdog.com/account.php?action=send_message\",\"add_address\":\"https://www.jjdog.com/account.php?action=add_shipping_address\",\"update_action\":\"https://www.jjdog.com/account.php?action=update_account\",\"details\":\"https://www.jjdog.com/account.php?action=account_details\",\"recent_items\":\"https://www.jjdog.com/account.php?action=recent_items\",\"index\":\"https://www.jjdog.com/account.php\",\"wishlists\":{\"all\":\"https://www.jjdog.com/wishlist.php\",\"add\":\"https://www.jjdog.com/wishlist.php?action=addwishlist\",\"edit\":\"https://www.jjdog.com/wishlist.php?action=editwishlist\",\"delete\":\"https://www.jjdog.com/wishlist.php?action=deletewishlist\"},\"payment_methods\":{\"all\":\"https://www.jjdog.com/account.php?action=payment_methods\"}},\"auth\":{\"login\":\"https://www.jjdog.com/login.php\",\"check_login\":\"https://www.jjdog.com/login.php?action=check_login\",\"create_account\":\"https://www.jjdog.com/login.php?action=create_account\",\"save_new_account\":\"https://www.jjdog.com/login.php?action=save_new_account\",\"forgot_password\":\"https://www.jjdog.com/login.php?action=reset_password\",\"send_password_email\":\"https://www.jjdog.com/login.php?action=send_password_email\",\"save_new_password\":\"https://www.jjdog.com/login.php?action=save_new_password\",\"logout\":\"https://www.jjdog.com/login.php?action=logout\"},\"cart\":\"https://www.jjdog.com/cart.php\",\"product\":{\"post_review\":\"https://www.jjdog.com/postreview.php\"},\"gift_certificate\":{\"purchase\":\"https://www.jjdog.com/giftcertificates.php\",\"redeem\":\"https://www.jjdog.com/giftcertificates.php?action=redeem\",\"balance\":\"https://www.jjdog.com/giftcertificates.php?action=balance\"},\"rss\":{\"products\":[]}},\"secureBaseUrl\":\"https://www.jjdog.com\",\"cartId\":null,\"channelId\":1,\"template\":\"pages/category\"}").load();
1469        </script>
1469
1470
1471        
1471<script type="77683c8daf3a83c7926e58dc-text/javascript" src="https://cdn11.bigcommerce.com/shared/js/csrf-protection-header-5eeddd5de78d98d146ef4fd71b2aedce4161903e.js"></script>
vendor: 1 bytes, line 1471
1471
1472<script src="https://apis.google.com/js/platform.js?onload=renderBadge" async defer type="77683c8daf3a83c7926e58dc-text/javascript"></script>
1472
1473
1474
1475<script type="77683c8daf3a83c7926e58dc-text/javascript">
1476window.renderBadge = function() {
1477    if ("INLINE" === "INLINE") {
1478        var ratingBadgeContainer = document.getElementById("google-rating-badge");
1479    } else {
1480        var ratingBadgeContainer = document.createElement("div");
1481        document.body.appendChild(ratingBadgeContainer);
1482    }
1483
1484    window.gapi.load('ratingbadge', function() {
1485        window.gapi.ratingbadge.render(
1486            ratingBadgeContainer, {
1487                "merchant_id": 9223190,
1488                "position": "INLINE"
1489        });
1490    });
1491}
1492
1493</script>
vendor: 1 bytes, line 1493
1493
1494<script src='https://na.shgcdn3.com/collector.js' async type="77683c8daf3a83c7926e58dc-text/javascript"></script>
1494<script src='https://static.klaviyo.com/onsite/js/U8CP5c/klaviyo.js?company_id=U8CP5c' async type="77683c8daf3a83c7926e58dc-text/javascript"></script>
1494<script src='https://api-server-3.goaffpro.com/loader.js?shop=cftgfbe14j' type="77683c8daf3a83c7926e58dc-text/javascript"></script>
1494<script src='https://api-server-3.goaffpro.com/loader.js?shop=cftgfbe14j' type="77683c8daf3a83c7926e58dc-text/javascript"></script>
vendor: 1 bytes, line 1494
1494
1495<script type="77683c8daf3a83c7926e58dc-text/javascript">
1496        </script>
vendor: 1 bytes, line 1496
1496
1497<script type="77683c8daf3a83c7926e58dc-text/javascript">
1498</script>
1498<script type="77683c8daf3a83c7926e58dc-text/javascript">
1499    if (!document.querySelector('script#reamazejs_script')) {
1500      var rmzScript = document.createElement('script');
1501      rmzScript.async = true;
1502      rmzScript.id = 'reamazejs_script';
1503      rmzScript.setAttribute('src', 'https://cdn.reamaze.com/assets/reamaze-loader.js');
1504      document.head.appendChild(rmzScript);
1505    }
1506    var _support = _support || { 'ui': {}, 'user': {} };
1507    _support.account = "j-and-j-dog-supplies";
1508
1509
1510  
1511
1512
1513
1514
1515//--- reamaze_embeddable_56486_s
1516// Embeddable - J&J Dog Supplies Chat / Contact Form Shoutbox
1517if (!document.querySelector('script[src=\'https://cdn.reamaze.com/assets/reamaze.js\']')) {
1518    var rmzScript = document.createElement('script');
1519    rmzScript.async = true;
1520    rmzScript.setAttribute('src', 'https://cdn.reamaze.com/assets/reamaze.js');
1521    document.head.appendChild(rmzScript);
1522  }
1523
1524  var _support = _support || { 'ui': {}, 'user': {} };
1525  _support['account'] = 'j-and-j-dog-supplies';
1526  _support['ui']['contactMode'] = 'mixed';
1527  _support['ui']['enableKb'] = 'false';
1528  _support['ui']['styles'] = {
1529    widgetColor: 'rgb(9, 156, 191)',
1530    gradient: true,
1531  };
1532  _support['ui']['shoutboxFacesMode'] = 'brand-avatar';
1533  _support['ui']['widget'] = {
1534    icon: 'chat',
1535    displayOn: 'all',
1536    fontSize: 'default',
1537    allowBotProcessing: true,
1538    label: false,
1539    position: {
1540      bottom: '10px',
1541      left: '10px'
1542    },
1543    size: '58',
1544    mobilePosition: {
1545      top: '22px',
1546      right: '83px'
1547    },
1548    mobileSize: '35'
1549  };
1550  _support['apps'] = {
1551    faq: {"enabled":false},
1552    recentConversations: {},
1553    orders: {"enabled":true}
1554  };
1555//--- reamaze_embeddable_56486_e
1556</script>
1556
1557  
1557<script type="77683c8daf3a83c7926e58dc-text/javascript">
1558  var _support = _support || { 'ui': {}, 'user': {} };
1559  _support['user'] = {
1560    email: '',
1561    name: '',
1562  };
1563  </script>
1563
1564  
1564<script type="77683c8daf3a83c7926e58dc-text/javascript">
1565</script>
1565<script type="77683c8daf3a83c7926e58dc-text/javascript">
1566</script>
vendor: 1 bytes, line 1566
1566
1567<script type="77683c8daf3a83c7926e58dc-text/javascript">function myInit(){ StampedFn.init({ apiKey: 'pubkey-TulFNkZbJ0Z75QFcX3MMaoO314Qhgk', sId: '156458' }); }</script>
vendor: 1 bytes, line 1567
1567
1568<script async onload="myInit()" type="77683c8daf3a83c7926e58dc-text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
1568<script type="77683c8daf3a83c7926e58dc-text/javascript">
1569</script>
1569
1570
1571<script async id='stamped-script-widget' data-store-hash='cftgfbe14j' src='https://cdn1.stamped.io/files/bigcommerce.min.js' type="77683c8daf3a83c7926e58dc-text/javascript"></script>
1571      
1571<script type="77683c8daf3a83c7926e58dc-text/javascript">
1572        (function() {
1573          window.shogunVariables = {};
1574          window.shogunVariables.orderId = '';
1575        })();
1576      </script>
vendor: 1 bytes, line 1576
1576
1577<script async src="https://dmt83xaifx31y.cloudfront.net/public/js/prikidsizecharts.js?v=44#store=cftgfbe14j" crossorigin="anonymous" type="77683c8daf3a83c7926e58dc-text/javascript"></script>
1577<script src='https://bundling.arizonreports.cloud/bundle/v1/fe/dist/main.js' data-product-id='' data-product-name='' data-hidden_token ='eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJjaWQiOlsxXSwiY29ycyI6WyJodHRwczovL3d3dy5qamRvZy5jb20iXSwiZWF0IjoxNzkwNTExMzExLCJpYXQiOjE3OTAzMzg1MTEsImlzcyI6IkJDIiwic2lkIjoxMDAwODk2MTMwLCJzdWIiOiJCQyIsInN1Yl90eXBlIjowLCJ0b2tlbl90eXBlIjoxfQ.yvIFcbAwS9p_dLvng3fBMlRqc5c9iUB0W3WViFo6ix0mcKp5lnRFA6TpO-OCYWxthGXVFy5SOwdCWnCxky959w' data-site='cftgfbe14j' data-cat='855' data-customer='' data-page='category' cart_type='' id='bundle' type="77683c8daf3a83c7926e58dc-text/javascript"></script>
1577<script type="77683c8daf3a83c7926e58dc-text/javascript">
1578(function () {
1579    'use strict';
1580
1581    if (window.RAMBackorderPdpPatchV6Loaded) {
1582        return;
1583    }
1584
1585    window.RAMBackorderPdpPatchV6Loaded = true;
1586
1587    window.RAMBackorderPdpPatchLoaded = true;
1588    window.RAMBackorderPdpPatchV2Loaded = true;
1589    window.RAMBackorderPdpPatchV3Loaded = true;
1590    window.RAMBackorderPdpPatchV4Loaded = true;
1591    window.RAMBackorderPdpPatchV5Loaded = true;
1592
1593    var ENABLE_LEGACY_10000_LOGIC = false;
1594    var DEBUG = false;
1595
1596    var DEFAULT_UNAVAILABLE_MESSAGE =
1597        'This product is unavailable with the selected options.';
1598
1599    var originalFetch = window.fetch;
1600    var originalXHROpen = window.XMLHttpRequest.prototype.open;
1601    var originalXHRSend = window.XMLHttpRequest.prototype.send;
1602
1603    var lastCurrentVariantResponseAt = 0;
1604    var fallbackTimer = null;
1605
1606
1607    function log() {
1608        if (!DEBUG || !window.console) {
1609            return;
1610        }
1611
1612        var args = Array.prototype.slice.call(arguments);
1613
1614        args.unshift('RAM Backorder V6:');
1615
1616        console.log.apply(console, args);
1617    }
1618
1619
1620    function getBackorderWrapper() {
1621        return document.getElementById(
1622            'custom-backorder-wrapper'
1623        );
1624    }
1625
1626
1627    function getAddToCartForm() {
1628        return document.querySelector(
1629            'form[data-cart-item-add]'
1630        );
1631    }
1632
1633
1634    function getProductView() {
1635        return document.querySelector(
1636            '.productView'
1637        ) || document;
1638    }
1639
1640
1641    function getProductId() {
1642        var input = document.querySelector(
1643            'form[data-cart-item-add] input[name="product_id"]'
1644        );
1645
1646        return input ? input.value : '';
1647    }
1648
1649
1650    function getInventoryValue() {
1651        var marker = document.querySelector(
1652            '[data-ram-inventory]'
1653        );
1654
1655        return marker
1656            ? String(
1657                marker.getAttribute(
1658                    'data-ram-inventory'
1659                ) || ''
1660            ).toLowerCase()
1661            : '';
1662    }
1663
1664
1665    function isBackorderProduct() {
1666        return getInventoryValue() === 'backorder';
1667    }
1668
1669
1670    function isBuiltToOrderProduct() {
1671        return getInventoryValue() === 'built-to-order';
1672    }
1673
1674
1675    function isDropshipProduct() {
1676        return getInventoryValue() === 'dropship';
1677    }
1678
1679
1680    function isDropProduct() {
1681        return getInventoryValue() === 'drop';
1682    }
1683
1684
1685    function getCurrentOptionSignature() {
1686        var form = getAddToCartForm();
1687
1688        if (!form) {
1689            return '';
1690        }
1691
1692        var optionArea = form.querySelector(
1693            '[data-product-option-change]'
1694        );
1695
1696        if (!optionArea) {
1697            return '';
1698        }
1699
1700        var elements = optionArea.querySelectorAll(
1701            'input[name], select[name], textarea[name]'
1702        );
1703
1704        var values = [];
1705
1706        elements.forEach(function (el) {
1707            if (
1708                (
1709                    el.type === 'radio' ||
1710                    el.type === 'checkbox'
1711                ) &&
1712                !el.checked
1713            ) {
1714                return;
1715            }
1716
1717            values.push(
1718                String(el.name) +
1719                '=' +
1720                String(el.value)
1721            );
1722        });
1723
1724        values.sort();
1725
1726        return values.join('&');
1727    }
1728
1729
1730    function isResponseStillCurrent(
1731        requestSignature
1732    ) {
1733        if (!requestSignature) {
1734            return true;
1735        }
1736
1737        return (
1738            requestSignature ===
1739            getCurrentOptionSignature()
1740        );
1741    }
1742
1743
1744    function parseStock(value) {
1745        if (
1746            value === undefined ||
1747            value === null ||
1748            value === ''
1749        ) {
1750            return null;
1751        }
1752
1753        var parsed = parseInt(
1754            value,
1755            10
1756        );
1757
1758        return Number.isNaN(parsed)
1759            ? null
1760            : parsed;
1761    }
1762
1763
1764    function parseAvailableToSell(value) {
1765        if (
1766            value === undefined ||
1767            value === null ||
1768            value === ''
1769        ) {
1770            return null;
1771        }
1772
1773        if (
1774            typeof value === 'string' &&
1775            value.trim().toLowerCase() === 'unlimited'
1776        ) {
1777            return Number.POSITIVE_INFINITY;
1778        }
1779
1780        var parsed = parseInt(
1781            value,
1782            10
1783        );
1784
1785        return Number.isNaN(parsed)
1786            ? null
1787            : parsed;
1788    }
1789
1790
1791    function isTruthy(value) {
1792        return (
1793            value === true ||
1794            value === 'true' ||
1795            value === 1 ||
1796            value === '1'
1797        );
1798    }
1799
1800
1801    function isFalsey(value) {
1802        return (
1803            value === false ||
1804            value === 'false' ||
1805            value === 0 ||
1806            value === '0'
1807        );
1808    }
1809
1810
1811    function isVisible(el) {
1812        if (!el) {
1813            return false;
1814        }
1815
1816        var style =
1817            window.getComputedStyle(el);
1818
1819        if (
1820            style.display === 'none' ||
1821            style.visibility === 'hidden' ||
1822            style.opacity === '0'
1823        ) {
1824            return false;
1825        }
1826
1827        return Boolean(
1828            el.offsetWidth ||
1829            el.offsetHeight ||
1830            el.getClientRects().length
1831        );
1832    }
1833
1834
1835    function normalizeMessage(value) {
1836        return String(
1837            value || ''
1838        ).trim();
1839    }
1840
1841
1842    function isStockOnlyMessage(value) {
1843        var text =
1844            normalizeMessage(value)
1845                .toLowerCase();
1846
1847        if (!text) {
1848            return false;
1849        }
1850
1851        return (
1852            text.indexOf('out of stock') !== -1 ||
1853            text.indexOf('sold out') !== -1
1854        );
1855    }
1856
1857
1858    function getOnHandValue(data) {
1859        if (!data) {
1860            return null;
1861        }
1862
1863        if (
1864            data.available_on_hand !== undefined &&
1865            data.available_on_hand !== null &&
1866            data.available_on_hand !== ''
1867        ) {
1868            return parseStock(
1869                data.available_on_hand
1870            );
1871        }
1872
1873        if (
1874            data.stock !== undefined &&
1875            data.stock !== null &&
1876            data.stock !== ''
1877        ) {
1878            return parseStock(
1879                data.stock
1880            );
1881        }
1882
1883        return null;
1884    }
1885
1886
1887    function getAvailableToSellValue(data) {
1888        if (!data) {
1889            return null;
1890        }
1891
1892        if (
1893            data.unlimited_backorder === true ||
1894            data.unlimited_backorder === 'true'
1895        ) {
1896            return Number.POSITIVE_INFINITY;
1897        }
1898
1899        if (
1900            data.available_to_sell !== undefined &&
1901            data.available_to_sell !== null &&
1902            data.available_to_sell !== ''
1903        ) {
1904            return parseAvailableToSell(
1905                data.available_to_sell
1906            );
1907        }
1908
1909        return null;
1910    }
1911
1912
1913    function serializeForm(form) {
1914        var pairs = [];
1915
1916        var elements =
1917            form.querySelectorAll(
1918                'input, select, textarea'
1919            );
1920
1921        elements.forEach(function (el) {
1922
1923            if (!el.name) {
1924                return;
1925            }
1926
1927            if (
1928                (
1929                    el.type === 'checkbox' ||
1930                    el.type === 'radio'
1931                ) &&
1932                !el.checked
1933            ) {
1934                return;
1935            }
1936
1937            pairs.push(
1938                encodeURIComponent(el.name) +
1939                '=' +
1940                encodeURIComponent(el.value)
1941            );
1942        });
1943
1944        return pairs.join('&');
1945    }
1946
1947
1948    function hasVisibleAddToCartButton() {
1949        var form =
1950            getAddToCartForm();
1951
1952        if (!form) {
1953            return false;
1954        }
1955
1956        var buttons =
1957            form.querySelectorAll(
1958                '#form-action-addToCart, ' +
1959                'input[name="form-action-addToCart"], ' +
1960                'input[type="submit"], ' +
1961                'button[type="submit"]'
1962            );
1963
1964        for (
1965            var i = 0;
1966            i < buttons.length;
1967            i += 1
1968        ) {
1969            var button =
1970                buttons[i];
1971
1972            var text = String(
1973                button.value ||
1974                button.textContent ||
1975                ''
1976            ).toLowerCase();
1977
1978            if (
1979                text.indexOf('add to cart') !== -1 &&
1980                isVisible(button) &&
1981                !button.disabled &&
1982                button.getAttribute('disabled') === null
1983            ) {
1984                return true;
1985            }
1986        }
1987
1988        return false;
1989    }
1990
1991
1992    function hasVisibleNativeOutOfStockNotice() {
1993        var form =
1994            getAddToCartForm();
1995
1996        var scope =
1997            form ||
1998            getProductView();
1999
2000        var alerts =
2001            scope.querySelectorAll(
2002                '.alertBox, .alertBox--error'
2003            );
2004
2005        for (
2006            var i = 0;
2007            i < alerts.length;
2008            i += 1
2009        ) {
2010            var alert =
2011                alerts[i];
2012
2013            if (
2014                alert.classList.contains(
2015                    'ram-drop-oos-notice'
2016                ) ||
2017                alert.classList.contains(
2018                    'ram-unavailable-notice'
2019                ) ||
2020                alert.closest(
2021                    '[data-ram-drop-oos-notice]'
2022                )
2023            ) {
2024                continue;
2025            }
2026
2027            var text =
2028                String(
2029                    alert.textContent || ''
2030                ).toLowerCase();
2031
2032            if (
2033                isVisible(alert) &&
2034                (
2035                    text.indexOf('out of stock') !== -1 ||
2036                    text.indexOf('sold out') !== -1
2037                )
2038            ) {
2039                return true;
2040            }
2041        }
2042
2043        return false;
2044    }
2045
2046
2047    function getVariantMessageBox() {
2048        var form =
2049            getAddToCartForm();
2050
2051        return form
2052            ? form.querySelector(
2053                '.productAttributes-message'
2054            )
2055            : null;
2056    }
2057
2058
2059    function getVariantMessageTextElement(
2060        box
2061    ) {
2062        if (!box) {
2063            return null;
2064        }
2065
2066        return box.querySelector(
2067            '.alertBox-message'
2068        );
2069    }
2070
2071
2072    function hasResolvedVariant(data) {
2073        if (!data) {
2074            return false;
2075        }
2076
2077        var variantId =
2078            data.variantId !== undefined
2079                ? data.variantId
2080                : data.variant_id;
2081
2082        var hasVariantId =
2083            variantId !== undefined &&
2084            variantId !== null &&
2085            variantId !== '' &&
2086            String(variantId) !== '0';
2087
2088        var hasSku =
2089            data.sku !== undefined &&
2090            data.sku !== null &&
2091            String(data.sku).trim() !== '';
2092
2093        return (
2094            hasVariantId ||
2095            hasSku
2096        );
2097    }
2098
2099
2100    function getUnavailableMessage(data) {
2101        if (
2102            !data ||
2103            !isFalsey(
2104                data.purchasable
2105            )
2106        ) {
2107            return '';
2108        }
2109
2110        var purchasingMessage =
2111            normalizeMessage(
2112                data.purchasing_message
2113            );
2114
2115        if (
2116            purchasingMessage &&
2117            !isStockOnlyMessage(
2118                purchasingMessage
2119            )
2120        ) {
2121            return purchasingMessage;
2122        }
2123
2124        if (
2125            !hasResolvedVariant(data)
2126        ) {
2127            return DEFAULT_UNAVAILABLE_MESSAGE;
2128        }
2129
2130        return '';
2131    }
2132
2133
2134    function isUnavailableCombination(data) {
2135        return Boolean(
2136            getUnavailableMessage(data)
2137        );
2138    }
2139
2140
2141    function getOrCreateUnavailableFallbackNotice() {
2142        var form =
2143            getAddToCartForm();
2144
2145        if (!form) {
2146            return null;
2147        }
2148
2149        var existing =
2150            form.querySelector(
2151                '[data-ram-unavailable-notice]'
2152            );
2153
2154        if (existing) {
2155            return existing;
2156        }
2157
2158        var notice =
2159            document.createElement('div');
2160
2161        notice.className =
2162            'alertBox alertBox--error ram-unavailable-notice';
2163
2164        notice.setAttribute(
2165            'data-ram-unavailable-notice',
2166            'true'
2167        );
2168
2169        notice.style.setProperty(
2170            'display',
2171            'none',
2172            'important'
2173        );
2174
2175        notice.innerHTML =
2176            '<div class="alertBox-column alertBox-icon">' +
2177                '<icon glyph="ic-error" class="icon" aria-hidden="true">' +
2178                    '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">' +
2179                        '<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"></path>' +
2180                    '</svg>' +
2181                '</icon>' +
2182            '</div>' +
2183            '<p class="alertBox-column alertBox-message"></p>';
2184
2185        var wrapper =
2186            getBackorderWrapper();
2187
2188        var addButton =
2189            form.querySelector(
2190                '#form-action-addToCart'
2191            );
2192
2193        var buttonContainer =
2194            addButton
2195                ? addButton.closest(
2196                    '.add-to-cart-buttons'
2197                )
2198                : null;
2199
2200        if (buttonContainer) {
2201
2202            buttonContainer
2203                .insertAdjacentElement(
2204                    'beforebegin',
2205                    notice
2206                );
2207
2208        } else if (wrapper) {
2209
2210            wrapper
2211                .insertAdjacentElement(
2212                    'afterend',
2213                    notice
2214                );
2215
2216        } else {
2217
2218            form.appendChild(
2219                notice
2220            );
2221        }
2222
2223        return notice;
2224    }
2225
2226
2227    function hideFallbackUnavailableNotice() {
2228        var notice =
2229            document.querySelector(
2230                '[data-ram-unavailable-notice]'
2231            );
2232
2233        if (notice) {
2234            notice.style.setProperty(
2235                'display',
2236                'none',
2237                'important'
2238            );
2239        }
2240    }
2241
2242
2243    function hideStockMessagesForUnavailable(
2244        exceptElement
2245    ) {
2246        var form =
2247            getAddToCartForm();
2248
2249        if (!form) {
2250            return;
2251        }
2252
2253        var alerts =
2254            form.querySelectorAll(
2255                '.alertBox, .alertBox--error'
2256            );
2257
2258        alerts.forEach(
2259            function (alert) {
2260
2261                if (
2262                    alert === exceptElement ||
2263                    alert.classList.contains(
2264                        'ram-unavailable-notice'
2265                    ) ||
2266                    alert.classList.contains(
2267                        'ram-drop-oos-notice'
2268                    )
2269                ) {
2270                    return;
2271                }
2272
2273                var text =
2274                    String(
2275                        alert.textContent || ''
2276                    ).toLowerCase();
2277
2278                if (
2279                    text.indexOf('out of stock') !== -1 ||
2280                    text.indexOf('sold out') !== -1
2281                ) {
2282                    alert.style.setProperty(
2283                        'display',
2284                        'none',
2285                        'important'
2286                    );
2287
2288                    alert.setAttribute(
2289                        'data-ram-hidden-stock-message',
2290                        'true'
2291                    );
2292                }
2293            }
2294        );
2295    }
2296
2297
2298    function restoreStockMessages() {
2299        var alerts =
2300            document.querySelectorAll(
2301                '[data-ram-hidden-stock-message]'
2302            );
2303
2304        alerts.forEach(
2305            function (alert) {
2306
2307                alert.style.removeProperty(
2308                    'display'
2309                );
2310
2311                alert.removeAttribute(
2312                    'data-ram-hidden-stock-message'
2313                );
2314            }
2315        );
2316    }
2317
2318
2319    function prepareForOptionChange() {
2320        clearTimeout(
2321            window.RAMUnavailableFinalPass
2322        );
2323
2324        var form =
2325            getAddToCartForm();
2326
2327        if (form) {
2328            form.classList.remove(
2329                'is-unavailable-combination-state'
2330            );
2331        }
2332
2333        var box =
2334            getVariantMessageBox();
2335
2336        if (
2337            box &&
2338            box.hasAttribute(
2339                'data-ram-unavailable-message'
2340            )
2341        ) {
2342            box.style.setProperty(
2343                'display',
2344                'none',
2345                'important'
2346            );
2347
2348            box.removeAttribute(
2349                'data-ram-unavailable-message'
2350            );
2351
2352            var text =
2353                getVariantMessageTextElement(
2354                    box
2355                );
2356
2357            if (text) {
2358                text.textContent = '';
2359            }
2360        }
2361
2362        hideFallbackUnavailableNotice();
2363
2364        var wrapper =
2365            getBackorderWrapper();
2366
2367        if (wrapper) {
2368            wrapper.style.display =
2369                'none';
2370        }
2371
2372        if (form) {
2373            form.classList.remove(
2374                'is-backordered-state'
2375            );
2376        }
2377    }
2378
2379
2380    function clearUnavailableState() {
2381        clearTimeout(
2382            window.RAMUnavailableFinalPass
2383        );
2384
2385        var form =
2386            getAddToCartForm();
2387
2388        if (form) {
2389            form.classList.remove(
2390                'is-unavailable-combination-state'
2391            );
2392        }
2393
2394        restoreStockMessages();
2395
2396        hideFallbackUnavailableNotice();
2397
2398        var box =
2399            getVariantMessageBox();
2400
2401        if (
2402            box &&
2403            box.hasAttribute(
2404                'data-ram-unavailable-message'
2405            )
2406        ) {
2407            box.style.setProperty(
2408                'display',
2409                'none',
2410                'important'
2411            );
2412
2413            box.removeAttribute(
2414                'data-ram-unavailable-message'
2415            );
2416
2417            var text =
2418                getVariantMessageTextElement(
2419                    box
2420                );
2421
2422            if (text) {
2423                text.textContent = '';
2424            }
2425        }
2426    }
2427
2428
2429    function showUnavailableCombination(
2430        data
2431    ) {
2432        var form =
2433            getAddToCartForm();
2434
2435        if (!form) {
2436            return;
2437        }
2438
2439        var wrapper =
2440            getBackorderWrapper();
2441
2442        var message =
2443            getUnavailableMessage(data) ||
2444            DEFAULT_UNAVAILABLE_MESSAGE;
2445
2446        form.classList.remove(
2447            'is-backordered-state'
2448        );
2449
2450        form.classList.remove(
2451            'is-dropship-state'
2452        );
2453
2454        form.classList.add(
2455            'is-unavailable-combination-state'
2456        );
2457
2458        if (wrapper) {
2459            wrapper.style.display =
2460                'none';
2461        }
2462
2463        var box =
2464            getVariantMessageBox();
2465
2466        if (box) {
2467
2468            hideStockMessagesForUnavailable(
2469                box
2470            );
2471
2472            var text =
2473                getVariantMessageTextElement(
2474                    box
2475                );
2476
2477            if (text) {
2478                text.textContent =
2479                    message;
2480            }
2481
2482            box.setAttribute(
2483                'data-ram-unavailable-message',
2484                'true'
2485            );
2486
2487            box.style.setProperty(
2488                'display',
2489                'flex',
2490                'important'
2491            );
2492
2493            hideFallbackUnavailableNotice();
2494
2495        } else {
2496
2497            hideStockMessagesForUnavailable(
2498                null
2499            );
2500
2501            var fallback =
2502                getOrCreateUnavailableFallbackNotice();
2503
2504            if (fallback) {
2505
2506                var fallbackText =
2507                    fallback.querySelector(
2508                        '.alertBox-message'
2509                    );
2510
2511                if (fallbackText) {
2512                    fallbackText.textContent =
2513                        message;
2514                }
2515
2516                fallback.style.setProperty(
2517                    'display',
2518                    'flex',
2519                    'important'
2520                );
2521            }
2522        }
2523
2524        clearTimeout(
2525            window.RAMUnavailableFinalPass
2526        );
2527
2528        window.RAMUnavailableFinalPass =
2529            setTimeout(
2530                function () {
2531
2532                    var currentForm =
2533                        getAddToCartForm();
2534
2535                    if (
2536                        !currentForm ||
2537                        !currentForm
2538                            .classList
2539                            .contains(
2540                                'is-unavailable-combination-state'
2541                            )
2542                    ) {
2543                        return;
2544                    }
2545
2546                    var currentBox =
2547                        getVariantMessageBox();
2548
2549                    if (currentBox) {
2550
2551                        var currentText =
2552                            getVariantMessageTextElement(
2553                                currentBox
2554                            );
2555
2556                        if (currentText) {
2557                            currentText.textContent =
2558                                message;
2559                        }
2560
2561                        hideStockMessagesForUnavailable(
2562                            currentBox
2563                        );
2564
2565                        currentBox.style.setProperty(
2566                            'display',
2567                            'flex',
2568                            'important'
2569                        );
2570                    }
2571
2572                },
2573                100
2574            );
2575    }
2576
2577
2578    function syncNativeVariantMessage(data) {
2579        var box =
2580            getVariantMessageBox();
2581
2582        if (!box || !data) {
2583            return;
2584        }
2585
2586        var message =
2587            normalizeMessage(
2588                data.stock_message
2589            ) ||
2590            normalizeMessage(
2591                data.purchasing_message
2592            );
2593
2594        var text =
2595            getVariantMessageTextElement(
2596                box
2597            );
2598
2599        if (!message) {
2600
2601            if (text) {
2602                text.textContent = '';
2603            }
2604
2605            box.style.setProperty(
2606                'display',
2607                'none',
2608                'important'
2609            );
2610
2611            return;
2612        }
2613
2614        if (text) {
2615            text.textContent =
2616                message;
2617        }
2618
2619        box.style.removeProperty(
2620            'display'
2621        );
2622    }
2623
2624
2625    function applyDropshipState() {
2626        var form =
2627            getAddToCartForm();
2628
2629        var wrapper =
2630            getBackorderWrapper();
2631
2632        if (!form) {
2633            return;
2634        }
2635
2636        if (isDropshipProduct()) {
2637
2638            clearUnavailableState();
2639
2640            form.classList.add(
2641                'is-dropship-state'
2642            );
2643
2644            form.classList.remove(
2645                'is-backordered-state'
2646            );
2647
2648            if (wrapper) {
2649                wrapper.style.display =
2650                    'none';
2651            }
2652
2653            return;
2654        }
2655
2656        form.classList.remove(
2657            'is-dropship-state'
2658        );
2659    }
2660
2661
2662    function setMessageState(
2663        shouldShowWrapper
2664    ) {
2665        var wrapper =
2666            getBackorderWrapper();
2667
2668        var form =
2669            getAddToCartForm();
2670
2671        applyDropshipState();
2672
2673        if (isDropshipProduct()) {
2674            return;
2675        }
2676
2677        if (isDropProduct()) {
2678
2679            if (wrapper) {
2680                wrapper.style.display =
2681                    'none';
2682            }
2683
2684            if (form) {
2685                form.classList.remove(
2686                    'is-backordered-state'
2687                );
2688
2689                form.classList.remove(
2690                    'is-dropship-state'
2691                );
2692            }
2693
2694            return;
2695        }
2696
2697        if (!wrapper) {
2698            return;
2699        }
2700
2701        if (shouldShowWrapper) {
2702
2703            wrapper.style.display =
2704                'block';
2705
2706            if (form) {
2707                form.classList.add(
2708                    'is-backordered-state'
2709                );
2710
2711                form.classList.remove(
2712                    'is-dropship-state'
2713                );
2714            }
2715
2716            return;
2717        }
2718
2719        wrapper.style.display =
2720            'none';
2721
2722        if (form) {
2723            form.classList.remove(
2724                'is-backordered-state'
2725            );
2726
2727            form.classList.remove(
2728                'is-dropship-state'
2729            );
2730        }
2731    }
2732
2733
2734    function isLegacyBackorder(
2735        stockVal
2736    ) {
2737        if (
2738            !ENABLE_LEGACY_10000_LOGIC
2739        ) {
2740            return false;
2741        }
2742
2743        return (
2744            stockVal !== null &&
2745            stockVal > 0 &&
2746            stockVal <= 10000
2747        );
2748    }
2749
2750
2751    function shouldShowBackorderFromData(
2752        data
2753    ) {
2754        if (
2755            !isBackorderProduct() ||
2756            !data ||
2757            !isTruthy(
2758                data.purchasable
2759            )
2760        ) {
2761            return false;
2762        }
2763
2764        var onHand =
2765            getOnHandValue(data);
2766
2767        var availableToSell =
2768            getAvailableToSellValue(data);
2769
2770        var instockFalse =
2771            isFalsey(
2772                data.instock
2773            );
2774
2775        if (
2776            availableToSell !== null
2777        ) {
2778            return (
2779                availableToSell > 0 &&
2780                (
2781                    onHand === 0 ||
2782                    (
2783                        onHand === null &&
2784                        instockFalse
2785                    )
2786                )
2787            );
2788        }
2789
2790        return (
2791            (
2792                onHand === 0 ||
2793                instockFalse
2794            ) ||
2795            isLegacyBackorder(
2796                onHand
2797            )
2798        );
2799    }
2800
2801
2802    function shouldShowBuiltToOrderFromData(
2803        data
2804    ) {
2805        if (
2806            !isBuiltToOrderProduct() ||
2807            !data ||
2808            !isTruthy(
2809                data.purchasable
2810            )
2811        ) {
2812            return false;
2813        }
2814
2815        var onHand =
2816            getOnHandValue(data);
2817
2818        var instockFalse =
2819            isFalsey(
2820                data.instock
2821            );
2822
2823        return (
2824            onHand === null ||
2825            onHand === 0 ||
2826            instockFalse
2827        );
2828    }
2829
2830
2831    function shouldShowBackorderFromDomState() {
2832        return (
2833            isBackorderProduct() &&
2834            hasVisibleAddToCartButton() &&
2835            hasVisibleNativeOutOfStockNotice()
2836        );
2837    }
2838
2839
2840    function shouldShowBuiltToOrderFromDomState() {
2841        return (
2842            isBuiltToOrderProduct() &&
2843            hasVisibleAddToCartButton() &&
2844            hasVisibleNativeOutOfStockNotice()
2845        );
2846    }
2847
2848
2849    function evaluateProductAttributesData(
2850        data,
2851        requestSignature
2852    ) {
2853        if (!data) {
2854            return;
2855        }
2856
2857        if (
2858            !isResponseStillCurrent(
2859                requestSignature
2860            )
2861        ) {
2862            log(
2863                'Ignoring stale variant response',
2864                requestSignature,
2865                getCurrentOptionSignature()
2866            );
2867
2868            return;
2869        }
2870
2871        lastCurrentVariantResponseAt =
2872            Date.now();
2873
2874
2875        if (isDropshipProduct()) {
2876            applyDropshipState();
2877            return;
2878        }
2879
2880
2881        if (isDropProduct()) {
2882            clearUnavailableState();
2883            setMessageState(false);
2884            return;
2885        }
2886
2887
2888        if (
2889            (
2890                isBackorderProduct() ||
2891                isBuiltToOrderProduct()
2892            ) &&
2893            isUnavailableCombination(
2894                data
2895            )
2896        ) {
2897            showUnavailableCombination(
2898                data
2899            );
2900
2901            return;
2902        }
2903
2904
2905        clearUnavailableState();
2906
2907        syncNativeVariantMessage(
2908            data
2909        );
2910
2911
2912        if (
2913            isBuiltToOrderProduct()
2914        ) {
2915            setMessageState(
2916                shouldShowBuiltToOrderFromData(
2917                    data
2918                ) ||
2919                shouldShowBuiltToOrderFromDomState()
2920            );
2921
2922            return;
2923        }
2924
2925
2926        if (
2927            isBackorderProduct()
2928        ) {
2929            setMessageState(
2930                shouldShowBackorderFromData(
2931                    data
2932                ) ||
2933                shouldShowBackorderFromDomState()
2934            );
2935
2936            return;
2937        }
2938
2939        setMessageState(false);
2940    }
2941
2942
2943    function evaluateInitialTemplateData() {
2944        var wrapper =
2945            getBackorderWrapper();
2946
2947        applyDropshipState();
2948
2949        if (
2950            isDropshipProduct() ||
2951            isDropProduct() ||
2952            !wrapper
2953        ) {
2954            return;
2955        }
2956
2957        var rawStock =
2958            wrapper.getAttribute(
2959                'data-stock'
2960            );
2961
2962        var stockVal =
2963            parseStock(
2964                rawStock
2965            );
2966
2967        var canPurchase =
2968            isTruthy(
2969                wrapper.getAttribute(
2970                    'data-can-purchase'
2971                )
2972            );
2973
2974        if (
2975            isBuiltToOrderProduct()
2976        ) {
2977            setMessageState(
2978                canPurchase &&
2979                (
2980                    stockVal === 0 ||
2981                    stockVal === null
2982                )
2983            );
2984
2985            return;
2986        }
2987
2988        if (
2989            isBackorderProduct()
2990        ) {
2991            setMessageState(
2992                canPurchase &&
2993                stockVal === 0
2994            );
2995        }
2996    }
2997
2998
2999    function fallbackVariantRequest(
3000        changeStartedAt,
3001        expectedSignature
3002    ) {
3003        if (
3004            expectedSignature !==
3005            getCurrentOptionSignature()
3006        ) {
3007            return;
3008        }
3009
3010        if (
3011            lastCurrentVariantResponseAt >=
3012            changeStartedAt
3013        ) {
3014            return;
3015        }
3016
3017        var form =
3018            getAddToCartForm();
3019
3020        var productId =
3021            getProductId();
3022
3023        if (
3024            !form ||
3025            !productId ||
3026            isDropshipProduct() ||
3027            isDropProduct()
3028        ) {
3029            return;
3030        }
3031
3032        originalFetch(
3033            '/remote/v1/product-attributes/' +
3034            productId,
3035            {
3036                method: 'POST',
3037                credentials: 'include',
3038                headers: {
3039                    'content-type':
3040                        'application/x-www-form-urlencoded; charset=UTF-8',
3041                    'x-requested-with':
3042                        'stencil-utils'
3043                },
3044                body:
3045                    serializeForm(form)
3046            }
3047        )
3048        .then(
3049            function (response) {
3050                return response
3051                    .clone()
3052                    .json();
3053            }
3054        )
3055        .then(
3056            function (payload) {
3057
3058                if (
3059                    expectedSignature !==
3060                    getCurrentOptionSignature()
3061                ) {
3062                    return;
3063                }
3064
3065                if (
3066                    payload &&
3067                    payload.data
3068                ) {
3069                    evaluateProductAttributesData(
3070                        payload.data,
3071                        expectedSignature
3072                    );
3073                }
3074            }
3075        )
3076        .catch(
3077            function (error) {
3078                log(
3079                    'Fallback request failed',
3080                    error
3081                );
3082            }
3083        );
3084    }
3085
3086
3087    function handleOptionChange() {
3088        prepareForOptionChange();
3089
3090        var startedAt =
3091            Date.now();
3092
3093        var expectedSignature =
3094            getCurrentOptionSignature();
3095
3096        clearTimeout(
3097            fallbackTimer
3098        );
3099
3100        fallbackTimer =
3101            setTimeout(
3102                function () {
3103                    fallbackVariantRequest(
3104                        startedAt,
3105                        expectedSignature
3106                    );
3107                },
3108                700
3109            );
3110    }
3111
3112
3113    window.fetch =
3114        function () {
3115
3116            var args =
3117                arguments;
3118
3119            var url =
3120                args[0] &&
3121                typeof args[0] === 'string'
3122                    ? args[0]
3123                    : args[0] &&
3124                      args[0].url
3125                        ? args[0].url
3126                        : '';
3127
3128            var requestSignature =
3129                url.includes(
3130                    '/remote/v1/product-attributes/'
3131                )
3132                    ? getCurrentOptionSignature()
3133                    : '';
3134
3135            var promise =
3136                originalFetch.apply(
3137                    this,
3138                    args
3139                );
3140
3141            if (
3142                !url.includes(
3143                    '/remote/v1/product-attributes/'
3144                )
3145            ) {
3146                return promise;
3147            }
3148
3149            return promise.then(
3150                function (response) {
3151
3152                    response
3153                        .clone()
3154                        .json()
3155                        .then(
3156                            function (payload) {
3157
3158                                if (
3159                                    payload &&
3160                                    payload.data
3161                                ) {
3162                                    evaluateProductAttributesData(
3163                                        payload.data,
3164                                        requestSignature
3165                                    );
3166                                }
3167                            }
3168                        )
3169                        .catch(
3170                            function () {
3171                                // Native request continues normally.
3172                            }
3173                        );
3174
3175                    return response;
3176                }
3177            );
3178        };
3179
3180
3181    window.XMLHttpRequest.prototype.open =
3182        function (
3183            method,
3184            url
3185        ) {
3186            this._ramBackorderUrl =
3187                url;
3188
3189            return originalXHROpen.apply(
3190                this,
3191                arguments
3192            );
3193        };
3194
3195
3196    window.XMLHttpRequest.prototype.send =
3197        function () {
3198
3199            if (
3200                this._ramBackorderUrl &&
3201                String(
3202                    this._ramBackorderUrl
3203                ).includes(
3204                    '/remote/v1/product-attributes/'
3205                )
3206            ) {
3207                this._ramOptionSignature =
3208                    getCurrentOptionSignature();
3209
3210                this.addEventListener(
3211                    'load',
3212                    function () {
3213
3214                        try {
3215
3216                            var payload =
3217                                JSON.parse(
3218                                    this.responseText
3219                                );
3220
3221                            if (
3222                                payload &&
3223                                payload.data
3224                            ) {
3225                                evaluateProductAttributesData(
3226                                    payload.data,
3227                                    this._ramOptionSignature
3228                                );
3229                            }
3230
3231                        } catch (error) {
3232                            // Ignore inspection errors.
3233                        }
3234                    }
3235                );
3236            }
3237
3238            return originalXHRSend.apply(
3239                this,
3240                arguments
3241            );
3242        };
3243
3244
3245    evaluateInitialTemplateData();
3246
3247
3248    document.addEventListener(
3249        'change',
3250        function (event) {
3251
3252            if (
3253                event.target.closest(
3254                    '[data-product-option-change]'
3255                ) ||
3256                event.target.matches(
3257                    'select'
3258                ) ||
3259                event.target.matches(
3260                    'input[type="radio"]'
3261                ) ||
3262                event.target.matches(
3263                    'input[type="checkbox"]'
3264                ) ||
3265                event.target.matches(
3266                    'input[name^="attribute"]'
3267                )
3268            ) {
3269                handleOptionChange();
3270            }
3271        },
3272        true
3273    );
3274
3275})();
3276</script>
3276<script type="77683c8daf3a83c7926e58dc-text/javascript">
3277 var css = `.z-intl .previewCartCheckout-additionalCheckoutButtons, .z-intl .previewCart-additionalCheckoutButtons, .z-intl  .cart-additionalCheckoutButtons, .z-intl div.container > div > main > div:nth-child(6) > ul > li:nth-child(2), .z-intl div.container > div > main > div:nth-child(6) > ul > li:nth-child(4){
3278           display: none;
3279           }`;  //use string templates for cleaner css code - ES6 String templates
3280 head = document.head || document.getElementsByTagName('head')[0],
3281 style = document.createElement('style');
3282 style.type = 'text/css';
3283 if (style.styleSheet){
3284 style.styleSheet.cssText = css;
3285 } else {
3286 style.appendChild(document.createTextNode(css));
3287 }
3288 head.appendChild(style);
3289  </script>
3289<script type="77683c8daf3a83c7926e58dc-text/javascript">(async function () {
3290  const zonosElementsUrl = 'https://cdn.jsdelivr.net/npm/@zonos/elements';
3291  const timestamp = new Date().getTime();
3292  const zonosScript = document.querySelector(
3293    `script[src*="${zonosElementsUrl}/dist/scripts/loadZonos.js"]`,
3294  );
3295  const zonosRouteUrl = 'https://alpha.route.js.zonos.com';
3296
3297  const baseZonosHeaders = {
3298    Accept: 'application/json',
3299    'Content-Type': 'application/json',
3300    'Zonos-Is-BigCommerce': 'true',
3301    'Zonos-Referer': window.location.hostname,
3302    'Zonos-Store-Id': '542',
3303  };
3304
3305  const inventoryCheckEnabled = 'false' === 'true';
3306  const testModeEnabled = 'false' === 'true';
3307
3308  // If testMode is not enabled, the script should always be enabled, or if testMode is enabled, the script should be enabled if the url includes 'zonos=true' or 'zonos=1'
3309  const shouldEnableZonos = !testModeEnabled || (window.location.search.includes('zonos=true') || window.location.search.includes('zonos=1'));
3310
3311  if (!zonosScript && shouldEnableZonos) {
3312    const script = document.createElement('script');
3313    script.src = `${zonosElementsUrl}/dist/scripts/loadZonos.js?timestamp=${timestamp}`;
3314    script.addEventListener(
3315      'load',
3316      () => {
3317        const getCart = async () => {
3318          const options = {
3319            headers: { 'Content-Type': 'application/json' },
3320            method: 'GET',
3321          };
3322          const result = await fetch('/api/storefront/carts', options);
3323          const [data] = await result.json();
3324          const { digitalItems, physicalItems } = data.lineItems;
3325          const cartDiscount = data.discountAmount;
3326
3327          return {
3328            cartDiscount,
3329            cartId: data.id,
3330            coupons: data.coupons,
3331            currencyCode: data.currency.code,
3332            items: [...digitalItems, ...physicalItems],
3333          };
3334        };
3335
3336        void window.Zonos.init({
3337          checkoutSettings: {
3338            bigCommerceConfig: {
3339              storeHash: 'cftgfbe14j',
3340            },
3341            buildCartDetail: async () => {
3342              const { cartDiscount, cartId, coupons, currencyCode, items } =
3343                await getCart();
3344              const zonosItems = items.map(item => ({
3345                amount: item.salePrice,
3346                cartId,
3347                currencyCode,
3348                imageUrl: item.imageUrl,
3349                metadata: [],
3350                name: item.name,
3351                productId: item.productId.toString(),
3352                quantity: item.quantity,
3353                sku: item.sku,
3354              }));
3355
3356              const couponItems = coupons
3357                .map(({ code, discountedAmount }) => {
3358                  if (discountedAmount > 0) {
3359                    return {
3360                      amount: -discountedAmount,
3361                      cartId,
3362                      currencyCode,
3363                      imageUrl: '',
3364                      metadata: [],
3365                      name: code,
3366                      productId: '',
3367                      quantity: 1,
3368                      sku: '',
3369                    };
3370                  }
3371                  return null;
3372                })
3373                .filter(Boolean);
3374
3375              const allItems = [...zonosItems, ...couponItems];
3376
3377              if (cartDiscount > 0) {
3378                const cartDiscountItem = {
3379                  amount: -cartDiscount,
3380                  cartId,
3381                  currencyCode,
3382                  imageUrl: '',
3383                  metadata: [],
3384                  name: 'Discount Applied',
3385                  productId: '',
3386                  quantity: 1,
3387                  sku: '',
3388                };
3389                allItems.push(cartDiscountItem);
3390              }
3391
3392              return allItems;
3393            },
3394            buildLandedCost: async ({
3395              billingAddress,
3396              billingContact,
3397              checkoutSessionId,
3398              contact,
3399              shippingAddress,
3400              zonosApiRoute,
3401            }, helpers) => {
3402              const zonosHeaders = {
3403                ...baseZonosHeaders,
3404                credentialToken: window.Zonos.zonosApiKey || 'credential_live_e4d32559-cc9d-4a27-b83c-3c9c9b8926eb',
3405              }              
3406              const { cartId } = await getCart();
3407              const body = {
3408                billingAddress,
3409                billingContact,
3410                cartId,
3411                promoCode: helpers?.promoCode,
3412                checkoutSessionId,
3413                contact,
3414                shippingAddress,
3415                storeHash: 'cftgfbe14j',
3416              };
3417
3418              const options = {
3419                body: JSON.stringify(body),
3420                headers: zonosHeaders,
3421                method: 'POST',
3422              };
3423
3424              try {
3425                const landedCost = await fetch(
3426                  `${zonosApiRoute}/api/bigcommerce/build-landed-cost`,
3427                  options,
3428                );
3429                const json = await landedCost.json();
3430
3431                return json;
3432              } catch (e) {
3433                console.error('Error building landed cost', e);
3434                return null;
3435              }
3436            },
3437            onInventoryCheck: async (_, { zonosApiRoute, translate }) => {
3438              if (!inventoryCheckEnabled) {
3439                return null;
3440              }
3441              const zonosHeaders = {
3442                ...baseZonosHeaders,
3443                credentialToken: window.Zonos.zonosApiKey || 'credential_live_e4d32559-cc9d-4a27-b83c-3c9c9b8926eb',
3444              }
3445              try {
3446                const { cartId } = await getCart();
3447                const result = await fetch(`${zonosApiRoute || zonosRouteUrl}/api/bigcommerce/inventory-check`, {
3448                  body: JSON.stringify({ cartId, storeHash: 'cftgfbe14j' }),
3449                  headers: zonosHeaders,
3450                  method: 'POST',
3451                });
3452                const data = await result.json();
3453                const outOfStockItems = data.outOfStockItems.filter(
3453Boolean).join(', ');
3454                if (outOfStockItems) {
3455                  return translate?.('"[itemName]" is out of stock. Please remove it from your cart and try again.', {
3456                    itemName: outOfStockItems,
3457                  }) || `"${outOfStockItems}" is out of stock. Please remove it from your cart and try again.`;
3458                }
3459                return null;
3460              } catch (err) {
3461                console.error('Error checking inventory', err);
3462                return null;
3463              }
3464            },
3465            onOrderSuccess: async ({ zonosApiRoute, zonosOrder }) => {
3466              const zonosHeaders = {
3467                ...baseZonosHeaders,
3468                credentialToken: window.Zonos.zonosApiKey || 'credential_live_e4d32559-cc9d-4a27-b83c-3c9c9b8926eb',
3469              }
3470              
3471              const body = {
3472                orderId: zonosOrder.id,
3473              };
3474              const options = {
3475                body: JSON.stringify(body),
3476                headers: zonosHeaders,
3477                method: 'POST',
3478              };
3479              await fetch(
3480                `${zonosApiRoute}/api/bigcommerce/clear-cart`,
3481                options,
3482              ).catch(_e => {});
3483            },
3484            placeOrderButtonSelector: '.cart-actions a[href*="checkout"], .previewCartAction-checkout a[href*="checkout"], #previewModal > div.modal-content > div.modal-body > div > section.previewCartCheckout > a:nth-child(1)',
3485          },
3486          storeId: Number('542'),
3487          zonosApiKey: 'credential_live_e4d32559-cc9d-4a27-b83c-3c9c9b8926eb',
3488        });
3489      },
3490      false,
3491    );
3492    document.head.appendChild(script);
3493  }
3494})();
3495</script>
3495<script type="77683c8daf3a83c7926e58dc-text/javascript">
3496(function () {
3497    'use strict';
3498
3499    if (window.RAMDropOutOfStockFallbackV4Loaded) {
3500        return;
3501    }
3502
3503    window.RAMDropOutOfStockFallbackV4Loaded = true;
3504
3505    /*
3506        Prevent older versions from running if they are still cached or accidentally left active.
3507    */
3508    window.RAMDropOutOfStockFallbackLoaded = true;
3509    window.RAMDropOutOfStockFallbackV2Loaded = true;
3510    window.RAMDropOutOfStockFallbackV3Loaded = true;
3511
3512    function getInventoryValue() {
3513        var marker = document.querySelector('[data-ram-inventory]');
3514        return marker ? String(marker.getAttribute('data-ram-inventory') || '').toLowerCase() : '';
3515    }
3516
3517    function isDropProduct() {
3518        return getInventoryValue() === 'drop';
3519    }
3520
3521    function getProductView() {
3522        return document.querySelector('.productView') || document;
3523    }
3524
3525    function getAddToCartForm() {
3526        return document.querySelector('form[data-cart-item-add]');
3527    }
3528
3529    function getProductId() {
3530        var input = document.querySelector('form[data-cart-item-add] input[name="product_id"], input[name="product_id"]');
3531        return input ? input.value : '';
3532    }
3533
3534    function isVisible(el) {
3535        if (!el) {
3536            return false;
3537        }
3538
3539        var style = window.getComputedStyle(el);
3540
3541        if (
3542            style.display === 'none' ||
3543            style.visibility === 'hidden' ||
3544            style.opacity === '0'
3545        ) {
3546            return false;
3547        }
3548
3549        return Boolean(el.offsetWidth || el.offsetHeight || el.getClientRects().length);
3550    }
3551
3552    function parseStock(value) {
3553        if (value === undefined || value === null || value === '') {
3554            return null;
3555        }
3556
3557        var parsed = parseInt(value, 10);
3558        return Number.isNaN(parsed) ? null : parsed;
3559    }
3560
3561    function isTruthy(value) {
3562        return value === true || value === 'true' || value === 1 || value === '1';
3563    }
3564
3565    function isFalsey(value) {
3566        return value === false || value === 'false' || value === 0 || value === '0';
3567    }
3568
3569    function getOnHandValue(data) {
3570        if (!data) {
3571            return null;
3572        }
3573
3574        if (data.available_on_hand !== undefined && data.available_on_hand !== null && data.available_on_hand !== '') {
3575            return parseStock(data.available_on_hand);
3576        }
3577
3578        if (data.stock !== undefined && data.stock !== null && data.stock !== '') {
3579            return parseStock(data.stock);
3580        }
3581
3582        return null;
3583    }
3584
3585    function serializeForm(form) {
3586        var pairs = [];
3587        var elements = form.querySelectorAll('input, select, textarea');
3588
3589        elements.forEach(function (el) {
3590            if (!el.name) {
3591                return;
3592            }
3593
3594            if ((el.type === 'checkbox' || el.type === 'radio') && !el.checked) {
3595                return;
3596            }
3597
3598            pairs.push(encodeURIComponent(el.name) + '=' + encodeURIComponent(el.value));
3599        });
3600
3601        return pairs.join('&');
3602    }
3603
3604    function hasVisibleNativeOutOfStockNotice() {
3605        var productView = getProductView();
3606
3607        /*
3608            Only check actual alert containers.
3609            Do NOT use [class*="alert"] because that catches children inside our fallback,
3610            such as .alertBox-column and .alertBox-message.
3611        */
3612        var alerts = productView.querySelectorAll('.alertBox, .alertBox--error');
3613
3614        for (var i = 0; i < alerts.length; i += 1) {
3615            var alert = alerts[i];
3616
3617            /*
3618                Ignore our custom fallback notice.
3619            */
3620            if (
3621                alert.classList.contains('ram-drop-oos-notice') ||
3622                alert.closest('[data-ram-drop-oos-notice]')
3623            ) {
3624                continue;
3625            }
3626
3627            var text = String(alert.textContent || '').toLowerCase();
3628
3629            if (
3630                isVisible(alert) &&
3631                (
3632                    text.indexOf('out of stock') !== -1 ||
3633                    text.indexOf('sold out') !== -1
3634                )
3635            ) {
3636                return true;
3637            }
3638        }
3639
3640        return false;
3641    }
3642
3643    function hasVisibleAddToCartButton() {
3644        var form = getAddToCartForm();
3645        var productView = getProductView();
3646        var scope = form || productView;
3647
3648        if (!scope) {
3649            return false;
3650        }
3651
3652        var buttons = scope.querySelectorAll(
3653            '#form-action-addToCart, ' +
3654            'input[name="form-action-addToCart"], ' +
3655            'input[type="submit"], ' +
3656            'button[type="submit"], ' +
3657            '[data-cart-item-add] input[type="submit"], ' +
3658            '[data-cart-item-add] button[type="submit"]'
3659        );
3660
3661        for (var i = 0; i < buttons.length; i += 1) {
3662            var button = buttons[i];
3663            var text = String(button.value || button.textContent || '').toLowerCase();
3664
3665            if (
3666                text.indexOf('add to cart') !== -1 &&
3667                isVisible(button) &&
3668                !button.disabled &&
3669                button.getAttribute('disabled') === null
3670            ) {
3671                return true;
3672            }
3673        }
3674
3675        return false;
3676    }
3677
3678    function shouldShowFromDomState() {
3679        /*
3680            If BigCommerce already rendered the native Out of Stock notice,
3681            do not show our fallback.
3682        */
3683        if (hasVisibleNativeOutOfStockNotice()) {
3684            return false;
3685        }
3686
3687        /*
3688            Variant Drop product issue:
3689            BigCommerce can hide/remove Add to Cart without rendering native Out of Stock.
3690        */
3691        return !hasVisibleAddToCartButton();
3692    }
3693
3694    function shouldShowFromRemoteData(data) {
3695        if (!data) {
3696            return false;
3697        }
3698
3699        var purchasable = isTruthy(data.purchasable);
3700        var instockFalse = isFalsey(data.instock);
3701        var onHand = getOnHandValue(data);
3702
3703        return !purchasable && (instockFalse || onHand === 0);
3704    }
3705
3706    function getOrCreateDropOutOfStockNotice() {
3707        var productView = getProductView();
3708        var existing = productView.querySelector('[data-ram-drop-oos-notice]');
3709
3710        if (existing) {
3711            return existing;
3712        }
3713
3714        var notice = document.createElement('div');
3715        notice.className = 'alertBox alertBox--error ram-drop-oos-notice';
3716        notice.setAttribute('data-ram-drop-oos-notice', 'true');
3717        notice.style.setProperty('display', 'none', 'important');
3718
3719        notice.innerHTML =
3720            '<div class="alertBox-column alertBox-icon">' +
3721                '<icon glyph="ic-error" class="icon" aria-hidden="true">' +
3722                    '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">' +
3723                        '<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"></path>' +
3724                    '</svg>' +
3725                '</icon>' +
3726            '</div>' +
3727            '<p class="alertBox-column alertBox-message">' +
3728                '<span>Out of Stock</span>' +
3729            '</p>';
3730
3731        var form = getAddToCartForm();
3732        var optionBlock = productView.querySelector('[data-product-option-change]');
3733        var stockField = productView.querySelector('.form-field--stock');
3734        var productInfo = productView.querySelector('.productView-info');
3735        var wishlist = productView.querySelector('[data-wishlist-add], .form-wishlist, .wishlist-form, [class*="wishlist"]');
3736
3737        if (optionBlock) {
3738            optionBlock.insertAdjacentElement('afterend', notice);
3739        } else if (stockField) {
3740            stockField.insertAdjacentElement('afterend', notice);
3741        } else if (form) {
3742            form.insertBefore(notice, form.firstChild);
3743        } else if (wishlist) {
3744            wishlist.insertAdjacentElement('beforebegin', notice);
3745        } else if (productInfo) {
3746            productInfo.insertAdjacentElement('afterend', notice);
3747        } else {
3748            productView.appendChild(notice);
3749        }
3750
3751        return notice;
3752    }
3753
3754    function hideExistingFallbackNotice() {
3755        var existingNotice = getProductView().querySelector('[data-ram-drop-oos-notice]');
3756
3757        if (existingNotice) {
3758            existingNotice.style.setProperty('display', 'none', 'important');
3759        }
3760    }
3761
3762    function setDropOutOfStockNotice(shouldShow) {
3763        /*
3764            Prevent duplicates on simple/non-variant Drop products.
3765        */
3766        if (hasVisibleNativeOutOfStockNotice()) {
3767            hideExistingFallbackNotice();
3768            return;
3769        }
3770
3771        var notice = getOrCreateDropOutOfStockNotice();
3772
3773        if (!notice) {
3774            return;
3775        }
3776
3777        notice.style.setProperty('display', shouldShow ? 'flex' : 'none', 'important');
3778    }
3779
3780    function requestSelectedVariantState() {
3781        var form = getAddToCartForm();
3782        var productId = getProductId();
3783
3784        if (!isDropProduct()) {
3785            hideExistingFallbackNotice();
3786            return;
3787        }
3788
3789        /*
3790            DOM fallback first.
3791        */
3792        setDropOutOfStockNotice(shouldShowFromDomState());
3793
3794        /*
3795            Then use BigCommerce selected variant response if available.
3796        */
3797        if (!form || !productId) {
3798            return;
3799        }
3800
3801        fetch('/remote/v1/product-attributes/' + productId, {
3802            method: 'POST',
3803            credentials: 'include',
3804            headers: {
3805                'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',
3806                'x-requested-with': 'stencil-utils'
3807            },
3808            body: serializeForm(form)
3809        })
3810            .then(function (response) {
3811                return response.clone().json();
3812            })
3813            .then(function (payload) {
3814                var data = payload && payload.data ? payload.data : null;
3815
3816                setDropOutOfStockNotice(
3817                    shouldShowFromRemoteData(data) || shouldShowFromDomState()
3818                );
3819            })
3820            .catch(function () {
3821                setDropOutOfStockNotice(shouldShowFromDomState());
3822            });
3823    }
3824
3825    function scheduleCheck() {
3826        requestSelectedVariantState();
3827
3828        setTimeout(requestSelectedVariantState, 100);
3829        setTimeout(requestSelectedVariantState, 400);
3830        setTimeout(requestSelectedVariantState, 900);
3831        setTimeout(requestSelectedVariantState, 1500);
3832    }
3833
3834    if (!isDropProduct()) {
3835        hideExistingFallbackNotice();
3836        return;
3837    }
3838
3839    scheduleCheck();
3840
3841    window.addEventListener('load', scheduleCheck);
3842
3843    document.addEventListener('change', function (event) {
3844        if (
3845            event.target.closest('[data-product-option-change]') ||
3846            event.target.matches('select') ||
3847            event.target.matches('input[type="radio"]') ||
3848            event.target.matches('input[type="checkbox"]') ||
3849            event.target.matches('input[name^="attribute"]')
3850        ) {
3851            scheduleCheck();
3852        }
3853    }, true);
3854
3855    document.addEventListener('click', function (event) {
3856        if (
3857            event.target.closest('[data-product-option-change]') ||
3858            event.target.closest('.form-option') ||
3859            event.target.matches('input[name^="attribute"]')
3860        ) {
3861            scheduleCheck();
3862        }
3863    }, true);
3864})();
3865</script>
3865
3866        
3867        
3867<script type="application/ld+json">
3868{
3869  "@context": "https://schema.org",
3870  "@type": "PetStore",
3871  "name": "J&J Dog Supplies",
3872  "image": "https://cdn11.bigcommerce.com/s-cftgfbe14j/images/stencil/183x110/new-logo-horizontal_1590511746__09058.original.jpg",
3873  "@id": "https://www.jjdog.com/",
3874  "url": "https://www.jjdog.com/",
3875  "telephone": "+18006422050",
3876  "priceRange": "$$",
3877  "address": {
3878    "@type": "PostalAddress",
3879    "streetAddress": "975 Ford St.",
3880    "addressLocality": "Colorado Springs",
3881    "addressRegion": "CO",
3882    "postalCode": "80915",
3883    "addressCountry": "US"
3884  },
3885  "openingHoursSpecification": {
3886    "@type": "OpeningHoursSpecification",
3887    "dayOfWeek": [
3888      "Monday",
3889      "Tuesday",
3890      "Wednesday",
3891      "Friday",
3892      "Thursday"
3893    ],
3894    "opens": "07:30",
3895    "closes": "16:30"
3896  }
3897}
3898</script>
3898
3899
3900<script type="application/ld+json">
3901{
3902  "@context": "https://schema.org/",
3903  "@type": "WebSite",
3904  "name": "J&J Dog Supplies",
3905  "url": "https://www.jjdog.com",
3906  "potentialAction": {
3907    "@type": "SearchAction",
3908    "target": "https://www.jjdog.com/search-results-page?q={search_term_string}",
3909    "query-input": "required name=search_term_string"
3910  }
3911}
3912</script>
3912
3913
3914
3915
3916    <style>
3917        .stamped-badge-caption {font-size:15px !important;}
3918    
3919#stamped-rewards-widget[data-widget-type="rewards-earnings-v2"][data-logged-in="false"] .stamped-rewards-widget-item[data-campaign-id="11472"] {
3920    display: none;
3921}
3922
3923#stamped-rewards-widget[data-widget-type="rewards-earnings-v2"][data-logged-in="false"] .stamped-rewards-widget-item[data-campaign-id="11473"]  {
3924    display: none;
3925}
3926@media (min-width: 801px) {
3927    .page-content--centered {
3928        width: 72.66667%;
3929    }
3930}
3931[data-widget-type="rewards-spendings-v2"] .stamped-rewards-widget-campaigns-spendings .stamped-rewards-widget-campaign-image img {display:none;}
3932    </style>
3933    
3934        
3934<script async src="https://kit.fontawesome.com/5f4629c86e.js" crossorigin="anonymous" type="77683c8daf3a83c7926e58dc-text/javascript"></script>
3934
3935        
3936        
3937
3938    
3938<script type="77683c8daf3a83c7926e58dc-text/javascript">window.__CF$cv$params={r:'a40f004a9bc61891',t:'MTc5MDM5MTQ0Ng==',u:'01a0dba56bf871eda07845d14f0866db',ut:'Zf0.tECm2jE_der03nOYeQTseh1fpfJhsY26GFazAPs-1790391446-1.2.1.1-.30JNlH6F3c9Dkr5Toikh4FbfYiS4O2QgGcaN.DJFiqmNpsL2NWw8MgMizDvMpKs.F_Tt_BuzcSEaCNxSAXCkfNfZ602BQ8lQMhsuDaBhWg',i:60};(function(){if(!document.body)return;var s=document.createElement('script');s.src='/cdn-cgi/challenge-platform/scripts/precursor/main.js';document.head.appendChild(s);})();</script>
vendor: 142 bytes, line 3938
3938<script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="77683c8daf3a83c7926e58dc-|49" defer></script>
3938</body>
3939</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.