document.addEventListener("DOMContentLoaded", function () {
  const params = new URLSearchParams(location.search);

  const cfg = (typeof CUSTAUSU_POPUP !== 'undefined' && CUSTAUSU_POPUP) ? CUSTAUSU_POPUP : {};
  const I18N = !!cfg.i18nEnabled;

  function dbg() {
    try {
      if (!cfg.debug || cfg.debug.on !== true) return;
      if (!window.console || !console.log) return;
      const args = Array.prototype.slice.call(arguments);
      args.unshift('[CAS popup]');
      console.log.apply(console, args);
    } catch(e){}
  }

  const LANG = cfg.userLang || cfg.lang || 'en';
  const IS_IT = (String(LANG).toLowerCase() === 'it');

  const i18n = cfg.i18n || {};
  const msgVerified = IS_IT
    ? (i18n.emailVerifiedIt || "✅ Grazie! La tua email è stata verificata")
    : (i18n.emailVerifiedEn || "✅ Thanks! Your email is now verified");

  const msgRegistration = IS_IT
    ? (i18n.registrationDoneIt || "✅ Registrazione completata!<br />Controlla la tua email per confermare l'account.")
    : (i18n.registrationDoneEn || "✅ Registration successful!<br />Check your inbox to confirm your account.");

  const msgInvalid = IS_IT
    ? (i18n.emailInvalidIt || "⚠️ Questo link di verifica non è più valido.<br />Richiedi un nuovo link oppure usa il link contenuto nell’email di conferma più recente.")
    : (i18n.emailInvalidEn || "⚠️ This verification link is no longer valid.<br />Request a new link or use the link in the most recent confirmation email.");

  const msgExpired = IS_IT
    ? (i18n.emailExpiredIt || "⚠️ Questo link di verifica è scaduto.<br />Richiedi un nuovo link oppure usa il link contenuto nell’email di conferma più recente.")
    : (i18n.emailExpiredEn || "⚠️ This verification link has expired.<br />Request a new link or use the link in the most recent confirmation email.");

  function showPopup(message, duration) {
    dbg('showPopup', { message: String(message).slice(0, 120) });
    const box = document.createElement("div");
    box.style = `
      position:fixed;top:20px;right:20px;
      background:#ff4437;color:#fff;
      padding:16px 20px;font-size:16px;
      border-radius:8px;z-index:99999;
      box-shadow:0 4px 15px rgba(0,0,0,.25);
      opacity:0;transition:.4s;
    `;
    box.innerHTML = message;
    document.body.appendChild(box);
    requestAnimationFrame(() => box.style.opacity = "1");
    const timeout = Number.isFinite(duration)
      ? Math.max(4000, duration)
      : 4000;

    setTimeout(() => {
      box.style.opacity = "0";
      setTimeout(() => box.remove(), 400);
    }, timeout);
  }

  function cleanQuery(keys) {
    keys.forEach((key) => params.delete(key));

    const query = params.toString();
    const nextUrl = location.pathname
      + (query ? "?" + query : "")
      + location.hash;

    history.replaceState({}, "", nextUrl);
  }

  if (params.get("email_verificata") === "1") {
    showPopup(msgVerified);
    cleanQuery(["email_verificata", "reason"]);
  }

  if (params.get("email_verificata") === "0") {
    const reason = String(params.get("reason") || "invalid").toLowerCase();

    showPopup(
      reason === "expired" ? msgExpired : msgInvalid,
      7000
    );

    cleanQuery(["email_verificata", "reason"]);
  }

  if (params.get("registration_done") === "1") {
    showPopup(msgRegistration);
    cleanQuery(["registration_done"]);
  }
});

