// Script da tela "reset_passowrd.html" (etapa 1: senha + CPF).
(function () {
  function showAlert(title, text) {
    try {
      alert(title + '\n\n' + text);
    } catch (e) {}
  }

  function run() {
    var form = document.querySelector('form');
    var inputCpf = document.getElementById('recovery_id');
    var inputNew = document.getElementById('new_password');
    var inputConfirm = document.getElementById('confirm_password');
    if (!form || !inputCpf || !inputNew || !inputConfirm) return;
    var submitBtn = form.querySelector('button[type="submit"]');
    var START_API_URL = (function () {
      if (typeof registroProGetPasswordResetStartApiUrl === 'function') {
        return registroProGetPasswordResetStartApiUrl();
      }
      return '';
    })();

    function onlyDigits(v) {
      return String(v || '').replace(/\D/g, '');
    }

    function formatCpf(v) {
      var d = onlyDigits(v).slice(0, 11);
      if (d.length <= 3) return d;
      if (d.length <= 6) return d.slice(0, 3) + '.' + d.slice(3);
      if (d.length <= 9) return d.slice(0, 3) + '.' + d.slice(3, 6) + '.' + d.slice(6);
      return d.slice(0, 3) + '.' + d.slice(3, 6) + '.' + d.slice(6, 9) + '-' + d.slice(9);
    }

    inputCpf.addEventListener('input', function () {
      inputCpf.value = formatCpf(inputCpf.value);
    });

    function goToLogin() {
      var targetUrl = 'login.html';
      try {
        targetUrl = new URL('login.html', window.location.href).href;
      } catch (e0) {}
      try {
        window.location.assign(targetUrl);
      } catch (e1) {
        window.location.href = targetUrl;
      }
    }

    var backToLogin = document.getElementById('rpResetBackToLogin');
    if (backToLogin) {
      backToLogin.addEventListener('click', function (e) {
        e.preventDefault();
        e.stopPropagation();
        goToLogin();
      });
    }

    var navBack = document.getElementById('rpResetNavBack');
    if (navBack) {
      navBack.addEventListener('click', function (e) {
        e.preventDefault();
        e.stopPropagation();
        goToLogin();
      });
    }

    form.addEventListener('submit', function (e) {
      e.preventDefault();

      var cpf = onlyDigits((inputCpf.value || '').trim());
      var newPassword = (inputNew.value || '').trim();
      var confirmPassword = (inputConfirm.value || '').trim();

      if (!cpf) {
        showAlert('Atenção', 'Informe seu CPF.');
        return;
      }
      if (cpf.length !== 11) {
        showAlert('Atenção', 'CPF inválido. Digite os 11 números.');
        return;
      }
      if (!newPassword || newPassword.length < 6) {
        showAlert('Atenção', 'Digite a nova senha com no mínimo 6 caracteres.');
        return;
      }
      if (newPassword !== confirmPassword) {
        showAlert('Atenção', 'A confirmação da senha não confere.');
        return;
      }
      if (!START_API_URL) {
        showAlert('Erro', 'Configuração da API ausente (etapa 1).');
        return;
      }
      if (submitBtn) {
        submitBtn.disabled = true;
        submitBtn.dataset.oldHtml = submitBtn.innerHTML;
        submitBtn.innerHTML = 'Prosseguindo...';
      }
      var tenantSlug = '';
      try { tenantSlug = localStorage.getItem('tenant_slug') || ''; } catch (e) {}
      fetch(START_API_URL, {
        method: 'POST',
        headers: { 'Content-Type': 'application/json', Accept: 'application/json' },
        body: JSON.stringify({ cpf: cpf, tenant_slug: tenantSlug })
      })
        .then(function (r) {
          return r.json().catch(function () { return null; }).then(function (j) {
            return { ok: r.ok, json: j };
          });
        })
        .then(function (res) {
          if (!(res.ok && res.json && res.json.ok && res.json.security_token)) {
            var msg = (res.json && res.json.error) ? res.json.error : 'Não foi possível iniciar a redefinição.';
            showAlert('Atenção', msg);
            if (submitBtn && submitBtn.dataset.oldHtml) submitBtn.innerHTML = submitBtn.dataset.oldHtml;
            if (submitBtn) submitBtn.disabled = false;
            return;
          }
          var payload = {
            cpf: cpf,
            new_password: newPassword,
            confirm_password: confirmPassword,
            tenant_slug: tenantSlug,
            security_token: String(res.json.security_token)
          };
          try {
            sessionStorage.setItem('rp_reset_pending', JSON.stringify(payload));
            window.location.href = 'reset_passowrd_selfie.html';
          } catch (e) {
            showAlert('Erro', 'Não foi possível continuar para a etapa de selfie.');
            if (submitBtn && submitBtn.dataset.oldHtml) submitBtn.innerHTML = submitBtn.dataset.oldHtml;
            if (submitBtn) submitBtn.disabled = false;
          }
        })
        .catch(function () {
          showAlert('Erro', 'Falha de conexão ao iniciar a redefinição.');
          if (submitBtn && submitBtn.dataset.oldHtml) submitBtn.innerHTML = submitBtn.dataset.oldHtml;
          if (submitBtn) submitBtn.disabled = false;
        });
    });
  }

  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', run, { once: true });
  } else {
    run();
  }
})();

