/**
 * pdfcreator.js — Script de compatibilidad v2.
 * Reemplaza app/js/pdfcreator.js sin modificar el HTML más allá del path de loadScriptapp.
 *
 * Define creatorport4x4 y creatorport4x3 con la misma firma que v1
 * pero delegando a window._v2.createPdf (expuesto por bridge.js).
 *
 * CAMBIO EN EL HTML:
 *   Antes: loadScriptapp('./js/pdfcreator.js')
 *   Ahora: loadScriptapp('../../v2/compat/pdfcreator.js')
 */

// ─── Lee los índices seleccionados del DOM (igual que v1) ────────────────────
function _getSelectedIndices() {
  const indices = [];
  const buttons = document.getElementsByClassName('qaction-button');
  for (let i = 0; i < buttons.length; i++) {
    if (buttons[i].innerText === '-') {
      const ipos = parseInt(buttons[i].id.slice(1));
      if (!isNaN(ipos)) indices.push(ipos);
    }
  }
  return indices;
}

// ─── Lee las etiquetas de fase del textarea (solo modo 4×3) ──────────────────
function _getFaseLabels() {
  const contenido = document.getElementById('w3review')?.value ?? '';
  const lineas    = contenido.split('\n');
  return [0, 1, 2, 3, 4, 5].map(i => lineas[i] || ' ');
}

// ─── Guarda de seguridad: bridge.js debe estar cargado ───────────────────────
function _assertBridge() {
  if (!window._v2 || !window._v2.createPdf) {
    alert('Error: bridge.js no está cargado. Añade el <script type="module"> de bridge.js al <head>.');
    throw new Error('[pdfcreator-compat] window._v2 no disponible');
  }
}

/**
 * Equivalente a creatorport4x4(lapp, upload, codigoPdf) de v1.
 * @param {boolean} lapp      — true = modo rhb/rehabilitación; false = modo ias
 * @param {boolean} upload    — true = subir PDF al servidor; false = solo descargar
 * @param {string}  codigoPdf — prefijo del nombre del fichero PDF
 */
async function creatorport4x4(lapp, upload, codigoPdf) {
  _assertBridge();
  const selectedIdx = _getSelectedIndices();
  if (selectedIdx.length === 0) {
    alert('No hay imágenes seleccionadas.');
    return;
  }
  await window._v2.createPdf({
    rows:       4,
    upload,
    useRehab:   !!lapp,
    codigoPdf:  codigoPdf ?? '',
    faseLabels: [],
    selectedIdx,
  });
}

/**
 * Equivalente a creatorport4x3(lapp, upload, codigoPdf) de v1.
 */
async function creatorport4x3(lapp, upload, codigoPdf) {
  _assertBridge();
  const selectedIdx = _getSelectedIndices();
  if (selectedIdx.length === 0) {
    alert('No hay imágenes seleccionadas.');
    return;
  }
  await window._v2.createPdf({
    rows:       3,
    upload,
    useRehab:   !!lapp,
    codigoPdf:  codigoPdf ?? '',
    faseLabels: _getFaseLabels(),
    selectedIdx,
  });
}

console.info('[v2 pdfcreator-compat] creatorport4x4/3 listos.');
