{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./cartridges/app_project/cartridge/client/default/js/components/spinner.js","webpack:///./cartridges/int_mf_tealium/cartridge/client/default/js/tealiumEvents.js","webpack:///./cartridges/app_project/cartridge/client/default/js/components/clientSideValidation.js","webpack:///./cartridges/app_project/cartridge/client/default/js/components/urlUtil.js","webpack:///./cartridges/app_project/cartridge/client/default/js/helplanding.js","webpack:///./cartridges/app_project/cartridge/client/default/js/components/helpNavigation.js","webpack:///./cartridges/app_project/cartridge/client/default/js/components/helpSearch.js","webpack:///./cartridges/app_project/cartridge/client/default/js/components/helpForms.js","webpack:///./cartridges/app_storefront_base/cartridge/client/default/js/util.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","$","fn","spinner","$element","this","start","length","stop","$body","$document","document","utagExists","utag","refreshCartData","url","window","sfcc_urls","refresh_utag_basket","location","href","indexOf","ajax","method","dataType","success","data","copyResponseData","error","err","console","log","getParameterByName","paramName","replace","results","RegExp","exec","decodeURIComponent","getVariationValue","variationAttributes","id","result","Array","variation","filter","attributeId","selected","values","addProductData","page_type","product_id","utag_data","product_name","product_season","product_newin","product_category","product_color","product_waist","product_length","product_size","product_unit_price","product_old_price","product_sale_price","product_net_price","addCartData","product_quantity","product_shipping_type","order_currency","order_track_id","response","utagData","newsletterEventTrigger","gender","page_name","store_country","event_name","link","ready","trigger","loadMoreProduct","on","nodeList","arrayValue","replaceAll","split","original","mergedArray","concat","item","index","concatUtagValues","querySelectorAll","pageNewsletter","find","text","trim","genders","isMultipleGender","forEach","g","push","innerText","footerNewsletter","val","video","$video","video_title","attr","video_time","currentTime","track","duration","PLPUpdateData","e","activePLP","active_plp","PDPUpdateData","activePDP","product","active_pdp","product_sku","addToCart","page_context_type","addAllProductsFromWishList","backInStock","PDPAddToWishlist","productSetIDs","dataset","pid","storeLocatorFind","storeLocatorMyLocation","filters","detail","pmin","pmax","subArray","j","checkoutStages","step","stage","page_name_onload","login","register","fastCheckout","event","cartType","buttonPosition","cart_type","cartModifyModalOpen","cartModifyModalConfirm","cartRemoveProduct","cartMoveToPickup","cartShipItem","cartStoreDialogOpen","cartStoreChanged","helpOrderDetails","view","createReturnSteps","params","product_return_type","types","orderID","URL","searchParams","updateCustomerAttributes","customerProfileAttributes","updateCartAndWishlist","persist_wishlist","total_with_vat","currency","persist_cart","total_without_vat","jQuery","setListViewType","click","viewType","list_view_type","searchOpen","searchTypeKeyword","names","skus","suggestions","productName","searchProductClick","currentTarget","ariaLabel","sku","type","searchSend","searchResultsPage","formCleared","triggerEdgeValidation","input","nextElementSibling","classList","contains","toggle","scrollToError","$form","parents","animate","scrollTop","first","offset","top","focus","validateReCaptcha","$response","valid","parent","toggleClass","validateForm","checkValidity","preventDefault","stopPropagation","stopImmediatePropagation","each","validity","clearFormErrors","form","jquery","removeClass","empty","attachNoBubbleEvents","attachTimeout","off","setCustomValidity","addClass","fieldMessages","formValidationMessages","validationMessage","clearTimeout","setTimeout","clearFormFieldErrors","siblings","noBubbleEvents","init","additionalMessagesStr","additionalMessages","JSON","parse","warn","$formMessages","extend","submit","buttonClick","focusOut","$this","target","remove","blur","cleanString","onChange","handleDateChange","scrollOnError","updatePostalCodePattern","postalCodeElementID","$postalCode","closest","postalCodeRegexp","defaults","at","be","bg","dk","gr","hu","lv","lt","lu","nl","no","pl","pt","ro","ru","sk","si","es","se","ch","gb","us","ca","cz","countryCode","toLowerCase","regexp","toString","slice","reCaptchaOnChange","functions","reAttachNoBubbleEvents","urlUtil","paramValue","hash","pName","encodeURI","pValue","prefix","substring","suffix","newUrl","getUrlWithNewParameter","history","replaceState","title","pushState","defaultValue","paramNumber","parseInt","isFinite","changeCurrentUrlWithParam","processInclude","clientSideValidation","isMargiela","querySelector","getAttribute","helpPage","fetchUrl","helpMenu","isMobile","innerWidth","helpMenuLink","primaryAsset","setPrimaryAssetValue","fetchPrimaryAsset","assetId","innerHTML","helpId","updateCurrentAssetId","selectedSubMenu","helpAccordions","helpMenuItems","selectedHelpMenuItem","selectedHelpAccordion","acc","add","selectedElementParent","parentElement","highlights","highlight","openSelectedMenuItem","helpDashboardContainer","aId","element","dashboardId","addEventListener","stickyElement","header","headerHeight","offsetHeight","stickyPosition","getBoundingClientRect","pageYOffset","onscroll","style","scrollTo","behavior","body","sitebrand","$results","appendResult","content","resultLi","createElement","setAttribute","helpUrl","textContent","append","appendMessage","message","searchBarForm","getJSON","contentSearch","contentCount","contents","html","msgNoResults","autoClearResults","searchButton","onRemoveSearchInput","keyCode","isMarni","isJilSander","isVisible","addTooltipClickBehaviour","extraInfoIcons","ev","messageBox","messageIconToggler","showEtaExtraInfoMessage","submitContactForm","submitForm","inputs","hiddenForm","originalInput","newInput","appendChild","prop","hasClass","serialize","contactUsUrl","action","grecaptcha","execute","then","token","orderFormSubmit","post","replaceWith","detailsHtml","dutiesTooltipBox","taxesTooltipBox","addTooltipHoverBehaviour","alertEl","errorMessage","contactUsFormSubmit","include","keys"],"mappings":"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","file":"app_project/cartridge/static/default/js/helplanding.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 481);\n","'use strict';\n\n/**\n * Show a spinner inside a given element\n * @param {element} $target - Element to block by the veil and spinner.\n *                            Pass body to block the whole page.\n */\nfunction addSpinner($target) {\n  let $veil = $('<div class=\"veil\"><div class=\"underlay\"></div></div>');\n  $veil.append('<div class=\"spinner\"><div class=\"dot1\"></div><div class=\"dot2\"></div></div>');\n  if ($target.get(0).tagName === 'IMG') {\n    $target.after($veil);\n    $veil.css({ width: $target.width(), height: $target.height() });\n    if ($target.parent().css('position') === 'static') {\n      $target.parent().css('position', 'relative');\n    }\n  } else {\n    $target.append($veil);\n    if ($target.css('position') === 'static') {\n      $target.parent().css('position', 'relative');\n      $target.parent().addClass('veiled');\n    }\n    if ($target.get(0).tagName === 'BODY') {\n      $veil.find('.spinner').css('position', 'fixed');\n    }\n  }\n  $veil.click(function (e) {\n    e.stopPropagation();\n  });\n}\n\n/**\n * Remove existing spinner\n * @param  {element} $veil - jQuery pointer to the veil element\n */\nfunction removeSpinner($veil) {\n  if ($veil.parent().hasClass('veiled')) {\n    $veil.parent().css('position', '');\n    $veil.parent().removeClass('veiled');\n  }\n  $veil.off('click');\n  $veil.remove();\n}\n\n// element level spinner:\n$.fn.spinner = function () {\n  let $element = $(this);\n  let Fn = function () {\n    this.start = function () {\n      if ($element.length) {\n        // remove default spinner test IBT-1180\n        // addSpinner($element);\n      }\n    };\n    this.stop = function () {\n      if ($element.length) {\n        // remove default spinner test IBT-1180\n        // let $veil = $('.veil');\n        // removeSpinner($veil);\n      }\n    };\n  };\n  return new Fn();\n};\n\n// page-level spinner:\n$.spinner = function () {\n  let Fn = function () {\n    this.start = function () {\n      // remove default spinner test IBT-1180\n      // addSpinner($('body'));\n    };\n    this.stop = function () {\n      // remove default spinner test IBT-1180\n      // removeSpinner($('.veil'));\n    };\n  };\n  return new Fn();\n};\n","'use strict';\n\nconst delimiter = ':';\nconst $body = $('body');\nconst $document = $(document);\n\n$document.ready(function(){\n  $body.trigger('tealiumEvents:loaded');\n});\n\nfunction utagExists(){\n    return typeof utag !== 'undefined';\n}\n\n/**\n* Gets a parameter from a link or from [window.location.href]\n*/\nfunction refreshCartData() {\n    const url = window.sfcc_urls.refresh_utag_basket;\n\n    if (window.location.href.indexOf('Order-ReturnConfirmation') > 0) {\n        return;\n    }\n\n    $.ajax({\n        url: url,\n        method: 'GET',\n        dataType: 'json',\n        success: function(data) {\n            copyResponseData(data);\n        },\n        error: function(err) {\n            console.log('error refreshing utag', err);\n        }\n    });\n}\n\n/**\n* Gets a parameter from a link or from [window.location.href]\n* @param {string} paramName - the parameter name\n* @param {string} url - [window.location.href] or equivalent\n* @returns {string} the parameter value or [null]\n*/\nfunction getParameterByName(paramName, url = window.location.href) {\n    const name = paramName.replace(/[[\\]]/g, '\\\\$&');\n    const regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)');\n    const results = regex.exec(url);\n    if (!results) return null;\n    if (!results[2]) return '';\n    return decodeURIComponent(results[2].replace(/\\+/g, ' '));\n}\n\n/**\n* Get selected variation value by variation id\n* @param {Object} variationAttributes - variation attributes model from backend\n* @param {string} id - variation id\n* @returns {string} the id of the variation value or empty string\n*/\nfunction getVariationValue(variationAttributes, id) {\n    let result = '';\n\n    if (variationAttributes instanceof Array) {\n        const variation = variationAttributes.filter((i) => i.attributeId === id);\n\n        if (variation && variation.length) {\n            const selected = variation[0].values.filter((i) => i.selected === true);\n            if (selected && selected.length) result = selected[0].id;\n        }\n    }\n\n    return result;\n}\n\n/**\n* Use the existing data from the [utag_data] object to fill [utag.data] with product data on PDP\n*/\nfunction addProductData() {\n    utag.data.page_type = 'product';\n    utag.data.product_id = utag_data.product_id;\n    utag.data.product_name = utag_data.product_name;\n    utag.data.product_season = utag_data.product_season;\n    utag.data.product_newin = utag_data.product_newin;\n    utag.data.product_category = utag_data.product_category;\n    utag.data.product_color = utag_data.product_color;\n    utag.data.product_waist = utag_data.product_waist;\n    utag.data.product_length = utag_data.product_length;\n    utag.data.product_size = utag_data.product_size;\n    utag.data.product_unit_price = utag_data.product_unit_price;\n    utag.data.product_old_price = utag_data.product_old_price;\n    utag.data.product_sale_price = utag_data.product_sale_price;\n    utag.data.product_net_price = utag_data.product_net_price;\n}\n\n/**\n* Use the existing data from the [utag_data] object to fill [utag.data] with product data on Cart/Checkout\n*/\nfunction addCartData() {\n    utag.data.page_type = 'checkout';\n    utag.data.product_id = utag_data.product_id;\n    utag.data.product_name = utag_data.product_name;\n    utag.data.product_season = utag_data.product_season;\n    utag.data.product_newin = utag_data.product_newin;\n    utag.data.product_category = utag_data.product_category;\n    utag.data.product_color = utag_data.product_color;\n    utag.data.product_waist = utag_data.product_waist;\n    utag.data.product_length = utag_data.product_length;\n    utag.data.product_size = utag_data.product_size;\n    utag.data.product_unit_price = utag_data.product_unit_price;\n    utag.data.product_old_price = utag_data.product_old_price;\n    utag.data.product_sale_price = utag_data.product_sale_price;\n    utag.data.product_net_price = utag_data.product_net_price;\n    utag.data.product_quantity = utag_data.product_quantity;\n    utag.data.product_shipping_type = utag_data.product_shipping_type;\n    utag.data.order_currency = utag_data.order_currency;\n\n    if (utag_data.order_track_id) {\n        utag.data.order_track_id = utag_data.order_track_id;\n    }\n}\n\n/**\n * Copies the `utagData` object values to the current utag data object\n * @param {Object} response - the response object from the server that contains a `utagData` object\n */\nfunction copyResponseData(response) {\n    if (!response) return;\n\n    for (const key in response.utagData) { // eslint-disable-line no-restricted-syntax\n        if (response.utagData.hasOwnProperty(key)) { // eslint-disable-line no-prototype-builtins\n            utag.data[key] = response.utagData[key];\n        }\n    }\n}\n\nfunction concatUtagValues(nodeList, key){\n    for (let i = 0; i < nodeList.length; i++) {\n        var value = nodeList[i].value;\n        var arrayValue = value.replaceAll('[','').replaceAll(']','').replaceAll(' ','').split(',');\n        var original = utag.data[key];\n\n        if(original) {\n          let mergedArray = original.concat(arrayValue);\n          mergedArray = mergedArray.filter((item,index) => {\n            return (mergedArray.indexOf(item) == index);\n          }); \n          utag.data[key] = mergedArray;\n        }\n    }\n}\n\nfunction newsletterEventTrigger(gender) {\n\n  if (!gender) gender = '';\n\n  utag.data.page_type = 'newsletter';\n  utag.data.page_name = utag_data.store_country + delimiter + 'myaccount' + delimiter + 'newsletter_subscription';\n  utag.data.event_name = 'newsletter_subscription_' + gender;\n  utag.link(utag.data);\n}\n\nmodule.exports = {\n    loadMoreProduct: function(){\n        $body.on('product:listing-show-more', function(){\n            var utag_product_id = document.querySelectorAll('[name=\"utag_product_id\"]');\n            \n            concatUtagValues(utag_product_id, 'product_id');\n        });\n    },\n\n    pageNewsletter: function() {\n      $body.on('newsletter:submit', function() {\n        if (typeof utag === 'undefined' || !utag) return;\n        const $form = $('.page-newsletter .form-newsletter');\n        \n        $form.find('.gender-check:checked +.checkbox-label').text().trim();\n        let genders = [];\n        let gender;\n        let isMultipleGender = false;\n        document.querySelectorAll('.gender-check:checked + .checkbox-label').forEach(g => {\n          genders.push(g.innerText);\n          isMultipleGender = genders.length > 1;\n        });\n        gender = isMultipleGender ? 'Both' : genders[0];\n        newsletterEventTrigger(gender);\n      });\n    },\n\n    footerNewsletter: function() {\n      $body.on('click', 'footer .form-newsletter [type=\"submit\"]', function() {\n        if (typeof utag === 'undefined' || !utag) return;\n        const $form = $('footer .form-newsletter');\n        const gender = $form.find('[name=\"gender-radio\"]:checked').val(); \n        newsletterEventTrigger(gender);\n      });\n    },\n\n    video: function() {\n        const $video = $('video');\n\n        $video.on('pause', function() {\n            if (typeof utag === 'undefined' || !utag) return;\n\n            utag.data.video_title = $(this).find('source').attr('src');\n            utag.data.video_time = this.currentTime;\n            utag.data.event_name = 'video_pause';\n            utag.track('video', utag.data);\n        });\n\n        $video.on('loadeddata', function() {\n            if (typeof utag === 'undefined' || !utag) return;\n\n            utag.data.video_title = $(this).find('source').attr('src');\n            utag.data.video_time = this.duration;\n            utag.data.event_name = 'video_open';\n            utag.track('video', utag.data);\n        });\n\n        $video.on('play', function() {\n            if (typeof utag === 'undefined' || !utag) return;\n\n            utag.data.video_title = $(this).find('source').attr('src');\n            utag.data.video_time = this.currentTime;\n\n            if (this.currentTime > 0) {\n                utag.data.event_name = 'video_play';\n            } else {\n                utag.data.event_name = 'video_start';\n            }\n\n            utag.track('video', utag.data);\n        });\n    },\n\n    PLPUpdateData: function() {\n        // Update data for future events\n        $body.on('plp:plpPageLoad', function(e, response) {\n            if (typeof utag === 'undefined' || !utag) return;\n\n\n\n            var activePLP = 'old';\n\n            if ($('.new-page-search-result').length > 0) {\n              activePLP = 'new';\n            }\n\n            utag_data.active_plp = activePLP;\n        });\n    },\n\n    PDPUpdateData: function() {\n        // Update data for future events\n        $body.on('product:afterAttributeSelect', function(e, response) {\n            if (typeof utag === 'undefined' || !utag) return;\n\n\n\n            var activePDP = 'old';\n\n            if ($('.pdp-new').length > 0) {\n              activePDP = 'new';\n            }\n\n            const product = response.data.product;\n            utag_data.active_pdp = activePDP;\n            utag_data.product_sku = [product.id];\n            utag_data.product_color = [getVariationValue(product.variationAttributes, 'color')];\n            utag_data.product_waist = [getVariationValue(product.variationAttributes, 'waist')];\n            utag_data.product_length = [getVariationValue(product.variationAttributes, 'length')];\n            utag_data.product_size = [getVariationValue(product.variationAttributes, 'size')];\n        });\n    },\n\n    addToCart: function() {\n        $body.on('product:afterAddToCart', function(e, response) {\n            if (typeof utag === 'undefined' || !utag) return;\n\n            addProductData();\n\n\n\n            var activePDP = 'old';\n\n            if ($('.pdp-new').length > 0) {\n              activePDP = 'new';\n            }\n            utag_data.active_pdp = activePDP;\n\n            if (utag_data.page_context_type === 'product') {\n                utag.data.event_name = 'pdp_cart_add';\n            } else if (response.addAllProductsFromWishList) {\n                utag.data.event_name = 'cart_add_wishlist_full';\n            } else if (utag_data.page_context_type === 'myaccount') {\n                utag.data.event_name = 'cart_add_wishlist_prod';\n            } else {\n                utag.data.event_name = utag_data.page_type + 'pdp_cart_add';\n            }\n\n            utag.link(utag.data);\n        });\n    },\n\n    backInStock: function() {\n        $body.on('product:afterBackInStock', function() {\n            if (typeof utag === 'undefined' || !utag) return;\n\n            addProductData();\n            var activePDP = 'old';\n\n            if ($('.pdp-new').length > 0) {\n              activePDP = 'new';\n            }\n            utag_data.active_pdp = activePDP;\n\n            utag.data.event_name = 'pdp_backinstock';\n\n            utag.link(utag.data);\n        });\n    },\n\n    PDPAddToWishlist: function() {\n        $body.on('product:afterAddToWishlist', function() {\n            if (typeof utag === 'undefined' || !utag || !utag_data.page_context_type === 'product') return;\n\n            addProductData();\n            var activePDP = 'old';\n            if (utag_data.page_context_type == \"product set\") {\n              var productSetIDs = [''];\n              for (i = 0 ; i < $('.product-set-item').length; i++) {\n                if (i +1 < $('.product-set-item').length) {\n                  productSetIDs[0] += $('.product-set-item')[i].dataset.pid + ', ';\n                } else {\n                  productSetIDs[0] += $('.product-set-item')[i].dataset.pid;\n                }\n              }\n              utag.data.product_id = productSetIDs;\n              utag.data.page_type = 'product set';\n            }\n            if ($('.pdp-new').length > 0) {\n              activePDP = 'new';\n            }\n            utag_data.active_pdp = activePDP;\n            utag.data.event_name = 'pdp_wishlist_add';\n            utag.link(utag.data);\n        });\n    },\n\n    storeLocatorFind: function() {\n        $body.on('store:MyLocation', function() {\n            if (typeof utag === 'undefined' || !utag) return;\n\n            utag.data.page_type = 'store locator';\n            utag.data.page_name = utag.data.page_name + ':my location';\n            utag.data.event_name = 'storelocator_mylocation';\n            utag.link(utag.data);\n        });\n    },\n\n    storeLocatorMyLocation: function() {\n        $body.on('store:Search', function() {\n            if (typeof utag === 'undefined' || !utag) return;\n\n            utag.data.page_type = 'store locator';\n            utag.data.page_name = utag.data.page_name + ':search location';\n            utag.data.event_name = 'storelocator_search';\n            utag.link(utag.data);\n        });\n    },\n\n    filters: function() {\n        $document.on('appliedFilter', function(e) {\n\n            var url;\n            if (typeof utag === 'undefined' || !utag) {return;} \n            \n            if (typeof e.url !== 'undefined' && e.url) {\n              url = e.url;\n            };\n\n            if (!url) {\n             url = (e.detail && e.detail.url) ? e.detail.url : null; \n            }\n\n            if (!url){\n              return;\n            }\n\n            const result = [];\n\n            const pmin = getParameterByName('pmin', url);\n            const pmax = getParameterByName('pmax', url);\n\n            if (pmin && pmax) {\n                result.push('price' + delimiter + pmin + ' to ' + pmax);\n            }\n\n            let i = 1;\n            let name = getParameterByName('prefn' + i, url);\n            let value;\n            let subArray;\n\n            while (name) {\n                value = getParameterByName('prefv' + i, url);\n                name = name.replace('refinement', '');\n\n                if (value.indexOf('|') > -1) { // Multiple values for this preference\n                    subArray = value.split('|');\n\n                    for (let j = 0; j < subArray.length; j++) {\n                        result.push(name + delimiter + subArray[j]);\n                    }\n                } else { // Single value for this preference\n                    result.push(name + delimiter + value);\n                }\n\n                i++;\n                name = getParameterByName('prefn' + i, e.url);\n            }\n\n            if (result.length > 0) {\n                utag.data.filter = result;\n                utag.data.event_name = 'filter_usage';\n                utag.link(utag.data);\n            }\n        });\n    },\n\n    checkoutStages: function() {\n        $body.on('checkout:stageGoTo checkout:updatedCheckoutView', function() {\n            if (typeof utag === 'undefined' || !utag) return;\n\n            let step = '';\n            const stage = $('#checkout-main').attr('data-checkout-stage');\n\n            if (stage === 'shipping') {\n                step = 'step1';\n            } else if (stage === 'payment') {\n                step = 'step2';\n            } else if (stage === 'placeOrder') {\n                step = 'step3';\n            }\n\n            utag.data.page_name = utag_data.page_name_onload.replace(/step\\d/gi, step);\n            utag.link(utag.data);\n        });\n    },\n\n    login: function() {\n        $body.on('user:loggedIn', function() {\n            if (typeof utag === 'undefined' || !utag) return;\n            utag.data.event_name = 'login_ok';\n            utag.link(utag.data);\n        });\n    },\n\n    register: function() {\n        $body.on('user:registered', function() {\n            if (typeof utag === 'undefined' || !utag) return;\n\n            utag.data.event_name = 'registration_ok';\n            utag.link(utag.data);\n        });\n    },\n\n    fastCheckout: function() {\n        $body.on('checkout:fastCheckoutStart', function(event, cartType, buttonPosition) {\n          if (typeof utag === 'undefined' || !utag) return;\n\n          if(typeof cartType !== 'undefined' && typeof buttonPosition !== 'undefined') {\n            utag.data.cart_type = cartType + ':' + buttonPosition;\n          }\n          utag.data.event_name = 'fastcheckout_start';\n          utag.link(utag.data);\n        });\n    },\n\n    cartModifyModalOpen: function() {\n        $body.on('cart:modifyProductOpen', function() {\n            if (typeof utag === 'undefined' || !utag) return;\n\n            addCartData();\n            utag.data.event_name = 'cart_prod_update_popup';\n            utag.link(utag.data);\n        });\n    },\n\n    cartModifyModalConfirm: function() {\n        $body.on('cart:productModified', function(e, response) {\n            if (typeof utag === 'undefined' || !utag) return;\n\n            copyResponseData(response);\n\n            utag.data.page_type = 'checkout';\n            utag.data.event_name = 'cart_prod_update_confirm';\n            utag.link(utag.data);\n\n            refreshCartData();\n        });\n    },\n\n    cartRemoveProduct: function() {\n        $body.on('cart:productRemoved', function(e, response) {\n            if (typeof utag === 'undefined' || !utag) return;\n\n            copyResponseData(response);\n\n            utag.data.page_type = 'checkout';\n            utag.data.event_name = 'cart_prod_update';\n            utag.link(utag.data);\n\n            refreshCartData();\n        });\n    },\n\n    cartMoveToPickup: function() {\n        $body.on('cart:pickUpItem', function(e, response) {\n            if (typeof utag === 'undefined' || !utag) return;\n\n            copyResponseData(response);\n\n            utag.data.page_type = 'checkout';\n            utag.data.event_name = 'cart_moveto_pickup';\n            utag.link(utag.data);\n\n            refreshCartData();\n        });\n    },\n\n    cartShipItem: function() {\n        $body.on('cart:shipItem', function(e, response) {\n            if (typeof utag === 'undefined' || !utag) return;\n\n            copyResponseData(response);\n\n            utag.data.page_type = 'checkout';\n            utag.data.event_name = 'cart_moveto_shipping';\n            utag.link(utag.data);\n\n            refreshCartData();\n        });\n    },\n\n    cartStoreDialogOpen: function() {\n        $body.on('findInStore:open', function() {\n            if (typeof utag === 'undefined' || !utag) return;\n            if ($('.page').data('action') !== 'Cart-Show') return;\n\n            addCartData();\n\n            utag.data.page_type = 'checkout';\n            utag.data.event_name = 'cart_store_detail_popup';\n            utag.link(utag.data);\n        });\n    },\n\n    cartStoreChanged: function() {\n        $body.on('cart:storeChanged', function(e, response) {\n            if (typeof utag === 'undefined' || !utag) return;\n\n            copyResponseData(response);\n\n            utag.data.page_type = 'checkout';\n            utag.data.event_name = 'cart_store_detail_change';\n            utag.link(utag.data);\n        });\n    },\n\n    helpOrderDetails: function() {\n        $body.on('help:orderDetailsOpened', function(e, response) {\n            if (typeof utag === 'undefined' || !utag) return;\n\n            copyResponseData(response);\n\n            utag.data.page_name = `${utag.data.store_country}:order_track:detail ${utag.data.order_track_id}`;\n            utag.data.page_type = 'order track';\n            utag.view(utag.data);\n        });\n    },\n\n    createReturnSteps: function() {\n        $body.on('order:createReturn:step2', function() {\n            if (typeof utag === 'undefined' || !utag) return;\n\n            addCartData();\n\n            utag.data.page_name = `${utag.data.store_country}:order_track:return_exchange:step2`;\n            utag.data.page_type = 'return-exchange funnel';\n            utag.data.event_name = 'return_exchange:step2';\n            utag.view(utag.data);\n        });\n        $body.on('order:createReturn:step3', function(e, params) {\n            if (typeof utag === 'undefined' || !utag) return;\n\n            addCartData();\n            \n            utag.data.product_return_type = params.types;\n\n            utag.data.page_name = `${utag.data.store_country}:order_track:return_exchange:step3`;\n            utag.data.page_type = 'return-exchange funnel';\n            utag.data.event_name = 'return_exchange:step3';\n            utag.view(utag.data);\n        });\n        $body.on('order:createReturn:thank-you', function(e, params) {\n            if (typeof utag === 'undefined' || !utag) return;\n\n            addCartData();\n            utag.data.product_return_type = params.types;\n\n            if (!utag.data.order_track_id){\n                let searchParams = (new URL(document.location)).searchParams;\n                let orderID = searchParams.get('orderID');\n                utag.data.order_track_id =  orderID;\n            }\n\n            utag.data.page_name = `${utag.data.store_country}:order_track:return_exchange:thank you`;\n            utag.data.page_type = 'return-exchange funnel';\n            utag.data.event_name = 'return_exchange:thank you';\n        });\n    },\n\n    /**\n     * Method to track events and collect information about customers\n     */\n    updateCustomerAttributes: function() {\n        if (utagExists()) {\n            $body.on('customer:updateAttributes', function() {\n                const url = $('.get-customer-profile-url').attr('data-get-customer-profile');\n\n                if (url) {\n                    $.ajax({\n                        url: url,\n                        method: 'GET',\n                        success: function(data) {\n                            if (typeof utag === 'undefined' || !utag || !data.success) return;\n\n                            for (const key in data.customerProfileAttributes) {\n                                if (data.customerProfileAttributes.hasOwnProperty(key)) {\n                                    utag.data[key] = data.customerProfileAttributes[key];\n                                }\n                            }\n\n                            utag.link(utag.data);\n                            $body.trigger('datalayer:redirectUrl');\n                        },\n                        error: function(data) {\n                            console.error(data);\n                        }\n                    });\n                }\n            });\n        }\n    },\n    /**\n     * Method to track events and collect information about cart and wishlist\n     */\n    updateCartAndWishlist: function() {\n        if (utagExists()) {\n            $(document).ready(function() {\n            /* Persist wishlist variable */\n\n              var url = $('.get-datalayer-wishlist-url').attr('data-datalayer-wishlist');\n\n              if (url) {\n                  $.ajax({\n                        url: url,\n                        method: 'GET',\n                        success: function(data) {\n                            var persist_wishlist = {\n                                item: data.item,\n                                total_with_vat: data.total_with_vat,\n                                currency: data.currency\n                            };\n                            utag.data['persist_wishlist'] = persist_wishlist;\n                        },\n                        error: function(data) {\n                            console.error(data);\n                        }\n                  });\n              }\n\n              /* Persist cart variable */\n              url = $('.get-datalayer-cart-url').attr('data-datalayer-cart');\n\n                if (url) {\n                    $.ajax({\n                        url: url,\n                        method: 'GET',\n                        success: function(data) {\n                            var persist_cart = {\n                                item: data.item,\n                                total_without_vat: data.total_without_vat,\n                                total_with_vat: data.total_with_vat,\n                                currency: data.currency\n                            };\n                            utag.data['persist_cart'] = persist_cart;\n\n                            jQuery('body').trigger('cart_wishlist_updated');\n\n                        },\n                        error: function(data) {\n                            console.error(data);\n                        }\n                    });\n                }\n            });\n        }\n    },\n\n    setListViewType: function() {\n        $(\".js-change-view-toggle\").click(function() {\n            let viewType = $(\".js-change-view-toggle.active\").attr('data-layout');\n\n            if (viewType == 'single') {\n                utag.data.list_view_type = 'outfit view';\n            } else {\n                utag.data.list_view_type = 'product view';\n            }\n            utag.link(utag.data);\n        });\n    },\n\n\n    searchOpen: function() {\n      $body.on('search:open', function() {\n        if (utagExists()) {\n        utag.data.page_name = utag.data.store_country + ':search:open';\n        // utag.data.page_type = 'search';\n        // utag.data.event_name = 'search_open';\n        // utag.link(utag.data);\n        let page_name = utag.data.store_country + ':search:open';\n        \n        utag.view({\n          'page_name' : page_name,\n          'view_name': utag.data.store_country + ':search:open',\n          'page_type' : 'search',\n          \"tealium_event\" : 'search',\n          'event_name' : 'search_open',\n          'event_category' : 'searchOpen',\n          'event_action' : 'click'\n        });\n      }\n      });\n    },\n\n\n    searchTypeKeyword: function() {\n      $body.on('search:searchKeyword', function(e, response) {\n        if (utagExists()) {\n          let names = [];\n          let skus = [];\n          for (let i = 0; i < response.suggestions.length; i++) {\n            if (response.suggestions[i].dataset.productName) {\n              names.push(response.suggestions[i].dataset.productName);\n            }\n            if (response.suggestions[i].dataset.pid) {\n              skus.push(response.suggestions[i].dataset.pid);\n            }\n          }\n          if (typeof utag === 'undefined' || !utag) return;\n          utag.data.page_name = `${utag.data.store_country}:search:inline result`;\n          // utag.data.page_type = 'search';\n          // utag.data.search_results = response.suggestions.length;\n          // utag.data.search_term = $('.search-field').val();\n          // utag.data.product_impression_name = names.toString();\n          // utag.data.product_impression_sku = skus.toString();\n          // utag.data.event_name = 'search_inline';\n          // utag.view(utag.data);\n\n\n          utag.view({\n            'page_name' : utag.data.store_country + ':search:inline result',\n            'view_name': utag.data.store_country + ':search:inline result',\n            'page_type' : 'search',\n            \"tealium_event\" : 'search',\n            'search_results' : response.suggestions.length,\n            'search_term' : $('.search-field').val(),\n            'product_name' : names,\n            'product_sku' : skus,\n            'event_name' : 'search_inline',\n            'event_category' : 'searchInline',\n            'event_action' : 'typeKeywords'\n          });\n        }\n      });\n    },\n\n    searchProductClick: function() {\n      $body.on('click', '.search-suggestion-list-item', function(e) {\n        if (utagExists()) {\n          utag.data.page_name = `${utag.data.store_country}:search:inline result`;\n          // utag.data.page_type = 'search';\n          // utag.data.search_term = $('.search-field').val();\n          // utag.data.search_result_type = e.currentTarget.dataset.type;\n          // utag.data.search_result_value = e.currentTarget.ariaLabel;\n          // utag.data.product_impression_name = e.currentTarget.ariaLabel;\n          // utag.data.product_impression_sku = e.currentTarget.dataset.pid;\n          // utag.data.event_name = 'search_inline_click';\n          // utag.view(utag.data);\n          let page_name = utag.data.store_country + ':search:inline result';\n          let name = [e.currentTarget.ariaLabel];\n          let sku = [e.currentTarget.dataset.pid];\n\n\n          utag.view({\n            'page_name' : page_name,\n            'view_name': utag.data.store_country + ':search:inline result',\n            \"tealium_event\" : 'search',\n            'page_type' : 'search',\n            'search_term' : $('.search-field').val(),\n            'search_result_type' : e.currentTarget.dataset.type,\n            'search_result_value' : e.currentTarget.ariaLabel,\n            'product_name' : name,\n            'product_sku' : sku,\n            'event_name' : 'search_inline_click',\n            'event_category' : 'searchInlineClick',\n            'event_action' : 'searchClick'\n          });\n        }\n      });\n    },\n\n\n    searchSend: function() {\n        $body.on('search:send', function() {\n            if (utagExists()) {\n                utag.view({\n                    'page_name' : utag.data.store_country + ':search send',\n                    'page_section' : 'search',\n                    'page_type' : 'search',\n                    'search_term' : $('.search-field').val(),\n                    'event_name' : 'search_ok',\n                });\n                utag.link(utag.data);\n            }\n        });\n    },\n\n    searchResultsPage: function() {\n      if (utagExists()) {\n      $body.on('search:searchResultsPage', function() {\n        let names = [];\n        let skus = [];\n        let product = $('.product');\n        for (let i = 0; i < product.length; i++) {\n          if (product[i].dataset.productName) {\n            names.push(product[i].dataset.productName);\n          }\n          if (product[i].dataset.pid) {\n            skus.push(product[i].dataset.pid);\n          }\n        }\n        utag.data.page_name = utag.data.store_country + ':search';\n        // utag.data.page_type = 'search';\n        // utag.data.list_view_type = 'product view';\n        // utag.data.product_impression_name = names.toString();\n        // utag.data.product_impression_sku = skus.toString();\n\n\n        utag.view({\n          'page_name' : utag.data.store_country + ':search',\n          'view_name': utag.data.store_country + ':search', \n          \"tealium_event\" : 'search',\n          'page_type' : 'search',\n          'list_view_type' : 'product view',\n          'search_term' : $('.search-field').val(),\n          'product_name' : names,\n          'product_sku' : skus,\n          'event_name' : 'search_results_page',\n          'event_category' : 'searchResults',\n          'event_action' : 'resultsLoad'\n        });\n      });\n      }\n    }\n};\n","'use strict';\n\nlet formCleared = false;\n\n/**\n * Additional class to invalid-feed back when input field is changed\n * @param {HTMLElement} input input field\n */\nfunction triggerEdgeValidation(input) {\n  if (!input || !input.nextElementSibling) return;\n  if (!input.nextElementSibling.classList.contains('invalid-feedback')) return;\n\n  const invalidFeedback = input.nextElementSibling;\n  invalidFeedback.classList.toggle('edge-validation-fix');\n}\n\n/**\n * Scroll to first error in given form (if there is any)\n * @param {JQuery} $form - jQuery object containing form\n */\nfunction scrollToError($form) {\n  if ($form.find('.is-invalid,.-invalid').length && !$form.parents('.modal').length) {\n    $('html, body').animate(\n      {\n        scrollTop: $form.find('.is-invalid,.-invalid').first().offset().top - 25,\n      },\n      500\n    );\n    $form.find('.is-invalid:first,.-invalid:first').focus();\n  }\n}\n\n/**\n * Check if the user has done the reCaptcha and return true if so\n * @param {jQuery} $form - the from which contains the reCaptcha\n * @returns {boolean} whether  the reCaptcha is entered or not\n */\nfunction validateReCaptcha($form) {\n  const $response = $form.find('[name=g-recaptcha-response]');\n  let valid;\n\n  if ($response.length && $response.val()) {\n    // ReCaptcha found and valid\n    valid = true;\n  } else if ($response.length) {\n    // ReCaptcha found but not valid\n    valid = false;\n  } else {\n    // ReCaptcha not found\n    valid = true;\n  }\n\n  $response.parent().toggleClass('highlight-recaptcha', !valid);\n  return valid;\n}\n\n/**\n * Validate whole form. Requires `this` to be set to form object\n * @param {jQuery.event} event - Event to be canceled if form is invalid.\n * @returns {boolean} - Flag to indicate if form is valid\n */\nfunction validateForm(event) {\n  let valid = true;\n\n  if (!validateReCaptcha($(this)) || (this.checkValidity && !this.checkValidity())) {\n    // safari\n    valid = false;\n\n    if (event) {\n      event.preventDefault();\n      event.stopPropagation();\n      event.stopImmediatePropagation();\n    }\n\n    $(this)\n      .find('input, select, textarea')\n      .each(function () {\n        if (!this.validity.valid) {\n          $(this).trigger('invalid', this.validity);\n        }\n      });\n  }\n\n  return valid;\n}\n\n/**\n * Remove all validation. Should be called every time before revalidating form\n * @param {element|jQuery} form - Form to be cleared. Could be plain JS object or jQuery object\n * @returns {void}\n */\nfunction clearFormErrors(form) {\n  let $form = form;\n\n  // Transform to jQuery object if plain JS object is passed.\n  if (!form.jquery) {\n    $form = $(form);\n  }\n\n  $form.find('.form-control.is-invalid').removeClass('is-invalid');\n  $form.find('.form-control.is-valid').removeClass('is-valid');\n  // margiela\n  $form.find('.-invalid').removeClass('-invalid');\n  $form.find('-valid').removeClass('-valid');\n  \n  $form.find('.invalid-feedback').empty();\n}\n\n/**\n * Init the handlers for events which doesn't bubble.\n * No bubbling means that body, document or element's container cannot be used for that event\n * and the exact element should be selected instead.\n * This is not a problem on initial load but doesn't work on html loaded with Ajax\n * and this is why this method is needed so we can re-attach the event handlers.\n * @returns {void}\n */\nfunction attachNoBubbleEvents() {\n  let attachTimeout;\n  $('form input, form select, form textarea')\n    .off('invalid')\n    .on('invalid', function (e) {\n      e.preventDefault();\n      this.setCustomValidity('');\n      const $form = $(this).parents('form');\n      triggerEdgeValidation(this);\n\n      if (!this.validity.valid) {\n        $(this).removeClass('is-valid -valid');\n        $(this).addClass('is-invalid -invalid');\n\n        const id = $(this).attr('id');\n        const fieldMessages = window.formValidationMessages[id];\n\n        if (fieldMessages) {\n          // Important:\n          // for-in statement was the only possible solution in this case.\n          // ValidityState has no enumerable properties hence Object.keys() wouldn't work.\n          let key;\n\n          for (key in this.validity) {\n            // eslint-disable-line no-restricted-syntax, guard-for-in\n            if (key !== 'valid') {\n              if (this.validity[key] && fieldMessages[key]) {\n                this.setCustomValidity(fieldMessages[key]);\n                break;\n              }\n            }\n          }\n        }\n\n        $(this).parents('.form-group').find('.invalid-feedback').text(this.validationMessage);\n        $(this).parents('[class^=\"mm-form\"]').find('.invalid-feedback').text(this.validationMessage);\n\n        clearTimeout(attachTimeout);\n        attachTimeout = setTimeout(function () {\n          $body.trigger('validation:afterReattachInvalid', { $form });\n        }, 50);\n      }\n    });\n}\n\n/**\n * Clear errors from form fields (includes messeges and visual feedback)\n * @param {JQuery} $form - jquery form object\n */\nfunction clearFormFieldErrors($form) {\n  $form.siblings('.invalid-feedback').empty();\n  $form.removeClass('is-invalid -inalid');\n  $form.addClass('is-valid -valid');\n\n  $form.find('input').each((i, e) => {\n    triggerEdgeValidation(e);\n  });\n}\n\nmodule.exports = {\n  noBubbleEvents: attachNoBubbleEvents,\n\n  init: function (additionalMessagesStr) {\n    window.formValidationMessages = {};\n\n    let additionalMessages;\n\n    if (additionalMessagesStr) {\n      try {\n        additionalMessages = JSON.parse(additionalMessagesStr);\n      } catch (e) {\n        window.console.warn(e);\n      }\n    }\n\n    const $formMessages = $('.js-form-messages');\n\n    if ($formMessages.length) {\n      try {\n        window.formValidationMessages = JSON.parse($formMessages.text());\n      } catch (e) {\n        window.console.warn(e);\n      }\n    }\n\n    if (additionalMessages) {\n      $.extend(window.formValidationMessages, additionalMessages);\n    }\n\n  },\n\n  submit: function () {\n    $body.on('submit', 'form', function (e) {\n      return validateForm.call(this, e);\n    });\n  },\n\n  buttonClick: function () {\n    $body.on('click', 'form button[type=\"submit\"], form input[type=\"submit\"]', function () {\n      // clear all errors when trying to submit the form\n      const $form = $(this).parents('form');\n      clearFormErrors($form);\n      validateReCaptcha($form);\n      formCleared = true;\n    });\n  },\n\n  focusOut: function () {\n    $body.on('focusout', 'form input:not(.validate-on-change), form select:not(.validate-on-change), form textarea', function (e) {\n      const $this = $(e.target);\n      $this.siblings('.field-description').remove();\n\n      if (!this.checkValidity()) {\n        $this.trigger('invalid', this.validity);\n      } else {\n        clearFormFieldErrors($this);\n      }\n    });\n  },\n\n  blur: function () {\n    $body.on('blur', 'form input:not(.validate-on-change), form select:not(.validate-on-change), form textarea', function (e) {\n      const $this = $(e.target);\n\n      const removeWhitespaces = $($this).val();\n      const cleanString = removeWhitespaces.replace(/^\\s+|\\s+$/g, '');\n      $($this).val(cleanString);\n      $this.siblings('.field-description').remove();\n\n      if (!this.checkValidity()) {\n        $this.trigger('invalid', this.validity);\n      } else {\n        clearFormFieldErrors($this);\n      }\n    });\n  },\n\n  onChange: function () {\n    $body.on('change', 'input.validate-on-change, select.validate-on-change', function (e) {\n      const $this = $(e.target);\n\n      if (!this.checkValidity()) {\n        $this.trigger('invalid', this.validity);\n      } else {\n        clearFormFieldErrors($this);\n      }\n    });\n  },\n\n  handleDateChange: function () {\n    $body.on('changeDate', '[data-provide=datepicker]', function () {\n      $(this).trigger('change');\n      $(this).trigger('focusout');\n    });\n  },\n\n  scrollOnError: function () {\n    $body.on('validation:afterReattachInvalid', function (e, data) {\n      if (formCleared) {\n        formCleared = false;\n        scrollToError(data.$form);\n      }\n    });\n  },\n\n  updatePostalCodePattern: function () {\n    $body.on('change', '[data-update-postal-code-pattern]', function () {\n      const $this = $(this);\n      const postalCodeElementID = $this.data('update-postal-code-pattern');\n      const $postalCode = $this.closest('form').find('#' + postalCodeElementID);\n\n      if ($postalCode.length > 0) {\n        const postalCodeRegexp = {\n          defaults: /^[0-9]{5}$/,\n          at: /^(?!0)([0-9]{4})$/,\n          be: /^(?!0)([0-9]{4})$/,\n          bg: /^(?!0)([0-9]{4})$/,\n          dk: /^(?!0)([0-9]{4})$/,\n          gr: /^([0-9]{3}\\s[0-9]{2}|[0-9]{5})$/,\n          hu: /^[0-9]{4}$/,\n          lv: /^([Ll][Vv])[-]([0-9]){4}$/,\n          lt: /^([Ll][Tt])[-]([0-9]){5}$/,\n          lu: /^(?!0)([0-9]{4})$/,\n          nl: /^[1-9][0-9]{3}\\s[A-Z]{2}$/,\n          no: /^[0-9]{4}$/,\n          pl: /^[0-9]{2}[-][0-9]{3}$/,\n          pt: /^(?!0)([0-9]{4}-?[0-9]{3})$/,\n          ro: /^[0-9]{6}$/,\n          ru: /^[0-9]{6}$/,\n          sk: /^(?=0|8|9)([0-9]{3}\\s?[0-9]{2})$/,\n          si: /^(?!0)([0-9]{4}$)/,\n          es: /^((0[1-9]|5[0-2])|[1-4][0-9])[0-9]{3}$/,\n          se: /^([0-9]{3}\\s[0-9]{2}|[0-9]{5})$/,\n          ch: /^[0-9]{4}$/,\n          gb: /^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})$/,\n          us: /^\\d{5}(-\\d{4})?$/,\n          ca: /^[ABCEGHJKLMNPRSTVXYabceghjklmnprstvxy]{1}\\d{1}[ABCEGHJKLMNPRSTVWXYZabceghjklmnprstvwxyz]{1} *\\d{1}[ABCEGHJKLMNPRSTVWXYZabceghjklmnprstvwxyz]{1}\\d{1}$/,\n          cz: /^[0-9]{3}\\s[0-9]{2}$/,\n        };\n        const countryCode = ($this.val() || '').toLowerCase();\n        const regexp = countryCode in postalCodeRegexp ? postalCodeRegexp[countryCode] : postalCodeRegexp.defaults;\n\n        $postalCode.attr('pattern', regexp.toString().slice(1, -1));\n      }\n    });\n\n    $('[data-update-postal-code-pattern]').trigger('change');\n  },\n\n  reCaptchaOnChange: function () {\n    $body.on('focusin', '.g-recaptcha iframe', function () {\n      validateReCaptcha($(event.target).parents('form'));\n    });\n  },\n\n  functions: {\n    validateForm: function (form, event) {\n      return validateForm.call(form, event || null);\n    },\n    clearFormErrors: clearFormErrors,\n    reAttachNoBubbleEvents: attachNoBubbleEvents,\n    scrollToError: scrollToError,\n  },\n};\n","'use strict';\n\nconst urlUtil = {};\n\n/**\n * Creates a new url string with an added or changed parameter\n * @param {string} paramName - the (new) parameter name\n * @param {string} paramValue - the new/changed parameter value\n * @param {string} href - [window.location.href] or equivalent\n * @param {string} hash - [window.location.hash] or equivalent\n * @returns {string} the new url\n */\nurlUtil.getUrlWithNewParameter = function (paramName, paramValue, href = window.location.href, hash = window.location.hash) {\n  if (paramName === null || paramValue === null) {\n    return href;\n  }\n\n  let url = href.replace(hash, '');\n  const pName = encodeURI(paramName);\n  const pValue = encodeURI(paramValue);\n\n  if (url.indexOf(pName + '=') >= 0) {\n    const prefix = url.substring(0, url.indexOf(pName));\n    let suffix = url.substring(url.indexOf(pName));\n    suffix = suffix.substring(suffix.indexOf('=') + 1);\n    suffix = suffix.indexOf('&') >= 0 ? suffix.substring(suffix.indexOf('&')) : '';\n    url = prefix + pName + '=' + pValue + suffix;\n  } else if (url.indexOf('?') < 0) {\n    url += '?' + pName + '=' + pValue; // No parameters present\n  } else {\n    url += '&' + pName + '=' + pValue; // Parameters present\n  }\n  return url + hash;\n};\n\n/**\n * Gets a parameter from a link or from [window.location.href]\n * @param {string} paramName - the parameter name\n * @param {string} url - [window.location.href] or equivalent\n * @returns {string} the parameter value or [null]\n */\nurlUtil.getParameterByName = function (paramName, url = window.location.href) {\n  const name = paramName.replace(/[[\\]]/g, '\\\\$&');\n  const regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)');\n  const results = regex.exec(url);\n  if (!results) return null;\n  if (!results[2]) return '';\n  return decodeURIComponent(results[2].replace(/\\+/g, ' '));\n};\n\n/**\n * Adds or changes a parameter in the current URL.\n * @param {string} paramName - the parameter name\n * @param {string} paramValue - the parameter value\n * @param {boolean} replace - if [false] it will add a new entry to the browser's history\n */\nurlUtil.changeCurrentUrlWithParam = function (paramName, paramValue, replace = true) {\n  const newUrl = urlUtil.getUrlWithNewParameter(paramName, paramValue);\n\n  if (replace) {\n    window.history.replaceState({}, document.title, newUrl);\n  } else {\n    window.history.pushState({}, document.title, newUrl);\n  }\n};\n\n/**\n * Increments a parameter in the current URL.\n * @param {string} paramName - the parameter name\n * @param {string} defaultValue - the value to be incremented if no such parameter is found\n * @param {boolean} replace - if [false] it will add a new entry to the browser's history\n */\nurlUtil.incrementCurrentUrlParam = function (paramName, defaultValue = 0, replace = true) {\n  const paramValue = urlUtil.getParameterByName(paramName);\n  let paramNumber;\n\n  if (paramValue) {\n    paramNumber = parseInt(paramValue, 10);\n  } else {\n    paramNumber = defaultValue;\n  }\n\n  if (typeof paramNumber === 'number' && isFinite(paramNumber)) {\n    paramNumber++;\n    urlUtil.changeCurrentUrlWithParam(paramName, paramNumber, replace);\n  }\n};\n\nmodule.exports = urlUtil;\n","'use strict';\n\nconst processInclude = require('base/util');\nconst clientSideValidation = require('core/components/clientSideValidation');\n$(document).ready(function () {\n  processInclude(require('core/components/helpNavigation.js'));\n  processInclude(require('core/components/helpSearch.js'));\n  processInclude(require('core/components/helpForms.js'));\n  processInclude(require('tealium/tealiumEvents'));\n  // processInclude(require('core/components/helpAssets.js'));\n  //giftCard.handleGifcardComponent();\n  clientSideValidation.noBubbleEvents();\n});\nrequire('core/components/spinner');\n","const isMargiela = document.querySelector('body').getAttribute('data-sitebrand') === \"Margiela\";\nconst clientSideValidation = require('./clientSideValidation');\nconst helpPage = document.querySelector('.help-page');\nconst fetchUrl = helpPage.dataset.fetchUrl;\nconst helpMenu = helpPage.querySelector('.help-menu-col');\nconst urlUtil = require('./urlUtil');\nconst isMobile = window.innerWidth <= 1024;\nconst helpMenuLink = isMargiela ? '.sub-menu-list-item a' : '.menu-list-item a';\nlet primaryAsset;\nconst setPrimaryAssetValue = () => {\n  if(isMargiela) {\n    if(isMobile) {\n      primaryAsset = helpMenu;\n    } else {\n      primaryAsset = helpPage.querySelector('.help-content-col .help-content-box');\n    }\n  } else {\n      primaryAsset = helpPage.querySelector('.help-content-col');\n  }\n}\n\n$(document).ready(function () {\n  const aId = helpPage.dataset.helpId;\n  let element = document.querySelector(`.page-help-menu .menu-list #${aId}`);\n  if (element) {\n    element.parentElement.classList.add('active');\n  }\n  setPrimaryAssetValue();\n});\n\n/**\n * Fetches an asset from the server and updates the page accordingly\n * @param {string} assetId the asset id with with to update the page data\n */\nfunction fetchPrimaryAsset(assetId) {\n  setPrimaryAssetValue();\n  if(!isMargiela || (isMargiela && !isMobile)) {\n    const url = urlUtil.getUrlWithNewParameter('cid', assetId, fetchUrl) + '&format=ajax';\n    $.get(url, function (data) {\n      primaryAsset.innerHTML = data;\n      updateCurrentAssetId(assetId);\n      clientSideValidation.init();\n      clientSideValidation.functions.reAttachNoBubbleEvents();\n      $.spinner().stop();\n      openSelectedMenuItem();\n      const helpDashboardContainer = document.querySelector('#help-dashboard-container');\n      if(isMargiela && helpDashboardContainer) {\n        helpDashboardContainer.classList.remove('help-dashboard-container');\n        helpDashboardContainer.classList.add('page-help-container');\n        helpDashboardContainer.querySelector('.help-content-col').classList.remove('help-dashboard-content-col');\n      }\n    });\n  }\n}\n\n$(helpMenu).on('click', helpMenuLink, function (event) {\n  if(!isMargiela) {\n    const assetId = urlUtil.getParameterByName('content', event.target.href);\n    document.querySelectorAll('.menu-list-item').forEach(function (item) {\n      return item.classList.remove('active');\n    });\n    event.target.parentElement.classList.add('active');\n    if (!assetId) return;\n    $.spinner().start();\n      if (assetId != helpPage.dataset.dashboardId) {\n      event.preventDefault();\n      $.spinner().start();\n      fetchPrimaryAsset(assetId);\n    }\n  } else {\n    const assetId = urlUtil.getParameterByName('content', event.target.href);\n    if (assetId != helpPage.dataset.dashboardId) {\n      !isMobile ? event.preventDefault() : null;\n      fetchPrimaryAsset(assetId);\n    }\n  }\n});\n\n/**\n * Hide the main support topics and show back button\n */\nfunction hideTopNav() {\n  //document.querySelector('#help-content-col .header').style.display = 'none';\n  //document.querySelector('#help-content-col .help-menu-col').style.display = 'none';\n  //document.querySelector('#help-content-col .help-content-col').classList.add('inner-column');\n  // supportHeadline.classList.add('support_headline_hide');\n  // helpMenuBack.classList.add('back_to_help_show');\n\n  // for (const item of topItems) {\n  //   item.classList.add('topmenu_hide');\n  // }\n\n  // Remove dynamic ajax content\n  $(helpPage).find('.js_response-container').remove();\n}\n\n/**\n * Hide the main support topics and show the sub menu item which has the current page's content id\n */\nfunction openSelectedMenuItem() {\n  hideTopNav();\n  const selectedSubMenu = helpMenu.querySelector('#' + helpPage.dataset.helpId);\n  if (!selectedSubMenu) {\n    return;\n  }\n  if(!isMargiela) {\n    const selectedElementParent = selectedSubMenu.parentElement;\n    const highlights = helpMenu.querySelectorAll('.menu-list-item');\n    if (!selectedSubMenu) {\n      return;\n    }\n    for (const highlight of highlights) {\n      highlight.classList.remove('active');\n    }\n    // Show selected menu:\n    selectedElementParent.classList.add('active');\n  } else {\n    // select all items and remove active class\n    const helpAccordions = document.querySelectorAll('.help-menu-elements .help-menu-item')\n    // select all accordions and remove open class\n    const helpMenuItems = document.querySelectorAll('.help-menu-elements .help-menu-item .sub-menu-list-item')\n      // select inner item to set active\n    const selectedHelpMenuItem = selectedSubMenu.closest('.sub-menu-list-item');\n    // select accordion to open\n    const selectedHelpAccordion = selectedSubMenu.closest('.help-menu-item')\n\n    helpAccordions.forEach(acc => {\n      acc.classList.remove('is-visible');\n      acc.classList.remove('is-active');\n      acc.classList.remove('active');\n    });\n    helpMenuItems.forEach(item => item.classList.remove('active'));\n    if(selectedHelpAccordion) {\n      selectedHelpAccordion.classList.add('is-active');\n      selectedHelpAccordion.classList.add('is-visible');\n      selectedHelpMenuItem.classList.add('active');\n    }\n  }\n}\n\n/**\n * Updates the page data with the given asset id and shows/hides the landing asset.\n * @param {string} assetId the asset id with with to update the page data\n */\nfunction updateCurrentAssetId(assetId) {\n  helpPage.dataset.helpId = assetId;\n\n  // if (assetId === landingId) {\n  //     primaryAsset.classList.add('d-none');\n  //     landingAsset.classList.remove('d-none');\n  // } else {\n  //     primaryAsset.classList.remove('d-none');\n  //     landingAsset.classList.add('d-none');\n  // }\n  urlUtil.changeCurrentUrlWithParam('content', assetId);\n}\n\nif(!isMargiela) {\n  document.addEventListener(\"DOMContentLoaded\", function () {\n    let stickyElement = document.querySelector(\".page-help-menu .menu-list\");\n    let header = document.querySelector(\".header\");\n    let headerHeight = header ? header.offsetHeight : 0;\n    \n    if (!stickyElement) return;\n\n    let stickyPosition = stickyElement.getBoundingClientRect().top + window.pageYOffset;\n\n    window.onscroll = function () {\n      if (window.pageYOffset > stickyPosition - headerHeight) {\n        stickyElement.classList.add(\"sticky\");\n        stickyElement.style.top = headerHeight + \"px\";\n      } else {\n        stickyElement.classList.remove(\"sticky\");\n        stickyElement.style.top = \"\";\n      }\n    };\n  });\n\n  let menuLinks = document.querySelectorAll(helpMenuLink);\n\n  menuLinks.forEach(function (link) {\n    link.addEventListener(\"click\", function (e) {\n      e.preventDefault();\n\n      window.scrollTo({\n        top: 0,\n        behavior: \"smooth\",\n      });\n    });\n  });\n}\n","'use strict';\n\nconst urlUtil = require('./urlUtil');\nconst isMargiela = document.body.dataset.sitebrand === \"Margiela\";\n\nconst $form = $('.js_search-content-form');\nconst $results = $('.js_search-content-results');\nconst $body = $('body');\n\n/**\n * Append result item to result list\n * @param {Object} content - the model that contains the result item data\n */\nfunction appendResult(content) {\n  const resultLi = document.createElement('li');\n  resultLi.classList.add('result-item-li');\n  const result = document.createElement('a');\n  result.classList.add('result-item');\n  resultLi.classList.add('item');\n  resultLi.setAttribute('role', \"option\");\n  resultLi.setAttribute('id', content.id);\n  result.setAttribute('href', content.helpUrl);\n  result.textContent = content.name;\n  resultLi.append(result);\n  $results.append(resultLi);\n}\n\n/**\n * Append a message (result without link) to result list\n * @param {string} message - message content\n */\nfunction appendMessage(message) {\n  const result = document.createElement('span');\n  result.classList.add('result-item');\n  result.classList.add('result-message');\n  if(isMargiela) {\n    result.classList.add('mm-form-message');\n    result.classList.add('-invalid');\n    $results.removeClass('d-none');\n    result.setAttribute('role','alert');\n  }\n  result.textContent = message;\n  $results.append(result);\n}\n\nmodule.exports = {\n  submit: function () {\n    $form.on('submit', function (event) {\n      event.preventDefault();\n      $.spinner().start();\n      const searchBarForm = event.currentTarget.closest('.mm-menu-search__bar');\n      if(isMargiela) {\n        searchBarForm || $form.classList.contains('order-tracking-form') ? searchBarForm.classList.remove('invalid-search') : null;\n        $results.empty();\n      }\n      $results.removeClass('show');\n      // let url = $form.attr('action');\n      let url = event.currentTarget.closest('form').getAttribute('action');\n      \n      url = urlUtil.getUrlWithNewParameter('q', $form.find('input').val(), url);\n      if(!isMargiela || (searchBarForm && $form.find('input').val())) {\n        $.getJSON(url, function (data) {\n          $results.empty();\n  \n          if (data.contentSearch && data.contentSearch.contentCount) {\n            let content;\n            for (let i = 0; i < data.contentSearch.contents.length; i++) {\n              content = data.contentSearch.contents[i];\n              appendResult(content);\n            }\n            if(isMargiela) {\n              $('#help-search-result-count').html(data.message);\n              $('#help-search-result-count').attr('role', 'alert');\n            }\n          } else {\n            if(isMargiela) {\n              searchBarForm ? searchBarForm.classList.add('invalid-search') : null;\n            }\n            appendMessage(data.msgNoResults);\n          }\n  \n          $.spinner().stop();\n\n          // IBT-3495\n          $results.removeClass('d-none');\n\n          $results.addClass('show');\n        });\n      } else if(isMargiela && !$form.find('input').val()) {\n        searchBarForm ? searchBarForm.classList.add('invalid-search') : null;\n        appendMessage($('.mm-help-area-search-input-error').html());\n      }\n    });\n  },\n  autoClearResults: function () {\n    $body.on('click', function () {\n      const $target = $(event.target);\n      if (!$target.parents('.js_search-content-results').length) {\n        // User clicked outside results\n        $results.removeClass('show');\n      }\n    });\n  },\n  searchButton: function () {\n    $body.on('click', '.help-search-icon', function () {\n      if ($form.get(0).checkValidity()) $form.trigger('submit');\n    });\n  },\n  onRemoveSearchInput: function() {\n    $body.on('keydown','.help-search-input', function(e) {\n      if ((e.keyCode == 46 || e.keyCode == 8)) {\n        $('.search-content-results.js_search-content-results').html('');\n      }\n    } )\n  },\n};\n","'use strict';\n\n// const urlUtil = require('./urlUtil');\n\nconst isMargiela = document.querySelector('body').getAttribute('data-sitebrand') === \"Margiela\";\nconst isMarni = document.querySelector('body').getAttribute('data-sitebrand') === \"Marni\";\nconst isJilSander = document.body.dataset.sitebrand === \"JilSander\";\n\nlet isVisible = false;\n\nconst showEtaExtraInfoMessage = (ev) => {\n  const messageBox = ev.target.closest('.item-shipping-price').querySelector('.eta-extra-info-message');\n  const messageIconToggler = ev.target.closest('.eta-extra-info-icon');\n  if(isVisible) {\n    messageBox.classList.remove('visible');\n    messageIconToggler.classList.remove('active');\n  } else {\n    messageBox.classList.add('visible');\n    messageIconToggler.classList.add('active');\n  }\n}\n\nconst addTooltipClickBehaviour = () => {\n  const extraInfoIcons = document.querySelectorAll('.eta-extra-info-icon');\n  if(extraInfoIcons) {\n    extraInfoIcons.forEach(i => i.addEventListener('click', function(e) {\n      showEtaExtraInfoMessage(e);\n      isVisible = !isVisible;\n    }));\n  }\n}\n\n\n/**\n * Function used to have the correct behaviour on duties/taxes tooltip hover\n */\nconst addTooltipHoverBehaviour = () => {\n  const dutiesTooltipBox = document.querySelector('.tooltip-global-container .duties-tooltip-box');\n  const taxesTooltipBox = document.querySelector('.tooltip-global-container .taxes-tooltip-box');\n  $('.tooltip-global-container .duties-tooltip-toggler').on('mouseover', () => dutiesTooltipBox.classList.add('visible'));\n  $('.tooltip-global-container .duties-tooltip-toggler').on('mouseleave', () => dutiesTooltipBox.classList.remove('visible'));\n  $('.tooltip-global-container .taxes-tooltip-toggler').on('mouseover', () => taxesTooltipBox.classList.add('visible'));\n  $('.tooltip-global-container .taxes-tooltip-toggler').on('mouseleave', () => taxesTooltipBox.classList.remove('visible'));\n}\n\nconst submitContactForm = (event) => {\n  event.preventDefault();\n  $.spinner().start();\n  let submitForm = function () {\n    const $form = $('form#contact-us-form');\n    let inputs = $('form#contact-us-form input, form#contact-us-form select, form#contact-us-form textarea');\n    let hiddenForm = document.createElement('form');\n    hiddenForm.method = $form.attr('method');\n    var isValidForm = true;\n    inputs.each(function (i) {\n      let originalInput = $(this);\n      let newInput = document.createElement('input');\n      newInput.name = originalInput.attr('name');\n      newInput.value = originalInput.val();\n      newInput.setAttribute('type', 'hidden');\n      hiddenForm.appendChild(newInput);\n      if(originalInput.prop('required') && originalInput.val() == ''){\n        isValidForm = false;\n        return false;\n      }\n      // IBT-3439\n      if(originalInput.hasClass('error')){\n        isValidForm = false;\n        return false;\n      }\n    });\n    document.body.appendChild(hiddenForm);\n\n    $.ajax({\n      url: $form.attr('action'),\n      type: \"post\",\n      dataType: \"json\",\n      data: $form.serialize(),\n      success: function(data) {\n        if (data.success && data.contactUsUrl) {\n          hiddenForm.action = data.contactUsUrl;\n          hiddenForm.submit();\n        }\n      }\n    });\n  };\n\n  if ($('form#contact-us-form').find('.g-recaptcha').length > 0) {\n    grecaptcha.ready(function() {\n      grecaptcha.execute($('#gReCaptchaWidget').data('sitekey'), {action:'submit'}).then(function(token) {\n        $('#g-recaptcha-response').val(token);\n        $('#gReCaptchaWidget').val(token);\n        submitForm();\n      });\n    });\n  } else {\n    submitForm();\n  }\n  return false;\n}\n\nmodule.exports = {\n  orderFormSubmit: function () {\n    $('body').on('submit', '.help-search-order', function (event) {\n      event.preventDefault();\n      const $form = $(event.target);\n      \n      $.spinner().start();\n      \n      $.post({\n        url: $form.attr('action'),\n        dataType: 'json',\n        data: $form.serialize(),\n        success: function (data) {\n          if (data.success) {\n            $('body').find('.check-order-before-login').remove();\n            if(isMarni) {\n              $('body').find('.help-content-box').first().replaceWith(data.detailsHtml);\n              $('body').find('.help-content-box').remove();\n            } else {\n            $('body').find('.help-content-box').replaceWith(data.detailsHtml);\n            }\n            $('body').trigger('help:orderDetailsOpened', data);\n            if(isMargiela) {\n              addTooltipClickBehaviour();\n              addTooltipHoverBehaviour();\n            }\n            if(isJilSander) {\n              document.querySelector('.order-search-return') && document.querySelector('.order-search-return').classList.add('search-result-wrapper');\n            }\n          } else {\n            $form.find('.alert').remove();\n            \n            const alertEl = document.createElement('div');\n            alertEl.classList.add('alert');\n            alertEl.classList.add('mm-form-message');\n            alertEl.textContent = data.errorMessage;\n            $form.append(alertEl);\n          }\n          $.spinner().stop();\n        },\n        error: function () {\n          $.spinner().stop();\n        },\n      });\n    });\n  },\n  contactUsFormSubmit: function () {\n    if(isJilSander) {\n      $('#contact-us-form').on('bouncerFormValid', function (e) {\n        submitContactForm(e);\n      });\n    } else {\n      $('body').on('submit', '#contact-us-form', function (event) {\n        submitContactForm(event);\n      });\n    }\n  },\n  // positionNotification: function () {\n  //   $(window).on('scroll', function () {\n  //     if ($(window).scrollTop() === 0) {\n  //       $('.success-notification').css('position', 'relative');\n  //     }\n  //   });\n  // },\n  // autoStatusSubmit: function () {\n  //   const orderNumber = urlUtil.getParameterByName('orderNumber');\n  //   const orderEmail = urlUtil.getParameterByName('orderEmail');\n\n  //   if (orderNumber && orderEmail) {\n  //     const $form = $('#help-order-status-form');\n  //     $form.find('#orderNumber').val(orderNumber);\n  //     $form.find('#orderEmail').val(orderEmail);\n  //     $form.trigger('submit');\n  //   }\n  // },\n};\n","'use strict';\n\nmodule.exports = function (include) {\n    if (typeof include === 'function') {\n        include();\n    } else if (typeof include === 'object') {\n        Object.keys(include).forEach(function (key) {\n            if (typeof include[key] === 'function') {\n                include[key]();\n            }\n        });\n    }\n};\n"],"sourceRoot":""}