{
  "version": 3,
  "sources": ["/cdn/shop/t/25/assets/fm-discount-route-fix.js?fm=20260615-discount-route-v2"],
  "sourcesContent": ["/* Football Masters native discount route helper.\n * Converts market promo URLs to Shopify /discount/CODE route before checkout.\n */\n(function () {\n  'use strict';\n\n  if (window.__fmDiscountRouteFixLoaded) return;\n  window.__fmDiscountRouteFixLoaded = true;\n\n  var VERSION = '2026-06-15.eu-market-discount-route.1';\n  var configs = {\n    cz: {\n      code: 'CZGK50',\n      hosts: ['footballmasters.cz', 'www.footballmasters.cz'],\n      pathPrefix: /^\\/cs(\\/|$)/i,\n      lang: /^cs/i,\n    },\n    sk: {\n      code: 'SKGK50',\n      hosts: ['footballmasters.sk', 'www.footballmasters.sk'],\n      pathPrefix: /^\\/sk(\\/|$)/i,\n      lang: /^sk/i,\n    },\n    ro: {\n      code: 'ROGK50',\n      hosts: ['footballmasters.ro', 'www.footballmasters.ro'],\n      pathPrefix: /^\\/ro-ro(\\/|$)/i,\n      lang: /^ro/i,\n    },\n    de: {\n      code: 'DEGK50',\n      hosts: ['footballmasters.com.de', 'www.footballmasters.com.de'],\n      pathPrefix: /^\\/de(\\/|$)/i,\n      lang: /^de/i,\n    },\n  };\n\n  function getConfig() {\n    var host = (window.location.hostname || '').toLowerCase();\n    var path = window.location.pathname || '/';\n    var lang = (document.documentElement.getAttribute('lang') || '').toLowerCase();\n    var keys = Object.keys(configs);\n    for (var index = 0; index < keys.length; index += 1) {\n      var config = configs[keys[index]];\n      if (config.hosts.indexOf(host) !== -1 || config.pathPrefix.test(path) || config.lang.test(lang)) {\n        return config;\n      }\n    }\n    return null;\n  }\n\n  var config = getConfig();\n  if (!config) return;\n\n  function safeSessionGet(key) {\n    try {\n      return window.sessionStorage && sessionStorage.getItem(key);\n    } catch (error) {\n      return '';\n    }\n  }\n\n  function safeSessionSet(key, value) {\n    try {\n      if (window.sessionStorage) sessionStorage.setItem(key, value);\n    } catch (error) {}\n  }\n\n  function isBlockedPath(path) {\n    return /^\\/(discount|checkout|checkouts|cdn|admin|apps|tools|wpm|\\.well-known)(\\/|$)/i.test(path || '');\n  }\n\n  function isCommercialPath(path) {\n    return path === '/' ||\n      /^\\/(cs|sk|ro-ro|de)\\/?$/i.test(path || '') ||\n      /\\/(collections|products|cart)(\\/|$)/i.test(path || '');\n  }\n\n  function cleanRedirectTarget(url) {\n    url.searchParams.delete('discount');\n    return (url.pathname || '/') + (url.search || '') + (url.hash || '');\n  }\n\n  function routeFor(target) {\n    return '/discount/' + encodeURIComponent(config.code) + '?redirect=' + encodeURIComponent(target || '/collections/all');\n  }\n\n  function applyNativeDiscountWhenNeeded() {\n    try {\n      var url = new URL(window.location.href);\n      if (isBlockedPath(url.pathname)) return;\n\n      var discountParam = (url.searchParams.get('discount') || '').toUpperCase();\n      var explicitPromo = discountParam === config.code;\n      if (!explicitPromo && !isCommercialPath(url.pathname)) return;\n\n      var redirectTarget = cleanRedirectTarget(url);\n      var routeKey = 'fmDiscountRouteFixApplied:' + config.code + ':' + redirectTarget;\n      var marketKey = 'fmDiscountRouteFixMarketApplied:' + config.code;\n      if (!explicitPromo && safeSessionGet(marketKey) === '1') return;\n      if (safeSessionGet(routeKey) === '1') return;\n\n      safeSessionSet(routeKey, '1');\n      safeSessionSet(marketKey, '1');\n      window.location.replace(routeFor(redirectTarget));\n    } catch (error) {}\n  }\n\n  function discountRouteForLink(link) {\n    try {\n      var raw = link.getAttribute('href') || '';\n      if (!raw || raw.charAt(0) === '#') return '';\n      var url = new URL(raw, window.location.origin);\n      if (url.hostname && url.hostname !== window.location.hostname) return '';\n      var localizedDiscount = url.pathname.match(/^\\/(?:cs|sk|ro-ro|de)\\/discount\\/([^/]+)(?:\\/|$)/i);\n      if (localizedDiscount && localizedDiscount[1].toUpperCase() === config.code) {\n        return routeFor(url.searchParams.get('redirect') || '/collections/all');\n      }\n      if (isBlockedPath(url.pathname)) return '';\n      var discount = (url.searchParams.get('discount') || '').toUpperCase();\n      if (discount !== config.code) return '';\n      return routeFor(cleanRedirectTarget(url));\n    } catch (error) {\n      return '';\n    }\n  }\n\n  function rewriteDiscountLinks(root) {\n    if (!root || !root.querySelectorAll) return;\n    [].forEach.call(root.querySelectorAll('a[href]'), function (link) {\n      var next = discountRouteForLink(link);\n      if (next) link.setAttribute('href', next);\n    });\n  }\n\n  function routeCheckoutSubmit(event) {\n    var submitter = event.submitter || document.activeElement;\n    if (!submitter || submitter.name !== 'checkout') return;\n    safeSessionSet('fmDiscountRouteFixMarketApplied:' + config.code, '1');\n  }\n\n  function bindCartForms(root) {\n    if (!root || !root.querySelectorAll) return;\n    [].forEach.call(root.querySelectorAll('form[action*=\"/cart\"]'), function (form) {\n      if (form.dataset.fmDiscountRouteFixBound === '1') return;\n      form.dataset.fmDiscountRouteFixBound = '1';\n      form.addEventListener('submit', routeCheckoutSubmit, true);\n    });\n  }\n\n  function run(root) {\n    rewriteDiscountLinks(root || document);\n    bindCartForms(root || document);\n  }\n\n  applyNativeDiscountWhenNeeded();\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', function () { run(document); });\n  } else {\n    run(document);\n  }\n\n  var timer = null;\n  new MutationObserver(function (mutations) {\n    if (timer) window.clearTimeout(timer);\n    timer = window.setTimeout(function () {\n      mutations.forEach(function (mutation) {\n        if (!mutation.addedNodes) return;\n        [].forEach.call(mutation.addedNodes, function (node) {\n          if (node && node.nodeType === 1) run(node);\n        });\n      });\n    }, 80);\n  }).observe(document.documentElement, {\n    attributes: true,\n    attributeFilter: ['href', 'action'],\n    childList: true,\n    subtree: true\n  });\n\n  window.setTimeout(function () { run(document); }, 500);\n  window.setTimeout(function () { run(document); }, 1500);\n  window.setTimeout(function () { run(document); }, 3500);\n\n  window.__fmDiscountRouteFixVersion = VERSION;\n})();\n"],
  "mappings": "CAGC,UAAY,CACX,aAEA,GAAI,OAAO,2BAA4B,OACvC,OAAO,2BAA6B,GAEpC,IAAI,QAAU,wCACV,QAAU,CACZ,GAAI,CACF,KAAM,SACN,MAAO,CAAC,qBAAsB,wBAAwB,EACtD,WAAY,eACZ,KAAM,MACR,EACA,GAAI,CACF,KAAM,SACN,MAAO,CAAC,qBAAsB,wBAAwB,EACtD,WAAY,eACZ,KAAM,MACR,EACA,GAAI,CACF,KAAM,SACN,MAAO,CAAC,qBAAsB,wBAAwB,EACtD,WAAY,kBACZ,KAAM,MACR,EACA,GAAI,CACF,KAAM,SACN,MAAO,CAAC,yBAA0B,4BAA4B,EAC9D,WAAY,eACZ,KAAM,MACR,CACF,EAEA,SAAS,WAAY,CAKnB,QAJI,MAAQ,OAAO,SAAS,UAAY,IAAI,YAAY,EACpD,KAAO,OAAO,SAAS,UAAY,IACnC,MAAQ,SAAS,gBAAgB,aAAa,MAAM,GAAK,IAAI,YAAY,EACzE,KAAO,OAAO,KAAK,OAAO,EACrB,MAAQ,EAAG,MAAQ,KAAK,OAAQ,OAAS,EAAG,CACnD,IAAIA,QAAS,QAAQ,KAAK,KAAK,CAAC,EAChC,GAAIA,QAAO,MAAM,QAAQ,IAAI,IAAM,IAAMA,QAAO,WAAW,KAAK,IAAI,GAAKA,QAAO,KAAK,KAAK,IAAI,EAC5F,OAAOA,OAEX,CACA,OAAO,IACT,CAEA,IAAI,OAAS,UAAU,EACvB,GAAI,CAAC,OAAQ,OAEb,SAAS,eAAe,IAAK,CAC3B,GAAI,CACF,OAAO,OAAO,gBAAkB,eAAe,QAAQ,GAAG,CAC5D,OAAS,MAAO,CACd,MAAO,EACT,CACF,CAEA,SAAS,eAAe,IAAK,MAAO,CAClC,GAAI,CACE,OAAO,gBAAgB,eAAe,QAAQ,IAAK,KAAK,CAC9D,OAAS,MAAO,CAAC,CACnB,CAEA,SAAS,cAAc,KAAM,CAC3B,MAAO,gFAAgF,KAAK,MAAQ,EAAE,CACxG,CAEA,SAAS,iBAAiB,KAAM,CAC9B,OAAO,OAAS,KACd,2BAA2B,KAAK,MAAQ,EAAE,GAC1C,uCAAuC,KAAK,MAAQ,EAAE,CAC1D,CAEA,SAAS,oBAAoB,IAAK,CAChC,WAAI,aAAa,OAAO,UAAU,GAC1B,IAAI,UAAY,MAAQ,IAAI,QAAU,KAAO,IAAI,MAAQ,GACnE,CAEA,SAAS,SAAS,OAAQ,CACxB,MAAO,aAAe,mBAAmB,OAAO,IAAI,EAAI,aAAe,mBAAmB,QAAU,kBAAkB,CACxH,CAEA,SAAS,+BAAgC,CACvC,GAAI,CACF,IAAI,IAAM,IAAI,IAAI,OAAO,SAAS,IAAI,EACtC,GAAI,cAAc,IAAI,QAAQ,EAAG,OAEjC,IAAI,eAAiB,IAAI,aAAa,IAAI,UAAU,GAAK,IAAI,YAAY,EACrE,cAAgB,gBAAkB,OAAO,KAC7C,GAAI,CAAC,eAAiB,CAAC,iBAAiB,IAAI,QAAQ,EAAG,OAEvD,IAAI,eAAiB,oBAAoB,GAAG,EACxC,SAAW,6BAA+B,OAAO,KAAO,IAAM,eAC9D,UAAY,mCAAqC,OAAO,KAE5D,GADI,CAAC,eAAiB,eAAe,SAAS,IAAM,KAChD,eAAe,QAAQ,IAAM,IAAK,OAEtC,eAAe,SAAU,GAAG,EAC5B,eAAe,UAAW,GAAG,EAC7B,OAAO,SAAS,QAAQ,SAAS,cAAc,CAAC,CAClD,OAAS,MAAO,CAAC,CACnB,CAEA,SAAS,qBAAqB,KAAM,CAClC,GAAI,CACF,IAAI,IAAM,KAAK,aAAa,MAAM,GAAK,GACvC,GAAI,CAAC,KAAO,IAAI,OAAO,CAAC,IAAM,IAAK,MAAO,GAC1C,IAAI,IAAM,IAAI,IAAI,IAAK,OAAO,SAAS,MAAM,EAC7C,GAAI,IAAI,UAAY,IAAI,WAAa,OAAO,SAAS,SAAU,MAAO,GACtE,IAAI,kBAAoB,IAAI,SAAS,MAAM,mDAAmD,EAC9F,GAAI,mBAAqB,kBAAkB,CAAC,EAAE,YAAY,IAAM,OAAO,KACrE,OAAO,SAAS,IAAI,aAAa,IAAI,UAAU,GAAK,kBAAkB,EAExE,GAAI,cAAc,IAAI,QAAQ,EAAG,MAAO,GACxC,IAAI,UAAY,IAAI,aAAa,IAAI,UAAU,GAAK,IAAI,YAAY,EACpE,OAAI,WAAa,OAAO,KAAa,GAC9B,SAAS,oBAAoB,GAAG,CAAC,CAC1C,OAAS,MAAO,CACd,MAAO,EACT,CACF,CAEA,SAAS,qBAAqB,KAAM,CAC9B,CAAC,MAAQ,CAAC,KAAK,kBACnB,CAAC,EAAE,QAAQ,KAAK,KAAK,iBAAiB,SAAS,EAAG,SAAU,KAAM,CAChE,IAAI,KAAO,qBAAqB,IAAI,EAChC,MAAM,KAAK,aAAa,OAAQ,IAAI,CAC1C,CAAC,CACH,CAEA,SAAS,oBAAoB,MAAO,CAClC,IAAI,UAAY,MAAM,WAAa,SAAS,cACxC,CAAC,WAAa,UAAU,OAAS,YACrC,eAAe,mCAAqC,OAAO,KAAM,GAAG,CACtE,CAEA,SAAS,cAAc,KAAM,CACvB,CAAC,MAAQ,CAAC,KAAK,kBACnB,CAAC,EAAE,QAAQ,KAAK,KAAK,iBAAiB,uBAAuB,EAAG,SAAU,KAAM,CAC1E,KAAK,QAAQ,0BAA4B,MAC7C,KAAK,QAAQ,wBAA0B,IACvC,KAAK,iBAAiB,SAAU,oBAAqB,EAAI,EAC3D,CAAC,CACH,CAEA,SAAS,IAAI,KAAM,CACjB,qBAAqB,MAAQ,QAAQ,EACrC,cAAc,MAAQ,QAAQ,CAChC,CAEA,8BAA8B,EAE1B,SAAS,aAAe,UAC1B,SAAS,iBAAiB,mBAAoB,UAAY,CAAE,IAAI,QAAQ,CAAG,CAAC,EAE5E,IAAI,QAAQ,EAGd,IAAI,MAAQ,KACZ,IAAI,iBAAiB,SAAU,UAAW,CACpC,OAAO,OAAO,aAAa,KAAK,EACpC,MAAQ,OAAO,WAAW,UAAY,CACpC,UAAU,QAAQ,SAAU,SAAU,CAC/B,SAAS,YACd,CAAC,EAAE,QAAQ,KAAK,SAAS,WAAY,SAAU,KAAM,CAC/C,MAAQ,KAAK,WAAa,GAAG,IAAI,IAAI,CAC3C,CAAC,CACH,CAAC,CACH,EAAG,EAAE,CACP,CAAC,EAAE,QAAQ,SAAS,gBAAiB,CACnC,WAAY,GACZ,gBAAiB,CAAC,OAAQ,QAAQ,EAClC,UAAW,GACX,QAAS,EACX,CAAC,EAED,OAAO,WAAW,UAAY,CAAE,IAAI,QAAQ,CAAG,EAAG,GAAG,EACrD,OAAO,WAAW,UAAY,CAAE,IAAI,QAAQ,CAAG,EAAG,IAAI,EACtD,OAAO,WAAW,UAAY,CAAE,IAAI,QAAQ,CAAG,EAAG,IAAI,EAEtD,OAAO,4BAA8B,OACvC,GAAG",
  "names": ["config"]
}
