<?php
/**
 * Jury composition fieldset partial.
 *
 * Variables consumed (all optional — defaults to empty/add-mode):
 *   $juryPresident    string|null  President name
 *   $juryPromoteur    string|null  Promoteur name
 *   $juryPromoteurExt int          1 if promoteur is external, 0 otherwise
 *   $juryLecteurs     array        Each element: ['name' => string, 'is_external' => int]
 *
 * In "add" mode (no existing jury data), callers should pass nulls/empty arrays and
 * may rely on the $formData repopulation helpers (old/wasSelected) defined in add.php.
 * When those helpers exist and no explicit values are set, the partial uses them.
 */

$juryPresident    = $juryPresident    ?? null;
$juryPromoteur    = $juryPromoteur    ?? null;
$juryPromoteurExt = $juryPromoteurExt ?? 0;
$juryLecteurs     = $juryLecteurs     ?? [];

// In add-mode, repopulate from flash form data when helpers are available.
$addMode = ($juryPresident === null && $juryPromoteur === null && empty($juryLecteurs));
if ($addMode && function_exists('old')) {
    $juryPresident = old('jury_president') ?: null;
    $juryPromoteur = old('jury_promoteur') ?: null;
    $juryPromoteurExt = function_exists('wasSelected') && wasSelected('jury_promoteur_ext', '1') ? 1 : 0;
}

$juryIdx = max(count($juryLecteurs), 1);
?>
        <!-- Composition du jury -->
        <fieldset>
            <legend>Composition du jury</legend>

            <!-- Président·e -->
            <div>
                <label for="jury_president">Président·e :</label>
                <input type="text" id="jury_president" name="jury_president"
                       value="<?= htmlspecialchars($juryPresident ?? '') ?>"
                       placeholder="Nom du/de la président·e (interne)">
            </div>

            <!-- Promoteur·ice -->
            <div>
                <label for="jury_promoteur">Promoteur·ice :</label>
                <div class="admin-jury-row">
                    <input type="text" id="jury_promoteur" name="jury_promoteur"
                           value="<?= htmlspecialchars($juryPromoteur ?? '') ?>" placeholder="Nom">
                    <label class="admin-checkbox-label admin-jury-ext">
                        <input type="checkbox" name="jury_promoteur_ext" value="1"
                               <?= $juryPromoteurExt ? 'checked' : '' ?>
                               aria-label="Promoteur·ice — externe"> Externe
                    </label>
                </div>
            </div>

            <!-- Lecteur·ices (dynamic list) -->
            <fieldset class="admin-jury-lecteurs">
                <legend>Lecteur·ices</legend>
                <div id="jury-lecteurs-list" class="admin-jury-list">
                    <?php if (empty($juryLecteurs)): ?>
                    <div class="admin-jury-entry">
                        <input type="text" name="jury_lecteurs[]" placeholder="Nom"
                               id="jury_lecteur_0" aria-label="Lecteur·ice 1 — nom">
                        <label class="admin-checkbox-label admin-jury-ext">
                            <input type="checkbox" name="jury_lecteurs_ext[0]" value="1"
                                   aria-label="Lecteur·ice 1 — externe"> Externe
                        </label>
                        <button type="button" class="admin-btn-remove" onclick="removeJuryRow(this)"
                                aria-label="Supprimer le lecteur·ice 1"><span aria-hidden="true">✕</span></button>
                    </div>
                    <?php else: ?>
                        <?php foreach ($juryLecteurs as $li => $lm): ?>
                        <?php $lNum = $li + 1; ?>
                        <div class="admin-jury-entry">
                            <input type="text" name="jury_lecteurs[]"
                                   value="<?= htmlspecialchars($lm['name']) ?>" placeholder="Nom"
                                   id="jury_lecteur_<?= $li ?>" aria-label="Lecteur·ice <?= $lNum ?> — nom">
                            <label class="admin-checkbox-label admin-jury-ext">
                                <input type="checkbox" name="jury_lecteurs_ext[<?= $li ?>]" value="1"
                                       <?= $lm['is_external'] ? 'checked' : '' ?>
                                       aria-label="Lecteur·ice <?= $lNum ?> — externe"> Externe
                            </label>
                            <button type="button" class="admin-btn-remove" onclick="removeJuryRow(this)"
                                    aria-label="Supprimer le lecteur·ice <?= $lNum ?>"><span aria-hidden="true">✕</span></button>
                        </div>
                        <?php endforeach; ?>
                    <?php endif; ?>
                </div>
                <button type="button" class="admin-btn-secondary admin-add-jury-btn"
                        onclick="addJuryRow()">+ Ajouter un·e lecteur·ice</button>
            </fieldset>
        </fieldset>
        <script>
        var juryIdx = <?= $juryIdx ?>;
        function addJuryRow() {
            var list = document.getElementById('jury-lecteurs-list');
            var n    = list.querySelectorAll('.admin-jury-entry').length + 1;
            var div  = document.createElement('div');
            div.className = 'admin-jury-entry';
            div.innerHTML = '<input type="text" name="jury_lecteurs[]" placeholder="Nom"'
                          + ' aria-label="Lecteur\u00b7ice ' + n + ' \u2014 nom">'
                          + '<label class="admin-checkbox-label admin-jury-ext">'
                          + '<input type="checkbox" name="jury_lecteurs_ext[' + juryIdx + ']" value="1"'
                          + ' aria-label="Lecteur\u00b7ice ' + n + ' \u2014 externe"> Externe'
                          + '</label>'
                          + '<button type="button" class="admin-btn-remove" onclick="removeJuryRow(this)"'
                          + ' aria-label="Supprimer le lecteur\u00b7ice ' + n + '"><span aria-hidden="true">\u2715</span></button>';
            list.appendChild(div);
            juryIdx++;
        }
        function removeJuryRow(btn) {
            btn.closest('.admin-jury-entry').remove();
        }
        </script>
