{
  "version": 3,
  "sources": ["/cdn/shop/t/92/assets/laley-email-check.js?lly=laley-custom-20260921-epostsjekk-v860"],
  "sourcesContent": ["/*\n  Laley e-postsjekk. \u00C9N kilde for alle p\u00E5meldingsskjemaer (kundeklubb-popup,\n  footer, sidehero via popupen, Gavemaskinen).\n\n  Hvorfor: Klaviyo godtar gmail.con, hotmail.co og gmial.com uten feilmelding.\n  Adressen kan aldri motta e-post, kunden f\u00E5r aldri velkomstkoden, og n\u00E5r\n  mobilnummeret allerede tilh\u00F8rer en kunde, overskriver Klaviyo den fungerende\n  adressen med skrivefeilen. 21.09.26 rettet vi 93 slike profiler for h\u00E5nd.\n\n  LaleyEmailCheck.check(verdi) gir:\n    { valid, email, suggestion, block, reason }\n    valid       formen er en e-postadresse (lokal@domene.tld)\n    email       trimmet, domenet i sm\u00E5 bokstaver\n    suggestion  foresl\u00E5tt adresse (\"ola@gmail.com\") eller ''\n    block       true n\u00E5r domenet sikkert er feil (gmail.con, gmail.co,\n                icloud.no, gmial.com). Skjemaet skal da stoppe og vise forslaget.\n                false n\u00E5r forslaget bare er et hint (online.com -> online.no).\n    reason      'syntax' | 'tld' | 'provider' | 'typo' | 'near' | ''\n\n  Regel: bare domenet rettes, aldri delen foran @.\n*/\n(function (w) {\n  'use strict';\n\n  // Domener norske kunder faktisk bruker. Treff her er alltid gyldig.\n  var KNOWN = [\n    'gmail.com', 'googlemail.com', 'hotmail.com', 'hotmail.no', 'outlook.com', 'outlook.no',\n    'icloud.com', 'me.com', 'mac.com', 'live.no', 'live.com', 'msn.com',\n    'yahoo.com', 'yahoo.no', 'ymail.com', 'online.no', 'lyse.net', 'getmail.no',\n    'frisurf.no', 'broadpark.no', 'altibox.no', 'telenor.no', 'mail.com', 'gmx.com',\n    'protonmail.com', 'proton.me', 'aol.com', 'hotmail.se', 'hotmail.dk', 'live.se',\n    'live.dk', 'outlook.dk', 'outlook.se', 'hotmail.co.uk', 'live.co.uk', 'yahoo.co.uk'\n  ];\n\n  // Leverand\u00F8rer som bare finnes p\u00E5 disse domenene. gmail.co, gmail.no og\n  // icloud.no er alltid feil.\n  var SINGLE = { gmail: 'gmail.com', googlemail: 'googlemail.com', icloud: 'icloud.com' };\n\n  // Store leverand\u00F8rer der et nesten-treff (gmial.com, hotnail.com) sperres.\n  // For mindre domener (online.no, lyse.net) blir det bare et hint.\n  var STRICT = { 'gmail.com': 1, 'hotmail.com': 1, 'hotmail.no': 1, 'outlook.com': 1, 'icloud.com': 1, 'live.no': 1, 'yahoo.com': 1 };\n\n  // Ekte domener som ligger tett p\u00E5 en stor leverand\u00F8r. Aldri rett disse.\n  var REAL_NEAR = { 'mail.com': 1, 'gmx.com': 1, 'cloud.com': 1, 'online.com': 1, 'live.nl': 1, 'hotmail.fr': 1, 'hotmail.de': 1, 'hotmail.it': 1, 'hotmail.es': 1, 'outlook.fr': 1, 'outlook.de': 1, 'yahoo.fr': 1, 'yahoo.de': 1, 'yahoo.se': 1, 'yahoo.dk': 1, 'live.fr': 1, 'live.de': 1, 'me.com': 1, 'mac.com': 1, 'msn.com': 1, 'aol.com': 1,\n    'email.com': 1, 'hotmail.fi': 1, 'hotmail.nl': 1, 'hotmail.ch': 1, 'hotmail.at': 1, 'hotmail.ca': 1, 'hotmail.gr': 1, 'hotmail.cl': 1, 'outlook.cl': 1, 'live.cl': 1, 'live.nl': 1 };\n\n  // Ekte toppdomener som begynner p\u00E5 com. Aldri rett disse til .com.\n  var REAL_TLD = { comcast: 1, commbank: 1, community: 1, company: 1, compare: 1, computer: 1, comsec: 1 };\n\n  // Toppdomener som ikke finnes, med riktig variant.\n  var TLD_FIX = {\n    con: 'com', cpm: 'com', vom: 'com', xom: 'com', cim: 'com', clm: 'com', cmo: 'com',\n    ocm: 'com', ccom: 'com', comm: 'com', coml: 'com', comk: 'com', comg: 'com',\n    coma: 'com', comde: 'com', comn: 'com', comcom: 'com', cin: 'com', col: 'com',\n    nos: 'no', noa: 'no', 'n0': 'no', nov: 'no', noo: 'no', nor: 'no', nog: 'no'\n  };\n\n  // Optimal string alignment (Damerau-Levenshtein uten gjentatte bytter).\n  function distance(a, b) {\n    var la = a.length, lb = b.length, i, j, d = [];\n    if (Math.abs(la - lb) > 2) return 3;\n    for (i = 0; i <= la; i++) { d[i] = [i]; }\n    for (j = 0; j <= lb; j++) { d[0][j] = j; }\n    for (i = 1; i <= la; i++) {\n      for (j = 1; j <= lb; j++) {\n        var cost = a.charAt(i - 1) === b.charAt(j - 1) ? 0 : 1;\n        var v = Math.min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + cost);\n        if (i > 1 && j > 1 && a.charAt(i - 1) === b.charAt(j - 2) && a.charAt(i - 2) === b.charAt(j - 1)) {\n          v = Math.min(v, d[i - 2][j - 2] + cost);\n        }\n        d[i][j] = v;\n      }\n    }\n    return d[la][lb];\n  }\n\n  function nearestKnown(domain) {\n    var best = '', bestD = 3, i, dd;\n    for (i = 0; i < KNOWN.length; i++) {\n      dd = distance(domain, KNOWN[i]);\n      if (dd < bestD) { bestD = dd; best = KNOWN[i]; }\n    }\n    return { domain: best, d: bestD };\n  }\n\n  function result(valid, email, suggestion, block, reason) {\n    return { valid: valid, email: email, suggestion: suggestion || '', block: !!block, reason: reason || '' };\n  }\n\n  function check(value) {\n    var raw = String(value == null ? '' : value).trim();\n    var at = raw.lastIndexOf('@');\n    if (at < 1 || raw.indexOf(' ') !== -1 || raw.indexOf('@') !== at) return result(false, raw, '', true, 'syntax');\n    var local = raw.slice(0, at);\n    var domain = raw.slice(at + 1).toLowerCase().replace(/\\.+$/, '');\n    var email = local + '@' + domain;\n    var labels = domain.split('.');\n    if (labels.length < 2 || labels.some(function (l) { return !l; })) return result(false, email, '', true, 'syntax');\n\n    if (KNOWN.indexOf(domain) !== -1) return result(true, email, '', false, '');\n\n    var tld = labels[labels.length - 1];\n    var name = labels.slice(0, -1).join('.');\n    var candidate = '';\n\n    // 1. Toppdomenet finnes ikke (gmail.con, live.n0, hotmail.com45).\n    var fixedTld = TLD_FIX[tld] || (/^com[a-z0-9]+$/.test(tld) && !REAL_TLD[tld] ? 'com' : '') || (/^\\d+$/.test(tld) || /\\d/.test(tld) ? tld.replace(/\\d+/g, '') : '');\n    if (fixedTld && fixedTld !== tld) {\n      candidate = name + '.' + fixedTld;\n      if (fixedTld === 'no' || fixedTld === 'com' || KNOWN.indexOf(candidate) !== -1) {\n        // Ett steg til: gmial.con -> gmail.com.\n        if (KNOWN.indexOf(candidate) === -1) {\n          var n2 = nearestKnown(candidate);\n          if (n2.d <= 1 && !REAL_NEAR[candidate]) candidate = n2.domain;\n        }\n        return result(true, email, local + '@' + candidate, true, 'tld');\n      }\n    }\n    if (!/^[a-z]{2,24}$/.test(tld)) return result(false, email, '', true, 'syntax');\n\n    // 2. Leverand\u00F8r med feil toppdomene (gmail.co, gmail.no, icloud.no).\n    if (SINGLE[name] && domain !== SINGLE[name]) return result(true, email, local + '@' + SINGLE[name], true, 'provider');\n    if ((name === 'hotmail' || name === 'outlook' || name === 'live') && (tld === 'co' || tld === 'cm' || tld === 'om')) {\n      return result(true, email, local + '@' + name + '.com', true, 'provider');\n    }\n\n    // 3. Nesten-treff p\u00E5 et kjent domene (gmial.com, hotnail.com, onlin.no).\n    if (REAL_NEAR[domain]) return result(true, email, '', false, '');\n    var near = nearestKnown(domain);\n    // \u00C9n bokstav unna: forslag (sperre for store leverand\u00F8rer). To bokstaver\n    // unna: bare for store leverand\u00F8rer og lange domener, ellers treffer vi\n    // ekte norske domener som eie.no og lifi.no.\n    var bigTwo = near.d === 2 && STRICT[near.domain] && domain.length >= 9;\n    if (near.domain && (near.d === 1 || bigTwo)) {\n      var strict = !!STRICT[near.domain];\n      return result(true, email, local + '@' + near.domain, strict, strict ? 'typo' : 'near');\n    }\n\n    return result(true, email, '', false, '');\n  }\n\n  w.LaleyEmailCheck = { check: check, distance: distance };\n})(window);\n"],
  "mappings": "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",
  "names": []
}
