<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Skrining Awal BED</title>
<script src="https://cdn.tailwindcss.com"></script>
<style>
/* CSS Anda tetap sama */
body { font-family: "Inter", sans-serif; background-image: linear-gradient(to right top, #d16ba5, #c777b9, #ba83ca, #aa8fd8, #9a9ae1, #8aa7ec, #79b3f4, #69bff8, #52cffe, #41dfff, #46eefa, #5ffbf1); min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.container { background-color: rgba(255, 255, 255, 0.95); border-radius: 2rem; box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2); backdrop-filter: blur(10px); max-width: 600px; width: 100%; padding: 2.5rem; }
.question-card { background-color: #f8fafc; border-radius: 1.5rem; padding: 1.5rem; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08); border: 1px solid #e2e8f0; }
.radio-option, .checkbox-option { display: flex; align-items: center; padding: 1rem 1.25rem; border-radius: 1rem; cursor: pointer; transition: background-color 0.2s ease-in-out; font-size: 1.125rem; }
.radio-option:hover, .checkbox-option:hover { background-color: #cbd5e0; }
input[type="radio"]:checked + span, input[type="checkbox"]:checked + span { font-weight: 600; color: #6366f1; }
input[type="radio"], input[type="checkbox"] { margin-right: 0.75rem; accent-color: #6366f1; transform: scale(1.2); }
.submit-button { background-image: linear-gradient(to right, #6366f1, #a855f7); color: white; padding: 1.25rem 2.5rem; border-radius: 1.5rem; font-weight: 700; font-size: 1.25rem; transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out; box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2); }
.submit-button:hover { transform: translateY(-4px); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3); }
.submit-button:disabled { background-image: none; background-color: #9ca3af; cursor: not-allowed; }
.result-box { background-color: #e0f2fe; border-left: 5px solid #2563eb; border-radius: 1.5rem; padding: 1.5rem; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08); }
</style>
</head>
<body>
<div class="container mx-auto text-gray-800">
<h1 class="text-4xl font-extrabold text-center mb-6 text-transparent bg-clip-text bg-gradient-to-r from-pink-500 to-yellow-500">
Skrining Awal Binge Eating Disorder (BED)
</h1>
<p class="text-center text-gray-600 mb-8 text-lg">Mohon jawab pertanyaan di bawah ini dengan jujur untuk membantu kami memahami kondisi Anda.</p>
<form id="bedScreeningForm" class="space-y-6">
<div class="question-card">
<p class="font-semibold text-xl text-gray-700 mb-4">1. Dalam 3 bulan terakhir, apakah Anda pernah mengalami episode makan di mana Anda makan dalam jumlah yang jauh lebih besar dari kebanyakan orang dalam waktu singkat (misalnya, kurang dari 2 jam)?</p>
<div class="space-y-3">
<label class="radio-option"><input checked type="radio" name="q1_binge_episode" value="ya" required><span>Ya</span></label>
<label class="radio-option"><input type="radio" name="q1_binge_episode" value="tidak"><span>Tidak</span></label>
</div>
</div>
<div class="question-card">
<p class="font-semibold text-xl text-gray-700 mb-4">2. Saat episode makan tersebut, apakah Anda merasa kehilangan kendali (tidak bisa berhenti makan atau mengontrol apa/berapa banyak yang Anda makan)?</p>
<div class="space-y-3">
<label class="radio-option"><input checked type="radio" name="q2_loss_of_control" value="ya" required><span>Ya</span></label>
<label class="radio-option"><input type="radio" name="q2_loss_of_control" value="tidak"><span>Tidak</span></label>
</div>
</div>
<div class="question-card">
<p class="font-semibold text-xl text-gray-700 mb-4">3. Dalam 3 bulan terakhir, berapa sering rata-rata episode makan berlebihan yang Anda alami terjadi dalam seminggu?</p>
<div class="space-y-3">
<label class="radio-option"><input checked type="radio" name="q3_frequency" value="tidak_pernah" required><span>Tidak pernah</span></label>
<label class="radio-option"><input checked type="radio" name="q3_frequency" value="kurang_1x"><span>Kurang dari 1x seminggu</span></label>
<label class="radio-option"><input checked type="radio" name="q3_frequency" value="1-3x"><span>1-3x seminggu</span></label>
<label class="radio-option"><input type="radio" name="q3_frequency" value="4-7x"><span>4-7x seminggu</span></label>
<label class="radio-option"><input type="radio" name="q3_frequency" value="lebih_8x"><span>Lebih dari 8x seminggu</span></label>
</div>
</div>
<div class="question-card">
<p class="font-semibold text-xl text-gray-700 mb-4">4. Saat episode makan berlebihan, apakah Anda sering mengalami setidaknya TIGA dari hal berikut? (Pilih semua yang sesuai)</p>
<div class="space-y-3">
<label class="checkbox-option"><input checked type="checkbox" name="q4_features[]" value="makan_cepat"><span>Makan jauh lebih cepat dari normal</span></label>
<label class="checkbox-option"><input checked type="checkbox" name="q4_features[]" value="kenyang_tidak_nyaman"><span>Makan sampai merasa sangat kenyang atau tidak nyaman</span></label>
<label class="checkbox-option"><input checked type="checkbox" name="q4_features[]" value="makan_tidak_lapar"><span>Makan dalam jumlah besar meskipun tidak merasa lapar</span></label>
<label class="checkbox-option"><input type="checkbox" name="q4_features[]" value="makan_sendirian"><span>Makan sendirian karena merasa malu dengan jumlah makanan yang dimakan</span></label>
<label class="checkbox-option"><input type="checkbox" name="q4_features[]" value="jijik_depresi_bersalah"><span>Merasa jijik pada diri sendiri, depresi, atau sangat bersalah setelah makan berlebihan</span></label>
</div>
</div>
<div class="question-card">
<p class="font-semibold text-xl text-gray-700 mb-4">5. Setelah episode makan berlebihan, apakah Anda mencoba 'mengimbangi' dengan perilaku seperti muntah, menggunakan laksatif, berpuasa, atau olahraga berlebihan?</p>
<div class="space-y-3">
<label class="radio-option"><input checked type="radio" name="q5_compensatory" value="ya" required><span>Ya</span></label>
<label class="radio-option"><input type="radio" name="q5_compensatory" value="tidak"><span>Tidak</span></label>
</div>
</div>
<div class="flex justify-center mt-8">
<button type="submit" id="submitBtn" class="submit-button">
Dapatkan Analisis AI
</button>
</div>
</form>
<div id="result" class="result-box p-6 mt-8 hidden">
<h2 id="resultTitle" class="text-2xl font-bold mb-4"></h2>
<p id="analysisText" class="text-gray-700 leading-relaxed whitespace-pre-wrap"></p>
<h3 class="text-xl font-bold mt-6 mb-2">Saran untuk Anda:</h3>
<p id="suggestionText" class="text-gray-700 leading-relaxed whitespace-pre-wrap"></p>
<div id="referensiContainer" class="mt-6"></div>
<p id="disclaimerText" class="text-sm text-gray-500 mt-4 italic"></p>
<a href="menu_utama.php" target="_parent" title="Klik Disini Untuk Ke Menu Utama" class="block text-center mt-6 text-blue-600 hover:underline font-semibold">
Lanjut ke Menu Utama
</a>
</div>
</div>
<script>
document.getElementById('bedScreeningForm').addEventListener('submit', function(event) {
event.preventDefault();
const submitBtn = document.getElementById('submitBtn');
const resultDiv = document.getElementById('result');
const resultTitle = document.getElementById('resultTitle');
const analysisText = document.getElementById('analysisText');
const suggestionText = document.getElementById('suggestionText');
const disclaimerText = document.getElementById('disclaimerText');
// ▼▼▼ PERUBAHAN JAVASCRIPT DI SINI ▼▼▼
const referensiContainer = document.getElementById('referensiContainer');
// ▲▲▲ PERUBAHAN JAVASCRIPT DI SINI ▲▲▲
submitBtn.disabled = true;
submitBtn.textContent = 'Menganalisis...';
const formData = new FormData(this);
fetch('proses_skrining.php', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => {
if (data.error) {
resultTitle.textContent = 'Terjadi Kesalahan';
analysisText.textContent = data.error;
suggestionText.innerHTML = 'Silakan coba lagi nanti. Detail: ' + (data.details || '');
disclaimerText.textContent = '';
// Kosongkan referensi jika ada error
referensiContainer.innerHTML = '';
} else {
const riskLevel = data.tingkat_risiko || 'Tidak Diketahui';
const riskColor = getRiskColor(riskLevel);
resultTitle.className = `text-2xl font-bold mb-4 ${riskColor}`;
resultTitle.textContent = `Hasil Analisis: Tingkat Risiko ${riskLevel}`;
analysisText.textContent = data.analisa_kesimpulan || 'Tidak ada analisis.';
let saranHtml = Array.isArray(data.saran)
? '<ul>' + data.saran.map(item => `<li class="list-disc ml-5">${item}</li>`).join('') + '</ul>'
: (data.saran || 'Tidak ada saran.');
suggestionText.innerHTML = saranHtml;
disclaimerText.textContent = data.disclaimer || '';
// ▼▼▼ PERUBAHAN JAVASCRIPT DI SINI ▼▼▼
// Proses dan tampilkan referensi
referensiContainer.innerHTML = ''; // Kosongkan dulu container-nya
if (data.referensi && Array.isArray(data.referensi) && data.referensi.length > 0) {
let referensiHtml = '<h3 class="text-xl font-bold mt-6 mb-2 border-t pt-4">Referensi Terkait:</h3>';
data.referensi.forEach(ref => {
referensiHtml += `
<div class="mt-4 p-3 bg-gray-100 rounded-lg border border-gray-200">
<p class="text-sm font-semibold text-gray-800">${ref.sitasi || 'Sitasi tidak tersedia.'}</p>
<p class="text-sm text-gray-600 italic mt-1">${ref.ringkasan || 'Ringkasan tidak tersedia.'}</p>
</div>
`;
});
referensiContainer.innerHTML = referensiHtml;
}
// ▲▲▲ PERUBAHAN JAVASCRIPT DI SINI ▲▲▲
}
resultDiv.classList.remove('hidden');
resultDiv.scrollIntoView({ behavior: 'smooth', block: 'start' });
})
.catch(error => {
console.error('Error:', error);
resultTitle.textContent = 'Terjadi Kesalahan Jaringan';
analysisText.textContent = 'Tidak dapat terhubung ke server. Periksa koneksi internet Anda dan coba lagi.';
resultDiv.classList.remove('hidden');
})
.finally(() => {
submitBtn.disabled = false;
submitBtn.textContent = 'Dapatkan Analisis AI';
});
});
function getRiskColor(riskLevel) {
switch (riskLevel.toLowerCase()) {
case 'tinggi':
case 'indikasi gangguan lain (bulimia)': return 'text-red-700';
case 'menengah': return 'text-orange-700';
case 'rendah': return 'text-green-700';
default: return 'text-gray-700';
}
}
</script>
</body>
</html>