(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":2249,"name":"AYR","cookie_name":"bounceClientVisit2249","domain":"ayr.com","ct":"fp_local_storage","ally":0,"ei":0,"tcjs":"","cjs":"","force_https":false,"waypoints":false,"content_width":0,"gai":"UA-45278814-3","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":true,"mas":2,"map":1,"gar":false,"ete":0,"ettm":true,"etjs":"","dge":true,"bxidLoadFirst":false,"pie":true,"cme":true,"gbi_enabled":0,"bpush":false,"pt":{"product":{"testmode":false,"val":[[{"activation":"current_page_url","prop":"contains","prop2":"","prop3":"","val":"/products/"}]]}},"els":null,"vars":[{"name":"cart_qty","polling":"all","persist":"visit","page_types":[],"testmode":false,"default":"0","code":"(function(){\nvar minicart =jQuery('.stencil-nav-menu-item-cart');\nif(minicart.length > 0){\n return Number(minicart.find('.js-bodega-remote-cart-quantity').text());\n}\n})();","trigger":""},{"name":"cart_total","polling":"all","persist":"visit","page_types":[],"testmode":false,"default":"0","code":"(function(){\n var minicart = jQuery('.bodega-remote-cart');\n var subTotal = minicart.find('.t-set p:contains(Sub Total)').next('p');\n if(subTotal.length > 0){\n return Number(subTotal.text().replace(/[$,]/g,''));\n }\n})();","trigger":""},{"name":"ibx_test","polling":"none","persist":"visit","page_types":[],"testmode":false,"default":"false","code":"location.href.indexOf('ibx_test') >= 0 || null;","trigger":""},{"name":"cart","polling":"none","persist":"visit","page_types":[],"testmode":false,"default":"false","code":"null;","trigger":""},{"name":"logged_in","polling":"none","persist":"visit","page_types":[],"testmode":false,"default":"false","code":"jQuery('.stencil-nav-container').find('a[href=\\'/account\\']').length > 0 || jQuery('.logged-in-customer-information__paragraph').find('a:contains(Log out)').length > 0;","trigger":""},{"name":"ever_logged_in","polling":"none","persist":"permanent","page_types":[],"testmode":false,"default":"false","code":"bouncex.vars.logged_in ? true : null;","trigger":""},{"name":"view_type","polling":"all","persist":"no","page_types":[],"testmode":false,"default":"false","code":"(function(){\n var view_type = { \n \tlg: '2x',\n \tsm: '4x',\n \toutfit:'outfit'\n };\n var viewSelected = jQuery('.products').attr('data-bodega-products-view');\n if(viewSelected in view_type){\n return view_type[viewSelected] ;\n }\n})();","trigger":""},{"name":"scroll_depth","polling":"none","persist":"no","page_types":[],"testmode":true,"default":"false","code":"(function(){\n var $slickDots = jQuery('.slick-dots');\n if($slickDots.length > 0){\n return ($slickDots.find('.slick-active').index() +1);\n }\n})();","trigger":""},{"name":"scroll_left","polling":"none","persist":"no","page_types":[],"testmode":true,"default":"false","code":"(function(){\n var $slickDots = jQuery('.slick-dots');\n if($slickDots.length > 0){\n return ($slickDots.find('li').length - ($slickDots.find('.slick-active').index()+1));\n }\n})();","trigger":""},{"name":"minicart_open","polling":"all","persist":"no","page_types":[],"testmode":false,"default":0,"code":"(function(){\nvar $miniCart = jQuery('.bodega-remote-cart');\n if($miniCart.length > 0){\n return $miniCart.hasClass('is-expanded');\n }\n})();","trigger":""},{"name":"get_fit","polling":"none","persist":"no","page_types":[],"testmode":false,"default":"false","code":"jQuery('[data-valign=#size-and-fit-fit]').find('p:eq(0)').length !== 0 ? jQuery.trim(jQuery('[data-valign=#size-and-fit-fit]').find('p:eq(0)').text()).length : false;","trigger":""},{"name":"get_fabric","polling":"none","persist":"no","page_types":[],"testmode":false,"default":"false","code":"jQuery('#care-and-fabric-fabric').find('p:eq(0)').length !== 0 ? jQuery.trim(jQuery('#care-and-fabric-fabric').find('p:eq(0)').text()).length: false;","trigger":""},{"name":"native_submit","polling":"all","persist":"permanent","page_types":[],"testmode":false,"default":"false","code":"jQuery('#klaviyo_footer').find('.success_message').is(':visible')? true: null","trigger":""},{"name":"hamburger_open","polling":"all","persist":"no","page_types":[],"testmode":false,"default":"false","code":"jQuery('#nav-sub-menu').is(':visible')","trigger":""},{"name":"fit","polling":"none","persist":"no","page_types":[],"testmode":false,"default":"false","code":"(function(){\n var fit = jQuery('#size-and-fit-fit').find('p:not(.t-xxs):first');\n if(fit.length > 0){\n return encodeURIComponent(fit.text().trim());\n }\n return false;\n})();","trigger":""},{"name":"cart_timestamp","polling":"none","persist":"permanent","page_types":[],"testmode":false,"default":"false","code":"null;","trigger":""},{"name":"recent_cart","polling":"none","persist":"no","page_types":[],"testmode":false,"default":"false","code":"(function(){\n if(bouncex.vars.cart_timestamp){\n var days = 7; // Days you want to subtract\n var now = new Date();\n var threshold = new Date(now.getTime() - (days * 24 * 60 * 60 * 1000));\n if(bouncex.vars.cart_timestamp >= threshold.getTime()){\n return true;\n }\n }\n return false;\n})();","trigger":""},{"name":"promo","polling":"none","persist":"permanent","page_types":[],"testmode":false,"default":"false","code":"bouncex.ibx._getparam('bx_promo') === \"\" ? null : bouncex.ibx._getparam('bx_promo')","trigger":""},{"name":"discount","polling":"none","persist":"permanent","page_types":[],"testmode":false,"default":"false","code":"bouncex.ibx._getparam('bx_discount') === \"\" ? null : bouncex.ibx._getparam('bx_discount')","trigger":""},{"name":"pre_head","polling":"none","persist":"permanent","page_types":[],"testmode":false,"default":"false","code":"bouncex.ibx._getparam('bx_tagline') === \"\" ? null : bouncex.ibx._getparam('bx_tagline')","trigger":""},{"name":"promo_product","polling":"none","persist":"permanent","page_types":[],"testmode":false,"default":"false","code":"bouncex.ibx._getparam('bx_product') === \"\" ? null : bouncex.ibx._getparam('bx_product')","trigger":""},{"name":"cta_link","polling":"none","persist":"permanent","page_types":[],"testmode":false,"default":"false","code":"(function(){\n if(bouncex.ibx._getparam('bx_promo') !== \"\" && bouncex.ibx._getparam('bx_discount') !== \"\"){\n return window.location.origin + window.location.pathname\n }\n})();","trigger":""},{"name":"bx_date","polling":"none","persist":"permanent","page_types":[],"testmode":false,"default":"false","code":"(function(){\n if(bouncex.ibx._getparam('bx_date') !== ''){\n return Date.parse(bouncex.ibx._getparam('bx_date') + ' 11:59 PM');\n }else{\n return null;\n }\n})();","trigger":""},{"name":"promo_end","polling":"all","persist":"no","page_types":[],"testmode":false,"default":"false","code":"Date.now() > bouncex.vars.bx_date;","trigger":""},{"name":"promo_code","polling":"none","persist":"visit","page_types":[],"testmode":false,"default":"false","code":"bouncex.ibx._getparam('bx_code') === \"\" ? null : bouncex.ibx._getparam('bx_code');\n","trigger":""},{"name":"edge_browser","polling":"none","persist":"visit","page_types":[],"testmode":false,"default":"false","code":"bouncex.browser.edge;","trigger":""},{"name":"ibx_discount","polling":"none","persist":"permanent","page_types":[],"testmode":false,"default":"false","code":"(function(){\n\tif((window.location.search.indexOf('Prospect_10') > -1 || window.location.search.indexOf('Welcome_10') > -1) && bouncex.vars.ibx_discount === false){\n\t\treturn \"10\";\n\t} else if((window.location.search.indexOf('Prospect_30') > -1 || window.location.search.indexOf('Welcome_30') > -1) && bouncex.vars.ibx_discount === false){\n\t\treturn \"30\";\n\t} else {\n\t\treturn null;\n\t}\n})()","trigger":""},{"name":"cart_plurality","polling":"all","persist":"visit","page_types":[],"testmode":false,"default":"false","code":"bouncex.vars.cart_qty > 1 ? 'things' : 'thing';","trigger":"pageload"},{"name":"sidebar_nav_visible","polling":"all","persist":"no","page_types":[],"testmode":false,"default":"false","code":"jQuery('section#offcanvas.open:visible').length > 0;","trigger":"pageload"},{"name":"utm_source","polling":"none","persist":"visit","page_types":[],"testmode":false,"default":"false","code":"bouncex.utils.url.getParam('utm_source') || null;","trigger":"pageload"},{"name":"on_information_step","polling":"all","persist":"no","page_types":[],"testmode":false,"default":"false","code":"jQuery('.banner h1:contains(\"Information\")').length > 0 || jQuery('.breadcrumb__item--current').text().indexOf('Information') > -1 || false;","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":"//LM: 09/02/2017 06:53 PM\nbouncex.util = {\n\n\taddNamespace: function(obj, name) {\n\t\tvar namespacedObj = {};\n\t\tfor (var k in obj) {\n\t\t\tif (obj.hasOwnProperty(k)) {\n\t\t\t\tvar namespacedKey = k;\n\t\t\t\tif (k.indexOf(':') === -1) {\n\t\t\t\t\tnamespacedKey = name + ':' + k;\n\t\t\t\t}\n\t\t\t\tnamespacedObj[namespacedKey] = obj[k];\n\t\t\t}\n\t\t}\n\t\treturn namespacedObj;\n\t},\n\n\t//copied from bouncex.ibx\n\tgetParam: function(name, qstring) {\n\t\tvar param_string = qstring ? ('?' + qstring) : window.location.href;\n\t\tname = name.replace(/[\\[]/,\"\\\\\\[\").replace(/[\\]]/,\"\\\\\\]\");\n\t\tvar regexS = \"[\\\\?&#]\"+name+\"=([^&#]*)\";\n\t\tvar regex = new RegExp( regexS );\n\t\tvar results = regex.exec( param_string );\n\t\tif( results == null ) return \"\";\n\t\telse return decodeURIComponent(results[1]);\n\t},\n\n\tgetTimeMs: function() {\n\t\treturn (new Date().getTime());\n\t},\n\n\tisValidInteger: function(val) {\n\t\t// returns true for 0, '0', 1, '1'. False for '', undefined\n\t\treturn !isNaN(parseInt(val));\n\t},\n\n\t//copied from bouncex.ibx\n\tisValidEmail: function(email) {\n\t\tvar regex = /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\t\treturn regex.test(email);\n\t},\n\n\tisValidUrl: function(url, type) {\n\t\t//JKMD: type could differentiate between absolute/relative, allow mailto links, etc\n\t\tvar regex = /^(http|https):\\/\\/(([a-zA-Z0-9$\\-_.+!*'(),;:&=]|%[0-9a-fA-F]{2})+@)?(((25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|[1-9][0-9]|[0-9])(\\.(25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|[1-9][0-9]|[0-9])) {3})|localhost|([a-zA-Z0-9\\-\\u00C0-\\u017F]+\\.)+([a-zA-Z]{2,}))(:[0-9]+)?(\\/(([a-zA-Z0-9$\\-_.+!*'(),;:@&=]|%[0-9a-fA-F]{2})*(\\/([a-zA-Z0-9$\\-_.+!*'(),;:@&=]|%[0-9a-fA-F]{2})*)*)?(\\?([a-zA-Z0-9$\\-_.+!*'(),;:@&=\\/?]|%[0-9a-fA-F]{2})*)?(\\#([a-zA-Z0-9$\\-_.+!*'(),;:@&=\\/?]|%[0-9a-fA-F]{2})*)?)?$/;\n\t\treturn regex.test(url);\n\t},\n\n\tmakeQuerystring: function(o) {\n\t\tvar a=[],s='';\n\t\tfor(var k in o) {\n\t\t\tif(!o.hasOwnProperty(k)) continue;\n\t\t\ta.push(k+'='+encodeURIComponent(o[k]));\n\t\t}\n\t\treturn a.join('&');\n\t},\n\n\tmergeObject: function () {\n\t\tvar o = {};\n\t\tfor (var k in arguments) {\n\t\t\tvar a = arguments[k];\n\t\t\tif (typeof a == 'object') {\n\t\t\t\tfor (var k in a) {\n\t\t\t\t\tif (a.hasOwnProperty(k)) o[k] = a[k];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn o;\n\t}\n};\n\n//copied from bouncex.ibx\nbouncex.util.cookies = {\n\n\tdomain: window.bouncex.cookie_domain,\n\n\tcreate: function(obj){\n\t\tdefaults = {\n\t\t\tname : '',\n\t\t\tvalue : '',\n\t\t\tdomain : false,\n\t\t\tdays : 14\n\t\t};\n\t\tobj = bouncex.util.mergeObject(defaults, obj);\n\n\t\tif (!obj.name || !obj.value) { return false; }\n\n\t\tvar date = new Date();\n\t\tdate.setTime(date.getTime() + obj.days * 24 * 60 * 60 * 1e3);\n\t\tvar exp = '; expires=' + date.toGMTString();\n\n\t\tvar cookieString = obj.name + '=' + obj.value + exp + '; path=/;';\n\t\tif (obj.domain){\n\t\t\tcookieString += 'domain=' + obj.domain + ';';\n\t\t}\n\t\tdocument.cookie = cookieString;\n\t},\n\n\tdestroy: function (name) {\n\t\tthis.create({\n\t\t\tname : name,\n\t\t\tdays : -1,\n\t\t});\n\t},\n\n\tread: function (name) {\n\t\t//return this.multi.get(name);\n\t\tvar t = name + \"=\", vars = document.cookie.split(\";\");\n\t\tfor (var r = 0; r < vars.length; r++) {\n\t\t\tvar i = vars[r];\n\t\t\twhile (i.charAt(0) == \" \")i = i.substring(1, i.length);\n\t\t\tif (i.indexOf(t) == 0)return i.substring(t.length, i.length);\n\t\t}\n\t\treturn null;\n\t}\n};\n\nbouncex.utk = {\n\tlisteners: {},\n\n\taddMetadata: function(obj) {\n\t\tvar m = this.getMetadata();\n\t\treturn bouncex.util.mergeObject(obj, m);\n\t},\n\n\tgetMetadata: function() {\n\t\treturn {\n\t\t\t'page:type': this.getPageType(),\n\t\t\t'customer:hasconverted': (bouncex.cookie.lc?1:0),\n\t\t\t'user:ibx_discount': bouncex.vars.ibx_discount\n\t\t};\n\t},\n\n\thoverItem: function(obj) {\n\t\tvar defaults = {\n\t\t\teventName: 'hover item',\n\t\t\titemTracking: false,\n\t\t\tselector: '',\n\t\t\tmaxItems: 5,\n\t\t\ttimeoutMs: 1000,\n\t\t\tgetItemData: function(el) { return null; },\n\t\t};\n\n\t\tobj = bouncex.util.mergeObject(defaults, obj);\n\n\t\t//validation here\n\t\tif (!obj.selector) { return null; }\n\n\t\t//register the tracker\n\t\tobj.stop = removeHoverTracking;\n\t\tvar trackerId = bouncex.utk.register(obj);\n\t\tvar timeout;\n\t\tvar ids = [];\n\n\t\tfunction onMouseenter() {\n\t\t\tclearTimeout(timeout);\n\t\t\tvar el = this;\n\t\t\ttimeout = setTimeout(function() {\n\t\t\t\tvar item = obj.getItemData(el);\n\t\t\t\tif (!item.id) { return; }\n\t\t\t\t//if not already tracked\n\t\t\t\tif (ids.indexOf(item.id) === -1) {\n\t\t\t\t\t//add id to list of tracked items\n\t\t\t\t\tids.push(item.id);\n\t\t\t\t\t//track the event\n\t\t\t\t\tvar itemEventData = { eventName: obj.eventName, item: item };\n\t\t\t\t\tbouncex.utk.trackItemInteraction(itemEventData);\n\t\t\t\t\t//track the item\n\t\t\t\t\tif (obj.itemTracking) {\n\t\t\t\t\t\tbouncex.utk.trackItem(item);\n\t\t\t\t\t}\n\t\t\t\t\t//check limits\n\t\t\t\t\tif (ids.length >= obj.maxItems) {\n\t\t\t\t\t\tremoveHoverTracking();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, obj.timeoutMs);\n\t\t}\n\n\t\tfunction onMouseleave() {\n\t\t\tclearTimeout(timeout);\n\t\t}\n\n\t\tfunction addHoverTracking() {\n\t\t\tjQuery(document).on('mouseenter.bx-tracking-hover.' + trackerId, obj.selector, onMouseenter);\n\t\t\tjQuery(document).on('mouseleave.bx-tracking-hover.' + trackerId, obj.selector, onMouseleave);\n\t\t}\n\n\t\tfunction removeHoverTracking() {\n\t\t\tjQuery(document).off('mouseenter.bx-tracking-hover.' + trackerId);\n\t\t\tjQuery(document).off('mouseleave.bx-tracking-hover.' + trackerId);\n\t\t\tclearTimeout(timeout);\n\t\t}\n\n\t\taddHoverTracking();\n\t\treturn trackerId;\n\t},\n\n\tgetPageType: function() {\n\t\treturn \"\";\n\t},\n\n\tquickviewItem: function(obj) {\n\t\tvar defaults = {\n\t\t\teventName: 'quickview item',\n\t\t\titemTracking: false,\n\t\t\tselector: '',\n\t\t\tgetItemData: function(el) { return null; }\n\t\t};\n\n\t\tobj = bouncex.util.mergeObject(defaults, obj);\n\t\t//validation here\n\t\tif (!obj.selector) { return null; }\n\n\t\tvar prevVisible = false,\n\t\t\tvisible;\n\n\t\treturn bouncex.utk.setInterval({\n\t\t\tcallback: function() {\n\t\t\t\tvisible = jQuery(obj.selector).is(':visible');\n\t\t\t\tif (visible && !prevVisible) {\n\t\t\t\t\tvar item = obj.getItemData(obj.selector);\n\n\t\t\t\t\tvar itemEventData = { eventName: obj.eventName, item: item };\n\t\t\t\t\tbouncex.utk.trackItemInteraction(itemEventData);\n\t\t\t\t\t//track the item\n\t\t\t\t\tif (obj.itemTracking) {\n\t\t\t\t\t\tbouncex.utk.trackItem(item);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tprevVisible = visible;\n\t\t\t}\n\t\t});\n\t},\n\n\trequestEmail: function(obj) {\n\t\t//JKMD: bouncex.push right now automatically adds namespacing, which would mess up \"campaignid\"\n\t\tparams = {};\n\t\tfor (var k in obj) {\n\t\t\tif (obj.hasOwnProperty(k)){\n\t\t\t\tparams[k.toLowerCase()] = obj[k];\n\t\t\t}\n\t\t}\n\t\tevent_stream_report('requestemail', params);\n\t},\n\n\t//JKMD: long-term plan is to put all of our polling into a single setInterval\n\tsetInterval: function(obj) {\n\t\tvar defaults = {\n\t\t\tmilliseconds: 1000,\n\t\t\tcallback: function() { return null; }\n\t\t};\n\t\tobj = bouncex.util.mergeObject(defaults, obj);\n\t\tvar intervalId = setInterval(obj.callback, obj.milliseconds);\n\n\t\tobj.stop = removeInterval;\n\t\tvar trackerId = bouncex.utk.register(obj);\n\t\tfunction removeInterval() {\n\t\t\tclearInterval(intervalId);\n\t\t}\n\t\treturn trackerId;\n\t},\n\n\ttrackItem: function(item) {\n\t\tif (typeof(item.id) === 'string'){\n\t\t\titem.id = item.id.trim().toLowerCase();\n\t\t}\n\t\tif (!this.validateItem(item)) {\n\t\t\t//bouncex.log('item failed validation', item);\n\t\t\treturn false;\n\t\t}\n\t\titem = bouncex.util.addNamespace(item, 'item');\n\t\tbouncex.push(['item', item]);\n\t},\n\n\ttrackItemInteraction: function(obj) {\n\t\tvar id = obj.item.id;\n\t\tif (typeof(id) === 'string'){\n\t\t\tid = id.trim().toLowerCase();\n\t\t}\n\t\tif(bouncex.vars.ibx_test){\n\t\t var o = { 'item:id': id, 'user:ibx_discount': bouncex.vars.ibx_discount };\n\t\t}else{\n\t\tvar o = { 'item:id': id };\n\t\t}\n\t\to = this.addMetadata(o);\n\t\tbouncex.push([obj.eventName, o]);\n\t},\n\n\ttrackListPage: function(obj){\n\t\tvar defaults = {\n\t\t\teventName: 'view ' + this.getPageType(),\n\t\t\tmaxItems: 6,\n\t\t\tselector: '',\n\t\t\ttitle: '',\n\t\t\turl: jQuery('link[rel=canonical]').attr('href') || window.location.href.split('?')[0],\n\t\t\titemTracking : false,\n\t\t\tgetItemData: function(el) { return null;},\n\t\t};\n\n\t\tobj = bouncex.util.mergeObject(defaults, obj);\n\n\t\tvar items = jQuery(obj.selector);\n\t\tif (!items || !items.length){\n\t\t\treturn false;\n\t\t}\n\t\tvar itemsTracked = 0;\n\t\tvar itemIds = [];\n\t\tfor (var i = 0; i < items.length && itemsTracked < obj.maxItems; i++) {\n\t\t\tvar item = obj.getItemData(items[i]);\n\t\t\tif (item.id){\n\t\t\t\tif (typeof(item.id) === 'string'){\n\t\t\t\t\titem.id = item.id.trim().toLowerCase();\n\t\t\t\t}\n\t\t\t\t// add id to list\n\t\t\t\titemIds.push(item.id);\n\t\t\t\tif (obj.itemTracking){\n\t\t\t\t\t//track full item\n\t\t\t\t\tthis.trackItem(item);\n\t\t\t\t}\n\t\t\t\titemsTracked++;\n\t\t\t}\n\t\t}\n\t\tvar o = {'items:ids' : itemIds.join(','), 'page:url' : obj.url};\n\t\tif (obj.title){\n\t\t\to['page:title'] = obj.title;\n\t\t}\n\t\to = this.addMetadata(o);\n\t\tbouncex.push([obj.eventName, o]);\n\t},\n\n\ttrackUser: function(user) {\n\t\tif (!user.email && !user.emailHash) {\n\t\t\treturn false;\n\t\t}\n\t\tvar params = bouncex.util.addNamespace(user, 'user');\n\t\tif (user.email) {\n\t\t\tparams['user:email'] = user.email;\n\t\t}\n\t\tif (user.emailHash) {\n\t\t\tparams['user:emailhash'] = user.emailHash;\n\t\t}\n\t\tif (user.campaignId) {\n\t\t\tparams['campaignid'] = user.campaignId;\n\t\t}\n\t\tparams['user:gcr'] = (bouncex && bouncex.cookie) ? bouncex.cookie.gcr : 99;\n\t\tparams['agent'] = 'js';\n\t\tparams['eq'] = 1;\n\n\t\tevent_stream_report('user', params);\n\t},\n\n\tvalidateItem: function(item) {\n\t\tif (!item) { return false; }\n\t\tif (!item.id) { return false; }\n\t\tif (!item.copy) { return false; }\n\t\tif (!item.imageurl || !bouncex.util.isValidUrl(item.imageurl)) { return false; }\n\t\tif (!item.url || !bouncex.util.isValidUrl(item.imageurl)) { return false; }\n\t\treturn true;\n\t},\n\n\tviewItem: function(obj) {\n\t\tvar defaults = {\n\t\t\teventName: 'view item',\n\t\t\titemTracking: true,\n\t\t\tgetItemData: function() { return null; }\n\t\t};\n\n\t\tobj = bouncex.util.mergeObject(defaults, obj);\n\n\t\tvar item = obj.getItemData();\n\n\t\tif (obj.itemTracking) {\n\t\t\tthis.trackItem(item);\n\t\t}\n\n\t\tif (item.id) {\n\t\t\tvar itemEventData = { eventName: obj.eventName, item: item };\n\t\t\tbouncex.utk.trackItemInteraction(itemEventData);\n\t\t} else {\n\t\t\t//bouncex.log('no item id', obj.eventName, item);\n\t\t}\n\t},\n\n\t//keeping track of the listeners inside tracking\n\tregister: function(obj) {\n\t\tvar id = bouncex.util.getTimeMs() + Math.random();\n\t\tbouncex.utk.listeners[id] = obj;\n\t\treturn id;\n\t},\n\n\t//remove single tracker\n\tstop: function(id) {\n\t\tif (bouncex.utk.listeners.hasOwnProperty(id)) {\n\t\t\tbouncex.utk.listeners[id].stop();\n\t\t\tdelete bouncex.utk.listeners[id];\n\t\t}\n\t},\n\n\t//remove all listeners\n\tstopAll: function() {\n\t\tfor (var id in bouncex.utk.listeners) {\n\t\t\tbouncex.utk.stop(id);\n\t\t}\n\t}\n};\n\nbouncex.utk.cart = {\n\n\tgetCart: function() {\n\t\tif (this.state) {\n\t\t//cached here once we look it up or save\n\t\t\treturn this.state;\n\t\t}else if (this.config.storeCartVariable && bouncex.vars[this.config.storeCartVariable]) {\n\t\t//look up from cvar if it exists\n\t\t\tthis.state = JSON.parse(bouncex.vars[this.config.storeCartVariable]);\n\t\t\treturn this.state;\n\t\t}else {\n\t\t\treturn {};\n\t\t}\n\t},\n\n\tgetCount: function(){\n\t\treturn bouncex.vars[this.config.cartCountVariable];\n\t},\n\n\tinferCount: function(cart) {\n\t\t// return cart.count if specified and valid\n\t\tif (bouncex.util.isValidInteger(cart.count)) {\n\t\t\treturn parseInt(cart.count);\n\t\t} else if (cart.items) {\n\t\t\t// deduce from items length (using qty property if specified)\n\t\t\tvar count = 0;\n\t\t\tfor (var i = 0; i < cart.items.length; i++) {\n\t\t\t\tvar qty = parseInt(cart.items[i].qty) || 1;\n\t\t\t\tcount += qty;\n\t\t\t}\n\t\t\treturn count;\n\t\t}else if (bouncex.util.isValidInteger(this.getCount())){\n\t\t\treturn parseInt(this.getCount());\n\t\t}else{\n\t\t\treturn 0;\n\t\t}\n\t},\n\n\tinit: function(obj) {\n\t\tvar defaults = {\n\t\t\t// lastReplenishment: false,\n\t\t\tstoreCartVariable: 'cart',\n\t\t\tcartCountVariable: 'cart_qty',\n\t\t\tmaxVariableSize: 400,\n\t\t\tstoreValues: ['count', 'items'],\n\t\t\tmaxItems: 10\n\t\t};\n\t\tobj = bouncex.util.mergeObject(defaults, obj);\n\t\tthis.config = obj;\n\n\t\t//JKMD: should we do this via init, or just override explicitly...?\n\t\tthis.replenish = obj.replenish || this.replenish;\n\t\tthis.validateReplenishment = obj.validateReplenishment || this.validateReplenishment;\n\t\tthis.reportReplenishment = obj.reportReplenishment || this.reportReplenishment;\n\n\t\tthis.initFromQuerystring();\n\t\tthis.reportReplenishment();\n\t},\n\n\tinitFromQuerystring: function() {\n\t\tvar bx_cart = bouncex.util.getParam('bx_cart');\n\t\tvar ibx_cart = bouncex.util.getParam('ibx_cart');\n\t\tvar legacy = false;\n\t\tvar cart = {};\n\n\t\tif (bx_cart) {\n\t\t\t//JKMD: support base64\n\t\t\tif (bx_cart.charAt(0) !== '{') {\n\t\t\t\tbx_cart = atob(bx_cart);\n\t\t\t}\n\t\t\tcart = JSON.parse(bx_cart);\n\t\t} else if (ibx_cart) {\n\t\t\tcart = { value: ibx_cart };\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!this.validateReplenishment(cart)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.save(cart);\n\t\treturn this.replenish(cart);\n\t},\n\n\treplenish: function(cart) {\n\t\treturn null;\n\t},\n\n\tsave: function(cart) {\n\t\tif (!cart) { return false; }\n\t\tthis.state = cart;\n\t\tif (this.config.storeCartVariable) {\n\t\t\tvar storedCart = {};\n\t\t\tif (cart.count === 0) {\n\t\t\t\t// if count is 0, don't store any other info\n\t\t\t\tstoredCart = { count: 0 };\n\t\t\t}else{\n\t\t\t\t//store values specified in settings\n\t\t\t\tfor (var i = 0; i < this.config.storeValues.length; i++) {\n\t\t\t\t\tvar k = this.config.storeValues[i];\n\t\t\t\t\tif (cart.hasOwnProperty(k)) {\n\t\t\t\t\t\tstoredCart[k] = cart[k];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar cartString = JSON.stringify(storedCart);\n\t\t\tif (cartString.length <= this.config.maxVariableSize) {\n\t\t\t\tbouncex.setv(this.config.storeCartVariable, cartString);\n\t\t\t\tsetBounceCookie();\n\t\t\t}\n\t\t}\n\t},\n\n\ttrack: function(cart) {\n\t\tvar trackCart = bouncex.util.mergeObject(cart);\n\t\tif (trackCart.items) trackCart.items = JSON.stringify(trackCart.items);\n \t\tif (trackCart.ids) trackCart.ids = trackCart.ids.join(',');\n\t\ttrackCart = bouncex.util.addNamespace(trackCart, 'cart');\n\t\tbouncex.push(['cart', trackCart]);\n\t},\n\n\tupdate: function (obj) {\n\t\tvar cart = {};\n\n\t\tif (obj.newItem) {\n\t\t\t//if partial, merge new item with stored items\n\t\t\tvar oldCart = this.getCart();\n\t\t\tvar allItems = oldCart.items || [];\n\t\t\tallItems.push(obj.newItem);\n\t\t\tobj.items = allItems;\n\t\t}\n\n\t\t// pass relevant properties to cart\n\t\tcart.count = obj.count;\n\t\tif (obj.items && obj.items.length) { cart.items = obj.items; }\n\t\tif (obj.ids && obj.ids.length) { cart.ids = obj.ids; }\n\t\tif (obj.token) { cart.token = obj.token; }\n\t\tif (obj.value) { cart.value = obj.value; }\n\n\n\t\t//set count\n\t\tcart.count = this.inferCount(cart);\n\n\t\t//auto parse ids from items variable if no ids specified\n\t\tif (!cart.ids && cart.items) {\n\t\t\tcart.ids = [];\n\t\t\tfor (var i = 0; i < cart.items.length; i++) {\n\t\t\t\tif (cart.items[i].id) {\n\t\t\t\t\tcart.ids.push(cart.items[i].id);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// remove items from beginning of items array if over limit\n\t\tif (this.config.maxItems && cart.items && cart.items.length > this.config.maxItems) {\n\t\t\tcart.items = cart.items.slice(cart.items.length - this.config.maxItems);\n\t\t}\n\n\t\t// save in cart.state, and in cvar if specified\n\t\tthis.save(cart);\n\t\t//track cart\n\t\tthis.track(cart);\n\t\t//fire add to cart event if new item or addToCart flag\n\t\tif (obj.newItem || obj.addToCart){\n\t\t\tbouncex.push(['add to cart', bouncex.utk.getMetadata()]);\n\t\t}\n\t},\n\n\tvalidateReplenishment: function(cart) {\n\t\tvar cartCount = bouncex.utk.cart.getCount();\n\t\tif (bouncex.util.isValidInteger(cartCount) && cartCount > 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!cart) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!cart.value && !cart.token && !cart.items) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t},\n\n\treportReplenishment: function() {\n\t\tvar bx_replen = bouncex.util.getParam('bx_replen');\n\t\tif (bx_replen) {\n\t\t\tsetTimeout(function(){\n\t\t\t\tvar cartCount = bouncex.utk.cart.getCount();\n\t\t\t\tbouncex.push(['cart replenish', {'cart:count': cartCount, 'cart:success': cartCount > 0}]);\n\t\t\t}, 1100);\n\t\t}\n\t}\n};\n\nfunction showMiniCart(){\n console.log('in mini cart');\n console.log(jQuery('.stencil-nav-menu-item-cart a'));\n\tif(jQuery('.stencil-nav-menu-item-cart a').length > 0){\n\t\tsetTimeout(function(){\n\t\t\tjQuery('.stencil-nav-menu-item-cart a').click();\n\t\t},500);\n\t}\n}\n\nfunction getSquareImg(imgs, callback) {\n\tvar loadedImages = [];\n\n\tfunction loadImage(src) {\n\t\tjQuery(\"\")\n\t\t\t.attr(\"src\", src)\n\t\t\t.load(function() {\n\t\t\t\tloadedImages.push({\n\t\t\t\t\tsrc: src,\n\t\t\t\t\twidth: this.width,\n\t\t\t\t\theight: this.height\n\t\t\t\t});\n\n\t\t\t\tif (loadedImages.length == imgs.length) {\n\t\t\t\t\tcomplete();\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tfunction complete() {\n\t\tvar squareSrc = loadedImages[0].src, maxRatio = 0;\n\t\tfor(var i=0; i < loadedImages.length; i++) {\n\t\t\tvar width = loadedImages[i].width;\n\t\t\tvar height = loadedImages[i].height;\n\t\t\tvar src = loadedImages[i].src;\n\t\t\tvar ratio;\n\n\t\t\tif (!src || !bouncex.util.isValidInteger(width) || !bouncex.util.isValidInteger(height)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (width < height) {\n\t\t\t\tratio = width / height;\n\t\t\t} else if (width > height) {\n\t\t\t\tratio = height / width;\n\t\t\t} else {\n\t\t\t\tratio = 1;\n\t\t\t}\n\n\t\t\tif (ratio > maxRatio) {\n\t\t\t\tmaxRatio = ratio;\n\t\t\t\tsquareSrc = src;\n\t\t\t}\n\t\t}\n\t\tcallback(squareSrc);\n\t}\n\n\tfor(var i=0; i <= imgs.length; i++) {\n\t\tloadImage(imgs[i]);\n\t}\n}\n\nbouncex.utk.trackListPage = function(obj){\n\tvar defaults = {\n\t\teventName: 'view ' + this.getPageType(),\n\t\tmaxItems: 6,\n\t\tselector: '',\n\t\ttitle: '',\n\t\turl: jQuery('link[rel=canonical]').attr('href') || window.location.href.split('?')[0],\n\t\titemTracking : false,\n\t\tgetItemData: function(el) { return null;},\n\t};\n\n\tobj = bouncex.util.mergeObject(defaults, obj);\n\n\tvar items = jQuery(obj.selector);\n\tif (!items || !items.length){\n\t\treturn false;\n\t}\n\tvar itemsTracked = 0;\n\tvar itemIds = [];\n\n\tfor (var i = 0; i < items.length && itemsTracked < obj.maxItems; i++) {\n\t\tvar item = obj.getItemData(items[i]);\n\t\tif (item.id){\n\t\t\tif (typeof(item.id) === 'string'){\n\t\t\t\titem.id = item.id.trim().toLowerCase();\n\t\t\t}\n\n\t\t\t//don't track duplicate items on the same list page and don't count it towards num tracked\n\t\t\tif (itemIds.indexOf(item.id) == -1) {\n\t\t\t\t// add id to list\n\t\t\t\titemIds.push(item.id);\n\t\t\t\tif (obj.itemTracking){\n\t\t\t\t\t//track full item\n\t\t\t\t\tthis.trackItem(item);\n\t\t\t\t}\n\t\t\t\titemsTracked++;\n\t\t\t}\n\t\t}\n\t}\n\n\tvar o = {'items:ids' : itemIds.join(','), 'page:url' : obj.url};\n\tif (obj.title){\n\t\to['page:title'] = obj.title;\n\t}\n\to = this.addMetadata(o);\n\tbouncex.push([obj.eventName, o]);\n};\n\nbouncex.utk.getPageType = function() {\n\tif (window.location.href.indexOf('products') > -1) {\n\t\treturn 'product';\n\t}\n\tif(window.location.href.indexOf('collections') > -1) {\n\t\treturn 'category';\n\t}\n\tif (document.location.pathname.indexOf('cart') > -1) {\n\t\treturn 'cart';\n\t}\n\tif (document.location.pathname.indexOf('checkouts') > -1) {\n\t\treturn 'checkouts';\n\t}\n};\n\n// bouncex.utk.trackCartOnCountChange = function() {\n// \tvar currentCount = bouncex.utk.cart.getCount();\n// \tvar oldCount = bouncex.utk.cart.getCart().count || 0;\n// \tif (currentCount != oldCount) {\n// \t if(currentCount > oldCount){\n// \t var cartTimeStamp = new Date();\n// \t bouncex.setv('cart_timestamp', cartTimeStamp.getTime());\n// \t bouncex.setv('recent_cart', true);\n// \t }\n// \t\tbouncex.utk.cart.update({\n// \t\t\ttoken: getBounceCookie('cart'),\n// \t\t\tcount: currentCount,\n// \t\t\taddToCart: (currentCount > oldCount)\n// \t\t});\n// \t}\n\n// \tfunction getCartItems() {\n// \t\tvar items = [];\n// \t\tvar minicart = jQuery('.bodega-remote-cart-inner');\n// \t\tvar products = minicart.find('.media');\n// \t\tif (products.length > 0) {\n// \t\t\tjQuery.each(products, function(idx,ele) {\n// \t\t\t\tvar id = window.bouncex.util.getParam('variant',jQuery(ele).find('a').attr('href'));\n// \t\t\t\titems.push(id);\n// \t\t\t});\n// \t\t}\n// \t\treturn items;\n// \t}\n// };\n\n\nbouncex.utk.init = function() {\n\tbouncex.utk.stopAll();\n\t\n\tvar pageType = bouncex.utk.getPageType();\n\n\tbouncex.utk.cart.init({\n\t\tstoreCartVariable: 'cart',\n\t\tcartCountVariable: 'cart_qty',\n\t\tstoreValues: ['count'],\n\t\treplenish: function(cart) {\n\t\t\tbouncex.util.cookies.create({\n\t\t\t\tname: 'cart',\n\t\t\t\tvalue: cart.token\n\t\t\t});\n\t\t\twindow.location.href = 'https://www.ayr.com/?bx_replen=true';\n\t\t},\n\t\tvalidateReplenishment: function(cart) {\n\t \t\tvar cartCount = bouncex.utk.cart.getCount();\n\t \t\tif (bouncex.util.isValidInteger(cartCount) && cartCount > 0) {\n\t \t\t // console.log('show cart');\n\t \t\t\tshowMiniCart();\n\t \t\t\treturn false;\n\t \t\t}\n\t \n\t \t\tif (!cart) {\n\t \t\t\treturn false;\n\t \t\t}\n\t \n\t \t\tif (!cart.value && !cart.token && !cart.items) {\n\t \t\t\treturn false;\n\t \t\t}\n\t \n\t \t\treturn true;\n\t \t}\n\t});\n\t\n\tif(bouncex.vars.cart_qty > 0 && window.location.href.indexOf('bx_replen') > -1 ){\n\t\t//bouncex.utk.cart.showMiniCart();\n\t\tshowMiniCart();\n\t} \n\n\n\tif (pageType == 'product') {\n\t\tvar images = jQuery('.product-gallery').find('.product-image').map(function(i, image) {\n\t\t\treturn jQuery(image).attr('data-bgset').split(', ').shift();\n\t\t}).get();\n\t\t\n\t\tvar metImage = jQuery('meta[property=\"og:image\"]').attr('content');\n\n\t\tif(metImage) {\n\t\t\tbouncex.utk.trackItem({\n\t\t\t\tid: ShopifyAnalytics.meta.product.id,\n\t\t\t\tcopy: jQuery('.t-set.t-title.product-title').text() || '',\n\t\t\t\timageurl: metImage,\n\t\t\t\tcategory: meta.product.type,\n\t\t\t\turl: window.location.protocol + '//' + window.location.hostname + window.location.pathname + window.location.hash,\n\t\t\t\tinstock: jQuery('.product-details-description .js-bodega-color.visible').last().text().indexOf('Expected in') === -1 \n\t \t\t});\n\t\t} else {\n\t\t\tgetSquareImg(images, function(imageurl) {\n\t\t\t\tbouncex.utk.trackItem({\n\t\t\t\t\tid: ShopifyAnalytics.meta.product.id,\n\t\t\t\t\tcopy: jQuery('.t-set.t-title.product-title').text() || '',\n\t\t\t\t\timageurl: window.location.protocol + encodeURI(imageurl),\n\t\t\t\t\tcategory: meta.product.type,\n\t\t\t\t\turl: window.location.protocol + '//' + window.location.hostname + window.location.pathname + window.location.hash,\n\t\t\t\t instock: jQuery('.product-details-description .js-bodega-color.visible').last().text().indexOf('Expected in') === -1 \n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tbouncex.utk.viewItem({\n\t\t\titemTracking: false,\n\t\t\tgetItemData: function() {\n\t\t\t\treturn {\n\t\t\t\t\tid: ShopifyAnalytics.meta.product.id\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\t}\n\t\n\tif(pageType != 'checkouts'){\n\t bouncex.utk.setInterval({\n\t\t callback: bouncex.utk.trackCartOnCountChange\n\t });\n\t}\n\n\n\tif (pageType == 'category') {\n\t\tbouncex.utk.hoverItem({\n\t\t\tselector: '.product',\n\t\t\titemTracking: false,\n\t\t\tgetItemData: function(el) {\n\t\t\t\tvar j = jQuery(el);\n\t\t\t\treturn {\n\t\t\t\t\tid: j.attr('data-product-id')\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\t\t\n\t\tbouncex.utk.trackListPage({ \n\t\t\tselector: '.product',\n\t\t\titemTracking : false,\n\t\t\ttitle: typeof jQuery('meta[property=\\'og:title\\']').attr('content') !== 'undefined' ? jQuery('meta[property=\\'og:title\\']').attr('content') : '',\n\t\t\turl: jQuery('link[rel=canonical]').attr('href') || window.location.href.split('?')[0],\n \t \tgetItemData: function(el) {\n\t\t \t\tvar j = jQuery(el);\n \t\treturn {\n \t\t\tid: j.attr('data-product-id')\n \t\t};\n\t\t\t}\n\t\t});\n\t}\n};\n\nbouncex.utk.init();\n\n/* KC 5.25.2017 Set ibx user if email exists in url since bouncex.utk.muu(); function is not here */\n\nif(location.href.match(/([a-zA-Z0-9._\\+-]+(?:@|%40)[a-zA-Z0-9._-]+\\.[a-zA-Z0-9._-]+)/gi)!==null){\n\tbouncex.ibx.user(decodeURIComponent(location.href.match(/([a-zA-Z0-9._\\+-]+(?:@|%40)[a-zA-Z0-9._-]+\\.[a-zA-Z0-9._-]+)/gi)[0]), {__src: 'URL'});\n}\n\n/* ADD TO CART Refactor - https://www.wrike.com/open.htm?id=705918669*/\nvar COOKIE_NAME = \"cart\",\n ATC_SELECTOR = \"#add-to-bag\",\n AYR_DOMAIN = \"https://www.ayr.com\";\n\nfunction replenish(cart){\n bouncex.utils.cookies.create({'name': COOKIE_NAME, 'value': cart.token});\n window.location.href = window.location.pathname + '?bx_replen=true';\n}\n\nfunction emptyCart(){\n\tif (bouncex.vars.cart_qty === 0){\n\t\tbouncex.push(['empty_cart', {}]);\n }\n}\n\nfunction initializeCartEvents(){\n bouncex.et.cart.init({\n replenishmentType : 'cookie',\n replenish : replenish,\n });\n\n jQuery(ATC_SELECTOR).click(function(){\n\t var itemId = bouncex.utils.getNestedProp(\"ShopifyAnalytics.meta.product.id\"),\n\t cookie;\n bouncex.et.onTrue(function(){\n cookie = bouncex.getBounceCookie(COOKIE_NAME);\n return cookie;\n }, function(){\n bouncex.push(['add to cart', {'item:id': itemId, 'cart:token': cookie }]);\n }, 10); \n\t});\n\t\n bouncex.et.onVarChange('cart_qty', emptyCart);\n}\n\nif (window.location.origin.indexOf(AYR_DOMAIN) > -1){\n initializeCartEvents();\n}","cjs":"","miw":1,"mibcx":1,"te":1,"cart_rep":{"get":"","set":""},"ulpj":{"bxid":"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\nbouncex.utils.shqInterceptEvent = {\n 'cartAdd': function(){\n var prodId = bouncex.utils.getNestedProp('ShopifyAnalytics.meta.selectedVariantId',null, window);\n var qty = 1;\n var price = bouncex.utils.getNestedProp('BISPopover.product.price',null, window);\n price = price ? Number(price/100).toFixed(2) : null;\n if(prodId && qty && price){\n var atcArray=[];\n atcArray.push({\n 'ProductId': prodId,\n 'UnitPrice': price,\n 'Quantity': qty\n });\n if (atcArray){\n _shq.push(['onCartAdd', { 'Items': atcArray }]);\n }\n }\n }\n \n};\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 AYR mktg txts (like cart reminders) to this #, per terms.","eventSharing":true,"shqId":"qfqgzcvphq-1","enabled":1},"pde":true,"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":"329657754","ga4_measurement_id":"G-G11CQZXXYE"} ; 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: 0 }; bouncex.assets = {"ads":"0109586821763416266dd874f087ef69","creativesBaseStyles":"a53944a2","inbox":"02aca5df0e176b8810a86da97ac05424","onsite":"0e56ab6ba004ee080ce3deb3edae35e9","sms":"e39203556bab2366e56296ce42e974a7","websdk":"0704dae1eb637cbeb4a847506058402d"}; 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.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_005dce26d317b1a438255f8f3d35049d.js'); script.setAttribute('async', 'async'); document.body.appendChild(script); var deviceGraphScript = document.createElement('script'); deviceGraphScript.setAttribute('src', '//assets.bounceexchange.com/assets/smart-tag/versioned/cjs_min_3a843477d8e318f67237a66d0a58c542.js'); deviceGraphScript.setAttribute('async', 'async'); var dgAttrs = [{"Key":"id","Value":"c.js"},{"Key":"async","Value":"true"},{"Key":"data-apikey","Value":"2^HIykD"},{"Key":"data-cb","Value":"bouncex.dg.initPostDeviceGraph"},{"Key":"data-bx","Value":"1"},{"Key":"data-gm","Value":"1"},{"Key":"data-fire","Value":"1"}]; if (dgAttrs) { for (var i = 0; i < dgAttrs.length; i++) { deviceGraphScript.setAttribute(dgAttrs[i].Key, dgAttrs[i].Value); } } document.body.appendChild(deviceGraphScript); bouncex.initializeTag = function() {}; }; document.body.appendChild(runtime); } window._shq = window._shq || []; var eventSharingCartridge = document.createElement('script'); eventSharingCartridge.setAttribute('src', '//assets.bounceexchange.com/assets/smart-tag/versioned/wknd_audiences_2648fa8509e4b3a98a2790bb8171ddc1.js'); eventSharingCartridge.setAttribute('async', 'async'); document.body.appendChild(eventSharingCartridge); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", bxBootstrap); } else { bxBootstrap(); }})();