/* global Swal */

function validarFormularioGalonera(evento) {
  evento.preventDefault();

  // CÓDIGO (obligatorio, mayúsculas, letras/números/guion, 3-50 chars)
  const codigoEl = document.getElementById('codigo');
  let codigo = (codigoEl.value || '').trim().toUpperCase();
  const reCodigo = /^[A-Z0-9\-]{3,50}$/;

  if (!codigo.length) {
    Swal.fire({
      width: '23rem',
      position: 'center',
      icon: 'info',
      title: 'Por favor, ingrese el código',
      showConfirmButton: false,
      timer: 1500
    });
    return;
  }
  if (!reCodigo.test(codigo)) {
    Swal.fire({
      width: '26rem',
      position: 'center',
      icon: 'info',
      title: 'Código inválido',
      text: 'Use solo letras, números o guiones (mín. 3 y máx. 50 caracteres).',
      showConfirmButton: false,
      timer: 2200
    });
    return;
  }

  // CAPACIDAD (obligatorio, número 0 - 9999.99)
  const capEl = document.getElementById('capacidad_litros');
  let capStr = (capEl.value || '').trim().replace(',', '.');
  const capacidad = parseFloat(capStr);

  if (!capStr.length || isNaN(capacidad)) {
    Swal.fire({
      width: '24rem',
      position: 'center',
      icon: 'info',
      title: 'Ingrese la capacidad en litros',
      showConfirmButton: false,
      timer: 1800
    });
    return;
  }
  if (capacidad < 0 || capacidad > 9999.99) {
    Swal.fire({
      width: '26rem',
      position: 'center',
      icon: 'info',
      title: 'Capacidad fuera de rango',
      text: 'Debe estar entre 0 y 9999.99 litros.',
      showConfirmButton: false,
      timer: 2200
    });
    return;
  }

  // TIPO DE COMBUSTIBLE (obligatorio)
  const tipoSel = document.getElementById('tipo_combustible_id');
  const tipo = (tipoSel.value || '').trim();
  if (!tipo) {
    Swal.fire({
      width: '24rem',
      position: 'center',
      icon: 'info',
      title: 'Seleccione el tipo de combustible',
      showConfirmButton: false,
      timer: 1800
    });
    return;
  }

  // Normaliza valores antes de enviar
  codigoEl.value = codigo;
  capEl.value = capacidad.toFixed(2);

  // ✅ Todo OK, enviar
  document.getElementById('Registrar_Galonera').submit();
}

function limpiarCamposGalonera() {
  const form = document.getElementById('Registrar_Galonera');
  form.reset();
  const codigoEl = document.getElementById('codigo');
  if (codigoEl) codigoEl.focus();
}

document.addEventListener('DOMContentLoaded', function () {
  // Validar al hacer submit
  const form = document.getElementById('Registrar_Galonera');
  if (form) form.addEventListener('submit', validarFormularioGalonera);

  // Borrar datos al hacer clic en el botón
  const btnReset = document.getElementById('btn-reset');
  if (btnReset) btnReset.addEventListener('click', limpiarCamposGalonera);
});
