{"version":3,"sources":["polyfill.js","accordion.js","dropdown.js","main.js","menu.js","price.script.js","service-worker-registration.js"],"names":["checkFetchStatus","response","status","json","t","this","element","e","RegExp","n","i","length","call","prototype","add","arguments","contains","className","remove","replace","toggle","test","Element","Object","defineProperty","get","window","DOMTokenList","closest","s","matches","document","ownerDocument","querySelectorAll","el","item","parentElement","self","fetch","Promise","a","ok","r","statusText","url","responseURL","text","resolve","responseText","JSON","parse","blob","Blob","clone","headers","keys","o","entries","u","toLowerCase","has","c","XMLHttpRequest","open","method","onload","getAllResponseHeaders","push","onerror","withCredentials","credentials","setRequestHeader","send","body","accordionActiveClass","accordionToggleCollection","accordionToggle","addEventListener","accordionWrap","accordion","classList","_iterator","_step","done","_loop","activeClass","dropdownCollection","dropdownToggle","event","target","querySelector","innerHTML","Date","getFullYear","getElementById","getElementsByTagName","loc","location","href","insertAdjacentHTML","resizeTimer","price_rr","menuToggle","onclick","preventDefault","submenuToggle","offsetWidth","offsetHeight","hideMenu","readCookie","name","nameEQ","escape","ca","cookie","split","charAt","substring","indexOf","unescape","setLGRCookie","value","days","expires","domain","date","setTime","getTime","toGMTString","hostname","reverse","security","setCrossCookie","getQueryString","results","exec","decodeURIComponent","updateQueryStringParameter","uri","key","re","separator","match","clearTimeout","setTimeout","apiUrl","price_pids","default_pids_replaced_during_build","price_pkgids","default_pkgids_replaced_during_build","default_host","default_lgr_attributes","default_lgr_attributes_replaced_during_build","price_default_lgr","price_query_lgr","price_query_rr","price_lgr","lgrx_cookie","replaceLGA","useDefaultLGR","jsonUrl","lgaItems","_toConsumableArray","getElementsByClassName","applyLGA","data","lgaList","_objectSpread","sessionStorage","setItem","stringify","forEach","lgaItem","string","lgrString","lgaItemHTML","replaceWith","pattern","includes","concat","sessionLGAs","getItem","LinkGeneratorGuid","then","catch","err","modifyRegUrl","real_lgr","regLink","productApi","pids","callback","toString","productApiDefault","packageApi","pkgids","packageApiDefault","chunkArray","myArray","size","index","slice","displayPrice","showPrice","pid","priceDisplay","price_per_unit","amount","priceDollars","display_dollars","priceCents","display_cents","origPrice","Math","round","toFixed","id","Array","isArray","displayPackagePrice","pkgid","_pkgid$package_produc3","discountAmount","abs","_pkgid$package_produc","package_products","_pkgid$package_produc2","filter","addPriceToSession","pkgflag","discount","_data$package_product","_data$package_product2","_data$package_product3","product_price","lgr","getProductPrice","current_pids","undefined","getPackagePrice","pricingInit","pidData","pkgidData","navigator","serviceWorker","register","reg","onupdatefound","installingWorker","installing","onstatechange","state","controller"],"mappings":"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","file":"main.min.js","sourcesContent":["// Source: https://gist.github.com/k-gun/c2ea7c49edf7b757fe9561ba37cb19ca\r\n// .classList() Polyfill for older browser - IE9 again...\r\n!function(){function t(t){this.element=t}var e=function(t){return RegExp(\"(^| )\"+t+\"( |$)\")},n=function(t,e,n){for(var i=0;i<t.length;i++)e.call(n,t[i])}\r\nt.prototype={add:function(){n(arguments,function(t){this.contains(t)||(this.element.className+=\" \"+t)},this)},remove:function(){n(arguments,function(t){this.element.className=this.element.className.replace(e(t),\"\")},this)},toggle:function(t){return this.contains(t)?(this.remove(t),!1):(this.add(t),!0)},contains:function(t){return e(t).test(this.element.className)},replace:function(t,e){this.remove(t),this.add(e)}},\"classList\"in Element.prototype||Object.defineProperty(Element.prototype,\"classList\",{get:function(){return new t(this)}}),window.DOMTokenList&&null==DOMTokenList.prototype.replace&&(DOMTokenList.prototype.replace=t.prototype.replace)}()\r\n\r\n// .closest() Polyfill for browsers that supports document.querySelectorAll() - IE9 again...\r\nif (window.Element && !Element.prototype.closest) {\r\n  Element.prototype.closest =\r\n  function(s) {\r\n    var matches = (this.document || this.ownerDocument).querySelectorAll(s),\r\n      i,\r\n      el = this;\r\n    do {\r\n      i = matches.length;\r\n      while (--i >= 0 && matches.item(i) !== el) {};\r\n    } while ((i < 0) && (el = el.parentElement));\r\n    return el;\r\n  }\r\n}\r\n\r\n// fetch polyfill for older browser, the minimum needed\r\nself.fetch||(self.fetch=function(e,n){return n=n||{},new Promise(function(t,s){var r=new XMLHttpRequest,o=[],u=[],i={},a=function(){return{ok:2==(r.status/100|0),statusText:r.statusText,status:r.status,url:r.responseURL,text:function(){return Promise.resolve(r.responseText)},json:function(){return Promise.resolve(JSON.parse(r.responseText))},blob:function(){return Promise.resolve(new Blob([r.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return u},get:function(e){return i[e.toLowerCase()]},has:function(e){return e.toLowerCase()in i}}}};for(var c in r.open(n.method||\"get\",e,!0),r.onload=function(){r.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm,function(e,n,t){o.push(n=n.toLowerCase()),u.push([n,t]),i[n]=i[n]?i[n]+\",\"+t:t}),t(a())},r.onerror=s,r.withCredentials=\"include\"==n.credentials,n.headers)r.setRequestHeader(c,n.headers[c]);r.send(n.body||null)})});\r\n// to check for fetch response...\r\nfunction checkFetchStatus(response) {\r\n  if (response.status !== 200) {\r\n    console.log('Looks like there was a problem. Status Code: ' + response.status);\r\n    return;\r\n  }\r\n  return response.json()\r\n}\r\n","/* requires:\r\npolyfill.js\r\n*/\r\n\r\n// accordion Toggle\r\nconst accordionActiveClass = \"is-open\";\r\nconst accordionToggleCollection = document.querySelectorAll(\".accordion .accordion-toggle\");\r\nfor (let accordionToggle of accordionToggleCollection) {\r\n  accordionToggle.addEventListener('click', function() {\r\n    const accordionWrap = accordionToggle.closest(\".accordion-wrap\");\r\n    const accordion = accordionToggle.closest(\".accordion\");\r\n    if ( !accordion.classList.contains(accordionActiveClass) ) {\r\n      var el = accordionWrap.querySelectorAll(\".accordion\");\r\n      var i; for (i = 0; i < el.length; i++) {\r\n        el[i].classList.remove(accordionActiveClass)\r\n      }\r\n      accordion.classList.toggle(accordionActiveClass)\r\n    } else\r\n    if ( accordion.classList.contains(accordionActiveClass) ) {\r\n      accordion.classList.remove(accordionActiveClass)\r\n    }\r\n  })\r\n}\r\n\r\n","/* requires:\r\npolyfill.js\r\n*/\r\n\r\n// Dropdown Select Toggle\r\nconst activeClass = \"is-active\";\r\nconst dropdownCollection = document.querySelectorAll(\".dropdown-list span.dropdown\");\r\nfor (let dropdownToggle of dropdownCollection) {\r\n  dropdownToggle.addEventListener('click', function() {\r\n    //console.log(dropdownToggle.classList);\r\n    if ( !dropdownToggle.classList.contains(activeClass) ) {\r\n      var el = document.querySelectorAll(\".dropdown-list span.dropdown\");\r\n      var i; for (i = 0; i < el.length; i++) {\r\n        el[i].classList.remove(activeClass);\r\n      }\r\n      dropdownToggle.classList.toggle(activeClass);\r\n    } else\r\n    if ( dropdownToggle.classList.contains(activeClass) ) {\r\n      dropdownToggle.classList.remove(activeClass);\r\n    }\r\n  })\r\n}\r\n\r\ndocument.addEventListener('click', function(e) {\r\n  // Dropdown Select Toggle\r\n  var el = document.querySelectorAll(\".dropdown-list span.dropdown\")\r\n  var e=e? e : window.event;\r\n  var eventElement=e.target;\r\n  if (!eventElement.closest(\".dropdown-list\")){\r\n    //console.log(event_element.closest(\".dropdown-list\"));\r\n    var i; for (i = 0; i < el.length; i++) {\r\n      el[i].classList.remove(activeClass);\r\n    }\r\n  }\r\n}, false);\r\n","/* requires:\r\npolyfill.js\r\n*/\r\n\r\n// display the current year in the footer\r\ndocument.querySelector(\".footer-year\").innerHTML = new Date().getFullYear();","/* requires:\r\npolyfill.js\r\n*/\r\n\r\n// for active menu highlighting\r\n(function(){\r\n  const a = document.getElementById('nav').getElementsByTagName(\"a\");\r\n  // let loc;\r\n  // if (window.location.href.substr(location.href.length - 1, 1) == '/') {\r\n  //   loc = window.location.href + 'index.html';\r\n  // } else {\r\n  //   loc = window.location.href;\r\n  // }\r\n  let loc = window.location.href;\r\n  for(var i=0; i < a.length; i++) {\r\n    if (a[i].href == loc) {\r\n      a[i].classList.add('is-active');\r\n    }\r\n  }\r\n})();\r\n\r\ndocument.getElementById('nav').querySelector('ul').insertAdjacentHTML(\"beforebegin\", \"<span id='menutoggle'><span>Menu</span></span>\");\r\nconst menuToggle = document.getElementById(\"menutoggle\");\r\nconst activeClass = \"is-active\"\r\n\r\nmenuToggle.onclick = function(event) {\r\n  menuToggle.classList.toggle(activeClass);\r\n  //menuToggle.nextSibling.classList.toggle(activeClass);\r\n  var el = document.querySelectorAll(\"#nav span.submenu, #nav a.submenu, #nav ul.submenu\");\r\n  var i; for (i = 0; i < el.length; i++) {\r\n    el[i].classList.remove(activeClass);\r\n  }\r\n  event.preventDefault();\r\n};\r\n\r\nfor (let submenuToggle of document.querySelectorAll(\"#nav span.submenu, #nav a.submenu\")) {\r\n  submenuToggle.addEventListener('click', function() {\r\n    if ( menuToggle.offsetWidth > 0 && menuToggle.offsetHeight > 0 ) { // if the #menuToggle is visible\r\n      submenuToggle.classList.toggle(activeClass);\r\n    }\r\n  })\r\n}\r\n\r\nfunction hideMenu() {\r\n  var el = document.querySelectorAll(\"#menutoggle, #menutoggle + ul, #nav span.submenu, #nav a.submenu, #nav ul.submenu\");\r\n  var i; for (i = 0; i < el.length; i++) {\r\n    el[i].classList.remove(activeClass);\r\n  }\r\n}\r\n\r\ndocument.addEventListener('click', function(e) {\r\n  if ( menuToggle.offsetWidth > 0 && menuToggle.offsetHeight > 0 ) { // if the #menuToggle is visible\r\n    var e=e? e : window.event;\r\n    var eventElement=e.target;\r\n    if (!eventElement.closest(\"#nav\")){\r\n      //console.log(event_element.closest(\"#nav\"));\r\n      if (menuToggle.classList.contains(activeClass)) {\r\n        hideMenu();\r\n      }\r\n    }\r\n  }\r\n}, false);\r\n\r\nvar resizeTimer;\r\nwindow.addEventListener(\"resize\", function () {\r\n  clearTimeout(resizeTimer);\r\n  resizeTimer = setTimeout(function() {\r\n    if ( menuToggle.offsetWidth <= 0 && menuToggle.offsetHeight <=  0 ) { // if the #menuToggle is hidden\r\n      hideMenu();\r\n    }\r\n  }, 250);\r\n}, false);\r\n","/* requires:\r\npolyfill.js\r\n*/\r\n\r\nfunction readCookie(name) {\r\n  let nameEQ = escape(name) + \"=\";\r\n  let ca = document.cookie.split(';');\r\n  for (let i = 0; i < ca.length; i++) {\r\n    let c = ca[i];\r\n    while (c.charAt(0) == ' ') c = c.substring(1, c.length);\r\n    if (c.indexOf(nameEQ) == 0) return unescape(c.substring(nameEQ.length, c.length));\r\n  }\r\n  return null;\r\n}\r\nfunction setLGRCookie(name, value, days) {\r\n  let expires = \"\";\r\n  if (days) {\r\n    let date = new Date();\r\n    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\r\n    expires = \"; expires=\" + date.toGMTString();\r\n  }\r\n  const domain = location.hostname == \"localhost\" ? \"\" : \";domain=.\" + location.hostname.split('.').reverse()[1] + \".\" + location.hostname.split('.').reverse()[0];\r\n  const security = location.hostname == \"localhost\" ? \"\" : \";SameSite=None; Secure\";\r\n  document.cookie = name + \"=\" + value + expires + \";path=/\" + domain + security;\r\n}\r\nfunction setCrossCookie(name, value, days) {\r\n  let expires = \"\";\r\n  if (days) {\r\n    let date = new Date();\r\n    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\r\n    expires = \"; expires=\" + date.toGMTString();\r\n  }\r\n  const domain = location.hostname == \"localhost\" ? \"\" : \";domain=.\" + location.hostname.split('.').reverse()[1] + \".\" + location.hostname.split('.').reverse()[0];\r\n  const security = location.hostname == \"localhost\" ? \"\" : \";SameSite=None; Secure\";\r\n  document.cookie = name + \"=\" + value + expires + \";path=/\" + domain + security;\r\n}\r\nfunction getQueryString(name, url) {\r\n  if (!url) url = window.location.href;\r\n  name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\r\n  let regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\r\n      results = regex.exec(url);\r\n  if (!results) return null;\r\n  if (!results[2]) return '';\r\n  return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n}\r\nfunction updateQueryStringParameter(uri, key, value) {\r\n  let re = new RegExp(\"([?&])\" + key + \"=.*?(&|$)\", \"i\");\r\n  let separator = uri.indexOf('?') !== -1 ? \"&\" : \"?\";\r\n  if (uri.match(re)) {\r\n    return uri.replace(re, '$1' + key + \"=\" + value + '$2');\r\n  } else {\r\n    return uri + separator + key + \"=\" + value;\r\n  }\r\n}\r\n\r\nlet price_lgr,\r\n    price_rr;\r\n\r\nlet apiUrl = \"apiURL_product_replaced_during_build\", // this will be dynamically replaced by the build\r\n    price_pids = default_pids_replaced_during_build, // this will be dynamically replaced by the build\r\n    price_pkgids = default_pkgids_replaced_during_build, // this will be dynamically replaced by the build\r\n    default_host = \"default_host_replaced_during_build\", // this will be dynamically replaced by the build\r\n    default_lgr_attributes = default_lgr_attributes_replaced_during_build || {}, // this will be dynamically replaced by the build\r\n    price_default_lgr = \"default_lgr_replaced_during_build\", // this will be dynamically replaced by the build\r\n    price_query_lgr = getQueryString(\"lgr\", window.location.href),\r\n    price_query_rr = getQueryString(\"rr\", window.location.href);\r\n\r\nif (price_query_lgr !== null && price_query_lgr !== \"\") {\r\n  setLGRCookie('lgr', price_query_lgr.toLowerCase(), 60);\r\n  price_lgr = readCookie(\"lgr\");\r\n  // console.log(1);\r\n} else if (readCookie(\"lgr\") !== null && readCookie(\"lgr\") !== \"\") {\r\n  price_lgr = readCookie(\"lgr\");\r\n  // console.log(2);\r\n} else {\r\n  setLGRCookie(\"lgr\", price_default_lgr.toLowerCase(), 60);\r\n  price_lgr = readCookie(\"lgr\");\r\n  // console.log(3);\r\n}\r\n\r\n// setting the cross-domain lgrx cookie for reg3 enhancement\r\nconst lgrx_cookie = readCookie('lgr') !== null ? (readCookie('lgr')).toLowerCase() : null;\r\nif (lgrx_cookie !== null) {\r\n  setCrossCookie('lgrx', lgrx_cookie, 60);\r\n}\r\n\r\nif (price_query_rr !== null && price_query_rr !== \"\") {\r\n  setLGRCookie('rr', price_query_rr, 60);\r\n  price_rr = readCookie(\"rr\");\r\n} else if (readCookie(\"rr\") != null && readCookie(\"rr\") != \"\") {\r\n  price_rr = readCookie(\"rr\");\r\n}\r\n\r\n// applying the LGR replacement strings\r\nfunction replaceLGA(useDefaultLGR) {\r\n  // const jsonUrl = \"https://mlapi.amersc.com/product/api/v2.0/linkgeneratorattributes/7517bb61-d11a-4620-a579-39fbbf8911ca\";\r\n  let jsonUrl;\r\n  if (useDefaultLGR) {\r\n    jsonUrl = apiUrl +'linkgeneratorattributes/'+ price_default_lgr;\r\n  }\r\n  else {\r\n    jsonUrl = apiUrl +'linkgeneratorattributes/'+ price_lgr;\r\n  }\r\n  const lgaItems = [...document.getElementsByClassName(\"lga-item\")]\r\n  function applyLGA(data) {\r\n    const lgaList = {...default_lgr_attributes, ...data};\r\n    sessionStorage.setItem(\"LGAs\", JSON.stringify(lgaList));\r\n    function replaceLGAString(string, lgrString, replaceWith) {\r\n      const pattern = new RegExp('\\\\$\\\\$' + lgrString + '\\\\$\\\\$', 'g');\r\n      const newInnerHTML = string.replace(pattern, replaceWith);\r\n      return newInnerHTML;\r\n    }\r\n    for (const key in lgaList) {\r\n      if (lgaList[key] !== \"\") {\r\n        lgaItems.forEach(lgaItem => {\r\n          const lgaItemHTML = lgaItem.innerHTML;\r\n          let value = lgaList[key].replace(/\\+/g, \"%20\")\r\n          lgaItem.innerHTML = replaceLGAString(lgaItemHTML, key, decodeURIComponent(value));\r\n          if (lgaItemHTML.includes(`$${key}$$`)) {\r\n            lgaItem.classList.add(\"lga-replaced\");\r\n          }\r\n        });\r\n      }\r\n    }\r\n  }\r\n  const sessionLGAs = sessionStorage.getItem(\"LGAs\") ? JSON.parse(sessionStorage.getItem(\"LGAs\")) : null;\r\n  if (sessionLGAs && sessionLGAs.LinkGeneratorGuid.toLowerCase() == price_lgr) {\r\n    applyLGA(sessionLGAs);\r\n  }\r\n  else {\r\n    fetch(jsonUrl).then(checkFetchStatus)\r\n      .then(data => {\r\n        applyLGA(data);\r\n      })\r\n      .catch(function(err) {\r\n        replaceLGA(true)\r\n      });\r\n  }\r\n}\r\nreplaceLGA();\r\n\r\n// appending LGR and RR query string in the registration URL\r\nfunction modifyRegUrl(real_lgr) {\r\n  const regLinks = [...document.querySelectorAll(\"a[href*='/registration/']\")]\r\n  regLinks.forEach(regLink => {\r\n    let price_lgr = real_lgr || readCookie(\"lgr\");\r\n    let href = regLink.href;\r\n    if (getQueryString(\"lgr\", href) != null) {\r\n      href = href;\r\n    }\r\n    else {\r\n      href = href + \"&lgr=\" + price_lgr;\r\n    }\r\n    if (price_rr && getQueryString(\"rr\", href) != null) {\r\n      href = href;\r\n    }\r\n    else if (price_rr && getQueryString(\"rr\", href) == null) {\r\n      href = href + \"&rr=\" + price_rr;\r\n    }\r\n    regLink.href = href\r\n    // console.log(href)\r\n  });\r\n}\r\n\r\nfunction productApi(pids, callback) {\r\n  let jsonUrl;\r\n  if (pids.length === 1) {\r\n    jsonUrl = apiUrl +'product/'+ pids.toString() +'/'+ price_lgr + '/'+ default_host + '/' + \"?includeRelated=false\"; // using API endpoint for multiple PIDs\r\n  }\r\n  else {\r\n    jsonUrl = apiUrl +'products/'+ pids.toString() +'/'+ price_lgr + '/'+ default_host + '/' + \"?includeRelated=false\"; // using API endpoint for multiple PIDs\r\n  }\r\n  fetch(jsonUrl).then(checkFetchStatus)\r\n    .then(data => {\r\n      callback(data);\r\n    })\r\n    .catch(function(err) {\r\n      productApiDefault(pids, callback)\r\n    });\r\n}\r\nfunction productApiDefault(pids, callback) {\r\n  let jsonUrl;\r\n  if (pids.length === 1) {\r\n    jsonUrl = apiUrl +'product/'+ pids.toString() +'/'+ price_default_lgr + '/'+ default_host + '/' + \"?includeRelated=false\"; // using API endpoint for multiple PIDs\r\n  }\r\n  else {\r\n    jsonUrl = apiUrl +'products/'+ pids.toString() +'/'+ price_default_lgr + '/'+ default_host + '/' + \"?includeRelated=false\"; // using API endpoint for multiple PIDs\r\n  }\r\n  fetch(jsonUrl).then(checkFetchStatus)\r\n    .then(data => {\r\n      callback(data);\r\n    });\r\n}\r\n\r\nfunction packageApi(pkgids, callback) {\r\n  const jsonUrl = apiUrl +'package/'+ pkgids.toString() + '/' + default_host + '/' + price_lgr + '/' + \"?includeRelated=false\";\r\n  fetch(jsonUrl).then(checkFetchStatus)\r\n    .then(data => {\r\n      callback(data);\r\n    })\r\n    .catch(function(err) {\r\n      packageApiDefault(pkgids, callback)\r\n    });\r\n}\r\nfunction packageApiDefault(pkgids, callback) {\r\n  const jsonUrl = apiUrl +'package/'+ pkgids.toString() + '/' + default_host + '/' + price_default_lgr + '/' + \"?includeRelated=false\";\r\n  fetch(jsonUrl).then(checkFetchStatus)\r\n    .then(data => {\r\n      callback(data);\r\n    });\r\n}\r\n\r\nfunction chunkArray(myArray, size){\r\n  let results = [],\r\n      index = 0;\r\n  while (index < myArray.length) {\r\n    results.push(myArray.slice(index, size + index));\r\n    index += size;\r\n  }\r\n  return results;\r\n}\r\n\r\nfunction displayPrice(data) {\r\n  //console.log(data)\r\n  function showPrice(pid) {\r\n    const priceDisplay = pid.price_per_unit.amount;\r\n    const priceDollars = pid.price_per_unit.display_dollars;\r\n    const priceCents = pid.price_per_unit.display_cents;\r\n    const origPrice = Math.round((priceDisplay + (priceDisplay * .2)).toFixed(0) / 5) * 5; // adding 20% to current price for display\r\n    [...document.getElementsByClassName(\"dollars pid-\" + pid.id)].forEach(item => item.innerHTML = priceDollars);\r\n    [...document.getElementsByClassName(\"cents pid-\" + pid.id)].forEach(item => priceCents !== \"00\" ? item.innerHTML = priceCents : item.classList.add(\"display-none\"));\r\n    [...document.getElementsByClassName(\"fullprice pid-\" + pid.id)].forEach(item => item.innerHTML = priceDisplay);\r\n    [...document.getElementsByClassName(\"origprice pid-\" + pid.id)].forEach(item => item.innerHTML = origPrice);\r\n    [...document.getElementsByClassName(\"dollars pid-\" + pid.id)].forEach(item => item.closest(\".price\").classList.add(\"shown\"));\r\n  }\r\n  if (Array.isArray(data)) {\r\n    data.forEach(pid => showPrice(pid, false))\r\n  }\r\n  else {\r\n    if (data.price_per_unit != null){\r\n      showPrice(data);\r\n    }\r\n  }\r\n}\r\nfunction displayPackagePrice(pkgid) {\r\n  // console.log(pkgid)\r\n  if (pkgid.price_per_unit != null){\r\n    const priceDisplay = pkgid.price_per_unit.amount;\r\n    const priceDollars = pkgid.price_per_unit.display_dollars;\r\n    const priceCents = pkgid.price_per_unit.display_cents;\r\n    const origPrice = Math.round((priceDisplay + (priceDisplay * .2)).toFixed(0) / 5) * 5; // adding 20% to current price for display\r\n    const discountAmount = Math.abs(pkgid.package_products?.filter(item => item.id === 1324)[0]?.price_per_unit?.amount || 0).toFixed(2);\r\n    [...document.getElementsByClassName(\"dollars pkgid-\" + pkgid.id)].forEach(item => item.innerHTML = priceDollars);\r\n    [...document.getElementsByClassName(\"cents pkgid-\" + pkgid.id)].forEach(item => priceCents !== \"00\" ? item.innerHTML = priceCents : item.classList.add(\"display-none\"));\r\n    [...document.getElementsByClassName(\"fullprice pkgid-\" + pkgid.id)].forEach(item => item.innerHTML = priceDisplay);\r\n    [...document.getElementsByClassName(\"origprice pkgid-\" + pkgid.id)].forEach(item => item.innerHTML = origPrice);\r\n    [...document.getElementsByClassName(\"dollars pkgid-\" + pkgid.id)].forEach(item => item.closest(\".price\").classList.add(\"shown\"));\r\n    [...document.getElementsByClassName(\"savings-amount pkgid-\" + pkgid.id)].forEach(item => item.innerHTML = `$${discountAmount}`);\r\n  }\r\n}\r\n\r\nfunction addPriceToSession(data, pkgflag) {\r\n  const discount = (data.package_products?.filter(item => item.id === 1324)[0]?.price_per_unit?.amount || 0) * -1;\r\n  const product_price = {\r\n        id: data.id,\r\n        amount: data.price_per_unit.amount,\r\n        display_dollars: data.price_per_unit.display_dollars,\r\n        display_cents: data.price_per_unit.display_cents,\r\n        discount: discount.toFixed(2),\r\n        lgr: data.lgr\r\n  };\r\n  const prefix = pkgflag ? 'pkgid_' : 'pid_';\r\n  sessionStorage.setItem(prefix + data.id, JSON.stringify(product_price))\r\n}\r\n\r\nfunction getProductPrice(pids) {\r\n  const chunk_pids = chunkArray(pids, 30);\r\n  chunk_pids.forEach(current_pids => {\r\n    productApi(current_pids, function(data){\r\n      // console.log(current_pids.length)\r\n      if (data !== undefined && current_pids.length > 1) {\r\n        data.forEach(data => addPriceToSession(data))\r\n        sessionStorage.setItem('asc_pricing', true);\r\n        displayPrice(data);\r\n      }\r\n      else if (data !== undefined && current_pids.length === 1) {\r\n        addPriceToSession(data);\r\n        sessionStorage.setItem('asc_pricing', true);\r\n        displayPrice(data);\r\n      }\r\n      else {\r\n        console.log(\"API is down or something else is going on...\");\r\n      }\r\n    });\r\n  })\r\n}\r\n\r\nfunction getPackagePrice(pkgids) {\r\n  pkgids.forEach(pkgid => {\r\n    packageApi(pkgid, function(data){\r\n      //console.log(data);\r\n      if (data !== undefined) {\r\n        if (data.price_per_unit != null){\r\n          addPriceToSession(data, true);\r\n        }\r\n        sessionStorage.setItem('asc_pricing', true);\r\n        displayPackagePrice(data);\r\n      }\r\n      else {\r\n        console.log(\"API is down or something else is going on...\");\r\n      }\r\n    })\r\n  })\r\n}\r\n\r\n// creating init funtion in case pricing needs to be called independently from DOM ready\r\nfunction pricingInit() {\r\n  if (sessionStorage.getItem('asc_pricing')) {\r\n    price_pids.forEach(pid => {\r\n      if (sessionStorage.getItem('pid_'+pid)) {\r\n        const pidData = JSON.parse(sessionStorage.getItem('pid_' + pid))\r\n        const priceDisplay = pidData.amount;\r\n        const priceDollars = pidData.display_dollars;\r\n        const priceCents = pidData.display_cents;\r\n        const origPrice = Math.round((priceDisplay + (priceDisplay * .2)).toFixed(0) / 5) * 5; // adding 20% to current price for display\r\n        [...document.getElementsByClassName(\"dollars pid-\" + pid)].forEach(item => item.innerHTML = priceDollars);\r\n        [...document.getElementsByClassName(\"cents pid-\" + pid)].forEach(item => priceCents !== \"00\" ? item.innerHTML = priceCents : item.classList.add(\"display-none\"));\r\n        [...document.getElementsByClassName(\"fullprice pid-\" + pid)].forEach(item => item.innerHTML = priceDisplay);\r\n        [...document.getElementsByClassName(\"origprice pid-\" + pid)].forEach(item => item.innerHTML = origPrice);\r\n        [...document.getElementsByClassName(\"dollars pid-\" + pid)].forEach(item => item.closest(\".price\").classList.add(\"shown\"));\r\n      }\r\n    })\r\n    price_pkgids.forEach(pkgid => {\r\n      if (sessionStorage.getItem('pkgid_'+pkgid)) {\r\n        const pkgidData = JSON.parse(sessionStorage.getItem('pkgid_' + pkgid))\r\n        const priceDisplay = pkgidData.amount;\r\n        const priceDollars = pkgidData.display_dollars;\r\n        const priceCents = pkgidData.display_cents;\r\n        const discountAmount = pkgidData.discount;\r\n        const origPrice = Math.round((priceDisplay + (priceDisplay * .2)).toFixed(0) / 5) * 5; // adding 20% to current price for display\r\n        [...document.getElementsByClassName(\"dollars pkgid-\" + pkgid)].forEach(item => item.innerHTML = priceDollars);\r\n        [...document.getElementsByClassName(\"cents pkgid-\" + pkgid)].forEach(item => priceCents !== \"00\" ? item.innerHTML = priceCents : item.classList.add(\"display-none\"));\r\n        [...document.getElementsByClassName(\"fullprice pkgid-\" + pkgid)].forEach(item => item.innerHTML = priceDisplay);\r\n        [...document.getElementsByClassName(\"origprice pkgid-\" + pkgid)].forEach(item => item.innerHTML = origPrice);\r\n        [...document.getElementsByClassName(\"dollars pkgid-\" + pkgid)].forEach(item => item.closest(\".price\").classList.add(\"shown\"));\r\n        [...document.getElementsByClassName(\"savings-amount pkgid-\" + pkgid)].forEach(item => item.innerHTML = `$${discountAmount}`);\r\n      }\r\n    })\r\n    getProductPrice(price_pids); // this will make sure that the price is being updated from API even if there's stored pricing\r\n    getPackagePrice(price_pkgids); // this will make sure that the price is being updated from API even if there's stored pricing\r\n  } else {\r\n    getProductPrice(price_pids);\r\n    getPackagePrice(price_pkgids);\r\n  }\r\n  modifyRegUrl();\r\n}\r\npricingInit();\r\n","/**\r\n * Copyright 2015 Google Inc. All rights reserved.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *     http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n/* eslint-env browser */\r\n'use strict';\r\n\r\nif ('serviceWorker' in navigator) {\r\n  // Delay registration until after the page has loaded, to ensure that our\r\n  // precaching requests don't degrade the first visit experience.\r\n  // See https://developers.google.com/web/fundamentals/instant-and-offline/service-worker/registration\r\n  window.addEventListener('load', function() {\r\n    // Your service-worker.js *must* be located at the top-level directory relative to your site.\r\n    // It won't be able to control pages unless it's located at the same level or higher than them.\r\n    // *Don't* register service worker file in, e.g., a scripts/ sub-directory!\r\n    // See https://github.com/slightlyoff/ServiceWorker/issues/468\r\n    navigator.serviceWorker.register('/sw.js').then(function(reg) {\r\n      // updatefound is fired if service-worker.js changes.\r\n      reg.onupdatefound = function() {\r\n        // The updatefound event implies that reg.installing is set; see\r\n        // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\r\n        var installingWorker = reg.installing;\r\n\r\n        installingWorker.onstatechange = function() {\r\n          switch (installingWorker.state) {\r\n            case 'installed':\r\n              if (navigator.serviceWorker.controller) {\r\n                // At this point, the old content will have been purged and the fresh content will\r\n                // have been added to the cache.\r\n                // It's the perfect time to display a \"New content is available; please refresh.\"\r\n                // message in the page's interface.\r\n                console.log('New or updated content is available.');\r\n              } else {\r\n                // At this point, everything has been precached.\r\n                // It's the perfect time to display a \"Content is cached for offline use.\" message.\r\n                console.log('Content is now available offline!');\r\n              }\r\n              break;\r\n\r\n            case 'redundant':\r\n              console.error('The installing service worker became redundant.');\r\n              break;\r\n          }\r\n        };\r\n      };\r\n    }).catch(function(e) {\r\n      console.error('Error during service worker registration:', e);\r\n    });\r\n  });\r\n}\r\n"]}