(function() { function bxBootstrap() { var re = /bot|crawl|slurp|spider|mediapartners|headlesschrome|snap-prefetch|remotasks|woorank|uptime\.com|facebookexternalhit|facebookcatalog/i; if (re.test(navigator.userAgent) || navigator.userAgent == '') { return; } if (!(window.bouncex&&bouncex.website)) { var pushedData = []; if(window.bouncex && bouncex.push && bouncex.length){ pushedData = bouncex; } window.bouncex = {}; bouncex.pushedData = pushedData; bouncex.website = {"id":2941,"name":"Casper | Canada | English","cookie_name":"bounceClientVisit2941","domain":"casper.com","ct":"bind_to_domain","ally":0,"ei":1,"tcjs":"","cjs":"/* Wrike 764994937 */\nbouncex.wkndCarousel = function(id, rotate, delay) {\n var $campaign = bouncex.campaigns[id],\n $bxGroupCustom = $campaign.obj1.find('.bx-group-custom'),\n bxDelay = delay ? delay : 7000,\n stepIndex = 1;\n \n function setNextStep() {\n if ($campaign.current_step === $campaign.numSteps) {\n stepIndex = 1;\n } else {\n stepIndex = $campaign.current_step;\n stepIndex++;\n }\n bouncex.setJumpStep(id, stepIndex, false);\n }\n \n function setPrevStep() {\n if ($campaign.current_step === 1) {\n stepIndex = $campaign.numSteps;\n } else {\n stepIndex = $campaign.current_step;\n stepIndex--;\n }\n bouncex.setJumpStep(id, stepIndex, false);\n }\n \n function bxCustomStepChange() {\n if ($campaign.jumpStep) {\n $campaign.next_step = $campaign.jumpStep;\n $campaign.jumpStep = false;\n }\n \n if ($campaign.next_step <= $campaign.numSteps) {\n $campaign.obj2.find('.bx-step-' + id + '-' + $campaign.current_step).removeClass('bx-active-step');\n $campaign.obj2.find('.bx-step-' + id + '-' + $campaign.next_step).addClass('bx-active-step');\n $campaign.obj2.removeClass('bx-active-step-' + $campaign.current_step).addClass('bx-active-step-' + $campaign.next_step);\n $campaign.current_step = $campaign.next_step;\n $campaign.next_step++;\n }\n \n bouncex.alignCampaign(id);\n $campaign.focusableEls = $campaign.obj1.find('form, :input, a').not(':hidden, .bx-ally-tab-decoy, .bx-carb-trap, .bx-ally-no-focus');\n }\n \n function setBxTimer() {\n clearInterval($campaign.bxCarousel);\n $campaign.bxCarousel = bouncex.setInterval2(function(){\n setNextStep();\n bxCustomStepChange();\n }, bxDelay);\n }\n \n for(var i = 0; i < $campaign.numSteps; i++) {\n var navButton = '
';\n $bxGroupCustom.append(navButton);\n }\n \n $bxGroupCustom.each(function(key, value){\n var customGroup = jQuery(value),\n stepID = customGroup.parents('form').attr('id').slice(-1);\n \n if(!!stepID) {\n customGroup.find('.bx-mobile-nav-'+stepID).addClass('bx-mobile-nav-active');\n }\n });\n \n bouncex.on($bxGroupCustom, 'click.bx-'+id, function(e){\n var eTarget = jQuery(e.target);\n \n if(eTarget.hasClass('bx-lineshape') || eTarget.hasClass('bx-mobile-nav')){\n clearInterval($campaign.bxCarousel);\n \n if (eTarget.hasClass('bx-lineshape')) {\n eTarget.parent().next('.bx-row-line').length > 0 ? setPrevStep() : setNextStep();\n } else {\n var stepNo = eTarget.attr('class').slice(-1);\n bouncex.setJumpStep(id, stepNo, false);\n }\n \n bouncex.nextStep(id);\n \n if (rotate) {\n setBxTimer();\n }\n }\n });\n \n if (rotate) {\n setBxTimer();\n }\n};\n\nbouncex.closeWkndCarousel = function(id, rotate) {\n var $campaign = bouncex.campaigns[id];\n \n $campaign.obj1.find('.bx-mobile-nav').remove();\n bouncex.off($campaign.obj1.find('.bx-group-custom'), 'click.bx-'+id);\n if (rotate) {\n clearInterval($campaign.bxCarousel);\n }\n}; \n\n\n/* MW: track sessions https://www.wrike.com/open.htm?id=227974108 */\nvar currentVID = bouncex.cookie.vid;\nvar lastVID = bouncex.vars.session_vid;\nvar lastCount = bouncex.vars.session_count;\n\nif (lastVID !== currentVID) {\n bouncex.setVar('session_vid', currentVID); // update to current VID\n bouncex.setVarAndReload('session_count', lastCount + 1); // increase count\n}\n\nbouncex.infoStore = {\n\tsessionStorageIdentifier: 'bxInfoStore',\n\tset: function(data) {\n\t var hashedData = bouncex.lz.compressToURI(JSON.stringify(data));\n\t try {\n\t\tsessionStorage.setItem(this.sessionStorageIdentifier, hashedData);\n\t } catch(e) {\n\t\tbouncex.err('session storage failure');\n\t }\n\t},\n\tget: function() {\n\t var email = sessionStorage.getItem(this.sessionStorageIdentifier);\n\t\t return email ? JSON.parse(bouncex.lz.decompressFromURI(email)) : '';\n\t},\n\tinfoIsStored: function() {\n\t return !!sessionStorage.getItem(this.sessionStorageIdentifier);\n\t},\n\tpopulateFields: function(fields) {\n\t if (!this.infoIsStored()) return;\n\t \n\t var data = this.get();\n\t for (var field in fields) {\n\t\tif (fields.hasOwnProperty(field)) {\n\t\t fields[field].val(data[field]);\n\t\t}\n\t }\n\t}\n };\n ","force_https":false,"waypoints":false,"content_width":0,"gai":"","swids":"","sd":0,"ljq":"auto","campaign_id":0,"is_preview":false,"aco":{"first_party_limit":"3500","local_storage":"1"},"cmp":{"gdpr":1,"gmp":0,"whitelist_check":0},"burls":[],"ple":false,"fbe":false,"ffs":"","mas":1,"map":1,"gar":true,"ete":1,"ettm":true,"etjs":"bouncex.et.item.requireImageLoad = false;\n\n/* --------------------------------- SHARED VARIABLES -------------------------------- */\n\nvar CLEAN_URL = bouncex.utils.url.allowParams();\n\n/* ------------------------------ ITEM TRACKING ----------------------------- */\n\nfunction trackItem() {\n var item = getItemData();\n fireItemEvents(item);\n\n bouncex.et.onVarChange('product_sku', function (oldVal, newVal) {\n if (!oldVal || !newVal) {\n return;\n }\n var item = getItemData();\n fireItemEvents(item);\n return;\n });\n}\n\nfunction getItemId(dataObj) {\n return dataObj.sku || getBundleId(dataObj.name);\n}\n\nfunction getSelectedProduct() {\n return window.bx_selected_product || {};\n}\n\n// setting defaults for custom metadata\nfunction getItemData() {\n var dataObj = getSelectedProduct();\n return {\n id: getItemId(dataObj),\n copy: dataObj.name,\n category: getItemCategory(),\n url: CLEAN_URL,\n imageurl: dataObj.imageUrl,\n price: dataObj.price || '',\n size: dataObj.size || '',\n instock: dataObj.inStock,\n is_mattress: isMattress() ? 1 : 0,\n avg_rating: Number(dataObj.avgRating) || '',\n total_reviews: Number(dataObj.totalReviews) || '',\n review_headline: dataObj.featReviewHeadline || '',\n review_text: dataObj.featReviewMessage || '',\n reviewer_name: dataObj.featReviewNameFeatured || '',\n review_stars: getStars(dataObj.avgRating)\n }\n}\n\nfunction getBundleId(bundleName) {\n return bundleName.toLowerCase()\n .replace(/ /g, '-')\n .replace(/[^\\w-]+/g, '');\n}\n\nfunction getItemCategory() {\n return isMattress() ? 'mattress' : 'notmattress';\n}\n\nfunction isMattress() {\n return (jQuery('meta[name=\"description\"]').attr('content') || '').toLowerCase().indexOf('mattress') > -1;\n}\n\nfunction getStars(reviewAvg) {\n if (!reviewAvg) { return 0; }\n var stars = (Math.round(reviewAvg * 2) / 2) || 0;\n return stars.toFixed(1);\n}\n\nfunction fireItemEvents(item) {\n if (item) {\n bouncex.push(['item', item]);\n bouncex.push(['view item', { 'item:id': item.id }]);\n }\n return;\n}\n\n\n/* ---------------------------- CATEGORY TRACKING --------------------------- */\nfunction initializeQuickviewTracking() {\n var lastIdFired;\n bouncex.et.onVarChange('qv_id', function (oldVal, newVal) {\n // we are preventing the same ID from firing twice in a row\n if (newVal && lastIdFired !== newVal) {\n lastIdFired = newVal;\n bouncex.push(['view item', { 'item:id': newVal }]);\n }\n });\n}\n\nfunction initializeMattressCategoryTracking() {\n if (window.location.pathname === '/mattresses' || window.location.pathname === '/mattresses/v1') {\n bouncex.push(['view_mattress_category', {}]);\n }\n return;\n}\n\n/* ------------------------------- CART EVENTS ------------------------------ */\n\nfunction fireAddToCart(itemId, replenObj) {\n if (!itemId || !replenObj.pid) {\n return;\n }\n bouncex.push([\n 'add to cart',\n {\n 'item:id': itemId,\n 'cart:item': bouncex.stringify(replenObj)\n }\n ]);\n\n if (!bouncex.vars.cart) {\n bouncex.setVar('cart', true);\n }\n}\n\nfunction initializeATCClickTracking() {\n bouncex.et.on(bouncex.document, 'click.bxatc', function (e) {\n var $target = jQuery(e.target);\n if (($target.attr('class') || '').indexOf('add-to-cart') > -1) {\n var itemId,\n replenData;\n if (window.location.href.indexOf('bundle') > -1) {\n itemId = $target.attr('data-pid');\n replenData = getBundleReplenData();\n } else {\n itemId = bouncex.vars.qv_id || getItemId(getSelectedProduct());\n replenData = { pid: itemId };\n }\n\n fireAddToCart(itemId, replenData);\n }\n });\n}\n\nfunction getBundleReplenData() {\n var itemsToAdd = jQuery('.js-upsell-bundle-item,.upsell-bundle-item').toArray(),\n upsellItem = jQuery('.pdp-upsell-container .custom-checkbox:checked').parents('.upsell-item').toArray();\n return {\n pid: jQuery(itemsToAdd.shift()).attr('data-item'),\n upItems: createUpsellAndBundleAddOns(upsellItem),\n upBundleItems: createUpsellAndBundleAddOns(itemsToAdd)\n };\n}\n\nfunction createUpsellAndBundleAddOns(addOns) {\n return addOns.reduce(function (items, item) {\n var data = { \"upsellID\": jQuery(item).attr('data-item'), \"quantity\": null };\n if (data.upsellID) {\n items.push(data);\n }\n return items;\n }, []);\n}\n\nfunction emptyCart() {\n bouncex.et.onVarChange('cart_qty', function (oldVal, newVal) {\n if (bouncex.vars.cart && newVal === 0 && oldVal > 0) {\n bouncex.push(['empty_cart']);\n bouncex.setVar('cart', false);\n }\n });\n}\n\nfunction initializeCartEvents() {\n bouncex.et.cart.init({\n replenishmentType: 'ajax',\n replenish: function (cart) {\n var deferreds = [];\n\n cart.items.forEach(function (item) {\n deferreds.push(makeAjaxATCFunc(item));\n });\n\n deferreds.reduce(\n function (promise, func) {\n return promise.then(function () {\n return func();\n });\n },\n jQuery.Deferred().resolve([])\n )\n .then(replenComplete);\n }\n });\n\n emptyCart();\n}\n\nfunction makeAjaxATCFunc(replenItem) {\n var config = {\n quantity: {\n defaultValue: 1\n },\n options: {\n defaultValue: [],\n makeAString: true\n },\n upItems: {\n defaultValue: [],\n makeAString: true\n },\n upBundleItems: {\n defaultValue: [],\n makeAString: true\n }\n };\n\n for (var key in config) {\n var configObj = config[key];\n if (!replenItem[key]) {\n replenItem[key] = configObj.defaultValue;\n }\n\n if (configObj.makeAString) {\n replenItem[key] = JSON.stringify(replenItem[key]);\n }\n }\n\n return function () {\n return jQuery.ajax({\n type: 'POST',\n url: '/on/demandware.store/Sites-casper_ca-Site/en_CA/Cart-AddProduct',\n headers: {\n 'content-type': 'application/x-www-form-urlencoded'\n },\n data: replenItem\n });\n };\n}\n\nfunction replenComplete() {\n window.location.href = window.location.origin +\n window.location.pathname +\n '?bx_replen=true';\n\n return;\n}\n\n/* ------------------------ BEHAVIORAL WELCOME ------------------- */\nfunction initFooterSubmitListener() {\n bouncex.et.onVisible('#email-signup-alert', function (e) {\n if (e.text().toLowerCase().indexOf('signed up successfully') < 0) {\n return;\n }\n\n var email = jQuery('.footer-email-signup [name=\"hpEmailSignUp\"]').val();\n if (bouncex.utils.validate.email(email)) {\n var parentInboxCampaignId = 611376;\n bouncex.push(['requestemail', {\n email: email,\n campaignId: parentInboxCampaignId,\n testmode: bouncex.testmode.bxdev ? 1 : 0\n }]);\n }\n });\n}\n\n/* ------------------------ CUSTOM MATTRESS QUIZ MODULE ------------------- */\nfunction getTileImg(imgUrl) {\n var MATTRESS_QUIZ_IMG = {\n 'full-body-support-element': 'https://assets.bounceexchange.com/assets/uploads/users/4450/101421/casper/full-body-support-element.png',\n 'airscape-element': 'https://assets.bounceexchange.com/assets/uploads/users/4450/101421/casper/airscape-element.png',\n 'zoned-support-max-nova-hybrid-snow': 'https://assets.bounceexchange.com/assets/uploads/users/4450/101421/casper/zoned-support-max-nova-hybrid-snow.png',\n 'snow-technology-nova-hybrid-snow': 'https://assets.bounceexchange.com/assets/uploads/users/4450/101421/casper/snow-technology-nova-hybrid-snow.png',\n 'zoned-support-pro-nova-hybrid': 'https://assets.bounceexchange.com/assets/uploads/users/4450/101421/casper/zoned-support-pro-nova-hybrid.png',\n 'airscape-2-nova-hybrid': 'https://assets.bounceexchange.com/assets/uploads/users/4450/101421/casper/airscape-2-nova-hybrid.png',\n 'zoned-support-max-gel-pods-wave-hybrid': 'https://assets.bounceexchange.com/assets/uploads/users/4450/101421/casper/zoned-support-max-gel-pods-wave-hybrid.png',\n 'airscape-3-cooling-gel-wave-hybrid': 'https://assets.bounceexchange.com/assets/uploads/users/4450/101421/casper/airscape-3-cooling-gel-wave-hybrid.png',\n 'zoned-support-original-hybrid': 'https://assets.bounceexchange.com/assets/uploads/users/4450/101421/casper/zoned-support-original-hybrid.png',\n 'airscape-original-hybrid': 'https://assets.bounceexchange.com/assets/uploads/users/4450/101421/casper/airscape-original-hybrid.png',\n 'zoned-support-max-gel-pods-wave-hybrid-snow': 'https://assets.bounceexchange.com/assets/uploads/users/4450/101421/casper/zoned-support-max-gel-pods-wave-hybrid-snow.png',\n 'snow-technology-wave-hybrid-snow': 'https://assets.bounceexchange.com/assets/uploads/users/4450/101421/casper/snow-technology-wave-hybrid-snow.png',\n 'zoned-support-original': 'https://assets.bounceexchange.com/assets/uploads/users/4450/101421/casper/zoned-support-original.png',\n 'airscape-original': 'https://assets.bounceexchange.com/assets/uploads/users/4450/101421/casper/airscape-original.png'\n },\n identifier = imgUrl.replace('.svg', '').split('/').pop();\n\n return MATTRESS_QUIZ_IMG[identifier];\n}\n\nfunction getMattressResultsData() {\n return {\n header1: jQuery('.hero-eyebrow-component').first().text().trim(),\n header2: jQuery('.hero-headline-component').first().text().trim(),\n header3: jQuery('.hero-text-component').first().text().trim(),\n recommendedmattressurl: jQuery('.mattress-link').attr('href') ? window.location.origin + jQuery('.mattress-link').attr('href') : window.location.origin,\n img1: jQuery('.mattress-card img').attr('src'),\n img2: jQuery('.experience-component .image-container img').attr('src') ? window.location.origin + jQuery('.experience-component .image-container img').attr('src') : window.location.origin,\n img2text: jQuery('.experience-component .headline').first().text().trim(),\n tile1img: getTileImg(jQuery('.experience-custom_assets-textandiconblock img').eq(0).attr('src')),\n tile1text: jQuery('.experience-custom_assets-textandiconblock .description').eq(0).text().trim(),\n tile2img: getTileImg(jQuery('.experience-custom_assets-textandiconblock img').eq(1).attr('src')),\n tile2text: jQuery('.experience-custom_assets-textandiconblock .description').eq(1).text().trim(),\n csimg1: 'https://caspercontent.imgix.net/7MQ2ObQ4QkhhYUsnZK3jrt/c0deea279a56df5b077e627b3ef1a4e8/2020-Casper_Pillow-gallery-01.jpg?auto=compress,format&q=65&w=400',\n csurl1: 'https://casper.com/original-casper-pillow',\n csname1: 'Original Casper Pillow',\n csimg2: 'https://caspercontent.imgix.net/4FJJLFBRSKUKPYxVdg9fQ6/09ffaba4c9c1c67ea4f6245eb04853af/PercaleSheetSet-Oatmilk_SheetSet_0359.jpg?auto=compress,format&q=65&w=400',\n csurl2: 'https://casper.com/bedding/sheets/percale',\n csname2: 'Percale Sheets',\n csimg3: 'https://caspercontent.imgix.net/7Avvwm68NjQTfp4R4bcooh/bd69ad7ee14e288cdc6a0d14af8b5bb4/carousel-gallery-1-protector.jpg?auto=compress,format&q=65&w=400',\n csurl3: 'https://casper.com/bedding/mattress-protectors/waterproof',\n csname3: 'Waterproof Mattress Protector',\n };\n}\n\nfunction initMattressQuizTracking() {\n if (CLEAN_URL.indexOf('mattress-quiz') < 0) {\n return;\n }\n\n bouncex.et.onVisible('.hero-eyebrow-component:contains(\"THE RESULTS ARE IN\")', function () {\n var resultsData;\n bouncex.et.onTrue(function () {\n resultsData = getMattressResultsData();\n return resultsData.header1 &&\n resultsData.header2 &&\n resultsData.header3 &&\n resultsData.recommendedmattressurl &&\n resultsData.img1 &&\n resultsData.img2 &&\n resultsData.img2text &&\n resultsData.tile1img &&\n resultsData.tile1text &&\n resultsData.tile2img &&\n resultsData.tile2text;\n }, function () {\n bouncex.push(['mattress_quiz', resultsData]);\n bouncex.setv('show_results_campaign', true);\n bouncex.setBounceCookie();\n }, 15);\n });\n\n return;\n}\n\n/* --------------------------- INITIALIZE TRACKING -------------------------- */\nfunction isValidDomain() {\n return CLEAN_URL.indexOf('//casper.com') > -1 || CLEAN_URL.indexOf('casper-staging.com') > -1;\n}\n\nfunction isEn() {\n return (jQuery('html').attr('lang') || '').indexOf('en') > -1;\n}\n\nfunction isValidForTracking() {\n return isValidDomain() && isEn();\n}\n\nfunction init() {\n\n if (!isValidForTracking()) { return; }\n initializeCartEvents();\n initializeQuickviewTracking();\n initFooterSubmitListener();\n initMattressQuizTracking();\n initializeATCClickTracking();\n\n switch (bouncex.website.pts) {\n case 'category':\n initializeMattressCategoryTracking();\n break;\n case 'product':\n bouncex.et.onTrue(function () { return window.bx_selected_product; }, trackItem);\n break;\n default:\n break;\n }\n\n return;\n}\n\ninit();","dge":false,"bxidLoadFirst":false,"pie":false,"cme":false,"gbi_enabled":0,"bpush":false,"pt":{"cart":{"testmode":false,"val":[[{"activation":"js","prop":"","prop2":"","prop3":"","val":"window.location.pathname === '/ca/fr/cart';"}]]},"category":{"testmode":false,"val":[[{"activation":"js","prop":"","prop2":"","prop3":"","val":"document.querySelectorAll('#product-search-results').length > 0;"},{"activation":"js","prop":"","prop2":"","prop3":"","val":"document.querySelectorAll('[data-qa=\"product-comparison-grid\"]').length > 0;"},{"activation":"current_page_url","prop":"contains","prop2":"","prop3":"","val":"/bedding"},{"activation":"current_page_url","prop":"contains","prop2":"","prop3":"","val":"/mattresses"}],[{"activation":"js","prop":"","prop2":"","prop3":"","val":"document.querySelectorAll('button.add-to-cart').length === 0;"}]]},"checkout":{"testmode":false,"val":[[{"activation":"js","prop":"","prop2":"","prop3":"","val":"jQuery('nav[aria-label=\"Checkout steps\"]').length > 0;"}]]},"home":{"testmode":false,"val":[[{"activation":"js","prop":"","prop2":"","prop3":"","val":"document.querySelectorAll('link[rel=\"canonical\"][href=\"https://casper.com/ca\"]').length > 0;"}]]},"product":{"testmode":false,"val":[[{"activation":"js","prop":"","prop2":"","prop3":"","val":"document.querySelectorAll('button.add-to-cart').length !== 0;"}]]}},"els":{"topbar_inlinezone":"#bx-casper-container"},"vars":[{"name":"seen_bx","polling":"none","persist":"no","page_types":[],"testmode":true,"default":"false","code":"bouncex.cookie.as>0;","trigger":"pageload"},{"name":"bx_qa","polling":"none","persist":"visit","page_types":[],"testmode":true,"default":"false","code":"window.location.href.indexOf('bx_qa') > -1 || null;","trigger":"pageload"},{"name":"cart_qty","polling":"all","persist":"visit","page_types":[],"testmode":false,"default":"false","code":"(function() {\n if (bouncex.website.pts === 'cart') {\n return Number(jQuery('.number-of-items-value').first().text().replace(/[^0-9.]/g, ''));\n }\n if (bouncex.website.pts === 'checkout') {\n return Number(jQuery('.card-body .grand-total-label').first().text().trim().replace(/[^0-9.]/g, ''));\n }\n\n return Number(jQuery('.minicart-quantity ').first().text().replace(/[^0-9.]/g, '')) || null;\n})();","trigger":"pageload"},{"name":"cart_value","polling":"all","persist":"no","page_types":[],"testmode":true,"default":"0","code":"jQuery('span[class*=CartSummary__item-value--total]').text().trim().length > 1 ? jQuery('span[class*=CartSummary__item-value--total]').text().trim() : \"\" || window.location.href.indexOf('/checkout') > -1 ? jQuery('span.currency-value:eq(0)').text().trim() : \"\";","trigger":"pageload"},{"name":"logged_in","polling":"vars","persist":"no","page_types":[],"testmode":true,"default":"false","code":"jQuery('a[href=\"/account/\"]').length > 0;","trigger":""},{"name":"ever_logged_in","polling":"none","persist":"permanent","page_types":[],"testmode":true,"default":"false","code":"bouncex.vars.logged_in ? true : null;","trigger":""},{"name":"prod_price","polling":"all","persist":"no","page_types":[],"testmode":true,"default":"0","code":"jQuery('div[class*=PriceGroup]').length > 0 ? jQuery('div[class*=PriceGroup]').text() : jQuery('div[class*=_container] button[class*=Dropdown__selected-option]:eq(0) span:eq(1)').text();","trigger":""},{"name":"prod_name","polling":"none","persist":"no","page_types":["product"],"testmode":false,"default":"","code":"bx_selected_product.name || '';","trigger":""},{"name":"submitted_onsite","polling":"all","persist":"permanent","page_types":[],"testmode":false,"default":"false","code":"jQuery('.email-signup-alert').text().indexOf('signed up') > -1 || null;","trigger":"pageload"},{"name":"prod_size","polling":"all","persist":"no","page_types":[],"testmode":false,"default":"","code":"window.bx_selected_product && window.bx_selected_product.size || null;","trigger":"pageload"},{"name":"prod_review_stars","polling":"none","persist":"no","page_types":[],"testmode":true,"default":"","code":"jQuery('div[class*=PurchaserRating]').text().split(\"(\")[0];","trigger":"pageload"},{"name":"country","polling":"none","persist":"no","page_types":[],"testmode":false,"default":"","code":"jQuery('html').attr('lang').split('-')[1] === 'CA' ? 'Canada' : jQuery('html').attr('lang').split('-')[1] === 'DE' ? 'Germany' : jQuery('html').attr('lang').split('-')[1] === 'FR' ? 'France' : jQuery('html').attr('lang').split('-')[1] === 'CH' ? 'Switzerland' : jQuery('html').attr('lang').split('-')[1] === 'AT' ? 'Austria' : jQuery('html').attr('lang').split('-')[1] === 'GB' ? 'United Kingdom' : jQuery('html').attr('lang').split('-')[1] === 'US' ? 'United States' : '';","trigger":"pageload"},{"name":"page_type","polling":"all","persist":"no","page_types":[],"testmode":false,"default":"false","code":"bouncex.website.pts;","trigger":"pageload"},{"name":"ibx_test","polling":"none","persist":"no","page_types":[],"testmode":true,"default":"false","code":"window.location.href.indexOf('ibx_test') > -1 || null;","trigger":"pageload"},{"name":"prod_category","polling":"none","persist":"no","page_types":[],"testmode":false,"default":"false","code":"(function() {\n var item = window.dataLayer.filter(function(dl) {return dl.category || dl.category_id});\n return item[0].category || item[0].category_id;\n})();","trigger":"pageload"},{"name":"prod_image","polling":"none","persist":"no","page_types":[],"testmode":true,"default":"false","code":"(function () {\n var imgTag = jQuery('div[class*=\"Gallery__slides\"] > :first-child > img');\n var imgSrc = imgTag.attr('src');\n\n if (imgTag && imgSrc) {\n var baseImg = imgSrc.split('?')[0] + '?';\n var paramsAndVals = [];\n var allowedQsParams = ['auto', 'q', 'w'];\n allowedQsParams.forEach(function(p) {\n \tvar paramVal = bouncex.utils.getParam(p, imgSrc);\n \tif (paramVal) {\n \t\tparamsAndVals.push(p + '=' + paramVal);\n \t}\n });\n return baseImg + paramsAndVals.join('&');\n }\n return '';\n})();\n","trigger":"pageload"},{"name":"cart","polling":"none","persist":"visit","page_types":[],"testmode":false,"default":"false","code":"null;","trigger":"pageload"},{"name":"identified_logged_in","polling":"none","persist":"permanent","page_types":[],"testmode":false,"default":"false","code":"null;","trigger":"pageload"},{"name":"video_playing","polling":"none","persist":"no","page_types":[],"testmode":false,"default":"false","code":"jQuery('.wistia_popover_overlay').is(':visible');","trigger":"pageload"},{"name":"ibx_prod_category","polling":"vars","persist":"no","page_types":[],"testmode":false,"default":"false","code":"(function(){\n if (window.location.href.indexOf('mattresses') > -1 || window.location.href.indexOf('best-selling-bundle') > -1 || bouncex.utils.url.allowParams().indexOf('mattresses') > -1) {\n return 'mattress';\n } else {\n return 'notmattress';\n }\n})();","trigger":"pageload"},{"name":"is_logged_in_replen","polling":"none","persist":"no","page_types":[],"testmode":true,"default":"false","code":"(function(){\n if (bouncex.utils.getParam('bx_user_login')) {\n return true;\n }\n return false;\n})();","trigger":"pageload"},{"name":"ibx_site_locale","polling":"vars","persist":"no","page_types":[],"testmode":true,"default":"false","code":"(function() {\n\tfunction getLocaleFlag() {\n\t\treturn jQuery('span[class*=HeaderLocaleIcon__icon]').attr('data-icon');\n\t}\n\n\tfunction getLocaleFromWindowVar() {\n\t\treturn window.__STORE__.i18n.locale;\n\t}\n\tvar splitPaths = window.location.pathname.split('/');\n\tvar localeFlag = getLocaleFlag();\n\tvar localeWindowVar = getLocaleFromWindowVar();\n\tvar engCheckout = (splitPaths.length > 1 && splitPaths[1] === 'checkout');\n\tif (localeFlag === 'flag-france' && localeWindowVar === 'fr-FR') {\n\t\treturn 'fr';\n\t} else if (localeFlag === 'flag-uk' && localeWindowVar === 'en-GB') {\n\t\treturn 'uk';\n\t} else if (localeFlag === 'flag-us' && localeWindowVar === 'en-US') {\n\t\treturn 'usa';\n\t}\n\treturn null;\n})();","trigger":"pageload"},{"name":"ibx_is_sheet_seperate","polling":"vars","persist":"no","page_types":[],"testmode":true,"default":"false","code":"(function(){\n\treturn jQuery('section[class*=SheetSeparatePurchaser__item]').length > 0;\n})();","trigger":"pageload"},{"name":"ibx_product_color","polling":"vars","persist":"no","page_types":[],"testmode":true,"default":"false","code":"(function() {\n var fr_color_map = {\n\t\t'blancblanc': 'whitewhite',\n\t\t'blancardoise': 'whiteslate',\n\t\t'gris': 'gray',\n\t\t'bleu': 'blue',\n\t\t'sable': 'sand',\n\t};\n \n\tvar currentColorText = jQuery('div[class*=ColorSelect__container]:visible').find('div[class*=ColorSelect__selected-color]').text();\n\tvar splitColor = currentColorText.split(': ');\n\tif (splitColor.length > 1) {\n\t\tsplitColor = splitColor[1].replace('/', '').toLowerCase();\n\t} else {\n\t splitColor = '';\n\t}\n\tif (bouncex.vars.ibx_site_locale === 'fr') {\n\t\treturn fr_color_map[splitColor] || '';\n\t}\n\treturn splitColor;\n})();","trigger":"pageload"},{"name":"ibx_product_id","polling":"vars","persist":"no","page_types":["product"],"testmode":false,"default":"false","code":"(function(){\n return window.bx_selected_product.sku || window.bx_selected_product.name.toLowerCase().replace(/ /g, '-').replace(/[^\\w-]+/g, '');\n\tvar urlToIdRegex = /([^\\/]*)\\/*$/;\n\tfunction getIdFromUrl(url){\n\t\turl = url ? url.split('?')[0] : undefined;\n\t\tif (typeof url != 'string'){ return false; }\n\t\tvar idMatch = url.match(urlToIdRegex);\n\t\tif (idMatch && idMatch[1]){\n\t\t\treturn idMatch[1];\n\t\t}\n\t}\n\tvar engUrl = jQuery('link[rel=alternate][hreflang=en-US]').attr('href');\n\tvar baseId = getIdFromUrl(engUrl);\n\tif (bouncex.vars.ibx_is_sheets_separate) {\n\t\tbaseId = jQuery('div[class*=SheetSeparatePurchaser__options]:visible').siblings('header[class*=SheetSeparatePurchaser__header]').find('h2').text().toLowerCase().replace(/ /g, '-');\n\t}\n\tif (bouncex.vars.ibx_product_color) {\n\t\treturn baseId + '-' + bouncex.vars.ibx_product_color;\n\t}\n\treturn baseId;\n})();","trigger":"pageload"},{"name":"ibx_copy","polling":"vars","persist":"no","page_types":[],"testmode":false,"default":"false","code":"(function(){\n\tif (bouncex.vars.ibx_is_sheets_separate) {\n\t\tvar productCopy = jQuery('div[class*=SheetSeparatePurchaser__options]:visible').siblings('header[class*=SheetSeparatePurchaser__header]').find('h2').text();\n\t\tif (bouncex.vars.ibx_site_locale === 'usa') {\n\t\t\treturn 'The ' + productCopy;\t\n\t\t} else {\n\t\t\treturn productCopy;\n\t\t}\n\t} else {\n\t var prodName = jQuery('h1.ProductHeader__title___wY3mt').text() || jQuery('.BuyBar__product-name___2-Srk').text();\n\t\treturn prodName === 'The Casper Sheets' ? 'The Sheet Set' : prodName; \n\t}\n})();","trigger":"pageload"},{"name":"ibx_image_url","polling":"vars","persist":"no","page_types":[],"testmode":true,"default":"false","code":"(function(){\n\tvar metaData = jQuery('meta[name=default_image]').attr('content');\n\tif (metaData && metaData.indexOf('{') === 0) {\n\t\tvar imgJSONMap = JSON.parse(metaData);\n\t\tif (bouncex.vars.ibx_is_sheets_separate) {\n\t\t\treturn imgJSONMap['sheets-' + bouncex.vars.ibx_product_color];\n\t\t}\n\t\treturn imgJSONMap[bouncex.vars.ibx_product_id];\n\t} else if (jQuery('meta[property=\"og:image\"]').attr('content')) {\n\t\treturn jQuery('meta[property=\"og:image\"]').attr('content');\n\t}\n\treturn '';\n})();","trigger":"pageload"},{"name":"ibx_item_url","polling":"vars","persist":"no","page_types":[],"testmode":true,"default":"false","code":"(function(){\n\treturn jQuery('link[rel=canonical]').attr('href') || bouncex.utils.getOrigin() + window.location.pathname;\n})();\n","trigger":"pageload"},{"name":"ibx_in_stock","polling":"vars","persist":"no","page_types":[],"testmode":true,"default":"false","code":"(function () {\n return true;\n})();","trigger":"pageload"},{"name":"ibx_page_type","polling":"vars","persist":"no","page_types":[],"testmode":false,"default":"false","code":"(function () {\n return bouncex.website.pts;\n\tvar splitPaths = window.location.pathname.split('/');\n\tif (window.location.pathname === '/') {\n\t\treturn 'home';\n\t} else if (window.location.pathname === '/mattresses/' || window.location.pathname === '/products/') {\n\t\treturn 'category';\n\t} else if (jQuery(\"a[class*='add-to-cart']\" || window.__STORE__.product && window.__STORE__.product.fetchingVariantsSuccess && window.__STORE__.product.product ? true : false).length > 0) {\n\t\treturn 'product';\n\t} else if ((splitPaths.length > 1 && splitPaths[1] === 'checkout') || jQuery('.container--checkout').length > 0) {\n\t return 'american checkout';\n\t}\n\treturn false;\n})();","trigger":"pageload"},{"name":"casper_value_supress_promo","polling":"none","persist":"no","page_types":[],"testmode":false,"default":"false","code":"window.localStorage.getItem('suppress-promo') ? true : false;","trigger":"pageload"},{"name":"zip_code_tracked","polling":"none","persist":"no","page_types":[],"testmode":true,"default":"false","code":"window.fastlyGeo.postal_code;","trigger":"pageload"},{"name":"session_vid","polling":"none","persist":"permanent","page_types":[],"testmode":true,"default":"false","code":"/* needed for session_count */\nnull;","trigger":"pageload"},{"name":"session_count","polling":"none","persist":"permanent","page_types":[],"testmode":false,"default":"false","code":"null;","trigger":"pageload"},{"name":"using_edge_browser","polling":"none","persist":"no","page_types":[],"testmode":false,"default":"false","code":"bouncex.browser.edge !== false;","trigger":"pageload"},{"name":"native_overlay_active","polling":"all","persist":"no","page_types":[],"testmode":false,"default":"false","code":"(function(){\n var anyVisible = false;\n jQuery('[class*=\"DefaultOverlay\"]').each(function(){\n if(jQuery(this).css('visibility') === \"visible\"){\n anyVisible = true\n }\n })\n return anyVisible\n})()","trigger":"pageload"},{"name":"atc_clickable","polling":"all","persist":"no","page_types":[],"testmode":false,"default":"false","code":"jQuery('button[data-qa*=\"cta__add-to-cart\"]').attr('disabled') !== 'disabled';","trigger":"pageload"},{"name":"product_sku","polling":"vars","persist":"no","page_types":["product","category"],"testmode":false,"default":"false","code":"jQuery('div[data-qa = \"quick-view-purchaser\"]').length > 0 \n || jQuery('[aria-expanded= \"true\"]').length > 0 \n || bouncex.website.pts === 'product' ? \n bouncex.utils.getNestedProp('window.bx_selected_product.sku') \n || bouncex.utils.getNestedProp('window.bx_product.name')\n : false;","trigger":"pageload"},{"name":"qv_id","polling":"vars","persist":"no","page_types":[],"testmode":false,"default":"false","code":"(jQuery('.modal-content .full-pdp-link').attr('href') || '').replace(/.html$/g, '').split('/').pop();","trigger":"pageload"}],"dgu":"pixel.cdnwidget.com","dgp":false,"ba":{"enabled":0,"fbte":0},"biu":"assets.bounceexchange.com","bau":"api.bounceexchange.com","beu":"events.bouncex.net","ibx":{"tjs":"","cjs":"","miw":1,"mibcx":1,"te":0,"cart_rep":{"get":"","set":""},"ulpj":{"et_rid":"espemailid"},"cus":"","miw_exclude":"","enabled":0},"etjson":null,"osre":true,"osru":"osr.bounceexchange.com/v1/osr/items","checkDfp":false,"gamNetwork":"","spa":0,"spatm":1,"preinit_cjs":"","crs":{"integrations":null,"pageCount":null},"mat":0,"math":0,"cpnu":"coupons.bounceexchange.com","dfpcms":0,"sms":{"optm":"","eventSharing":false,"shqId":"","enabled":0},"pde":false,"fmc":["US","CA"],"fme":true,"fmx":"","sdk":{"android":{"enabled":false,"enabledVersions":[],"eventModifications":null},"ios":{"enabled":false,"enabledVersions":[],"eventModifications":null}},"onsite":{"enabled":1},"ads":{"enabled":0},"pubs":{"enabled":0},"websdk":{"enabled":0},"ga4_property_id":"","ga4_measurement_id":"","tag_state_domain":"api.bounceexchange.com"} ; bouncex.tag = 'tag3'; bouncex.$ = window.jQuery; bouncex.env = 'production'; bouncex.restrictedTlds = {"casl":{"ca":1},"gdpr":{"ad":1,"al":1,"at":1,"ax":1,"ba":1,"be":1,"bg":1,"by":1,"xn--90ais":1,"ch":1,"cy":1,"cz":1,"de":1,"dk":1,"ee":1,"es":1,"eu":1,"fi":1,"fo":1,"fr":1,"uk":1,"gb":1,"gg":1,"gi":1,"gr":1,"hr":1,"hu":1,"ie":1,"im":1,"is":1,"it":1,"je":1,"li":1,"lt":1,"lu":1,"lv":1,"mc":1,"md":1,"me":1,"mk":1,"xn--d1al":1,"mt":1,"nl":1,"no":1,"pl":1,"pt":1,"ro":1,"rs":1,"xn--90a3ac":1,"ru":1,"su":1,"xn--p1ai":1,"se":1,"si":1,"sj":1,"sk":1,"sm":1,"ua":1,"xn--j1amh":1,"va":1,"tr":1}}; bouncex.client = { supportsBrotli: 1 }; bouncex.assets = {"ads":"07d5b82cf97935025a59bf55f6552b1c","creativesBaseStyles":"a53944a2","gpsAuction":"0aafcb326e2e52aae2936349578031e7","inbox":"02aca5df0e176b8810a86da97ac05424","onsite":"0e56ab6ba004ee080ce3deb3edae35e9","sms":"e39203556bab2366e56296ce42e974a7","websdk":"437a9f1c542faaacb49577b266dc4d73"}; bouncex.push = function(pushData) { bouncex.pushedData.push(pushData); } var runtime = document.createElement('script'); runtime.setAttribute('src', '//assets.bounceexchange.com/assets/smart-tag/versioned/runtime_6459738026535cda4232dc813c61447d.br.js'); runtime.setAttribute('async', 'async'); runtime.setAttribute('onload', 'bouncex.initializeTag()'); bouncex.initializeTag = function() { var script = document.createElement('script'); script.setAttribute('src', '//assets.bounceexchange.com/assets/smart-tag/versioned/main-v2_efcf4183cfe60de21aa43976b713ebd6.br.js'); script.setAttribute('async', 'async'); document.body.appendChild(script); bouncex.initializeTag = function() {}; }; document.body.appendChild(runtime); } } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", bxBootstrap); } else { bxBootstrap(); }})();