+
`; const body = document.createElement('div'); body.className = 'egy-card-body'; body.innerHTML = `
Envanterdeki Platformlar ${sinif.gemiler}
Deplasman / Ağırlık ${sinif.deplasman}
Boyutlar ${sinif.boyut}
İtici Güç ${sinif.guc}
Azami Hız ${sinif.hiz}
Personel / Mürettebat ${sinif.murettebat}
Operasyonel Menzil ${sinif.menzil}
Havacılık Kapasitesi ${sinif.havacilik}
Silah / Sensör Sistemleri ${sinif.silahlar}
`; header.addEventListener('click', () => { card.classList.toggle('active'); }); card.appendChild(header); card.appendChild(body); grid.appendChild(card); }); container.appendChild(grid); }); } function egyPopulateCompareCats(){ const cats = [...new Set(egyData.map(item => item.kategori).filter(Boolean))]; const opts = '' + cats.map(c => ``).join(''); const c1 = document.getElementById('egy-c-cat1'); if(c1) c1.innerHTML = opts; const c2 = document.getElementById('egy-c-cat2'); if(c2) c2.innerHTML = opts; } function egyCatChange(boxNum){ const cat = document.getElementById('egy-c-cat'+boxNum).value; const platSel = document.getElementById('egy-c-plat'+boxNum); if(!cat){ platSel.innerHTML=''; platSel.disabled=true; if(boxNum===1)egySel1=null;else egySel2=null; egyUpdateCompareHint(); egyUpdateComparePreview(boxNum, null); return; } const available = egyData.filter(x => x.kategori === cat); platSel.innerHTML = '' + available.map(x => ``).join(''); platSel.disabled = false; if(boxNum===1) egySel1=null; else egySel2=null; egyUpdateCompareHint(); egyUpdateComparePreview(boxNum, null); } function egyPlatChange(boxNum){ const id = parseInt(document.getElementById('egy-c-plat'+boxNum).value); if(boxNum===1) egySel1 = id || null; else egySel2 = id || null; egyUpdateComparePreview(boxNum, id); egyUpdateCompareHint(); } function egyUpdateComparePreview(boxNum, id){ const p = document.getElementById('egy-c-prev'+boxNum); if(!p) return; if(!id){ p.innerHTML='
Seçim bekleniyor...'; return; } const s = egyData.find(x => x.id === id); if(!s) return; p.innerHTML = `
${s.ad}
${s.not}
`; } function egyUpdateCompareHint(){ const btn = document.getElementById('egy-btn-compare'); const hint = document.getElementById('egy-comp-hint'); if(!btn || !hint) return; if(egySel1 && egySel2){ btn.disabled=false; hint.textContent='Kapsamlı analiz için hazır.'; } else { btn.disabled=true; hint.textContent='Lütfen karşılaştırmak için iki platform seçin.'; } } function egyRenderComp(){ if(!egySel1 || !egySel2) return; const s1 = egyData.find(x=>x.id===egySel1), s2 = egyData.find(x=>x.id===egySel2); document.getElementById('egy-hShip1').textContent = s1.ad; document.getElementById('egy-hShip2').textContent = s2.ad; let html=''; const sections = [ { label:'KİMLİK VE SINIFLANDIRMA', fields:[{key:'kategori',label:'Platform Türü'},{key:'ad',label:'Sınıf / Model Adı'},{key:'not',label:'Taktiksel Rol'}] }, { label:'ENVANTER DURUMU', fields:[{key:'gemiler',label:'Envanterdeki Unsurlar'}] }, { label:'TEKNİK BOYUTLAR VE PERFORMANS', fields:[{key:'deplasman',label:'Ağırlık / Deplasman'},{key:'boyut',label:'Uzunluk / Genişlik'},{key:'guc',label:'İtici Güç (Propulsion)'},{key:'hiz',label:'Azami Sürat'},{key:'menzil',label:'Menzil (Range)'}] }, { label:'SİLAH, SENSÖR VE KAPASİTE', fields:[{key:'silahlar',label:'Silahlar ve Sensörler'},{key:'havacilik',label:'Havacılık Kapasitesi'},{key:'murettebat',label:'Mürettebat'}] } ]; sections.forEach(sec=>{ html += `
| ${sec.label} |
`; sec.fields.forEach(f=>{ const v1 = s1[f.key]||'—', v2 = s2[f.key]||'—'; const c1 = v1==='—'?'empty':'', c2 = v2==='—'?'empty':''; html += `
| ${f.label} | ${v1} | ${v2} |
`; }); }); document.getElementById('egy-compBody').innerHTML = html; document.getElementById('egy-comparisonSection').style.display = 'block'; } function egyResetComp(){ ['egy-c-cat1','egy-c-plat1','egy-c-cat2','egy-c-plat2'].forEach(id => { const el = document.getElementById(id); if(el) { el.value = ''; if(id.includes('plat')) el.disabled = true; } }); egySel1=null; egySel2=null; egyUpdateComparePreview(1,null); egyUpdateComparePreview(2,null); egyUpdateCompareHint(); const cSec = document.getElementById('egy-comparisonSection'); if(cSec) cSec.style.display='none'; } /* YÖNETİCİ PANELİ (ADMIN) */ function egyVerifyAdmin(){ if(document.getElementById('egy-pass').value === EGY_ADMIN_PASS){ document.getElementById('egy-gate').style.display = 'none'; document.getElementById('egy-workspace').classList.add('active'); document.getElementById('egy-pass').value = ''; egyRenderAdminTable(); egyShowToast('Yönetici girişi başarılı.'); } else { egyShowToast('Hatalı parola!'); document.getElementById('egy-pass').value = ''; } } function egyLogoutAdmin(){ document.getElementById('egy-workspace').classList.remove('active'); document.getElementById('egy-gate').style.display = 'block'; egyShowToast('Oturum kapatıldı.'); } function egyRenderAdminTable(){ const tbody = document.getElementById('egy-admin-tbody'); if(!tbody) return; if(!egyData.length) { tbody.innerHTML = `
| Veri bulunamadı. |
`; return; } tbody.innerHTML = egyData.map(s => `
| ${s.kategori} | ${s.ad} | ${s.gemiler.substring(0,40)}${s.gemiler.length>40?'...':''} | ${(s.guc||'—').substring(0,25)} | ${s.hiz} | |
`).join(''); } function egyOpenModal(){ document.getElementById('egy-modal-title').textContent='Yeni Platform Ekle'; document.getElementById('ef_id').value=''; ['kategori','ad','gemiler','deplasman','boyut','guc','hiz','menzil','murettebat','havacilik','silahlar','not'].forEach(id => document.getElementById('ef_'+id).value=''); document.getElementById('egy-modal').classList.add('active'); } function egyCloseModal(){ document.getElementById('egy-modal').classList.remove('active'); } function egyEditPlatform(id){ const s = egyData.find(x=>x.id===id); if(!s) return; document.getElementById('egy-modal-title').textContent='Düzenle: '+s.ad; document.getElementById('ef_id').value=s.id; ['kategori','ad','gemiler','deplasman','boyut','guc','hiz','menzil','murettebat','havacilik','silahlar','not'].forEach(key => document.getElementById('ef_'+key).value=s[key]||''); document.getElementById('egy-modal').classList.add('active'); } function egySavePlatform(){ const d = { kategori: document.getElementById('ef_kategori').value.trim(), ad: document.getElementById('ef_ad').value.trim(), gemiler: document.getElementById('ef_gemiler').value.trim(), deplasman: document.getElementById('ef_deplasman').value.trim(), boyut: document.getElementById('ef_boyut').value.trim(), guc: document.getElementById('ef_guc').value.trim(), hiz: document.getElementById('ef_hiz').value.trim(), menzil: document.getElementById('ef_menzil').value.trim(), murettebat: document.getElementById('ef_murettebat').value.trim(), havacilik: document.getElementById('ef_havacilik').value.trim(), silahlar: document.getElementById('ef_silahlar').value.trim(), not: document.getElementById('ef_not').value.trim() }; if(!d.kategori || !d.ad || !d.gemiler) { egyShowToast('Kategori, Sınıf ve Unsurlar zorunludur!'); return; } const editId = document.getElementById('ef_id').value; if(editId){ const idx = egyData.findIndex(x=>x.id==parseInt(editId)); if(idx > -1) egyData[idx]={id:parseInt(editId),...d}; egyShowToast('Güncellendi.'); } else { const nId = egyData.length?Math.max(...egyData.map(x=>x.id))+1:1; egyData.push({id:nId,...d}); egyShowToast('Yeni eklendi.'); } saveEGYDatabase(); egyUpdateAllViews(); egyCloseModal(); } function egyDeletePlatform(id){ if(!confirm('Bu sınıfı silmek istediğinize emin misiniz?')) return; egyData = egyData.filter(x=>x.id!==id); saveEGYDatabase(); egyUpdateAllViews(); egyShowToast('Kayıt silindi.'); } function egyExportData(){ if(!egyData.length) return; const keys = ['kategori','ad','gemiler','deplasman','boyut','guc','hiz','menzil','murettebat','havacilik','silahlar','not']; let csv = keys.join(',')+'\n'; egyData.forEach(s => csv += keys.map(k=>'"'+(s[k]||'').toString().replace(/"/g,'""')+'"').join(',')+'\n'); const a = document.createElement('a'); a.href = URL.createObjectURL(new Blob([csv],{type:'text/csv'})); a.download = 'misir_donanmasi_envanteri.csv'; a.click(); } function egyShowToast(msg){ const t = document.getElementById('egy-toast'); if(!t) return; t.textContent=msg; t.classList.add('show'); setTimeout(()=>t.classList.remove('show'),3000); } function egyUpdateAllViews(){ egyRenderUserView(); egyPopulateCompareCats(); egyRenderAdminTable(); egyResetComp(); } // Modal dışı tıklama const egyOverlay = document.getElementById('egy-modal'); if(egyOverlay) { egyOverlay.addEventListener('click', function(e){ if(e.target === this) egyCloseModal(); }); } // Başlatıcı loadEGYDatabase(); egyUpdateAllViews(); /* ]]> */