/**
 * Main Entry Point Kelompok C4A.
 * Menghubungkan pengambilan data dengan rendering UI dan interaksi halaman.
 */

import { getStaffData, getSopData, getFaqData } from './data.js';
import {
    renderStaffCards,
    renderSopCards,
    renderFaqSection,
    initSopInteraction,
    initAnimations,
    initFaq
} from './ui.js';

// Cache data secara global untuk mendukung rendering UI
let cachedStaffData = [];
let cachedSopData = [];

/**
 * Menginisialisasi aplikasi dengan mengambil seluruh data secara pararel,
 * merender konten awal, serta mendaftarkan event listener interaksi UI.
 * @returns {Promise<void>}
 */
async function initApp() {
    try {
        const [staffData, sopData, faqData] = await Promise.all([
            getStaffData(),
            getSopData(),
            getFaqData()
        ]);

        cachedStaffData = staffData || [];
        cachedSopData = sopData || [];

        renderStaffCards(cachedStaffData);
        renderSopCards(cachedSopData);
        renderFaqSection(faqData || []);

        initSopInteraction();
        initFaq();

        // Memberikan sedikit waktu tunda (jeda) agar rendering DOM selesai sebelum memulai animasi.
        setTimeout(() => {
            initAnimations();
        }, 100);
    } catch (error) {
        console.error('Terjadi kesalahan saat menginisialisasi aplikasi C4A:', error);
    }
}

// NOTE: Fitur bilingual sudah dihapus - languageChanged listener tidak lagi diperlukan
// Silakan hapus atau archive jika ada implementasi global untuk bahasa

// Jalankan inisialisasi aplikasi saat DOM siap
document.addEventListener('DOMContentLoaded', initApp);
