/* ═══════════════════════════════════════════════════════════
   cejilla.js  —  acordeón + solución + tutor   (CDI 2026)
   Incluir desde config.cfg con \Configure{@/BODY}{...}
   o en WebPreambulo.tex con \HCode{<script src="js/cejilla.js">}
   ═══════════════════════════════════════════════════════════ */

/* ── 1. CEJILLA — acordeón ───────────────────────────────── */
/* ═══════════════════════════════════════════════════════════
   cejilla.js  —  acordeón + solución + tutor   (CDI 2026)
   ═══════════════════════════════════════════════════════════ */

/* ── 1. CEJILLA — acordeón ───────────────────────────────── */
(function () {
  function initCejillas() {
    document.querySelectorAll('.cejilla-toggle').forEach(function (btn) {
      if (btn._cejillaInit) return;
      btn._cejillaInit = true;

      var contentId = btn.getAttribute('aria-controls');
      var content   = document.getElementById(contentId);
      if (!content) return;

      btn.setAttribute('aria-expanded', 'false');
      content.removeAttribute('hidden');
      content.classList.remove('open');

      btn.addEventListener('click', function () {
        var isOpen = btn.getAttribute('aria-expanded') === 'true';
        if (isOpen) {
          btn.setAttribute('aria-expanded', 'false');
          content.classList.remove('open');
        } else {
          btn.setAttribute('aria-expanded', 'true');
          content.classList.add('open');
        }
      });
    });
  }

  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', initCejillas);
  } else {
    initCejillas();
  }
})();


/* ── 2. GCEJILLA — acordeón grande (anidable) ────────────── */
(function () {
  function initGcejillas() {
    document.querySelectorAll('.gcejilla-toggle').forEach(function (btn) {
      if (btn._gcejillaInit) return;
      btn._gcejillaInit = true;

      var contentId = btn.getAttribute('aria-controls');
      var content   = document.getElementById(contentId);
      if (!content) return;

      btn.setAttribute('aria-expanded', 'false');
      content.removeAttribute('hidden');
      content.classList.remove('open');

      btn.addEventListener('click', function () {
        var isOpen = btn.getAttribute('aria-expanded') === 'true';
        if (isOpen) {
          btn.setAttribute('aria-expanded', 'false');
          content.classList.remove('open');
        } else {
          btn.setAttribute('aria-expanded', 'true');
          content.classList.add('open');
        }
      });
    });
  }

  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', initGcejillas);
  } else {
    initGcejillas();
  }
})();


/* ── 3. HEJERSOL — botón solución ───────────────────────── */
function toggleSolucion(btn) {
  var container = btn.parentElement;
  var sol       = container.querySelector('.solucion');
  if (!sol) return;

  var isOpen = sol.classList.contains('sol-visible');

  if (isOpen) {
    sol.classList.remove('sol-visible');
    btn.classList.remove('sol-abierta');
    btn.lastChild.textContent = ' Solución';
  } else {
    sol.classList.add('sol-visible');
    btn.classList.add('sol-abierta');
  }
}

/* cejilla ms */
/* ── 4. CEJILLASM — acordeón slim ───────────────────────── */
(function () {
  function initCejillasm() {
    document.querySelectorAll('.cejillasm-toggle').forEach(function (btn) {
      if (btn._cejillasmInit) return;
      btn._cejillasmInit = true;

      var contentId = btn.getAttribute('aria-controls');
      var content   = document.getElementById(contentId);
      if (!content) return;

      btn.setAttribute('aria-expanded', 'false');
      content.removeAttribute('hidden');
      content.classList.remove('open');

      btn.addEventListener('click', function () {
        var isOpen = btn.getAttribute('aria-expanded') === 'true';
        if (isOpen) {
          btn.setAttribute('aria-expanded', 'false');
          content.classList.remove('open');
        } else {
          btn.setAttribute('aria-expanded', 'true');
          content.classList.add('open');
        }
      });
    });
  }

  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', initCejillasm);
  } else {
    initCejillasm();
  }
})();
