/* OK ITHAKI R10F38 — current legal documents and request routes */
(()=>{'use strict';
const $=id=>document.getElementById(id);const lang=()=>{try{return (localStorage.getItem('ith_ui_lang_v249141')||new URL(location.href).searchParams.get('lang')||'el')==='en'?'en':'el'}catch(_e){return'el'}};
const tr=(a,b)=>lang()==='en'?b:a;const esc=s=>String(s??'').replace(/[&<>"']/g,c=>({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#39;'}[c]));
function modal(title,body){document.querySelector('.r38LegalModal')?.remove();const x=document.createElement('div');x.className='r38LegalModal';x.innerHTML=`<section><header><h2>${title}</h2><button type="button" data-close>×</button></header><main>${body}</main></section>`;document.body.appendChild(x);x.querySelector('[data-close]').onclick=()=>x.remove();x.addEventListener('click',e=>{if(e.target===x)x.remove()});return x}
function css(){if($('r38LegalCss'))return;const s=document.createElement('style');s.id='r38LegalCss';s.textContent='.r38LegalModal{position:fixed;inset:0;z-index:2147483000;background:rgba(3,12,20,.82);display:grid;place-items:center;padding:12px}.r38LegalModal>section{width:min(820px,100%);max-height:92vh;overflow:hidden;border:1px solid rgba(227,184,91,.42);border-radius:22px;background:#0b2030;color:#eef8ff;box-shadow:0 24px 90px #000}.r38LegalModal header{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid rgba(255,255,255,.1)}.r38LegalModal header h2{font-size:19px;margin:0}.r38LegalModal header button{font-size:28px;background:transparent;border:0;color:white}.r38LegalModal main{padding:16px;overflow:auto;max-height:calc(92vh - 65px)}.r38LegalTabs{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-bottom:14px}.r38LegalTabs button,.r38Request button{padding:12px;border-radius:14px;border:1px solid rgba(227,184,91,.35);background:#123449;color:#fff;text-align:left}.r38LegalDoc{white-space:pre-wrap;line-height:1.58;background:rgba(255,255,255,.045);padding:15px;border-radius:14px}.r38LegalNote{padding:12px;border-radius:13px;background:rgba(227,184,91,.13);margin-bottom:12px}.r38Request input,.r38Request select,.r38Request textarea{box-sizing:border-box;width:100%;padding:11px;margin:5px 0 11px;border-radius:11px;border:1px solid rgba(255,255,255,.18);background:#081925;color:#fff}.r38Request textarea{min-height:130px}.r38Result{white-space:pre-wrap;background:#07141e;padding:12px;border-radius:11px}@media(max-width:600px){.r38LegalTabs{grid-template-columns:1fr}}';document.head.appendChild(s)}
async function getDoc(kind){const r=await fetch(`/api/legal/document?kind=${encodeURIComponent(kind)}&lang=${lang()}`,{cache:'no-store'});if(!r.ok)throw Error('HTTP '+r.status);return r.json()}
async function openDoc(kind,title){css();const x=modal(title,`<div class="r38LegalDoc">${tr('Φόρτωση…','Loading…')}</div>`);try{const d=await getDoc(kind);x.querySelector('.r38LegalDoc').textContent=d.text}catch(e){x.querySelector('.r38LegalDoc').textContent=tr('Δεν φορτώθηκε το νομικό κείμενο. ','Legal document could not be loaded. ')+e.message}}
function hub(){css();const x=modal('⚖️ '+tr('Νομικά, πολιτική και δικαιώματα','Legal, policy and rights'),`<div class="r38LegalNote">${tr('Έκδοση 2026-08-02. Τα Ελληνικά και Αγγλικά είναι τα βασικά κείμενα. Απαιτείται τελικός νομικός έλεγχος πριν από εμπορική κυκλοφορία.','Version 2026-08-02. Greek and English are the primary texts. Final legal review is required before commercial release.')}</div><div class="r38LegalTabs"><button data-doc="privacy">🔐 <b>${tr('Πολιτική Απορρήτου','Privacy Policy')}</b></button><button data-doc="terms">📜 <b>${tr('Όροι Χρήσης','Terms of Use')}</b></button><button data-doc="community_guidelines">🛡️ <b>${tr('Οδηγίες Κοινότητας','Community Guidelines')}</b></button><button data-doc="notice_action">🚩 <b>${tr('Αναφορά παράνομου περιεχομένου','Illegal-content notice')}</b></button><button data-doc="retention">🕒 <b>${tr('Διατήρηση δεδομένων','Data retention')}</b></button><button data-doc="security">🔒 <b>${tr('Ασφάλεια','Security')}</b></button><button data-doc="cookies">💾 <b>${tr('Τοπική αποθήκευση','Local storage')}</b></button><button data-request>✉️ <b>${tr('Νομικό ή ιδιωτικό αίτημα','Legal or privacy request')}</b></button></div><p><a href="https://www.ok-ithaki.gr/${lang()}/privacy/?v=39" target="_blank" rel="noopener">${tr('Άνοιγμα των δημοσιευμένων κειμένων στον ιστότοπο','Open published documents on the website')}</a></p>`);x.querySelectorAll('[data-doc]').forEach(b=>b.onclick=()=>openDoc(b.dataset.doc,b.textContent.trim()));x.querySelector('[data-request]').onclick=requestForm;return x}
function requestForm(){css();const x=modal('✉️ '+tr('Υποβολή αιτήματος','Submit request'),`<form class="r38Request"><label>${tr('Τύπος','Type')}<select name="request_type"><option value="privacy_rights">${tr('Δικαίωμα ιδιωτικότητας','Privacy right')}</option><option value="account_deletion">${tr('Διαγραφή λογαριασμού','Account deletion')}</option><option value="illegal_content">${tr('Παράνομο περιεχόμενο','Illegal content')}</option><option value="appeal">${tr('Ένσταση','Appeal')}</option><option value="security">${tr('Ασφάλεια','Security')}</option><option value="general_legal">${tr('Άλλο νομικό αίτημα','Other legal request')}</option></select></label><label>${tr('Θέμα','Subject')}<input name="subject" maxlength="240"></label><label>${tr('Σύνδεσμος ή αναγνωριστικό περιεχομένου — όπου εφαρμόζεται','Content URL or identifier — when applicable')}<input name="content_locator" maxlength="800"></label><label>${tr('Στοιχεία επικοινωνίας — προαιρετικά','Contact details — optional')}<input name="contact" maxlength="240"></label><label>${tr('Περιγραφή','Details')}<textarea name="details" maxlength="6000" required></textarea></label><label><input type="checkbox" name="good_faith"> ${tr('Δηλώνω ότι τα στοιχεία είναι ακριβή κατά την καλή μου πίστη.','I declare that the information is accurate in good faith.')}</label><input type="text" name="website" tabindex="-1" autocomplete="off" style="position:absolute;left:-9999px"><button type="submit">${tr('Αποστολή','Submit')}</button><div class="r38Result" hidden></div></form>`);const f=x.querySelector('form');f.onsubmit=async e=>{e.preventDefault();const o=Object.fromEntries(new FormData(f));o.good_faith=!!f.elements.good_faith.checked;o.language=lang();try{const r=await fetch('/api/legal/request',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(o)});const d=await r.json();if(!r.ok)throw Error(d.detail||r.status);const out=x.querySelector('.r38Result');out.hidden=false;out.textContent=tr('Το αίτημα καταχωρίστηκε. Φύλαξε αυτά τα στοιχεία:\n','Request received. Keep these details:\n')+`Reference: ${d.reference}\nStatus token: ${d.status_token}`;f.querySelector('button[type=submit]').disabled=true}catch(err){alert(err.message)}};return x}
document.addEventListener('click',e=>{const b=e.target.closest('#r37f3PolicyBtn');if(!b)return;e.preventDefault();e.stopImmediatePropagation();hub()},true);
window.openIthakiLegalHubR10F38=hub;css();console.log('ITHAKI_R10F38_RELEASE_LEGAL_READY');
})();
