Spaces:
Running
Running
| // Data Structure | |
| const nutritionPlan = { | |
| seasonal: { | |
| title: "Mevsimsel Beslenme (Sonbahar/Kış)", | |
| focus: "Kan şekerini dengelemek ve metabolizmayı canlandırmak.", | |
| schedule: [ | |
| { time: "07:00 (Hızlı Kahvaltı)", item: "Yulaf Lapası: 4 yk yulaf ezmesi, 1 bardak süt/su, 1/2 elma rendesi, 1 çk tarçın, 3 tam ceviz. (Seni 12:30'a kadar tok tutar)." }, | |
| { time: "07:15 (Metabolizma Gücü)", item: "Zencefil-Limon Suyu: 1 bardak ılık suya yarım limon ve taze rendelenmiş zencefil." }, | |
| { time: "12:30 (İş Yeri Öğle Yemeği)", item: "Bol Proteinli Salata: Yanında götürdüğün 1 kutu ton balığı VEYA haşlanmış tavuk göğsü + Koca bir kase mevsim yeşilliği (Roka, tere, marul). Yağı: Zeytinyağı ve bol limon." }, | |
| { time: "16:00 (Kritik Ara Öğün)", item: "Açlık Krizini Önleyici: 1 şişe sade kefir (Kolesterol için) VEYA 1 avuç sarı leblebi + Sade Türk kahvesi (Kan şekerini tutar)." }, | |
| { time: "19:00 (Akşam Yemeği)", item: "Izgara Mevsim Balığı (Lüfer, Hamsi, Palamut) VEYA Hindi Fümeli Salata + Yanında mutlaka Fırınlanmış Kök Sebzeler (Pancar, Havuç, Kereviz)." }, | |
| { time: "21:00 (Karaciğer Desteği)", item: "Yatmadan Önce: 1 fincan Devedikeni Tohumu Çayı veya Papatya Çayı." } | |
| ], | |
| rules: ["Dışarıdan yemek yok.", "Günde 3 litre su.", "İşlenmiş et ve şeker sıfır."] | |
| }, | |
| pharmacy: { | |
| title: "Senin Doğal Eczanen (Nokta Atışı)", | |
| focus: "Tahlil sonuçlarına (Karaciğer, Kolesterol, Şeker) özel bitkisel çözümler.", | |
| sections: [ | |
| { | |
| title: "Yüksek ALT (Karaciğer Yağlanması) İçin", | |
| icon: "leaf", | |
| color: "green", | |
| items: [ | |
| "Devedikeni Tohumu: Aktardan al. Sabah kahvaltıdan önce 1 tatlı kaşığı tohumu çiğne veya çayını yap. Karaciğer hücrelerini onaran 'Silymarin' içerir.", | |
| "Enginar (Taze veya Konserve): Haftada en az 2 kez tüket. Karaciğerin en iyi dostudur.", | |
| "Zerdeçal (Altın Macun): 1 çk zerdeçal + 1 çk zeytinyağı + az karabiber. Bunu her gün salatana veya yemeğine kat. Güçlü bir iltihap sökücüdür." | |
| ] | |
| }, | |
| { | |
| title: "Yüksek Kolesterol ve Trigliserid İçin", | |
| icon: "heart", | |
| color: "red", | |
| items: [ | |
| "Keten Tohumu (Taze Çekilmiş): Her sabah yulaf lapanın içine 1 yemek kaşığı. Bitkisel Omega-3'tür, damarları temizler.", | |
| "Yulaf Ezmesi: İçerdiği 'Beta-Glukan' lifi, kötü kolesterolü (LDL) sünger gibi emer ve atar.", | |
| "Nar (Mevsimi!): Her gün yarım nar. Güçlü antioksidandır, damar sertliğini önler.", | |
| "Sarımsak: Her akşam yemeğinde 1-2 diş çiğ sarımsak (ezerek) tüket. Doğal tansiyon ve kolesterol ilacıdır." | |
| ] | |
| }, | |
| { | |
| title: "HbA1c: 5.9 (Prediyabet) İçin", | |
| icon: "droplet", | |
| color: "blue", | |
| items: [ | |
| "Tarçın (Çubuk veya Toz): Kan şekerini dengelemede en etkili baharattır. Gün boyu içtiğin suya 1 adet çubuk tarçın at.", | |
| "Çemen Otu Tohumu: Geceden 1 bardak suya 1 çk tohum at, sabah aç karnına o suyu iç. İnsülin duyarlılığını artırır.", | |
| "Elma Sirkesi (Organik): Yemeklerden önce 1 bardak suya 1 yk sirke. Yemeğin şeker yükünü azaltır." | |
| ] | |
| }, | |
| { | |
| title: "Genel İltihap (Bel Fıtığı) İçin", | |
| icon: "zap", | |
| color: "orange", | |
| items: [ | |
| "Zencefil (Taze): En güçlü doğal ağrı kesici ve iltihap gidericidir. Her sabah çayına veya suyuna rendele.", | |
| "Kuşburnu (Mevsimi!): C vitamini ve anti-inflamatuar bileşen deposu. Şekersiz çayını iç.", | |
| "Isırgan Otu Çayı: Vücuttaki ödemi ve iltihabı atar." | |
| ] | |
| } | |
| ] | |
| } | |
| }; | |
| const exercisePlan = { | |
| morning: { | |
| title: "Sabah: Omurga Uyandırma (10 Dk)", | |
| description: "06:50 - 07:00 arası. Yavaş, nazik ve kontrollü. Asla zorlama.", | |
| duration: "10 Dakika", | |
| exercises: [ | |
| { name: "1. Kedi-İnek (Cat-Cow)", rep: "2 Dakika", detail: "Emekleme pozisyonu. Yavaşça sırtı kamburlaştır (nefes ver), beli çukurlaştır (nefes al). Omurgayı ısıtır." }, | |
| { name: "2. Çocuk Pozu (Child's Pose)", rep: "2 Dakika", detail: "Dizlerinin üzerine otur, alnını yere koy, kolları ileri uzat. Fıtık olan bölgeyi rahatlatır, esnetir." }, | |
| { name: "3. Rotasyonel Esneme (Yatarak)", rep: "3 Dakika", detail: "Sırtüstü yat, dizler bükülü. Dizleri yavaşça sağa devir (kafa sola), 30 sn bekle. Sonra sola devir (kafa sağa)." }, | |
| { name: "4. Pelvic Tilt (Bel Bastırma)", rep: "3 Dakika", detail: "Sırtüstü yat. Bel boşluğunu yavaşça yere bastır, 5 sn tut, bırak. Sadece çekirdek kasları uyandırır." } | |
| ] | |
| }, | |
| evening: { | |
| title: "Akşam: Asıl Güçlenme (20 Dk)", | |
| description: "18:45 - 19:05 arası (Yemekten Önce). Bu asıl Pilates programıdır. Beli koruyan kasları güçlendirir.", | |
| duration: "20 Dakika", | |
| exercises: [ | |
| { name: "1. Isınma (Pelvic Tilt)", rep: "2 Dakika", detail: "Sabahki gibi, ama şimdi daha ritmik." }, | |
| { name: "2. Single Leg Slide", rep: "3 Dakika", detail: "Sırtüstü yat, beli sabitle. Bir bacağını topuktan yavaşça ileri uzat ve çek. Bel yerden kalkmamalı." }, | |
| { name: "3. Dead Bug (Başlangıç)", rep: "3 Dakika", detail: "Sırtüstü yat, bacaklar 90 derece havada. Sadece bir ayağını yere dokundur ve çek. Sonra diğeri." }, | |
| { name: "4. Köprü (Bridge)", rep: "3 Dakika", detail: "Sırtüstü yat. Kalçayı kontrollüce kaldır, 3 saniye sık ve yavaşça (omurları tek tek) indir. Kalça ve sırt gücü." }, | |
| { name: "5. Bird-Dog", rep: "4 Dakika", detail: "Emekleme pozisyonu. Zıt kol ve zıt bacağı (çok yavaş) uzat, 2 sn tut, merkeze dön. Denge ve derin sırt kasları." }, | |
| { name: "6. Clamshell (İstiridye)", rep: "3 Dakika", detail: "Yan yat. Dizler bükülü. Üstteki dizi yavaşça aç-kapa. Kalça stabilizasyonu (bele binen yükü azaltır)." }, | |
| { name: "7. Soğuma (Çocuk Pozu)", rep: "2 Dakika", detail: "Bitir ve dinlen." } | |
| ] | |
| } | |
| }; | |
| // DOM Elements | |
| let activeTab = 'nutrition'; | |
| let activeNutritionSubTab = 'seasonal'; | |
| // Initialize | |
| document.addEventListener('DOMContentLoaded', function() { | |
| initializeTabs(); | |
| renderContent(); | |
| }); | |
| function initializeTabs() { | |
| // Main tabs | |
| document.getElementById('nutrition-tab').addEventListener('click', () => switchTab('nutrition')); | |
| document.getElementById('exercise-tab').addEventListener('click', () => switchTab('exercise')); | |
| // Sub tabs | |
| document.getElementById('seasonal-subtab').addEventListener('click', () => switchNutritionSubTab('seasonal')); | |
| document.getElementById('pharmacy-subtab').addEventListener('click', () => switchNutritionSubTab('pharmacy')); | |
| } | |
| function switchTab(tabName) { | |
| activeTab = tabName; | |
| // Update button styles | |
| document.querySelectorAll('.tab-button').forEach(btn => { | |
| btn.classList.remove('active'); | |
| if (btn.id === `${tabName}-tab`) { | |
| btn.classList.add('active'); | |
| } | |
| }); | |
| // Update content visibility | |
| document.querySelectorAll('.tab-content').forEach(content => { | |
| content.classList.remove('active'); | |
| }); | |
| document.getElementById(`${tabName}-content`).classList.add('active'); | |
| // Re-render feather icons | |
| feather.replace(); | |
| } | |
| function switchNutritionSubTab(subTabName) { | |
| activeNutritionSubTab = subTabName; | |
| // Update button styles | |
| document.querySelectorAll('.subtab-button').forEach(btn => { | |
| btn.classList.remove('active'); | |
| if (btn.id === `${subTabName}-subtab`) { | |
| btn.classList.add('active'); | |
| } | |
| }); | |
| // Update content visibility | |
| document.querySelectorAll('.subtab-content').forEach(content => { | |
| content.classList.remove('active'); | |
| }); | |
| document.getElementById(`${subTabName}-content`).classList.add('active'); | |
| // Re-render feather icons | |
| feather.replace(); | |
| } | |
| function renderContent() { | |
| renderSeasonalSchedule(); | |
| renderPharmacySections(); | |
| renderExercises(); | |
| } | |
| function renderSeasonalSchedule() { | |
| const container = document.getElementById('seasonal-schedule'); | |
| container.innerHTML = nutritionPlan.seasonal.schedule.map(meal => ` | |
| <div class="flex flex-col sm:flex-row gap-3 p-4 hover:bg-emerald-50 rounded-lg transition-all duration-200 border border-gray-100 hover:border-emerald-200 shadow-sm"> | |
| <div class="sm:min-w-[180px] font-bold text-emerald-800 flex items-center gap-2"> | |
| <i data-feather="clock" class="w-4 h-4 flex-shrink-0"></i> | |
| ${meal.time} | |
| </div> | |
| <div class="text-gray-700 leading-relaxed">${meal.item}</div> | |
| </div> | |
| `).join(''); | |
| const rulesContainer = document.getElementById('seasonal-rules'); | |
| rulesContainer.innerHTML = nutritionPlan.seasonal.rules.map(rule => `<li>${rule}</li>`).join(''); | |
| } | |
| function renderPharmacySections() { | |
| const container = document.getElementById('pharmacy-sections'); | |
| container.innerHTML = nutritionPlan.pharmacy.sections.map(section => ` | |
| <div class="p-5 rounded-xl border-2 border-${section.color}-200 bg-${section.color}-50 hover:shadow-lg transition-all duration-200"> | |
| <h3 class="font-bold text-lg text-${section.color}-800 flex items-center gap-2 mb-3"> | |
| <i data-feather="${section.icon}" class="w-5 h-5"></i> | |
| ${section.title} | |
| </h3> | |
| <ul class="list-disc list-inside text-gray-700 space-y-2 text-sm"> | |
| ${section.items.map(item => `<li class="leading-relaxed">${item}</li>`).join('')} | |
| </ul> | |
| </div> | |
| `).join(''); | |
| } | |
| function renderExercises() { | |
| // Morning exercises | |
| const morningContainer = document.getElementById('morning-exercises'); | |
| morningContainer.innerHTML = exercisePlan.morning.exercises.map(ex => ` | |
| <div class="p-4 bg-white border border-gray-200 rounded-lg shadow-sm hover:shadow-md transition-all duration-200"> | |
| <div class="flex justify-between items-center mb-2"> | |
| <h3 class="font-bold text-gray-800">${ex.name}</h3> | |
| <span class="bg-blue-50 text-blue-700 px-2 py-1 rounded text-xs font-bold">${ex.rep}</span> | |
| </div> | |
| <p class="text-gray-600 text-sm leading-relaxed">${ex.detail}</p> | |
| </div> | |
| `).join(''); | |
| // Evening exercises | |
| const eveningContainer = document.getElementById('evening-exercises'); | |
| eveningContainer.innerHTML = exercisePlan.evening.exercises.map(ex => ` | |
| <div class="p-4 bg-white border border-gray-200 rounded-lg shadow-sm hover:shadow-md transition-all duration-200"> | |
| <div class="flex justify-between items-center mb-2"> | |
| <h3 class="font-bold text-gray-800">${ex.name}</h3> | |
| <span class="bg-indigo-50 text-indigo-700 px-2 py-1 rounded text-xs font-bold">${ex.rep}</span> | |
| </div> | |
| <p class="text-gray-600 text-sm leading-relaxed">${ex.detail}</p> | |
| </div> | |
| `).join(''); | |
| } |