Verifica
Проверьте персональное дело перед подготовкой к публикации.
После публикации администрация сможет принять персонажа и связать эту тему с его игровой карточкой.
/* SAN AVELIO — Character Application Builder v16 — Editorial Dossier FIX Activation: put [SA_APPLICATION_BUILDER] anywhere in the FIRST post of the application-template topic. Safe standalone module: does not alter maps, post profiles, reputation, or other topics. */ (function(){ 'use strict'; if(window.SA_APPLICATION_BUILDER_V16_LOADER)return; window.SA_APPLICATION_BUILDER_V16_LOADER=true; function SAApplicationBuilderBoot(){ /* v15: newer builds must not be blocked by the historical V6 runtime flag. */ var oldRoot=document.getElementById('sa-application-builder'); if(oldRoot) oldRoot.remove(); var oldStyle=document.getElementById('sa-application-builder-style'); if(oldStyle) oldStyle.remove(); window.SA_APPLICATION_BUILDER_V16=true; var MARKER='[SA_APPLICATION_BUILDER]'; var DRAFT_KEY='sa_application_builder_v11_'+location.pathname+'_'+location.search; function esc(s){return String(s||'').replace(/[&<>"']/g,function(c){return {'&':'&','<':'<','>':'>','"':'"',"'":'''}[c]})} function bb(s){return String(s||'').replace(/\r/g,'').trim()} function q(sel,root){return (root||document).querySelector(sel)} function qa(sel,root){return Array.prototype.slice.call((root||document).querySelectorAll(sel))} function firstPost(){ return q('.topic .post .post-content') || q('.post .post-content'); } function editor(){ return q('#main-reply textarea') || q('#pun-main-reply textarea') || q('form[action*="edit.php"] textarea') || q('form[action*="post.php"] textarea') || q('textarea[name="req_message"]') || q('textarea[name="message"]'); } function replyForm(){ var ta=editor(); return ta ? ta.closest('form') : null; } function markerPresent(){ var p=firstPost(); return !!(p && (p.textContent||'').indexOf(MARKER)>-1); } if(!markerPresent()){window.SA_APPLICATION_BUILDER_V16=false;return;} var style=document.createElement('style'); style.id='sa-application-builder-style-v16'; style.textContent=` #sa-application-builder{--ink:#071b18;--ink2:#0b2823;--gold:#b88a43;--gold2:#d4b06a;--ivory:#e8dfca;--muted:#9b927e;--wine:#7d4039} .sa-ab-shell{position:relative;isolation:isolate;overflow:hidden;margin:4px 0 18px;width:100%;color:var(--ivory);font-family:Georgia,'Times New Roman',serif;background:#071b18;border:1px solid rgba(184,138,67,.55);box-shadow:0 18px 42px rgba(0,0,0,.24)} .sa-ab-shell:before{content:"";position:absolute;inset:9px;border:1px solid rgba(184,138,67,.23);pointer-events:none} .sa-ab-head{position:relative;min-height:205px;padding:30px 38px 26px;box-sizing:border-box;border-bottom:1px solid rgba(184,138,67,.28); background-image: linear-gradient(90deg,rgba(4,20,17,.90) 0%,rgba(4,20,17,.72) 48%,rgba(4,20,17,.78) 100%), linear-gradient(180deg,rgba(4,20,17,.08) 0%,rgba(7,27,24,.18) 54%,#071b18 100%), url("https://forumstatic.ru/files/001c/cd/12/45074.png"); background-size:cover;background-position:center 42%;background-repeat:no-repeat} .sa-ab-topline{display:flex;justify-content:space-between;align-items:center;font:8px Arial,sans-serif;letter-spacing:.28em;color:var(--gold2)} .sa-ab-classified{color:#bb7167;border:1px solid rgba(185,104,95,.42);padding:5px 9px;transform:rotate(-1deg)} .sa-ab-headrow{display:flex;justify-content:space-between;gap:25px;align-items:flex-end;margin-top:20px} .sa-ab-kicker{font:9px Arial,sans-serif;letter-spacing:.25em;color:#a99267;margin-bottom:8px} .sa-ab-title{margin:0!important;color:#f0d69c!important;font:30px Georgia,serif!important;letter-spacing:.05em!important;text-transform:uppercase} .sa-ab-code{min-width:155px;border-left:1px solid rgba(184,138,67,.3);padding-left:18px;display:grid;gap:4px} .sa-ab-code span,.sa-ab-code small{font:8px Arial,sans-serif;letter-spacing:.18em;color:#897d67}.sa-ab-code b{font:14px Georgia,serif;color:#d3b16e;letter-spacing:.08em} .sa-ab-subtitle{margin:18px 0 0;color:#a99e87;font-size:12px} .sa-ab-progress{display:grid;grid-template-columns:repeat(5,1fr);border-bottom:1px solid rgba(184,138,67,.25);background:rgba(1,13,11,.25)} .sa-ab-step{position:relative;border:0;border-right:1px solid rgba(184,138,67,.13);background:transparent;color:#887f6d;padding:13px 8px 12px;cursor:pointer;font:9px Arial,sans-serif;letter-spacing:.14em} .sa-ab-step b{display:block;color:#9c7a43;font:11px Georgia,serif;margin-bottom:5px}.sa-ab-step small{display:block;margin-top:4px;font:7px Arial,sans-serif;letter-spacing:.12em;color:#5f716a} .sa-ab-step.is-active{color:#e7c77f;background:linear-gradient(180deg,rgba(184,138,67,.05),transparent)}.sa-ab-step.is-active:after{content:"";position:absolute;height:2px;left:0;right:0;bottom:-1px;background:var(--gold)} .sa-ab-body{display:grid;grid-template-columns:minmax(0,1fr) 235px;min-height:420px} .sa-ab-panels{min-width:0;padding:34px 38px 40px;border-right:1px solid rgba(184,138,67,.18)} .sa-ab-panel{display:none;animation:saAbIn .25s ease both}.sa-ab-panel.is-active{display:block}@keyframes saAbIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}} .sa-ab-section-title{display:flex;align-items:baseline;gap:10px;margin:0 0 8px;color:#ead7ac;font:23px Georgia,serif}.sa-ab-section-title:before{content:"§";font-size:13px;color:#a77d3c} .sa-ab-hint{margin:0 0 30px;color:#778a82;font-size:11px}.sa-ab-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 24px}.sa-ab-field.wide{grid-column:1/-1} .sa-ab-field label{display:flex;justify-content:space-between;margin-bottom:7px;color:#a7987c;font:8px Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase}.sa-ab-count{color:#536b62;letter-spacing:0}.sa-ab-required{color:#c79b54} .sa-ab-input,.sa-ab-area{box-sizing:border-box;width:100%;border:0!important;border-bottom:1px solid rgba(184,138,67,.32)!important;border-radius:0!important;background:rgba(255,255,255,.018)!important;color:#e9dfca!important;padding:10px 7px!important;outline:none!important;font:14px Georgia,serif!important;box-shadow:none!important;transition:.2s} .sa-ab-area{min-height:130px;resize:vertical;line-height:1.65}.sa-ab-area.tall{min-height:225px}.sa-ab-input::placeholder,.sa-ab-area::placeholder{color:#52665e!important;font-style:italic}.sa-ab-input:focus,.sa-ab-area:focus{border-bottom-color:#d0a85e!important;background:rgba(184,138,67,.045)!important}.sa-ab-error{border-bottom-color:#a85b50!important;background:rgba(125,64,57,.08)!important} .sa-ab-private{position:relative;padding:15px;border:1px dashed rgba(125,64,57,.32)}.sa-ab-private:before{content:"RISERVATO · AMMINISTRAZIONE";display:block;margin-bottom:12px;color:#9b6259;font:7px Arial,sans-serif;letter-spacing:.18em} .sa-ab-rail{position:relative;padding:31px 24px 26px;background:linear-gradient(180deg,rgba(0,10,9,.22),rgba(0,10,9,.44))} .sa-ab-rail:before{content:"RISERVATO";position:absolute;right:-31px;top:86px;transform:rotate(90deg);font:7px Arial,sans-serif;letter-spacing:.32em;color:rgba(185,104,95,.45)} .sa-ab-rail-label{font:8px Arial,sans-serif;letter-spacing:.22em;color:#8f826c;margin-bottom:12px}.sa-ab-status{display:flex;align-items:center;gap:8px;color:#c1a66f;font:8px Arial,sans-serif;letter-spacing:.13em}.sa-ab-status i{width:6px;height:6px;border-radius:50%;background:#b88a43;box-shadow:0 0 10px rgba(184,138,67,.6)} .sa-ab-rail-rule{height:1px;background:rgba(184,138,67,.16);margin:18px 0}.sa-ab-cover{height:185px;border:1px solid rgba(184,138,67,.25);display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,rgba(184,138,67,.08),transparent 62%);background-size:cover;background-position:center;overflow:hidden}.sa-ab-monogram{font:43px Georgia,serif;color:rgba(212,176,106,.18);letter-spacing:.08em}.sa-ab-cover.has-cover .sa-ab-monogram{opacity:0} .sa-ab-cover-label{display:block;margin-top:8px;font:7px Arial,sans-serif;letter-spacing:.12em;color:#716b5d}.sa-ab-cover-label input{box-sizing:border-box;width:100%;margin-top:5px;padding:6px 0;border:0;border-bottom:1px solid rgba(184,138,67,.18);background:transparent;color:#b7ad98;font-size:9px;outline:none} .sa-ab-meta{display:flex;justify-content:space-between;align-items:center;margin:10px 0 7px;font:7px Arial,sans-serif;letter-spacing:.16em;color:#746e60}.sa-ab-meta b{font:12px Georgia,serif;color:#c7a866}.sa-ab-meter{height:2px;background:rgba(255,255,255,.06);overflow:hidden}.sa-ab-meter i{display:block;height:100%;width:0;background:#b88a43;transition:width .25s} .sa-ab-seal{margin-top:28px;padding:12px 7px;border:1px solid rgba(125,64,57,.32);color:rgba(185,104,95,.55);text-align:center;font:7px Arial,sans-serif;line-height:1.55;letter-spacing:.2em;transform:rotate(-2deg)}.sa-ab-seal b{font:11px Georgia,serif} .sa-ab-preview{padding:22px;border:1px solid rgba(184,138,67,.2);background:rgba(0,0,0,.12)}.sa-ab-preview-name{color:#efd39a;font-size:25px}.sa-ab-preview-meta{color:#8d836f;font-size:11px;margin:5px 0 18px}.sa-ab-preview h4{color:#b88a43;font:8px Arial,sans-serif;letter-spacing:.15em;margin:18px 0 6px}.sa-ab-preview p{white-space:pre-wrap;color:#d8cfbd;font-size:12px;line-height:1.65} .sa-ab-validation{display:none;padding:11px 38px;border-top:1px solid rgba(125,64,57,.35);background:rgba(80,27,22,.22);color:#d8c6a6}.sa-ab-validation.show{display:flex;gap:10px;align-items:center}.sa-ab-validation strong{font:8px Arial,sans-serif;letter-spacing:.17em;color:#d58e81}.sa-ab-validation span{font-size:11px} .sa-ab-actions{display:flex;align-items:center;gap:10px;padding:16px 38px;border-top:1px solid rgba(184,138,67,.18);background:rgba(0,10,9,.28)}.sa-ab-btn{border:1px solid rgba(184,138,67,.35);background:transparent;color:#b8a77f;padding:10px 18px;cursor:pointer;font:8px Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase}.sa-ab-btn.primary{margin-left:auto;background:rgba(184,138,67,.10);color:#e0c17c}.sa-ab-btn:hover{border-color:#b88a43;color:#efd395}.sa-ab-btn:disabled{opacity:.25}.sa-ab-saved{font:8px Arial,sans-serif;color:#71867d;opacity:0}.sa-ab-saved.show{opacity:1}.sa-ab-note{color:#6e796f;font-size:10px}.sa-ab-native-hidden{display:none!important} .sa-ab-progress{background:#061a17!important} .sa-ab-body{background:#071b18!important} .sa-ab-panels{background:#081e1a!important} .sa-ab-rail{background:linear-gradient(180deg,#061915,#051512)!important} .sa-ab-actions{background:#051714!important} .sa-ab-panel,.sa-ab-field{background:transparent!important} .sa-ab-section-title{position:relative;padding:0 0 11px!important;background:transparent!important;border-bottom:1px solid rgba(184,138,67,.24)} .sa-ab-section-title:after{content:"";position:absolute;left:0;bottom:-1px;width:58px;height:1px;background:#b88a43} #sa-application-builder .sa-ab-section-title, #sa-application-builder .sa-ab-panel h3{background-color:transparent!important;background-image:none!important;color:#ead7ac!important;box-shadow:none!important} @media(max-width:760px){.sa-ab-head{padding:24px 20px}.sa-ab-headrow{align-items:flex-start}.sa-ab-title{font-size:23px!important}.sa-ab-code{display:none}.sa-ab-step{padding:11px 3px}.sa-ab-step small{display:none}.sa-ab-body{grid-template-columns:1fr}.sa-ab-panels{border-right:0;padding:28px 20px}.sa-ab-rail{border-top:1px solid rgba(184,138,67,.18)}.sa-ab-grid{grid-template-columns:1fr}.sa-ab-field.wide{grid-column:auto}.sa-ab-actions{padding:14px 20px}} @media(prefers-reduced-motion:reduce){.sa-ab-panel{animation:none}} /* SAN AVELIO v14 — EDITORIAL DOSSIER */ #sa-application-builder{--v14-ink:#10231f;--v14-paper:#e8dfcd;--v14-gold:#a9803e} #sa-application-builder .sa-ab-shell{background:#e8dfcd!important;color:#10231f!important;border:1px solid rgba(92,70,37,.45)!important;box-shadow:0 22px 55px rgba(0,0,0,.22)!important} #sa-application-builder .sa-ab-shell:before{display:none!important} #sa-application-builder .sa-ab-head{min-height:0!important;padding:24px 34px 20px!important;color:#efe4ce!important;background:radial-gradient(circle at 80% 0,rgba(169,128,62,.12),transparent 34%),linear-gradient(112deg,#071a17,#0b2520 68%,#071a17)!important;border-bottom:1px solid rgba(169,128,62,.55)!important} #sa-application-builder .sa-ab-head:after{content:"FASCICOLO / ARCHIVIO CIVICO";position:absolute;right:34px;bottom:18px;font:9px/1.2 Arial,sans-serif;letter-spacing:2.2px;color:rgba(231,213,177,.45)} #sa-application-builder .sa-ab-head h1{max-width:72%;font-size:clamp(34px,5vw,68px)!important;line-height:.92!important;letter-spacing:-1.8px!important;font-weight:400!important;color:#f1dfb8!important;text-transform:uppercase} #sa-application-builder .sa-ab-head p{color:rgba(239,228,206,.64)!important} #sa-application-builder .sa-ab-progress{background:#0a201c!important;border:0!important;border-bottom:1px solid rgba(169,128,62,.45)!important} #sa-application-builder .sa-ab-progress{display:grid!important;grid-template-columns:repeat(5,1fr)!important;gap:0!important} #sa-application-builder .sa-ab-step{min-height:68px!important;border:0!important;border-right:1px solid rgba(169,128,62,.18)!important;background:transparent!important;color:rgba(236,220,187,.48)!important;transition:.25s ease!important} #sa-application-builder .sa-ab-step:hover{color:#ead4a7!important;background:rgba(169,128,62,.06)!important} #sa-application-builder .sa-ab-step.is-active,#sa-application-builder .sa-ab-step.active{color:#f1d79f!important;background:rgba(169,128,62,.11)!important;box-shadow:inset 0 -2px 0 #a9803e!important} #sa-application-builder .sa-ab-body{position:relative!important;background:#e8dfcd!important;color:#10231f!important} #sa-application-builder .sa-ab-body:before{content:"01";position:absolute;left:26px;top:18px;z-index:0;font:normal 180px/.8 Georgia,serif;letter-spacing:-12px;color:rgba(16,35,31,.045);pointer-events:none} #sa-application-builder .sa-ab-panels{position:relative;z-index:1;background:transparent!important;padding:32px 38px 44px!important} #sa-application-builder .sa-ab-panel,#sa-application-builder .sa-ab-field{background:transparent!important;color:#10231f!important} #sa-application-builder .sa-ab-section-title,#sa-application-builder .sa-ab-panel h3{margin:0 0 10px!important;padding:0 0 13px!important;background:none!important;color:#10231f!important;border:0!important;border-bottom:1px solid rgba(16,35,31,.22)!important;box-shadow:none!important;font:normal clamp(30px,4vw,48px)/1 Georgia,serif!important;letter-spacing:-1px!important} #sa-application-builder .sa-ab-section-title:before{content:"SEZIONE 01 · REGISTRO PERSONALE";display:block;margin:0 0 9px;font:9px/1 Arial,sans-serif;letter-spacing:2.2px;color:#a9803e} #sa-application-builder .sa-ab-section-title:after{width:76px!important;background:#a9803e!important} #sa-application-builder .sa-ab-field label{color:#5d574b!important;font:9px/1.35 Arial,sans-serif!important;letter-spacing:1.6px!important;text-transform:uppercase!important} #sa-application-builder .sa-ab-panels input,#sa-application-builder .sa-ab-panels textarea,#sa-application-builder .sa-ab-panels select{border:0!important;border-radius:0!important;border-bottom:1px solid rgba(16,35,31,.34)!important;background:rgba(255,255,255,.12)!important;color:#10231f!important;box-shadow:none!important} #sa-application-builder .sa-ab-panels input:focus,#sa-application-builder .sa-ab-panels textarea:focus,#sa-application-builder .sa-ab-panels select:focus{border-bottom-color:#a9803e!important;background:rgba(255,255,255,.24)!important;outline:0!important} #sa-application-builder .sa-ab-panels input::placeholder,#sa-application-builder .sa-ab-panels textarea::placeholder{color:rgba(16,35,31,.38)!important} #sa-application-builder .sa-ab-rail{position:relative!important;color:#e8d8b8!important;background:#0a201c!important;border-left:1px solid rgba(169,128,62,.42)!important} #sa-application-builder .sa-ab-rail:before{content:"ARCHIVIO\A SAN AVELIO";white-space:pre;display:block;margin:0 0 24px;color:rgba(169,128,62,.65);font:11px/1.5 Arial,sans-serif;letter-spacing:3px} #sa-application-builder .sa-ab-rail label,#sa-application-builder .sa-ab-rail small{color:rgba(232,216,184,.55)!important} #sa-application-builder .sa-ab-rail input{color:#eadbbd!important;border-bottom-color:rgba(169,128,62,.38)!important;background:rgba(0,0,0,.14)!important} #sa-application-builder .sa-ab-actions{background:#0a201c!important;border-top:1px solid rgba(169,128,62,.4)!important} @media(max-width:760px){#sa-application-builder .sa-ab-head h1{max-width:100%;font-size:38px!important}#sa-application-builder .sa-ab-head:after{display:none}#sa-application-builder .sa-ab-body:before{font-size:110px;left:10px}#sa-application-builder .sa-ab-panels{padding:24px 20px 30px!important}} /* v15 hard visual reset */ #sa-application-builder .sa-ab-shell{background:#e7ddc8!important} #sa-application-builder .sa-ab-body{grid-template-columns:minmax(0,1fr) 245px!important;background:#e7ddc8!important} #sa-application-builder .sa-ab-panels{background:#e7ddc8!important;border-right:0!important} #sa-application-builder .sa-ab-hint{color:#706b5f!important} #sa-application-builder .sa-ab-count{color:#817865!important} #sa-application-builder .sa-ab-progress{background:#102923!important} #sa-application-builder .sa-ab-step b{font-size:18px!important;color:#b9914f!important} #sa-application-builder .sa-ab-step small{color:rgba(235,220,190,.38)!important} #sa-application-builder .sa-ab-step.is-active:after{height:3px!important} #sa-application-builder .sa-ab-title{font-size:46px!important;letter-spacing:.01em!important} #sa-application-builder .sa-ab-rail{padding-top:34px!important} `; document.head.appendChild(style); var fields=[ {id:'fullName',step:0,label:'Имя и фамилия персонажа',req:true,max:80,ph:'Например: North Douman'}, {id:'age',step:0,label:'Возраст',req:true,max:3,ph:'Например: 34',type:'number'}, {id:'occupation',step:0,label:'Род деятельности',req:true,max:100,ph:'Профессия, должность или занятие'}, {id:'face',step:0,label:'Внешность / FC',req:false,max:120,ph:'Имя прототипа внешности'}, {id:'bio',step:1,label:'Биография',req:true,max:12000,ph:'История персонажа до настоящего момента...',area:true,tall:true}, {id:'character',step:2,label:'Характер',req:true,max:8000,ph:'Манеры, привычки, достоинства, слабости, страхи...',area:true,tall:true}, {id:'details',step:3,label:'Дополнительные сведения',req:false,max:5000,ph:'Факты, привычки, имущество, особенности...',area:true}, {id:'relations',step:3,label:'Связи на острове',req:false,max:5000,ph:'Родственники, друзья, враги, знакомые...',area:true}, {id:'secrets',step:3,label:'Тайны персонажа',req:false,max:5000,ph:'Информация, которую не должны знать другие игроки...',area:true,private:true} ]; var state={step:0,data:{},cover:''}; try{var saved=JSON.parse(localStorage.getItem(DRAFT_KEY)||'{}')||{};if(saved.data){state.data=saved.data||{};state.cover=saved.cover||''}else state.data=saved}catch(e){} function fieldHTML(f){ var cls='sa-ab-field'+(f.area?' wide':'')+(f.private?' sa-ab-private':''); var counter=f.max?'0 / '+f.max+'':''; var label=''; var common=' id="sa-ab-'+f.id+'" data-field="'+f.id+'" '+(f.max?'maxlength="'+f.max+'" ':'')+'placeholder="'+esc(f.ph)+'"'; var input=f.area?'': ''; return '
'+hint+'
Registro персонального дела. Черновик сохраняется автоматически в этом браузере.
Проверьте персональное дело перед подготовкой к публикации.
После публикации администрация сможет принять персонажа и связать эту тему с его игровой карточкой.
'+esc(d.bio||'—')+'
'+ ''+esc(d.character||'—')+'
'+ (d.details?''+esc(d.details)+'
':'')+ (d.relations?''+esc(d.relations)+'
':''); } function completion(){ var filled=fields.filter(function(f){return String(state.data[f.id]||'').trim()}).length; return Math.round(filled/fields.length*100); } function updateDossierName(){ var title=q('#sa-ab-dossier-name',shell),name=(state.data.fullName||'').trim(); if(title)title.textContent=name?name.toUpperCase():'SENZA NOME'; } function updateArchivio(){ var pct=completion(),p=q('#sa-ab-percent',shell),m=q('#sa-ab-meter-fill',shell),pg=q('#sa-ab-page',shell); if(p)p.textContent=pct+'%';if(m)m.style.width=pct+'%';if(pg)pg.textContent=('0'+(state.step+1)).slice(-2)+' / 05'; var cover=q('#sa-ab-cover',shell); if(cover){cover.style.backgroundImage=state.cover?'linear-gradient(rgba(5,20,17,.18),rgba(5,20,17,.42)),url("'+state.cover.replace(/"/g,'%22')+'")':'none';cover.classList.toggle('has-cover',!!state.cover)} } function render(){ updateDossierName();updateArchivio(); qa('.sa-ab-step',shell).forEach(function(b){b.classList.toggle('is-active',+b.dataset.step===state.step)}); qa('.sa-ab-panel',shell).forEach(function(p){p.classList.toggle('is-active',+p.dataset.panel===state.step)}); q('#sa-ab-back').disabled=state.step===0; q('#sa-ab-next').style.display=state.step===4?'none':''; q('#sa-ab-publish').style.display=state.step===4?'':'none'; if(state.step===4)preview(); } qa('.sa-ab-step',shell).forEach(function(b){b.addEventListener('click',function(e){ e.preventDefault(); state.step=+b.dataset.step; render(); })}); q('#sa-ab-back').onclick=function(){if(state.step>0){state.step--;render()}}; q('#sa-ab-next').onclick=function(){if(!validateStep(state.step))return;if(state.step<4){state.step++;render();shell.scrollIntoView({behavior:'smooth',block:'start'})}}; function buildBBCode(){ var d=state.data; /* Machine-readable line is deliberately plain text inside the post for the future admin acceptance module. */ var machine='[color=transparent][size=1]SA_APP_V1:'+encodeURIComponent(JSON.stringify({fullName:d.fullName||'',age:d.age||'',occupation:d.occupation||'',face:d.face||''}))+'[/size][/color]'; return machine+'\n'+ '[center][size=20][b]'+bb(d.fullName)+'[/b][/size]\n'+ (bb(d.age)?bb(d.age)+' лет':'')+(bb(d.occupation)?' · '+bb(d.occupation):'')+(bb(d.face)?'\nFC: '+bb(d.face):'')+'[/center]\n\n'+ '[b]БИОГРАФИЯ[/b]\n'+bb(d.bio)+'\n\n'+ '[b]ХАРАКТЕР[/b]\n'+bb(d.character)+ (bb(d.details)?'\n\n[b]ДОПОЛНИТЕЛЬНО[/b]\n'+bb(d.details):'')+ (bb(d.relations)?'\n\n[b]СВЯЗИ[/b]\n'+bb(d.relations):'')+ (bb(d.secrets)?'\n\n[hide=999999][b]ТАЙНЫ ПЕРСОНАЖА · ДЛЯ АДМИНИСТРАЦИИ[/b]\n'+bb(d.secrets)+'[/hide]':''); } q('#sa-ab-publish').onclick=function(){ for(var s=0;s<4;s++){if(!validateStep(s)){state.step=s;render();return}} var ta=editor(); if(!ta){alert('Форма ответа Rusff не найдена. Обновите страницу и попробуйте снова.');return} ta.value=buildBBCode(); ta.dispatchEvent(new Event('input',{bubbles:true})); var form=replyForm(); if(form)form.classList.remove('sa-ab-native-hidden'); shell.style.display='none'; ta.focus(); ta.scrollIntoView({behavior:'smooth',block:'center'}); }; var coverInput=q('#sa-ab-cover-url',shell); if(coverInput){coverInput.value=state.cover||'';coverInput.addEventListener('input',function(){state.cover=this.value.trim();saveDraft();updateArchivio()})} render(); } function SAApplicationBuilderStart(){ /* Rusff HTML-top executes before topic posts exist, so boot only after DOM is ready. */ if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded',SAApplicationBuilderBoot,{once:true}); }else{ SAApplicationBuilderBoot(); } } SAApplicationBuilderStart(); })();