document.addEventListener("DOMContentLoaded", function () {
    const selectYemek = document.getElementById("ygh-yemek-sec");
    const detayPanel = document.getElementById("ygh-detay-panel");
    const inputKisi = document.getElementById("ygh-kisi-input");
    
    let seciliTarifVerisi = null;

    if (!selectYemek) return;

    selectYemek.addEventListener("change", function () {
        const selectedOption = this.options[this.selectedIndex];
        if (!selectedOption.value) {
            detayPanel.style.display = "none";
            seciliTarifVerisi = null;
            return;
        }

        seciliTarifVerisi = {
            baslik: selectedOption.text,
            tabanKisi: parseFloat(selectedOption.getAttribute("data-taban")) || 4,
            gorsel: selectedOption.getAttribute("data-gorsel"),
            malzemeler: JSON.parse(selectedOption.getAttribute("data-malzemeler") || "[]"),
            hazirlanis: JSON.parse(selectedOption.getAttribute("data-hazirlanis") || '""')
        };

        inputKisi.value = seciliTarifVerisi.tabanKisi;
        document.getElementById("ygh-yemek-gorsel").src = seciliTarifVerisi.gorsel;
        detayPanel.style.display = "block";
        hesaplaVeGoster();
    });

    inputKisi.addEventListener("input", hesaplaVeGoster);

    function hesaplaVeGoster() {
        if (!seciliTarifVerisi) return;

        let yeniKisi = parseInt(inputKisi.value) || 1;
        if (yeniKisi < 1) yeniKisi = 1;

        let oran = yeniKisi / seciliTarifVerisi.tabanKisi;

        document.getElementById("ygh-tarif-baslik").textContent = seciliTarifVerisi.baslik + " (" + yeniKisi + " Kişilik)";

        let tKalori = 0, tYag = 0, tProtein = 0, tKarbonhidrat = 0, tKalsiyum = 0, tDemir = 0;
        let ul = document.getElementById("ygh-dinamik-malzemeler");
        ul.innerHTML = "";

        seciliTarifVerisi.malzemeler.forEach(m => {
            let hesapMiktar = m.miktar * oran;
            if (hesapMiktar % 1 !== 0) hesapMiktar = hesapMiktar.toFixed(1);

            let malzemeOran = hesapMiktar / 100.0;
            tKalori += (parseFloat(m.kalori) || 0) * malzemeOran;
            tYag += (parseFloat(m.yag) || 0) * malzemeOran;
            tProtein += (parseFloat(m.protein) || 0) * malzemeOran;
            tKarbonhidrat += (parseFloat(m.karbonhidrat) || 0) * malzemeOran;
            tKalsiyum += (parseFloat(m.kalsiyum) || 0) * malzemeOran;
            tDemir += (parseFloat(m.demir) || 0) * malzemeOran;

            let li = document.createElement("li");
            li.innerHTML = `<strong>${m.ad}:</strong> <span style="color:#d9534f; font-weight:bold;">${hesapMiktar}</span> ${m.birim}`;
            ul.appendChild(li);
        });

        document.getElementById("p-kalori").textContent = tKalori.toFixed(1);
        document.getElementById("p-yag").textContent = tYag.toFixed(1);
        document.getElementById("p-protein").textContent = tProtein.toFixed(1);
        document.getElementById("p-karbonhidrat").textContent = tKarbonhidrat.toFixed(1);
        document.getElementById("p-kalsiyum").textContent = tKalsiyum.toFixed(1);
        document.getElementById("p-demir").textContent = tDemir.toFixed(1);

        document.getElementById("ygh-tarif-hazirlanis").innerHTML = seciliTarifVerisi.hazirlanis;
    }

    // PDF Raporu Oluşturma
    document.getElementById("ygh-pdf-indir").addEventListener("click", function () {
        if (!seciliTarifVerisi) return;
        let yeniKisi = parseInt(inputKisi.value) || 1;
        let oran = yeniKisi / seciliTarifVerisi.tabanKisi;

        const { jsPDF } = window.jspdf;
        const doc = new jsPDF();

        doc.setFont("helvetica", "bold");
        doc.setFontSize(16);
        doc.text(seciliTarifVerisi.baslik + " (" + yeniKisi + " Kisilik Raporu)", 15, 20);

        doc.setFontSize(11);
        doc.setFont("helvetica", "normal");
        doc.text("Kalori: " + document.getElementById("p-kalori").textContent + " kcal | Yag: " + document.getElementById("p-yag").textContent + "g", 15, 30);
        doc.text("Protein: " + document.getElementById("p-protein").textContent + "g | Karbonhidrat: " + document.getElementById("p-karbonhidrat").textContent + "g", 15, 38);
        doc.text("Kalsiyum: " + document.getElementById("p-kalsiyum").textContent + "mg | Demir: " + document.getElementById("p-demir").textContent + "mg", 15, 46);

        doc.setFont("helvetica", "bold");
        doc.text("Malzeme Listesi:", 15, 58);
        doc.setFont("helvetica", "normal");

        let yPos = 66;
        seciliTarifVerisi.malzemeler.forEach(m => {
            let hesapMiktar = (m.miktar * oran);
            if (hesapMiktar % 1 !== 0) hesapMiktar = hesapMiktar.toFixed(1);
            doc.text(`- ${m.ad}: ${hesapMiktar} ${m.birim}`, 20, yPos);
            yPos += 7;
        });

        yPos += 5;
        doc.setFont("helvetica", "bold");
        doc.text("Hazirlanisi:", 15, yPos);
        yPos += 7;
        doc.setFont("helvetica", "normal");

        let tempDiv = document.createElement("div");
        tempDiv.innerHTML = seciliTarifVerisi.hazirlanis;
        let temizMetin = tempDiv.textContent || tempDiv.innerText || "";
        let splitText = doc.splitTextToSize(temizMetin, 180);
        doc.text(splitText, 20, yPos);

        doc.save(seciliTarifVerisi.baslik.toLowerCase().replace(/\s+/g, '-') + '-' + yeniKisi + '-kisi.pdf');
    });
});