<?php
// admin/pemilih.php
include_once 'init.php'; // Otak kita

$page_title = 'Data Pemilih';
$page_icon = 'bi-person-lines-fill';

// Tentukan tab aktif
$active_tab = $_GET['tab'] ?? 'siswa'; // Default tab 'siswa'

// Ambil daftar kelas dari DB (untuk filter & modal)
$kelasList = $pdo->query("SELECT * FROM kelas ORDER BY jenjang, nama_kelas ASC")->fetchAll(PDO::FETCH_ASSOC);
// Opsi Jabatan Non-Siswa
$non_siswa_options = ['Guru', 'Tendik', 'Pegawai', 'Lainnya'];

// =========================================================================================
// == LOGIKA PROSES (TAMBAH, UPDATE, HAPUS, RESET)
// =========================================================================================
$action = $_POST['action'] ?? $_GET['action'] ?? '';

// Hanya proses aksi jika TAHUN AKTIF sudah ada
if ($id_tahun_aktif && $action) {
    try {
        if ($action === 'tambah_pemilih') {
            $password = null;
            $kelas_id = null;
            $jabatan_non_siswa = null;

            if (!empty($_POST['password'])) $password = password_hash($_POST['password'], PASSWORD_DEFAULT);
            
            if ($_POST['tipe_pemilih'] == 'Siswa') {
                $kelas_id = $_POST['kelas_id']; // Ambil ID dari dropdown
                $active_tab = 'siswa'; // Set tab redirect
            } else {
                $jabatan_non_siswa = $_POST['jabatan_non_siswa']; // Ambil string dari dropdown
                $active_tab = 'nonsiswa'; // Set tab redirect
            }

            $stmt = $pdo->prepare(
                "INSERT INTO pemilih (id_tahun_fk, nis_token, nama_lengkap, tipe_pemilih, kelas_id, jabatan_non_siswa, password) 
                 VALUES (?, ?, ?, ?, ?, ?, ?)"
            );
            $stmt->execute([
                $id_tahun_aktif, $_POST['nis_token'], $_POST['nama_lengkap'], 
                $_POST['tipe_pemilih'], $kelas_id, $jabatan_non_siswa, $password
            ]);
            $_SESSION['pesan_sukses'] = "Pemilih baru berhasil ditambahkan.";
        }

        if ($action === 'update_pemilih') {
            $kelas_id = null;
            $jabatan_non_siswa = null;

            if ($_POST['tipe_pemilih'] == 'Siswa') {
                $kelas_id = $_POST['kelas_id'];
                $active_tab = 'siswa';
            } else {
                $jabatan_non_siswa = $_POST['jabatan_non_siswa'];
                $active_tab = 'nonsiswa';
            }

            $params = [
                $_POST['nis_token'], $_POST['nama_lengkap'], $_POST['tipe_pemilih'], 
                $kelas_id, $jabatan_non_siswa
            ];
            $sql = "UPDATE pemilih SET nis_token = ?, nama_lengkap = ?, tipe_pemilih = ?, kelas_id = ?, jabatan_non_siswa = ?";
            
            if (!empty($_POST['password'])) {
                $hashed_password = password_hash($_POST['password'], PASSWORD_DEFAULT);
                $sql .= ", password = ?";
                $params[] = $hashed_password;
            }
            $sql .= " WHERE id_pemilih = ?";
            $params[] = $_POST['id_pemilih'];
            
            $stmt = $pdo->prepare($sql);
            $stmt->execute($params);
            $_SESSION['pesan_sukses'] = "Data pemilih berhasil diperbarui.";
        }

        if ($action === 'hapus_pemilih' && isset($_POST['id_pemilih_hapus'])) {
            $stmt = $pdo->prepare("DELETE FROM pemilih WHERE id_pemilih = ?");
            $stmt->execute([$_POST['id_pemilih_hapus']]);
            $_SESSION['pesan_sukses'] = "Pemilih berhasil dihapus.";
        }
        
        if ($action === 'reset_status' && isset($_GET['id'])) {
            $stmt = $pdo->prepare("UPDATE pemilih SET status_memilih = 'belum' WHERE id_pemilih = ?");
            $stmt->execute([$_GET['id']]);
            $stmt_suara = $pdo->prepare("DELETE FROM suara WHERE id_pemilih_fk = ?");
            $stmt_suara->execute([$_GET['id']]);
            $_SESSION['pesan_sukses'] = "Status pemilih berhasil di-reset.";
        }
        
        if ($action === 'hapus_massal') {
            if (!empty($_POST['pemilih_ids'])) {
                $ids = $_POST['pemilih_ids'];
                $placeholders = implode(',', array_fill(0, count($ids), '?'));
                $stmt = $pdo->prepare("DELETE FROM pemilih WHERE id_pemilih IN ($placeholders)");
                $stmt->execute($ids);
                $_SESSION['pesan_sukses'] = count($ids) . " pemilih berhasil dihapus!";
            } else {
                $_SESSION['pesan_error'] = "Tidak ada pemilih yang dipilih untuk dihapus.";
            }
        }
        
    } catch (PDOException $e) {
        if ($e->errorInfo[1] == 1062) {
            $_SESSION['pesan_error'] = "Gagal: NIS/Token sudah digunakan untuk tahun ini.";
        } else {
            $_SESSION['pesan_error'] = "Terjadi kesalahan: " . $e->getMessage();
        }
    }
}

// Logika redirect (diperbarui untuk menyertakan tab)
if ($action) {
    $redirect_params = [];
    // Pertahankan filter
    if (isset($_GET['kelas_id_filter']) && $_GET['kelas_id_filter'] != '') {
        $redirect_params['kelas_id_filter'] = $_GET['kelas_id_filter'];
    }
    if (isset($_GET['search']) && $_GET['search'] != '') {
        $redirect_params['search'] = $_GET['search'];
    }
    // Set tab
    $redirect_params['tab'] = $active_tab;
    
    $redirect_url = 'pemilih.php?' . http_build_query($redirect_params);
    header('Location: ' . $redirect_url);
    exit();
}

// =========================================================================================
// == AMBIL DATA UNTUK TABEL SISWA
// =========================================================================================
$pemilih_siswa_list = [];
$kelas_id_filter = isset($_GET['kelas_id_filter']) && !empty($_GET['kelas_id_filter']) ? $_GET['kelas_id_filter'] : null;
$search_query_siswa = ($active_tab == 'siswa' && isset($_GET['search'])) ? trim($_GET['search']) : '';

if ($id_tahun_aktif) {
    // Kueri ini sekarang JOIN ke tabel kelas
    $sql_siswa = "SELECT p.*, k.nama_kelas 
                  FROM pemilih p 
                  LEFT JOIN kelas k ON p.kelas_id = k.id_kelas
                  WHERE p.id_tahun_fk = ? AND p.tipe_pemilih = 'Siswa'";
    $params_siswa = [$id_tahun_aktif];

    if ($kelas_id_filter) {
        $sql_siswa .= " AND p.kelas_id = ?";
        $params_siswa[] = $kelas_id_filter;
    }
    if (!empty($search_query_siswa)) {
        $sql_siswa .= " AND (p.nama_lengkap LIKE ? OR p.nis_token LIKE ?)";
        $params_siswa[] = "%$search_query_siswa%";
        $params_siswa[] = "%$search_query_siswa%";
    }
    $sql_siswa .= " ORDER BY k.nama_kelas, p.nama_lengkap ASC";
    
    $stmt_siswa = $pdo->prepare($sql_siswa);
    $stmt_siswa->execute($params_siswa);
    $pemilih_siswa_list = $stmt_siswa->fetchAll();
}

// =========================================================================================
// == AMBIL DATA UNTUK TABEL NON-SISWA
// =========================================================================================
$pemilih_nonsiswa_list = [];
$search_query_nonsiswa = ($active_tab == 'nonsiswa' && isset($_GET['search'])) ? trim($_GET['search']) : '';

if ($id_tahun_aktif) {
    $sql_nonsiswa = "SELECT * FROM pemilih 
                     WHERE id_tahun_fk = ? AND tipe_pemilih = 'Non Siswa'";
    $params_nonsiswa = [$id_tahun_aktif];

    if (!empty($search_query_nonsiswa)) {
        $sql_nonsiswa .= " AND (nama_lengkap LIKE ? OR nis_token LIKE ? OR jabatan_non_siswa LIKE ?)";
        $params_nonsiswa[] = "%$search_query_nonsiswa%";
        $params_nonsiswa[] = "%$search_query_nonsiswa%";
        $params_nonsiswa[] = "%$search_query_nonsiswa%";
    }
    $sql_nonsiswa .= " ORDER BY nama_lengkap ASC";
    
    $stmt_nonsiswa = $pdo->prepare($sql_nonsiswa);
    $stmt_nonsiswa->execute($params_nonsiswa);
    $pemilih_nonsiswa_list = $stmt_nonsiswa->fetchAll();
}

include 'header.php';
?>

<style>
    /* Style Desktop (Fixed) */
    .table-pemilih { table-layout: fixed; width: 100%; }
    .table-pemilih th, .table-pemilih td { word-wrap: break-word; vertical-align: middle; }
    .col-cek { width: 3%; }
    .col-no { width: 5%; }
    .col-nis { width: 15%; }
    .col-nama { width: 25%; }
    .col-kelas { width: 15%; }
    .col-jabatan { width: 17%; }
    .col-status { width: 10%; }
    .col-aksi { width: 15%; }

    /* === KODE RESPONSIVE BARU (COMPACT & AUTO-FIT) === */
    @media (max-width: 767px) {
        .table-pemilih {
            font-family: 'Arial Narrow', Arial, sans-serif; /* Font kurus */
            font-size: 13px; /* Font lebih kecil */
            table-layout: auto; /* Biarkan tabel menyesuaikan kolom */
            width: 100%;
        }
        
        /* Tombol lebih kecil */
        .table-pemilih .btn-sm {
            font-size: 12px;
            padding: 2px 5px;
        }

        /* Padding cell lebih kecil & izinkan text wrap */
        .table-pemilih th, 
        .table-pemilih td {
            padding: 0.35rem 0.25rem; 
            white-space: normal; /* Izinkan text wrap */
            vertical-align: middle;
        }
        
        .form-check-input {
            width: 18px;
            height: 18px;
        }
        
        /* Ubah nama tab agar lebih singkat di HP */
        .nav-link#nav-siswa-tab {
            padding: 0.5rem 0.7rem;
        }
        .nav-link#nav-nonsiswa-tab {
             padding: 0.5rem 0.7rem;
        }
        .nav-link#nav-siswa-tab .bi-person-fill::after {
            content: " Siswa";
        }
        .nav-link#nav-nonsiswa-tab .bi-person-badge::after {
            content: " Non-Siswa";
        }
        
        /* Sembunyikan teks di tombol 'Tambah Pemilih' */
        .btn-tambah-manual-text {
            display: none;
        }
    }
</style>

<main class="container mt-4">
    
    <!--<div class="d-flex justify-content-between align-items-center mb-3">
        <h2 class="mb-0"><i class="bi bi-person-lines-fill"></i> <?= $page_title ?></h2>
    </div>-->

    <div class="card-header-custom">
            <!--<h5>
                <i class="<?= htmlspecialchars($page_icon); ?> me-2"></i>Daftar Kandidat 
                <span class="badge bg-info text-dark">Tahun <?= htmlspecialchars($tahun_aktif_display) ?></span>
            </h5>-->
            <span class="badge bg-info text-dark"><h6>Tahun Pemilihan : <?= htmlspecialchars($tahun_aktif_display) ?></h6></span>

        <button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#tambahModal">
            <i class="bi bi-plus-circle me-1"></i> <span class="btn-tambah-manual-text">Tambah Pemilih</span>
        </button>
    </div>


    <?php
    if (isset($_SESSION['pesan_sukses'])) {
        echo '<div class="alert alert-success">' . $_SESSION['pesan_sukses'] . '</div>';
        unset($_SESSION['pesan_sukses']);
    }
    if (isset($_SESSION['pesan_error'])) {
        echo '<div class="alert alert-danger">' . $_SESSION['pesan_error'] . '</div>';
        unset($_SESSION['pesan_error']);
    }
    

// === TAMBAHKAN BLOK INI ===
    if (isset($_SESSION['import_log'])) {
        echo '<div class="alert alert-warning shadow-sm">';
        echo '<strong>Detail Log Import (Data Gagal):</strong><ul class="mb-0">';
        $ada_sukses = false;
        foreach ($_SESSION['import_log'] as $log) {
            if ($log['status'] !== 'sukses') {
                echo '<li><small>Baris Excel ' . htmlspecialchars($log['baris']) . ': ' . htmlspecialchars($log['pesan']) . '</small></li>';
            } else {
                $ada_sukses = true;
            }
        }
        if ($ada_sukses) {
            echo '<li><small>Beberapa baris lain mungkin berhasil, tetapi dibatalkan karena ada error.</small></li>';
        }
        echo '</ul></div>';
        unset($_SESSION['import_log']);
    }
    // === AKHIR BLOK TAMBAHAN ===
?>
    <?php if (!$id_tahun_aktif): ?>
        <div class="alert alert-danger shadow-sm">
            <h4 class="alert-heading"><i class="bi bi-exclamation-triangle-fill"></i> Tidak Ada Tahun Aktif!</h4>
            <p>Anda tidak dapat mengelola pemilih sebelum memilih tahun pemilihan yang aktif.</p>
            <hr>
            <p class="mb-0">Silakan pergi ke <a href="pengaturan.php?tab=tahun" class="alert-link">Manajemen Tahun</a> untuk mengaktifkan satu tahun pemilihan.</p>
        </div>
    <?php else: ?>

    <div class="accordion mb-4" id="uploadAccordion">
        <div class="accordion-item">
            <h2 class="accordion-header" id="headingUpload">
                <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseUpload" aria-expanded="false" aria-controls="collapseUpload">
                    <i class="bi bi-upload me-2"></i> Unggah Data Pemilih dari Excel
                </button>
            </h2>
            <div id="collapseUpload" class="accordion-collapse collapse" aria-labelledby="headingUpload" data-bs-parent="#uploadAccordion">
                <div class="accordion-body">
                    <!--<p>Unggah file Excel (.xlsx, .xls) untuk menambahkan data pemilih secara massal. Data akan diimpor ke tahun aktif (<?= htmlspecialchars($tahun_aktif_display) ?>).</p>-->
                    <form action="upload_template.php" method="POST" enctype="multipart/form-data">
                        <input type="hidden" name="type" value="pemilih">
                        <div class="mb-3">
                            <label for="excelFile" class="form-label">Pilih File Excel (.xlsx, .xls):</label>
                            <input type="file" class="form-control" id="excelFile" name="excelFile" accept=".xlsx, .xls" required>
                        </div>
                        <button type="submit" class="btn btn-success"><i class="bi bi-cloud-arrow-up me-1"></i> Unggah dan Proses</button>
                    </form>
                    <hr>
                    <p>Format file harus sesuai dengan contoh: <a href="template_pemilih.xlsx" download>Unduh Template Excel</a></p>
                </div>
            </div>
        </div>
    </div>
    
    <div class="d-flex justify-content-between align-items-center mb-3">
        <nav>
            <div class="nav nav-tabs" id="nav-tab" role="tablist">
                <a class="nav-link <?= $active_tab == 'siswa' ? 'active' : '' ?>" href="?tab=siswa" id="nav-siswa-tab">
                    <i class="bi bi-person-fill"></i> 
                    <span class="d-none d-md-inline">Siswa</span>
                </a>
                <a class="nav-link <?= $active_tab == 'nonsiswa' ? 'active' : '' ?>" href="?tab=nonsiswa" id="nav-nonsiswa-tab">
                    <i class="bi bi-person-badge"></i> 
                    <span class="d-none d-md-inline">Non-Siswa</span>
                </a>
            </div>
        </nav>
       
    </div>

    <div class="tab-content" id="nav-tabContent">
        
        <div class="tab-pane fade <?= $active_tab == 'siswa' ? 'show active' : '' ?>" id="nav-siswa">
            <div class="card shadow-sm border-top-0">
                <div class="card-header d-flex justify-content-end align-items-center flex-wrap gap-2">
                    <form action="pemilih.php" method="GET" class="d-flex align-items-center gap-2" style="max-width: 500px;">
                        <input type="hidden" name="tab" value="siswa">
                        <input type="text" name="search" class="form-control form-control-sm" placeholder="Cari Nama/NIS..." value="<?= htmlspecialchars($search_query_siswa) ?>">
                        <select name="kelas_id_filter" class="form-select form-select-sm">
                            <option value="">-- Semua Kelas --</option>
                            <?php foreach ($kelasList as $kelas): ?>
                                <option value="<?= $kelas['id_kelas'] ?>" <?= ($kelas_id_filter == $kelas['id_kelas']) ? 'selected' : '' ?>>
                                    <?= htmlspecialchars($kelas['nama_kelas']) ?>
                                </option>
                            <?php endforeach; ?>
                        </select>
                        <button type="submit" class="btn btn-sm btn-primary flex-shrink-0">
                            <i class="bi bi-search"></i> <span class="d-none d-md-inline">Filter</span>
                        </button>
                    </form>
                </div>
                <div class="card-body">
                    <form action="pemilih.php?tab=siswa&kelas_id_filter=<?= $kelas_id_filter ?>&search=<?= $search_query_siswa ?>" method="POST" id="form-hapus-massal-siswa">
                        <input type="hidden" name="action" value="hapus_massal">
                        
                        <div class="table-responsive">
                            <table class="table table-hover align-middle table-pemilih">
                                <thead class="table-light">
                                    <tr>
                                        <th class="col-cek"><input class="form-check-input" type="checkbox" id="pilih-semua-siswa"></th>
                                        <th class="col-no">No</th>
                                        <th class="col-nis">NIS</th>
                                        <th class="col-nama">Nama Lengkap</th>
                                        <th class="col-kelas">Kelas</th>
                                        <th class="col-status">Status</th>
                                        <th class="col-aksi text-center">Aksi</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php if (count($pemilih_siswa_list) > 0): ?>
                                        <?php $i = 1; ?>
                                        <?php foreach ($pemilih_siswa_list as $p): ?>
                                        <tr>
                                            <td><input class="form-check-input checkbox-pemilih" type="checkbox" name="pemilih_ids[]" value="<?= $p['id_pemilih'] ?>"></td>
                                            <td><?= $i++ ?></td>
                                            <td><span class="badge bg-secondary"><?= htmlspecialchars($p['nis_token'] ?: '-') ?></span></td>
                                            <td><?= htmlspecialchars($p['nama_lengkap']) ?></td>
                                            <td><?= htmlspecialchars($p['nama_kelas'] ?? 'N/A') ?></td>
                                            <td>
                                                <?php if ($p['status_memilih'] == 'sudah'): ?>
                                                    <span class="badge bg-success">Sudah</span>
                                                <?php else: ?>
                                                    <span class="badge bg-secondary">Belum</span>
                                                <?php endif; ?>
                                            </td>
                                            <td class="text-center text-nowrap">
                                                <button type="button" class="btn btn-warning btn-sm edit-btn" 
                                                        data-bs-toggle="modal" data-bs-target="#editModal"
                                                        data-id="<?= $p['id_pemilih'] ?>"
                                                        data-nis_token="<?= htmlspecialchars($p['nis_token']) ?>"
                                                        data-nama_lengkap="<?= htmlspecialchars($p['nama_lengkap']) ?>"
                                                        data-tipe_pemilih="<?= $p['tipe_pemilih'] ?>"
                                                        data-kelas_id="<?= $p['kelas_id'] ?>"
                                                        data-jabatan_non_siswa="">
                                                    <i class="bi bi-pencil-square"></i>
                                                </button>
                                                <button type="button" class="btn btn-danger btn-sm hapus-btn"
                                                        data-bs-toggle="modal" data-bs-target="#hapusModal"
                                                        data-id="<?= $p['id_pemilih'] ?>"
                                                        data-nama="<?= htmlspecialchars($p['nama_lengkap']) ?>">
                                                    <i class="bi bi-trash"></i>
                                                </button>
                                                <?php if ($p['status_memilih'] == 'sudah'): ?>
                                                    <a href="pemilih.php?action=reset_status&id=<?= $p['id_pemilih'] ?>&tab=siswa" class="btn btn-sm btn-info" title="Reset Status" onclick="return confirm('Yakin mereset status pemilih ini?')">
                                                        <i class="bi bi-arrow-counterclockwise"></i>
                                                    </a>
                                                <?php endif; ?>
                                            </td>
                                        </tr>
                                        <?php endforeach; ?>
                                    <?php else: ?>
                                        <tr><td colspan="7" class="text-center">Data pemilih siswa tidak ditemukan.</td></tr>
                                    <?php endif; ?>
                                </tbody>
                            </table>
                        </div>
                        
                        <?php if (count($pemilih_siswa_list) > 0): ?>
                        <div class="mt-3">
                            <button type="submit" name="action" value="hapus_massal" class="btn btn-danger" id="tombol-hapus-massal-siswa" disabled>
                                <i class="bi bi-trash-fill me-1"></i> Hapus yang Dipilih
                            </button>
                        </div>
                        <?php endif; ?>
                    </form>
                </div>
            </div>
        </div>
        
        <div class="tab-pane fade <?= $active_tab == 'nonsiswa' ? 'show active' : '' ?>" id="nav-nonsiswa">
             <div class="card shadow-sm border-top-0">
                <div class="card-header d-flex justify-content-end align-items-center flex-wrap gap-2">
                    <form action="pemilih.php" method="GET" class="d-flex align-items-center gap-2" style="max-width: 500px;">
                        <input type="hidden" name="tab" value="nonsiswa">
                        <input type="text" name="search" class="form-control form-control-sm" placeholder="Cari Nama/Token/Jabatan..." value="<?= htmlspecialchars($search_query_nonsiswa) ?>">
                        <button type="submit" class="btn btn-sm btn-primary flex-shrink-0">
                            <i class="bi bi-search"></i> <span class="d-none d-md-inline">Filter</span>
                        </button>
                    </form>
                </div>
                <div class="card-body">
                    <form action="pemilih.php?tab=nonsiswa&search=<?= $search_query_nonsiswa ?>" method="POST" id="form-hapus-massal-nonsiswa">
                        <input type="hidden" name="action" value="hapus_massal">
                        
                        <div class="table-responsive">
                            <table class="table table-hover align-middle table-pemilih">
                                <thead class="table-light">
                                    <tr>
                                        <th class="col-cek"><input class="form-check-input" type="checkbox" id="pilih-semua-nonsiswa"></th>
                                        <th class="col-no">No</th>
                                        <th class="col-nis">Token</th>
                                        <th class="col-nama">Nama Lengkap</th>
                                        <th class="col-jabatan">Jabatan</th>
                                        <th class="col-status">Status</th>
                                        <th class="col-aksi text-center">Aksi</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php if (count($pemilih_nonsiswa_list) > 0): ?>
                                        <?php $i = 1; ?>
                                        <?php foreach ($pemilih_nonsiswa_list as $p): ?>
                                        <tr>
                                            <td><input class="form-check-input checkbox-pemilih" type="checkbox" name="pemilih_ids[]" value="<?= $p['id_pemilih'] ?>"></td>
                                            <td><?= $i++ ?></td>
                                            <td><span class="badge bg-secondary"><?= htmlspecialchars($p['nis_token'] ?: '-') ?></span></td>
                                            <td><?= htmlspecialchars($p['nama_lengkap']) ?></td>
                                            <td><?= htmlspecialchars($p['jabatan_non_siswa']) ?></td>
                                            <td>
                                                <?php if ($p['status_memilih'] == 'sudah'): ?>
                                                    <span class="badge bg-success">Sudah</span>
                                                <?php else: ?>
                                                    <span class="badge bg-secondary">Belum</span>
                                                <?php endif; ?>
                                            </td>
                                            <td class="text-center text-nowrap">
                                                <button type="button" class="btn btn-warning btn-sm edit-btn" 
                                                        data-bs-toggle="modal" data-bs-target="#editModal"
                                                        data-id="<?= $p['id_pemilih'] ?>"
                                                        data-nis_token="<?= htmlspecialchars($p['nis_token']) ?>"
                                                        data-nama_lengkap="<?= htmlspecialchars($p['nama_lengkap']) ?>"
                                                        data-tipe_pemilih="<?= $p['tipe_pemilih'] ?>"
                                                        data-kelas_id=""
                                                        data-jabatan_non_siswa="<?= htmlspecialchars($p['jabatan_non_siswa']) ?>">
                                                    <i class="bi bi-pencil-square"></i>
                                                </button>
                                                <button type="button" class="btn btn-danger btn-sm hapus-btn"
                                                        data-bs-toggle="modal" data-bs-target="#hapusModal"
                                                        data-id="<?= $p['id_pemilih'] ?>"
                                                        data-nama="<?= htmlspecialchars($p['nama_lengkap']) ?>">
                                                    <i class="bi bi-trash"></i>
                                                </button>
                                                <?php if ($p['status_memilih'] == 'sudah'): ?>
                                                    <a href="pemilih.php?action=reset_status&id=<?= $p['id_pemilih'] ?>&tab=nonsiswa" class="btn btn-sm btn-info" title="Reset Status" onclick="return confirm('Yakin mereset status pemilih ini?')">
                                                        <i class="bi bi-arrow-counterclockwise"></i>
                                                    </a>
                                                <?php endif; ?>
                                            </td>
                                        </tr>
                                        <?php endforeach; ?>
                                    <?php else: ?>
                                        <tr><td colspan="7" class="text-center">Data pemilih non-siswa tidak ditemukan.</td></tr>
                                    <?php endif; ?>
                                </tbody>
                            </table>
                        </div>
                        
                        <?php if (count($pemilih_nonsiswa_list) > 0): ?>
                        <div class="mt-3">
                            <button type="submit" name="action" value="hapus_massal" class="btn btn-danger" id="tombol-hapus-massal-nonsiswa" disabled>
                                <i class="bi bi-trash-fill me-1"></i> Hapus yang Dipilih
                            </button>
                        </div>
                        <?php endif; ?>
                    </form>
                </div>
            </div>
        </div>
        
    </div> <?php endif; // Akhir dari 'if ($id_tahun_aktif)' ?>
</main>

<div class="modal fade" id="tambahModal" tabindex="-1" aria-labelledby="tambahModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="tambahModalLabel">Tambah Pemilih Baru</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <form action="pemilih.php" method="POST">
                <div class="modal-body">
                    <input type="hidden" name="action" value="tambah_pemilih">
                    <div class="mb-3"><label class="form-label">NIS / Token</label><input type="text" class="form-control" name="nis_token" required></div>
                    <div class="mb-3"><label class="form-label">Nama Lengkap</label><input type="text" class="form-control" name="nama_lengkap" required></div>
                    <div class="mb-3"><label class="form-label">Tipe Pemilih</label><select class="form-select tipe-pemilih-select" name="tipe_pemilih">
                        <option value="Siswa" selected>Siswa</option><option value="Non Siswa">Non Siswa</option>
                    </select></div>
                    
                    <div class="mb-3 keterangan-wrapper keterangan-siswa"><label class="form-label">Kelas</label><select class="form-select" name="kelas_id">
                        <option value="">-- Pilih Kelas --</option>
                        <?php foreach ($kelasList as $kelas): ?>
                            <option value="<?= $kelas['id_kelas'] ?>"><?= htmlspecialchars($kelas['nama_kelas']) ?></option>
                        <?php endforeach; ?>
                    </select></div>
                    
                    <div class="mb-3 keterangan-wrapper keterangan-non-siswa" style="display: none;"><label class="form-label">Jabatan</label><select class="form-select" name="jabatan_non_siswa">
                         <?php foreach ($non_siswa_options as $role): ?><option value="<?= $role ?>"><?= $role ?></option><?php endforeach; ?>
                    </select></div>
                    
                    <div class="mb-3"><label class="form-label">Password (Opsional)</label><input type="password" class="form-control" name="password"></div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
                    <button type="submit" class="btn btn-primary">Tambah</button>
                </div>
            </form>
        </div>
    </div>
</div>

<div class="modal fade" id="editModal" tabindex="-1" aria-labelledby="editModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="editModalLabel">Edit Pemilih</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <form action="pemilih.php" method="POST">
                <div class="modal-body">
                    <input type="hidden" name="action" value="update_pemilih">
                    <input type="hidden" id="edit_pemilih_id" name="id_pemilih">
                    <div class="mb-3"><label class="form-label">NIS / Token</label><input type="text" class="form-control" id="edit_nis_token" name="nis_token" required></div>
                    <div class="mb-3"><label class="form-label">Nama Lengkap</label><input type="text" class="form-control" id="edit_nama_lengkap" name="nama_lengkap" required></div>
                    <div class="mb-3"><label class="form-label">Tipe Pemilih</label><select class="form-select tipe-pemilih-select" id="edit_tipe_pemilih" name="tipe_pemilih">
                        <option value="Siswa">Siswa</option><option value="Non Siswa">Non Siswa</option>
                    </select></div>
                    
                    <div class="mb-3 keterangan-wrapper keterangan-siswa"><label class="form-label">Kelas</label><select class="form-select" id="edit_kelas_id" name="kelas_id">
                        <option value="">-- Pilih Kelas --</option>
                        <?php foreach ($kelasList as $kelas): ?>
                            <option value="<?= $kelas['id_kelas'] ?>"><?= htmlspecialchars($kelas['nama_kelas']) ?></option>
                        <?php endforeach; ?>
                    </select></div>
                    
                    <div class="mb-3 keterangan-wrapper keterangan-non-siswa"><label class="form-label">Jabatan</tabel><select class="form-select" id="edit_jabatan_non_siswa" name="jabatan_non_siswa">
                         <?php foreach ($non_siswa_options as $role): ?><option value="<?= $role ?>"><?= $role ?></option><?php endforeach; ?>
                    </select></div>
                    
                    <div class="mb-3"><label class="form-label">Password Baru (kosongkan jika tidak diubah)</label><input type="password" class="form-control" name="password" placeholder="Masukan password baru"></div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Tutup</button>
                    <button type="submit" class="btn btn-primary">Simpan Perubahan</button>
                </div>
            </form>
        </div>
    </div>
</div>

<div class="modal fade" id="hapusModal" tabindex="-1" aria-labelledby="hapusModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="hapusModalLabel">Konfirmasi Hapus Pemilih</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <form action="pemilih.php" method="POST">
                <div class="modal-body">
                    <input type="hidden" name="action" value="hapus_pemilih">
                    <input type="hidden" id="hapus_pemilih_id" name="id_pemilih_hapus">
                    Apakah Anda yakin ingin menghapus pemilih bernama "<span id="hapus_nama_pemilih" class="fw-bold"></span>"?
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
                    <button type="submit" class="btn btn-danger">Hapus</button>
                </div>
            </form>
        </div>
    </div>
</div>

<script>
// Fungsi untuk modal dinamis (Siswa / Non Siswa)
function updateKeteranganView(selectElement) {
    const modalBody = selectElement.closest('.modal-body');
    if (!modalBody) return;
    const tipe = selectElement.value;
    const siswaView = modalBody.querySelector('.keterangan-siswa');
    const nonSiswaView = modalBody.querySelector('.keterangan-non-siswa');
    if (tipe === 'Siswa') {
        if(siswaView) siswaView.style.display = 'block';
        if(nonSiswaView) nonSiswaView.style.display = 'none';
    } else {
        if(siswaView) siswaView.style.display = 'none';
        if(nonSiswaView) nonSiswaView.style.display = 'block';
    }
}

// Fungsi untuk Hapus Massal
function setupHapusMassal(tabId) {
    const tabPane = document.getElementById('nav-' + tabId);
    if (!tabPane) return;

    const pilihSemuaCheckbox = tabPane.querySelector('#pilih-semua-' + tabId);
    const pemilihCheckboxes = tabPane.querySelectorAll('.checkbox-pemilih');
    
    // === PERBAIKAN TYPO DI SINI ===
    // Baris yang salah sebelumnya: const tombolHapusMassal = tabPane.querySelector('#tombol-hapus-massal-'Hapus-massal-' + tabId);
    // Baris yang benar:
    const tombolHapusMassal = tabPane.querySelector('#tombol-hapus-massal-' + tabId);
    
    const formHapusMassal = tabPane.querySelector('#form-hapus-massal-' + tabId);

    if(!pilihSemuaCheckbox || pemilihCheckboxes.length === 0 || !tombolHapusMassal) return;

    function toggleTombolHapus() {
        const adaYangDipilih = Array.from(pemilihCheckboxes).some(cb => cb.checked);
        tombolHapusMassal.disabled = !adaYangDipilih;
    }

    pilihSemuaCheckbox.addEventListener('change', function() {
        pemilihCheckboxes.forEach(checkbox => checkbox.checked = this.checked);
        toggleTombolHapus();
    });

    pemilihCheckboxes.forEach(checkbox => {
        checkbox.addEventListener('change', function() {
            if (!this.checked) {
                pilihSemuaCheckbox.checked = false;
            } else {
                const semuaDipilih = Array.from(pemilihCheckboxes).every(cb => cb.checked);
                pilihSemuaCheckbox.checked = semuaDipilih;
            }
            toggleTombolHapus();
        });
    });
    
    if(formHapusMassal) {
        formHapusMassal.addEventListener('submit', function(e) {
            // Periksa apakah tombol hapus massal yang memicu submit
            if (!document.activeElement || document.activeElement.id !== 'tombol-hapus-massal-' + tabId) {
                // Jika bukan tombol hapus massal (misal: user menekan Enter di form filter), batalkan submit form hapus
                if (document.activeElement.type === 'text' || document.activeElement.type === 'select-one') {
                     e.preventDefault();
                }
                return;
            }

            const jumlahDipilih = tabPane.querySelectorAll('.checkbox-pemilih:checked').length;
            if(jumlahDipilih > 0) {
                if(!confirm(`Apakah Anda yakin ingin menghapus ${jumlahDipilih} pemilih yang dipilih?`)) e.preventDefault();
            } else { e.preventDefault(); }
        });
    }
    toggleTombolHapus();
}

document.addEventListener('DOMContentLoaded', function() {
    // 1. Inisialisasi dropdown dinamis di semua modal
    document.querySelectorAll('.tipe-pemilih-select').forEach(select => {
        updateKeteranganView(select); 
        select.addEventListener('change', function() { updateKeteranganView(this); });
    });

    // 2. Inisialisasi modal Edit
    const editModal = document.getElementById('editModal');
    if (editModal) {
        editModal.addEventListener('show.bs.modal', function (event) {
            const button = event.relatedTarget;
            document.getElementById('edit_pemilih_id').value = button.getAttribute('data-id');
            document.getElementById('edit_nis_token').value = button.getAttribute('data-nis_token');
            document.getElementById('edit_nama_lengkap').value = button.getAttribute('data-nama_lengkap');
            
            const tipePemilih = button.getAttribute('data-tipe_pemilih');
            const selectTipe = document.getElementById('edit_tipe_pemilih');
            selectTipe.value = tipePemilih;
            
            updateKeteranganView(selectTipe);
            
            if (tipePemilih === 'Siswa') {
                document.getElementById('edit_kelas_id').value = button.getAttribute('data-kelas_id');
            } else {
                document.getElementById('edit_jabatan_non_siswa').value = button.getAttribute('data-jabatan_non_siswa');
            }
        });
    }

    // 3. Inisialisasi modal Hapus
    const hapusModal = document.getElementById('hapusModal');
    if (hapusModal) {
        hapusModal.addEventListener('show.bs.modal', function (event) {
            const button = event.relatedTarget;
            document.getElementById('hapus_pemilih_id').value = button.getAttribute('data-id');
            document.getElementById('hapus_nama_pemilih').textContent = button.getAttribute('data-nama');
        });
    }

    // 4. Inisialisasi Hapus Massal untuk kedua tab
    setupHapusMassal('siswa');
    setupHapusMassal('nonsiswa');
});
</script>

<?php include 'footer.php'; ?>