<?php
// 1. Koneksi Database (Diasumsikan config/koneksi.php menyediakan objek $conn)
include 'config/koneksi.php';

// FUNGSI UMUM: Mendapatkan ID Tahun Aktif Default
// (Fungsi ini harus ada, jika tidak, Anda harus membuatnya di file koneksi atau di sini)
if (!function_exists('getTahunAktifId')) {
    function getTahunAktifId($conn) {
        $sql = "SELECT id FROM tahun_aktif WHERE is_aktif = 1 LIMIT 1";
        $result = $conn->query($sql);
        if ($result && $result->num_rows > 0) {
            return $result->fetch_assoc()['id'];
        }
        // Jika tidak ada tahun aktif, kembalikan 0 atau ID tahun terakhir
        return 0; 
    }
}

// FUNGSI BARU: Mengambil Daftar Tahun yang Tersedia (PERBAIKAN ERROR NAMA KOLOM)
function getAvailableYears($conn) {
    // Menggunakan kolom 'tahun' dari tabel tahun_aktif dan memberikan ALIAS 'nama_tahun'
    $sql = "SELECT id, tahun AS nama_tahun FROM tahun_aktif ORDER BY tahun DESC";
    $result = $conn->query($sql);
    $data = [];
    if ($result && $result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
            $data[] = $row;
        }
    }
    return $data;
}

// Mendapatkan ID Tahun Aktif Default (dari sistem)
$default_tahun_aktif_id = getTahunAktifId($conn); 

// Ambil Tahun yang Dipilih dari Dropdown atau gunakan default
// Menggunakan $default_tahun_aktif_id sebagai fallback jika parameter GET 'tahun' kosong
$selected_tahun_id = isset($_GET['tahun']) ? intval($_GET['tahun']) : $default_tahun_aktif_id;


// FUNGSI UMUM: Mengambil Detail Kegiatan (untuk dropdown input) - HANYA TAHUN AKTIF DEFAULT
function getDetailKegiatan($conn, $tahun_aktif_id) {
    // Menggunakan Prepared Statement untuk keamanan
    $sql = "SELECT 
                dk.id, 
                dk.nama_detail, 
                sk.nama_subkomponen, 
                k.nama_komponen, 
                skg.nama_subkegiatan, 
                kg.nama_kegiatan, 
                p.nama_program
            FROM detail_kegiatan dk
            JOIN subkomponen sk ON dk.subkomponen_id = sk.id
            JOIN komponen k ON sk.komponen_id = k.id
            JOIN subkegiatan skg ON k.subkegiatan_id = skg.id
            JOIN kegiatan kg ON skg.kegiatan_id = kg.id
            JOIN program p ON kg.program_id = p.id
            WHERE p.tahun_aktif_id = ? 
            ORDER BY dk.nama_detail";
            
    $stmt = $conn->prepare($sql);
    $tahun_aktif_id_int = (int)$tahun_aktif_id; 
    $stmt->bind_param("i", $tahun_aktif_id_int);
    $stmt->execute();
    $result = $stmt->get_result();
    
    $data = [];
    if ($result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
            $data[] = $row;
        }
    }
    $stmt->close();
    return $data;
}

// FUNGSI UMUM: Mengambil data Master Aktivitas berdasarkan Tahun yang dipilih (Filter Tabel)
function getMasterAktivitasList($conn, $selected_tahun_id) {
    $sql = "SELECT 
                nam.id, 
                dk.nama_detail, 
                nam.jenis_kegiatan, 
                nam.nama_aktivitas, 
                nam.satuan_bayar, 
                nam.harga_satuan, 
                nam.tgl_mulai, 
                nam.tgl_selesai
            FROM 
                nama_aktivitas_master nam
            JOIN 
                detail_kegiatan dk ON nam.detail_kegiatan_id = dk.id
            JOIN 
                subkomponen sk ON dk.subkomponen_id = sk.id
            JOIN 
                komponen k ON sk.komponen_id = k.id
            JOIN 
                subkegiatan skg ON k.subkegiatan_id = skg.id
            JOIN 
                kegiatan kg ON skg.kegiatan_id = kg.id
            JOIN 
                program p ON kg.program_id = p.id
            WHERE 
                p.tahun_aktif_id = ?
            ORDER BY 
                nam.id DESC"; 
    
    $stmt = $conn->prepare($sql);
    $selected_tahun_id_int = (int)$selected_tahun_id;
    $stmt->bind_param("i", $selected_tahun_id_int);
    $stmt->execute();
    $result = $stmt->get_result();

    $data = [];
    if ($result && $result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
            $data[] = $row;
        }
    }
    $stmt->close();
    return $data;
}

// FUNGSI UMUM: Mengambil 1 baris data Master Aktivitas berdasarkan ID
function getAktivitasById($conn, $id) {
    $id = $conn->real_escape_string($id);
    $sql = "SELECT * FROM nama_aktivitas_master WHERE id = '$id'";
    $result = $conn->query($sql);
    return $result->fetch_assoc();
}

$status_message = "";
$mode = 'input'; 
$data_edit = []; 

// --- 2. LOGIKA DELETE ---
if (isset($_GET['action']) && $_GET['action'] == 'hapus' && isset($_GET['id'])) {
    $id_hapus = $conn->real_escape_string($_GET['id']);
    $sql_delete = "DELETE FROM nama_aktivitas_master WHERE id = '$id_hapus'";
    if ($conn->query($sql_delete) === TRUE) {
        $status_message = "Data Master Aktivitas dengan ID $id_hapus berhasil dihapus! 🗑️";
    } else {
        $status_message = "Error saat menghapus: " . $conn->error;
    }
    // Redirect kembali ke halaman dengan tahun yang dipilih
    header("Location: input_master_aktivitas.php?status=" . urlencode($status_message) . "&tahun=" . $selected_tahun_id);
    exit();
}

// --- 3. LOGIKA EDIT (Mengambil Data Lama) ---
if (isset($_GET['action']) && $_GET['action'] == 'edit' && isset($_GET['id'])) {
    $mode = 'edit';
    $data_edit = getAktivitasById($conn, $_GET['id']);
    if (!$data_edit) {
        $status_message = "Data tidak ditemukan!";
        $mode = 'input';
    }
}

// --- 4. LOGIKA SIMPAN (INSERT atau UPDATE) ---
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Ambil tahun_id yang dipilih dari POST (Jika Anda ingin mempertahankan filter tahun setelah POST)
    $tahun_post_redirect = isset($_POST['redirect_tahun']) ? intval($_POST['redirect_tahun']) : $default_tahun_aktif_id;

    $id_post = isset($_POST['id_aktivitas']) ? $conn->real_escape_string($_POST['id_aktivitas']) : '';
    $detail_kegiatan_id = $conn->real_escape_string($_POST['detail_kegiatan_id']);
    $jenis_kegiatan = $conn->real_escape_string($_POST['jenis_kegiatan']);
    $nama_aktivitas = $conn->real_escape_string($_POST['nama_aktivitas']);
    $satuan_bayar = $conn->real_escape_string($_POST['satuan_bayar']);
    $harga_satuan = $conn->real_escape_string($_POST['harga_satuan']);
    $tgl_mulai = $conn->real_escape_string($_POST['tgl_mulai']);
    $tgl_selesai = $conn->real_escape_string($_POST['tgl_selesai']);

    if (empty($id_post)) {
        // Mode INSERT BARU
        $sql_insert = "INSERT INTO nama_aktivitas_master (detail_kegiatan_id, jenis_kegiatan, nama_aktivitas, satuan_bayar, harga_satuan, tgl_mulai, tgl_selesai)
                       VALUES ('$detail_kegiatan_id', '$jenis_kegiatan', '$nama_aktivitas', '$satuan_bayar', '$harga_satuan', '$tgl_mulai', '$tgl_selesai')";
        
        if ($conn->query($sql_insert) === TRUE) {
            $status_message = "Data Master Aktivitas berhasil disimpan! 🎉";
        } else {
            $status_message = "Error: " . $conn->error;
        }

    } else {
        // Mode UPDATE DATA LAMA
        $sql_update = "UPDATE nama_aktivitas_master SET 
                       detail_kegiatan_id = '$detail_kegiatan_id', 
                       jenis_kegiatan = '$jenis_kegiatan', 
                       nama_aktivitas = '$nama_aktivitas', 
                       satuan_bayar = '$satuan_bayar', 
                       harga_satuan = '$harga_satuan', 
                       tgl_mulai = '$tgl_mulai', 
                       tgl_selesai = '$tgl_selesai'
                       WHERE id = '$id_post'";

        if ($conn->query($sql_update) === TRUE) {
            $status_message = "Data Master Aktivitas ID $id_post berhasil diperbarui! ✅";
        } else {
            $status_message = "Error saat memperbarui: " . $conn->error;
        }
        $mode = 'input'; 
    }
    // Redirect ke halaman dengan tahun yang terakhir dipilih
    header("Location: input_master_aktivitas.php?status=" . urlencode($status_message) . "&tahun=" . $tahun_post_redirect);
    exit();
} elseif (isset($_GET['status'])) {
    $status_message = urldecode($_GET['status']);
}


// --- PENGAMBILAN DATA UTAMA ---
$available_years = getAvailableYears($conn);
// Detail Kegiatan (dropdown input) hanya diambil berdasarkan default tahun aktif
$detail_kegiatan_list = getDetailKegiatan($conn, $default_tahun_aktif_id);
// Daftar Master Aktivitas (tabel) difilter berdasarkan tahun yang dipilih user ($selected_tahun_id)
$master_aktivitas_list = getMasterAktivitasList($conn, $selected_tahun_id); 

// Cari nama tahun yang dipilih untuk ditampilkan di header tabel
$selected_year_name = 'Tahun Tidak Dikenal';
foreach($available_years as $tahun) {
    if ($tahun['id'] == $selected_tahun_id) {
        $selected_year_name = $tahun['nama_tahun'];
        break;
    }
}

// 2. Sertakan Header (di root)
include 'header.php';
?>

<style>
    .card-container {
        background-color: #fff;
        padding: 25px;
        margin-bottom: 25px;
        border-radius: 8px;
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05);
        border: 1px solid #e0e0e0;
    }
    .status-message {
        padding: 15px;
        margin-bottom: 20px;
        border-radius: 6px;
        font-weight: bold;
    }
    .status-message.success {
        background-color: #d4edda;
        color: #155724;
        border-color: #c3e6cb;
    }
    .status-message.error {
        background-color: #f8d7da;
        color: #721c24;
        border-color: #f5c6cb;
    }
    .form-group label {
        font-weight: 600;
        margin-bottom: 5px;
        display: block;
    }
    .form-group input[type="text"],
    .form-group input[type="date"],
    .form-group select {
        width: 100%;
        padding: 10px;
        margin-bottom: 15px;
        border: 1px solid #ccc;
        border-radius: 4px;
        box-sizing: border-box;
    }
    .hierarki-info {
        padding: 15px;
        background-color: #f9f9f9;
        border: 1px solid #eee;
        border-radius: 4px;
        margin-bottom: 20px;
        line-height: 1.6;
    }
    .hierarki-info p {
        margin: 0;
        font-size: 0.95em;
    }
    .hierarki-info span {
        font-weight: bold;
        color: #007bff;
    }
    .date-group {
        display: flex;
        gap: 20px;
    }
    .date-group .form-group {
        flex: 1;
    }
    .styled-table {
        width: 100%;
        border-collapse: collapse;
        font-size: 0.95em;
    }
    .styled-table thead tr {
        background-color: #007bff;
        color: #ffffff;
        text-align: left;
    }
    .styled-table th,
    .styled-table td {
        padding: 10px 12px;
        border: 1px solid #dddddd;
        text-align: left;
    }
    .styled-table tbody tr:nth-child(even) {
        background-color: #f3f3f3;
    }
    .styled-table tbody tr:hover {
        background-color: #f1f7fe;
    }
    .btn-primary {
        background-color: #007bff;
        color: white;
        border: none;
        padding: 10px 20px;
        border-radius: 4px;
        cursor: pointer;
        transition: background-color 0.3s;
        text-decoration: none;
    }
    .btn-primary:hover {
        background-color: #0056b3;
    }
    .btn-secondary {
        background-color: #6c757d;
        color: white;
        border: none;
        padding: 10px 20px;
        border-radius: 4px;
        cursor: pointer;
        transition: background-color 0.3s;
        text-decoration: none;
        margin-left: 10px;
    }
    .filter-tahun-container {
        display: flex;
        align-items: center;
        margin-bottom: 20px;
        gap: 10px;
        padding: 15px;
        background-color: #e9ecef;
        border-radius: 6px;
    }
    .filter-tahun-container select {
        width: 200px;
        padding: 8px;
        border-radius: 4px;
        border: 1px solid #ced4da;
    }
    
</style>
<?php if (isset($status_message) && !empty($status_message)): ?>
        <div class="status-message <?php echo strpos($status_message, 'Error') !== false ? 'error' : 'success'; ?>">
            <?php echo $status_message; ?>
        </div>
    <?php endif; ?>

    <div class="card-container">
        <form method="POST" action="">
            <?php if ($mode == 'edit'): ?>
                <input type="hidden" name="id_aktivitas" value="<?php echo htmlspecialchars($data_edit['id']); ?>">
                <h2>✏️ Edit Master Aktivitas (ID: <?php echo htmlspecialchars($data_edit['id']); ?>)</h2>
            <?php else: ?>
                <h2>➕ Input Master Aktivitas Baru</h2>
            <?php endif; ?>

            <input type="hidden" name="redirect_tahun" value="<?php echo $selected_tahun_id; ?>">
            
            <hr>

            <h3>Informasi Kegiatan Induk</h3>
            <div class="form-group">
                <label for="detail_kegiatan_id">Pilih Detail Kegiatan</label>
                <select id="detail_kegiatan_id" name="detail_kegiatan_id" required onchange="displayHierarki()">
                    <option value="">-- Pilih Detail Kegiatan (Tahun Aktif) --</option>
                    <?php 
                    if (empty($detail_kegiatan_list)): ?>
                        <option value="" disabled style="color: red; font-weight: bold;">-- TIDAK ADA DETAIL KEGIATAN UNTUK TAHUN AKTIF INI --</option>
                    <?php 
                    endif;
                    
                    foreach ($detail_kegiatan_list as $dk): ?>
                        <option
                            value="<?php echo $dk['id']; ?>"
                            data-program="<?php echo htmlspecialchars($dk['nama_program']); ?>"
                            data-kegiatan="<?php echo htmlspecialchars($dk['nama_kegiatan']); ?>"
                            data-subkegiatan="<?php echo htmlspecialchars($dk['nama_subkegiatan']); ?>"
                            data-komponen="<?php echo htmlspecialchars($dk['nama_komponen']); ?>"
                            data-subkomponen="<?php echo htmlspecialchars($dk['nama_subkomponen']); ?>"
                            <?php 
                            if ($mode == 'edit' && $dk['id'] == ($data_edit['detail_kegiatan_id'] ?? null)) {
                                echo 'selected';
                            }
                            ?>
                            >
                            <?php echo $dk['nama_detail']; ?>
                        </option>
                    <?php endforeach; ?>
                </select>
            </div>

            <div class="form-group">
                <label>Hierarki Kegiatan Terkait (Otomatis)</label>
                <div class="hierarki-info" id="hierarki-display">
                    <p>Program: <span id="program">-</span></p>
                    <p>Kegiatan: <span id="kegiatan">-</span></p>
                    <p>Subkegiatan: <span id="subkegiatan">-</span></p>
                    <p>Komponen: <span id="komponen">-</span></p>
                    <p>Subkomponen: <span id="subkomponen">-</span></p>
                </div>
            </div>

            <hr>

            <h3>Detail Aktivitas Biaya</h3>

            <div class="form-group">
                <label for="nama_aktivitas">Nama Aktivitas</label>
                <input type="text" id="nama_aktivitas" name="nama_aktivitas" required placeholder="Contoh: Survei Harga Konsumen Januari" 
                    value="<?php echo ($mode == 'edit') ? htmlspecialchars($data_edit['nama_aktivitas']) : ''; ?>">
            </div>

            <div class="date-group">
                <div class="form-group">
                    <label for="jenis_kegiatan">Jenis Kegiatan</label>
                    <select id="jenis_kegiatan" name="jenis_kegiatan" required>
                        <option value="Pendataan" <?php echo ($mode == 'edit' && ($data_edit['jenis_kegiatan'] ?? null) == 'Pendataan') ? 'selected' : ''; ?>>Pendataan</option>
                        <option value="Pengolahan" <?php echo ($mode == 'edit' && ($data_edit['jenis_kegiatan'] ?? null) == 'Pengolahan') ? 'selected' : ''; ?>>Pengolahan</option>
                    </select>
                </div>

                <div class="form-group">
                    <label for="satuan_bayar">Satuan Bayar</label>
                    <input type="text" id="satuan_bayar" name="satuan_bayar" required placeholder="Contoh: Dokumen / Blok Sensus"
                        value="<?php echo ($mode == 'edit') ? htmlspecialchars($data_edit['satuan_bayar']) : ''; ?>">
                </div>

                <div class="form-group">
                    <label for="harga_satuan">Harga Satuan (Rp)</label>
                    <input type="text" id="harga_satuan" name="harga_satuan" required pattern="[0-9]*" title="Masukkan hanya angka" placeholder="Contoh: 10000"
                        value="<?php echo ($mode == 'edit') ? htmlspecialchars($data_edit['harga_satuan']) : ''; ?>">
                </div>
            </div>

            <div class="date-group">
                <div class="form-group">
                    <label for="tgl_mulai">Tanggal Mulai</label>
                    <input type="date" id="tgl_mulai" name="tgl_mulai" required
                        value="<?php echo ($mode == 'edit') ? htmlspecialchars($data_edit['tgl_mulai']) : ''; ?>">
                </div>

                <div class="form-group">
                    <label for="tgl_selesai">Tanggal Selesai</label>
                    <input type="date" id="tgl_selesai" name="tgl_selesai" required
                        value="<?php echo ($mode == 'edit') ? htmlspecialchars($data_edit['tgl_selesai']) : ''; ?>">
                </div>
            </div>


            <button type="submit" class="btn-primary">
                <?php echo ($mode == 'edit') ? '💾 Update Perubahan' : '✅ Simpan Master Aktivitas'; ?>
            </button>
            <?php if ($mode == 'edit'): ?>
                <a href="input_master_aktivitas.php?tahun=<?php echo $selected_tahun_id; ?>" class="btn-secondary">❌ Batal Edit</a>
            <?php endif; ?>
        </form>
    </div>

    <hr style="margin-top: 30px; margin-bottom: 30px;">

    <div class="card-container">
        <h2>📋 Daftar Master Aktivitas Tersimpan</h2>
        
        <div class="filter-tahun-container">
            <label for="filter_tahun" style="margin: 0;">Filter Tahun Kegiatan:</label>
            <select id="filter_tahun" onchange="window.location.href='input_master_aktivitas.php?tahun=' + this.value;">
                <?php foreach ($available_years as $tahun): ?>
                    <option 
                        value="<?php echo $tahun['id']; ?>"
                        <?php echo ($tahun['id'] == $selected_tahun_id) ? 'selected' : ''; ?>
                        >
                        <?php echo htmlspecialchars($tahun['nama_tahun']) . (($tahun['id'] == $default_tahun_aktif_id) ? ' (Aktif)' : ''); ?>
                    </option>
                <?php endforeach; ?>
            </select>
        </div>
        
        <p style="margin-top: -10px; margin-bottom: 20px; font-style: italic; font-size: 0.9em;">Menampilkan <?php echo count($master_aktivitas_list); ?> Aktivitas pada tahun <?php echo $selected_year_name; ?>.</p>
        

        <?php if (empty($master_aktivitas_list)): ?>
            <div style="padding: 15px; background-color: #fff3cd; border: 1px solid #ffeeba; color: #856404; border-radius: 4px;">
                Tidak ada Master Aktivitas yang tersimpan untuk tahun <?php echo $selected_year_name; ?>.
            </div>
        <?php else: ?>
            <div style="overflow-x: auto;">
                <table class="styled-table">
                    <thead>
                        <tr>
                            <th style="width: 25%;">Detail Kegiatan</th>
                            <th style="width: 30%;">Nama Aktivitas</th>
                            <th style="width: 10%;">Jenis</th>
                            <th style="width: 15%;">Biaya</th>
                            <th style="width: 10%;">Periode</th> 
                            <th style="width: 10%; text-align: center;">Aksi</th> 
                        </tr>
                    </thead>
                    <tbody>
                        <?php foreach ($master_aktivitas_list as $row): ?>
                            <tr>
                                <td><?php echo htmlspecialchars($row['nama_detail']); ?></td>
                                <td style="font-weight: bold;"><?php echo htmlspecialchars($row['nama_aktivitas']); ?></td>
                                <td style="text-align: center;"><?php echo htmlspecialchars($row['jenis_kegiatan']); ?></td>
                                <td>
                                    <?php 
                                    $harga_rp = 'Rp ' . number_format($row['harga_satuan'], 0, ',', '.');
                                    echo htmlspecialchars($row['satuan_bayar']) . "<br><span style='color: #28a745; font-weight: 600; font-size: 0.9em;'>" . $harga_rp . "</span>"; 
                                    ?>
                                </td>
                                <td>
                                    <?php 
                                    // Pastikan tanggal tidak null atau 0000-00-00 sebelum format
                                    $tgl_mulai = ($row['tgl_mulai'] && $row['tgl_mulai'] != '0000-00-00') ? date('d/m/y', strtotime($row['tgl_mulai'])) : '-';
                                    $tgl_selesai = ($row['tgl_selesai'] && $row['tgl_selesai'] != '0000-00-00') ? date('d/m/y', strtotime($row['tgl_selesai'])) : '-';
                                    echo $tgl_mulai . " - " . $tgl_selesai; 
                                    ?>
                                </td>
                                <td style="text-align: center; white-space: nowrap;">
                                    <a href="input_master_aktivitas.php?action=edit&id=<?php echo $row['id']; ?>&tahun=<?php echo $selected_tahun_id; ?>" 
                                       style="background-color: #ffc107; color: black; padding: 5px 8px; border-radius: 3px; text-decoration: none; font-size: 0.8em; font-weight: 600;">Edit</a>
                                    <a href="input_master_aktivitas.php?action=hapus&id=<?php echo $row['id']; ?>&tahun=<?php echo $selected_tahun_id; ?>" 
                                       onclick="return confirmDelete(<?php echo $row['id']; ?>)"
                                       style="background-color: #dc3545; color: white; padding: 5px 8px; border-radius: 3px; text-decoration: none; font-size: 0.8em; font-weight: 600; margin-left: 5px;">Hapus</a>
                                </td>
                            </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            </div>
        <?php endif; ?>
    </div>

    <script>
        document.addEventListener('DOMContentLoaded', (event) => {
            // Panggil displayHierarki() saat halaman dimuat (untuk mode Edit dan Initial Load)
            displayHierarki(); 
        });

        function displayHierarki() {
            const select = document.getElementById('detail_kegiatan_id');
            const selectedOption = select.options[select.selectedIndex];
            
            if (selectedOption && selectedOption.value) {
                document.getElementById('program').textContent = selectedOption.getAttribute('data-program');
                document.getElementById('kegiatan').textContent = selectedOption.getAttribute('data-kegiatan');
                document.getElementById('subkegiatan').textContent = selectedOption.getAttribute('data-subkegiatan');
                document.getElementById('komponen').textContent = selectedOption.getAttribute('data-komponen');
                document.getElementById('subkomponen').textContent = selectedOption.getAttribute('data-subkomponen');
            } else {
                document.getElementById('program').textContent = '-';
                document.getElementById('kegiatan').textContent = '-';
                document.getElementById('subkegiatan').textContent = '-';
                document.getElementById('komponen').textContent = '-';
                document.getElementById('subkomponen').textContent = '-';
            }
        }

        function confirmDelete(id) {
            return confirm("Apakah Anda yakin ingin menghapus Master Aktivitas ID " + id + "? Tindakan ini tidak dapat dibatalkan.");
        }
    </script>

<?php
// 3. Sertakan Footer (di root)


include 'footer.php';

// Tutup koneksi database
$conn->close();
?>
<script>
// --- FITUR: FILTER LANGSUNG SAAT DROPDOWN DIKETIK ---

// Target dropdown
const dropdown = document.getElementById("detail_kegiatan_id");

// Simpan semua opsi asli agar bisa dipulihkan setelah difilter
let originalOptions = Array.from(dropdown.options);

// Event: Ketik saat dropdown fokus
dropdown.addEventListener("keydown", function(e) {
    const key = e.key.toLowerCase();

    // Abaikan tombol kontrol (shift, ctrl, arrow, dll)
    if (key.length !== 1) return;

    // Tambahkan huruf ke buffer pencarian
    searchBuffer += key;
    filterDropdown(searchBuffer);

    // Reset buffer setelah 1 detik tidak mengetik
    clearTimeout(typingTimer);
    typingTimer = setTimeout(() => searchBuffer = "", 1000);
});

let searchBuffer = "";
let typingTimer = null;

// Fungsi filter
function filterDropdown(keyword) {
    const lowerKeyword = keyword.toLowerCase();

    // Hapus semua opsi
    dropdown.innerHTML = "";

    // Tampilkan kembali opsi yang cocok
    originalOptions.forEach(opt => {
        if (opt.text.toLowerCase().includes(lowerKeyword) || opt.value === "") {
            dropdown.appendChild(opt);
        }
    });
}

// Event: Saat dropdown blur → kembalikan ke opsi normal
dropdown.addEventListener("blur", function() {
    dropdown.innerHTML = "";
    originalOptions.forEach(opt => dropdown.appendChild(opt));
});
</script>