Güney Kore Donanması

Güney Kore Donanması

“Savaşı kazanmak üzereyiz, savaş davullarını çalmaya devam edin. Ölümümü duyurmayın.”

Yi Sun-Shin

Republic of Korea Navy (Güney Kore Donanması)

Resmî Platform Sınıflandırması ve Genişletilmiş Teknik Envanteri

1
Birinci Platform
Seçim bekleniyor...
2
İkinci Platform
Seçim bekleniyor...
Lütfen karşılaştırmak için iki platform seçin.
Teknik Spesifikasyon

Yetkili Personel Girişi

Veritabanını düzenlemek için yönetici parolasını giriniz.

Tür Sınıf / Model İçerdiği Unsurlar İtici Güç Hız İşlem

Yeni Platform Ekle

+
`; const body = document.createElement('div'); body.className = 'rokn-card-body'; body.innerHTML = `
Envanterdeki Platformlar
${sinif.gemiler}
Deplasman (Ton) ${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 roknPopulateCompareCats(){ const cats = [...new Set(roknData.map(item => item.kategori).filter(Boolean))]; const opts = '' + cats.map(c => ``).join(''); const c1 = document.getElementById('rokn-c-cat1'); if(c1) c1.innerHTML = opts; const c2 = document.getElementById('rokn-c-cat2'); if(c2) c2.innerHTML = opts; } function roknCatChange(boxNum){ const cat = document.getElementById('rokn-c-cat'+boxNum).value; const platSel = document.getElementById('rokn-c-plat'+boxNum); if(!cat){ platSel.innerHTML=''; platSel.disabled=true; if(boxNum===1)roknSel1=null;else roknSel2=null; roknUpdateCompareHint(); roknUpdateComparePreview(boxNum, null); return; } const available = roknData.filter(x => x.kategori === cat); platSel.innerHTML = '' + available.map(x => ``).join(''); platSel.disabled = false; if(boxNum===1) roknSel1=null; else roknSel2=null; roknUpdateCompareHint(); roknUpdateComparePreview(boxNum, null); } function roknPlatChange(boxNum){ const id = parseInt(document.getElementById('rokn-c-plat'+boxNum).value); if(boxNum===1) roknSel1 = id || null; else roknSel2 = id || null; roknUpdateComparePreview(boxNum, id); roknUpdateCompareHint(); } function roknUpdateComparePreview(boxNum, id){ const p = document.getElementById('rokn-c-prev'+boxNum); if(!p) return; if(!id){ p.innerHTML='Seçim bekleniyor...'; return; } const s = roknData.find(x => x.id === id); if(!s) return; p.innerHTML = `
${s.ad}
${s.not}
`; } function roknUpdateCompareHint(){ const btn = document.getElementById('rokn-btn-compare'); const hint = document.getElementById('rokn-comp-hint'); if(!btn || !hint) return; if(roknSel1 && roknSel2){ 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 roknRenderComp(){ if(!roknSel1 || !roknSel2) return; const s1 = roknData.find(x=>x.id===roknSel1), s2 = roknData.find(x=>x.id===roknSel2); document.getElementById('rokn-hShip1').textContent = s1.ad; document.getElementById('rokn-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('rokn-compBody').innerHTML = html; document.getElementById('rokn-comparisonSection').style.display = 'block'; } function roknResetComp(){ ['rokn-c-cat1','rokn-c-plat1','rokn-c-cat2','rokn-c-plat2'].forEach(id => { const el = document.getElementById(id); if(el) { el.value = ''; if(id.includes('plat')) el.disabled = true; } }); roknSel1=null; roknSel2=null; roknUpdateComparePreview(1,null); roknUpdateComparePreview(2,null); roknUpdateCompareHint(); const cSec = document.getElementById('rokn-comparisonSection'); if(cSec) cSec.style.display='none'; } /* YÖNETİCİ PANELİ (ADMIN) */ function roknVerifyAdmin(){ if(document.getElementById('rokn-pass').value === ROKN_ADMIN_PASS){ document.getElementById('rokn-gate').style.display = 'none'; document.getElementById('rokn-workspace').classList.add('active'); document.getElementById('rokn-pass').value = ''; roknRenderAdminTable(); roknShowToast('Yönetici girişi başarılı.'); } else { roknShowToast('Hatalı parola!'); document.getElementById('rokn-pass').value = ''; } } function roknLogoutAdmin(){ document.getElementById('rokn-workspace').classList.remove('active'); document.getElementById('rokn-gate').style.display = 'block'; roknShowToast('Oturum kapatıldı.'); } function roknRenderAdminTable(){ const tbody = document.getElementById('rokn-admin-tbody'); if(!tbody) return; if(!roknData.length) { tbody.innerHTML = `Veri bulunamadı.`; return; } tbody.innerHTML = roknData.map(s => `${s.kategori}${s.ad}${s.gemiler.substring(0,40)}${s.gemiler.length>40?'...':''}${(s.guc||'—').substring(0,25)}${s.hiz}`).join(''); } function roknOpenModal(){ document.getElementById('rokn-modal-title').textContent='Yeni Platform Ekle'; document.getElementById('kf_id').value=''; ['kategori','ad','gemiler','deplasman','boyut','guc','hiz','menzil','murettebat','havacilik','silahlar','not'].forEach(id => document.getElementById('kf_'+id).value=''); document.getElementById('rokn-modal').classList.add('active'); } function roknCloseModal(){ document.getElementById('rokn-modal').classList.remove('active'); } function roknEditPlatform(id){ const s = roknData.find(x=>x.id===id); if(!s) return; document.getElementById('rokn-modal-title').textContent='Düzenle: '+s.ad; document.getElementById('kf_id').value=s.id; ['kategori','ad','gemiler','deplasman','boyut','guc','hiz','menzil','murettebat','havacilik','silahlar','not'].forEach(key => document.getElementById('kf_'+key).value=s[key]||''); document.getElementById('rokn-modal').classList.add('active'); } function roknSavePlatform(){ const d = { kategori: document.getElementById('kf_kategori').value.trim(), ad: document.getElementById('kf_ad').value.trim(), gemiler: document.getElementById('kf_gemiler').value.trim(), deplasman: document.getElementById('kf_deplasman').value.trim(), boyut: document.getElementById('kf_boyut').value.trim(), guc: document.getElementById('kf_guc').value.trim(), hiz: document.getElementById('kf_hiz').value.trim(), menzil: document.getElementById('kf_menzil').value.trim(), murettebat: document.getElementById('kf_murettebat').value.trim(), havacilik: document.getElementById('kf_havacilik').value.trim(), silahlar: document.getElementById('kf_silahlar').value.trim(), not: document.getElementById('kf_not').value.trim() }; if(!d.kategori || !d.ad || !d.gemiler) { roknShowToast('Kategori, Sınıf ve Unsurlar zorunludur!'); return; } const editId = document.getElementById('kf_id').value; if(editId){ const idx = roknData.findIndex(x=>x.id==parseInt(editId)); if(idx > -1) roknData[idx]={id:parseInt(editId),...d}; roknShowToast('Güncellendi.'); } else { const nId = roknData.length?Math.max(...roknData.map(x=>x.id))+1:1; roknData.push({id:nId,...d}); roknShowToast('Yeni eklendi.'); } saveROKNDatabase(); roknUpdateAllViews(); roknCloseModal(); } function roknDeletePlatform(id){ if(!confirm('Bu sınıfı silmek istediğinize emin misiniz?')) return; roknData = roknData.filter(x=>x.id!==id); saveROKNDatabase(); roknUpdateAllViews(); roknShowToast('Kayıt silindi.'); } function roknExportData(){ if(!roknData.length) return; const keys = ['kategori','ad','gemiler','deplasman','boyut','guc','hiz','menzil','murettebat','havacilik','silahlar','not']; let csv = keys.join(',')+'\n'; roknData.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 = 'republic_of_korea_navy_envanter.csv'; a.click(); } function roknShowToast(msg){ const t = document.getElementById('rokn-toast'); if(!t) return; t.textContent=msg; t.classList.add('show'); setTimeout(()=>t.classList.remove('show'),3000); } function roknUpdateAllViews(){ roknRenderUserView(); roknPopulateCompareCats(); roknRenderAdminTable(); roknResetComp(); } // Modal dışı tıklama const roknOverlay = document.getElementById('rokn-modal'); if(roknOverlay) { roknOverlay.addEventListener('click', function(e){ if(e.target === this) roknCloseModal(); }); } // Başlatıcı loadROKNDatabase(); roknUpdateAllViews(); /* ]]> */

* Tablodaki bilgilerde hata olduğunu düşünüyorsanız, iletişim sayfasındaki form veya mail adreslerimiz üzerinden lütfen bize bildirin.