1<!DOCTYPE html> 2<html class="no-js" lang="en"> 3 <head> 4 <title>Decorator's Warehouse - Sign in</title> 5 6
6<script type="application/ld+json"> 7 { 8 "@context": "https://schema.org/", 9 "@type": "WebSite", 10 "name": "Decorators Warehouse", 11 "url": "https://decoratorswarehouse.com/", 12 "potentialAction": { 13 "@type": "SearchAction", 14 "target": "https://decoratorswarehouse.com/search-magic.html?query={search_term_string}", 15 "query-input": "required name=search_term_string" 16 } 17 } 18 </script>
18 19 20 <link rel="dns-prefetch preconnect" href="https://cdn11.bigcommerce.com/s-zqoar2tzjl" crossorigin> 21 <link rel="dns-prefetch" href="https://decoratorswarehouse.com"> 22 <link rel="preconnect" href="//cdn11.bigcommerce.com" crossorigin> 23 <link rel="preconnect" href="//f.vimeocdn.com" crossorigin> 24 <link rel="preconnect" href="//cdn.jsdelivr.net" crossorigin> 25 <link rel="preconnect" href="//use.typekit.net" crossorigin> 26 <link rel="preconnect" href="https://fonts.googleapis.com"> 27 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 28 29 <meta name="keywords" content="christmas trees, christmas decorations, christmas ornaments, christmas store"><meta name="description" content="Decoratorâs Warehouse is the largest Christmas decorations store in Texas, now delivering worldwide. Find everything you need with seasonal decorations, decor tutorials, and more to have the best holidays ever!"><meta name='platform' content='bigcommerce.stencil' /> 30 31
31<script async type="text/javascript" src="//static.klaviyo.com/onsite/js/klaviyo.js?company_id=UAfAKj"></script>
31 32
32<script>(function(d) {var config = {kitId: 'den7rsg',scriptTimeout: 3000,async: true},h=d.documentElement,t=setTimeout(function(){h.className=h.className.replace(/\bwf-loading\b/g,"")+" wf-inactive";},config.scriptTimeout),tk=d.createElement("script"),f=false,s=d.getElementsByTagName("script")[0],a;h.className+=" wf-loading";tk.src="https://use.typekit.net/"+config.kitId+".js";tk.async=true;tk.onload=tk.onreadystatechange=function(){a=this.readyState;if(f||a&&a!="complete"&&a!="loaded")return;f=true;clearTimeout(t);try{Typekit.load(config)}catch(e){}};s.parentNode.insertBefore(tk,s)})(document);</script>
32 33 34 35 <link href="https://cdn11.bigcommerce.com/s-zqoar2tzjl/product_images/favicon.png?t=1594874875" rel="shortcut icon"> 36 <meta name="viewport" content="width=device-width, initial-scale=1"> 37 <link rel="preload" as="script" crossorigin="anonymous" href="https://kit.fontawesome.com/d3639a8563.js" /> 38 <link 39 rel="preload" 40 href="https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=swap" 41 as="style" 42 onload="this.onload=null;this.rel='stylesheet'" 43 /> 44 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@10/swiper-bundle.min.css" /> 45 <noscript> 46 <link 47 href="https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=swap" 48 rel="stylesheet" 49 type="text/css" 50 /> 51 </noscript> 52
52<script> 53 document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); 54 </script>
54 55
55<script> 56 window.lazySizesConfig = window.lazySizesConfig || {}; 57 window.lazySizesConfig.loadMode = 1; 58 </script>
58 59
59<script async src="https://cdn11.bigcommerce.com/s-zqoar2tzjl/stencil/32030570-9a5d-013f-a98b-120a24f73952/e/16b874b0-97e5-013f-45bc-4e388f6f202b/dist/theme-bundle.head_async.js"></script>
59 60 61 62 <link data-stencil-stylesheet href="https://cdn11.bigcommerce.com/s-zqoar2tzjl/stencil/32030570-9a5d-013f-a98b-120a24f73952/e/16b874b0-97e5-013f-45bc-4e388f6f202b/css/theme-3dd919f0-9a5d-013f-05ec-12185c6939c9.css" rel="stylesheet"> 63 <style> 64 /* see _product-view.scss */ 65 .productDetails .productCarousel .productCarousel-slide .card-title { 66 -webkit-box-orient: vertical; 67 } 68 </style> 69 70 <style> 71 .grecaptcha-cya { 72 font-size: 0.75em; 73 color: #333; 74 margin-bottom: 1rem; 75 } 76 .grecaptcha-cya a { 77 text-decoration: underline; 78 } 79 .grecaptcha-badge { visibility: hidden; }</style> 80 81 <!-- Start Tracking Code for analytics_facebook --> 82
83<script data-bc-cookie-consent="4" type="text/plain"> 84!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'); 85 86fbq('set', 'autoConfig', 'false', '523408588768065'); 87fbq('dataProcessingOptions', []); 88fbq('init', '523408588768065', {"external_id":"2e5f7d16-14a3-4021-ab6c-6dbcd3387471"}); 89fbq('set', 'agent', 'bigcommerce', '523408588768065'); 90 91function trackEvents() { 92 var pathName = window.location.pathname; 93 94 95 96 // Search events start -- only fire if the shopper lands on the /search.php page 97 if (pathName.indexOf('/search.php') === 0 && getUrlParameter('search_query')) { 98 fbq('trackSingle', '523408588768065', 'Search', { 99 content_type: 'product_group', 100 content_ids: [], 101 search_string: getUrlParameter('search_query') 102 }); 103 } 104 // Search events end 105 106 // Wishlist events start -- only fire if the shopper attempts to add an item to their wishlist 107 if (pathName.indexOf('/wishlist.php') === 0 && getUrlParameter('added_product_id')) { 108 fbq('trackSingle', '523408588768065', 'AddToWishlist', { 109 content_type: 'product_group', 110 content_ids: [] 111 }); 112 } 113 // Wishlist events end 114 115 // Lead events start -- only fire if the shopper subscribes to newsletter 116 if (pathName.indexOf('/subscribe.php') === 0 && getUrlParameter('result') === 'success') { 117 fbq('trackSingle', '523408588768065', 'Lead', {}); 118 } 119 // Lead events end 120 121 // Registration events start -- only fire if the shopper registers an account 122 if (pathName.indexOf('/login.php') === 0 && getUrlParameter('action') === 'account_created') { 123 fbq('trackSingle', '523408588768065', 'CompleteRegistration', {}, ""); 124 } 125 // Registration events end 126 127 128 129 function getUrlParameter(name) { 130 var cleanName = name.replace(/[\[]/, '\[').replace(/[\]]/, '\]'); 131 var regex = new RegExp('[\?&]' + cleanName + '=([^&#]*)'); 132 var results = regex.exec(window.location.search); 133 return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' ')); 134 } 135} 136 137if (window.addEventListener) { 138 window.addEventListener("load", trackEvents, false) 139} 140</script>
140 141<noscript><img height="1" width="1" style="display:none" alt="null" src="https://www.facebook.com/tr?id=523408588768065&ev=PageView&noscript=1&a=plbigcommerce1.2&eid="/></noscript> 142 143<!-- End Tracking Code for analytics_facebook --> 144 145<!-- Start Tracking Code for analytics_googleanalytics4 --> 146
147<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 147
147
148<script data-cfasync="false"> 149 (function () { 150 window.dataLayer = window.dataLayer || []; 151 152 function gtag(){ 153 dataLayer.push(arguments); 154 } 155 156 function initGA4(event) { 157 function setupGtag() { 158 function configureGtag() { 159 gtag('js', new Date()); 160 gtag('set', 'developer_id.dMjk3Nj', true); 161 gtag('config', 'G-GTY8VLFPQE'); 162 } 163 164 var script = document.createElement('script'); 165 166 script.src = 'https://www.googletagmanager.com/gtag/js?id=G-GTY8VLFPQE'; 167 script.async = true; 168 script.onload = configureGtag; 169 170 document.head.appendChild(script); 171 } 172 173 setupGtag(); 174 175 if (typeof subscribeOnBodlEvents === 'function') { 176 subscribeOnBodlEvents('G-GTY8VLFPQE', true); 177 } 178 179 window.removeEventListener(event.type, initGA4); 180 } 181 182 gtag('consent', 'default', {"ad_storage":"denied","ad_user_data":"denied","ad_personalization":"denied","analytics_storage":"denied","functionality_storage":"denied"}) 183 184 185 var eventName = document.readyState === 'complete' ? 'consentScriptsLoaded' : 'DOMContentLoaded'; 186 window.addEventListener(eventName, initGA4, false); 187 })() 188</script>
188 189 190<!-- End Tracking Code for analytics_googleanalytics4 --> 191 192<!-- Start Tracking Code for analytics_siteverification --> 193 194<meta name="facebook-domain-verification" content="dwfctcbccvrujoafoz4tog7j7hd6ke"/> 195<meta name="google-site-verification" content="hnQTM6vx9JvD2HrTbKyfcF9nc56cqeaM81WRSzWUokM" /> 196<meta name="google-site-verification" content="QPv5nRhF656ygfXbM-NVxTrwFYXIrLlFJD0sw8aGomM" /> 197<meta name="google-site-verification" content="Ke9Fs7kb2ssXGh43ivBsFckEXXg0ZDKVVYhzo3cWdOk" />
vendor: 66 bytes, lines 197-200
197 198 199 200<script async src="https://www.googletagmanager.com/gtag/js?id=
200UA-150705564-1
vendor: 12 bytes, line 200
200"></script>
201<script>
vendor: 127 bytes, lines 202-205
202window.dataLayer = window.dataLayer || []; 203function gtag(){dataLayer.push(arguments);} 204gtag('js', new Date()); 205gtag('config', '
205UA-150705564-1
vendor: 4 bytes, line 205
205');
206gtag('config', 'AW-779432509', {'allow_enhanced_conversions': true}); 207 208</script>
208 209 210<!-- End Tracking Code for analytics_siteverification --> 211 212
213<script type="text/javascript" src="https://checkout-sdk.bigcommerce.com/v1/loader.js" defer ></script>
vendor: 77 bytes, lines 213-214
213 214<script src="https://www.google.com/recaptcha/api.js" async defer></script>
215<script>window.consentManagerStoreConfig = function () { return {"storeName":"Decorator's Warehouse","privacyPolicyUrl":"https:\/\/decoratorswarehouse.com\/privacy-policy\/","writeKey":null,"improvedConsentManagerEnabled":true,"AlwaysIncludeScriptsWithConsentTag":true}; };</script>
vendor: 1 bytes, line 215
215
216<script type="text/javascript" src="https://cdn11.bigcommerce.com/shared/js/bodl-consent-32a446f5a681a22e8af09a4ab8f4e4b6deda6487.js" integrity="sha256-uitfaufFdsW9ELiQEkeOgsYedtr3BuhVvA4WaPhIZZY=" crossorigin="anonymous" defer></script>
vendor: 1 bytes, line 216
216
217<script type="text/javascript" src="https://cdn11.bigcommerce.com/shared/js/storefront/consent-manager-config-d53a4773861141b0624d84967b4c0a379d13a5fe.js" defer></script>
vendor: 1 bytes, line 217
217
218<script type="text/javascript" src="https://cdn11.bigcommerce.com/shared/js/storefront/consent-manager-08633fe15aba542118c03f6d45457262fa9fac88.js" defer></script>
vendor: 1 bytes, line 218
218
219<script type="text/javascript"> 220var BCData = {}; 221</script>
vendor: 1 bytes, line 221
221
222<script data-bc-cookie-consent="4" type="text/plain" src='https://cdn.attn.tv/decoratorswarehouse/dtag.js' ></script>
222<!-- Hotjar Tracking Code for https://decoratorswarehouse.com/ -->
223<script>
vendor: 125 bytes, lines 223-226
223 224 (function(h,o,t,j,a,r){ 225 h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)}; 226 h._hjSettings={hjid:
2263467703
vendor: 258 bytes, lines 226-231
226,hjsv:6}; 227 a=o.getElementsByTagName('head')[0]; 228 r=o.createElement('script');r.async=1; 229 r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; 230 a.appendChild(r); 231 })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
232</script>
232<script data-bc-cookie-consent="3" type="text/plain"> 233 /* 234 replace tagUrl with the tag url you get from app.edgetag.io when onboarding is completed 235 Ex: if the tag url is `d.mysite.com` then do the following change 236 const tagUrl = 'https://d.mysite.com'; 237 */ 238 !(function () { 239 const tagUrl = 'https://vgcgz.decoratorswarehouse.com'; 240 241 !(function (u) { 242 window.edgetag = 243 window.edgetag || 244 function () { 245 (edgetag.stubs = edgetag.stubs || []).push(arguments); 246 }; 247 const t = document.createElement('script'); 248 (t.type = 'text/javascript'), (t.src = u), (t.async = !0); 249 const e = document.getElementsByTagName('script')[0]; 250 e.parentNode.insertBefore(t, e); 251 })(`${tagUrl}/load`); 252 253 edgetag('init', { 254 edgeURL: tagUrl, 255 disableConsentCheck: true, 256 }); 257 })(); 258</script>
258 259
260<script data-bc-cookie-consent="3" type="text/plain"> 261 !(function () { 262 263 const getInputValue = (form, selector) => { 264 const inputElement = form.querySelector(selector) || {} 265 return inputElement.value 266 } 267 268 const sendUser = (user) => { 269 if (!user || !Object.keys(user).length) { 270 return; 271 } 272 edgetag('data', user); 273 }; 274 275 const getUser = (form, selectors) => { 276 const user = {}; 277 if (!selectors) { 278 return user; 279 } 280 Object.entries(selectors).forEach(([userKey, selector]) => { 281 if (!selector || selector.length === 0) { 282 return; 283 } 284 const selectorArray = Array.isArray(selector) ? selector : [selector]; 285 for (const selector of selectorArray) { 286 if (!selector) { 287 continue; 288 } 289 const inputUserValue = form.querySelector(selector); 290 const userValue = (inputUserValue && inputUserValue.value) || ''; 291 if (userValue) { 292 user[userKey] = userValue; 293 break; 294 } 295 } 296 }); 297 return user; 298 }; 299 300 const addToCart = (ele) => { 301 if (!ele || 'login' !== 'product') { 302 return 303 } 304 305 const quantity = getInputValue(ele, 'input[name="qty[]"]') || 1 306 const price = '' || '' 307 308 edgetag('tag', 'AddToCart', { 309 currency: '' || '', 310 value: price, 311 contents: [ 312 { 313 id: '', 314 quantity, 315 item_price: price, 316 title: '', 317 category: '', 318 image: ''.replace('{:size}', '500x659'), 319 url: '', 320 type: 'product', 321 }, 322 ], 323 }, {}, { method: 'beacon' }); 324 }; 325 326 const actions = [ 327 { 328 selectors: ['[type="submit"]', 'form[data-cart-item-add]'], 329 length: 2, 330 fun: (ele) => { 331 addToCart(ele); 332 }, 333 current: 0 334 }, 335 { 336 selectors: ['a[href="/checkout"]'], 337 length: 1, 338 fun: (ele) => { 339 edgetag('tag', 'InitiateCheckout', {}, {}, { method: 'beacon' }); 340 }, 341 current: 0 342 }, 343 { 344 selectors: ['[type="submit"]', 'form[action="/subscribe.php"],form.extole-form'], 345 length: 2, 346 fun: (ele) => { 347 const user = getUser(ele, { 348 email: ['input[type="email"]', 'input[data-field-type*="email" i]'], 349 phone: ['input[type="tel"]', 'input[name*="phone" i]', 'input[data-field-type*="phone" i]'], 350 firstName: ['input[name*="fname" i]', 'input[data-field-type*="first" i]'], 351 lastName: ['input[name*="lname" i]', 'input[data-field-type*="last" i]'], 352 dateOfBirth: 'input[name*="birthday" i]', 353 }); 354 sendUser(user); 355 edgetag('tag', 'Subscribe', {}, {}, {method: 'beacon'}) 356 }, 357 current: 0 358 }, 359 { 360 selectors: ['[type="submit"]', 'form[action*="save_new_account" i]'], 361 length: 2, 362 fun: (ele) => { 363 const user = getUser(ele, { 364 email: ['input[type="email"]', 'input[data-field-type*="email" i]'], 365 phone: ['input[type="tel"]', 'input[name*="phone" i]', 'input[data-field-type*="phone" i]'], 366 firstName: ['input[name*="fname" i]', 'input[data-field-type*="first" i]'], 367 lastName: ['input[name*="lname" i]', 'input[data-field-type*="last" i]'], 368 }); 369 sendUser(user); 370 edgetag('tag', 'CompleteRegistration'); 371 }, 372 current: 0 373 }, 374 { 375 selectors: ['[type="submit"]', 'form[action*="check_login" i]'], 376 length: 2, 377 fun: (ele) => { 378 const user = getUser(ele, { 379 email: 'input[type="email"]', 380 }); 381 sendUser(user); 382 }, 383 current: 0 384 }, 385 { 386 selectors: ['[type="submit"]', 'form#checkout-customer-guest'], 387 length: 2, 388 fun: (ele) => { 389 const user = getUser(ele, { 390 email: ['input[type="email"]', 'input[data-field-type*="email" i]'], 391 phone: ['input[type="tel"]', 'input[name*="phone" i]', 'input[data-field-type*="phone" i]'], 392 firstName: ['input[name*="first" i]', 'input[data-field-type*="first" i]'], 393 lastName: ['input[name*="last" i]', 'input[data-field-type*="last" i]'], 394 }); 395 sendUser(user); 396 }, 397 current: 0 398 }, 399 { 400 selectors: ['[type="submit"]', 'form', '.checkout-step--shipping'], 401 length: 3, 402 fun: (ele) => { 403 const form = ele.querySelector('form') 404 const user = getUser(form, { 405 email: ['input[type="email"]', 'input[data-field-type*="email" i]'], 406 phone: ['input[type="tel"]', 'input[name*="phone" i]', 'input[data-field-type*="phone" i]'], 407 firstName: ['input[name*="first" i]', 'input[data-field-type*="first" i]'], 408 lastName: ['input[name*="last" i]', 'input[data-field-type*="last" i]'], 409 }); 410 sendUser(user); 411 }, 412 current: 0 413 } 414 ]; 415 416 const actionsLength = actions.length; 417 const resetActions = () => { 418 for (let i = 0; i < actionsLength; ++i) { 419 actions[i].current = 0; 420 } 421 }; 422 423 const checkElement = (element) => { 424 if (!element || element.nodeName === 'BODY') { 425 resetActions(); 426 return 427 } 428 429 if (element.nodeName !== 'DIV' && element.nodeName !== 'INPUT' && element.nodeName !== 'A' && element.nodeName !== 'BUTTON' && element.nodeName !== 'FORM' && element.nodeName !== 'LI') { 430 checkElement(element.parentElement); 431 return 432 } 433 434 for (let i = 0; i < actionsLength; ++i) { 435 if (element.matches(actions[i].selectors[actions[i].current])) { 436 ++actions[i].current; 437 if (actions[i].length === actions[i].current) { 438 actions[i].fun(element); 439 resetActions(); 440 return 441 } 442 } 443 } 444 checkElement(element.parentElement); 445 }; 446 447 window.addEventListener('load', () => { 448 // PageView 449 edgetag('tag', 'PageView'); 450 451 // View Content 452 if ('login' === 'product') { 453 const price = '' || '' 454 455 edgetag('tag', 'ViewContent', { 456 currency: '', 457 value: price, 458 contents: [ 459 { 460 id: '', 461 quantity: 1, 462 item_price: price, 463 title: '', 464 category: '', 465 image: ''.replace('{:size}', '500x659'), 466 url: '', 467 type: 'product', 468 }, 469 ], 470 }); 471 } 472 473 document.addEventListener('click', (e) => { 474 checkElement(e.target); 475 }) 476 }) 477 478 const sendPurchase = (data) => { 479 // Purchase 480 if ('login' !== 'orderconfirmation' || !data) { 481 return 482 } 483 484 const shipping = (data.consignments && data.consignments.shipping && data.consignments.shipping.length && data.consignments.shipping[0]) || {} 485 const billing = data.billing || {} 486 487 const user = {} 488 if (shipping.email || billing.email) { 489 user.email = shipping.email || billing.email 490 } 491 492 if (shipping.firstName || billing.firstName) { 493 user.firstName = shipping.firstName || billing.firstName 494 } 495 496 if (shipping.lastName || billing.lastName) { 497 user.lastName = shipping.lastName || billing.lastName 498 } 499 500 if (shipping.phone || billing.phone) { 501 user.phone = shipping.phone || billing.phone 502 } 503 sendUser(user) 504 505 let items = [] 506 if (data.lineItems) { 507 if (data.lineItems.physicalItems && Array.isArray(data.lineItems.physicalItems) && data.lineItems.physicalItems.length) { 508 items = [...items, ...data.lineItems.physicalItems] 509 } 510 if (data.lineItems.digitalItems && Array.isArray(data.lineItems.digitalItems) && data.lineItems.digitalItems.length) { 511 items = [...items, ...data.lineItems.digitalItems] 512 } 513 if (data.lineItems.giftCertificates && Array.isArray(data.lineItems.giftCertificates) && data.lineItems.giftCertificates.length) { 514 items = [...items, ...data.lineItems.giftCertificates] 515 } 516 } 517 518 const contents = []
519 items.forEach((item) => { 520 if (!item) { 521 return 522 } 523 524 contents.push({ 525 id: item.productId, 526 variantId: item.variantId, 527 quantity: item.quantity, 528 item_price: item.salePrice, 529 title: item.name, 530 category: item.categories && item.categories.length && item.categories[0], 531 type: 'product', 532 }) 533 }) 534 535 edgetag('tag', 'Purchase', { 536 contents, 537 currency: data.currency && data.currency.code, 538 value: data.orderAmount, 539 eventId: data.orderId, 540 orderId: data.orderId 541 }); 542 } 543 544 const networkListener = function() { 545 const fetch = window.fetch; 546 window.fetch = function() { 547 return fetch.apply(this, Array.prototype.slice.call(arguments)).then(function(t) { 548 if (!t.ok) { 549 return t; 550 } 551 552 try { 553 if ('login' === 'orderconfirmation' && t.url.indexOf(`storefront/orders/`) !== -1) { 554 const myResponse = t.clone(); 555 Promise.resolve(myResponse.json()).then(e => { 556 if (!e) { 557 return; 558 } 559 sendPurchase(e); 560 }); 561 return t; 562 } 563 } catch { 564 } 565 return t; 566 }); 567 }; 568 const origOpen = XMLHttpRequest.prototype.open; 569 XMLHttpRequest.prototype.open = function() { 570 this.addEventListener('load', function() { 571 if ('login' === 'orderconfirmation' && this.__sentry_xhr__.url.indexOf(`storefront/orders/`) !== -1) { 572 try { 573 const e = JSON.parse(this.responseText); 574 if (!e) { 575 return; 576 } 577 sendPurchase(e); 578 } catch { 579 } 580 return; 581 } 582 }); 583 origOpen.apply(this, arguments); 584 }; 585 }; 586 networkListener(); 587 588 // Custom code 589 590 })(); 591</script>
591<script data-bc-cookie-consent="3" type="text/plain" async src="https://olhel.decoratorswarehouse.com/providers/atLabel/load" onError="var fallbackScript = document.createElement('script'); fallbackScript.src='https://cdn.attn.tv/decoratorswarehouse/dtag.js'; document.head.appendChild(fallbackScript);"></script>
591 <!-- Google Tag Manager -->
592<script data-bc-cookie-consent="3" type="text/plain">
vendor: 327 bytes, lines 592-596
592(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 593new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 594j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 595'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 596})(window,document,'script','dataLayer','
596GTM-N45SHHS
vendor: 3 bytes, line 596
596');
596</script>
vendor: 1 bytes, line 596
596
597<script data-bc-cookie-consent="3" type="text/plain">function gtag(){dataLayer.push(arguments);}</script>
597 598<!-- End Google Tag Manager -->
598<script type="text/javascript"> 599function recaptchaLoadCallback() { 600 var textareas = document.querySelectorAll("[name=g-recaptcha-response]"); 601 textareas.forEach(function(textarea) { 602 textarea.setAttribute("aria-hidden", "true"); 603 textarea.setAttribute("aria-label", "recaptcha response"); 604 }); 605} 606</script>
vendor: 61 bytes, lines 606-607
606 607<script src="https://www.google.com/recaptcha/api.js?render=
6076LcUDxQqAAAAAMPdv5QT0CTHe1h1M8KllssBnC5r
vendor: 57 bytes, line 607
607&onload=recaptchaLoadCallback&badge=bottomleft"></script>
607<script type="text/javascript"> 608 var attnData = { 609 pageType: "login", 610 orderData: {}, 611 } 612try { 613 if ("") { 614 fetch("/api/storefront/order/", { 615 credentials: "include", 616 }) 617 .then(function (response) { 618 return response.json(); 619 }) 620 .then(function (orderInfo) { 621 window.attnData = window.attnData || { 622 pageType: "login", 623 orderData: {}, 624 } 625 window.attnData.orderData = { 626 cartTotal: orderInfo.orderAmount, 627 cartId: orderInfo.cartId, 628 cartCoupon: orderInfo.coupons.length > 0 ? orderInfo.coupons[0].code : null, 629 orderId: orderInfo.orderId, 630 phone: orderInfo.billingAddress.phone, 631 email: orderInfo.billingAddress.email, 632 items: orderInfo.lineItems.physicalItems.map(item => { 633 return { 634 sku: item.productId, 635 subProductId: item.variantId, 636 name: item.name, 637 image: item.imageUrl, 638 price: item.salePrice, 639 currency: orderInfo.currency.code, 640 quantity: item.quantity, 641 } 642 }), 643 } 644 }) 645}} catch (e) {} 646</script>
vendor: 1 bytes, line 646
646
647<script type="text/javascript"> 648 const attn_upc = ""; 649 const attn_price = ""; 650 var variant = null; 651 const attnBCProducts = window.attn_bc_products = window.attn_bc_products || {}; 652 const productsCatalogue = attnBCProducts.products = attnBCProducts.products || []; 653 const product = { 654 sku: '', 655 subProductId: variant, 656 productId: '', 657 name: '', 658 image: 'https://cdn11.bigcommerce.com/s-zqoar2tzjl/stencil/32030570-9a5d-013f-a98b-120a24f73952/e/16b874b0-97e5-013f-45bc-4e388f6f202b/img/ProductDefault.gif', 659 category: '', 660 price: attn_price, 661 currency: 'USD' || 'USD', 662 }; 663 if (attnData.pageType === 'product' && product.sku) { try { 664 fetch('/graphql', { 665 method: 'POST', 666 credentials: 'same-origin', 667 headers: { 668 'Content-Type': 'application/json', 669 'Authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJjaWQiOlsxXSwiY29ycyI6WyJodHRwczovL2RlY29yYXRvcnN3YXJlaG91c2UuY29tIl0sImVhdCI6MTc5MDUxMDYzOSwiaWF0IjoxNzkwMzM3ODM5LCJpc3MiOiJCQyIsInNpZCI6MTAwMDcyNTk1Miwic3ViIjoiQkMiLCJzdWJfdHlwZSI6MCwidG9rZW5fdHlwZSI6MX0.8L_KE2z5qXRNu-PzSuKJnm6IcHCOUDW4llquE12qRD7Oh7etFUyT3PYu29wZqHCmM-MVKxFzUcVJJo5hn_0I4Q' 670 }, 671 body: JSON.stringify({ query: '{ site {product(entityId: ) { sku, variants{edges{node{upc, entityId, prices{price{value}}}}}}}}'})}) 672 .then(data => data.json()) 673 .then(json => json?.data?.site?.product?.variants?.edges) 674 .then(variantsArr => { 675 if (variantsArr.length === 1) { 676 variant = variantsArr[0]?.node?.entityId; 677 } else if (attn_upc) { 678 variant = variantsArr.find(variantObj => variantObj?.node?.upc === attn_upc)?.node.entityId; 679 } else if (attn_price) { 680 variant = variantsArr.find(variantObj => variantObj?.node?.prices?.price?.value?.toString() === attn_price)?.node.entityId; 681 } else { 682 variant = variantsArr[0]?.node?.entityId; 683 } 684 }) 685 .then(() => { 686 product.subProductId = variant; 687 attnBCProducts["current_product"] = product; 688 if (productsCatalogue.filter(i => {i.productId === '' && i.subProductId === variant}).length === 0) { 689 productsCatalogue.push(product); 690 } 691 }) 692 } catch { 693 attnBCProducts["current_product"] = product; 694 if (productsCatalogue.filter(i => i.productId === '').length === 0) { 695 productsCatalogue.push(product); 696 } 697 }} 698</script>
698 699
699<script data-cfasync="false" src="https://microapps.bigcommerce.com/bodl-events/1.9.4/index.js" integrity="sha256-Y0tDj1qsyiKBRibKllwV0ZJ1aFlGYaHHGl/oUFoXJ7Y=" nonce="" crossorigin="anonymous"></script>
699 700
700<script data-cfasync="false" nonce=""> 701 702 (function() { 703 function decodeBase64(base64) { 704 const text = atob(base64); 705 const length = text.length; 706 const bytes = new Uint8Array(length); 707 for (let i = 0; i < length; i++) { 708 bytes[i] = text.charCodeAt(i); 709 } 710 const decoder = new TextDecoder(); 711 return decoder.decode(bytes); 712 } 713 window.bodl = JSON.parse(decodeBase64("eyJzZXNzaW9uIjp7ImlkIjoiNGNmYWY0MGYtN2IwMC00ODNhLThlZDItNjFiMjA5Y2RiYTYwIiwiZmlyc3RfdG91Y2hfdGltZXN0YW1wIjoiMjAyNi0wOS0yNlQwNjozODoxMiIsImZpcnN0X3RvdWNoX3JlZmVycmFsX3VybCI6IiIsImZpcnN0X3RvdWNoX3JlcXVlc3RfdXJsIjoiaHR0cHM6Ly9kZWNvcmF0b3Jzd2FyZWhvdXNlLmNvbS9sb2dpbi5waHAifSwic2hvcHBlciI6eyJ2aXNpdG9yX2lkIjoiIiwiY3VzdG9tZXJfaWQiOm51bGwsImVtYWlsIjpudWxsLCJmaXJzdF9uYW1lIjpudWxsLCJsYXN0X25hbWUiOm51bGx9LCJkYXRhX2NvbnNlbnQiOnsiZnVuY3Rpb25hbCI6ZmFsc2UsImFuYWx5dGljcyI6ZmFsc2UsImFkdmVydGlzaW5nIjpmYWxzZX0sImV2ZW50cyI6W3siYm9kbF92MV9jb25zZW50X2xvYWRlZCI6eyJldmVudF9pZCI6ImY1MzdiYmY2LTAzZjEtNDhiMy1hNTEwLTg4ZjA4MTgwODlmOSIsImFkdmVydGlzaW5nIjpmYWxzZSwiYW5hbHl0aWNzIjpmYWxzZSwiZnVuY3Rpb25hbCI6ZmFsc2V9fV19")); 714 })() 715 716 </script>
716 717
718<script nonce=""> 719(function () { 720 var xmlHttp = new XMLHttpRequest(); 721 722 xmlHttp.open('POST', 'https://bes.gcp.data.bigcommerce.com/nobot'); 723 xmlHttp.setRequestHeader('Content-Type', 'application/json'); 724 xmlHttp.send('{"store_id":"1000725952","timezone_offset":"-6.0","timestamp":"2026-09-26T06:38:12.83586000Z","visit_id":"292fa0b2-93f1-425f-88c9-07fcc5ca0a52","channel_id":1}'); 725})(); 726</script>
726 727 728 <meta name="p:domain_verify" content="5a0e01ebf4545a4a97883c9e3cdb059b"/> 729 730 731 <meta name="active-currency" content="USD"> 732 733 <meta property="og:title" content="Decorator's Warehouse - Sign in" /> 734 <meta property="og:image" content="https://cdn11.bigcommerce.com/s-zqoar2tzjl/content/ogimg.jpg" /> 735 736
736<script defer src="https://cdn11.bigcommerce.com/s-zqoar2tzjl/content/assets/js/alpinejs-plugin-focus-3.13.0.min.js"></script>
vendor: 1 bytes, line 736
736
737<script defer src="https://cdn11.bigcommerce.com/s-zqoar2tzjl/content/assets/js/alpinejs-intersect-3.13.0.min.js"></script>
vendor: 1 bytes, line 737
737
738<script defer src="https://cdn11.bigcommerce.com/s-zqoar2tzjl/content/assets/js/alpinejs-3.13.0.min.js"></script>
vendor: 1 bytes, line 738
738
739<script defer src="https://cdn11.bigcommerce.com/s-zqoar2tzjl/content/assets/js/progressbar.min.js"></script>
vendor: 1 bytes, line 739
739
740<script defer src="https://cdn11.bigcommerce.com/s-zqoar2tzjl/content/assets/js/party.min.js"></script>
740 741 742<link 743 rel="stylesheet" 744 href="https://cdn11.bigcommerce.com/s-zqoar2tzjl/content/assets/css/widgets-202607081052.css" 745/> 746 </head> 747 <body> 748 749 750 <!-- Google Tag Manager (noscript) -->
vendor: 76 bytes, lines 750-751
750 751 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
751GTM-N45SHHS
vendor: 91 bytes, lines 751-752
751" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 752
752<!-- End Google Tag Manager (noscript) --> 753 <a href="#main-content" class="sr-only skip-to-main-content">Skip To Main Content</a>
vendor: 76 bytes, lines 753-754
753 754 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
754GTM-PX3J4V8
vendor: 92 bytes, lines 754-756
754" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 755 756
756<svg data-src="https://cdn11.bigcommerce.com/s-zqoar2tzjl/stencil/32030570-9a5d-013f-a98b-120a24f73952/e/16b874b0-97e5-013f-45bc-4e388f6f202b/img/icon-sprite.svg" class="icons-svg-sprite"></svg> 757 758
758<script> 759// Load site navigation with version-based caching 760(function() { 761 const CACHE_KEY = 'dw_site_navigation'; 762 const VERSION_KEY = 'dw_site_navigation_version'; 763 const CACHE_DURATION = 24 * 60 * 60 * 1000; // 24 hours (much longer now) 764 765 const apiHost = 'https://api.decoratorswarehouse.com'; 766 767 async function checkNavigationVersion() { 768 try { 769 // Try static file first (fastest) 770 let currentVersion; 771 try { 772 const versionResponse = await fetch(`${apiHost}/navigation-version.txt?${Date.now()}`); 773 if (versionResponse.ok) { 774 currentVersion = await versionResponse.text(); 775 currentVersion = currentVersion.trim(); 776 } 777 } catch (error) { 778 console.warn('Static version file not available, using API fallback'); 779 } 780 781 if (currentVersion) { 782 // Check if we need to update navigation 783 const cachedVersion = localStorage.getItem(VERSION_KEY); 784 const cachedData = localStorage.getItem(CACHE_KEY); 785 786 if (cachedVersion === currentVersion && cachedData) { 787 console.log('Navigation is up to date, no need to fetch'); 788 // Navigation is up to date, no need to fetch 789 return; 790 } 791 } 792 793 // Version changed or no cached data, fetch fresh navigation 794 await loadNavigation(null, currentVersion); 795 796 } catch (error) { 797 console.warn('Failed to check navigation version:', error); 798 // Fallback to time-based cache check 799 fallbackToTimeBasedCache(); 800 } 801 } 802 803 function fallbackToTimeBasedCache() { 804 const cachedData = localStorage.getItem(CACHE_KEY); 805 const cachedTimestamp = localStorage.getItem('dw_site_navigation_timestamp'); 806 807 if (cachedData && cachedTimestamp) { 808 const isValidCache = (Date.now() - parseInt(cachedTimestamp)) < CACHE_DURATION; 809 if (isValidCache) { 810 return; 811 } 812 } 813 814 // Cache is stale, fetch fresh data 815 loadNavigation(); 816 } 817 818 async function loadNavigation(previewNonce = null, version = null) { 819 try { 820 const url = `${apiHost}/site-navigation`; 821 const response = await fetch(url); 822 823 if (!response.ok) { 824 throw new Error(`HTTP error! status: ${response.status}`); 825 } 826 827 const data = await response.json(); 828 const navigationData = data.data || []; 829 const navigationVersion = data.version || version; 830 831 // Cache the data (but not preview data) 832 localStorage.setItem(CACHE_KEY, JSON.stringify(navigationData)); 833 localStorage.setItem(VERSION_KEY, navigationVersion); 834 localStorage.setItem('dw_site_navigation_timestamp', Date.now().toString()); 835 836 // Dispatch custom event to notify Alpine.js component 837 window.dispatchEvent(new CustomEvent('navigationLoaded', { 838 detail: { data: navigationData } 839 })); 840 } catch (error) { 841 console.warn('Failed to load navigation:', error); 842 } 843 } 844 845 checkNavigationVersion(); 846})(); 847</script>
847 848 849<header class="header container" role="banner"> 850 <a href="#" class="mobileMenu-toggle" data-mobile-menu-toggle="menu" title="Site Navigation" aria-controls="menu" aria-expanded="false" role="button"> 851 <svg aria-hidden="true" focusable="false" data-prefix="fal" data-icon="bars" class="svg-inline--fa fa-bars" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Pro 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc.--><path d="M448 192c0-8.8-7.2-16-16-16L16 176c-8.8 0-16 7.2-16 16s7.2 16 16 16l416 0c8.8 0 16-7.2 16-16zm0 128c0-8.8-7.2-16-16-16L16 304c-8.8 0-16 7.2-16 16s7.2 16 16 16l416 0c8.8 0 16-7.2 16-16z"/></svg> 852 <svg aria-hidden="true" focusable="false" data-prefix="fal" data-icon="times" class="svg-inline--fa fa-times" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Pro 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc.--><path d="M380.2 58.3c5.7-6.7 4.9-16.8-1.9-22.5s-16.8-4.9-22.6 1.9L192 231.2 28.2 37.7c-5.7-6.7-15.8-7.6-22.5-1.9s-7.6 15.8-1.9 22.5L171 256 3.8 453.7c-5.7 6.7-4.9 16.8 1.9 22.6s16.8 4.9 22.5-1.9L192 280.8 355.8 474.3c5.7 6.7 15.8 7.6 22.6 1.9s7.6-15.8 1.9-22.6L213 256 380.2 58.3z"/></svg> 853 </a> 854 <a class="mobile-cartButton" role="button" title="Cart Preview" onClick="return document.getElementById('cart-slide-out').dispatchEvent(new CustomEvent('open')) && false" href="/cart.php" role="button"> 855 <i class="fal fa-bag-shopping"></i> 856 <span class="countPill cart-quantity"></span> 857 </a> 858 859 <div class="mobile-logo"> 860 <a href="https://decoratorswarehouse.com/" aria-label="Go to the homepage"> 861 <div class="header-logo-image-container"> 862 <img 863 class="header-logo-image" 864 src="https://cdn11.bigcommerce.com/s-zqoar2tzjl/content/nav/logo/logo2025.svg" 865 style="margin: 10px 0; object-fit: contain;" 866 alt="Decorator's Warehouse Logo" 867 width="235" 868 height="100" 869 > 870 </div> 871</a> 872 </div> 873 874 <div class="mobile-search"> 875 <div class="quick-search"> 876 <form class="form" action="https://decoratorswarehouse.com/search.php" id="quickSearch"> 877 <fieldset class="form-fieldset"> 878 <legend class="is-srOnly">Search</legend> 879 <div class="form-field"> 880 <i class="fal fa-search"></i> 881 <input class="form-input" data-search-quick type="text" name="search_query" aria-label='Search' data-error-message="Search field cannot be empty." placeholder="Search" autocomplete="off"> 882 </div> 883 </fieldset> 884 </form> 885 <section class="quickSearchResults" data-bind="html: results"></section> 886</div> 887 </div> 888 889 <div class="header-top container"> 890 <div class="header-top-left relative"> 891 <div class="quick-search"> 892 <form class="form" action="https://decoratorswarehouse.com/search.php" id="quickSearch"> 893 <fieldset class="form-fieldset"> 894 <legend class="is-srOnly">Search</legend> 895 <div class="form-field"> 896 <i class="fal fa-search"></i> 897 <input class="form-input" data-search-quick type="text" name="search_query" aria-label='Search' data-error-message="Search field cannot be empty." placeholder="Search" autocomplete="off"> 898 </div> 899 </fieldset> 900 </form> 901 <section class="quickSearchResults" data-bind="html: results"></section> 902</div> 903 </div> 904 <div class="header-top-center"> 905 <a href="https://decoratorswarehouse.com/" aria-label="Go to the homepage"> 906 <div class="header-logo-image-container"> 907 <img 908 class="header-logo-image" 909 src="https://cdn11.bigcommerce.com/s-zqoar2tzjl/content/nav/logo/logo2025.svg" 910 style="margin: 10px 0; object-fit: contain;" 911 alt="Decorator's Warehouse Logo" 912 width="235" 913 height="100" 914 > 915 </div> 916</a> 917 </div> 918 <div class="header-top-right"> 919 <nav> 920 <a href="https://decoratorswarehouse.com/login.php"> 921 Sign in 922 </a> 923 <a href="https://decoratorswarehouse.com/login.php?action=create_account"> 924 Join Us 925 </a> 926 <span class="currencySelector"> 927 <a style="white-space: nowrap;" href="#" data-dropdown="currencySelection" aria-controls="currencySelection" aria-expanded="false" role="button">Currency <i class="icon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i></a> 928 <ul class="dropdown-menu" id="currencySelection" data-dropdown-content aria-hidden="true"> 929 <li class="dropdown-menu-item" aria-selected="true" > 930 <a href="https://decoratorswarehouse.com/login.php?setCurrencyId=1" rel="nofollow" aria-label="Change currency to US Dollars" aria-current="true" > 931 <strong>US Dollars</strong> 932 </a> 933 </li> 934 <li class="dropdown-menu-item" > 935 <a href="https://decoratorswarehouse.com/login.php?setCurrencyId=2" rel="nofollow" aria-label="Change currency to CAD" > 936 CAD 937 </a> 938 </li> 939 </ul> 940</span> 941 <a href="/dw-pro-lights/wholesale" class="dpl">DW Pro Lights</a> 942 <a class="cart" 943 role="button" 944 title="Cart Preview" 945 onClick="return document.getElementById('cart-slide-out').dispatchEvent(new CustomEvent('open')) && false" 946 href="/cart.php" 947 > 948 <i class="fal fa-bag-shopping"></i>
949 <span class="countPill cart-quantity"></span> 950 <span class="sr-only">View Your Cart</span> 951 </a> 952</nav> 953 </div> 954 </div> 955 956 <div class="header-bottom" data-menu id="menu"> 957 <nav class="navPages" x-data="navigationData()" x-init="init(); loadNavigation()"> 958 <ul class="navPages-list"> 959 <!-- SEO-friendly hardcoded navigation (hidden when dynamic nav loads) --> 960 <li class="navPages-item navPages-item-page" x-show="navItems.length === 0"> 961 <a class="navPages-action has-subMenu" href="/our-christmas-collections/halloween-decorations/" style="display: flex; align-items: center;"> 962 <span>Halloween Decor</span> 963 <svg class="svg-inline--fa fa-chevron-down navPages-action-moreIcon" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="chevron-down" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"></path></svg> 964 </a> 965 </li> 966 <li class="navPages-item navPages-item-page" x-show="navItems.length === 0"> 967 <a class="navPages-action has-subMenu" href="/decorations" style="display: flex; align-items: center;"> 968 <span>Christmas Decor</span> 969 <svg class="svg-inline--fa fa-chevron-down navPages-action-moreIcon" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="chevron-down" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"></path></svg> 970 </a> 971 </li> 972 <li class="navPages-item navPages-item-page" x-show="navItems.length === 0"> 973 <a class="navPages-action has-subMenu" href="/christmas-tree-bundles" style="display: flex; align-items: center;"> 974 <span>Decor Bundles</span> 975 <svg class="svg-inline--fa fa-chevron-down navPages-action-moreIcon" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="chevron-down" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"></path></svg> 976 </a> 977 </li> 978 <li class="navPages-item navPages-item-page" x-show="navItems.length === 0"> 979 <a class="navPages-action has-subMenu" href="/artificial-christmas-trees" style="display: flex; align-items: center;"> 980 <span>Christmas Trees</span> 981 <svg class="svg-inline--fa fa-chevron-down navPages-action-moreIcon" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="chevron-down" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"></path></svg> 982 </a> 983 </li> 984 <li class="navPages-item navPages-item-page" x-show="navItems.length === 0"> 985 <a class="navPages-action has-subMenu" href="/outdoor-lighting" style="display: flex; align-items: center;"> 986 <span>Christmas Lights</span> 987 <svg class="svg-inline--fa fa-chevron-down navPages-action-moreIcon" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="chevron-down" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"></path></svg> 988 </a> 989 </li> 990 <li class="navPages-item navPages-item-page" x-show="navItems.length === 0"> 991 <a class="navPages-action has-subMenu" href="/collections" style="display: flex; align-items: center;">
992 <span>Collections</span> 993 <svg class="svg-inline--fa fa-chevron-down navPages-action-moreIcon" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="chevron-down" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"></path></svg> 994 </a> 995 </li> 996 <li class="navPages-item navPages-item-page" x-show="navItems.length === 0"> 997 <a class="navPages-action has-subMenu" href="/resources" style="display: flex; align-items: center;"> 998 <span>Resources</span> 999 <svg class="svg-inline--fa fa-chevron-down navPages-action-moreIcon" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="chevron-down" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"></path></svg> 1000 </a> 1001 </li> 1002 1003 <!-- Dynamic navigation (shown when loaded) --> 1004 <template x-for="(item, index) in navItems" :key="index"> 1005 <li class="navPages-item navPages-item-page"> 1006 <!-- Top Level Link --> 1007 <template x-if="item.type === 'link'"> 1008 <a class="navPages-action text-center" :href="item.url" :target="item.target" x-text="item.label"></a> 1009 </template> 1010 1011 <!-- Top Level Dropdown --> 1012 <template x-if="item.type === 'dropdown'"> 1013 <div x-data="{ 1014 open: false, 1015 dropdownTop: '0px', 1016 dropdownLeft: '0px', 1017 isDesktop: window.innerWidth >= 768, 1018 handleMouseEnter(event) { 1019 const link = event.currentTarget.querySelector('a'); 1020 if (link && this.isDesktop) { 1021 const rect = link.getBoundingClientRect(); 1022 const parentRect = event.currentTarget.getBoundingClientRect(); 1023 this.dropdownTop = `${rect.bottom - parentRect.top}px`; 1024 this.dropdownLeft = `-${parentRect.left}px`; 1025 } 1026 this.open = true; 1027 }, 1028 handleMouseLeave(event) { 1029 this.open = false; 1030 } 1031 }" 1032 x-init="window.addEventListener('resize', () => { isDesktop = window.innerWidth >= 768 })" 1033 @mouseenter="handleMouseEnter($event)" 1034 @mouseleave="handleMouseLeave($event)" 1035 class="navPages-dropdown-container" 1036 style="position: relative;"> 1037 <a class="navPages-action text-center has-subMenu" href="#" 1038 :title="item.label" 1039 role="button" 1040 @click.prevent="open = !open"> 1041 <span x-text="item.label"></span> 1042 <svg class="svg-inline--fa fa-chevron-down navPages-action-moreIcon" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="chevron-down" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"></path></svg> 1043 </a> 1044 1045 <div class="navPage-subMenu bg-white" 1046 :class="{'is-open': open}" 1047 :style="isDesktop ? `top: ${dropdownTop}; position: absolute; left: ${dropdownLeft}; width: 100vw; z-index: 999; transform: none !important;` : ''" 1048 x-transition:enter="transition ease-out duration-200" 1049 x-transition:enter-start="opacity-0 transform scale-95" 1050 x-transition:enter-end="opacity-100 transform scale-100" 1051 x-transition:leave="transition ease-in duration-75" 1052 x-transition:leave-start="opacity-100 transform scale-100" 1053 x-transition:leave-end="opacity-0 transform scale-95"> 1054 1055 <ul class="navPage-subMenu-list shop-menu"> 1056 <template x-for="(section, sectionIndex) in item.sections" :key="sectionIndex"> 1057 <li class="navPage-subMenu-item"> 1058 <section class="flex flex-col gap-1"> 1059 <template x-for="(sectionItem, itemIndex) in section.items" :key="itemIndex"> 1060 <div> 1061 <!-- Header --> 1062 <template x-if="sectionItem.type === 'header'"> 1063 <div class="text-black font-body text-[14px] md:text-[15px] font-medium uppercase" x-text="sectionItem.text"></div> 1064 </template> 1065 1066 <!-- Standalone Link (no header) --> 1067 <template x-if="sectionItem.type === 'link'"> 1068 <a :href="sectionItem.url" 1069 :target="sectionItem.target" 1070 :class="getLinkClass(sectionItem.style)" 1071 x-text="sectionItem.label"></a> 1072 </template> 1073 1074 <!-- Standalone Image (no header) --> 1075 <!-- max_width from nav admin (px); 0 = fill column; default 200 --> 1076 <template x-if="sectionItem.type === 'image'"> 1077 <img :src="sectionItem.url" 1078 :alt="sectionItem.alt || ''" 1079 class="navPages-promo-image max-w-full h-auto" 1080 :style="getImageStyle(sectionItem)"/> 1081 </template> 1082 1083 <!-- Standalone Separator (no header) --> 1084 <template x-if="sectionItem.type === 'separator'"> 1085 <hr class="my-1 border-gray-300"/> 1086 </template> 1087 </div> 1088 </template> 1089 </section> 1090 </li> 1091 </template> 1092 </ul> 1093 </div> 1094 </div> 1095 </template> 1096 </li> 1097 </template> 1098 1099 <li class="navPages-item navPages-item-page navPages-item-sale"> 1100 <a class="navPages-action has-subMenu" href="/daves-deals/">
1101 <span>SALE</span> 1102 </a> 1103 </li> 1104 </ul> 1105 <ul class="navPages-list navPages-list--user"> 1106 <li class="navPages-item"> 1107 <a class="navPages-action" href="https://decoratorswarehouse.com/login.php">Sign in</a> 1108 </li> 1109 <li class="navPages-item"> 1110 <a class="navPages-action" href="https://decoratorswarehouse.com/login.php?action=create_account">Join Us</a> 1111 </li> 1112 </ul> 1113</nav> 1114
1115<script> 1116function navigationData() { 1117 return { 1118 navItems: [], 1119 loading: false, 1120 error: null, 1121 1122 init() { 1123 // Listen for navigation loaded event 1124 window.addEventListener('navigationLoaded', (event) => { 1125 this.navItems = event.detail.data; 1126 }); 1127 }, 1128 1129 async loadNavigation() { 1130 // Load from localStorage cache only 1131 const CACHE_KEY = 'dw_site_navigation'; 1132 1133 try { 1134 const cachedData = localStorage.getItem(CACHE_KEY); 1135 if (cachedData) { 1136 this.navItems = JSON.parse(cachedData); 1137 } 1138 } catch (error) { 1139 console.warn('Failed to load navigation from cache:', error); 1140 } 1141 }, 1142 1143 getLinkClass(style) { 1144 const baseClass = 'text-[13px]'; 1145 switch (style) { 1146 case 'bold': 1147 return baseClass + ' font-bold'; 1148 case 'green_button': 1149 return baseClass + ' button button-sm button-green' 1150 case 'red_button': 1151 return baseClass + ' button button-sm button-red' 1152 default: 1153 return baseClass + ' text-dw-green-1'; 1154 } 1155 }, 1156 1157 /** 1158 * Promo image sizing + alignment from nav item. 1159 * max_width: px, 0 = fill column, missing = 200px default. 1160 * align: left | center | right (default center). 1161 */ 1162 getImageStyle(item) { 1163 const style = {}; 1164 const raw = item && item.max_width; 1165 1166 if (raw === 0 || raw === '0') { 1167 style.maxWidth = '100%'; 1168 style.maxHeight = 'none'; 1169 } else { 1170 const w = parseInt(raw, 10); 1171 if (Number.isFinite(w) && w > 0) { 1172 style.maxWidth = `${w}px`; 1173 style.maxHeight = `${Math.round(w * 1.4)}px`; 1174 } else { 1175 style.maxWidth = '200px'; 1176 style.maxHeight = '280px'; 1177 } 1178 } 1179 1180 const align = (item && item.align) || 'center'; 1181 if (align === 'left') { 1182 style.marginLeft = '0'; 1183 style.marginRight = 'auto'; 1184 } else if (align === 'right') { 1185 style.marginLeft = 'auto'; 1186 style.marginRight = '0'; 1187 } else { 1188 style.marginLeft = 'auto'; 1189 style.marginRight = 'auto'; 1190 } 1191 1192 return style; 1193 }, 1194 } 1195} 1196</script>
1196 1197 </div> 1198</header> 1199 1200<div 1201 x-cloak 1202 id="cart-slide-out" 1203 x-on:loading="isLoading = true" 1204 x-on:loaded="isLoading = false" 1205 x-on:open="open = true" 1206 x-on:close="open = false" 1207 x-on:toggle="open = !open" 1208 x-on:errors="errors = $event.detail" 1209 x-data="{ 1210 isLoading: true, 1211 open: false, 1212 errors: null, 1213 init() { 1214 $watch('open', (value) => { 1215 if (window.toggleBodyScrollBar) { 1216 window.toggleBodyScrollBar(value) 1217 } 1218 }) 1219 } 1220 }" 1221 class="relative z-[9999]" 1222 :class="{'pointer-events-none': !open, 'is-open': open}" 1223 aria-labelledby="cart-slide-over-title" 1224 role="dialog" 1225 aria-modal="true" 1226 :aria-hidden="!open" 1227> 1228 <div 1229 x-show="open" 1230 class="fixed inset-0 bg-[#FFF4]" 1231 style="backdrop-filter: blur(1.5px); -webkit-backdrop-filter: blur(1.5px);" 1232 x-on:click="open = false" 1233 ></div> 1234 1235 <div class="fixed inset-0 overflow-hidden" x-on:click="open = false"> 1236 <div class="absolute inset-0 overflow-hidden"> 1237 <div class="fixed inset-y-0 right-0 flex max-w-full sm:pl-16"> 1238 <div 1239 class="w-screen max-w-md" 1240 x-on:click.stop 1241 x-show="open" 1242 x-trap="open" 1243 x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700" 1244 x-transition:enter-start="translate-x-full" x-transition:enter-end="translate-x-0" 1245 x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700" 1246 x-transition:leave-start="translate-x-0" x-transition:leave-end="translate-x-full"> 1247 <form class="flex h-full flex-col divide-y divide-gray-200 bg-white shadow-xl relative overflow-auto"> 1248 <div class="bg-dw-red-2 py-6 px-4 sm:px-6"> 1249 <div class="flex items-center justify-between"> 1250 <h2 class="text-lg font-medium text-white" id="cart-slide-over-title">Your Shopping Cart</h2> 1251 <div class="ml-3 flex h-7 items-center"> 1252 <button 1253 x-on:click="open = false" 1254 type="button" 1255 class="rounded-md bg-dw-red-2 text-white hover:bg-dw-red-1 focus:outline-none focus:ring-2 focus:ring-white" 1256 > 1257 <span class="sr-only">Close Cart</span> 1258 <svg class="h-6 w-6" xmlns="http://www.w3.org/2000/svg" fill="none"
1259 viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 1260 aria-hidden="true"> 1261 <path stroke-linecap="round" stroke-linejoin="round" 1262 d="M6 18L18 6M6 6l12 12" /> 1263 </svg> 1264 </button> 1265 </div> 1266 </div> 1267 <div class="mt-1"> 1268 <p class="text-sm text-white" role="status" aria-live="polite">Ok, there are <span class="cart-quantity" data-with-items></span> in your cart. What's next?</p> 1269 </div> 1270 </div> 1271 <div class="md:h-0 md:flex-1 md:flex-grow md:overflow-y-auto"> 1272 <template x-if='isLoading === true'> 1273 <div> 1274 <div class="flex justify-center items-center absolute inset-0 z-50 bg-[#FFFA]"> 1275 <i class="text-dw-green-2 fal fa-spinner-third fa-2x fa-spin"></i> 1276 </div> 1277 </div> 1278 </template> 1279 <div class="flex flex-1 flex-col p-4 pb-0 gap-y-3"> 1280 <template x-if="errors"> 1281 <div 1282 class="alertBox alertBox--error" 1283 role="status" 1284 aria-live="polite" 1285 > 1286 <div class="alertBox-column alertBox-icon"> 1287 <icon glyph="ic-success" class="icon" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><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></svg></icon> 1288 </div> 1289 <p class="alertBox-column alertBox-message"> 1290 <span x-html="errors"></span> 1291 </p> 1292 </div> 1293 </template> 1294 </div> 1295 <div class="flex flex-1 flex-col justify-between p-4 gap-y-3" id="cart-content"></div> 1296 </div> 1297 <div class="flex" id="cart-summary"> 1298 </div> 1299 </form> 1300 </div> 1301 </div> 1302 </div> 1303 </div> 1304</div> 1305 1306<div class="banners-container"> 1307 <button class="banners-slider-prev-arrow slider-arrow" title="Previous Slide"> 1308 <svg 1309 style="width: 23px; height: 15px" 1310 aria-hidden="true" 1311 focusable="false" 1312 role="img" 1313 xmlns="http://www.w3.org/2000/svg"
1314 viewBox="0 0 23 43"> 1315 <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> 1316 <g transform="translate(12.000000, 21.500000) scale(-1, 1) translate(-12.000000, -21.500000) translate(2.000000, 1.000000)" stroke="white" stroke-width="2"> 1317 <polyline id="Path" transform="translate(10.000000, 20.500000) rotate(-90.000000) translate(-10.000000, -20.500000) " points="-10.5 10.5 10 30.5 30.5 10.5"></polyline> 1318 </g> 1319 </g> 1320 </svg> 1321 </button> 1322 <button href="#" class="banners-slider-next-arrow slider-arrow" title="Previous Slide"> 1323 <svg 1324 style="width: 23px; height: 15px" 1325 aria-hidden="true" 1326 focusable="false" 1327 role="img" 1328 xmlns="http://www.w3.org/2000/svg" 1329 viewBox="0 0 23 43"> 1330 <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> 1331 <g transform="translate(12.000000, 21.500000) scale(-1, 1) translate(-12.000000, -21.500000) translate(2.000000, 1.000000)" stroke="white" stroke-width="2"> 1332 <polyline id="Path" transform="translate(10.000000, 20.500000) rotate(-90.000000) translate(-10.000000, -20.500000) " points="-10.5 10.5 10 30.5 30.5 10.5"></polyline> 1333 </g> 1334 </g> 1335 </svg> 1336 </button> 1337 <div class="banners" data-banner-location="top"> 1338 <div class="banner"></div> 1339 </div> 1340</div> 1341 1342<div data-content-region="header_bottom"></div> 1343 1344 <div role="main" id="main-content" class="body" data-currency-code="USD"> 1345 1346 <div class="container"> 1347 <div class="login"> 1348 <h1 class="page-heading">Sign in</h1> 1349 <div class="login-row"> 1350 <form class="login-form form" action="https://decoratorswarehouse.com/login.php?action=check_login" method="post"> 1351 1352 1353 <div class="form-field"> 1354 <label class="form-label" for="login_email">Email Address:</label> 1355 <input class="form-input" name="login_email" id="login_email" type="email" required autocomplete="email"> 1356 </div> 1357 <div class="form-field"> 1358 <label class="form-label" for="login_pass">Password:</label> 1359 <input class="form-input" id="login_pass" type="password" name="login_pass" autocomplete="current-password" required> 1360 </div> 1361 <div class="form-actions"> 1362 <input type="submit" class="button button--primary" value="Sign in" role="button"> 1363 <a class="forgot-password" href="https://decoratorswarehouse.com/login.php?action=reset_password">Forgot your password?</a> 1364 </div> 1365 </form> 1366 <div class="new-customer"> 1367 <div class="panel"> 1368 <div class="panel-header"> 1369 <h2 class="panel-title">DW Perks</h2> 1370 </div> 1371 <div class="panel-body"> 1372 <p class="new-customer-intro">Create an account with us and you'll be able to:</p> 1373 <ul class="new-customer-fact-list"> 1374 <li class="new-customer-fact">Check out faster</li> 1375 <li class="new-customer-fact">Save multiple shipping addresses</li> 1376 <li class="new-customer-fact">Access your order history</li> 1377 <li class="new-customer-fact">Track new orders</li> 1378 <li class="new-customer-fact">Save items to your Wish List</li> 1379 <li class="new-customer-fact"> 1380 Earn Free DW Credit through the<br><a href="great-freight-rebate" class="underline">Great Freight Rebate</a> 1381 </li> 1382 <li class="new-customer-fact">Access unused DW Credit and apply at Checkout</li> 1383 </ul> 1384 <a href="https://decoratorswarehouse.com/login.php?action=create_account" class="button button-red">Create Account</a> 1385 </div> 1386 </div> 1387 </div> 1388 </div> 1389</div> 1390</div> 1391 1392 <div id="modal" class="modal" data-reveal data-prevent-quick-search-close> 1393 <a href="#" class="modal-close" aria-label="Close" role="button" tabindex="0">
1394 <span aria-hidden="true">×</span> 1395 </a> 1396 <div class="modal-content"></div> 1397 <div class="loadingOverlay"></div> 1398</div> 1399 <div id="alert-modal" class="modal modal--alert modal--small" data-reveal data-prevent-quick-search-close> 1400 <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> 1401 1402 <div class="modal-content"></div> 1403 1404 <div class="button-container"><button type="button" class="confirm button" data-reveal-close>OK</button></div> 1405</div> 1406</div> 1407 <footer class="footer" role="contentinfo"> 1408 <div class="container"> 1409 <section class="footer-info"> 1410 <article class="footer-info-col" data-section-type="storeInfo"> 1411 <label class="title footer-info-heading" role='heading' aria-level='2' aria-label='Visit Us'>Visit Us</label> 1412 <address>3708 West Pioneer Parkway<br> 1413Arlington, TX 76013</address> 1414 <label class="title footer-info-heading" role='heading' aria-level='2' style='margin-top: 1rem;'>HOURS</label> 1415 <div class="footer-hours">Monday - Saturday 10am - 6pm | Sunday 12pm - 5pm</div> 1416 <div class="exclusions"> 1417 * Exclusions apply. 48 Contiguous States only. 1418 </div> 1419 </article> 1420 <article class="footer-info-col" data-section-type="footer-webPages" aria-labelledby="footerShopHeading"> 1421 <label id="footerShopHeading" class="title footer-info-heading" role='heading' aria-level='2'>SHOP</label> 1422 <ul class="footer-info-list" role="list"> 1423 <li role="listitem"><a href="/collections/" title="Christmas Collections">Collections</a></li> 1424 <li role="listitem"><a href="/tree-bundles/" title="Christmas Tree Bundles">Tree Bundles</a></li> 1425 <li role="listitem"><a href="/outdoor-lighting/" title="Outdoor Lighting">Outdoor Lighting</a></li> 1426 <li role="listitem"><a href="/decorations/featured" title="Featured Items">Featured Items</a></li> 1427 <li role="listitem"><a href="/daves-deals/" title="Dave's Deals">Dave's Deals</a></li> 1428 <li role="listitem"><a href="/about-us/">About Us</a></li> 1429 </ul> 1430 </article> 1431 1432 <article class="footer-info-col" data-section-type="footer-webPages" aria-labelledby="footerSupportHeading"> 1433 <label id="footerSupportHeading" class="title footer-info-heading" role='heading' aria-level='2'>SUPPORT</label> 1434 <ul class="footer-info-list" role="list"> 1435 <li role="listitem"><a href="/shipping-policy" title="Shipping Policy">Shipping</a></li> 1436 <li role="listitem"><a href="/return-policy" title="Return Policy">Returns</a></li> 1437 <li role="listitem"><a href="/christmas-tree-warranty/" title="Christmas Tree Warranty">Christmas Tree Warranty</a></li> 1438 <li role="listitem"><a href="/privacy-policy" title="Privacy Policy">Privacy Policy</a></li> 1439 <li role="listitem"><a href="/terms-of-use" title="Terms of Use">Terms</a></li> 1440 <li role="listitem"><a href="/contact-us" title="Contact Us">Contact Us</a></li> 1441 <li role="listitem"><a href="/join-our-team" title="Contact Us">Join Our Team</a></li> 1442 <li role="listitem"><a href="/accessibility-statement" title="Contact Us">Accessibility Statement</a></li> 1443 </ul> 1444 </article> 1445 1446 <article class="footer-info-col" data-section-type="footer-webPages" aria-labelledby="footerAccountHeading"> 1447 <label id="footerAccountHeading" class="title footer-info-heading" role='heading' aria-level='2'>ACCOUNT</label> 1448 <ul class="footer-info-list" role="list"> 1449 <li role="listitem"><a href="/account.php?action=order_status" title="Orders">Orders</a></li> 1450 <li role="listitem"><a href="/contact-us" title="Account Messages">Messages</a></li> 1451 <li role="listitem"><a href="/wishlist.php" title="Wish List">Wish Lists</a></li> 1452 <li role="listitem"><a href="/account.php?action=account_details" title="Account Settings">Account Settings</a></li> 1453 </ul> 1454 </article> 1455 1456 <article class="footer-info-col flex-end"> 1457 <a href="/"> 1458 <img 1459 aria-hidden="true" 1460 class="lazyload" 1461 data-src="https://cdn11.bigcommerce.com/s-zqoar2tzjl/images/stencil/original/content/nav/logo/logo-white-2024.png" 1462 width="163" 1463 height="93" 1464 alt="Decorator's Warehouse Logo" /> 1465
1466 <span class="sr-only">Decorator's Warehouse Homepage</a> 1467 </a> 1468 <ul class="socialLinks socialLinks--alt" role="list"> 1469 <li class="socialLinks-item" role="listitem"> 1470 <a class="icon icon--instagram" href="https://www.instagram.com/decoratorswarehouse/" target="_blank" title="Visit Decorator's Warehouse on instagram"> 1471 <svg><use xlink:href="#icon-instagram" /></svg> 1472 </a> 1473 </li> 1474 <li class="socialLinks-item" role="listitem"> 1475 <a class="icon icon--facebook" href="https://www.facebook.com/decoratorswarehousearlington" target="_blank" title="Visit Decorator's Warehouse on facebook"> 1476 <svg><use xlink:href="#icon-facebook" /></svg> 1477 </a> 1478 </li> 1479 <li class="socialLinks-item" role="listitem"> 1480 <a class="icon icon--pinterest" href="https://www.pinterest.com/Decwarehouse/" target="_blank" title="Visit Decorator's Warehouse on pinterest"> 1481 <svg><use xlink:href="#icon-pinterest" /></svg> 1482 </a> 1483 </li> 1484 <li class="socialLinks-item" role="listitem"> 1485 <a class="icon icon--youtube" href="https://www.youtube.com/channel/UCoPljou2jt0fjEWz3ibalOw/videos" target="_blank" title="Visit Decorator's Warehouse on youtube"> 1486 <svg><use xlink:href="#icon-youtube" /></svg> 1487 </a> 1488 </li> 1489 </ul> 1490 <form class="newsletter form" action="https://decoratorswarehouse.com/subscribe.php" method="post" aria-labelledby="subscriptionFormLabel"> 1491 <label id='subscriptionFormLabel' class="footer-info-heading subscribe-title">STAY CONNECTED & GET SPECIAL OFFERS</label> 1492 <fieldset class="form-fieldset"> 1493 <legend class="is-srOnly">Newsletter Subscription</legend> 1494 <input type="hidden" name="action" value="subscribe"> 1495 <input type="hidden" name="nl_first_name" value="bc"> 1496 <input type="hidden" name="check" value="1"> 1497 <div class="form-field"> 1498 <label class="form-label is-srOnly" for="nl_email_footer">Email Address</label> 1499 <div class="form-prefixPostfix wrap"> 1500 <input class="form-input" id="nl_email_footer" name="nl_email" type="email" value="" placeholder="EMAIL ADDRESS" required aria-label="Email Address" autocomplete="email"> 1501 <input role="button" class="button button-red form-prefixPostfix-button--postfix" type="submit" value="SUBMIT"> 1502 </div> 1503 </div> 1504 </fieldset> 1505</form> 1506 </article> 1507 </section> 1508 </div> 1509 <div class="footer-bottom"> 1510 <div class="container"> 1511 <div class="footer-copyright"> 1512 <p class="powered-by"> 1513 © 2026 Decorator's Warehouse 1514 — <a href="/blog/tag/collections" title="Decorator's Warehouse Blog">Blog</a> 1515 — Web design by <a href="https://eversite.com" target="_blank">Eversite</a> 1516 </p> 1517 </div> 1518 </div> 1519 </div> 1520</footer> 1521
1522<script type='text/javascript'> 1523(function() { 1524 var $lightWidget = document.getElementById("lightwidget"); 1525 if ($lightWidget) { 1526 var mediaQuery = window.matchMedia('(min-width: 768px)') 1527 if (true || mediaQuery.matches) { // for now, leave the social widget on mobile as well 1528 setTimeout(function() { 1529 for (var idx = 0; idx < $lightWidget.children.length; idx++) { 1530 $lightWidget.children[idx].setAttribute("src", $lightWidget.children[idx].getAttribute("data-src")); 1531 } 1532 }, 2000); 1533 } else { 1534 $lightWidget.remove(); 1535 } 1536 } 1537})(); 1538</script>
1538 1539 1540
1540<script src="https://cdn.jsdelivr.net/npm/swiper@10/swiper-bundle.min.js"></script>
1540 1541
1541<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.min.js"></script>
1541 1542
1542<script>window.__webpack_public_path__ = "https://cdn11.bigcommerce.com/s-zqoar2tzjl/stencil/32030570-9a5d-013f-a98b-120a24f73952/e/16b874b0-97e5-013f-45bc-4e388f6f202b/dist/";</script>
1542 1543
1543<script src="https://cdn11.bigcommerce.com/s-zqoar2tzjl/stencil/32030570-9a5d-013f-a98b-120a24f73952/e/16b874b0-97e5-013f-45bc-4e388f6f202b/dist/theme-bundle.main.js"></script>
1543 1544
1544<script src="https://kit.fontawesome.com/d3639a8563.js" crossorigin="anonymous" defer></script>
1544 1545
1545<script> 1546 window.stencilBootstrap("login", "{\"themeSettings\":{\"optimizedCheckout-formChecklist-color\":\"#333333\",\"homepage_new_products_column_count\":4,\"card--alternate-color--hover\":\"#ffffff\",\"optimizedCheckout-colorFocus\":\"#4496f6\",\"fontSize-root\":18,\"show_accept_amex\":false,\"optimizedCheckout-buttonPrimary-borderColorDisabled\":\"transparent\",\"homepage_top_products_count\":20,\"paymentbuttons-paypal-size\":\"responsive\",\"optimizedCheckout-buttonPrimary-backgroundColorActive\":\"#000000\",\"brandpage_products_per_page\":60,\"color-secondaryDarker\":\"#cccccc\",\"navUser-color\":\"#175230\",\"color-textBase--active\":\"#757575\",\"social_icon_placement_bottom\":\"bottom_none\",\"show_powered_by\":true,\"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\":\"#846E35\",\"gold\":\"#88753e\",\"pdp-sale-price-label\":\"Now:\",\"optimizedCheckout-buttonSecondary-backgroundColorHover\":\"#f5f5f5\",\"optimizedCheckout-headingPrimary-font\":\"Libre Baskerville\",\"logo_size\":\"250x100\",\"optimizedCheckout-formField-backgroundColor\":\"#ffffff\",\"footer-backgroundColor\":\"#175230\",\"navPages-color\":\"#333333\",\"productpage_reviews_count\":9,\"optimizedCheckout-step-borderColor\":\"#dddddd\",\"show_accept_paypal\":false,\"paymentbuttons-paypal-label\":\"checkout\",\"footer-link-color--hover\":\"#cbb47a\",\"paymentbuttons-paypal-shape\":\"pill\",\"optimizedCheckout-discountBanner-textColor\":\"#333333\",\"optimizedCheckout-backgroundImage-size\":\"1000x400\",\"pdp-retail-price-label\":\"MSRP:\",\"optimizedCheckout-buttonPrimary-font\":\"futura-pt\",\"carousel-dot-color\":\"#333333\",\"button--disabled-backgroundColor\":\"#cccccc\",\"blockquote-cite-font-color\":\"#999999\",\"optimizedCheckout-formField-shadowColor\":\"transparent\",\"categorypage_products_per_page\":60,\"container-fill-base\":\"#ffffff\",\"paymentbuttons-paypal-layout\":\"vertical\",\"homepage_featured_products_column_count\":4,\"button--default-color\":\"#666666\",\"pace-progress-backgroundColor\":\"#999999\",\"footer-header-color\":\"#cbb47a\",\"color-textLink--active\":\"#846E35\",\"optimizedCheckout-loadingToaster-backgroundColor\":\"#333333\",\"color-textHeading\":\"#444444\",\"show_accept_discover\":false,\"optimizedCheckout-formField-errorColor\":\"#B00F19\",\"spinner-borderColor-dark\":\"#999999\",\"restrict_to_login\":false,\"input-font-color\":\"#666666\",\"select-bg-color\":\"#ffffff\",\"show_accept_mastercard\":false,\"show_custom_fields_tabs\":false,\"color_text_product_sale_badges\":\"#ffffff\",\"optimizedCheckout-link-font\":\"futura-pt\",\"homepage_show_carousel_arrows\":true,\"supported_payment_methods\":[\"card\",\"paypal\"],\"carousel-arrow-bgColor\":\"#ffffff\",\"lazyload_mode\":\"lazyload\",\"carousel-title-color\":\"#FFFFFF\",\"color_hover_product_sale_badges\":\"#b00f19\",\"show_accept_googlepay\":false,\"card--alternate-borderColor\":\"#ffffff\",\"homepage_new_products_count\":5,\"button--disabled-color\":\"#ffffff\",\"color-primaryDark\":\"#666666\",\"color-grey\":\"#999999\",\"optimizedCheckout-step-textColor\":\"#ffffff\",\"optimizedCheckout-buttonPrimary-borderColorActive\":\"transparent\",\"navPages-subMenu-backgroundColor\":\"#175230\",\"homepage_hours_of_operation\":\"Monday - Saturday 10am - 6pm | Sunday 12pm - 5pm\",\"body-font\":\"futura-pt\",\"button--primary-backgroundColor\":\"#444444\",\"optimizedCheckout-formField-borderColor\":\"#888888\",\"checkRadio-color\":\"#333333\",\"show_product_dimensions\":false,\"optimizedCheckout-link-color\":\"#476bef\",\"card-figcaption-button-background\":\"#ffffff\",\"icon-color-hover\":\"#999999\",\"button--default-borderColor\":\"#cccccc\",\"optimizedCheckout-headingSecondary-font\":\"Libre Baskerville\",\"headings-font\":\"Libre Baskerville\",\"label-backgroundColor\":\"#cccccc\",\"button--primary-backgroundColorHover\":\"#666666\",\"pdp-non-sale-price-label\":\"Was:\",\"button--disabled-borderColor\":\"transparent\",\"label-color\":\"#ffffff\",\"optimizedCheckout-headingSecondary-color\":\"#333333\",\"social_share_img\":\"https://cdn11.bigcommerce.com/s-zqoar2tzjl/content/ogimg.jpg\",\"select-arrow-color\":\"#757575\",\"logo_fontSize\":28,\"alert-backgroundColor\":\"#ffffff\",\"optimizedCheckout-logo-size\":\"250x100\",\"default_image_brand\":\"img/BrandDefault.gif\",\"footer-color\":\"#e9f2ed\",\"card-title-color\":\"#175230\",\"optimizedCheckout-link-hoverColor\":\"#002fe1\",\"fontSize-h5\":15,\"footer-link-color\":\"#e9f2ed\",\"product_list_display_mode\":\"grid\",\"product_size\":\"500x659\",\"paymentbuttons-paypal-color\":\"gold\",\"homepage_show_carousel\":true,\"optimizedCheckout-body-backgroundColor\":\"#ffffff\",\"carousel-arrow-borderColor\":\"#ffffff\",\"silver\":\"#F0F2F1\",\"button--default-borderColorActive\":\"#757575\",\"paymentbuttons-paypal-tagline\":false,\"color-greyDarkest\":\"#000000\",\"color_badge_product_sale_badges\":\"#b00f19\",\"price_ranges\":true,\"productpage_videos_count\":8,\"header-backgroundColor\":\"#ffffff\",\"container-width\":1500,\"carousel-action-bgColor\":\"#88753e\",\"color-greyDark\":\"#666666\",\"optimizedCheckout-buttonSecondary-borderColorHover\":\"#999999\",\"optimizedCheckout-discountBanner
1546-iconColor\":\"#333333\",\"show_product_add_to_cart\":true,\"optimizedCheckout-buttonSecondary-borderColor\":\"#cccccc\",\"optimizedCheckout-loadingToaster-textColor\":\"#ffffff\",\"optimizedCheckout-buttonPrimary-colorDisabled\":\"#ffffff\",\"optimizedCheckout-formField-placeholderColor\":\"#999999\",\"navUser-color-hover\":\"#757575\",\"icon-ratingFull\":\"#757575\",\"default_image_gift_certificate\":\"img/GiftCertificate.png\",\"color-textBase--hover\":\"#757575\",\"color-errorLight\":\"#ffdddd\",\"social_icon_placement_top\":false,\"footer_exclusions_apply\":\"Exclusions apply. 48 Contiguous States only.\",\"blog_size\":\"190x250\",\"shop_by_price_visibility\":true,\"optimizedCheckout-buttonSecondary-colorActive\":\"#000000\",\"optimizedCheckout-orderSummary-backgroundColor\":\"#ffffff\",\"color-warningLight\":\"#fffdea\",\"show_product_weight\":true,\"dark_gray\":\"#333333\",\"button--default-colorActive\":\"#000000\",\"color-info\":\"#666666\",\"navPages-subMenu-heading-color\":\"#88753e\",\"optimizedCheckout-formChecklist-backgroundColorSelected\":\"#f5f5f5\",\"show_product_quick_view\":true,\"button--default-borderColorHover\":\"#999999\",\"card--alternate-backgroundColor\":\"#ffffff\",\"navUser-backgroundColor\":\"#F0F2F1\",\"hide_content_navigation\":false,\"pdp-price-label\":\"\",\"show_copyright_footer\":true,\"swatch_option_size\":\"22x22\",\"optimizedCheckout-show-logo\":\"none\",\"carousel-description-color\":\"#60A67E\",\"optimizedCheckout-formChecklist-backgroundColor\":\"#ffffff\",\"optimizedCheckout-orderSummary-borderColor\":\"#dddddd\",\"green\":\"#175230\",\"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\":\"#333333\",\"searchpage_products_per_page\":60,\"color-textSecondary--active\":\"#333333\",\"optimizedCheckout-formField-inputControlColor\":\"#476bef\",\"optimizedCheckout-contentPrimary-color\":\"#333333\",\"optimizedCheckout-buttonSecondary-font\":\"futura-pt\",\"storeName-color\":\"#333333\",\"optimizedCheckout-backgroundImage\":\"\",\"form-label-font-color\":\"#666666\",\"color-greyLightest\":\"#e5e5e5\",\"optimizedCheckout-header-backgroundColor\":\"#f5f5f5\",\"productpage_related_products_count\":15,\"optimizedCheckout-buttonSecondary-backgroundColorActive\":\"#e5e5e5\",\"color-textLink\":\"#88753e\",\"color-greyLighter\":\"#cccccc\",\"color-secondaryDark\":\"#e5e5e5\",\"fontSize-h6\":13,\"paymentbuttons-paypal-fundingicons\":false,\"carousel-arrow-color\":\"#999999\",\"productpage_similar_by_views_count\":15,\"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\":\"#175230\",\"color-infoLight\":\"#dfdfdf\",\"product_sale_badges\":\"burst\",\"default_image_product\":\"img/ProductDefault.gif\",\"navUser-dropdown-borderColor\":\"#cccccc\",\"optimizedCheckout-buttonPrimary-colorActive\":\"#ffffff\",\"color-greyMedium\":\"#757575\",\"show_product_rating\":true,\"optimizedCheckout-formChecklist-borderColor\":\"#cccccc\",\"fontSize-h1\":28,\"homepage_featured_products_count\":4,\"color-greyLight\":\"#999999\",\"optimizedCheckout-logo\":\"\",\"icon-ratingEmpty\":\"#cccccc\",\"show_product_details_tabs\":true,\"icon-color\":\"#757575\",\"overlay-backgroundColor\":\"#333333\",\"input-border-color-active\":\"#666666\",\"hide_contact_us_page_heading\":true,\"container-fill-dark\":\"#e5e5e5\",\"christmas-tree-slider\":[],\"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\":\"#175230\",\"carousel-dot-color-active\":\"#757575\",\"input-border-color\":\"#888888\",\"optimizedCheckout-buttonPrimary-backgroundColor\":\"#333333\",\"color-secondary\":\"#ffffff\",\"button--primary-backgroundColorActive\":\"#000000\",\"color-textSecondary--hover\":\"#333333\",\"color-whitesBase\":\"#e5e5e5\",\"body-bg\":\"#ffffff\",\"dropdown--quickSearch-backgroundColor\":\"#e5e5e5\",\"optimizedCheckout-contentSecondary-font\":\"futura-pt\",\"navUser-dropdown-backgroundColor\":\"#ffffff\",\"color-primary\":\"#757575\",\"o
1546ptimizedCheckout-contentPrimary-font\":\"futura-pt\",\"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,\"navPages-subMenu-link-color\":\"#175230\",\"navPages-menu-color\":\"#175230\",\"optimizedCheckout-buttonSecondary-colorHover\":\"#333333\",\"hide_breadcrumbs\":false,\"button--primary-colorActive\":\"#ffffff\",\"homepage_stretch_carousel_images\":false,\"optimizedCheckout-contentSecondary-color\":\"#666666\",\"card-title-color-hover\":\"red\",\"applePay-button\":\"black\",\"thumb_size\":\"100x100\",\"optimizedCheckout-buttonPrimary-borderColor\":\"#333333\",\"navUser-indicator-backgroundColor\":\"#175230\",\"optimizedCheckout-buttonSecondary-borderColorActive\":\"#757575\",\"hide_blog_page_heading\":true,\"optimizedCheckout-header-textColor\":\"#333333\",\"hide_category_page_heading\":true,\"optimizedCheckout-show-backgroundImage\":false,\"color-primaryLight\":\"#999999\",\"footer-bottom-backgroundColor\":\"#1f3b2b\",\"show_accept_visa\":false,\"logo-position\":\"center\",\"show_product_reviews_tabs\":true,\"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\",\"red\":\"#B00F19\",\"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\",\"carousel-action-color\":\"#FFFFFF\",\"gallery_size\":\"300x300\"},\"genericError\":\"Oops! Something went wrong.\",\"maintenanceMode\":[],\"urls\":{\"home\":\"https://decoratorswarehouse.com/\",\"brands\":\"https://decoratorswarehouse.com/brands/\",\"search\":\"https://decoratorswarehouse.com/search.php\",\"compare\":\"https://decoratorswarehouse.com/compare\",\"sitemap\":\"https://decoratorswarehouse.com/sitemap.php\",\"contact_us_submit\":\"https://decoratorswarehouse.com/pages.php?action=sendContactForm\",\"subscribe\":{\"action\":\"https://decoratorswarehouse.com/subscribe.php\"},\"checkout\":{\"single_address\":\"https://decoratorswarehouse.com/checkout\",\"multiple_address\":\"https://decoratorswarehouse.com/checkout.php?action=multiple\"},\"account\":{\"orders\":{\"all\":\"https://decoratorswarehouse.com/account.php?action=order_status\",\"completed\":\"https://decoratorswarehouse.com/account.php?action=view_orders\",\"save_new_return\":\"https://decoratorswarehouse.com/account.php?action=save_new_return\"},\"returns\":\"https://decoratorswarehouse.com/account.php?action=view_returns\",\"addresses\":\"https://decoratorswarehouse.com/account.php?action=address_book\",\"inbox\":\"https://decoratorswarehouse.com/account.php?action=inbox\",\"send_message\":\"https://decoratorswarehouse.com/account.php?action=send_message\",\"add_address\":\"https://decoratorswarehouse.com/account.php?action=add_shipping_address\",\"update_action\":\"https://decoratorswarehouse.com/account.php?action=update_account\",\"details\":\"https://decoratorswarehouse.com/account.php?action=account_details\",\"recent_items\":\"https://decoratorswarehouse.com/account.php?action=recent_items\",\"index\":\"https://decoratorswarehouse.com/account.php\",\"wishlists\":{\"all\":\"https://decoratorswarehouse.com/wishlist.php\",\"add\":\"https://decoratorswarehouse.com/wishlist.php?action=addwishlist\",\"edit\":\"https://decoratorswarehouse.com/wishlist.php?action=editwishlist\",\"delete\":\"https://decoratorswarehouse.com/wishlist.php?action=deletewishlist\"}},\"auth\":{\"login\":\"https://decoratorswarehouse.com/login.php\",\"check_login\":\"https://decoratorswarehouse.com/login.php?action=check_login\",\"create_account\":\"https://decoratorswarehouse.com/login.php?action=create_account\",\"save_new_account\":\"https://decoratorswarehouse.com/login.php?action=save_new_account\",\"forgot_password\":\"https://decoratorswarehouse.com/login.php?action=reset_password\",\"send_password_email\":\"https://decoratorswarehouse.com/login.php?action=send_password_email\",\"save_new_password\":\"https://decoratorswarehouse.com/login.php?action=save_new_password\",\"logout\":\"https://decoratorswarehouse.com/login.php?action=logout\"},\"cart\":\"https://decoratorswarehouse.com/cart.php\",\"product\":{\"post_review\":\"https://decoratorswarehouse.com/postreview.php\"},\"gift_certificate\":{\"purchase\":\"https://decoratorswarehouse.com/giftcertificates.php\",\"redeem\":\"https://decoratorswarehouse.com/giftcertificates.php?action=redeem\",\"balance\":\"https://decoratorswarehouse.com/giftcertificates.php?action=balance\"},\"rss\":{\"products\":[]}},\"secureBaseUrl\":\"https://decoratorswarehouse.com\",\"cartId\":null,\"template\":\"pages/auth/login\",\"customerGroupId\":null,\"useValidEmail\":\"Please use a valid email address, such as [email protected].\",\"enterPass\":\"You must enter a password.\"}").load(); 1547 </script>
1547 1548
1548<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js.cookie.min.js"></script>
1548 1549 1550
1550<script type="text/javascript" src="https://cdn11.bigcommerce.com/shared/js/csrf-protection-header-5eeddd5de78d98d146ef4fd71b2aedce4161903e.js"></script>
vendor: 1 bytes, line 1550
1550
1551<script src="https://apis.google.com/js/platform.js?onload=renderBadge" async defer ></script>
1551 1552 1553 1554<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 1554-1555
1554 1555<script async src="https://www.googletagmanager.com/gtag/js?id=
1555AW-779432509
vendor: 12 bytes, line 1555
1555"></script>
1556<script> 1557Â window.dataLayer = window.dataLayer || []; 1558Â function gtag(){dataLayer.push(arguments);} 1559Â gtag('js', new Date()); 1560Â gtag('config', 'AW-779432509'); 1561</script>
1561<script data-cfasync="false">(function(w,i,s,e){window[w]=window[w]||function(){(window[w].q=window[w].q||[]).push(arguments)};window[w].l=Date.now();s=document.createElement('script');e=document.getElementsByTagName('script')[0];s.defer=1;s.src=i;e.parentNode.insertBefore(s, e)})('wisepops', 'https://wisepops.net/loader.js?v=2&h=HD8Q9Xz2Sh');</script>
1561<script data-bc-cookie-consent="4" type="text/plain" id="merchantWidgetScript" src="https://www.gstatic.com/shopping/merchant/merchantwidget.js" defer></script>
vendor: 1 bytes, line 1561
1561
1562<script data-bc-cookie-consent="4" type="text/plain"> 1563merchantWidgetScript.addEventListener('load', function () { 1564 merchantwidget.start({ position: 'RIGHT_BOTTOM' }); 1565}); 1566</script>
1566 1567
1567<script>window.__CF$cv$params={r:'a41043b20d642318',t:'MTc5MDQwNDY5Mg==',u:'01a0dc6f8c407294bef07ff05449f7ec',ut:'ErpZvL8NEcrsTkbTJOftxYzDlwtjYjbJpO.vQq4_VP4-1790404693-1.2.1.1-QBkUs.xWks1kcsD.uTY_e_UWCBHmSsSVTKH0mqeeuaNqEAnxGy4isttPthTZjrpRDek_kJdWNMk5OQlAnwGPcDzEpH.PNINUBMD6Uks567M',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>
1567</body> 1568</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.