import Script from "next/script"

export default function VWOScript() {
  return (
    <>
      {/* <!-- Start VWO Async SmartCode --> */}
      <link rel="preconnect" href="https://dev.visualwebsiteoptimizer.com" />
      <Script type="text/javascript" id="vwoCode">
        {`
        //DO NOT make any changes to smart code except for entering your account id
        window._vwo_code ||
          (function () {
            var account_id = 373511,
              version = 2.0,
              settings_tolerance = 2000,
              hide_element = "body",
              hide_element_style =
                "opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important",
              /* DO NOT EDIT BELOW THIS LINE */
              f = false,
              w = window,
              d = document,
              v = d.querySelector("#vwoCode"),
              cK = "_vwo_" + account_id + "_settings",
              cc = {};
            try {
              var c = JSON.parse(
                localStorage.getItem("_vwo_" + account_id + "_config")
              );
              cc = c && typeof c === "object" ? c : {};
            } catch (e) {}
            var stT = cc.stT === "session" ? w.sessionStorage : w.localStorage;
            code = {
              use_existing_jquery: function () {
                return typeof use_existing_jquery !== "undefined"
                  ? use_existing_jquery
                  : undefined;
              },
              library_tolerance: function () {
                return typeof library_tolerance !== "undefined"
                  ? library_tolerance
                  : undefined;
              },
              settings_tolerance: function () {
                return cc.sT || settings_tolerance;
              },
              hide_element_style: function () {
                return "{" + (cc.hES || hide_element_style) + "}";
              },
              hide_element: function () {
                return typeof cc.hE === "string" ? cc.hE : hide_element;
              },
              getVersion: function () {
                return version;
              },
              finish: function () {
                if (!f) {
                  f = true;
                  var a = d.getElementById("_vis_opt_path_hides");
                  if (a) a.parentNode.removeChild(a);
                }
              },
              finished: function () {
                return f;
              },
              load: function (a) {
                var s = this.getSettings(),
                  b = d.createElement("script"),
                  t = this;
                if (s) {
                  b.textContent = s;
                  d.getElementsByTagName("head")[0].appendChild(b);
                  if (!w.VWO || VWO.caE) {
                    stT.removeItem(cK);
                    t.load(a);
                  }
                } else {
                  b.fetchPriority = "high";
                  b.src = a;
                  b.type = "text/javascript";
                  b.onerror = function () {
                    window._vwo_code.finish();
                  };
                  d.getElementsByTagName("head")[0].appendChild(b);
                }
              },
              getSettings: function () {
                try {
                  var i = stT.getItem(cK);
                  if (!i) {
                    return;
                  }
                  i = JSON.parse(i);
                  if (Date.now() > i.e) {
                    stT.removeItem(cK);
                    return;
                  }
                  return i.s;
                } catch (e) {
                  return;
                }
              },
      
              init: function () {
                if (d.URL.indexOf("__vwo_disable__") > -1) return;
                var sT = this.settings_tolerance();
                w._vwo_settings_timer = setTimeout(function () {
                  window._vwo_code.finish();
                  stT.removeItem(cK);
                  window._vwo_code.removeLoaderAndOverlay();
                }, sT);
                var filterConfig = this.filterConfig;
                if (!filterConfig || filterConfig.filterTime === "balanced") {
                  var cS = d.currentScript,
                    a = d.createElement("style"),
                    hE = this.hide_element(),
                    b =
                      cS && !cS.async && hE
                        ? hE + "{" + this.hide_element_style() + "}"
                        : "",
                    h = d.getElementsByTagName("head")[0];
                  a.setAttribute("id", "_vis_opt_path_hides");
                  v && a.setAttribute("nonce", v.nonce);
                  a.setAttribute("type", "text/css");
                  if (a.styleSheet) a.styleSheet.cssText = b;
                  else a.appendChild(d.createTextNode(b));
                  h.appendChild(a);
                }
                if (filterConfig && filterConfig.filterTime === "early") {
                  this.removeLoaderAndOverlay();
                }
                this.load(
                  "https://dev.visualwebsiteoptimizer.com/j.php?a=" +
                    account_id +
                    "&u=" +
                    encodeURIComponent(d.URL) +
                    "&vn=" +
                    version
                );
              },
              setFilterConfigAndApplyFilter: function (config) {
                if (!config) {
                  // No config will lead to early return and no addition of smart code
                  return;
                }
                var state = this.isNonLiveMode(account_id) || config.isConsentGiven();
                if (state === "1") {
                  // if cookie consent was already given and the cookies were already accepted, execute out normal flow
                  hide_element = "body";
                  w._vwo_settings_timer = window._vwo_code.init();
                  return;
                } else if (state === "2") {
                  return;
                }
      
                if (!config.filterTolerance) {
                  // Execute removal logic immediately when filterTolerance is 0 or empty
                  return;
                }
      
                function clearIntervals(timerIds) {
                  for (var i = 0; i < timerIds.length; i++) {
                    clearInterval(timerIds[i]);
                  }
                }
                this.filterConfig = config;
                var popupTimer = setInterval(function () {
                  if (window._vwo_code.applyFilters(config)) {
                    clearInterval(popupTimer);
                  }
                }, 100);
                var timer = setInterval(function () {
                  var state = config.isConsentGiven();
                  var shouldClearAllIntervals;
                  if (state === "1") {
                    window._vwo_code.showLoader();
                    w._vwo_settings_timer = window._vwo_code.init();
                    shouldClearAllIntervals = true;
                  } else if (state === "2") {
                    window._vwo_code.filterConfig = undefined;
                    window._vwo_code.removeLoaderAndOverlay();
                    shouldClearAllIntervals = true;
                  }
                  if (shouldClearAllIntervals) {
                    clearIntervals([timer, popupTimer]);
                    clearInterval(filterToleranceTimer);
                  }
                }, 100);
                var filterToleranceTimer;
      
                // RECOMMENDED: When using Best Approach
                filterToleranceTimer = setTimeout(function () {
                  window._vwo_code.removeLoaderAndOverlay();
                  clearIntervals([timer, popupTimer]);
                }, config.filterTolerance);
              },
              showLoader: function () {
                var vwoOverlay = d.getElementsByClassName("vwo-overlay")[0];
                if (!vwoOverlay) return;
                var vwoContentLoader = d.createElement("div");
                vwoContentLoader.classList.add("vwo-content-loader");
                vwoOverlay.parentNode.insertBefore(
                  vwoContentLoader,
                  vwoOverlay.nextSibling
                );
              },
              applyFilters: function (config) {
                var popup = d.querySelector(config.popupSelector);
                var popupZIndex;
                if (!popup && d.getElementById("_vis_opt_overlay")) {
                  return;
                }
                var maxZIndex = 2147483647;
                if (popup) {
                  var popupStyle = w.getComputedStyle(popup);
                  popupZIndex = popupStyle.getPropertyValue("z-index");
                  if (!popupZIndex || popupZIndex === "auto") {
                    popupZIndex = maxZIndex;
                  }
                  popup.style.zIndex = popupZIndex;
                }
                popupZIndex = popupZIndex || maxZIndex;
                // You can change the styling to suit your requirements
                // This is the default CSS filters VWO provides
                // NOTE: do not change any class names IMPORTANT ...
                var vwoFilter =
                    "position: fixed; top: 0; left: 0; right: 0; bottom: 0; height: 100%; width: 100%; -webkit-filter: blur(5px); filter: blur(5px); backdrop-filter: saturate(180%) blur(3px); -webkit-backdrop-filter: saturate(180%) blur(3px); z-index:" +
                    (popupZIndex - 1) +
                    ";",
                  vwoLoaderCss =
                    " .vwo-content-loader{ border: 16px solid #f3f3f3; border-top: 16px solid #3498db; border-radius: 50%; width: 90px; height: 90px; position: fixed; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); animation: vwo-spin 2s linear infinite; z-index:" +
                    (popupZIndex - 1) +
                    "; }" +
                    "@keyframes vwo-spin { 0% { -webkit-transform: translate(-50%, -50%) rotate(0deg); transform: translate(-50%, -50%) rotate(0deg); } 100% { -webkit-transform: translate(-50%, -50%) rotate(360deg); transform: translate(-50%, -50%) rotate(360deg); } }";
                /**
                 * This below written code should not be tweaked
                 * */
                var overlayStyleTag = d.getElementById("_vis_opt_overlay"),
                  overlayCSS = ".vwo-overlay{" + vwoFilter + "}" + vwoLoaderCss;
                if (overlayStyleTag) {
                  if (overlayStyleTag.styleSheet) {
                    overlayStyleTag.styleSheet.cssText = overlayCSS;
                  } else {
                    var _vwo_textNode = d.createTextNode(overlayCSS);
                    overlayStyleTag.appendChild(_vwo_textNode);
                    overlayStyleTag.removeChild(overlayStyleTag.childNodes[0]);
                  }
                } else {
                  var a = d.createElement("style"),
                    h = d.getElementsByTagName("head")[0],
                    body = d.getElementsByTagName("body")[0];
                  var vwoOverlay = d.createElement("div");
                  vwoOverlay.classList.add("vwo-overlay");
                  body.prepend(vwoOverlay);
                  // CAUTION Do not remove this id from your style tag. It is required by VWO
                  a.setAttribute("id", "_vis_opt_overlay");
                  a.setAttribute("type", "text/css");
                  if (a.styleSheet) a.styleSheet.cssText = overlayCSS;
                  else a.appendChild(d.createTextNode(overlayCSS));
                  h.appendChild(a);
                }
                return !!popup;
              },
              removeLoaderAndOverlay: function () {
                var overlay = d.getElementsByClassName("vwo-overlay");
                var loader = d.getElementsByClassName("vwo-content-loader");
                var overlayStyleTag = d.getElementById("_vis_opt_overlay");
                overlay &&
                  (overlay = overlay[0]) &&
                  overlay.parentElement.removeChild(overlay);
                loader &&
                  (loader = loader[0]) &&
                  loader.parentElement.removeChild(loader);
                overlayStyleTag &&
                  overlayStyleTag.parentElement.removeChild(overlayStyleTag);
              },
              isNonLiveMode: function (accountId) {
                var wName = w.name;
                if (!wName) {
                  return;
                }
                return (
                  (wName.indexOf("_vis_editor") > -1 ||
                    wName.indexOf("_vis_preview_" + accountId) > -1 ||
                    wName.indexOf("_vis_heatmap_" + accountId) > -1) &&
                  "1"
                );
              },
            };
            w._vwo_code = code;
          })();
        window._vwo_code.setFilterConfigAndApplyFilter({
          popupSelector: "#CybotCookiebotDialog",
          filterTime: "best",
          isConsentGiven: function () {
            /** your custom Code */
            if (document.cookie.indexOf("CookieConsent") != -1) {
              var ccValue = decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + encodeURIComponent("CookieConsent").replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1")) || null;
              let consentValue = "2";
              if (ccValue) {
                  ccValue = ccValue.substring(ccValue.indexOf(",statistics")+12);
                  ccValue = ccValue.substring(0, ccValue.indexOf(","));
                  consentValue = ccValue === "true" ? "1" : "2";
              }
              return consentValue;
          } else {
              return "3";
          }
          },
          filterTolerance: 400,
        });
        `}
      </Script>
      {/* <!-- End VWO Async SmartCode --> */}
    </>
  )
}
