(() => {
'use strict';const f=document.getElementById('форма-свидетельства'),out=document.getElementById('вывод-свидетельства');let saved='';
f.addEventListener('submit',e=>{e.preventDefault();try{const d=new FormData(f);const time=new Date(d.get('время'));if(!Number.isFinite(+time)||+time>Date.now()+300000)throw Error('Укажите реальное время наблюдения, не будущую дату.');const u=new URL(d.get('адрес_ключа'));if(u.protocol!=='https:'||u.username||u.password||u.hostname==='xn--80advqd.com'||u.hostname.endsWith('.xn--80advqd.com'))throw Error('Нужен адрес HTTPS отдельно от война.com. Независимость управления требует отдельной проверки.');const record={формат:'война-свидетельство-владельца-2',редакция:'4.4.0-wip',публичное_имя:'война.com',канонический_адрес:'https://xn--80advqd.com/',рубеж:d.get('рубеж'),состояние:'заявлено исполнение',время_наблюдения:time.toISOString(),исполнитель:d.get('исполнитель'),действие:d.get('действие'),результат:d.get('результат'),ссылка_на_свидетельство:d.get('ссылка'),ша256_приложения:d.get('отпечаток'),ша256_манифеста_выпуска:'0'.repeat(64),ша256_ключа:'0'.repeat(64),адрес_публикации_ключа:u.href,граница:'Неподписанный черновик. После подписи проверяются публикация и независимость ключа, исполнение и точный выпуск.'};saved=JSON.stringify(record,null,2)+'\n';out.textContent='НЕПОДПИСАННЫЙ ЧЕРНОВИК. РУБЕЖ ОТКРЫТ.\n\n'+saved;}catch(e){out.textContent=e.message;}});
document.getElementById('копировать-свидетельство').addEventListener('click',async()=>{if(!saved){out.textContent='Сначала сформируйте черновик.';return;}try{await navigator.clipboard.writeText(saved);}catch{out.textContent='Буфер обмена недоступен. Сохраните файл.\n\n'+saved;}});
document.getElementById('сохранить-свидетельство').addEventListener('click',()=>{if(!saved){out.textContent='Сначала сформируйте черновик.';return;}const a=document.createElement('a');a.href=URL.createObjectURL(new Blob([saved],{type:'application/json;charset=utf-8'}));a.download='черновик-свидетельства-владельца.json';a.click();setTimeout(()=>URL.revokeObjectURL(a.href),1000);});
})();
