(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":4007,"name":"Milly (2020)","cookie_name":"bounceClientVisit4007","domain":"milly.com","ct":"fp_local_storage","ally":0,"ei":0,"tcjs":"","cjs":"/* enable.feature.DISABLE_RELOAD_CAMPAIGNS_V2 */\n","force_https":false,"waypoints":false,"content_width":900,"gai":"UA-2042124-8","swids":"","sd":0,"ljq":"auto","campaign_id":0,"is_preview":false,"aco":{"first_party_limit":"3500","local_storage":"1"},"cmp":{"gdpr":0,"gmp":0,"whitelist_check":0},"burls":[],"ple":false,"fbe":true,"ffs":"","mas":2,"map":1,"gar":true,"ete":1,"ettm":false,"etjs":"var MILLY_DOMAIN = 'https://www.milly.com/',\n\tEXCLUDED_PATH = 'online-gift-card',\n \tLOGGED_IN_USER_PATH = MILLY_DOMAIN + 'account',\n \tATC_BUTTON_SELECTOR = '#add-to-cart',\n \tCOOKIE_NAME = 'cart',\n \tEMPTY_CART_SELECTOR = '.page-content.cart-no-products',\n \tVARIANT_SELECTOR = '.dropdown__options.dropdown__options--visible .dropdown__option, .swatch-element:not(\".selected-swatch\") label, #swathes-load-id label';\n\n/************************** HELPERS ***************************/\nfunction getUrl(){\n\treturn bouncex.utils.url.allowParams();\n}\n\nfunction isEn(){\n\treturn jQuery('html').attr('lang') === 'en';\n}\n\nfunction isValidDomain(){\n\treturn getUrl().indexOf(MILLY_DOMAIN) > -1 && getUrl().indexOf(EXCLUDED_PATH) === -1; \n}\n\nfunction isLoggedInUserPage(){\n return getUrl() === LOGGED_IN_USER_PATH;\n}\n\nfunction basTrigger(){\n return jQuery('#BIS_trigger').length > 0;\n}\n\nfunction validateSubmission(selector){\n if (jQuery(selector).val() === 'Create'){\n return jQuery('input#marketing').is(':checked');\n }\n return true;\n}\n\nfunction getItemIdFromUrl(itemUrl){\n var urlArr = itemUrl.split('/');\n return urlArr[urlArr.length - 1];\n}\n/*************************** ITEM ****************************/\nfunction getItemId(){\n var itemUrl;\n if (bouncex.website.pts === \"product\"){\n itemUrl = getUrl();\n } else {\n itemUrl = jQuery('a:contains(\"View Full Details\")').attr('href');\n }\n\treturn getItemIdFromUrl(itemUrl);\n}\n\nfunction isValidItem(){\n\tvar item = getItem();\n\treturn item.id && item.copy && item.category && item.imageurl;\n}\n\nfunction getItem(){\n\treturn {\n\t\tid : getItemId(),\n\t\tcopy: bouncex.vars.prod_name,\n\t\tcategory : bouncex.utils.getNestedProp('meta.product.type'),\n\t\turl : getUrl(),\n\t\timageurl : jQuery('meta[property=\"og:image\"]:first').attr('content'),\n\t\tprice : bouncex.vars.prod_price,\n\t\tinstock : bouncex.vars.in_stock,\n\t};\n}\n\nfunction viewItem(itemId, groupId) {\n bouncex.push([\n \"view item\",\n {\n \"item:id\": itemId,\n \"item:itemgroupid\": groupId\n }\n ]);\n}\n\nfunction firePdpEvents(){\n var item = getItem(), \n \tgroupId = bouncex.utils.getNestedProp('__st.rid');\n\tinitializeCatalogEvents(item.id, groupId);\n\tbouncex.push(['item', item]);\n\tviewItem(item.id, groupId);\n}\n\n/*************************** CATEGORY ****************************/\nfunction categoryIdsAvailable(){\n\treturn getCategoryIds().length > 0;\n}\n\nfunction getCategoryIds(){\n return jQuery('.row article a').map(function(){\n var itemUrl = bouncex.utils.url.allowParams('', jQuery(this).attr('ng-href'));\n var itemId = getItemIdFromUrl(itemUrl);\n return itemId; \n }).toArray().join(',');\n}\n\nfunction getCategoryObj(){\n\treturn {\n 'page:url': getUrl(),\n 'items:ids': getCategoryIds()\n };\n}\n\nfunction isDressCategory(pageUrl){\n return pageUrl.indexOf('dress') > -1;\n}\n\n/************************** CART ***************************/\nfunction addToCart(event, xhr, settings){\n\tvar pid = getItemId(),\n\t cookie;\n\t \n bouncex.et.onTrue(function(){\n cookie = bouncex.getBounceCookie(COOKIE_NAME);\n return cookie;\n }, function(){\n if (!basTrigger()){\n bouncex.push(['add to cart', {'item:id': pid, 'cart:token': cookie }]);\n if (!bouncex.vars.cart_set){\n bouncex.setv('cart_set', true);\n \t setBounceCookie();\n }\n }\n }, 10);\n}\n\nfunction emptyCart(){\n\tif (bouncex.vars.cart_qty === 0){\n fireEmptyCart();\n }\n}\n\nfunction fireEmptyCart(){\n\tbouncex.push(['empty_cart', {}]);\n bouncex.setv('cart_set', false);\n\tsetBounceCookie();\n}\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\n/*************************** CATALOG ****************************/\n\nfunction fireSelectSku(productId, groupId, feedId){\n bouncex.push([\n 'select_sku', \n {\n 'item:id': productId,\n 'item:itemgroupid': groupId,\n 'item:feedid': feedId\n }\n ]);\n}\n\nfunction fireLoggedInUser(userEmail){\n bouncex.push([\n 'user',\n {\n 'email': userEmail,\n 'source': 'LoggedIn'\n }\n ]);\n bouncex.setv('logged_in_identified', true);\n setBounceCookie();\n}\n\nfunction findFeedId() {\n var variants = bouncex.parseJSON(jQuery(\"#product__json\").text(),{variants: \"\"}).variants || bouncex.utils.getNestedProp(\"meta.product.variants\", []),\n currentVariant = Number(jQuery('div[data-varaint-id] input[type=\"radio\"]:is(:checked)').parent().attr(\"id\")) || 0;\n for (let i = 0; i < variants.length; i++) {\n\t\t\tif (currentVariant && variants[i].id === currentVariant) {\n\t\t\t\treturn variants[i].sku;\n\t\t\t}\n\t\t} \n return \"\";\n}\n\n/*************************** INITIALIZE EVENTS ****************************/\nfunction initializePdpEvents(){\n var item; \n bouncex.et.onTrue(function(){\n item = getItem();\n return isValidItem(item);\n }, function(){\n firePdpEvents(item);\n }, 10);\n}\n\nfunction initializeCategoryEvents() {\n var catObj;\n\tbouncex.et.onTrue(function(){\n catObj = getCategoryObj();\n return !!catObj['items:ids'].length; \n }, function(){\n bouncex.push([\"view category\", catObj]);\n \n //Custom event for dress category abandonment:\n //If alternate non-dress category is viewed after Part 1 of series is sent, \n //we will pull items from this event rather than category event.\n if (isDressCategory(catObj[\"page:url\"])){\n bouncex.push([\"view_dress_category\", catObj]);\n }\n \n\t}, 10);\n}\n\nfunction initializeCartEvents(){\n bouncex.et.cart.init({\n replenishmentType : 'cookie',\n replenish : replenish,\n });\n\t\n\tbouncex.on(jQuery(document), 'click.bx', addToCart, ATC_BUTTON_SELECTOR);\n bouncex.et.onVarChange('cart_qty', emptyCart);\n \n if (bouncex.website.pts === 'cart' && bouncex.vars.cart_set){\n bouncex.et.onVisible(EMPTY_CART_SELECTOR, function(){\n fireEmptyCart();\n });\n }\n}\n\nfunction initializeCatalogEvents(itemId, groupId) {\n\t\n bouncex.off(jQuery(document), 'click.bx', VARIANT_SELECTOR);\n bouncex.on(jQuery(document), 'click.bx', function(){\n bouncex.setTimeout2(function() {\n\t\t\tvar feedId = findFeedId();\n \tfireSelectSku(itemId, groupId, feedId);\n \t}, 0500);\n }, VARIANT_SELECTOR);\n}\n\nfunction initializeQuickviewEvents(){\n bouncex.et.onVisible('.product-quickview', function(){\n var itemUrl = jQuery('a:contains(\"View Full Details\")').attr('href');\n var itemId = getItemIdFromUrl(itemUrl);\n var groupId = jQuery('.product__wishlist').attr('data-product-id');\n viewItem(itemId, groupId);\n \tinitializeCatalogEvents(itemId, groupId);\n });\n}\n\nfunction initializeLoggedInUser(){\n\tif (!bouncex.vars.logged_in_identified){\n\t\tif(isLoggedInUserPage()){\n\t\t\tvar userEmail = jQuery('.nosto_customer .email').text();\n\n\t\t\tif (bouncex.utils.validate.email(userEmail)){\n fireLoggedInUser(userEmail);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction initializeNativeSubmitTracking(){\n jQuery('button.Button__FormStyledButton-p2mbjt-0, #register-btn').click(function(){\n var contactSubmitForm = jQuery(this).closest('form');\n var validSubmission = validateSubmission(this);\n var nativeFooterEmail = contactSubmitForm.find('input[type=\"email\"]').val();\n if (validSubmission && bouncex.utils.validate.email(nativeFooterEmail)){\n bouncex.push([\n 'requestemail',\n {\n 'email': nativeFooterEmail,\n 'campaignId': '1234148'\n }\n ]);\n }\n });\n\n var $email = jQuery('.site-footer__newsletter input[type=\"email\"]');\n function fireBehavioralWelcome() {\n var behavioralWelcomeCampaignId = '1234148',\n email = $email.val();\n if(bouncex.utils.validate.email(email) && !bouncex.vars.native_footer_email_submitted){\n bouncex.push(['requestemail', {\n email: email,\n campaignId: behavioralWelcomeCampaignId,\n testmode: bouncex.testmode.bxdev ? 1 : 0\n }]);\n setVarAndCookie('native_footer_email_submitted', true);\n }\n }\n\n bouncex.et.on(jQuery(document), 'submit.bx', fireBehavioralWelcome, '.site-footer__newsletter form');\n bouncex.et.on(jQuery(document), 'click.bx', fireBehavioralWelcome, '.site-footer__newsletter button');\n\n}\n\nfunction init() {\n if (isValidDomain() && isEn()) {\n initializeCartEvents();\n initializeLoggedInUser();\n initializeNativeSubmitTracking();\n switch(bouncex.website.pts) {\n case 'product':\n initializePdpEvents();\n break;\n case 'category':\n initializeCategoryEvents();\n initializeQuickviewEvents();\n break;\n default:\n break;\n } \n }\n return;\n}\ninit();\n","dge":true,"bxidLoadFirst":false,"pie":true,"cme":true,"gbi_enabled":0,"bpush":false,"pt":{"cart":{"testmode":false,"val":[[{"activation":"current_page_url","prop":"contains","prop2":"","prop3":"","val":"/cart"}],[{"activation":"current_page_url","prop":"not_contains","prop2":"","prop3":"","val":"staging-milly"}]]},"category":{"testmode":false,"val":[[{"activation":"js","prop":"","prop2":"","prop3":"","val":"bouncex.utils.getNestedProp('meta.page.pageType', '') === 'collection';"}],[{"activation":"current_page_url","prop":"not_contains","prop2":"","prop3":"","val":"/shop?q="}]]},"checkout":{"testmode":false,"val":[[{"activation":"current_page_url","prop":"contains","prop2":"","prop3":"","val":"/checkouts"}]]},"home":{"testmode":false,"val":[[{"activation":"js","prop":"","prop2":"","prop3":"","val":"bouncex.utils.getNestedProp('meta.page.pageType', '') === 'home';"}],[{"activation":"current_page_url","prop":"not_contains","prop2":"","prop3":"","val":"staging-milly"}]]},"product":{"testmode":false,"val":[[{"activation":"js","prop":"","prop2":"","prop3":"","val":"bouncex.utils.getNestedProp('meta.page.pageType', '') === 'product';"}],[{"activation":"current_page_url","prop":"not_contains","prop2":"","prop3":"","val":"gift-card"}]]},"search":{"testmode":false,"val":[[{"activation":"current_page_url","prop":"contains","prop2":"","prop3":"","val":"/shop?q="}]]}},"els":{"CART - Checkout Button":"","CART - Promo Code Apply Button":"","CART - Promo Code Box":"","CAT - Product Grid Image":"","CAT - Quickview Box":"","CAT-AddtoCartButton":"","CAT-QuickviewAddtoCart":"","Footer":"","Navigation bar":"","PDP - Add to Cart Button":"","PDP - Color Option":"","PDP - Hero Image":"","PDP - Product Name":"","PDP - Product Price":"","PDP - Quantity Option":"","PDP - Review Stars":"","PDP - Size Option":"","PDP - Thumbnail Image":"","SEARCH - Product Grid Image":""},"vars":[{"name":"logged_in","polling":"all","persist":"no","page_types":[],"testmode":false,"default":"false","code":"bouncex.website.pts === 'checkout' ? jQuery('.logged-in-customer-information__paragraph').length > 0 : !!bouncex.utils.getNestedProp('meta.page.customerId');","trigger":""},{"name":"ever_logged_in","polling":"all","persist":"permanent","page_types":[],"testmode":false,"default":"false","code":"bouncex.vars.logged_in || null;","trigger":""},{"name":"cart_qty","polling":"all","persist":"no","page_types":[],"testmode":false,"default":"0","code":"(function() {\n var cartCount = 0;\n \n if (jQuery('.cart-count').length > 0) {\n return Number(jQuery('.cart-count').text().replace(/[^0-9.]/g,''));\n }\n \n jQuery('.product-thumbnail__quantity').each(function() {\n cartCount += Number(jQuery(this).text().replace(/[^0-9.]/g,''));\n });\n return cartCount;\n})();","trigger":""},{"name":"cart_value","polling":"all","persist":"visit","page_types":[],"testmode":false,"default":"0","code":"Number(jQuery('.cart-drawer__total span').eq(1).text().replace(/[^0-9.]/g,'')) || Number(jQuery('[data-checkout-subtotal-price-target').text().replace(/[^0-9.]/g,''));","trigger":""},{"name":"prod_price","polling":"none","persist":"no","page_types":["product"],"testmode":false,"default":"false","code":"jQuery('.product-price--current').eq(0).text().replace(/[^0-9.]/g,'');","trigger":""},{"name":"prod_name","polling":"none","persist":"no","page_types":["product"],"testmode":false,"default":"false","code":"jQuery('.product-header__title').text();","trigger":""},{"name":"in_stock","polling":"all","persist":"no","page_types":["product"],"testmode":false,"default":"false","code":"(function() {\n var size = jQuery('.product-option-row--size .dropdown__label.ls2 span:last').text().trim();\n\n if (jQuery('.dropdown__option--sold-out[data-label=\"' + size + '\"]').length > 0) {\n return false;\n }\n \n if (jQuery('#add-to-cart-text').text() === 'Sold Out') {\n return false;\n }\n\n return true;\n})();","trigger":""},{"name":"submitted_onsite","polling":"all","persist":"permanent","page_types":[],"testmode":false,"default":"false","code":"jQuery('.site-footer__newsletter div:contains(\"Thanks for subscribing!\")').length > 0 || null;","trigger":""},{"name":"item_id_product","polling":"none","persist":"no","page_types":["product"],"testmode":true,"default":"false","code":"","trigger":""},{"name":"item_id_quickview","polling":"none","persist":"no","page_types":[],"testmode":true,"default":"false","code":"","trigger":"event"},{"name":"item_id_hover","polling":"none","persist":"no","page_types":[],"testmode":true,"default":"false","code":"","trigger":"event"},{"name":"items_ids","polling":"none","persist":"no","page_types":["category","search"],"testmode":true,"default":"false","code":"","trigger":""},{"name":"item_url","polling":"none","persist":"no","page_types":["product"],"testmode":true,"default":"false","code":"","trigger":""},{"name":"item_image_url","polling":"none","persist":"no","page_types":["product"],"testmode":true,"default":"false","code":"","trigger":""},{"name":"item_category","polling":"none","persist":"no","page_types":["product"],"testmode":true,"default":"false","code":"","trigger":""},{"name":"item_price","polling":"none","persist":"no","page_types":["product"],"testmode":true,"default":"false","code":"","trigger":""},{"name":"item_in_stock","polling":"none","persist":"no","page_types":["product"],"testmode":true,"default":"false","code":"","trigger":""},{"name":"page_url","polling":"none","persist":"no","page_types":["category","search"],"testmode":true,"default":"false","code":"","trigger":""},{"name":"page_title","polling":"none","persist":"no","page_types":["category"],"testmode":true,"default":"false","code":"","trigger":""},{"name":"item_copy","polling":"none","persist":"no","page_types":["product"],"testmode":true,"default":"false","code":"","trigger":"pageload"},{"name":"cart_token","polling":"none","persist":"no","page_types":[],"testmode":true,"default":"false","code":"null;","trigger":"pageload"},{"name":"cart_items","polling":"none","persist":"no","page_types":[],"testmode":true,"default":"false","code":"null;","trigger":"pageload"},{"name":"logged_in_identified","polling":"none","persist":"visit","page_types":[],"testmode":false,"default":"false","code":"null;","trigger":"pageload"},{"name":"cart_set","polling":"none","persist":"permanent","page_types":[],"testmode":false,"default":"false","code":"null;","trigger":"pageload"},{"name":"cart","polling":"none","persist":"visit","page_types":[],"testmode":false,"default":"false","code":"null;","trigger":"pageload"},{"name":"cookie_modal_present","polling":"all","persist":"no","page_types":[],"testmode":false,"default":"false","code":"jQuery('#onetrust-banner-sdk:visible').length > 0;","trigger":"pageload"},{"name":"selected_size","polling":"vars","persist":"no","page_types":["product"],"testmode":false,"default":"false","code":"(function() {\n if (jQuery('.product-option-row--size .dropdown__label.ls2 span:last').text().trim() !== '') {\n return jQuery('.product-option-row--size .dropdown__label.ls2 span:last').text().trim();\n }\n /* this second if is for a bad site implementation where 'size' field was labeled as 'white' on rare pdps*/\n if (jQuery('.product-option-row--white .dropdown__label.ls2 span:last').text().trim() !== '') {\n return jQuery('.product-option-row--white .dropdown__label.ls2 span:last').text().trim();\n }\n})();","trigger":"pageload"},{"name":"ca_cookie_modal_present","polling":"all","persist":"no","page_types":[],"testmode":false,"default":"false","code":"jQuery('[aria-label=\"cookieconsent\"]:visible').length > 0;","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":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":1,"spatm":0,"preinit_cjs":"SinglePageApp.setCustomParams({\n currentPageIdentifier: function () {\n \t\tif (document.querySelectorAll('.template-collection').length > 0) {\n \t\treturn window.location.href;\n \t\t} \n \treturn true;\n\t}\n});","crs":{"integrations":null,"pageCount":null},"mat":0,"math":0,"cpnu":"coupons.bounceexchange.com","dfpcms":0,"sms":{"optm":"","eventSharing":false,"shqId":"","enabled":0},"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":"320426781","ga4_measurement_id":"G-YX3VJ4W394","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":"e2d353d057b9c1d931d0252fa287890a"}; bouncex.push = function(pushData) { bouncex.pushedData.push(pushData); } var runtime = document.createElement('script'); runtime.setAttribute('src', '//assets.bounceexchange.com/assets/smart-tag/versioned/runtime_c81e76ee00d795b1eebf8d27949f8dc5.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_8689db6bfa968bb6b4e27b6ae3ee0445.br.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); } } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", bxBootstrap); } else { bxBootstrap(); }})();