1 2var lovilka=''; 3var alertmajax=0; 4var mojaxsalt=''; 5 6// óäàëÿåì íåíóæíûå history çàêðûòûõ îêîí 7/* 8if(window.addEventListener && window.history) setInterval(function() { 9 if(Object.keys(mHelps).length) return; 10 var w=document.location.href.split('?')[1]; 11 if(w && w.indexOf('win_')===0 && window.history.back) window.history.back(); 12},10); 13*/ 14 15if(user_opt('ani')) page_onstart.push("LOADS(www_css+'animate.css',function(){wintempl_cls=wintempl_cls.replace(/animated/g,'')},function(){useropt.ani=0});"); 16else wintempl_cls=wintempl_cls.replace(/animated/g,''); 17 18if(user_opt('er')) window.onerror=function(e,url,n) { // ñòóêà÷ îá îøèáêàõ JS ó ïîëüçîâàòåëåé 19 console.log('LL_ERROR:'+e+"|"+n+"|"+url+'|'+lovilka+'|'+s); 20 return true; 21} 22 23var alertmajax=0; // if(admin) setTimeout('var alertmajax=1',4000); 24 25// îáðàùåíèÿ, êîòîðûå îáÿçàíû èäòè òîëüêî ÷åðåç ñåêðåòíûé xdomain 26var ifrnames=[ 27 'editor.php:editform', 28 // 'editor.php:tags', 29 'editor.php:settings_win', 30 'editor.php:editform_new', 31 'editor.php:newform', 32 // 'editor.php:findreplace', 33 'editor.php:xclipboard', 34 'adminsite.php:edit', 35 // 'adminsite.php:new', 36 'login.php:getinfo' /*,'foto.php:album'*/ 37]; 38 39//function basename(path) { return path.replace(/^.*[\/\\]/g,''); } 40function c_save(n,v,d,p) { 41 // d=window.navigator.userAgent.indexOf('NokiaE90')<0?d:0; // çàåáàëà Íîêèÿ íå ïîíèìàòü êóêè äëÿ äîìåíà 42 if(v===false||v===null) return false; var N=new Date(); N.setTime(N.getTime()+(v==''?-1:3153600000000)); 43 document.cookie=n+'='+encodeURIComponent(v)+';expires='+N.toGMTString()+';' 44 +'SameSite=Lax;' 45 +'path='+(p==undefined?'/':p)+';'+(d!==0?'domain=.'+MYHOST+';':''); 46} 47 48var zindexstart=100; // íà÷àëî îòñ÷åòà ñëîåâ äëÿ îêîí 49var activid=false; // id àêòèâíîãî îêíà 50var hid=1; // ñ÷åò÷èê îêîí 51var mHelps={}; // ìàññèâ äëÿ îêîí: id:[hotkey,zindex] 52var hotkey=[]; // [code,(ctrlKey,shiftKey,altKey,metaKey),func] 53var hotkey_def=[]; // õîòêåè ãëàâíîãî îêíà 54var nonav=0; // îòêëþ÷èòü íàâèãàöèþ è áóêâåííûå õîòêåè È ÑÈÑÒÅÌÓ ÎÏÅ×ÀÒÎÊ 55 56if(window.top===window && mnogouser) page_onstart.push("if(ux=='c' || 1) ifhelpc(xdom,'xdomain','xdomain');"); 57 58if(admin) page_onstart.push("LOADS(www_js+'adm.js?rand='+Math.random(),function(){adm()})"); 59 60//======================================================== 61if(typeof(hotkey_default)!='function') hotkey_default=function(){ 62 hotkey=[]; 63 64 setkey('Escape','',function(e){ clean(isHelps())},true,1); // çàêðûòü ïîñëåäíåå îêíî 65 setkey('Enter','ctrl',function(e){if(!isHelps()) helper_go()},true,1); // åñëè íå îòêðûòî îêîí - îêíî ïðàâêè 66 67 if(adm) { 68 setkey('Digit1','ctrl',function(e){keyalert=(keyalert?0:1);talert('Key scan '+(keyalert?'ON':'off'),1000);},false); // âêëþ÷åíèå ñêàíêîäîâ 69 // setkey('x','alt',function(e){alert('Scroll W/H='+getScrollW()+'/'+getScrollH()+'\ndocument.compatMode='+document.compatMode+'\nwindow.opera'+window.opera+'\ngetWin W/H='+getWinW()+'/'+getWinH()+'\ngetWin W0/H0='+getWinW0()+'/'+getWinH0()+'\ngetDoc W/H='+getDocW()+'/'+getDocH());},false); 70 setkey('KeyE','',function(e){majax('editor.php',{a:'editform',num:num,comments:(dom('commpresent')?1:0)})},false); // ðåäàêòîð çàìåòêè 71 setkey('KeyN','',function(e){majax('editor.php',{a:'newform',hid:++hid})},false); // íîâàÿ çàìåòêà 72 } 73 74 setkey('KeyU','',function(e){majax('login.php',{a:'getinfo'})},true); // ëè÷íàÿ êàðòî÷êà 75}; 76 77page_onstart.push("hotkey_default()"); 78 79//======================================================== 80 81keykeys={ctrl:8,shift:4,alt:2,meta:1}; 82 83// setkey( 84// [0] 'key' or keys[] 85// [1] ,'ctrl shift alt meta' ÷åðåç ïðîåëû àáû êàê ëèøü áû áûëî 86// [2] ,function(){} - åñëè ôóíêöèè íåò (''), òî óäàëèòü 87// [3] ,o ×òî âåðíóòü return hotkey[i][3]; 88// [4] ,nav Äîëæåí îòñóòñòâîâàòü åñëè íå íàâèãàöèîííîå èáî if(nonav && !hotkey[i][4]) return true; // íàâèãàöèÿ îòêëþ÷åíà äëÿ íàâèãàöèîííûõ 89// setkey('ArrowLeft','',function(e){}) 90 91function setkey(k,v,f,o,nav) { nav=nav?1:0; if(typeof(k)!='object') k=[k]; 92 for(var i=0;i<k.length;i++) { 93 setkey0(k[i],v,f,o,nav); 94 if(mHelps[activid]) mHelps[activid][0]=hotkey.slice(); else hotkey_def=hotkey.slice(); // è çàïîìíèòü â ìàññèâå 95 } 96} 97 98function setkey0(k,v,f,o,nav){ // ïîâåñèòü ôóíêöèþ íà íàæàòèå êëàâèøè 99 var e=0; for(var i in keykeys) if(v.indexOf(i)>=0) e+=keykeys[i]; // ñåòêà âñÿêèõ øèôòîâ-êîíòðîëîâ 100 for(var i in hotkey) if(hotkey[i][0]==k && hotkey[i][1]==e){ // åñëè óæå åñòü - èçìåíèòü 101 if(!f || f=='') delete hotkey[i]; else hotkey[i]=[k,e,f,o,nav]; 102 return; 103 } 104 if(!f || f=='') return; // åñëè íåò, è íå çàäàíà ôóíêöèÿ, - ïðîñòî âûéòè 105 if(e) hotkey.push([k,e,f,o,nav]); else hotkey.unshift([k,e,f,o,nav]);
105 // èíà÷å - çàäàòü ñ êîíöà ñïèñêà èëè ñ íà÷àëà 106} 107 108function rel_redirect(id){ var e=dom(id); if(user_opt('n') && e && e.href && !isHelps()) { 109 if(id=='PrevLink'){ var b=document.body,i=curX-startX; if(i<0)i=-i; b.style.left=i+'px'; setOpacity(b,0.5); } 110 else if(id=='NextLink'){ var b=document.body,i=curX-startX; if(i<0)i=-i; b.style.right=i+'px'; setOpacity(b,0.5); } 111 document.location.href=e.href; } 112} 113 114 115///////// ÝÒÓ ÂÑÞ ÕÓÉÍÞ ÏÅÐÅÄÅËÀÒÜ ÁÛ 116function cphash(a) { 117 var b={}; for(var i in a) { 118 if(typeof(a[i])!='undefined'){ 119 if(typeof(a[i])=='object' && typeof(a[i]['innerHTML'])!='string') b[i]=cphash(a[i]); else b[i]=a[i];} 120 } 121 b.push=a.push; b.unshift=a.unshift; // éîáàíûé ïàò÷! 122 return b; 123} 124 125function cpmas(a) { var b=[]; for(var i=0;i<a.length;i++){ 126 if(typeof(a[i])!='undefined'){ 127 if(typeof(a[i])=='object' && typeof(a[i]['innerHTML'])!='string') b[i]=cphash(a[i]); else b[i]=a[i];} 128} return b; } 129 130function isHelps(){ var max=0,id=false; for(var k in mHelps){ if(mHelps[k][1]>=max){max=mHelps[k][1];id=k;} } return id; }// íàéòè âåðõíåå îêíî èëè false 131 132var print_r_id=0; 133var print_rid={}; 134 135function printr_f(ev,e,i){ ev.stopPropagation(); print_r(print_rid[i]); 136 if(e.className!='ll') { dom(e,"[Object]"); e.className='ll'; return; } 137 e.className=''; e.style.marginLeft='30px'; dom(e,print_r(print_rid[i],0,1)+'\n'); 138} 139 140function print_r(a,n,skoka) { 141 if(skoka===0) return '@'; if(!skoka) skoka=10; 142 var s='',t='',v,tp,vl,vv; if(!n)n=0; for(j=0;j<n*10;j++) t+=' '; 143 if(typeof(a)!='object') return a; 144 145 for(var j in a){ 146 if(typeof(j)=='undefined') { s='\nundefined'+s; continue; } 147 tp=typeof(a[j]); v=a[j]; 148 try{ vv=''+v; } catch(x) { vv='(((Uncaught)))'; } 149 150 if(tp=='function') { 151 // vl="<div style='color:orange;display:inline-table'>function</div>"; 152 var z=(print_r_id++); print_rid[z]=v; 153 vl="<div style='color:orange;display:inline-table'>function(<div onclick=\"printr_f(event,this,'"+z+"')\" class='ll'>___</div>)</div>"; 154 } 155 else if(tp=='number' || tp=='boolean') vl="<span style='color:lightgreen'>"+vv+'</span>'; 156 else if(tp=='undefined') vl="<span style='color:#ccc'>"+tp+"</span>"; 157 else if(tp=='string') vl="<div style='color:green;display:inline-table;'>"+vv+'</div>'; 158 else if(tp=='object' && !v) vl="<span style='color:#ccc'>null</span>"; 159 else if(tp=='object') { 160 var z=(print_r_id++); print_rid[z]=v; // cphash(v); // {}; Object.assign(print_rid[z],v); 161 vl = "<div onclick=\"printr_f(event,this,'"+z+"')\" class='ll'>"+vv+"</div>"; 162 } 163 else vl='['+vv+"] <span style='color:green'>"+typeof(v)+'</span>'; 164 s='\n'+t+j+' = '+vl+s; 165 } 166 return s; 167} 168 169 170 171function in_array(s,a){ for(var l in a) if(a[l]==s) return l; return false; } 172 173function newin(e) { return (e?e.classList.contains('newin'):e); } 174 175clean=function(id,animtrue,History) { 176 if(id===null||id===undefined) return; 177 178 if(typeof(id)=='object') { 179 if(typeof(id.id)!='undefined'&&id.id!='') id=id.id; // åñëè åñòü èìÿ, òî âçÿòü èìÿ 180 else { var t='tmp_'+(hid++); id.id=t; id=t; } // èíà÷å áëÿòü ïðèñâîèòü 181 } 182 183 var e=dom(id), nin=newin(e); 184 185 if(nin && !History && window.addEventListener && window.history.back) { 186 var w=document.location.href.split('?')[1]; 187 if(w && w.indexOf('win_'+id)===0) { 188 // âåðíóòü, íî òèõî 189 window.removeEventListener('popstate', HistoryEvent); 190 window.history.back(); 191 setTimeout(function(){ window.addEventListener('popstate', HistoryEvent, false);},50); 192 } 193 } 194 195 if(typeof(mHelps[id])!='undefined' && !nin) { // îêíî áûëî 196 delete(mHelps[id]); // óäàëèòü îêíî 197 mHelps_sort(top); // ïåðåñîðòèðîâàòü 198 if(!isHelps()) { hotkey=hotkey_def.slice(); nonav=0; } // âîññòàíîâèòü äåôàóëòû 199 } 200 201 if(e) { 202 var clen=function(){ 203 if(nin) dom.on( (e.previousSibling?e.previousSibling:document.body) ); 204 if(e && e.parentNode) e.parentNode.removeChild(e); 205 // e?.parentNode?.removeChild(e); СУЧÐÐ ÐÐÐÐЫРÐÐÐÐÐ 206 }; 207 208 if( nin || typeof(e.onanimationend)!='object' || in_array(id,['tenek','ajaxgif'])) clen(); // dom.off(id); setTimeout(clen,10); 209 else { // animate 210 dom.off(e.querySelector('.winret')); 211 anim(e,(nin ? 'slideOutRight' : 'zoomOut'),clen,animtrue); // .zoomInRight .rotateOutUpLeft 212 } 213 } else if(typeof(idrename)!='undefined'&&typeof(idrename[id])!='undefined') { clean(idrename[id]); } 214 dom.off('tip'); 215}; 216 217var JSload={}; 218 219function mHelps_sort(top) { // ñîðòèðîâêà îêîí ïî ñëîÿì âîçðàñòàíèÿ ñ ïðåäëåæàùèì îêíîì òåíè 220 if(top=='salert') return; 221 222 var mam=[],k=zindexstart,id=0; for(var i in mHelps) mam.push([i,mHelps[i][1]]); 223 if(!mam.length){ // åñëè íåòó ðàñïàõíóòûõ îêîøåê 224 clean('tenek'); 225 hotkey=hotkey_def.slice(); 226 activid=false; 227 bukadump(); 228 return; 229 } 230 mam.sort(function(i,j){return i[1]>j[1]?1:0}); 231 232 for(var i=0;i<mam.length;i++){ 233 id=mam[i][0]; 234 if(id==top || !top && (i+1)==mam.length) continue; 235 mHelps[id][1]=k; dom(id).style.zIndex=k++; 236 } if(top) id=top; 237 238 if(!mHelps[id]) { clean('tenek'); return; } 239 240 if(typeof(document.body.style.pointerEvents)=='string') { 241 var T=dom('tenek'); if(!T) { newdiv('',{id:'tenek',cls:'tenek'}); T=dom('tenek'); } 242 T.style.zIndex=k++; 243 } 244 245 mHelps[id][1]=k; dom(id).style.zIndex=k; 246 hotkey=mHelps[id][0].slice(); 247 activid=id; 248 bukadump(); 249} 250 251function bukadump() { // îòëàäî÷íèê 252 if(!dom('bukadump')) return; 253 var s='<hr>'; 254 s+='<br>activid='+activid; 255 s+='<p>hotkey='+print_r(hotkey,0,0).replace(/\n/g,'<br>').replace(/ /g,' '); 256 s+='<hr>'; 257 dom('bukadump',dom.s('bukadump')+'<hr>'+s); 258} 259 260function inject(src){ loadScr(urlajax(src)); } 261
262function urlajax(s,dir) { return ( s.indexOf('://')<0 && s.substring(0,1) != '/' ? (dir?dir:www_ajax)+s : s ); } 263 264// óìíàÿ ïîäãðóçêà 265// ïåðâûé àðãóìåíò - èìÿ ôàéëû js èëè css èëè ìàññèâ ['1.js','2.js','1.css'] 266// âòîðîé íåîáÿçàòåëüíûé àðãóìåíò - ôóíêöèÿ, çàïóñêàåìàÿ ïî îêîí÷àíèè óäà÷íîé çàãðóçêè ÂÑÅÕ ïåðå÷èñëåííûõ 267// òðåòèé íåîáÿçàòåëüíûé - ôóíêöèÿ ïðè îøèáêå êàæäîãî èç 268// ÷åòâåðòûé (sync) óñòàíàëèâàòü â true, åñëè âàæåí ïîðÿäîê çàãðóçêè 269// LOADS('1.js',function(){Óäà÷íî}); 270// LOADS(['1.js','2.css'],function(){ SUCCESS!},function(){ERROR!},sync); 271// ñ îæèäàíèåì: await LOADS_promice(['1.js','2.css'],sync); // start end loaded 272const LOADES={}; 273function LOADS(urls, onSuccess, onError, sync) { 274 if(typeof urls === 'string') urls = [urls]; 275 urls = urls.filter(url => !LOADES[url]); // Îòôèëüòðóåì óæå çàãðóæåííûå 276 if(!urls.length) return onSuccess ? onSuccess() : true; // Åñëè íå÷åãî çàãðóæàòü, ñðàçó óñïåõ 277 const urls2 = [...urls]; 278 urls.forEach(url => { 279 const attr = /\.css($|\?.+?$)/.test(url) 280 ? { elname:'link', href:url, type:'text/css', rel:'stylesheet', media:'screen'} 281 : { elname:'script', src:url, type:'text/javascript', defer: true}; 282 const el = document.createElement(attr.elname); 283 for(const [a,b] of Object.entries(attr)) el.setAttribute(a,b); 284 if(sync) el.async = false; // Óïðàâëÿåì àñèíõðîííîñòüþ äëÿ ñêðèïòîâ 285 el.onerror = (e) => { 286 onError ? onError(url,e) : console.error(`Failed to load: ${url}`); 287 }; 288 el.onload = () => { 289 LOADES[url] = 1; 290 urls2.splice(urls2.indexOf(url),1); 291 if(!urls2.length) { ajaxoff(); if(onSuccess) onSuccess(); } 292 }; 293 document.head.appendChild(el); 294 }); 295 ajaxon(); 296} 297LOADS_sync=function(urls,onSuccess,onError) { LOADS(urls,onSuccess,onError,1) } 298LOADS_promise=LOADS_promice=include=function(urls,sync) { return new Promise(function(resolve,reject){ LOADS(urls,resolve,reject,sync) }); }; 299 300 301// ñîçäàòü íîâûé <DIV class='cls' id='id'>s</div> â ýëåìåíòå paren (åñëè íå óêàçàí - òî ïðîñòî â äîêóìåíòå) 302// åñëè óêàçàí relative - òî ñëåäóþùèì çà relative 303// åñëè relative=='first'(èëè 0) - â íà÷àëî 304// åñëè relative==['before',relative] - òî ïåðåä relative 305// èíà÷å (ðåêîìíäóåòñÿ ïèñàòü 'last') - â êîíåö 306// rootElement=false; 307function mkdiv(id,s,cls,paren,relative,display){ if(dom(id)) { dom(id,s); dom(id).className=cls; return; } 308 var div=document.createElement('DIV'); 309 if(cls) div.className=cls; 310 if(id) div.id=id; 311 if(s) div.innerHTML=s; 312 if(!display) div.style.display='none'; 313// if(!paren) paren = rootElement | document.body; 314 if(!paren) paren = document.body; 315 316 if(relative===undefined) { 317 try { paren.appendChild(div); } // paren.lastChild 318 catch(u) { 319 if(admin) alert('id='+id+' paren='+paren+' s='+s); 320 } 321 } 322 else if(relative===0||relative=='first') paren.insertBefore(div,paren.firstChild); 323 else if(typeof(relative)=='object' && relative[0]=='before') paren.insertBefore(div,relative[1]); 324 else paren.insertBefore(div,relative.nextSibling); 325 return div; 326} 327 328function newdiv(s,ara,paren,relative,display){ if(typeof(ara)!='object') ara={}; 329 var div=mkdiv(ara.id,s,(ara.cls?ara.cls:ara.class),paren,relative,(display==undefined?1:display)); 330 if(ara.attr) for(var i in ara.attr) div.setAttribute(i,ara.attr[i]); 331 return div; 332} 333 334function posdiv(id,x,y) { // ïîçèöèîíèðîâàíèå ñ ïðîâåðêîé íà âûëåò, åñëè àðãóìåíò '-1' - ïî öåíòðó ýêðàíà 335 var e=dom(id),W,w,H,h,SW,SH,DW,DH; 336 if(newin(e)) e=dom(id+'_body'); 337 338 e.style.position='absolute'; 339 w=e.clientWidth; h=e.clientHeight; 340 e.style.display='none'; // ïåðåä èçìåðåíèåì óáðàòü 341 W=getWinW(); H=getWinH(); SW=getScrollW(); SH=getScrollH(); 342 e.style.display='block'; 343 var es=e.currentStyle||window.getComputedStyle(e); 344 var mL=1*es.marginLeft.replace(/px/,''),mR=1*es.marginRight.replace(/px/,''); 345 346 if(x==-1) x=(W-w)/2+SW+mL-mR; 347 if(y==-1) y=(H-h)/2+SH; 348 DW=W-10; if(w<DW && x+w>DW) x=DW-w; if(x<0) x=0; 349 if(y<0) y=0; 350 if(!newin(e)) e.style.top=y+'px'; 351 e.style.left=(x-6)+'px'; 352} 353 354function center(id) { dom.on(id); posdiv(id,0,0); posdiv(id,-1,-1); } 355 356function addEvent(e,evType,fn) { 357 if(e.addEventListener) { e.addEventListener(evType,fn,false); return true; }
358 if(e.attachEvent) { var r = e.attachEvent('on' + evType, fn); return r; } 359 e['on' + evType] = fn; 360} 361 362function removeEvent(e,evType,fn){ 363 if(e.removeEventListener) { e.removeEventListener(evType,fn,false); return true; } 364 if(e.detachEvent) { e.detachEvent('on'+evType, fn) }; 365} 366 367function hel(s,t) { ohelpc('id_'+(++hid),(t==undefined?'':s),s); } 368function helps_cancel(id,f) { idd(id).querySelectorAll('.can')[0].onclick=f; } 369function helpc(id,s) { helps(id,s); center(id); /* setTimeout(function(x){center(id)},500);*/ } 370function ohelpc(id,z,s) { helpc(id,mk_helpbody(z,s)); } 371function ohelp(id,z,s) { helps(id,mk_helpbody(z,s)); } 372function mk_helpbody(z,s) { return (z==''?'':"<div class='legend'>"+z+"</div>")+"<div class='textbody'>"+s+"</div>"; } 373 374function idie(s,t) { 375 var e=typeof(s); if(e=='object') s="<pre style='max-width:"+(getWinW()-200)+"px'>"+print_r(s,0,3)+'</pre>'; 376 var header=''; 377 if(t!=undefined) { if(t.length < 120) header=h(''+t); else s=t+'<p>'+s; } 378 var p=dom('idie'); if(p) { p=p.querySelectorAll('.textbody'); if(p&&p[0]) return dom.add(p[0],'<hr>'+s); } 379 ohelpc('idie',header,s); 380} 381dier=idie; 382 383HistoryEvent=function(e) { 384 e.preventDefault(); 385 if( !window.history || !e ) return; 386 if( !e.state || !e.state.win || !dom(e.state.win) ) { 387 var wb=dom('winbody'); if(!wb) return; 388 wb.childNodes.forEach(ee=>{clean(ee)}); 389 dom.on(document.body); 390 return; 391 } 392 var id=dom(e.state.win).id; 393 var w=document.location.href.split('?')[1]; 394 if(!w || !w.indexOf('win_')===0) return; 395 396 var ee=dom('winbody').childNodes; 397 for(var i=ee.length-1;i>=0;i--) { if(ee[i].id != id) clean(ee[i]); else break; } 398}; 399// set Listener history 400 401if(window.addEventListener) window.addEventListener('popstate', HistoryEvent,false); 402 403winret=function(e){ if(window.history.back) window.history.back(); else clean(e.parentNode); }; 404 405// var wintempl="<div class='corners'><div class='inner'><div class='content' id='{id}_body' align=left>{text}</div></div></div>"; 406// var wintempl_cls='popup'; 407// var wintempl_cls='pop2'; 408// var wintempl="<div id='{id}_body'>{s}</div><i id='{id}_close' title='Close' class='can'></i>"; 409function helps(id,s,pos,cls,wt) { 410 411 if(!user_opt('nowin')) { 412 413 if(!dom('winbody')) { 414 var d=document.createElement('DIV'),b=document.body,bp=b.parentNode; 415 d.id='winbody'; bp.insertBefore(d,bp.firstChild); 416 } 417 418 if(useropt.mobwin && !in_array(id,['salert','idie','dier','fotooper'])) { 419 if(!dom(id)) { 420 var em=dom('winbody'); 421 dom.off(document.body); em.childNodes.forEach(e=>{dom.off(e)}); 422// rootElement.setAttribute('scrollTop',(document.documentElement.scrollTop || document.body.scrollTop)); 423// rootElement.setAttribute('scrollLeft',(document.documentElement.scrollLeft || document.body.scrollLeft)); 424 425 newdiv("<div class='winret' onclick='winret(this)' style='font-size:50px;index:30;position:absolute;top:5px;left:5px;cursor:pointer;width:100%;text-align:left;'>◀</div>\ 426<div style='margin: 80px 10px 0 10px; text-align:left' class='"+cls+"' id='"+id+"_body'>"+s+"</div>",{id:id,cls:'newin animate fadeInLeft'}, 427em); 428 init_tip(dom(id)); 429 430 if(window.history && window.history.pushState) { 431 window.history.pushState({win:id},'?win_'+id,'?win_'+id); 432 } 433 434 435 } else { if(dom(id+'_body')) dom(id+'_body',s); } 436 437 hotkey=hotkey_def.slice(); // îáíóëèòü äëÿ îêíà âñå øîòêåè 438 return; 439 } 440 441} 442 443if(!dom(id)) { 444 445 if(!wt) wt=wintempl; 446 mkdiv(id,wt.replace(/\{id\}/g,id).replace(/\{s\}/g,s),wintempl_cls+(cls?' '+cls:''),undefined,undefined,1); 447 if(dom(id+'_close')) dom(id+'_close').onclick=function(e){clean(id)}; 448 449 init_tip(dom(id)); 450 451 onMoveObject(dom(id),false, 452 function(e) { 453 if(e.className=='legend' || e.id==id+'_body') return dom(id); 454 return ( e.id==id ? e : false ); 455 } 456 ); 457// =========================================================================== 458 459++hid; 460 461if(!pos) posdiv(id,mouse_x,mouse_y); 462 463mHelps[id]=[hotkey.slice(),999999]; // ñäåëàòü ñàìûì âåðõíèì 464 465} else dom(id+'_body',s); 466 467hotkey=hotkey_def.slice(); // îáíóëèòü äëÿ îêíà âñå øîòêåè 468setTimeout("mHelps_sort('"+id+"');",10); // ïåðåñîðòèðîâàòü
469addEvent(dom(id),'click',function(){ mHelps_sort(this.id); }); 470} 471 472// êîîðäèíàòû ìûøè 473var mouse_x=mouse_y=0; 474document.onmousemove = function(e){ e=e||window.event; 475 if(e.pageX || e.pageY) { mouse_x=e.pageX; mouse_y=e.pageY; } 476 else if(e.clientX || e.clientY) { 477 mouse_x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft; 478 mouse_y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop; 479 } 480try{e=dom('ajaxgif'); e.style.top=15+mouse_y+'px'; e.style.left=15+mouse_x+'px';}catch(e){} 481}; 482 483function setOpacity(e,n) { e.style.opacity=n; } 484 485function getScrollH() { return window.pageYOffset; } 486function getScrollW() { return window.pageXOffset; } 487function getWinW() { return window.innerWidth; } 488function getWinH() { return window.innerHeight; } 489function getDocH() { return document.documentElement.scrollHeight; } 490function getDocW() { return document.documentElement.scrollWidth; } 491 492// ========================================================================= 493 494 495// --- ïðîöåäóðû pins --- 496function insert_n(e) { var v=e.value; 497 var t1=v.substring(0,e.selectionStart); // òåêñò ïåðåä 498 var t2=v.substring(e.selectionEnd,v.length); // òåêñò ïîñëå 499 var pp=GetCaretPosition(e); 500 e.value=t1.replace(/\s+$/,'') + "\n" + t2.replace(/^\s+/,''); 501 setCaretPosition(e,pp); 502} 503 504function ti(id,tmpl) { // çàìåíèòü âûäåëåííîå íà tmpl, â êîòîðîì {select} çàìåíèòñÿ íà âûäåëåííîå 505 var e=dom(id),v=e.value,ss=e.selectionStart,es=e.selectionEnd; 506 var s=tmpl.replace(/\{select\}/g,v.substring(ss,es)); 507 GetCaretPosition(e); e.value=v.substring(0,ss)+s+v.substring(es,v.length); setCaretPosition(e,ss+s.length); 508 e.selectionStart=ss; e.selectionEnd=ss+s.length; 509} 510 511function tin(id,s) { // çàìåíèòü âûäåëåííîå íà s 512 var e=dom(id),v=e.value,ss=e.selectionStart,es=e.selectionEnd; 513 GetCaretPosition(e); e.value=v.substring(0,ss)+s+v.substring(es,v.length); setCaretPosition(e,ss+s.length); 514} 515 516var scrollTop=0; 517 518function GetCaretPosition(e) { var p=0; // IE Support 519 if(document.selection){ e.focus(); var s=document.selection.createRange(); s.moveStart('character',-e.value.length); p=s.text.length; } // Firefox support 520 else if(e.selectionStart || e.selectionStart=='0') p=e.selectionStart; 521 scrollTop=e.scrollTop; return p; 522} 523 524function setCaretPosition(e,p) { 525 if(e.setSelectionRange){ e.focus(); e.setSelectionRange(p,p); } 526 else if(e.createTextRange){ var r=e.createTextRange(); r.collapse(true); r.moveEnd('character',p); r.moveStart('character',p); r.select(); } 527 e.scrollTop = scrollTop; 528} 529 530 531 532//======================================== jog 533function valid_up(l) { 534 var u=('#'+l).replace(/^#(\d+)\-[0-9ABCDEF]{32}$/gi,"$1"); return isNaN(u)||u==0?false:l; 535} 536 537var unic_rest_flag=0; function unic_rest(i) { return 0; // çàåáàëî! âðåìåííî îòêëþ÷èì! 538 /* 539 if(unic_rest_flag) return; 540 var upo=valid_up(i?fc_read('up'):f5_read('up')); // ïðî÷èòàòü èç îäíîãî èëè äðóãîãî õðàíèëèùà 541 if(up!=upo && upo!==false) { unic_rest_flag=1; return majax('restore_unic.php',{up:up,upo:upo,num:num,i:i}); } // âîññòàíîâèòü! 542 if(up!='candidat') return (i?fc_save('up',up):f5_save('up',up)); 543 */ 544} 545// page_onstart.push('unic_rest(0)'); // çàåáàëî! âðåìåííî îòêëþ÷èì! 546 547var jog=false,f5s=false; 548 549c_read=function(n) { 550 var a=' '+document.cookie+';'; var c=a.indexOf(' '+n+'='); if(c==-1) return false; a=a.substring(c+n.length+2); 551 return decodeURIComponent(a.substring(0,a.indexOf(';')))||false; 552}; 553fc_read=fc_save=function(n,v){ return false; }; 554f_read=function(n,def){ return f5_read(n,def)||c_read(n); }; 555 556f_save=f5_save=l_save=function(key, value, storage) { 557 if(key.length>500) idie('f_save error k.length='+k.length); 558 if(value.length>20000) idie('f_save error v.length='+v.length); 559 try { window[storage?'sessionStorage':'localStorage'].setItem(key, value); return true; } 560 catch(er) { return err_store(er,arguments.callee.name); } 561}; 562 563f5_read=l_read=function(key, def, storage) { 564 try { const val = window[storage?'sessionStorage':'localStorage'].getItem(key); return (val === null ? def : val); } 565 catch(er) { return err_store(er,arguments.callee.name); } 566}; 567 568f5_del=l_del=function(key, storage) { 569 try { window[storage?'sessionStorage':'localStorage'].removeItem(key); return true; } 570 catch(er) { return err_store(er,arguments.callee.name); } 571}; 572 573f5_all=function(storage) { 574 const items = {}, st = storage?'sessionStorage':'localStorage'; 575 for(let i=0; i<window[st].length; i++) {
576 const key = window[st].key(i); 577 items[key] = window[st].getItem(key); 578 } 579 return items; 580}; 581 582err_store=function(e,fnam) { // äà áëÿòü, èíîãäà äàæå îíè ðóøàòñÿ 583 584if(e.name=='NS_ERROR_FILE_CORRUPTED') alert("\ 585Îïñ, äà ó âàñ åáàíóëîñü áðàóçåðíîå õðàíèëèùå!\nÓ ìåíÿ òàêîå áûëî, êîãäà ÿ ñêîïèðîâàë ïàïêó îò ñòàðîãî Firefox â íîâûé.\ 586\n\nÍå äóìàþ, ÷òî ïðîáëåìà îãðàíè÷èòñÿ ëèøü ýòèì ñàéòîì. Íàäî íàéòè è ðó÷êàìè ¸áíóòü ôàéëû òèïà:\ 587\n~/.mozilla/firefox/3t20ifl1.default/webappsstore.sqlite\ 588\n~/.mozilla/firefox/3t20ifl1.default/webappsstore.sqlite-wal"); 589 590 else alert('Error '+fnam+'(): '+e.name); 591 return false; 592} 593 594time=function(){ return new Date().getTime(); }; 595sizer=function(x,p=2) { var i=0; for(;x>=1024;x/=1024,i++){} return Math.round(x,p)+['b','Kb','Mb','Gb','Tb','Pb'][i]; }; 596 597unixtime2str = function(x,s='Y-m-d H:i:s') { // convert unixtime to string 598 var d = new Date(x * 1000); // Convert Unix time to milliseconds 599 function dd(x) { return ("0"+x).slice(-2) } 600 return s.replace('Y',d.getFullYear()) 601 .replace('m',dd(d.getMonth()+1) ) // Months are zero-based 602 .replace('d',dd(d.getDate()) ) 603 .replace('H',dd(d.getHours()) ) 604 .replace('i',dd(d.getMinutes()) ) 605 .replace('s',dd(d.getSeconds()) ); 606}; 607 608 609// comments 610var komsel_n=0,komsel_v=''; 611var comnum=0; 612if(typeof(commenttmpl)=='undefined') var commenttmpl=''; 613function kus(unic) { if(unic) majax('login.php',{a:'getinfo',unic:unic}); }// ëè÷íàÿ êàðòî÷êà 614function kd(e) { if(confirm('Delete?')) majax('comment.php',{a:'del',id:ecom(e).id}); } // del 615function ked(e) { majax('comment.php',{a:'edit',comnu:comnum,id:ecom(e).id,commenttmpl:commenttmpl}); } // edit 616function ksc(e) { majax('comment.php',{a:'scr',id:ecom(e).id,commenttmpl:commenttmpl}); } // screen/unscreen 617function ko(e) { majax('comment.php',{a:'ans',id:ecom(e).id,commenttmpl:commenttmpl}); } // ans-0-1-undef 618function rul(e) { majax('comment.php',{a:'rul',id:ecom(e).id,commenttmpl:commenttmpl}); } // rul-íå rul 619function ka(e) { e=ecom(e); majax('comment.php',{a:'comform',id:e.id,lev:e.style.marginLeft,comnu:comnum,commenttmpl:commenttmpl}); } // answer 620function kpl(e) { majax('comment.php',{a:'plus',id:ecom(e).id,commenttmpl:commenttmpl}); } // + 621function kmi(e) { majax('comment.php',{a:'minus',id:ecom(e).id,commenttmpl:commenttmpl}); } // - 622function kl(e) { if(komsel_n!==0) dom(komsel_n).style.border=komsel_v; 623 komsel_n=ecom(e).id; komsel_v=dom(komsel_n).style.border; 624 dom(komsel_n).style.border='5px dotted red'; return true; 625} // link 626function opc(e,num) { e=ecom(e); majax('comment.php',{a:'pokazat',dat:num,oid:e.id,lev:e.style.marginLeft,comnu:comnum,commenttmpl:commenttmpl}); } // ïîêàçàòü 627function ecom(e){while((e.id==''||e.id==undefined)&&e.parentNode!=undefined) e=e.parentNode; return e.id==undefined?0:e;} 628 629function skm(e) { var i=ecom(e).id; hide_comm(i); comhif5(i,1); } // óáðàòü êîììåíò 630 631function comhif5(i,z) { var n='hidcom'+num,r=f5_read(n); if(!r) r=[]; else r=r.split(','); 632 if(z) { if(!in_array(i,r)) r.push(i); } else { var l=in_array(i,r); if(false!==r) r.splice(l,1); } 633 f5_save(n,r.join(',')); 634} 635 636function restore_comm(e) { 637 e=e||window.event,i=e.target.id.replace(/scc_/g,''),s='scc_'+i; 638 majax('comment.php',{a:'why_hidden_comm',e:e.target.id,unic:dom(i).getAttribute('unic')}); 639} 640function hide_comm(i) { i=i.replace(/scc_/g,''); var s='scc_'+i; if(!dom(s)) dom(i,"<div id='"+s+"'>"+dom.s(i)+"</div>"); dom.off(s); setTimeout("addEvent(dom('"+i+"'),'click',restore_comm)",10); } 641 642// bigfoto - çàåáàëñÿ îòäåëüíî ïðèñòûêîâûâàòü 643// BigLoadImg("http://lleo.aha.ru/tmp/img.php?text="+Math.random()); 644// Äâà âàðèàíòà âûçîâà: ëèáî ìîäóëåì äëÿ ñåðèè ôîòîê, ëèáî áåç âòîðîãî ïàðàìåòðà ïðîñòî bigfoto('somepath/file.jpg') 645// <img style='border:1px solid #ccc' onclick="return bigfoto('/backup/kniga_big.gif')" src="/backup/kniga_small.gif"> 646 647var BigImgMas={},bigtoti=0,bigtotp=0; 648function bigfoto(i,p){ 649 if(typeof(i)=='object') i=i.href; 650 var TDATA=(p!=undefined && isNaN(p) ? p : false); // ïåðåäàíû ëè ïîëåçíûå ñëîâà âòîðûì àðãóìåíòîì? 651 652 var Z=( p==undefined || TDATA!==false ); var n=Z?i:i+','+p; 653 654 if(typeof(BigImgMas[n])=='undefined'){ 655 if(!Z && !dom("bigfot"+p+"_"+i)) return false;
656 // ajaxon(); 657 BigImgMas[n]=new Image(); 658 BigImgMas[n].src=Z?n:dom("bigfot"+p+"_"+i).href; 659 } 660 661 if(!Z) { bigtoti=i; bigtotp=p; } 662 if(BigImgMas[n].width*BigImgMas[n].height==0) { setTimeout('bigfoto('+(Z ? '"'+n+'"' : n)+')',200); return false; } 663 // ajaxoff(); 664 665 if(Z) var tt="<div id='bigfostr' class=r>"+(TDATA===false?n:TDATA)+"</div>"; 666 else { 667 var g=i; while(dom('bigfot'+p+'_'+g)) g++; 668 var tt=(g>1?(i+1)+" / "+g:'')+(dom('bigfott'+p+'_'+i)?" <div style='display:inline;' title='nexïðåäûäóùàÿ/ñëåäóþùàÿ: ñòðåëêè êëàâèàòóðû' id='bigfottxt'>"+dom.s('bigfott'+p+'_'+i)+'</div>':''); 669 if(tt!=''||admin) tt="<div id='bigfostr' class=r"+(admin?" title='Admin, click to edit!' onclick=\"majax('editor.php',{a:'bigfotoedit',num:"+dom.s('bigfotnum'+p)+",i:"+i+",p:"+p+"})\"":"")+">"+tt+"</div>"; 670 } 671 var navl=Z?'':"<div id='bigfotol' style='position:absolute;top:0px;left:0px;'"+((!i)?'>':" title='prev' onclick='bigfoto(bigtoti-1,bigtotp)' onmouseover=\"dom.on('bigfotoli')\" onmouseout=\"dom.off('bigfotoli')\"><i id='bigfotoli' style='position:absolute;top:0px;left:3px;display:none;' class='e_DiKiJ_l'></i>")+"</div>"; 672 var navr=Z?'':"<div id='bigfotor' style='position:absolute;top:0px;right:0px;'"+((g==i+1)?'>':" title='next' onclick='bigfoto(bigtoti+1,bigtotp)' onmouseover=\"dom.on('bigfotori')\" onmouseout=\"dom.off('bigfotori')\"><i id='bigfotori' style='position:absolute;right:3px;display:none;' class='e_DiKiJ_r'></i>")+"</div>"; 673 674helps('bigfoto',"<div style='position:relative'>"+(admin?"<div id='bigfoto_opt' style='position:absolute;display:inline;bottom:-18px;right:-5px'>\ 675<i class='knop e_finish' title='Options' onclick=\"majax('foto.php',{a:'options',img:'"+BigImgMas[n].src+"',p:'"+p+"',num:num})\"></i>\ 676</div>":'')+navl+"<img id='bigfotoimg' src='"+BigImgMas[n].src+"' onclick=\"clean('bigfoto')\">"+navr+"</div>"+tt,1); 677 678 var w=BigImgMas[n].width,h=BigImgMas[n].height,e=dom('bigfotoimg'); 679 var H=(getWinH()-20); if(h>H && H>480) { w=w*(H/h); h=H; e.style.height=H+'px'; } 680 var W=(getWinW()-50); if(w>W && W>640) { h=h*(W/w); w=W; e.style.width=W+'px'; } 681 if(dom('bigfostr')) dom('bigfostr').style.width=w+'px'; 682 683 if(!Z){ 684 dom('bigfotol').style.width=dom('bigfotor').style.width=w/4+'px'; 685 dom('bigfotol').style.height=dom('bigfotor').style.height=h+'px'; 686 if(dom('bigfotoli')) dom('bigfotoli').style.top=(h-16)/2+'px'; 687 if(dom('bigfotori')) dom('bigfotori').style.top=(h-16)/2+'px'; 688 setkey(['ArrowLeft','4'],'',function(){bigfoto(bigtoti-1,bigtotp)},false); 689 setkey(['ArrowRight','7'],'',function(){bigfoto(bigtoti+1,bigtotp)},false); 690 } 691 // dom.on('bigfoto'); 692 center('bigfoto'); 693 return false; 694} 695 696// tip 697 698function init_tip(w) { w=w||document; 699 700 if(window.identicon_ready) identicon_init(w); 701 702if(!dom('tip')) { 703 mkdiv('tip','','b-popup bubble-node b-popup-noclosecontrol'); 704 dom('tip','<div class="b-popup-outer"><div class="b-popup-inner"><div id="rtip"></div><i class="i-popup-arr i-popup-arrtl"><i class="i-popup-arr-brdr-outer"><i class="i-popup-arr-brdr-inner"><i class="i-popup-arr-bg"></i></i></i></i><i class="i-popup-close"></i></div></div>'); 705} 706 if(w.id=='tip') return; 707 708 if(useropt.mat && (!w.id || '#'!=w.id.replace(/(editor|cm)\d+/g,'#'))) delmat(w===document?w.body:w); // è ñþäà æå çàîäíî âñð¸ì îáðàáîòêó ìàòà 709 710var attr,j,i,a,s,e,t,el=['a','label','input','img','span','div','textarea','area','select','i','td','tr','blockquote']; 711for(j=0;j<el.length;j++){ t=el[j]; e=w.getElementsByTagName(t); if(e){ for(i=0;i<e.length;i++){ a=e[i]; 712 713if(t=='img' && user_opt('i')) { // äëÿ îøèáêè ïðè çàãðóçêè êàðòèíîê 714 a.setAttribute('onerror','erimg(this)'); 715 a.setAttribute('src',a.getAttribute('src')); 716} else if(t=='input'||t=='textarea'||t=='select') { // è îòêëþ÷èòü íàâèãàöèþ äëÿ INPUT è TEXTAREA 717 718 // ïðîñèëè 719 if(t=='input' && (a.name=='email'||a.name=='mail')) { a.setAttribute('type','email'); a.setAttribute('inputmode','email'); } 720 721 if( (t=='input'||t=='textarea') && a.onFocus==undefined) addEvent(a,'focus',function(){nonav=1}); 722 attr=a.getAttribute('ramsave'); 723 if(attr!==null && !a.defaultValue) { // åñëè óêàçàí àòðèáóò ramsave='name', òî ñîõðàíÿòü â ïàìÿòè áðàóçåðà ýòó ïåðåìåííóþ è âîññòàíàâëèâàòü 724 if(attr=='') { 725 attr=(a.id?a.id:(a.name?a.name:attr)); // åñëè =1, òî èìÿ òàêîå æå, êàê id èëè name 726 a.setAttribute('ramsave',attr); 727 } 728 var vv=f5_read(attr) || a.getAttribute('placeholder') || ''; 729 if(a.type=='checkbox') a.checked=1*vv; 730 else if(a.type=='radio') a.checked=(a.value==vv?1:0); 731 else a.value=vv; 732 addEvent(a,'change',function(){ 733 f5_save(this.getAttribute('ramsave'), ( this.type=='checkbox' || (this.t
733ype!='radio' && this.checked) ? (this.checked?1:0) : this.value ) ); 734 }); 735 } 736} 737 738 attr=a.getAttribute('title')||a.getAttribute('alt'); 739 740 if(attr=='play') { 741 742 var za=dom.s(a),url=za.split(' ')[0],text=za.substring(url.length+1),cls; 743 if(text=='') text=url; 744 if(/(mp3|ogg|wav|flac)$/.test(url)) { // mp3 745 cls='ll pla'; 746 if(text.indexOf('<')<0) text="<img style='vertical-align:middle;padding-right:10px;' src='"+www_design+"img/play.png' width='22' height='22'>"+text; 747 } else { 748 cls='ll plv'; 749 if(text.indexOf('<')<0) text="<i style='vertical-align:middle;padding-right:10px;' class='e_play-youtube'></i>"+text; 750 } 751 a.className=cls; 752 // addEvent(a,'click',function(){ changemp3x(url,text,this); }); 753 a.setAttribute('media-url',url); 754 a.setAttribute('media-text',text); 755 addEvent(a,'click',function(){ changemp3x('','',this); }); 756 // a.onclick="changemp3x('"+url+"','"+text+"',this);"; 757 dom(a,text); 758 a.style.margin='10px'; 759 tip_a_set(a,'Play Media'); 760 a.style.display='block'; 761 } 762 else if(attr=='cpbuf') addEvent(a,'click',cpbuf); 763 764 else tip_a_set(a,attr); 765 766}}} 767} 768 769function erimg(e){ e.onerror=''; 770 tip_a_set(e,'image error<br>'+h(e.src)); 771 e.src=www_design+'img/kgpg_photo.png'; 772} 773 774function tip_pos(){ posdiv('tip',mouse_x-35,mouse_y+25); } 775 776function tip_a_set(a,s) { if(s && a.onMouseOver==undefined) { 777 a.setAttribute('tiptitle',s); a.removeAttribute('title'); a.removeAttribute('alt'); 778 addEvent(a,'mouseover',function(){ dom('rtip',s); tip_pos(); }); 779 addEvent(a,'mouseout',function(){ dom.off('tip') }); 780 addEvent(a,'mousemove',function(){ tip_pos() }); 781 addEvent(a,'dblclick',function(){ salert(this.getAttribute('tiptitle'),5000); }); 782}} 783 784page_onstart.push("init_tip()"); 785 786//========== 787// ïðîöåäóðà ïðàâêè v2.1 788// 789// (ñ)LLeo 2009 äëÿ ïðîåêòà áëîãîäâèæêà http://lleo.aha.ru/blog/ 790// 791// çà áåñöåííûå ñîâåòû, äèçàéí âñïûâàþùåãî îêîøêà è ïðîöåäóðû ðàáîòû ñ âûäåëåíèåì - ñïàñèáî Ìèõàèëó Âàëåíöåâó http://valentsev.ru 792 793var leftHelper; 794var topHelper; 795var site_id; 796var Nx = 630; 797if(!hashpresent) var hashpresent='1'; 798var keyalert=0; 799 800// 1 - Áðàóçåðû. 2 - IE. 3 - Íåèçâåñòíî. 801var browsertype=(document.createRange)?1:(-[1,])?3:2; 802 803window.onload=function(e) { e=e||window.event; 804 // document.onkeyup = function(e){ }; 805 document.onkeydown = function(e) { e=e||window.event; 806 // var k=(e.key?e.key:e.keyCode?e.keyCode:e.which?e.which:null); if(k===0) return; 807 var kod=(e.code?e.code:null),ct=e.metaKey+2*e.altKey+4*e.shiftKey+8*e.ctrlKey; 808 809 if(keyalert) { setTimeout("talert('Code: "+kod+" Alt: "+ct+"',2000)",50); return false; } 810 811 for(var i in hotkey) if( hotkey[i][0]==kod && hotkey[i][1]==(hotkey[i][1]&ct)) { 812 if(nonav && !hotkey[i][4]) return true; // íàâèãàöèÿ îòêëþ÷åíà äëÿ íàâèãàöèîííûõ 813 setTimeout("hotkey["+i+"][2]('"+kod+" "+ct+"')",10); 814 return hotkey[i][3]; 815 } 816 }; 817 818 // === / KEYBOARD === 819 window.onresize=function(){ screenWidth=document.body.clientWidth; }; window.onresize(); 820 821 // === MOUSE === 822 document.onmouseup=function(e){ e=e||window.event; 823 if(isHelps() || nonav) return; // Åñëè óæå åñòü îòêðûòûå îêíà - íàõ ïðàâêó! 824 opecha.o=((document.selection)?document.selection.createRange().text:window.getSelection())+''; 825 826 var n=(browsertype==1?(window.getSelection().anchorNode?window.getSelection().anchorNode:'') 827 :(browsertype==2?document.selection.createRange().parentElement():'') 828 ); 829 830 if(browsertype==3 || !n || !opecha.o.length || opecha.o.length>1024) return; 831 832 while((n.tagName!='DIV' || n.id=='' || n.id==undefined) && n.parentNode!=undefined) n=n.parentNode; 833 if(n.id==undefined) return; 834 opecha.id=n.id; 835 836 if(user_opt('ope')) return helper_go(); 837 838 if(!opecha.n) return; 839 opecha.n--; 840 salert("Îïå÷àòêà? Âûäåëèòå è Íàæìèòå Ctrl+Enter",1000); 841 setkey('Enter','ctrl',function(e){clean('salert');helper_go();},false); 842 }; 843 844 for(var inok=page_onstart.length-1;inok>=0;inok--) { var F=page_onstart[inok],TF=typeof(F); 845 try{ 846 if(TF=='function') F(); else if(TF=='string') eval(F); 847 else ErrorUnknownOnstartCallFunction(); 848 } catch(e){ salert('Error ostart: '+h(e.name+":"+e.message)+"<br>"+h(e.stack)+'<p>'+h(page_onstart[inok])+"<hr>"+F); } 849 } page_onstart=[]; 850}; 851// end window.onload 852 853onstart=function(F) { page_onstart.push(F); return page_onstart.length-1; } 854 855var opecha={n:1,o:'',id:0}; 856 857// Ñàì îáðàáîò÷èê îïå÷àòîê 858function helper_go() { 859 if(!opecha.id) return; var o=opecha.o,oid=opecha.id,b=stripp(dom.s(oid)); 860 majax('ajax_pravka.php',{a:'textarea',num:num,n:scount(b,stripp(nl2brp(o))),oid:oid,o:o,ss:b.indexOf(nl2brp(o))}); 861} 862 863function scount(str,s) { var i=0,c=0; while((i=str.indexOf(s,++i))>0) c++; return c; } 864function nl2brp(s) { return s.replace(/\n\n/g,"<p>").replace(/\n/g,"<br>"); } 865function brp2nl(s) { return s.replace(/<p>/gi,"\n\n").replace(/<br>/gi,"\n"); } 866function stripp(s) { return s.replace(/<\/p>/gi,""); } 867 868function salert(l,t) { 869 var p=dom('salert'); 870 if(p){ p=p.querySelectorAll('textbody'); if(p && p[0]) { dom.add(p[0],'<hr>'+l); return false; } } 871 helpc('salert',"<div style='padding:20px' class='textbody'>"+l+"</div>"); 872 if(t) setTimeout("clean('salert')",t); 873 return false;
874} 875 876//------------------------------------------------------------------------- 877 878function talert(s,t){ mkdiv('talert',s,'qTip'); posdiv('talert',-1,-1); if(t) setTimeout("clean('talert')",t); } 879 880function gethash_c(){ return 1*document.location.href.replace(/^.*?#(\d+)$/g,'$1'); } 881 882function plays(url,silent){ // silent: 1 - òîëüêî çàãðóçèòü, 0 - ïåòü, 2 - ïåòü ÍÅÏÐÅÌÅÍÍÎ, íåâçèðàÿ íà íàñòðîéêè 883 if(silent!=2 && typeof('user_opt')!='undefined' && !user_opt('s')) return; // åñëè â îïöèÿõ çàïðåùåíî 884 var audio = new Audio(url); 885 if(silent!=1) audio.play(); 886// newdiv("<audio style='position:absolute;width:1px;height:1px;overflow:hidden;left:-40px;top:0;opacity:0'"+(silent==1?'':" autoplay='autoplay'")+" src=\""+url+"\"></audio>",{id:'plays'+(silent==1?playsid++:'')}); 887} 888 889function user_opt(s) { return typeof(useropt[s])=='undefined'?0:useropt[s]; }; 890function go(s) { window.top.location=s; } 891 892h=function(s){ 893 return (''+s) 894 .replace(/&(?![A-Za-z0-9]+;|#[0-9]+;|#x[0-9A-Fa-f]+;)/g,'&'+'amp;') 895 .replace(/</g, '&'+'lt;').replace(/>/g, '&'+'gt;') 896 .replace(/"/g, '&'+'quot;') // " 897 .replace(/'/g, '&'+'#039;'); // ' 898}; 899 900uh=function(s){ 901 return (''+s) 902 .replace(/"/g, '"') 903 .replace(/'/g, "'") 904 .replace(/</g, '<') 905 .replace(/>/g, '>') 906 .replace(/&/g, '&'); 907}; 908 909h.dump = function(s){ return "<pre>"+h(s).replace(/\t/sg,blue('\\'+'t')).replace(/\r/sg,blue('\\'+'r')).replace(/\n/sg,blue('\\'+'n\n'))+"</pre>"; } 910 911function trim(s){ return s.replace(/\r/s,'').replace(/^\s+/s,'').replace(/\s+$/g,''); } 912 913// {_PLAY: 914 915var youtubeapiloaded=0; 916var mp3imgs={play:www_design+'img/play.png',pause:www_design+'img/play_pause.png',playing:www_design+'img/play_go.gif'}; 917 918stopmp3x=function(ee){ ee.src=mp3imgs.play; setTimeout("clean('audiosrcx_win')",50); }; 919 920changemp3x=function(url,name,ee,mode,viewurl,download_name) { // // strt 921 922 if(url=='') url=ee.getAttribute('media-url'); 923 if(name=='') name=ee.getAttribute('media-text'); if(!name) name=''; 924 925 if(-1!=name.indexOf('</i>')) name=name.substring(name.split('</i>')[0].length+4); 926 // else if(-1!=name.indexOf('<img ')) name=name.substring(name.split('>')[0].length+1); 927 name=name.replace(/<[^>]+>/gi,''); 928 929 var start=0,e; 930 var s=name.replace(/^\s*([\d\:]+)\s.*$/gi,'$1'); if(s!=name&&-1!=s.indexOf(':')) { s=s.split(':'); for(var i=0;i<s.length;i++) start=60*start+1*s[i]; } 931 932 var WWH="style='width:"+(Math.floor((getWinW()-50)*0.9))+"px;height:"+(Math.floor((getWinH()-50)*0.9))+"px;'"; 933 934 if(/(youtu\.be\/|youtube\.com\/)/.test(url) || (url.indexOf('.')<0 && /(^|\/)(watch\?v\=|)([^\s\?\/\&]+)($|\"|\'|\?.*|\&.*)/.test(url))) { // " 935 936 var tt=url.split('?start='); 937 if(tt[1]) { start=1*tt[1]; url=tt[0]; } // ?start=1232343 â ñåêóíäàõ 938 else { 939 var exp2=/[\?\&]t=([\dhms]+)$/gi; if(exp2.test(url)) { var tt=url.match(exp2)[0]; // ?t=7m40s -> 460 sec 940 if(/\d+s/.test(tt)) start+=1*tt.replace(/^.*?(\d+)s.*?$/gi,"$1"); 941 if(/\d+m/.test(tt)) start+=60*tt.replace(/^.*?(\d+)m.*?$/gi,"$1"); 942 if(/\d+h/.test(tt)) start+=3600*tt.replace(/^.*?(\d+)h.*?$/gi,"$1"); 943 } 944 } 945 946 if(-1!=url.indexOf('://youtu') || -1!=url.indexOf('://www.youtu')) url=url.match(/(youtu\.be\/|youtube\.com\/)(embed\/|watch\?v\=|)([^\?\/]+)/)[3]; 947 948 return ohelpc('audiosrcx_win','YouTube '+h(name),"<div id=audiosrcx><center>\ 949<iframe "+WWH+" src=\"https://www.youtube.com/embed/"+h(url)+"?rel=0&autoplay=1"+(start?'&start='+start:'')+"\" frameborder='0' allowfullscreen></iframe>\ 950</center></div>"); 951 } 952 953 if(/([0-9a-z]{8}\-[0-9a-z]{4}\-[0-9a-z]{4}\-[0-9a-z]{4}\-[0-9a-z]{12})/.test(url)) { // Peertube 954 return ohelpc('audiosrcx_win','PeerTube '+h(name),"<div id=audiosrcx><center>\ 955<iframe "+WWH+" sandbox='allow-same-origin allow-scripts allow-popups' src=\""+h(url)+"\" frameborder='0' allowfullscreen></iframe>\ 956</div>"); 957 } 958 959 if(/\.(mp4|avi|webm|mkv)$/.test(url)) s='<div>'+name+'</div><div><center><video controls autoplay id="audiidx" src="'+h(url) 960 +'" width="640" height="480"><span style="border:1px dotted red">ÂÀØ ÁÐÀÓÇÅÐ ÍÅ ÏÎÄÄÅÐÆÈÂÀÅÒ MP4, ÌÅÍßÉÒÅ ÅÃÎ</span></video></center></div>'; 961 962 else if(/\.(jpg)$/.test(url)) { // panorama JPG 963 s='<div>'+name+"</div><div id='panorama' "+WWH+"></div>"; 964 ohelpc('audiosrcx_win','<a class=r href="'+h(url)+'" title="download">'+h(url.replace(/^.*\//g,''))+'</a>','<div id=audiosrcx>'+s+'</div>'); 965 return LOADS(["//cdnjs.cloudflare.com/ajax/libs/three.js/r69/three.min.js",wwwhost+'extended/panorama.js'],function(){panorama_jpg('panorama',url)}); 966 } 967 968 else s='<div>'+name+'</div><div><center><audio controls autoplay id="audiidx"><source src="'+h(url) 969 +'" type="audio/mpeg; codecs=mp3"><span style="border:1px dotted red">ÂÀØ ÁÐÀÓÇÅÐ ÍÅ ÏÎÄÄÅÐÆÈÂÀÅÒ MP3, ÌÅÍßÉÒÅ ÅÃÎ</span></audio></center></div>'; 970 971 if(!viewurl) viewurl=url.replace(/^.*\//g,''); 972 if(!download_name) download_name=url.replace(/^.*\//g,''); 973 974 if(e=dom('audiidx')) { 975 if(ee && ee.src && -1!=ee.src.indexOf('play_pause')){ ee.src=mp3imgs.playing; return e.play(); } 976 if(ee && ee.src && -1!=ee.src.indexOf('play_go')){ ee.src=mp3imgs.pause; return e.pause(); } 977 dom('audiosrcx',s); 978 posdiv('audiosrcx_win',-1,-1); 979 e=dom('audiidx'); 980 e.currentTime=start; 981 } else { 982 ohelpc('audiosrcx_win','<a class=r href="'+h(url)+'" title="Download: '+h(download_name)+'" download="'+h(download_name)+'">'+h(viewurl)+'</a>','<div id=audiosrcx>'+s+'</div>'); 983 e=dom('audiidx'); 984 e.currentTime=start; 985 } 986 987 if(ee) addEvent(e,'ended',function(){ stopmp3x(ee) }); 988 if(ee) addEvent(e,'pause',function(){ if(e.currentTime==e.duration) stopmp3x(ee); else ee.src=mp3imgs.pause; }); 989 if(ee) addEvent(e,'play',function(){ ee.src=mp3imgs.playing; }); 990} 991 992 993/*----------------------- */ 994 995var fkey=0; 996function fpkey() { 997 return; 998/* 999 try{ 1000 var q,i,h=0,s,v=document.createElement('canvas'),c=v.getContext('2d'),t='i9asdm..$#po((^@KbXrww!~cz'; 1001 c.textBaseline="top";c.font="16px 'Arial'";c.textBaseline="alphabetic";c.rotate(.05);c.fillStyle="#f60";c.fillRect(125,1,62,20);c.fillStyle="#069";c.fillText(t,2,15); 1002 c.fillStyle="rgba(102,200,0,0.7)";c.fillText(t,4,17);c.shadowBlur=10;c.shadowColor="blue";c.fillRect(-20,10,234,5);s=v.toDataURL(); 1003 if(s.length==0) return 0;for(i=0;i<s.length;i++){q=s.charCodeAt(i);h=((h<<5)-h)+q;h=h&h;} return h; 1004 }catch(e){return 0;} 1005*/ 1006} 1007 1008function cot(e){e.style.display='none';e.nextSibling.style.display='inline';} 1009function delmat(e){ e.innerHTML=e.innerHTML.replace(/(\s|>
1009)(ïîäúåá|ïîäú¸á|çàåá|çà¸á|îòúåá|îòú¸á|áëÿ|áëÿä|áëÿò|âúåá|âûåá|äîëáîå|¸á|åáàë|åáàí|åáåí|åáë|åáóù|åáó÷|çàåá|ìàíä|ìóäà|ìóäå|ìóäè|ìóäî|ïèäàð|ïèäîð|ïèçä|óåá|õóå|õó¸|õóé|õóþ|õóÿ|õóè)/gi,"$1<span style='cursor:pointer' onclick=\"this.innerHTML='$2'\">***</span>"); } 1010 1011 1012/*********************** majax ***********************/ 1013 1014var ajaxmgif = "<img src='"+www_design+"img/ajaxm.gif'>"; 1015var ajaxgif = "<img src='"+www_design+"img/ajax.gif'>"; 1016function ajaxon(){ var id='ajaxgif'; mkdiv(id,ajaxgif,'popup'); posdiv(id,15+mouse_x,15+mouse_y); } // @ 1017// LLLLLLLLLLLL ajaxonn=ajaxon; // @ 1018function ajaxoff(){ clean('ajaxgif'); } // @ 1019var majax_lastu='',majax_lasta={},majax_err=1; // @ 1020function tryer(er,e,js){ alert(er+': '+e.name+'\n\n'+js);} // @ 1021 1022function mjax(url,a,id) { // @ 1023 if(!id) id='im_'+(++hid); 1024 var pref=xdomain+www_ajax; 1025 if(url.indexOf('://')<0 && url.substring(0,1)!='/') { if(typeof(postMessage)=='function') url=pref+url; else url=pref+'frame.htm#'+url; } 1026 helpc(id+'_r',"<iframe style='width:300px;height:100px;margin:0;padding:0;max-width:none !important;' frameborder=0 hspace=0 marginheight=0 marginwidth=0 vspace=0 \ 1027scrolling='no' \ 1028onload='ajaxoff()' name='"+id+"' id='"+id+"'></iframe>"); 1029 ajaxon(); 1030 postToIframe(a,url+'?mjax='+id+'&w='+getWinW()+'&h='+getWinH(),id); 1031} 1032 1033function old_majax(url,a,js) { majax_lasta=cphash(a); majax_lastu=url; // @ 1034 ajaxform(0,url,a,js); 1035} 1036 1037function mijax(u,a) { 1038 // if(typeof(up)!='undefined') a['up']=up; ÍÅÒ ÁËßÒÜ! ÍÅ ÑÂÅÒÈÒÜ ÑÂÎÞ ÀÂÒÎÐÈÇÀÖÈÞ ÍÀ ×ÓÆÎÌ ÑÀÉÒÅ 1039 u=urlajax(u); 1040 u+='?minj='+(new Date()).getTime(); 1041 for(var i in a) u+='&'+encodeURIComponent(i)+'='+encodeURIComponent(a[i]); 1042 loadScr(u); 1043} 1044 1045function form_addpole(e,n,v) { // # 1046 if(n!='id'&&n!='action'&&n!='name'&&e[n]) return e[n].value=v; 1047 var t; if(browsertype==2//browser.isIE 1048 ){t=document.createElement("<input type='hidden' name='"+h(n)+"' value='"+h(v)+"'>"); e.appendChild(t);} 1049 else{ t=document.createElement("input"); e.appendChild(t); t.type="hidden"; t.name=n; t.value=v; } 1050} 1051 1052function mojaxform(e,url,ara) {return mojax(url,ara,'','FORM',e); } 1053 1054function old_ajaxform(e,url,ara) { url=urlajax(url); var z='lajax_'+(hid++); 1055 url=url+'?lajax='+z+'&rando='+Math.random(); 1056 ara=addara(ara); 1057 mkdiv(z+'_ifr',"<iframe width=1 height=1 frameborder=0 hspace=0 marginheight=0 marginwidth=0 vspace=0 name='"+z+"' id='"+z+"'></iframe>",'popup'); 1058 if(typeof(e)=='object') { // óæå ôîðìà åñòü 1059 e.id=z+'_form0'; 1060 e.target=z; e.enctype='multipart/form-data'; e.action=url; e.method='POST'; 1061 e.setAttribute("target",z); e.setAttribute("enctype",'multipart/form-data'); e.setAttribute("action",url); e.setAttribute("method",'POST'); 1062 if(ara) for(var i in ara) if(typeof(i)=='string') form_addpole(e,i,ara[i]); 1063 ajaxon(); return true; 1064 } 1065 postToIframe(ara,url,z); 1066} 1067 1068mojax_get_pole_ara=get_pole_ara=function(w,onlych) { var k=0,ara={names:''}; var el=['input','textarea','select']; w=dom(w); 1069 for(var j=0;j<el.length;j++){ var e=w.getElementsByTagName(el[j]); for(i=0;i<e.length;i++) 1070 if(typeof(e[i].name)!='undefined' && e[i].name!='' 1071&& ( onlych!=1 || e[i].type=='hidden' || typeof(e[i].defaultValue)=='undefined' || e[i].value!=e[i].defaultValue) 1072) { 1073 var b=el[j]+':'+e[i].type; 1074 1075 if(b=='input:radio' && !e[i].checked) continue; // òîëüêî íàæàòûå 1076 1077 else if(b=='input:file') { 1078 if(e[i].value=='') continue; // ïóñòûõ ôàéëîâ íàì íå íàäî 1079 var p=e[i].files,nf=e[i].name.replace(/\[\]/g,'_'),q; for(q=0;q<p.length;q++) { ara[nf+q]=p[q]; ara['names']+=' '+nf+q; k++; } 1080 continue; 1081 } else if(b=='input:checkbox') { 1082 ara[e[i].name]=e[i].checked?1:0; 1083 } else { 1084 ara[e[i].name]=e[i].value; 1085 if(typeof(e[i].defaultValue)!='undefined') e[i].defaultValue=e[i].value; 1086 } 1087 1088 ara['names']+=' '+e[i].name; k++; 1089} 1090 } 1091 return (k==0?false:ara); 1092}; 1093 1094 1095function find_form(e) { while(e.tagName!='FORM'&&e.parentNode!=undefined) e=e.parentNode; if(e.parentNode==undefined) idie('e.form error'); return e; } 1096 1097function mojax_send_this_form(e,mjphp,m,onlych) { while(e.tagName!='FORM'&&e.parentNode!=undefined) e=e.parentNode; // --- 1098 if(e.parentNode==undefined) return false; var ara=mojax_get_pole_ara(e,onlych); 1099 if(ara===false) return false; for(var i in m) ara[i]=m[i]; majax(mjphp,ara); return false;
1100} 1101function old_send_this_form(e,mjphp,m,onlych) { while(e.tagName!='FORM'&&e.parentNode!=undefined) e=e.parentNode; // --- 1102 if(e.parentNode==undefined) return false; var ara=get_pole_ara(e,onlych); 1103 if(ara===false) return false; for(var i in m) ara[i]=m[i]; majax(mjphp,ara); return false; 1104} 1105 1106 1107// ôóíêöèÿ ïîñòèò îáúåêò-õýø content â âèäå ôîðìû ñ íóæíûì action, target 1108// íàïð. postToIframe({a:5,b:6}, '/count.php', 'frame1') 1109 1110function repostToIframe(id,a){ var f=dom(id+'_form'); 1111 if(!f) f=dom(id+'_form0'); 1112 if(!f) idie('Repostiframe err:'+h(id)); 1113 if(!a) a={}; a.repostform=1*(!f.repostform?0:1*f.repostform.value+1); 1114 for(var x in a) form_addpole(f,x,a[x]); 1115 f.submit(); 1116} // åùå ðàç òó æå ôîðìó çàïîñòèòü, òîëüêî ìîæíî äîáàâèòü äàííûå 1117 1118function postToIframe(ara,url,id){ 1119 ara=addara(ara); 1120 var f=document.createElement("form"); f.style.display="none"; f.id=id+'_form'; 1121 f.enctype="application/x-www-form-urlencoded"; f.method="POST"; document.body.appendChild(f); 1122 f.action=url; f.target=id; f.setAttribute("target",id); 1123 for(var x in ara) form_addpole(f,x,ara[x]); 1124 f.submit(); 1125} 1126 1127ifhelpc=function(src,id,head,X,Y){ if(!id) id='ifram'; X=(!X?1:X);Y=(!Y?1:Y); 1128 if(!head) head='iframe '+h(src); 1129 if(typeof(postMessage)!='function') src=www_ajax+'frame.htm#'+src; 1130 var s="<iframe name='"+id+"_ifr' id='"+id+"_ifr' src='"+src+"' onload='ajaxoff();' style='width:"+X+"px;height:"+Y+"px;'></iframe>"; 1131 if(id=='xdomain') newdiv(s,{id:id}); 1132 else { ohelpc(id,head,s); ajaxon(); } 1133}; 1134 1135 1136/***************** MAJAX NEW **********************/ 1137/* 1138function md5(s) { var e='',c,z,f=s.length; 1139 for(var i=0;i<f;i++) { c=s[i];z=c.charCodeAt(0); e+=z<256 ?c:String.fromCharCode(z&0x00FF)+String.fromCharCode((z&0xFF00)>>8); } 1140 return smd5(e); 1141} 1142*/ 1143 1144function md5 ( str ) { // Calculate the md5 hash of a string Webtoolkit.info (http://www.webtoolkit.info/) namespaced by: Michael White (http://crestidg.com) 1145 var RotateLeft = function(lValue, iShiftBits) { return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits)); }; 1146 var AddUnsigned = function(lX,lY) { 1147 var lX4,lY4,lX8,lY8,lResult; 1148 lX8 = (lX & 0x80000000); 1149 lY8 = (lY & 0x80000000); 1150 lX4 = (lX & 0x40000000); 1151 lY4 = (lY & 0x40000000); 1152 lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF); 1153 if(lX4 & lY4) return(lResult ^ 0x80000000 ^ lX8 ^ lY8); 1154 if(lX4 | lY4) if(lResult & 0x40000000) return (lResult ^ 0xC0000000 ^ lX8 ^ lY8); else return(lResult ^ 0x40000000 ^ lX8 ^ lY8); 1155 else return (lResult ^ lX8 ^ lY8); 1156 }; 1157 var F = function(x,y,z) { return (x & y) | ((~x) & z); }; 1158 var G = function(x,y,z) { return (x & z) | (y & (~z)); }; 1159 var H = function(x,y,z) { return (x ^ y ^ z); }; 1160 var I = function(x,y,z) { return (y ^ (x | (~z))); }; 1161 1162 var FF = function(a,b,c,d,x,s,ac) { a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac)); return AddUnsigned(RotateLeft(a, s), b); }; 1163 var GG = function(a,b,c,d,x,s,ac) { a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac)); return AddUnsigned(RotateLeft(a, s), b); }; 1164 var HH = function(a,b,c,d,x,s,ac) { a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac)); return AddUnsigned(RotateLeft(a, s), b); }; 1165 var II = function(a,b,c,d,x,s,ac) { a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac)); return AddUnsigned(RotateLeft(a, s), b); }; 1166 1167 var ConvertToWordArray = function(str) { 1168 var lWordCount; 1169 var lMessageLength = str.length; 1170 var lNumberOfWords_temp1=lMessageLength + 8; 1171 var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64; 1172 var lNumberOfWords = (lNumberOfWords_temp2+1)*16; 1173 var lWordArray=Array(lNumberOfWords-1); 1174 var lBytePosition = 0; 1175 var lByteCount = 0; 1176 while ( lByteCount < lMessageLength ) { 1177 lWordCount = (lByteCount-(lByteCount % 4))/4; 1178 lBytePosition = (lByteCount % 4)*8;
1179 lWordArray[lWordCount] = (lWordArray[lWordCount] | (str.charCodeAt(lByteCount)<<lBytePosition)); 1180 lByteCount++; 1181 } 1182 lWordCount = (lByteCount-(lByteCount % 4))/4; 1183 lBytePosition = (lByteCount % 4)*8; 1184 lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition); 1185 lWordArray[lNumberOfWords-2] = lMessageLength<<3; 1186 lWordArray[lNumberOfWords-1] = lMessageLength>>>29; 1187 return lWordArray; 1188 }; 1189 1190 var WordToHex = function(lValue) { 1191 var WordToHexValue="",WordToHexValue_temp="",lByte,lCount; 1192 for (lCount = 0;lCount<=3;lCount++) { 1193 lByte = (lValue>>>(lCount*8)) & 255; 1194 WordToHexValue_temp = "0" + lByte.toString(16); 1195 WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2); 1196 } 1197 return WordToHexValue; 1198 }; 1199 1200 var x=Array(); 1201 var k,AA,BB,CC,DD,a,b,c,d; 1202 var S11=7, S12=12, S13=17, S14=22; 1203 var S21=5, S22=9 , S23=14, S24=20; 1204 var S31=4, S32=11, S33=16, S34=23; 1205 var S41=6, S42=10, S43=15, S44=21; 1206 1207 // str = this.utf8_encode(str); 1208 x = ConvertToWordArray(str); 1209 a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476; 1210 1211 for(k=0;k<x.length;k+=16) { 1212 AA=a; BB=b; CC=c; DD=d; 1213 a=FF(a,b,c,d,x[k+0], S11,0xD76AA478); 1214 d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756); 1215 c=FF(c,d,a,b,x[k+2], S13,0x242070DB); 1216 b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE); 1217 a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF); 1218 d=FF(d,a,b,c,x[k+5], S12,0x4787C62A); 1219 c=FF(c,d,a,b,x[k+6], S13,0xA8304613); 1220 b=FF(b,c,d,a,x[k+7], S14,0xFD469501); 1221 a=FF(a,b,c,d,x[k+8], S11,0x698098D8); 1222 d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF); 1223 c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1); 1224 b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE); 1225 a=FF(a,b,c,d,x[k+12],S11,0x6B901122); 1226 d=FF(d,a,b,c,x[k+13],S12,0xFD987193); 1227 c=FF(c,d,a,b,x[k+14],S13,0xA679438E); 1228 b=FF(b,c,d,a,x[k+15],S14,0x49B40821); 1229 a=GG(a,b,c,d,x[k+1], S21,0xF61E2562); 1230 d=GG(d,a,b,c,x[k+6], S22,0xC040B340); 1231 c=GG(c,d,a,b,x[k+11],S23,0x265E5A51); 1232 b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA); 1233 a=GG(a,b,c,d,x[k+5], S21,0xD62F105D); 1234 d=GG(d,a,b,c,x[k+10],S22,0x2441453); 1235 c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681); 1236 b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8); 1237 a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6); 1238 d=GG(d,a,b,c,x[k+14],S22,0xC33707D6); 1239 c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87); 1240 b=GG(b,c,d,a,x[k+8], S24,0x455A14ED); 1241 a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905); 1242 d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8); 1243 c=GG(c,d,a,b,x[k+7], S23,0x676F02D9); 1244 b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A); 1245 a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942); 1246 d=HH(d,a,b,c,x[k+8], S32,0x8771F681); 1247 c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122); 1248 b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C); 1249 a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44); 1250 d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9); 1251 c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60); 1252 b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70); 1253 a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6); 1254 d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA); 1255 c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085); 1256 b=HH(b,c,d,a,x[k+6], S34,0x4881D05); 1257 a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039); 1258 d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5); 1259 c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8); 1260 b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665); 1261 a=II(a,b,c,d,x[k+0], S41,0xF4292244); 1262 d=II(d,a,b,c,x[k+7], S42,0x432AFF97); 1263 c=II(c,d,a,b,x[k+14],S43,0xAB9423A7); 1264 b=II(b,c,d,a,x[k+5], S44,0xFC93A039); 1265 a=II(a,b,c,d,x[k+12],S41,0x655B59C3); 1266 d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92); 1267 c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D); 1268 b=II(b,c,d,a,x[k+1], S44,0x85845DD1); 1269 a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F); 1270 d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0); 1271 c=II(c,d,a,b,x[k+6], S43,0xA3014314); 1272 b=II(b,c,d,a,x[k+13],S44,0x4E0811A1); 1273 a=II(a,b,c,d,x[k+4], S41,0xF7537E82); 1274 d=II(d,a,b,c,x[k+11],S42,0xBD3AF235); 1275 c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB); 1276 b=II(b,c,d,a,x[k+9], S44,0xEB86D391); 1277 a=AddUnsigned(a,AA); 1278 b=AddUnsigned(b,BB); 1279 c=AddUnsigned(c,CC); 1280 d=AddUnsigned(d,DD); 1281 } 1282 var temp = WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d); 1283 return temp.toLowerCase(); 1284} 1285 1286//================================================================================ 1287function is_XHR(){ return typeof(XMLHttpRequest)!='undefined' || typeof(XDomainRequest)!='undefined'; } 1288function majax(url,ara,js,METHOD,form,size) {
1289 if(mnogouser==1) { var k=url+':'+ara.a; for(var i of ifrnames) if(k==i) return mjax(url,ara); } 1290 return is_XHR()?mojax(url,ara,js,METHOD,form,size):old_majax(url,ara,js); 1291} 1292function ajaxform(e,url,ara) { return is_XHR()?mojaxform(e,url,ara):old_ajaxform(e,url,ara); } 1293function send_this_form(e,mjphp,m,onlych) { return is_XHR()?mojax_send_this_form(e,mjphp,m,onlych):old_send_this_form(e,mjphp,m,onlych); } 1294 1295var lastzig=''; 1296 1297arazig=function(ara) { 1298 var r=[]; for(var i in ara) r.push(i); r=r.sort(); var zig=''; for(var i in r) { 1299 if(typeof(ara[r[i]])!='object') zig+=r[i]+','; // +'='+lenlen(''+ara[r[i]])+','; // ôîòêè íå ñ÷èòàåì âîîáùå, íàõóé 1300 } 1301 var m=md5(mojaxsalt+'|'+zig); 1302 lastzig=mojaxsalt+'|'+zig+'/'+m; 1303 return m; 1304}; 1305 1306 1307 1308 1309// progress.run(0, function(){ alert('Error: timeout'); }); 1310// progress.stop(1); 1311progr = { 1312 total: 30000, 1313 now: 0, 1314 timeout: 100, 1315 id: 0, 1316 fn: function(){}, 1317 run: function(x, fn) { 1318 1319 if(x===0) { progr.now=0; progr.fn=function(){}; } 1320 if(fn) progr.fn=fn; 1321 1322 if(dom('progr_info')) dom('progr_info', 1*progr.now+' '+1*progr.timeout); 1323 1324 if(x!=undefined && !progr.id) progr.id=setInterval(progr.run,progr.timeout); 1325 1326 progr.now += progr.timeout; 1327 1328 if(progr.now >= progr.total) { 1329 clearInterval(progr.id); progr.id=false; 1330 return progr.fn(); 1331 } 1332 1333 progr.set( Math.floor(100*progr.now/progr.total) ); 1334 }, 1335 stop: function() { 1336 let q=dom('progr'); if(q) document.body.removeChild(q); 1337 if(progr.id) { clearInterval(progr.id); progr.id=false; } 1338 }, 1339 set: function(prc){ 1340 prc = Math.max(0, Math.min(100, prc|0)); 1341 1342 let p = document.getElementById('progr'); 1343 if(!p){ 1344 p = document.createElement('div'); 1345 p.id = 'progr'; 1346 p.innerHTML = ` 1347 <div class="bar"> 1348 <div class="fill"></div> 1349 <div class="label"></div> 1350 </div>`; 1351 document.body.appendChild(p); 1352 1353 const st = document.createElement('style'); 1354 st.textContent = ` 1355#progr{position:fixed;left:0;bottom:0;width:100%;height:20px;z-index:99999} 1356#progr .bar{position:relative;height:100%;border:1px solid #666;background:#fff;overflow:hidden} 1357#progr .fill{height:100%;width:0%; 1358 background:linear-gradient(to right, #0a0, #ff0, #f00); 1359 background-repeat:no-repeat; 1360 background-position:left top; 1361 background-size:100% 100%; 1362} 1363#progr .label{position:absolute;left:0;top:0;width:100%;height:100%; 1364 display:flex;align-items:center;justify-content:center; 1365 font:18px/20px sans-serif;color:#000;pointer-events:none; 1366}`; 1367 document.head.appendChild(st); 1368 // ÑÑÐ¾Ð±Ñ Ð¿Ñи ÑеÑайзе не âплÑла каÑÑа ÑвеÑовâ 1369 window.addEventListener('resize', () => progr.set(prc)); 1370 } 1371 1372 const bar = p.querySelector('.bar'); 1373 const fill = p.querySelector('.fill'); 1374 const label = p.querySelector('.label'); 1375 1376 fill.style.width = prc + '%'; 1377 // Ð²Ð¾Ñ ÐºÐ»ÑÑ: гÑÐ°Ð´Ð¸ÐµÐ½Ñ âнаÑÑнÑÑâ на ÐÐÐÐУЮ ÑиÑÐ¸Ð½Ñ Ð±Ð°Ñа, а не на fill 1378 fill.style.backgroundSize = bar.clientWidth + 'px 100%'; 1379 label.textContent = prc + '%'; 1380 } 1381 1382}; 1383 1384progress=function(name,now,total,text) { 1385 if(!total) return progr.stop(); 1386 progr.set(Math.floor(100*(now/total))); 1387}; 1388 1389/* 1390progress=function(name,now,total,text) { name='progress'+(name?'_'+name:''); 1391 if(!dom(name)) { if(!total) return; 1392 helpc(name,"\ 1393<div id='"+name+"_proc' style='text-align:center;font-size:23px;font-weight:bold;color:#555;'>0 %</div>\ 1394<div id='"+name+"_tab' style='width:"+Math.floor(getWinW()/2)+"px;border:1px solid #666;'>\ 1395<div id='"+name+"_bar' style='width:0;height:10px;background-color:red;'></div></div>"); 1396 } else if(!total) return clean(name); 1397 var proc=Math.floor(1000*(now/total))/10; 1398 var W=1*dom(name+'_tab').style.width.replace(/[^\d]+/g,''); 1399 dom(name+'_bar').style.width=Math.floor(proc*(W/100))+'px'; 1400 if(!text) text=''+proc+' %'; else text=text.replace(/\%\%/g,proc); 1401 dom(name+'_proc',text); 1402}; 1403*/ 1404 1405ProgressFunc=function(e){ progress('ajax',e.loaded,e.total,sizer(e.total)+': %% %'); }; 1406 1407function catcherr(txt,e,code){ 1408 ohelpc('JSerr','JS error: '+h(txt),"<font color=red><b><big>"+h(e.name)+": "+h(e.message)+"</big></b></font>" 1409 +"<br><b>"+h(majax_lastu)+' {'+h(print_r(majax_lasta))+" }</b>" 1410 +"<div style='border:1px dotted red'>"+h(e.stack)+"</div>" 1411 +h(code).replace(/\n/g,"<br>")); 1412} 1413 1414function addara(ara) { 1415 if(typeof(hashpage)!='undefined') ara.hashpage=hashpage; 1416 if(typeof(up)!='undefined') ara.up=up; 1417 if(typeof(acn)!='undefined') ara.acn=acn; 1418 if(typeof(ux)!='undefined') ara.ux=ux; 1419 if(typeof(upx)!='undefined') ara.upx=upx; 1420 if(typeof(mylang)!='undefined') ara.mylang=mylang; 1421 return ara; 1422} 1423 1424function mojax(url,ara,js,METHOD,form) { if(!url.indexOf) { alert('Mojax error url: '+url); return false; } url=urlajax(url); 1425 majax_lasta=cphash(ara); majax_lastu=url; // äëÿ îòëàäêè 1426 ara=addara(ara); 1427 1428 if(!METHOD) { // âûáðàòü ìåòîä 1429 var ara_len=0; for(var i in ara) ara_len++; 1430 var DD=Math.max(36*ara_len,256); // ñêîëüêî áàéò äîáàâèò POST form-data? 1431 U=0; for(var i in ara) { 1432 if(typeof(ara[i])=='object') { METHOD='FORM'; break; } 1433 U+=(encodeURIComponent(i+ara[i]).length - (i+ara[i]).length); // ñêîëüêî áàéò äîáàâèò êàæäûé ñëåäóþùèé form-urlencoded? 1434 if(U>DD) { METHOD='FILE'; break; } // êàê òîëüêî ñòàëî äîðîæå - FILE 1435 } 1436 if(!METHOD) { if(U<256 && (''+document.location).substring(0,7)!='http://') METHOD='GET'; else METHOD='POST'; } // åñëè ðå÷ü î êîïåéêàõ, òî ïðîñòî GET, èíà÷å POST form-urlencoded 1437 } 1438 1439 ajaxon(); 1440 1441 var x = new XMLHttpRequest(); 1442 1443 x.onload=x.onerror=function(){ 1444 if(this.status==200) { 1445 ajaxoff(); 1446 progress('ajax'); 1447 if(js) { try{ if(typeof(js)=='string') eval(js); else if(js(x.responseText)===true) return; } catch(e){catcherr("Mojax JS",e,js)} } 1448 var m=x.responseText.split('**'+'/'); 1449 if(!m[1]&&m[0]!='/'+'**') { var er='',ev=m[0]; } 1450 else { var er=m[0].replace(/^\/[\*]+/g,''),ev=m[1]; } 1451 if(er!='') ohelpc('SerErr','Server Error',h(er).replace(/\n/g,"<p>")); 1452 ev=ev.replace(/\&\#10017\;\&\#10017;\//g,'**'+'/'); 1453 try{eval(ev)}catch(e){catcherr("Mojax RESULT",e,ev)} 1454 } else { salert('Mojax Error ['+url+']: '+this.status+': '+this.statusText,2000); ajaxoff(); } 1455 }; 1456 1457 if(METHOD=='GET') { 1458 var o=''; for(var i in ara) o+='&'+h(i)+'='+encodeURIComponent(ara[i]); o='zi='+arazig(ara)+o; // êèäàåì çèãó 1459 x.open("GET",url+'?'+o,true); 1460 x.send(); 1461 return; // íåëüçÿ false!!!! 1462 } 1463 1464 if(METHOD=='POST') { 1465 var o=''; for(var i in ara) o+='&'+h(i)+'='+encodeURIComponent(ara[i]); o='zi='+arazig(ara)+o.replace(/%20/g,'+'); // êèäàåì çèãó 1466 x.open("POST",url,true); 1467 x.setRequestHeader('Content-type','application/x-www-form-urlencoded'); 1468 // x.setRequestHeader('Content-length',o.length); 1469 // x.setRequestHeader('Connection','close'); 1470 x.send(o); 1471 return; // íåëüçÿ false!!!! 1472 } 1473 1474 if(METHOD=='FILE') { 1475 var boundary=md5(String(Math.random()).slice(2)); 1476 var o=['\r\n']; for(var i in ara) o.push('Content-Disposition: form-data; name="'+i+'"\r\n\r\n'+ara[i]+'\r\n'); 1477 o.push('Content-Disposition: form-data; name="zi"\r\n\r\n'+arazig(ara)+'\r\n');
1478 o=o.join('--'+boundary+'\r\n')+'--'+boundary+'--\r\n'; 1479 1480 if(o.length>20*1024) x.upload.onprogress=ProgressFunc; 1481 x.open("POST",url,true); 1482 x.setRequestHeader('Content-Type','multipart/form-data; boundary='+boundary); 1483 x.setRequestHeader('Content-length',o.length); 1484 x.setRequestHeader('Connection','close'); 1485 x.send(o); 1486 return; // íåëüçÿ false!!!! 1487 } 1488 1489 if(METHOD=='FORM') { 1490 // if(!form) { idie('mojax error: FORM'); return false; } 1491 1492 var FD=new FormData(); 1493 var a=(form ? get_pole_ara(form) || {} : {}); 1494 1495 for(var i in ara) a[i]=ara[i]; 1496 var size=0; for(var i in a) { FD.append(i,a[i]); size+=typeof(a[i])=='object'?a[i].size:(''+a[i]).length; } 1497 if(size>20*1024) x.upload.onprogress=ProgressFunc; 1498 FD.append('zi',arazig(a)); // êèäàåì çèãó 1499 x.open("POST",url,true); 1500 x.send(FD); 1501 return false; 1502 } 1503 1504 idie('Mojax: unknoun method'); 1505 return false; 1506} 1507 1508/// animate 1509function noanim(e) { e.className=(e.className||'').replace(/ *[a-z0-9]+ animated/gi,''); }; 1510 1511function anim(e,i,fn,animeffect) { 1512 if(!e) return -1; // íåò îáúåêòà 1513 if(!user_opt('ani')&&!animeffect) { if(fn)fn(); return -2; } // íåò àíèìàöèè 1514 noanim(e); var c=e.className; e.className=(c==''?i:c+' '+i)+' animated'; 1515 if( typeof(dom(e).onanimationend) != 'object' ) { 1516 if(!e.animate) { if(fn)fn(); return -3; } // ñîâñåì íåò àíèìàöèè 1517 setTimeout(function(){noanim(e);if(fn)fn();},1000); // åñëè íåò ñîáûòèÿ êîíöà àíèìàöèè - òî ïðîñòî òàéìàóò ñåêóíäó 1518 return -4; 1519 } 1520 var fs=function(){ removeEvent(e,'animationend',fs); noanim(e); if(fn)fn(); }; 1521 addEvent(e,'animationend',fs); 1522 return 0; 1523} 1524 1525// AJAX from ESP8266 v3 1526AJAX=function(url,opt,s) { 1527 1528 if(!opt) opt={}; else if(typeof(opt)=='function') opt={callback:opt}; 1529 var async=(opt.async!==undefined?opt.async:true); 1530 try{ 1531 if(!async && !opt.callback) opt.callback=function(){}; 1532 if(!opt.noajax) ajaxon(); 1533 var xhr=new XMLHttpRequest(); 1534 1535 xhr.onreadystatechange=function(){ 1536 // idie('readyState='+this.readyState+' status='+this.status); 1537 try{ 1538 if(this.readyState==4) { 1539 if(!opt.noajax) ajaxoff(); 1540 progress('ajax'); 1541 if(this.status==200 && this.responseText!=null) { 1542 if(this.callback) this.callback(this.responseText,url,s); 1543 else eval(this.responseText); 1544 } else if(this.status==500) { 1545 if(this.onerror) this.onerror(this.responseText,url,s); 1546 else if(opt.callback) opt.callback(false,url,s); 1547 } 1548 } 1549 } catch(e){ 1550 dier(e); 1551 alert('Error Ajax: '+e.name 1552 +'\n\n'+e.message 1553 +'\n\n'+e.stack 1554 +'\n\n' 1555 +this.responseText); 1556 } 1557 }; 1558 1559 for(var i in opt) xhr[i]=opt[i]; 1560 // if(opt.error) xhr.onerror=opt.error; 1561 // if(opt.timeout) xhr.timeout=opt.timeout; 1562 // if(opt.ontimeout) xhr.ontimeout=opt.ontimeout; 1563 // dier(xhr); 1564 1565 xhr.open((opt.method?opt.method:(s?'POST':'GET')),url,async); 1566 1567 if(s) { 1568 if(typeof(s)=='object' && !(s instanceof FormData) ) { 1569 var formData = new FormData(); 1570 for(var i in s) formData.append(i,s[i]); 1571 var k=0; Array.from(formData.entries(),([key,D])=>(k+=(typeof(D)==='string'?D.length:D.size))); 1572 if(k>20*1024) xhr.upload.onprogress=ProgressFunc; 1573 xhr.send(formData); 1574 } else xhr.send(s); 1575 } else xhr.send(); 1576 1577 if(!async) return ( (xhr.status == 200 && xhr.readyState == 4)?xhr.responseText:false ); //xhr.statusText=='OK' // â õðîìå íå ðàáîòàåò áëÿòü 1578 1579 } catch(e) { if(!async) return false; } 1580}; 1581 1582function AGET(url,s) { return AJAX(url,{noajax:1,async:false},s); } // àñèíõðîííî ïðîñòî âåðíóòü ðåçóëüòàò 1583 1584function AJ(url,callback,s) { AJAX(url,{callback:callback,noajax:1},s); } 1585 1586function AJC(name,period,url,callback,s) { if(!period) period=600; 1587 var t=1*(f5_read(name+'_time')); 1588 var V=''+f5_read(name); 1589 var T=parseInt(new Date().getTime()/1000); 1590 if( (T < (t+period) ) && V!='') { if(callback) callback(V,url); } // âåðíóòü êýø 1591 // èíà÷å íà÷àòü AJAX 1592 var xhr=new XMLHttpRequest(); xhr.onreadystatechange=function(){ if(this.readyState==4 && this.status==200 && this.responseText!=null) { 1593 f5_save(name,this.responseText); 1594 f5_save(name+'_time',T); 1595 if(callback) callback(this.responseText,url); 1596 }}; 1597 xhr.open((s?'POST':'GET'),url); 1598 if(s) xhr.send(s); else xhr.send(); 1599} 1600 1601 1602// ============================================== 1603// êàíäèäàòû íà áëèæàéøèé èçãî íàõóé (íà÷èíàì îòñëåæèâàòü, ïîíàäîáèòñÿ ëè ÷òî-òî èç ýòîãî, íà÷èíàÿ ñ 4 äåêàáðÿ 2019): 1604loadCSS=function(src){ return LOADS(www_css+src); }; 1605loadScript=function(src,f){ return LOADS(urlajax(src,www_js),f); }; 1606loadStyle=loadScr=LOADS; 1607 1608 1609function loadScriptBefore(src,runtext){ // ########### DEL ########### 1610 if(unic==4) alert("loadScriptbefore: "+src); 1611 if(JSload[src]=='load') return eval(runtext); if(JSload[src]) return; JSload[src]=runtext; loadScript(src); 1612} 1613 1614 1615var playsid=0; 1616playswf=function(a,silent){ if(unic==4) alert('playswf'); 1617 1618a=a.replace(/\.mp3$/gi,''); // silent: 1 - ÔÏÌØËÏ ÚÁÇÒÕÚÉÔØ, 0 - ÐÅÔØ, 2 - ÐÅÔØ îåðòåíåîîï, ÎÅ ×ÚÉÒÁÑ ÎÁ ÎÁÓÔÒÏÊËÉ 1619if(silent!=2 && typeof('user_opt')!='undefined' && !user_opt('s')) return; // åñëè â îïöèÿõ çàïðåùåíî 1620var s=www_design+'mp3playerns.swf?autostart='+(silent==1?'no':'yes')+'&file='+a+'.mp3'; 1621var id='plays'+(silent==1?playsid++:''); 1622mkdiv(id,"<div style='position:absolute;width:1px;height:1px;overflow:hidden;left:-40px;top:0;opacity:0'>\ 1623<audio"+(silent==1?'':" autoplay='autoplay'")+">\ 1624<source src='"+a+".mp3' type='audio/mpeg; codecs=mp3'>\ 1625<object width='1' height='1' \ 1626style='width:1px;height:1px;overflow:hidden;position:absolute;
1626left:-400px;top:0;border:0;'>\ 1627<param name='movie' value='"+s+"' />\ 1628<embed src='"+s+"' width='1' height='1' loop='false' type='application/x-shockwave-flash'>\ 1629</embed></object></audio></div>"); 1630dom.on(id); 1631} // <source src='"+a+".ogg' type='audio/ogg; codecs=vorbis'>\ 1632 1633 1634 1635 1636//======================================================= 1637// âûíîñèì âíåäðÿþùèåñÿ ñêðèïòû íàõóé 1638 1639/* 1640 1641if(typeof(MutationObserver) == 'function') { try { 1642 1643var JS_BL="ulogin.ru highcharts.com rgraph.net RGraph.SVG revolvermaps.com jquery.com /"+"*lleo*"+"/ (i,s,o,g,r,a,m) google-analytics.com (m,e,t,r,i,k,a) yandex.ru/metrika counter.yadro.ru ipadfinger4()".split(" "); 1644// if(admin) JS_BL=""; 1645 1646var JS_POGAN=[]; 1647 1648poganAlert=function(){ 1649 newdiv('Scripts:'+JS_POGAN.length,{id:'poganAlert',cls:'rama'}); 1650 var e=dom('poganAlert').style; 1651 e.position='absolute'; e.top='50px'; e.left='50px'; e.zIndex='50'; e.cursor='pointer'; e.align='left'; 1652 e.background='red'; 1653 dom('poganAlert').onclick=function(){ 1654 var lim=150; 1655 var o='<b>×óæîé ãîâíîêîä ïûòàëñÿ âëåçòü â ñòðàíèöó (îíà âåäü íå https), íî ìû åãî çàñåêëè íà ïîäë¸òå è âû÷èñòèëè íàõóé:</b>'; 1656 for(var i in JS_POGAN) { var l=JS_POGAN[i].replace(/\r/,'').replace(/\n/,' '); o+="<p>"+(1*i+1)+'. '+h(l.length<lim?l:l.substring(0,lim)+" [...]"); } 1657 o+="<p><b>Åñëè âû ñ÷èòàåòå, ÷òî ýòî áûëî ÷òî-òî ðîäíîå, è ñòðàíèöà áåç ýòîãî ïëîõî ðàáîòàåò, ïîæàëóéñòà, íàïèøèòå ìíå.</b>"; 1658 clean('poganAlert'); 1659 helpc('poganAlertList2','<div class=r>'+o+'</div>'); 1660 JS_POGAN=[]; 1661 }; 1662}; page_onstart.push("setTimeout('if(JS_POGAN.length) poganAlert()',1000)"); 1663 1664const observer = new MutationObserver(function(mutationsList, observer) { 1665 for(let mutation of mutationsList) for(let node of mutation.addedNodes) { 1666 if(node.nodeName == "SCRIPT") { 1667 var s=node.src; if(s=='' && typeof(node.textContent)!='undefined') s=node.textContent; 1668 if(-1!=s.indexOf('://'+MYHOST) || -1 != s.indexOf('://kz.'+MYHOST)) continue; 1669 var naiden=0; 1670 for(var i in JS_BL) { if(JS_BL[i]=='') continue; if(-1 != s.indexOf(JS_BL[i])) { naiden=1; break; } } 1671 if(!naiden) { node.parentNode.removeChild(node); JS_POGAN.push(s); } // alert('Çàáëîêèðîâàí ïîäîçðèòåëüíûé ñêðèïò: '+s); 1672 } 1673 } 1674}); observer.observe(document,{ attributes: true, childList: true, subtree: true }); 1675 1676} catch(e) { alert('Err 12!'); } 1677 1678} 1679*/ 1680 1681//========================================================= 1682 1683// ñêîïèðîâàòü 1684cpbuf=function(e,message){ if(typeof(e)=='object') e=e.innerHTML; // navigator.clipboard.writeText(e); 1685 var area = document.createElement('textarea'); 1686 document.body.appendChild(area); 1687 area.value = e; 1688 area.select(); 1689 document.execCommand('copy'); 1690 document.body.removeChild(area); 1691 if(message===undefined) message=1000; 1692 if(message) salert('Copypasted:<p><b>'+(h(e).replace(/\n/g,'<br>'))+'</b>',1*message); 1693}; 1694 1695cpbufh=function(e,message){ if(typeof(e)=='object') e=e.innerHTML; 1696 e=e.replace(/<\/p>/gi,'') 1697 .replace(/<p>/gi,"\n\n") 1698 .replace(/<br>/gi,"\n"); 1699 cpbuf(e,message); 1700}; 1701 1702Mailbox={ 1703 write:function(e){MAIL("Mail.write("+e+")")} 1704}; 1705 1706MAIL=function(cmd){ var ff=function(){eval(cmd)}; if(typeof(Mail)=='object') ff(); else Mbox.preload(ff); }; 1707Mbox={ 1708 preload:function(f,p){ LOADS([www_js+'jsonpro.js?'+Math.random(),www_css+'chat.css?'+Math.random()],function(x,p){f(p)}); }, 1709/* 1710 mail:function(){ Mailbox.load(function(){Mail.All()}); }, 1711 write:function(x){ Mailbox.load(function(){Mail.write({to:x})}); }, 1712 Tread:function(x){ Mailbox.load(function(){Mail.Tread(x)}); }, 1713*/ 1714 check:function(){ 1715 AJ(www_ajax+'json.php?a=mails&start=0&limit=20&his&time=0&new&opt=id,unicfrom,unicto,timecreate,timeread,text,answerid',function(p){ 1716 if(p!='[]') Mbox.preload(function(x){Mail.New(x)},p); 1717 else doclass('mail_count',function(w){clean(w)}); 1718 }); 1719 }, 1720 1721}; 1722 1723/*****************************/ 1724NFC={ 1725 to: false, 1726 on: ()=>{ 1727 if(NFC.to) clearTimeout(NFC.to); 1728 newdiv("<div style='display:table;height:100%;width:100%;'>" 1729 +"<div style='display:table-cell;vertical-align:middle;text-align:center'>" 1730 +"<img src='"+www_design+"img/ajax.gif'>" 1731 +"</div>" 1732 +"</div>",{id:'NFC.tenek',cls:'tenek'}); 1733 var T=dom('NFC.tenek'); 1734 T.style.backgroundColor="rgba(0, 0, 0, 0.8)"; 1735 T.style.zIndex=999999; 1736 NFC.to=setTimeout('NFC.off()',10000); 1737 }, 1738 off: ()=>{ clean('NFC.tenek'); }, 1739 ndef: false, 1740 is: ()=>{ return ("NDEFReader" in window) }, 1741 scan: async (m) => { 1742 if(!NFC.is()) { 1743 salert("Óâû, ýòîò áðàóçåð íå ïîääåðæèâàåò ÷òåíèå NFC-êàðò",4000); 1744 } else try { 1745 NFC.ndef = new NDEFReader(); 1746 NFC.ndef.onreadingerror = (ev) => { NFC.off(); idie("Error! Cannot read the NFC tag."); }; 1747 NFC.ndef.onreading = (ev) => { if(!dom('NFC.tenek')) return; 1748 NFC.off(); 1749 if(!m) return idie('Serial Number: <b><font color=green>'+h(ev.serialNumber)+'</font></b>'); 1750 if(m=='set') return majax('module.php',{mod:'LOGIN',a:'setNFC',NFC:ev.serialNumber}); 1751 if(m=='login') return majax('module.php',{mod:'LOGIN',a:'logNFC',NFC:ev.serialNumber}); 1752 const d = ev.message.records[0]; 1753 if(d) { 1754 idie( ev.type+' '+d.recordType ); 1755 const uint8Array = new Uint8Array(d.data.buffer); 1756 const text = new TextDecoder().decode(uint8Array); 1757 idie("DATA: " + text); 1758 } else { 1759 idie("no data"); 1760 } 1761 1762 // dier( ev.message.records[0] ); //; .data ); 1763 // dier( ev.message.records[0].toRecords() ); 1764 1765 }; 1766 await NFC.ndef.scan(); 1767 NFC.on(); 1768 } catch(error) { idie('Error NFC: '+h(error)); } 1769 }, 1770 save: async (text, mode='text', lang='en') => { 1771 if(!NFC.is()) salert("áðàóçåð íå ïîääåðæèâàåò çàïèñü NFC-êàðò",4000); 1772 else try { 1773 NFC.on(); 1774 // NFC.ndef = new NDEFReader(); 1775 var records = { recordType: mode, data: text }; 1776 if(lang) records.lang = lang;
1777 await new NDEFReader().write({ records: [records] }); 1778 NFC.off(); 1779 return true; 1780 } catch (err) { NFC.off(); alert('err:'+err); return false; } 1781 }, 1782}; 1783 1784// Îáíîâèòü êàðòèíêó âíóòðè êýøà âàøåãî ñðàíîãî áðàóçåðà, àäîâ õàê 1785recacheIMG=function(img,agetli) { 1786 var wd=document.querySelectorAll("IMG[src='"+img+"']"); 1787 for(var q of wd) { 1788 // q.style.width=q.clientWidth+'px'; 1789 // q.style.height=q.clientHeight+'px'; 1790 q.onload=function(x){x=x.target; x.onload=false; setTimeout(function(){x.src=img},300); }; 1791 q.src=wwwhost+'design/img/ajax.gif'; 1792 } 1793 1794 if(img.indexOf('://')<0) var imgw=img; 1795 else var imgw=img.replace(/^[^\:]+\:\/\/[^\/]+/,''); 1796 imgw=imgw.substr(wwwhost.length); 1797 if(!agetli) var s=AGET(wwwhost+'cf?'+encodeURI(imgw)); 1798 1799 var ifr = document.createElement("iframe"); 1800 ifr.setAttribute("src",img); 1801 ifr.style.width = '1px'; 1802 ifr.style.height = '1px'; 1803 ifr.style.position = 'absolute'; 1804 ifr.style.top = '0px'; 1805 ifr.style.left = '0px'; 1806 ifr.onload = ifr.onerror = function() { 1807 if(ifr.getAttribute('loadonce')!='yes') { 1808 ifr.setAttribute('loadonce','yes'); 1809 ifr.contentWindow.location.reload(true); 1810 } else { 1811 clean(ifr); 1812 for(var q of wd) q.onload=function(x){x=x.target; x.onload=false; x.src=img;}; 1813 } 1814 } 1815 document.body.appendChild(ifr); 1816}; 1817 1818function dobavil(id,s,ara) { newdiv(s,ara,dom(id),'last'); } 1819function dobavil1(id,s,ara) { newdiv(s,ara,dom(id),'first'); } 1820 1821/* 1822function functionStack(d){ 1823 const error = new Error(); 1824 const firefoxMatch = (error.stack.split('\n')[0 + d].match(/^.*(?=@)/) || [])[0]; 1825 const chromeMatch = ((((error.stack.split('at ') || [])[1 + d] || '').match(/(^|\.| <| )(.*[^(<])( \()/) || [])[2] || '').split('.').pop(); 1826 const safariMatch = error.stack.split('\n')[0 + d]; 1827 // firefoxMatch ? console.log('firefoxMatch', firefoxMatch) : void 0; 1828 // chromeMatch ? console.log('chromeMatch', chromeMatch) : void 0; 1829 // safariMatch ? console.log('safariMatch', safariMatch) : void 0; 1830 return firefoxMatch || chromeMatch || safariMatch; 1831} 1832function_name=function(){ return functionStack(2); }; 1833*/ 1834 1835lightgreen=function(s) { return "<font color='"+arguments.callee.name+"'>"+s+"</font>"; } 1836green=function(s) { return "<font color='"+arguments.callee.name+"'>"+s+"</font>"; } 1837red=function(s) { return "<font color='"+arguments.callee.name+"'>"+s+"</font>"; } 1838blue=function(s) { return "<font color='"+arguments.callee.name+"'>"+s+"</font>"; } 1839 1840// íîâûå îêíà 1841// onMoveObject(elem,fn,fntest) 1842// elem - ýëåìåíò, êîòîðûé ïðåäëàãàåòñÿ äâèãàòü ïî ýêðàíó (âèäèìî íåãî position:absolute äîëæíî áûòü) 1843// fn(e,x,y) - ñàìà ôóíêöèÿ äâèæåíèÿ ýëåìåíòà e ïî ñìåùåíèþ x è y, ëó÷øå ïîñòàâèòü false è äîâåðèòüñÿ äåôîëòíîé 1844// fntest(e) - ôóíêöèÿ ïðîâåðêè: åñëè ðàçðåøåíî äâèãàòü çà ýòîò ýëåìåíò, âîçâðàùàåò ýëåìåíò, èíà÷å false 1845// ýòî ñäåëàíî ïîòîìó, ÷òî â îñíîâíîì ýëåìåíòå ìîãóò áûòü âñÿêèå ïîëÿ è âíóòðåííîñòè, çà êîòîðûå äâèãàòü íå íàäî 1846// ýòè äâå ôóíêöèè ìîæíî íå óêàçûâàòü 1847npx=function(s) { return 1 * (s ? (''+s).replace(/[^\d\-\.]/g,'') : 0); }; // parseFloat('0'+s); 1848onMoveObject=function(elem,fn,fntest) { elem=dom(elem); 1849 elem.style.cursor='move'; 1850 1851 if(!fn) fn=function(e,dx,dy) { 1852 var x,max=20; 1853 x=npx(e.style.left)+dx; x=Math.max(x,max-npx(e.clientWidth)); x=Math.min(x,getDocW()-max); e.style.left=x+'px'; 1854 x=npx(e.style.top)+dy; x=Math.max(x,max-npx(e.clientHeight)); x=Math.min(x,getDocH()-max); e.style.top=x+'px'; 1855 }; 1856 1857 var m="touchstart touchmove touchend mousedown".split(' '); 1858 for(var l of m) elem.addEventListener(l,function(event) { 1859 var e=event.target; 1860 if(fntest && (e=fntest(e))===false) return; 1861 try{ event.preventDefault(); event.stopPropagation(); }catch(er){} 1862 1863 var mStart=function(x,y) { e.LastMovX=x; e.LastMovY=y; e.classList.add('active-mov'); }; 1864 var fnRun=function(x,y) { fn(e, x-e.LastMovX, y-e.LastMovY); e.LastMovX=x; e.LastMovY=y; }; 1865 1866 var pnt=e; while(pnt.parentNode) pnt=pnt.parentNode; // Èùåì Àäàìà 1867 1868 var fnMove=function(ev) { fnRun(ev.clientX,ev.clientY); try { ev.preventDefault(); }catch(er){} return false; }; 1869 var fnUp=function(){ e.classList.remove('active-mov');pnt.removeEventListener("mousemove",fnMove); pnt.removeEventListener("mouseup",fnUp); }; 1870 // íàæàëè ïàëüöåì 1871 if(event.type == 'touchstart') { mStart(event.targetTouches[0].pageX, event.targetTouches[0].pageY); } 1872 // íàæàëè ìûøü 1873 if(event.type == 'mousedown') { mStart(event.clientX, event.clientY); pnt.addEventListener("mousemove",fnMove); pnt.addEventListener("mouseup",fnUp); } 1874 // îòïóñòèëè ïàëåö 1875 if(event.type == 'touchend') { e.classList.remove('active-mov'); } 1876 // òÿíåì ïàëüöåì 1877 if(event.type == 'touchmove') { // òîëüêî 1 êàñàíèå 1878 if(event.targetTouches.length == 1) fnRun(event.targetTouches[0].pageX,event.targetTouches[0].pageY); 1879 } 1880 }); 1881}; 1882 1883// íîâûå ôóíêöèè DOM ÷òîá íå ñòûäíî áûëî çà áûäëîèìåíà 1884/*****************************/ 1885lightgreen=function(s) { return "<font color='"+arguments.callee.name+"'>"+s+"</font>"; } 1886green=function(s) { return "<font color='"+arguments.callee.name+"'>"+s+"</font>"; } 1887red=function(s) { return "<font color='"+arguments.callee.name+"'>"+s+"</font>"; } 1888blue=function(s) { return "<font color='"+arguments.callee.name+"'>"+s+"</font>"; } 1889 1890dom=function(e,text){ 1891 if(e===undefined) return false;
1892 if(text===undefined) return typeof(e)=='object' ? e : ((''+e).indexOf('.')===0 ? document.querySelectorAll(e)[0] : document.getElementById(e) ); 1893 dom.s(e,text); 1894}; 1895 1896dom.s=function(e,text) { 1897 if(typeof(e)!='object') { 1898 if(e.indexOf && e.indexOf('.')===0) return document.querySelectorAll(e).forEach(l=>l.innerHTML=text); 1899 e=dom(e); 1900 } if(!e) return ''; 1901 if(text==undefined) return ( e.value!=undefined ? e.value : e.innerHTML ); 1902 if(e.value!=undefined) e.value=text; 1903 else { if(e.innerHTML!=undefined) e.innerHTML=text; /*init_tip(e);*/ } 1904}; 1905 1906dom.add=function(e,s,ara) { newdiv(s,ara,dom(e),'last'); }; 1907 1908dom.add1=function(e,s,ara) { newdiv(s,ara,dom(e),'first'); }; 1909 1910dom.on=function(e){ if(e=dom(e)) e.style.display='block'; }; 1911 1912dom.off=function(e){ if(e=dom(e)) { e.style.display='none'; if(e.id!='tip') dom.off('tip'); } }; 1913 1914dom.toggle=function(e){ if(e=dom(e)) { e.style.display = e.style.display==='none' ? 'block' : 'none'; if(e.id!='tip') dom.off('tip'); } }; 1915 1916dom.class=function(e,text) { document.querySelectorAll( e.indexOf('.')===0?e:'.'+e ).forEach(l=>l.innerHTML=text) }; 1917 1918// old 1919idd=zabil=dom; vzyal=dom.s; zakryl=dom.off; otkryl=dom.on; 1920function tudasuda(id) { if((id=dom(id))) if(id.style.display=='none') dom.on(id); else dom.off(id); } 1921function doclass(cla,f,s,node) { (node?node:document).querySelectorAll('.'+cla).forEach(e=>{f(e,s)}); } 1922function ifclass(id,l){ return dom(id).classList.contains(l) } 1923function classAdd(id,l){ dom(id).classList.add(l) } 1924function classDel(id,l){ dom(id).classList.remove(l) } 1925function zabilc(cla,s) { document.querySelectorAll('.'+cla).forEach(e=>{dom(e,s)}) } 1926 1927function view_ipinfo(ip){ 1928 if(!(''+ip).length || ip=='0.0.0.0') return salert('no ip',300); 1929 fetch('https://ipinfo.io/'+ip+'/json').then(response => { 1930 if(!response.ok) { throw new Error('Network response was not ok'); } 1931 return response.json(); 1932 }).then(data => { 1933 delete(data.readme); 1934 dier("<div class='r'>"+print_r(data).replace(/\n/g,'<br>') + '</div>' 1935 +'<div id="myMapId" style="width:'+Math.min(getWinW()-70,500)+'px;height:400px;z-index:1;"></div>'); 1936 var m = data['loc'].split(','); // 62.8924,27.6770 1937 LOADS(['/extended/geoip/2gis.ru.js','/extended/geoip/dg.css','/extended/geoip/dg.js'],function(){ 1938 try { 1939 var myMap = new DG.Map('myMapId'); // Óñòàíàâëèâàåì öåíòð êàðòû è êîýôôèöèåíò ìàñøòàáèðîâàíèÿ: 1940 myMap.setCenter(new DG.GeoPoint(1*m[1],1*m[0]),7); // 15 1941 myMap.controls.add(new DG.Controls.Zoom()); // óïðàâëåíèå êîýôôèöèåíòîì ìàñøòàáèðîâàíèÿ 1942 } catch(er){} 1943 }); 1944 }).catch(error => { 1945 console.log('Error', error); 1946 salert('Error: '+error,5000); 1947 }); 1948} 1949 1950 1951/* 1952function mpers(s,a) { 1953 return s.replace(/\{([^\{\}]+)\}/g,function(t0,t1){ 1954 if(typeof(a[t1])!='undefined') return a[t1]; // åñòü åñòü òàêîå {çíà÷åíèå} - âåðíóòü åãî 1955 if(t1.match(/[\s\,\.]+/g)!==null) return t0; // åñëè è èìåíà ïåðåìåííûõ ÷òî-òî ÷åðåç çàïÿòóþ - òî ïðîñòî âåðíóòü 1956 var f=t1.substring(0,1),i=t1.substring(1); 1957 if(f=='#') return (typeof(a[i])=='undefined'?'': h(a[i]) ); 1958 return ''; 1959 }); 1960} 1961*/ 1962//======================================================= mpers 1963 1964mpersf=async function(file,ar){ 1965 if(typeof("MPERS_TEMPLATES")!='object') MPERS_TEMPLATES={}; 1966 if(!MPERS_TEMPLATES[file]) MPERS_TEMPLATES[file] = await loadFile(file); 1967 return mpers(MPERS_TEMPLATES[file],ar); 1968}; 1969 1970/* 1971mpers=function(s,ar,del){ if(del==undefined) del=true; 1972 var stop=1000,s0=false,c,o='',end; 1973 while(--stop && s0!=s && (c=mpers.find(s)) ) { 1974 s0=s; 1975 var c0=c.substring(1,c.length-1); 1976 x=mpers.do(ar, c0, del); 1977 if(x!==false) s=s.replace(c,x); 1978 else { 1979 var c1=mpers(c0,ar,del); 1980 if(c1!=c0) s=s.replace(c0,c1); 1981 else { // íè÷åãî íå èçìåíèëîñü, íî òàì ìîæåò ñëó÷èòüñÿ {÷òî-òî òàêîå} 1982 const end=s.indexOf(c)+c.length; 1983 o+=s.substring(0,end); // ïîýòîìó ýòó ÷àñòü ñòðîêè ñðàçó îòáðàñûâàåì 1984 s=s.substring(end); // è ðàáîòàåì ñ îñòàòêîì 1985 } 1986 } 1987 } 1988 return o+s; 1989}; 1990 1991mpers.ar=function(ar,name){ 1992 try { 1993 var v = ar; 1994 if(name=='') return ar; 1995 name.split('.').forEach(n => { 1996 if(typeof(v[n])==undefined) return undefined; 1997 v = v[n]; 1998 }); 1999 return v; 2000 } catch(er) { return undefined; } 2001}, 2002*/ 2003
2004mpers=function(s,ar,del){ if(del==undefined) del=true; 2005 var stop=1000,s0=false,c; 2006 while(--stop && s0!=s && (c=mpers.find(s)) ) { 2007 s0=s; 2008 var c0=c.substring(1,c.length-1); 2009 x=mpers.do(ar, c0, del); 2010 if(x!==false) { 2011 s=s.replace(c,x); 2012 } else { 2013 var c1=mpers(c0,ar,del); 2014 if(c1!=c0) s=s.replace(c0,c1); 2015 } 2016 } 2017 return s; 2018}; 2019 2020mpers.ar=function(ar,name){ 2021 try { 2022 var v = ar; 2023 if(name=='') return ar; 2024 name.split('.').forEach(n => { 2025 if(typeof(v[n])==undefined) return undefined; 2026 v = v[n]; 2027 }); 2028 return v; 2029 } catch(er) { return undefined; } 2030}, 2031 2032mpers.do=function(ar,s,del) { 2033 2034 var m,v,x='',X; 2035 2036 // Ïðîñòûå ïåðåìåííûå {name}, {#name} 2037 if(null !== (m=s.match(/^(\#|)([0-9a-zA-Z_\.]+)$/)) ) { 2038 var [,mod,name] = m; 2039 if((v=mpers.ar(ar,name))===undefined) return (del ? '' : '{'+s+'}'); 2040 return (mod=='#' ? h(v) : v); 2041 } 2042 2043 // Îïåðàòîðû {opt(name):value} if(), for(), case(), date() 2044 if(null !== (m = s.match(/^([a-z]+)\(([0-9a-zA-Z_\.]*)\)\:([\s\S]*)/m) ) ) { 2045 var [,opt,name,value] = m; 2046 v=mpers.ar(ar,name); 2047 2048 const vif = ( 2049 v === undefined || v === null || v === 0 || v === false 2050 || (typeof v === "string" && ["0","false","null","undefined"].includes(v)) 2051 ) ? 0 : 1; 2052 2053 if(opt=='noif') return (vif ? '' : value); 2054 if(opt=='if') return (vif ? value : ''); 2055 2056 if(opt=='case') { 2057 var st=100, c; 2058 while(--st && (c=mpers.find(value)) ) { 2059 if(null !== (m=c.match(/^\{([^\:]*)\:([\s\S]*)\}$/m)) ) { 2060 var [,id,val] = m; 2061 if(id==v) return val; 2062 if(id==(''+v)) return val; 2063 if(id=='*'||id=='default') x=val; 2064 } 2065 value = value.replace(c,''); 2066 } 2067 return x; 2068 } 2069 2070 if(v===undefined) return ''; 2071 2072 if(opt=='for') { 2073 try { // [!!!] 2074 v.forEach((item,i)=> { x+=mpers( value ,{...ar, ...item, ...{i:i,i1:i+1,item:item} }); } ); 2075 } catch(e) { 2076 console.error('mpers '+e+'\nfor('+name+'){\n'+value+'\n}'); 2077 console.error('v('+typeof(v)+')='); 2078 console.error(v); 2079 console.error('-------- ar:'); 2080 console.error(ar); 2081 } 2082 return x; 2083 } 2084 2085 if(opt=='date') { // date(time)Y-m-d H:i:s 2086 return unixtime2str(v,value); 2087 } 2088 2089 return false; // íå íàø ñëó÷àé 2090 } 2091 2092 // {oper:text} 2093 if(null !== (m=s.match(/^([0-9a-z\#\.]+)\:([\s\S]*)/m)) ) { 2094 var [,oper,text] = m; 2095 2096 2097 // îïåðàöèè ñ òåêñòîì 2098 if(oper=='no') return ''; 2099 2100 // îïåðàöèè ñ òåêñòîì èëè ïåðåìåííîé 2101 v = mpers.ar(ar,text); 2102 2103 // stringify ìàññèâà 2104 if(oper=='stringify') return JSON.stringify(v); 2105 2106 x = (v!==undefined ? v : text); 2107 if(oper=='#') return h_fs(x); 2108 if(oper=='nl2br') return x.replace(/\n/g,"<br/>"); 2109 if(oper=='#nl2br') return h_fs(x).replace(/\n/g,"<br/>"); // \n â <br\> è åùå ýêðàíèðîâàòü HTML-ñóùíîñòè 2110 if(oper=='url'||oper=='urlencode') return encodeURIComponent(x); 2111 if(oper=='urldecode') return x=decodeURIComponent(x); 2112 2113 // îïåðàöèè ñ ïåðåìåííîé 2114 if(! /^[0-9a-z_\.]+$/.test(text) ) return false; // íå èìÿ ïåðåìåííîé 2115 if(v===undefined) return ''; // íåò ïåðåìåííîé â ìàññèâå 2116 if(oper=='c') return v.replace(/^\s+/g,'').replace(/\s+$/g,''); 2117 if(oper=='cc') return v.split("\n").map(line => line.replace(/^[ \t]+|[ \t]+$/g, "")).join("\n"); 2118 2119 if(oper=='length') return v.length; // ÷èñëî ñèìâîëîâ â òåêñòå 2120 if(oper=='date') return unixtime2str(v,'Y-m-d H:i:s'); // ÷èñëî â äàòó 2121 if(oper=='dat') return unixtime2str(v,'Y-m-d H:i'); // ÷èñëî â äàòó áåç ñåêóíä 2122 if(oper=='day') return unixtime2str(v,'Y-m-d'); // ÷èñëî â äàòó äíÿ 2123 if(oper=='.') return (1*v).toFixed(0); // {.00:}123.456 -> 123.4 2124 if(oper=='.0') return (1*v).toFixed(1); // {.00:}123.456 -> 123.4 2125 if(oper=='.00') return (1*v).toFixed(2); // 123.456 -> 123.45 2126 if(oper=='.0000') return (1*v).toFixed(4); // 123.456 -> 123.4560 2127 2128 return false;
2129 } 2130 2131 return false; 2132}; 2133 2134nospaces=function(s){ return s.split("\n").map(line => line.replace(/^[ \t]+|[ \t]+$/g, "")).join("\n"); }; 2135 2136// Ïîèñê ñîäåðæèìîãî ìåæäó ïàðíûìè ñêîáêàìè 2137mpers.find = function(s){ 2138 var k, start=0, i, a,b, stop=1000, len=s.length; 2139 while( --stop ) { 2140 k=1, start=s.indexOf('{',start); // } 2141 if(start<0) return false; 2142 2143 i=start+1; 2144 while( --stop && k!=0 && i<len ) { // ïîêà åñòü ÷î 2145 a = s.indexOf('{',i); if( a<0 ) a=len; 2146 b = s.indexOf('}',i); if( b<0 ) b=len; 2147 if(a==b) break; 2148 if(a<b) { k++; i=a+1; } else { k--; i=b+1; } 2149 } 2150 if(!stop) console.log(`mpers.fing stop1 > 1000`); 2151 if(k==0) return s.substring(start,i); 2152 start++; 2153 } 2154 console.log(`mpers.fing stop > 1000`); 2155 return false; 2156}; 2157 2158/* 2159mpers.do=function(ar,s,del) { 2160 var m,v,x='',X; 2161 // Ïðîñòûå ïåðåìåííûå {name}, {#name} 2162 if(null !== (m=s.match(/^(\#|)([0-9a-zA-Z_\.]+)$/)) ) { 2163 var [,mod,name] = m; 2164 if((v=mpers.ar(ar,name))===undefined) return (del ? '' : '{'+s+'}'); 2165 return (mod=='#' ? h(v) : v); 2166 } 2167 2168 // Îïåðàòîðû {opt(name):value} if(), for(), case(), date() 2169 if(null !== (m = s.match(/^([a-z]+)\(([0-9a-zA-Z_\.]*)\)\:([\s\S]*)/m) ) ) { 2170 var [,opt,name,value] = m; 2171 v=mpers.ar(ar,name); 2172 // const vif = (v||false) && v !== "0" && v != "false" && v != "null" && v !== "undefined" ; 2173 const vif = ( 2174 v === undefined || v === null || v === 0 || v === false 2175 || (typeof v === "string" && ["0","false","null","undefined"].includes(v)) 2176 ) ? 0 : 1; 2177 if(opt=='noif') return (vif ? '' : value); 2178 if(opt=='if') return (vif ? value : ''); 2179 2180 if(opt=='case') { 2181 var st=100, c; 2182 while(--st && (c=mpers.find(value)) ) { 2183 if(null !== (m=c.match(/^\{([^\:]*)\:([\s\S]*)\}$/m)) ) { 2184 var [,id,val] = m; 2185 if(id==v) return val; 2186 if(id==(''+v)) return val; 2187 if(id=='*'||id=='default') x=val; 2188 } 2189 value = value.replace(c,''); 2190 } 2191 return x; 2192 } 2193 2194 if(v===undefined) return ''; 2195 2196 if(opt=='for') { 2197 try { // [!!!] item i i1 2198 v.forEach((item,i)=> { x+=mpers( value ,{...ar, ...item, ...{i:i,i1:i+1,item:item} }); } ); 2199 } catch(e) { 2200 console.error('mpers '+e+'\nfor('+name+'){\n'+value+'\n}'); 2201 console.error('v('+typeof(v)+')='); 2202 console.error(v); 2203 console.error('-------- ar:'); 2204 console.error(ar); 2205 } 2206 return x; 2207 } 2208 2209 if(opt=='date') { // date(time)Y-m-d H:i:s 2210 return unixtime2str(v,value); 2211 } 2212 2213 return false; // íå íàø ñëó÷àé 2214 } 2215 2216 // {oper:text} 2217 if(null !== (m=s.match(/^([0-9a-z\#\.]+)\:([\s\S]*)/m)) ) { 2218 var [,oper,text] = m; 2219 2220 // îïåðàöèè ñ òåêñòîì 2221 if(oper=='no') return ''; 2222 2223 // îïåðàöèè ñ òåêñòîì èëè ïåðåìåííîé 2224 v = mpers.ar(ar,text); 2225 2226 // stringify ìàññèâà 2227 if(oper=='stringify') return JSON.stringify(v); 2228 2229 x = (v!==undefined ? v : text); 2230 if(oper=='#') return h(x); 2231 if(oper=='nl2br') return x.replace(/\n/g,"<br/>"); 2232 if(oper=='#nl2br') return h(x).replace(/\n/g,"<br/>"); // \n â <br\> è åùå ýêðàíèðîâàòü HTML-ñóùíîñòè 2233 if(oper=='url'||oper=='urlencode') return encodeURIComponent(x); 2234 if(oper=='urldecode') return x=decodeURIComponent(x); 2235 2236 // îïåðàöèè ñ ïåðåìåííîé 2237 if(! /^[0-9a-z_\.]+$/.test(text) ) return false; // íå èìÿ ïåðåìåííîé 2238 if(v===undefined) return ''; // íåò ïåðåìåííîé â ìàññèâå 2239 if(oper=='c') return v.replace(/^\s+/g,'').replace(/\s+$/g,''); 2240 if(oper=='length') return v.length; // ÷èñëî ñèìâîëîâ â òåêñòå 2241 if(oper=='date') return unixtime2str(v,'Y-m-d H:i:s'); // ÷èñëî â äàòó 2242 if(oper=='dat') return unixtime2str(v,'Y-m-d H:i'); // ÷èñëî â äàòó áåç ñåêóíä 2243 if(oper=='day') return unixtime2str(v,'Y-m-d'); // ÷èñëî â äàòó äíÿ 2244 if(oper=='.') return (1*v).toFixed(0); // {.00:}123.456 -> 123.4 2245 if(oper=='.0') return (1*v).toFixed(1); // {.00:}123.456 -> 123.4 2246 if(oper=='.00') return (1*v).toFixed(2); // 123.456 -> 123.45 2247 if(oper=='.0000') return (1*v).toFixed(4); // 123.456 -> 123.4560 2248 return false;
2249 } 2250 2251 return false; 2252}; 2253 2254// Ïîèñê ñîäåðæèìîãî ìåæäó ïàðíûìè ñêîáêàìè 2255mpers.find = function(s){ 2256 var k, start=0, i, a,b, stop=1000, len=s.length; // TODO ðàçîáðàòüñÿ!!! 2257 while( --stop ) { 2258 k=1, start=s.indexOf('{',start); // } 2259 if(start<0) return false; 2260 2261 i=start+1; 2262 while( --stop && k!=0 && i<len ) { // ïîêà åñòü ÷î 2263 a = s.indexOf('{',i); if( a<0 ) a=len; 2264 b = s.indexOf('}',i); if( b<0 ) b=len; 2265 if(a==b) break; 2266 if(a<b) { k++; i=a+1; } else { k--; i=b+1; } 2267 } 2268 if(k==0) return s.substring(start,i); 2269 start++; 2270 } 2271}; 2272*/ 2273//======================================================= /mpers 2274site_templates = {}; 2275async function template(name) { 2276 if(site_templates[name]) return site_templates[name]; 2277 const url=wwwhost+'template/system/'+name; 2278 const response = await fetch(url); 2279 if(!response.ok) throw new Error(url+" " + response.status); 2280 return site_templates[name]=await response.text(); 2281} 2282 2283async function Confirm(message,opt={yes:'YES',no:'NO'}) { 2284 const text = await template('confirm.htm'); 2285 return new Promise((resolve) => { 2286 console.log(text,message,opt,{...{message},...opt}); 2287 helpc('confirm',mpers(text, {...{message},...opt})); 2288 2289 setTimeout(()=>{ 2290 const e = dom('confirm'); 2291 e.querySelector('#confirm_close').addEventListener("click", () => { resolve(false); }); 2292 e.querySelector("button.btn-yes").addEventListener("click", () => { clean(e); resolve(true); }); 2293 e.querySelector("button.btn-no").addEventListener("click", () => { clean(e); resolve(false); }); 2294 },10); 2295 }); 2296}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.