// resources/js/home-hub.js
import { initSedeSearch } from './nit-typeahead.js';

document.addEventListener('DOMContentLoaded', () => {
  const scope   = document.getElementById('searchScope');
  const form    = document.getElementById('formBuscar');

  const selTipo = document.getElementById('tipo');
  const hdTipo  = document.getElementById('hd_tipo');

  const selMun  = document.getElementById('municipio');
  const hdMun   = document.getElementById('hd_municipio');

  const hdNit   = document.getElementById('hd_nit');
  const btn     = document.getElementById('btnContinuar');

   // 3) Habilitar botón solo si hay NIT + municipio + tipo
  const enforceReady = () => {
    const ok = !!(hdNit?.value && hdMun?.value && selTipo?.value !== '');
    if (btn) btn.disabled = !ok;
  };


  // 1) Inicializa el buscador NIT→Sedes (usa tus endpoints de data-attributes)
  if (scope) initSedeSearch(scope);

  // 2) “Tipo global” 0/1/2 + persistencia
  const saved = localStorage.getItem('tipo_formulario');
  const initial = saved ?? '0';
  if (selTipo && !selTipo.value) selTipo.value = initial;
  if (hdTipo) hdTipo.value = selTipo?.value ?? '0';
  window.TIPO_FORM = Number(selTipo?.value ?? 0);
  document.documentElement.setAttribute('data-tipo-formulario', String(window.TIPO_FORM));

  const updateTipo = (v) => {
    localStorage.setItem('tipo_formulario', String(v));
    if (hdTipo) hdTipo.value = String(v);
    window.TIPO_FORM = Number(v);
    document.documentElement.setAttribute('data-tipo-formulario', String(v));
    window.dispatchEvent(new CustomEvent('tipoform:change', { detail: { value: window.TIPO_FORM } }));
    enforceReady();
  };
  selTipo?.addEventListener('change', e => updateTipo(e.target.value));
  updateTipo(selTipo?.value ?? '0');

 
  // Cambios de sede → actualiza hidden + botón
  selMun?.addEventListener('change', () => {
    if (hdMun) hdMun.value = selMun.value || '';
    enforceReady();
  });

  // Cuando el usuario selecciona un NIT desde el dropdown, tu nit-typeahead:
  // - pone hd_nit.value
  // - rellena el select de municipios
  // - setea hd_municipio al elegir sede
  // Para cubrir el caso “autoselección de única sede”, revalida en un pequeño defer:
  document.getElementById('nitResults')?.addEventListener('click', () => {
    setTimeout(enforceReady, 50);
  });

  // Por si tu nit-typeahead hace auto-selección de municipio vía código:
  // revalida al ganar foco el select
  selMun?.addEventListener('focus', enforceReady);

  // 4) Seguridad básica: no envíes si no está listo
  form?.addEventListener('submit', (e) => {
    if (btn?.disabled) {
      e.preventDefault();
      alert('Selecciona NIT, sede y tipo de formulario.');
    }
  });

  // Revalida una vez al cargar
  enforceReady();
});
