$(document).ready(function() {
  $('#password').strength({type: 'app'});

  $('#form-new-password').validate({
    onkeyup: function(element) {
      if ($(element).valid()) {
        $(element).closest('.ftr-field').removeClass('error').find('.ftr-field__error').remove();
      }
    },
    onsubmit: true,
    showErrors: function(errorMap, errorList) {
      $.each(errorList, function() {
        $($(this)[0].element).closest('.ftr-field').addClass('error').find('.ftr-field__error').remove();
        $($(this)[0].element).closest('.ftr-field').append('<span class="ftr-field__error">' + $(this)[0].message + '</span>');
      });
    },
    rules: {
      confirm: {
        equalTo: '#password'
      }
    },
    messages: {
      confirm: {
        equalTo: 'As senhas não conferem.'
      }
    }
  });

  $('#form-new-password').on('submit', function(event) {
    event.preventDefault(); 
    validateAppForm();
  });
});

function validateAppForm() {
  $.ajax({
    url: '/index.php?route=account/password/save',
    type: 'POST',
    data: $('#form-new-password').serialize(),
    success: function(response) {
      try {
        var data = JSON.parse(response);
        if (data.sucess) {
          notificationMsg(data.sucess, 'success');
          setTimeout(() => {
            window.location.href = data.link;
          }, 3000);
        } else if (data.error) {
          notificationMsg('Atenção: Alguns campos estão incorretos. Corrija os campos em vermelho!', 'error');

          
          if (data.error.current_password) {
            
            $('#labelCurrent').addClass('error');
          }
          
          if (data.error.password) {
           
            $('#labelPassword').addClass('error');
          }
          
          if (data.error.confirm) {
            
            $('#labelConfirm').addClass('error');
          }
        }
      } catch (e) {
        console.error('Erro ao analisar resposta do servidor como JSON:', e);
      }
    },
    error: function(status, error) {
      console.error('Erro na requisição AJAX:', status, error);
    }
  });
}

