function logout() {
  localStorage.removeItem('usuario');
  window.location.href = 'logout.php';
}

// Función para validar solo dígitos y longitud exacta
function validarNumero(valor, longitud) {
  return /^\d+$/.test(valor) && valor.length === longitud;
}

async function consultarDNI() {
  const dni = document.getElementById("dni").value.trim();
  const resultadoDNI = document.getElementById("resultado-dni");
  resultadoDNI.innerHTML = '';
  resultadoDNI.className = 'mensaje';

  if (!validarNumero(dni, 8)) {
    resultadoDNI.innerText = "El DNI debe contener exactamente 8 dígitos numéricos.";
    resultadoDNI.classList.add('error');
    ocultarMensaje("resultado-dni");
    return;
  }

  try {
    const res = await fetch(`consulta_dni.php?dni=${dni}`);
    const data = await res.json();

    if (data && data.nombres) {
      resultadoDNI.innerHTML = `<strong>DNI:</strong> ${dni}<br><strong>Nombre:</strong> ${data.nombres} ${data.apellidoPaterno} ${data.apellidoMaterno}`;
      resultadoDNI.classList.add('exito');
    } else {
      resultadoDNI.innerText = 'No se encontraron datos para el DNI ingresado.';
      resultadoDNI.classList.add('error');
    }
  } catch {
    resultadoDNI.innerText = 'Error en la consulta DNI.';
    resultadoDNI.classList.add('error');
  }
  ocultarMensaje("resultado-dni");
}


async function consultarRUC() {
  const ruc = document.getElementById("ruc").value.trim();
  const resultadoRUC = document.getElementById("resultado-ruc");
  resultadoRUC.innerHTML = '';
  resultadoRUC.className = 'mensaje';

  if (!validarNumero(ruc, 11)) {
    resultadoRUC.innerText = "El RUC debe contener exactamente 11 dígitos numéricos.";
    resultadoRUC.classList.add('error');
    ocultarMensaje("resultado-ruc");
    return;
  }

  try {
    const res = await fetch(`consulta_ruc.php?ruc=${ruc}`);
    const data = await res.json();

    if (data && data.razonSocial) {
      resultadoRUC.innerHTML = `<strong>RUC:</strong> ${ruc}<br><strong>Razón Social:</strong> ${data.razonSocial}<br><strong>Dirección:</strong> ${data.direccion}`;
      resultadoRUC.classList.add('exito');
    } else {
      resultadoRUC.innerText = 'No se encontraron datos para el RUC ingresado.';
      resultadoRUC.classList.add('error');
    }
  } catch {
    resultadoRUC.innerText = 'Error en la consulta RUC.';
    resultadoRUC.classList.add('error');
  }
  ocultarMensaje("resultado-ruc");
}


// Prevenir ingreso de letras en tiempo real
document.addEventListener('DOMContentLoaded', () => {
  document.getElementById("dni").addEventListener("input", function () {
    this.value = this.value.replace(/\D/g, "").slice(0, 8);
  });

  document.getElementById("ruc").addEventListener("input", function () {
    this.value = this.value.replace(/\D/g, "").slice(0, 11);
  });

  document.getElementById("imei").addEventListener("input", function () {
    this.value = this.value.replace(/\D/g, "").slice(0, 15);
  });
});


function ocultarMensaje(idElemento) {
  setTimeout(() => {
    const elemento = document.getElementById(idElemento);
    if (elemento) {
      elemento.innerHTML = '';
      elemento.className = 'mensaje';
    }
  }, 9000); // 5000 milisegundos = 5 segundos
}

async function consultarIMEI() {
  const imei = document.getElementById("imei").value.trim();
  const resultadoIMEI = document.getElementById("resultado-imei");
  resultadoIMEI.innerHTML = '';
  resultadoIMEI.className = 'mensaje';

  // Validación del IMEI
  if (!/^\d{14,15}$/.test(imei)) {
    resultadoIMEI.innerText = "El IMEI debe contener entre 14 y 15 dígitos numéricos.";
    resultadoIMEI.classList.add('error');
    ocultarMensaje("resultado-imei");
    return;
  }

  // Mostrar indicador de carga
  resultadoIMEI.innerText = "Consultando IMEI...";
  resultadoIMEI.className = 'mensaje';

  try {
    const res = await fetch('consulta_imei.php', {
      method: 'POST',
      headers: { 
        'Content-Type': 'application/x-www-form-urlencoded',
        'X-Requested-With': 'XMLHttpRequest'
      },
      body: new URLSearchParams({ imei })
    });

    // Verificar si la respuesta es exitosa
    if (!res.ok) {
      if (res.status === 401) {
        alert('Su sesión ha expirado. Será redirigido al login.');
        window.location.href = 'index.html';
        return;
      }
      throw new Error(`Error HTTP: ${res.status}`);
    }

    // Obtener y parsear respuesta
    const responseText = await res.text();
    
    if (responseText.trim() === '') {
      throw new Error('El servidor devolvió una respuesta vacía');
    }

    const data = JSON.parse(responseText);

    // Limpiar el indicador de carga
    resultadoIMEI.innerHTML = '';
    resultadoIMEI.className = 'mensaje';

    // Procesar respuesta
    if (data.error) {
      resultadoIMEI.innerText = data.error;
      resultadoIMEI.classList.add('error');
    } else if (data.existe && data.datos) {
      const { region, division, unidad, fecha, marca, modelo, situacion, nota_inf } = data.datos;

      resultadoIMEI.innerHTML = `
        <strong>Región:</strong> ${region || 'N/A'}<br>
        <strong>División:</strong> ${division || 'N/A'}<br>
        <strong>Unidad:</strong> ${unidad || 'N/A'}<br>
        <strong>Fecha:</strong> ${fecha || 'N/A'}<br>
        <strong>Marca:</strong> ${marca || 'N/A'}<br>
        <strong>Modelo:</strong> ${modelo || 'N/A'}<br>
        <strong>Situación:</strong> ${situacion || 'N/A'}<br>
        <strong>Nota informativa:</strong> ${nota_inf || 'N/A'}
      `;
      resultadoIMEI.classList.add('exito');
    } else {
      resultadoIMEI.innerText = data.mensaje || 'No se encontraron datos para el IMEI ingresado.';
      resultadoIMEI.classList.add('error');
    }
  } catch (error) {
    console.error('Error en consulta IMEI:', error);
    resultadoIMEI.innerHTML = '';
    resultadoIMEI.className = 'mensaje';
    resultadoIMEI.innerText = `Error: ${error.message}`;
    resultadoIMEI.classList.add('error');
  }

  ocultarMensaje("resultado-imei");
}
