(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":1251,"name":"Aquasana","cookie_name":"bounceClientVisit1251","domain":"aquasana.com","ct":"bind_to_domain","ally":0,"ei":1,"tcjs":"","cjs":"(function () {\n\twindow.bouncex = window.bouncex || {};\n\n\twindow.bouncex.bxISR = {\n\t\t/* --- INITIALIZATION --- */\n\t\tversion: 'Version 7.0 | 8/5/16',\n\t\tstartTime: Date.now(),\n\t\tsettings: {\n\t\t\tcurrentProduct: {},\n\t\t\tgeneral: {\n\t\t\t\tproductPageIdentifier: window.bxProduct ? true : false,\n\t\t\t\tmaxProducts: 20,\n\t\t\t\tcategoryHistory: JSON.parse(window.localStorage.getItem('bxCatHist')) || [],\n\t\t\t\tproductHistory: JSON.parse(window.localStorage.getItem('bxProdHist')) || [],\n\t\t\t\tcategoryHistoryLength: 0,\n\t\t\t\tproductHistoryLength: 0\n\t\t\t}\n\t\t},\n\n\t\tinit: function () {\n\t\t\tthis.productMap();\n\t\t\tthis.setItemHistoryLengths();\n\t\t\tthis.trackProductHistory();\n\t\t\tthis.trackCategoryHistory();\n\t\t\tthis.maxProducts();\n\t\t},\n\n\t\tproductMap: function () {\n\t\t\tif (!this.settings.general.productPageIdentifier) { return; }\n var prodName;\n \n window.bxProduct.bouncex_product_name.indexOf('®') > -1 ? prodName = window.bxProduct.bouncex_product_name.replace(\"®\", \"\") : prodName = window.bxProduct.bouncex_product_name;\n\n\t\t\tvar productValues = {\n\t\t\t\turl: jQuery('meta[property=\"og:url\"]').attr('content'),\n\t\t\t\tname: prodName,\n\t\t\t\tsku: brontoSku.productId, \n\t\t\t\tcategory: [{ categoryName: window.location.pathname.split('/')[1].replace(/-/g, ' '), categoryUrl: window.location.hostname + '/' + window.location.pathname.split('/')[1] }],\n\t\t\t\tdescription: jQuery('[itemprop=\"description\"]').text().trim(),\n\t\t\t\tprice: jQuery('[itemprop=\"price\"]').text().trim(),\n\t\t\t\tmainImgUrl: 'https:' + jQuery('.img-active img').attr('src'),\n\t\t\t\ttimeStamp: Date.now(),\n\t\t\t\tviewCount: 1,\n\t\t\t\tsessionId: window.bouncex.cookie.vid\n\t\t\t};\n\t\t\tthis.settings.currentProduct = productValues;\n\t\t},\n\n\t\t/* --- END OF INITIALIZATION --- */\n\t\t/* --- HELPER FUNCTIONS --- */\n\n\t\taddProductToHistory: function (product) {\n\t\t\tvar productHistory = this.settings.general.productHistory;\n\t\t\tproductHistory.unshift(product);\n\t\t\tthis.setProductHistory(productHistory);\n\t\t},\n\n\t\taddCategoryToHistory: function (currentCategory) {\n\t\t\tvar categoryHistory = this.settings.general.categoryHistory;\n\t\t\tvar newCategory = {\n\t\t\t\tcategory: currentCategory,\n\t\t\t\tviewCount: 1,\n\t\t\t\ttimeStamp: Date.now()\n\t\t\t};\n\n\t\t\tcategoryHistory.unshift(newCategory);\n\t\t\twindow.bouncex.bxISR.setCategoryHistory(categoryHistory);\n\t\t},\n\n\t\tcompareProducts: function (productA, productB) {\n\t\t\tif (productA.mainImgUrl === productB.mainImgUrl) { return true; }\n\t\t\t/*if (productA.sku === productB.sku) { return true; }*/\n\t\t\tif (productA.name === productB.name) { return true; }\n\t\t\tif (productA.url === productB.url) { return true; }\n\t\t\treturn false;\n\t\t},\n\n\t\ttrackProductHistory: function () {\n\t\t\tvar productHistory = this.settings.general.productHistory;\n\n\t\t\tif (!this.settings.general.productPageIdentifier) { return; }\n\n\t\t\tif (this.settings.general.productHistoryLength > 0) {\n\t\t\t\tvar historyUpdated = false;\n\n\t\t\t\tfor (var i = 0; i < this.settings.general.productHistoryLength; i++) {\n\t\t\t\t\tif (this.compareProducts(productHistory[i], this.settings.currentProduct)) {\n\t\t\t\t\t\tproductHistory[i].viewCount++;\n\t\t\t\t\t\tproductHistory[i].timeStamp = Date.now();\n\t\t\t\t\t\tproductHistory.unshift(productHistory[i]);\n\n\t\t\t\t\t\tproductHistory.splice(i + 1, 1);\n\t\t\t\t\t\thistoryUpdated = true;\n\t\t\t\t\t\tthis.setProductHistory(productHistory);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!historyUpdated) {\n\t\t\t\t\tthis.addProductToHistory(this.settings.currentProduct);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.addProductToHistory(this.settings.currentProduct);\n\t\t\t}\n\t\t},\n\n\t\ttrackCategoryHistory: function () {\n\t\t\tvar categoryHistory = this.settings.general.categoryHistory;\n\t\t\tif (!this.settings.general.productPageIdentifier) { return; }\n\n\t\t\tvar currentCategoriesLength = this.settings.currentProduct.category.length;\n\t\t\tfor (var i = 0; i < currentCategoriesLength; i++) {\n\t\t\t\tvar currentCategory = this.settings.currentProduct.category[i];\n\n\t\t\t\tif (this.settings.general.categoryHistoryLength > 0) {\n\t\t\t\t\tvar historyUpdated = false;\n\t\t\t\t\tfor (var j = 0; j < this.settings.general.categoryHistoryLength; j++) {\n\t\t\t\t\t\tif (categoryHistory[j].category.categoryName === currentCategory.categoryName) {\n\t\t\t\t\t\t\tcategoryHistory[j].viewCount++;\n\t\t\t\t\t\t\tcategoryHistory[j].timeStamp = Date.now();\n\t\t\t\t\t\t\thistoryUpdated = true;\n\t\t\t\t\t\t\tthis.setCategoryHistory(categoryHistory);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!historyUpdated) {\n\t\t\t\t\t\tthis.addCategoryToHistory(currentCategory);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.addCategoryToHistory(currentCategory);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\n\t\t/* --- END OF HELPER FUNCTIONS --- */\n\t\t/* --- GETTER FUNCTIONS --- */\n\t\t\n\t\tgetTopCategories: function (criteria, number) {\n\t\t\tvar categories = this.settings.general.categoryHistory;\n\t\t\tif (!number) { number = categories.length; }\n\n\t\t\tif (criteria === 'views') {\n\t\t\t\treturn categories.sort(function (a, b) { return b.viewCount - a.viewCount; }).slice(0, number);\n\t\t\t} else if (criteria === 'time') {\n\t\t\t\treturn categories.sort(function (a, b) { return b.timeStamp - a.timeStamp; }).slice(0, number);\n\t\t\t} else if (criteria === 'recency') {\n\t\t\t\treturn categories.sort(function (a, b) { return b.viewCount - a.viewCount; }).slice(0, number).sort(function (c, d) { return d.timeStamp - c.timeStamp; });\n\t\t\t}\n\t\t},\n\n\t\tgetTopProducts: function (criteria, number) {\n\t\t\tvar products = this.settings.general.productHistory;\n\t\t\tif (!number) { number = products.length; }\n\t\t\tif (criteria === 'views') {\n\t\t\t\treturn products.sort(function (a, b) { return b.viewCount - a.viewCount; }).slice(0, number);\n\t\t\t} else if (criteria === 'time') {\n\t\t\t\treturn products.sort(function (a, b) { return b.timeStamp - a.timeStamp; }).slice(0, number);\n\t\t\t} else if (criteria === 'recency') {\n\t\t\t\treturn products.sort(function (a, b) { return b.viewCount - a.viewCount; }).slice(0, number).sort(function (c, d) { return d.timeStamp - c.timeStamp; });\n\t\t\t}\n\t\t},\n\n\t\tmaxProducts: function () {\n\t\t\tvar maxProducts = this.settings.general.maxProducts;\n\t\t\tif (this.settings.general.productHistoryLength > maxProducts) {\n\t\t\t\tvar topProducts = this.getTopProducts('time', maxProducts);\n\t\t\t\tthis.setProductHistory(topProducts);\n\t\t\t}\n\t\t},\n\n\t\t/* --- END GETTER FUNCTIONS --- */\n\t\t/* --- SETTER FUNCTIONS --- */\n\n\t\tsetItemHistoryLengths: function () {\n\t\t\tthis.settings.general.categoryHistoryLength = this.settings.general.categoryHistory.length;\n\t\t\tthis.settings.general.productHistoryLength = this.settings.general.productHistory.length;\n\t\t},\n\n\t\tsetProductHistory: function (productHistory) {\n\t\t\twindow.localStorage.setItem('bxProdHist', JSON.stringify(productHistory));\n\t\t\tthis.settings.general.productHistory = productHistory;\n\t\t\tthis.settings.general.productHistoryLength = productHistory.length;\n\t\t},\n\n\t\tsetCategoryHistory: function (categoryHistory) {\n\t\t\twindow.localStorage.setItem('bxCatHist', JSON.stringify(categoryHistory));\n\t\t\tthis.settings.general.categoryHistory = categoryHistory;\n\t\t\tthis.settings.general.categoryHistoryLength = categoryHistory.length;\n\t\t},\n\n\t\t/* --- END SETTER FUNCTIONS --- */\n\t\t/* --- CAMPAIGN TEMPLATING --- */\n\n\t\tpopulateCampaignProducts: function (params) {\n\t\t\tif (!params || !params.campaignId || !params.numberProducts || !params.campaignType) { return false; }\n\t\t\tif (!params.sortBy) { params.sortBy = 'time'; }\n\t\t\tif (!params.productAction) { params.productAction = 'link'; }\n\t\t\tif (!params.hoverState) { params.hoverState = false; }\n\n\n\t\t\tvar campaign = jQuery('#campaign_' + params.campaignId + '_container_' + params.campaignType);\n\t\t\tvar campaignProductArray = [];\n\n\t\t\tfor ( var i = 0; i < params.numberProducts; i++ ) {\n\t\t\t\tvar campaignProductObject = {\n\t\t\t\t\timg: jQuery('#campaign_' + params.campaignId + '_container_' + params.campaignType + ' a[href*=isr_img' + (i + 1) + ']'),\n\t\t\t\t\tlink: jQuery('#campaign_' + params.campaignId + '_container_' + params.campaignType + ' a[href*=isr_url' + (i + 1) + ']')\n\t\t\t\t};\n\n\t\t\t\tcampaignProductArray.push(campaignProductObject);\n\t\t\t}\n\n\t\t\tvar productArray = window.bouncex.bxISR.getTopProducts(params.sortBy, params.numberProducts);\n\t\t\tjQuery.each(productArray, function (x, y) {\n\t\t\t\tvar imgSrc = y.mainImgUrl,\n\t\t\t\t\tproductLink = (y.url.indexOf('https') > -1) ? y.url : window.top.location.origin + y.url,\n\t\t\t\t\tproductImageElem = jQuery(campaignProductArray[x].img),\n\t\t\t\t\tproductLinkElem = jQuery(campaignProductArray[x].link);\n\n\n\t\t\t\tvar css = {\n\t\t\t\t\t'background-image': 'url(\\'' + imgSrc + '\\')',\n\t\t\t\t\t'background-size': 'auto 100%',\n\t\t\t\t\t'background-repeat': 'no-repeat',\n\t\t\t\t\t'background-position': 'center'\n\t\t\t\t};\n\n\t\t\t\tproductImageElem.css(css).addClass('isr-image isr' + x + '');\n\t\t\t\tif (params.productAction === 'link') {\n\t\t\t\t\tif (params.reportClicks) {\n\t\t\t\t\t\tvar productAction = 'javascript:(function () { window.bouncex.report(' + params.campaignId + ', \\'clicks\\');window.top.open(\\''+ productLink +'\\'); })();'; \n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar productAction = 'javascript:(function () { window.top.open(\\''+ productLink +'\\'); })();';\n\t\t\t\t\t}\n\n\t\t\t\t} else if (params.productAction === 'submit') {\n\t\t\t\t\tvar productAction = 'javascript:void(0);';\n\t\t\t\t\tvar msg = JSON.stringify({ source: 'bouncex', action: 'submit' });\n\t\t\t\t\tproductImageElem.on('click', function () {\n\t\t\t\t\t\twindow.bouncex.report(params.campaignId, 'clicks');\n\t\t\t\t\t\tXD.postMessage(msg, campaign);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tproductImageElem.attr('href', productAction);\n\n\t\t\t\tif (params.reportClicks) {\n\t\t\t\t\tvar linkAction = 'javascript:(function () { window.bouncex.report(' + params.campaignId + ', \\'clicks\\'); window.top.open(\\''+ productLink +'\\'); })();';\n\t\t\t\t} else {\n\t\t\t\t\tvar linkAction = 'javascript:(function () { window.top.open(\\''+ productLink +'\\'); })();';\n\t\t\t\t}\n\n\t\t\t\tproductLinkElem.attr('href', linkAction);\n\n\t\t\t\tif (params.hoverState) {\n\t\t\t\t\tif (params.reportClicks) {\n\t\t\t\t\t\tvar hoverLinkAction = 'javascript:(function () { window.bouncex.report(' + params.campaignId + ', \\'clicks\\');window.top.open(\\'' + productLink + '\\'); })();';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar hoverLinkAction = 'javascript:(function () { window.top.open(\\'' + productLink + '\\'); })();';\n\t\t\t\t\t}\n\n\t\t\t\t\tproductImageElem.parent().append('
' + y.name + '
');\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\tpopulateCampaignProductsV2: function (params) {\n\t\t\tif (!params || !params.campaignId || !params.numberProducts) { return false; }\n\t\t\tif (!params.sortBy) { params.sortBy = 'time'; }\n\t\t\tif (!params.productAction) { params.productAction = 'link'; }\n\t\t\tif (!params.linkAction) { params.linkAction = 'new'; }\n\n\t\t\tvar campaign = jQuery('#bx-campaign-' + params.campaignId);\n\t\t\tvar campaignProductArray = [];\n\n\t\t\tcampaignProductElements = {};\n\t\t\tjQuery.each(params.campaignSteps, function (x, y) {\n\n\t\t\t\tcampaignStepProductElements = [];\n\t\t\t\tfor ( var i = 0; i < params.numberProducts; i++ ) {\n\t\t\t\t\tvar campaignStepProductObject = {};\n\t\t\t\t\tif (y.productImages) {\n\t\t\t\t\t\tcampaignStepProductObject.img = campaign.find('#bx-form-' + params.campaignId + '-step-' + y.stepNumber + ' .bx-row-line-custom .bx-lineshape:eq(' + i +')');\n\t\t\t\t\t}\n\t\t\t\t\tif (y.productLinkElems) {\n\t\t\t\t\t\tcampaignStepProductObject.link = campaign.find('#bx-form-' + params.campaignId + '-step-' + y.stepNumber + ' .bx-group .bx-row-submit:eq('+i+')').find('a');\n\t\t\t\t\t}\n\t\t\t\t\tif (y.productHoverStates) {\n\t\t\t\t\t\tcampaignStepProductObject.hoverTitle = campaign.find('#bx-form-' + params.campaignId + '-step-' + y.stepNumber + ' .bx-group .bx-row-line-custom:eq(' + i +')').siblings('.bx-row-text').find('div');\n\t\t\t\t\t}\n\t\t\t\t\tcampaignStepProductElements.push(campaignStepProductObject);\n\t\t\t\t}\n\n\t\t\t\tcampaignProductElements['step-' +x] = campaignStepProductElements;\n\t\t\t});\n\n\t\t\tvar productArray = window.bouncex.bxISR.getTopProducts(params.sortBy, params.numberProducts);\n\n\t\t\tvar self = this;\n\t\t\tjQuery.each(campaignProductElements, function (x, y) {\n\t\t\t\tvar productAction = function () {};\n\n\t\t\t\tfor ( var i = 0; i < y.length; i++ ) {\n\t\t\t\t\tif (params.campaignSteps[(x.split('-')[1])].productsLink) {\n\t\t\t\t\t\tvar productLink = (productArray[i].url.indexOf('http') > -1) ? productArray[i].url : window.top.location.origin + productArray[i].url;\n\t\t\t\t\t\tproductAction = self.makeProductAction(productLink, params);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (y[i].img) {\n\t\t\t\t\t\tvar imgSrc = productArray[i].mainImgUrl,\n\t\t\t\t\t\t\tproductImageElem = jQuery(y[i].img);\n\n\t\t\t\t\t\tproductImageElem.css('background-image', 'url(' + imgSrc + ')').addClass('isr-image isr' + x + '').bind('click.bx_' + params.campaignId + '_isr_' + i, productAction);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (y[i].link) {\n\t\t\t\t\t\tvar productLink = (productArray[i].url.indexOf('http') > -1) ? productArray[i].url : window.top.location.origin + productArray[i].url,\n\t\t\t\t\t\t\tproductLinkElem = jQuery(y[i].link);\n\n\t\t\t\t\t\tproductLinkElem.attr('bx-href', productLink).bind('click.bx_' + params.campaignId + '_isr_' + i, productAction);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (y[i].hoverTitle) {\n\t\t\t\t\t\tvar productTitle = productArray[i].name,\n\t\t\t\t\t\t\tproductHoverTitleElem = jQuery(y[i].hoverTitle);\n\n\t\t\t\t\t\tproductHoverTitleElem.text(productTitle).bind('click.bx_' + params.campaignId + '_isr_' + i, productAction);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t});\n\t\t},\n\n\n\t\tmakeProductAction: function (productLink, campaignParams) {\n\t\t\tvar productAction = function () {};\n\n\t\t\t\tif (campaignParams.productAction === 'link') {\n\t\t\t\t\tif (campaignParams.linkAction === 'new') {\n\t\t\t\t\t\tif (campaignParams.reportClicks) {\n\t\t\t\t\t\t\tproductAction = function () {\n\t\t\t\t\t\t\t\twindow.bouncex.report(campaignParams.campaignId, 'click');\n\t\t\t\t\t\t\t\twindow.top.open(productLink);\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tproductAction = function () {\n\t\t\t\t\t\t\t\twindow.top.open(productLink);\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (campaignParams.linkAction === 'current') {\n\t\t\t\t\t\tif (campaignParams.reportClicks) {\n\t\t\t\t\t\t\tproductAction = function () {\n\t\t\t\t\t\t\t\twindow.bouncex.report(campaignParams.campaignId, 'click');\n\t\t\t\t\t\t\t\twindow.top.location.replace(productLink);\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tproductAction = function () {\n\t\t\t\t\t\t\t\twindow.top.location.replace(productLink);\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\treturn productAction;\n\t\t}\n\t};\n\n // Blacklisting this specific product since image is breaking\n if (!(/clean-water-machine|stainless-steel-filter-bottle/).test(window.location.href)) {\n window.bouncex.bxISR.init();\n }\n\t\n})();\n\n/* https://www.wrike.com/open.htm?id=384928916 */\nif (!bouncex.report_ga_original){\n\tbouncex.report_ga_original = bouncex.report_ga;\n\tbouncex.report_ga = function(action,label,bypass){\n\t\tbypass = typeof(bypass)!='undefined' && !!bypass;\n\t\tif(typeof(action)!='string'||typeof(label)!='string') return;\n\t\tvar interaction = false;\n\t\t// enforce case convention\n\t\tif(!bypass) {\n\t\t\taction = action.charAt(0).toUpperCase() + action.slice(1).toLowerCase();\n\t\t\tinteraction = action=='Impression';\n\t\t\taction = 'BounceX ' + action;\n\t\t}\n\t\tif(typeof window.ga === 'function') {\n\t\t\tif(bouncex.website.gai){\n\t\t\t\twindow.ga('create', bouncex.website.gai);\n\t\t\t}\n\t\t\tif (action === 'BounceX Submission') {\n\t\t\t /* only on submission, will the Event Category be \"EmailCapture\", as requested by client */\n\t\t\t\twindow.ga('send','event','EmailCapture',action,label,{'nonInteraction':interaction});\n\t\t\t} else {\n\t\t\t\twindow.ga('send','event','BounceX',action,label,{'nonInteraction':interaction});\n\t\t\t}\n\t\t} else if(typeof window._gaq === 'object') {\n\t\t\tif(bouncex.website.gai){\n\t\t\t\twindow._gaq.push(['_setAccount', bouncex.website.gai]);\n\t\t\t}\n\t\t\tvar strippedLabel = label.replace(/\\(|\\)/g, ''); // window._gaq encodes close paren as '1\n\t\t\twindow._gaq.push(['_trackEvent','BounceX',action,strippedLabel,,interaction]);\n\t\t}\n\t}\n}\n\n/* enable.feature.DISABLE_RELOAD_CAMPAIGNS_V2 */","force_https":false,"waypoints":false,"content_width":0,"gai":"UA-3695031-2","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":2,"map":1,"gar":true,"ete":1,"ettm":false,"etjs":"//FOR SHQ DLWATCHER\nbouncex.et.onTrue(\n function () {\n return !!bouncex.utils.segments;\n },\n function () {\n bouncex.utils.segments.useDLWatcher();\n }\n);\n\nif (window.location.hostname === 'www.aquasana.com') {\n if (bouncex.website.pts === 'product'){\n var item;\n bouncex.et.onTrue(\n function() {\n item = getItem();\n return item.id && item.copy && item.imageurl && item.category && item.url && item.description;\n }, \n function() {\n bouncex.push(['item', item]);\n bouncex.push(['view item', { 'item:id': item.id }]);\n },\n 15\n );\n }\n if (bouncex.website.pts === 'category') {\n // Quick View Modal ATC\n bouncex.et.onVisible('.modal-open', function(){\n var itemId = jQuery('#quickViewModal .product-quickview').attr('data-pid');\n if (itemId) {\n bouncex.push(['view item', { 'item:id': itemId }]);\n }\n bouncex.et.on(jQuery('#quickViewModal .add-to-cart-global'), 'click.bx', function(){\n bouncex.setv('added_cart_item', itemId);\n setBounceCookie();\n });\n });\n // Category Quick ATC\n bouncex.et.on(jQuery('.add-to-cart'), 'click.bx', function(){\n var itemId = jQuery(this).closest('.product-tile-btn-grp').find('.product-id').attr('data-pid');\n if (itemId) {\n bouncex.setv('added_cart_item', itemId);\n setBounceCookie();\n }\n });\n }\n\n trackCartEvents();\n trackLoggedInUser();\n}\n\n/* |----------- HELPER FUNCTIONS ----------------| */\n\nfunction getItem() {\n var raitingValue = Number(jQuery('[itemprop=\"ratingValue\"]').text()) ||0;\n return {\n id: jQuery('.inner-container.product-detail').attr('data-pid'),\n copy: bouncex.utils.getNestedProp('pageData.pageName').split('product: ').pop() || '',\n imageurl: jQuery('.pdp-main-image:first').attr('src') || '',\n category: bouncex.utils.getNestedProp('pageData.ecommerce.detail.products[0].category').split(' - ')[0] || jQuery('.breadcrumb li').last().prev().text(),\n description: jQuery('.pdp-short-description').text(),\n url: bouncex.utils.url.allowParams(),\n instock: jQuery('#add-to-cart').text().indexOf('Add to Cart') > -1,\n raiting: raitingValue,\n stars: getStars(raitingValue)\n };\n}\n\nfunction getStars(raitingValue) {\n if (raitingValue < 4) return 0;\n return raitingValue === 4.5 ? raitingValue : Math.round(raitingValue);\n}\n\n/* |----------- CART INIT AND REPLENISHMENT ----------------| */\nfunction replenish(cart) {\n var deferreds = [];\n\n cart.items.forEach(function(item) {\n deferreds.push(makeReplenItem(item));\n });\n\n deferreds.reduce(function(promise, func) {\n return promise.then(function() {\n return func();\n });\n }, jQuery.Deferred().resolve([]))\n .then(replenComplete); \n}\n\nfunction makeReplenItem(item) {\n return function() {\n return jQuery.ajax({\n method: 'post',\n url: 'https://www.aquasana.com/on/demandware.store/Sites-aquasana-Site/default/Cart-AddProduct',\n data: item.itemData\n });\n };\n}\n\nfunction replenComplete() {\n bouncex.setTimeout2(function() {\n window.location.href = window.location.pathname + '?bx_replen=true';\n }, 0);\n}\n\nfunction cartOnReplen() {\n return window.location.href.indexOf('bx_cart') > -1;\n}\n\nfunction trackATC() {\n bouncex.et.on(jQuery('#add-to-cart'), 'click.bx', function(){\n var itemId = jQuery('.inner-container.product-detail').attr('data-pid');\n if (itemId) {\n bouncex.setv('added_cart_item', itemId);\n setBounceCookie();\n }\n });\n\n bouncex.on(jQuery(document), 'ajaxComplete', function(e, xhr, settings) {\n var itemId = bouncex.vars.added_cart_item;\n \n if (settings.url.indexOf('/Cart-AddProduct') > -1 ) {\n if (!cartOnReplen()) {\n var cart = {\n itemData: settings.data\n };\n if (itemId) {\n fireATC(itemId, JSON.stringify(cart));\n }\n }\n }\n });\n}\n\nfunction trackCartEvents() {\n bouncex.et.cart.init({\n replenishmentType: \"ajax\",\n replenish: replenish,\n });\n bouncex.et.onVarChange('cart_qty', emptyCart);\n trackATC();\n}\n\nfunction fireATC(itemId, cartData) {\n bouncex.push([\n 'add to cart',\n {\n 'item:id': itemId,\n 'cart:item': cartData\n },\n ]);\n bouncex.setv('added_cart_item', \"\");\n setBounceCookie();\n\n if (!bouncex.vars.cart_set) {\n bouncex.setv('cart_set', true);\n setBounceCookie();\n }\n}\n\nfunction emptyCart() {\n if (bouncex.vars.cart_qty === 0 && bouncex.vars.cart_set) {\n bouncex.push(['empty_cart', {}]);\n bouncex.setv('cart_set', false);\n setBounceCookie();\n }\n}\n\n/* |----------- LOGGED IN TRACKING ----------------| */\nfunction trackLoggedInUser() {\n if (bouncex.vars.logged_in && !bouncex.vars.logged_in_identified) {\n var userEmail = jQuery('.card-body:first dd:eq(1)').text();\n if (bouncex.utils.validate.email(userEmail)) {\n bouncex.push([\n 'user',\n {\n email: userEmail,\n source: 'LoggedIn',\n },\n ]);\n setBounceCookie();\n bouncex.setv('logged_in_identified', true);\n }\n }\n}","dge":false,"bxidLoadFirst":false,"pie":false,"cme":false,"gbi_enabled":0,"bpush":false,"pt":{"blog":{"testmode":false,"val":[[{"activation":"current_page_url","prop":"contains","prop2":"","prop3":"","val":"/info"}],[{"activation":"js","prop":"","prop2":"","prop3":"","val":"bouncex.utils.getNestedProp('globalData.pageType', '') === 'blog landing';"},{"activation":"js","prop":"","prop2":"","prop3":"","val":"bouncex.utils.getNestedProp('globalData.pageType', '') === 'blog';"}]]},"cart":{"testmode":false,"val":[[{"activation":"current_page_url","prop":"contains","prop2":"","prop3":"","val":"/cart"}],[{"activation":"current_page_url","prop":"not_contains","prop2":"","prop3":"","val":"sfdev.aquasana.com"}],[{"activation":"current_page_url","prop":"not_contains","prop2":"","prop3":"","val":"dev32-na01-pfsweb.demandware.net"}]]},"category":{"testmode":false,"val":[[{"activation":"js","prop":"","prop2":"","prop3":"","val":"document.querySelectorAll('.product-grid, .product-list').length > 0;"}],[{"activation":"js","prop":"","prop2":"","prop3":"","val":"bouncex.utils.getNestedProp('globalData.pageType', '') === 'category landing';"},{"activation":"js","prop":"","prop2":"","prop3":"","val":"bouncex.utils.getNestedProp('globalData.pageType', '') === 'product listing';"},{"activation":"js","prop":"","prop2":"","prop3":"","val":"bouncex.utils.getNestedProp('globalData.pageType', '') === 'category grid';"}],[{"activation":"current_page_url","prop":"not_contains","prop2":"","prop3":"","val":"/search?"}]]},"checkout":{"testmode":false,"val":[[{"activation":"current_page_url","prop":"contains","prop2":"","prop3":"","val":"/checkout"}],[{"activation":"current_page_url","prop":"not_contains","prop2":"","prop3":"","val":"sfdev.aquasana.com"}],[{"activation":"current_page_url","prop":"not_contains","prop2":"","prop3":"","val":"dev32-na01-pfsweb.demandware.net"}]]},"home":{"testmode":false,"val":[[{"activation":"js","prop":"","prop2":"","prop3":"","val":"document.querySelectorAll('link[rel=\"canonical\"][href=\"https://www.aquasana.com/\"]').length > 0;"}],[{"activation":"js","prop":"","prop2":"","prop3":"","val":"window.location.pathname === '/';"}]]},"product":{"testmode":false,"val":[[{"activation":"js","prop":"","prop2":"","prop3":"","val":"document.querySelectorAll('div.page[data-action=\"Product-Show\"]').length > 0;"}],[{"activation":"js","prop":"","prop2":"","prop3":"","val":"bouncex.utils.getNestedProp('globalData.pageType', '') === 'product';"}]]},"search":{"testmode":false,"val":[[{"activation":"current_page_url","prop":"contains","prop2":"","prop3":"","val":"/search?"},{"activation":"js","prop":"","prop2":"","prop3":"","val":"bouncex.utils.getNestedProp('globalData.pageType', '') === 'search';"}]]}},"els":null,"vars":[{"name":"logged_in","polling":"all","persist":"visit","page_types":[],"testmode":false,"default":"false","code":"(function() {\n var loggedIn = jQuery('.fa-user').length > 0 && jQuery('.user-check-mark').length > 0;\n var loggedOut = jQuery('.fa-user').length > 0 && jQuery('.user-check-mark').length === 0;\n if (loggedIn) {\n return true;\n } else if (loggedOut) {\n return false;\n }\n return null;\n})();","trigger":""},{"name":"cart_value","polling":"all","persist":"visit","page_types":[],"testmode":false,"default":"0","code":"(function(){\n var minicart = jQuery('.estimated-total .sub-total, .sub-total').eq(0);\n var empty = jQuery('.empty-cart-heading-txt:visible:contains(\"Cart is Empty\")');\n var emptyMini = jQuery('.fa-shopping-cart:visible').length > 0 && jQuery('.minicart-quantity:visible').length === 0;\n if (empty.length > 0 || emptyMini) {\n return 0;\n }\n if (minicart.length > 0) {\n return minicart.text().replace(/[^0-9.]/g, '');\n }\n return null;\n})();","trigger":""},{"name":"cart_items","polling":"all","persist":"visit","page_types":[],"testmode":false,"default":"0","code":"(function(){\n var minicart = jQuery('.minicart-quantity, .minicart-quantVal').eq(0);\n var empty = jQuery('.empty-cart-heading-txt:visible:contains(\"Cart is Empty\")');\n var emptyMini = jQuery('.fa-shopping-cart:visible').length > 0 && jQuery('.minicart-quantity:visible').length === 0;\n if (empty.length > 0 || emptyMini) {\n return 0;\n }\n if (minicart.length > 0) {\n return minicart.text().replace(/[^0-9]/g, '');\n }\n return null;\n})();","trigger":""},{"name":"water_for_life","polling":"none","persist":"visit","page_types":[],"testmode":false,"default":"false","code":"jQuery('.cart-subtotal').length > 0? (jQuery('.cart-item').text().indexOf('Water for Life') > -1) : bouncex.vars.water_for_life;","trigger":""},{"name":"discount_code","polling":"none","persist":"no","page_types":[],"testmode":false,"default":"0","code":"bxPopTrigger.DiscountCode;","trigger":""},{"name":"dollars_saved_prod","polling":"all","persist":"no","page_types":["product"],"testmode":false,"default":"false","code":"(function(){\n var $waterForLifeOption = jQuery('.price-radio-button.product-wfl-price:checked');\n var $productSummary = jQuery('.pdp-price');\n var $listPrice = $productSummary.find('.sales span.pdp-strike-through-price del:contains(\"$\")');\n var $yourPrice = $productSummary.find('.sales span.value');\n var savedDollars = 0;\n if ($waterForLifeOption.length > 0) {\n return 0;\n }\n if ($productSummary.length > 0 && $listPrice.length > 0 && $yourPrice.length > 0) {\n var listPrice = parseFloat(jQuery.trim($listPrice.text()).replace(/[^0-9\\.]/g, '')); \n var yourPrice = parseFloat(jQuery.trim($yourPrice.text()).replace(/[^0-9\\.]/g, '')); \n savedDollars = listPrice - yourPrice;\n savedDollars = !isNaN(savedDollars)? savedDollars.toFixed(2) : 0;\n }\n return savedDollars;\n})();","trigger":""},{"name":"percent_saved_prod","polling":"all","persist":"no","page_types":["product"],"testmode":false,"default":"false","code":"(function(){\n var $waterForLifeOption = jQuery('.price-radio-button.product-wfl-price:checked');\n var $productSummary = jQuery('.pdp-price');\n var $listPrice = $productSummary.find('.sales span.pdp-strike-through-price del:contains(\"$\")');\n var $yourPrice = $productSummary.find('.sales span.value');\n var savedPercent = 0;\n if ($waterForLifeOption.length > 0) {\n return 0;\n }\n if ($productSummary.length > 0 && $listPrice.length > 0 && $yourPrice.length > 0) {\n var listPrice = parseFloat(jQuery.trim($listPrice.text()).replace(/[^0-9\\.]/g, '')); \n var yourPrice = parseFloat(jQuery.trim($yourPrice.text()).replace(/[^0-9\\.]/g, ''));\n var priceDifference = listPrice - yourPrice;\n savedPercent = (priceDifference/listPrice)*100;\n savedPercent = !isNaN(savedPercent)? Math.round(savedPercent): 0;\n }\n return savedPercent;\n})();","trigger":""},{"name":"ibx_test","polling":"none","persist":"visit","page_types":[],"testmode":false,"default":"false","code":"window.location.href.indexOf('ibx_test') > -1 || null;","trigger":""},{"name":"products_tracked","polling":"all","persist":"no","page_types":[],"testmode":false,"default":"0","code":"localStorage.getItem('bxProdHist') && JSON.parse(localStorage.getItem('bxProdHist')).length || null;","trigger":""},{"name":"product_page","polling":"none","persist":"no","page_types":["product"],"testmode":false,"default":"false","code":"true;","trigger":""},{"name":"category_page","polling":"none","persist":"no","page_types":["category"],"testmode":false,"default":"false","code":"true;","trigger":""},{"name":"cart_plurality_qualifies","polling":"none","persist":"no","page_types":[],"testmode":false,"default":"false","code":"bouncex.vars.cart_items > 1 ? 'qualify' : 'qualifies';","trigger":""},{"name":"cart_plurality","polling":"none","persist":"no","page_types":[],"testmode":false,"default":"false","code":"bouncex.vars.cart_items > 1 ? 'items' : 'item';","trigger":""},{"name":"bx_test","polling":"none","persist":"no","page_types":[],"testmode":true,"default":"false","code":"null;","trigger":""},{"name":"imageurl","polling":"vars","persist":"no","page_types":[],"testmode":false,"default":"false","code":"(function(){\n if(jQuery('.img-gallery').find('img').eq(0).attr('src') !== undefined){\n return window.location.protocol+jQuery('.img-gallery').find('img').eq(0).attr('src');\n }else{\n if(jQuery('#productImage').attr('src') !== undefined){\n return window.location.protocol+jQuery('#productImage').attr('src');\n }else{\n if(typeof bxProduct != 'undefined' && bxProduct.bouncex_product_image){\n return window.location.protocol+bxProduct.bouncex_product_image;\n }else{\n return 'https://cdn.aquasana.com/images/products/aq-pwfs-p-b_218.jpg';\n }\n }\n }\n })()","trigger":""},{"name":"prod_category","polling":"none","persist":"no","page_types":[],"testmode":false,"default":"false","code":"(function (){\n\tvar url = window.location.href;\n\tif (typeof url !== 'string'){ return false; }\n\tvar categoryMatch = url.match(/.com\\/([-\\w]+)/);\n\tif (categoryMatch && categoryMatch[1]){\n\t\treturn decodeURIComponent(categoryMatch[1]).split('-').map(function(w) {\n\t\t return w.replace(/(^| )(\\w)/g, function(x) {\n return x.toUpperCase();\n })\n\t\t}).join(' ');\n\t}\n})()","trigger":""},{"name":"prod_price","polling":"all","persist":"no","page_types":["product"],"testmode":false,"default":"false","code":"(function(){\n var $productSummary = jQuery('.pdp-price');\n var $yourPrice = $productSummary.find('.sales span.value');\n return Number($yourPrice.text().replace(/[^0-9.]/g, ''));\n})();","trigger":""},{"name":"in_stock","polling":"none","persist":"no","page_types":[],"testmode":false,"default":"false","code":"1;","trigger":""},{"name":"category_title","polling":"none","persist":"no","page_types":[],"testmode":false,"default":"false","code":"jQuery('#hero-cat h1').text().replace(/\\s+/g,' ').trim() || null;","trigger":""},{"name":"cart_qty","polling":"all","persist":"no","page_types":[],"testmode":false,"default":"0","code":"jQuery('span.minicart-quantity:first').text() ? parseInt(jQuery('span.minicart-quantity:first').text().trim().match(/\\d+/g)[0]) : 0;","trigger":""},{"name":"cart","polling":"none","persist":"permanent","page_types":[],"testmode":false,"default":"false","code":"null;","trigger":""},{"name":"prod_name","polling":"all","persist":"no","page_types":["product"],"testmode":false,"default":"false","code":"jQuery('h1.product-name:visible').text().trim();","trigger":""},{"name":"ever_logged_in","polling":"all","persist":"permanent","page_types":[],"testmode":false,"default":"false","code":"bouncex.vars.logged_in || null;","trigger":"pageload"},{"name":"submitted_onsite","polling":"all","persist":"permanent","page_types":[],"testmode":false,"default":"false","code":"jQuery('.email-signup-message:visible:contains(\"Check your inbox\")').length > 0 || null;","trigger":"pageload"},{"name":"cart_quantity","polling":"vars","persist":"no","page_types":[],"testmode":false,"default":"0","code":"jQuery('span.counter:first').text() ? parseInt(jQuery('span.counter:first').text().match(/\\d+/g)[0]) : 0;","trigger":"pageload"},{"name":"added_cart_item","polling":"none","persist":"visit","page_types":[],"testmode":false,"default":"false","code":"null;","trigger":"pageload"},{"name":"cart_set","polling":"none","persist":"visit","page_types":[],"testmode":false,"default":"false","code":"null;","trigger":"pageload"},{"name":"logged_in_identified","polling":"none","persist":"visit","page_types":[],"testmode":false,"default":"false","code":"null;","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":"bouncex.ibx.track('event', 'bouncex conversion');","miw":1,"mibcx":1,"te":1,"cart_rep":{"get":"","set":"var ibx_cart = decodeURIComponent(bouncex.ibx._getparam('ibx_cart'));\nif(ibx_cart.length>0 && window.location.href.indexOf('/cart.php') > -1 && jQuery('.cart-item').length === 0){\n\tvar items = ibx_cart.split('|');\n\tfor(var i = 0; i < items.length; i++){\n\t\tvar qty = items[i].split(',')[1];\n\t\tvar id = items[i].split(',')[0];\n\t\tfor(var j = 0; j < qty; j++){\n\t\t\tjQuery.ajax({\n\t\t\t\turl: '/addtocart.php',\n\t\t\t\ttype: 'post',\n\t\t\t\tdata: {add: id},\n\t\t\t\tasync: false\n\t\t\t});\n\t\t}\n\t}\n\tsetTimeout(function(){window.location.href = '/cart.php';}, 2000);\n}"},"ulpj":{"et_rid":"espemailid"},"cus":"","miw_exclude":"","enabled":1},"etjson":null,"osre":true,"osru":"osr.bounceexchange.com/v1/osr/items","checkDfp":false,"gamNetwork":"","spa":0,"spatm":1,"preinit_cjs":"/** \n * Segments - Cartridge Boilerplate\n * This code belongs in pre-init.js. If you want to write code\n * that runs when the page loads but does not leverage the intercept\n * or mirror methods use the Event Tracking code block. Don't forget\n * to change testMode to false to set your code live.\n */\n\nvar segments = {\n /* PROPERTIES */\n testMode: false,\n interceptEnabled: false,\n mirrorEnabled: false,\n dlWatcherEnabled: false,\n /* METHODS */\n /* Intercept Events */\n useIntercept: function () {\n if (this.interceptEnabled) {\n bouncex.utils.shqInterceptEvent = {\n // true blocks event, defined functions run in place of default\n 'productView': false,\n 'cartAdd': false,\n 'cartEmpty': false,\n 'categoryView': false,\n 'purchase': function (wkData) { // change value to false for cartridge default\n var oid = bouncex.utils.getNestedProp('obj.order_id', null, wkData) || Math.floor(Math.random() * 100000000);\n _shq.push(['pageView',\n {\n 'pageType': 'purchase',\n 'orderId': oid,\n 'usebasket': true\n }\n ]);\n },\n 'coupon': true,\n 'search': true,\n 'checkout': true,\n };\n }\n },\n dlFuncs: function (e) {\n // Write handle methods here:\n //PDP\n switch (e.pageType) {\n case 'category landing':\n case 'product listing':\n _shq.push(['pageView', {\n pageType: 'category',\n catName: e.pageCategory,\n catId: e.pageCategory\n }]);\n break;\n case 'product':\n var pdpData = e.ecommerce.detail.products[0];\n if (pdpData && !!pdpData.id) {\n _shq.push([\n 'pageView',\n {\n pageType: 'product',\n productId: pdpData.id.toString(),\n },\n ]);\n }\n break;\n case 'search':\n _shq.push([\n \"pageView\",\n {\n pageType: \"search\",\n searchPhrase: e.searchTerm,\n },\n ]);\n break;\n default:\n break;\n }\n if (e.event === 'addToCart') {\n var prod = e.ecommerce.add.products,\n atc = [];\n prod.forEach(function (i) {\n atc.push({\n ProductId: i.id,\n UnitPrice: i.price,\n Quantity: i.quantity,\n });\n })\n if (!!atc) {\n _shq.push([\"onCartAdd\", { Items: atc }]);\n }\n }\n },\n useDLWatcher: function () {\n if (!!this.dlWatcherEnabled) {\n window.bouncex.et.onTrue(function () {\n return window.bouncex.utils.getNestedProp('window._shq.loaded') && !!window.dataLayer && !!bouncex.et.setInterval;\n }, function () {\n // instantiate DataLayerHandler Object\n var dlWatcher = new _shq.DataLayerHandler(window.dataLayer);\n // invoke watch method\n dlWatcher.watch(function (e) {\n segments.dlFuncs(e);\n }, {});\n });\n }\n },\n /* Initialize Segments Tracking */\n init: function () {\n // test mode\n if (this.testMode && !bouncex.testmode.bxdev) return;\n\n // attach object to window & bouncex.utils\n if (window.bouncex.utils) bouncex.utils.segments = this;\n\n // initialize intercept and mirror, comment out if not needed\n this.useIntercept();\n }\n}\n\nsegments.init();\n","crs":{"integrations":null,"pageCount":null},"mat":0,"math":0,"cpnu":"coupons.bounceexchange.com","dfpcms":0,"sms":{"optm":"Hit 'Send' to sign-up for automated, recurring Aquasana mktg txts (like cart reminders) to this #, per terms.\n","eventSharing":false,"shqId":"5sjupfpdxc-1","enabled":1},"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":"320126105","ga4_measurement_id":"G-L28XQ6WCRG","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":"005ab6b05ecd8ae76686b26c919990d4","creativesBaseStyles":"a53944a2","gpsAuction":"bbb80866120d17013073bb6d284cbd6b","inbox":"75060a85c1a4aebcc6f779b9e84db722","onsite":"abbdf7a49be9b52b097917b7b527b262","sms":"e39203556bab2366e56296ce42e974a7","websdk":"3cdb3cd0b71927a211b8afdc85918cfd"}; 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_756cfb1d158076d67943a971b41e5c68.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(); }})();