Blame
Date:
Wed May 25 04:00:23 2022 UTC
Message:
Daily backup
001
2021-12-17
jrmu
/*
002
2021-12-17
jrmu
JavaScript utilities for PmWiki
003
2021-12-17
jrmu
(c) 2009-2020 Petko Yotov www.pmwiki.org/petko
004
2021-12-17
jrmu
based on PmWiki addons DeObMail, AutoTOC and Ape
005
2021-12-17
jrmu
licensed GNU GPLv2 or any more recent version.
006
2021-12-17
jrmu
007
2021-12-17
jrmu
libsortable() "Sortable tables" adapted for PmWiki from
008
2021-12-17
jrmu
a Public Domain event listener by github.com/tofsjonas
009
2021-12-17
jrmu
*/
010
2021-12-17
jrmu
011
2021-12-17
jrmu
(function(){
012
2021-12-17
jrmu
function aE(el, ev, fn) {
013
2021-12-17
jrmu
if(typeof el == 'string') el = dqsa(el);
014
2021-12-17
jrmu
for(var i=0; i<el.length; i++) el[i].addEventListener(ev, fn);
015
2021-12-17
jrmu
}
016
2021-12-17
jrmu
function dqs(str) { return document.querySelector(str); }
017
2021-12-17
jrmu
function dqsa(str) { return document.querySelectorAll(str); }
018
2021-12-17
jrmu
function tap(q, fn) { aE(q, 'click', fn); };
019
2021-12-17
jrmu
function adata(el, x) { return el.getAttribute("data-"+x); }
020
2021-12-17
jrmu
function sdata(el, x, val) { el.setAttribute("data-"+x, val); }
021
2021-12-17
jrmu
function pf(x) {return parseFloat(x);}
022
2021-12-17
jrmu
023
2021-12-17
jrmu
var __script__ = dqs('script[src*="pmwiki-utils.js"]');
024
2021-12-17
jrmu
var wikitext = document.getElementById('wikitext');
025
2021-12-17
jrmu
026
2021-12-17
jrmu
function PmXMail() {
027
2021-12-17
jrmu
var els = document.querySelectorAll('span._pmXmail');
028
2021-12-17
jrmu
var LinkFmt = '<a href="%u" class="mail">%t</a>';
029
2021-12-17
jrmu
030
2021-12-17
jrmu
for(var i=0; i<els.length; i++) {
031
2021-12-17
jrmu
var x = els[i].querySelector('span._t');
032
2021-12-17
jrmu
var txt = cb_mail(x.innerHTML);
033
2021-12-17
jrmu
var y = els[i].querySelector('span._m');
034
2021-12-17
jrmu
var url = cb_mail(y.innerHTML.replace(/^ *-&gt; */, ''));
035
2021-12-17
jrmu
036
2021-12-17
jrmu
if(!url) url = 'mailto:'+txt.replace(/^mailto:/, '');
037
2021-12-17
jrmu
038
2021-12-17
jrmu
url = url.replace(/"/g, '%22').replace(/'/g, '%27');
039
2021-12-17
jrmu
var html = LinkFmt.replace(/%u/g, url).replace(/%t/g, txt);
040
2021-12-17
jrmu
els[i].innerHTML = html;
041
2021-12-17
jrmu
}
042
2021-12-17
jrmu
}
043
2021-12-17
jrmu
function cb_mail(x){
044
2021-12-17
jrmu
return x.replace( /<span class=(['"]?)_d\1>[^<]+<\/span>/ig, '.')
045
2021-12-17
jrmu
.replace( /<span class=(['"]?)_a\1>[^<]+<\/span>/ig, '@');
046
2021-12-17
jrmu
}
047
2021-12-17
jrmu
048
2021-12-17
jrmu
function is_toc_heading(el) {
049
2021-12-17
jrmu
if(el.offsetParent === null) {return false;} // hidden
050
2021-12-17
jrmu
if(el.className.match(/\bnotoc\b/)) {return false;} // %notoc%
051
2021-12-17
jrmu
var p = el.parentNode;
052
2021-12-17
jrmu
while(p && p !== wikitext) { // >>notoc<<, (:markup:)
053
2021-12-17
jrmu
if(p.className.match(/\b(notoc|markup2)\b/)) {return false;}
054
2021-12-17
jrmu
if(p.parentNode) p = p.parentNode;
055
2021-12-17
jrmu
}
056
2021-12-17
jrmu
return true;
057
2021-12-17
jrmu
}
058
2021-12-17
jrmu
function posy(el) {
059
2021-12-17
jrmu
var top = 0;
060
2021-12-17
jrmu
if (el.offsetParent) {
061
2021-12-17
jrmu
do {
062
2021-12-17
jrmu
top += el.offsetTop;
063
2021-12-17
jrmu
} while (el = el.offsetParent);
064
2021-12-17
jrmu
}
065
2021-12-17
jrmu
return top;
066
2021-12-17
jrmu
}
067
2021-12-17
jrmu
068
2021-12-17
jrmu
function any_id(h) {
069
2021-12-17
jrmu
if(h.id) {return h.id;} // %id=anchor%
070
2021-12-17
jrmu
var a = h.querySelector('a[id]'); // inline [[#anchor]]
071
2021-12-17
jrmu
if(a && a.id) {return a.id;}
072
2021-12-17
jrmu
var prev = h.previousElementSibling;
073
2021-12-17
jrmu
if(prev) { // [[#anchor]] before !!heading
074
2021-12-17
jrmu
var a = prev.querySelectorAll('a[id]');
075
2021-12-17
jrmu
if(a.length) {
076
2021-12-17
jrmu
last = a[a.length-1];
077
2021-12-17
jrmu
if(last.id && ! last.nextElementSibling) {
078
2021-12-17
jrmu
var atop = posy(last) + last.offsetHeight;
079
2021-12-17
jrmu
var htop = posy(h);
080
2021-12-17
jrmu
if( Math.abs(htop-atop)<20 ) {
081
2021-12-17
jrmu
h.appendChild(last);
082
2021-12-17
jrmu
return last.id;
083
2021-12-17
jrmu
}
084
2021-12-17
jrmu
}
085
2021-12-17
jrmu
}
086
2021-12-17
jrmu
}
087
2021-12-17
jrmu
return false;
088
2021-12-17
jrmu
}
089
2021-12-17
jrmu
090
2021-12-17
jrmu
function repeat(x, times) {
091
2021-12-17
jrmu
var y = '';
092
2021-12-17
jrmu
for(var i=0; i<times; i++) y += '' + x;
093
2021-12-17
jrmu
return y;
094
2021-12-17
jrmu
}
095
2021-12-17
jrmu
function inittoggle() {
096
2021-12-17
jrmu
var tnext = adata(__script__, 'toggle');
097
2021-12-17
jrmu
if(! tnext) { return; }
098
2021-12-17
jrmu
var x = dqsa(tnext);
099
2021-12-17
jrmu
if(! x.length) return;
100
2021-12-17
jrmu
for(var i=0; i<x.length; i++) togglenext(x[i]);
101
2021-12-17
jrmu
tap(tnext, togglenext);
102
2021-12-17
jrmu
tap('.pmtoggleall', toggleall);
103
2021-12-17
jrmu
}
104
2021-12-17
jrmu
function togglenext(z) {
105
2021-12-17
jrmu
var el = z.type == 'click' ? this : z;
106
2021-12-17
jrmu
var attr = adata(el, 'pmtoggle')=='closed' ? 'open' : 'closed';
107
2021-12-17
jrmu
sdata(el, 'pmtoggle', attr);
108
2021-12-17
jrmu
}
109
2021-12-17
jrmu
function toggleall(){
110
2021-12-17
jrmu
var curr = adata(this, 'pmtoggleall');
111
2021-12-17
jrmu
if(!curr) curr = 'closed';
112
2021-12-17
jrmu
var toggles = dqsa('*[data-pmtoggle="'+curr+'"]');
113
2021-12-17
jrmu
var next = curr=='closed' ? 'open' : 'closed';
114
2021-12-17
jrmu
for(var i=0; i<toggles.length; i++) {
115
2021-12-17
jrmu
sdata(toggles[i], 'pmtoggle', next);
116
2021-12-17
jrmu
}
117
2021-12-17
jrmu
var all = dqsa('.pmtoggleall');
118
2021-12-17
jrmu
for(var i=0; i<all.length; i++) {
119
2021-12-17
jrmu
sdata(all[i], 'pmtoggleall', next);
120
2021-12-17
jrmu
}
121
2021-12-17
jrmu
}
122
2021-12-17
jrmu
123
2021-12-17
jrmu
function autotoc() {
124
2021-12-17
jrmu
if(dqs('.noPmTOC')) { return; } // (:notoc:) in page
125
2021-12-17
jrmu
var dtoc = adata(__script__, 'pmtoc');
126
2021-12-17
jrmu
try {dtoc = JSON.parse(dtoc);} catch(e) {dtoc = false;}
127
2021-12-17
jrmu
if(! dtoc) { return; } // error
128
2021-12-17
jrmu
129
2021-12-17
jrmu
if(! dtoc.Enable || !dtoc.MaxLevel) { return; } // disabled
130
2021-12-17
jrmu
131
2021-12-17
jrmu
if(dtoc.NumberedHeadings) {
132
2021-12-17
jrmu
var specs = dtoc.NumberedHeadings.toString().split(/\./g);
133
2021-12-17
jrmu
for(var i=0; i<specs.length; i++) {
134
2021-12-17
jrmu
if(specs[i].match(/^[1AI]$/i)) numheadspec[i] = specs[i];
135
2021-12-17
jrmu
}
136
2021-12-17
jrmu
}
137
2021-12-17
jrmu
138
2021-12-17
jrmu
var query = [];
139
2021-12-17
jrmu
for(var i=1; i<=dtoc.MaxLevel; i++) {
140
2021-12-17
jrmu
query.push('h'+i);
141
2021-12-17
jrmu
}
142
2021-12-17
jrmu
if(dtoc.EnableQMarkup) query.push('p.question');
143
2021-12-17
jrmu
var pageheadings = wikitext.querySelectorAll(query.join(','));
144
2021-12-17
jrmu
if(!pageheadings.length) { return; }
145
2021-12-17
jrmu
146
2021-12-17
jrmu
var toc_headings = [ ];
147
2021-12-17
jrmu
var minlevel = 1000, hcache = [ ];
148
2021-12-17
jrmu
for(var i=0; i<pageheadings.length; i++) {
149
2021-12-17
jrmu
var h = pageheadings[i];
150
2021-12-17
jrmu
if(! is_toc_heading(h)) {continue;}
151
2021-12-17
jrmu
toc_headings.push(h);
152
2021-12-17
jrmu
}
153
2021-12-17
jrmu
if(! toc_headings.length) return;
154
2021-12-17
jrmu
155
2021-12-17
jrmu
var tocdiv = dqs('.PmTOCdiv');
156
2021-12-17
jrmu
var shouldmaketoc = ( tocdiv || (toc_headings.length >= dtoc.MinNumber && dtoc.MinNumber != -1)) ? 1:0;
157
2021-12-17
jrmu
if(!dtoc.NumberedHeadings && !shouldmaketoc) return;
158
2021-12-17
jrmu
159
2021-12-17
jrmu
for(var i=0; i<toc_headings.length; i++) {
160
2021-12-17
jrmu
var h = toc_headings[i];
161
2021-12-17
jrmu
var level = pf(h.tagName.substring(1));
162
2021-12-17
jrmu
if(! level) level = 6;
163
2021-12-17
jrmu
minlevel = Math.min(minlevel, level);
164
2021-12-17
jrmu
var id = any_id(h);
165
2021-12-17
jrmu
hcache.push([h, level, id]);
166
2021-12-17
jrmu
}
167
2021-12-17
jrmu
168
2021-12-17
jrmu
prevlevel = 0;
169
2021-12-17
jrmu
var html = '';
170
2021-12-17
jrmu
var sectionedit = hcache[0][0] ? hcache[0][0].querySelector('.sectionedit') : false;
171
2021-12-17
jrmu
var selength = sectionedit? sectionedit.textContent.length : false;
172
2021-12-17
jrmu
for(var i=0; i<hcache.length; i++) {
173
2021-12-17
jrmu
var hc = hcache[i];
174
2021-12-17
jrmu
var actual_level = hc[1] - minlevel;
175
2021-12-17
jrmu
// if(actual_level>prevlevel+1) actual_level = prevlevel+1;
176
2021-12-17
jrmu
// prevlevel = actual_level;
177
2021-12-17
jrmu
178
2021-12-17
jrmu
var currnb = numberheadings(actual_level);
179
2021-12-17
jrmu
if(! hc[2]) {
180
2021-12-17
jrmu
hc[2] = 'toc-'+currnb.replace(/\.+$/g, '');
181
2021-12-17
jrmu
hc[0].id = hc[2];
182
2021-12-17
jrmu
}
183
2021-12-17
jrmu
if(dtoc.NumberedHeadings && currnb.length) hc[0].insertAdjacentHTML('afterbegin', currnb+' ');
184
2021-12-17
jrmu
185
2021-12-17
jrmu
if(! shouldmaketoc) { continue; }
186
2021-12-17
jrmu
var txt = hc[0].textContent.replace(/^\s+|\s+$/g, '').replace(/</g, '&lt;');
187
2021-12-17
jrmu
if(selength) txt = txt.slice(0, -selength);
188
2021-12-17
jrmu
189
2021-12-17
jrmu
html += repeat('&nbsp;', 3*actual_level)
190
2021-12-17
jrmu
+ '<a href="#'+hc[2]+'">' + txt + '</a><br>\n';
191
2021-12-17
jrmu
if(dtoc.EnableBacklinks) hc[0].insertAdjacentHTML('beforeend', ' <a class="back-arrow" href="#_toc">&uarr;</a>');
192
2021-12-17
jrmu
193
2021-12-17
jrmu
}
194
2021-12-17
jrmu
195
2021-12-17
jrmu
if(! shouldmaketoc) return;
196
2021-12-17
jrmu
197
2021-12-17
jrmu
html = "<b>"+dtoc.contents+"</b> "
198
2021-12-17
jrmu
+"[<input type='checkbox' id='PmTOCchk'><label for='PmTOCchk'>"
199
2021-12-17
jrmu
+"<span class='pmtoc-show'>"+dtoc.show+"</span>"
200
2021-12-17
jrmu
+"<span class='pmtoc-hide'>"+dtoc.hide+"</span></label>]"
201
2021-12-17
jrmu
+"<div class='PmTOCtable'>" + html + "</div>";
202
2021-12-17
jrmu
203
2021-12-17
jrmu
if(!tocdiv) {
204
2021-12-17
jrmu
var wrap = "<div class='PmTOCdiv'></div>";
205
2021-12-17
jrmu
if(dtoc.ParentElement && dqs(dtoc.ParentElement)) {
206
2021-12-17
jrmu
dqs(dtoc.ParentElement).insertAdjacentHTML('afterbegin', wrap);
207
2021-12-17
jrmu
}
208
2021-12-17
jrmu
else {
209
2021-12-17
jrmu
hcache[0][0].insertAdjacentHTML('beforebegin', wrap);
210
2021-12-17
jrmu
}
211
2021-12-17
jrmu
tocdiv = dqs('.PmTOCdiv');
212
2021-12-17
jrmu
213
2021-12-17
jrmu
}
214
2021-12-17
jrmu
if(!tocdiv) return; // error?
215
2021-12-17
jrmu
tocdiv.className += " frame";
216
2021-12-17
jrmu
tocdiv.id = '_toc';
217
2021-12-17
jrmu
218
2021-12-17
jrmu
tocdiv.innerHTML = html;
219
2021-12-17
jrmu
220
2021-12-17
jrmu
if(window.localStorage.getItem('closeTOC')) { dqs('#PmTOCchk').checked = true; }
221
2021-12-17
jrmu
aE('#PmTOCchk', 'change', function(e){
222
2021-12-17
jrmu
window.localStorage.setItem('closeTOC', this.checked ? "close" : '');
223
2021-12-17
jrmu
});
224
2021-12-17
jrmu
225
2021-12-17
jrmu
var hh = location.hash;
226
2021-12-17
jrmu
if(hh.length>1) {
227
2021-12-17
jrmu
var cc = document.getElementById(hh.substring(1));
228
2021-12-17
jrmu
if(cc) cc.scrollIntoView();
229
2021-12-17
jrmu
}
230
2021-12-17
jrmu
}
231
2021-12-17
jrmu
232
2021-12-17
jrmu
var numhead = [0, 0, 0, 0, 0, 0, 0];
233
2021-12-17
jrmu
var numheadspec = '1 1 1 1 1 1 1'.split(/ /g);
234
2021-12-17
jrmu
function numhead_alpha(n, upper) {
235
2021-12-17
jrmu
if(!n) return '_';
236
2021-12-17
jrmu
var alpha = '', mod, start = upper=='A' ? 65 : 97;
237
2021-12-17
jrmu
while (n>0) {
238
2021-12-17
jrmu
mod = (n-1)%26;
239
2021-12-17
jrmu
alpha = String.fromCharCode(start + mod) + '' + alpha;
240
2021-12-17
jrmu
n = (n-mod)/26 | 0;
241
2021-12-17
jrmu
}
242
2021-12-17
jrmu
return alpha;
243
2021-12-17
jrmu
}
244
2021-12-17
jrmu
function numhead_roman(n, upper) {
245
2021-12-17
jrmu
if(!n) return '_';
246
2021-12-17
jrmu
// partially based on http://blog.stevenlevithan.com/?p=65#comment-16107
247
2021-12-17
jrmu
var lst = [ [1000,'M'], [900,'CM'], [500,'D'], [400,'CD'], [100,'C'], [90,'XC'],
248
2021-12-17
jrmu
[50,'L'], [40,'XL'], [10,'X'], [9,'IX'], [5,'V'], [4,'IV'], [1,'I'] ];
249
2021-12-17
jrmu
var roman = '';
250
2021-12-17
jrmu
for(var i=0; i<lst.length; i++) {
251
2021-12-17
jrmu
while(n>=lst[i][0]) {
252
2021-12-17
jrmu
roman += lst[i][1];
253
2021-12-17
jrmu
n -= lst[i][0];
254
2021-12-17
jrmu
}
255
2021-12-17
jrmu
}
256
2021-12-17
jrmu
return (upper == 'I') ? roman : roman.toLowerCase();
257
2021-12-17
jrmu
}
258
2021-12-17
jrmu
259
2021-12-17
jrmu
function numberheadings(n) {
260
2021-12-17
jrmu
if(n<numhead[6]) for(var j=numhead[6]; j>n; j--) numhead[j]=0;
261
2021-12-17
jrmu
numhead[6]=n;
262
2021-12-17
jrmu
numhead[n]++;
263
2021-12-17
jrmu
var qq = '';
264
2021-12-17
jrmu
for (var j=0; j<=n; j++) {
265
2021-12-17
jrmu
var curr = numhead[j];
266
2021-12-17
jrmu
var currspec = numheadspec[j];
267
2021-12-17
jrmu
if(currspec.match(/a/i)) { curr = numhead_alpha(curr, currspec); }
268
2021-12-17
jrmu
else if(currspec.match(/i/i)) { curr = numhead_roman(curr, currspec); }
269
2021-12-17
jrmu
270
2021-12-17
jrmu
qq+=curr+".";
271
2021-12-17
jrmu
}
272
2021-12-17
jrmu
return qq;
273
2021-12-17
jrmu
}
274
2021-12-17
jrmu
275
2021-12-17
jrmu
function makesortable() {
276
2021-12-17
jrmu
if(! pf(adata(__script__, 'sortable'))) return;
277
2021-12-17
jrmu
var tables = dqsa('table.sortable,table.sortable-footer');
278
2021-12-17
jrmu
for(var i=0; i<tables.length; i++) {
279
2021-12-17
jrmu
// non-pmwiki-core table, already ready
280
2021-12-17
jrmu
if(tables[i].querySelector('thead')) continue;
281
2021-12-17
jrmu
282
2021-12-17
jrmu
tables[i].classList.add('sortable'); // for .sortable-footer
283
2021-12-17
jrmu
284
2021-12-17
jrmu
var thead = document.createElement('thead');
285
2021-12-17
jrmu
tables[i].insertBefore(thead, tables[i].firstChild);
286
2021-12-17
jrmu
287
2021-12-17
jrmu
var rows = tables[i].querySelectorAll('tr');
288
2021-12-17
jrmu
thead.appendChild(rows[0]);
289
2021-12-17
jrmu
var tbody = tables[i].querySelector('tbody');
290
2021-12-17
jrmu
if(! tbody) {
291
2021-12-17
jrmu
tbody = tables[i].appendChild(document.createElement('tbody'));
292
2021-12-17
jrmu
for(var r=1; r<rows.length; r++) tbody.appendChild(rows[r]);
293
2021-12-17
jrmu
}
294
2021-12-17
jrmu
if(tables[i].className.match(/sortable-footer/)) {
295
2021-12-17
jrmu
var tfoot = tables[i].appendChild(document.createElement('tfoot'));
296
2021-12-17
jrmu
tfoot.appendChild(rows[rows.length-1]);
297
2021-12-17
jrmu
}
298
2021-12-17
jrmu
mkdatasort(rows);
299
2021-12-17
jrmu
}
300
2021-12-17
jrmu
libsortable();
301
2021-12-17
jrmu
}
302
2021-12-17
jrmu
function mkdatasort(rows) {
303
2021-12-17
jrmu
var hcells = rows[0].querySelectorAll('th,td');
304
2021-12-17
jrmu
var specialsort = [], span;
305
2021-12-17
jrmu
for(var i=0; i<hcells.length; i++) {
306
2021-12-17
jrmu
sortspan = hcells[i].querySelector('.sort-number,.sort-number-us,.sort-date');
307
2021-12-17
jrmu
if(sortspan) specialsort[i] = sortspan.className;
308
2021-12-17
jrmu
}
309
2021-12-17
jrmu
if(! specialsort.length) return;
310
2021-12-17
jrmu
for(var i=1; i<rows.length; i++) {
311
2021-12-17
jrmu
var cells = rows[i].querySelectorAll('td,th');
312
2021-12-17
jrmu
var k = 0;
313
2021-12-17
jrmu
for(var j=0; j<cells.length && j<specialsort.length; j++) {
314
2021-12-17
jrmu
if(! specialsort[j]) continue;
315
2021-12-17
jrmu
var t = cells[j].innerText, ds = '';
316
2021-12-17
jrmu
if(specialsort[j] == 'sort-number-us') {ds = t.replace(/[^-.\d]+/g, ''); }
317
2021-12-17
jrmu
else if(specialsort[j] == 'sort-number') {ds = t.replace(/[^-,\d]+/g, '').replace(/,/g, '.'); }
318
2021-12-17
jrmu
else if(specialsort[j] == 'sort-date') {ds = new Date(t).getTime(); }
319
2021-12-17
jrmu
if(ds) cells[j].setAttribute('data-sort', ds);
320
2021-12-17
jrmu
}
321
2021-12-17
jrmu
}
322
2021-12-17
jrmu
}
323
2021-12-17
jrmu
function libsortable(){
324
2021-12-17
jrmu
//adapted from Public Domain code by github.com/tofsjonas
325
2021-12-17
jrmu
document.addEventListener('click', function(e) {
326
2021-12-17
jrmu
var down_class = ' dir-d ';
327
2021-12-17
jrmu
var up_class = ' dir-u ';
328
2021-12-17
jrmu
var regex_dir = / dir-(u|d) /;
329
2021-12-17
jrmu
var regex_table = /\bsortable\b/;
330
2021-12-17
jrmu
var element = e.target;
331
2021-12-17
jrmu
332
2021-12-17
jrmu
function getValue(obj) {
333
2021-12-17
jrmu
obj = obj.cells[column_index];
334
2021-12-17
jrmu
return obj.getAttribute('data-sort') || obj.innerText;
335
2021-12-17
jrmu
}
336
2021-12-17
jrmu
337
2021-12-17
jrmu
function reclassify(element, dir) {
338
2021-12-17
jrmu
element.className = element.className.replace(regex_dir, '') + dir;
339
2021-12-17
jrmu
}
340
2021-12-17
jrmu
if (element.nodeName == 'TH') {
341
2021-12-17
jrmu
var table = element.offsetParent;
342
2021-12-17
jrmu
if (regex_table.test(table.className)) {
343
2021-12-17
jrmu
var column_index;
344
2021-12-17
jrmu
var tr = element.parentNode;
345
2021-12-17
jrmu
var nodes = tr.cells;
346
2021-12-17
jrmu
for (var i = 0; i < nodes.length; i++) {
347
2021-12-17
jrmu
if (nodes[i] === element) {
348
2021-12-17
jrmu
column_index = i;
349
2021-12-17
jrmu
} else {
350
2021-12-17
jrmu
reclassify(nodes[i], '');
351
2021-12-17
jrmu
}
352
2021-12-17
jrmu
}
353
2021-12-17
jrmu
var dir = down_class;
354
2021-12-17
jrmu
if (element.className.indexOf(down_class) !== -1) {
355
2021-12-17
jrmu
dir = up_class;
356
2021-12-17
jrmu
}
357
2021-12-17
jrmu
reclassify(element, dir);
358
2021-12-17
jrmu
var org_tbody = table.tBodies[0];
359
2021-12-17
jrmu
var rows = [].slice.call(org_tbody.cloneNode(true).rows, 0);
360
2021-12-17
jrmu
var reverse = (dir == up_class);
361
2021-12-17
jrmu
rows.sort(function(a, b) {
362
2021-12-17
jrmu
a = getValue(a);
363
2021-12-17
jrmu
b = getValue(b);
364
2021-12-17
jrmu
if (reverse) {
365
2021-12-17
jrmu
var c = a;
366
2021-12-17
jrmu
a = b;
367
2021-12-17
jrmu
b = c;
368
2021-12-17
jrmu
}
369
2021-12-17
jrmu
return isNaN(a - b) ? a.localeCompare(b) : a - b;
370
2021-12-17
jrmu
});
371
2021-12-17
jrmu
var clone_tbody = org_tbody.cloneNode();
372
2021-12-17
jrmu
for (i = 0; i < rows.length; i++) {
373
2021-12-17
jrmu
clone_tbody.appendChild(rows[i]);
374
2021-12-17
jrmu
}
375
2021-12-17
jrmu
table.replaceChild(clone_tbody, org_tbody);
376
2021-12-17
jrmu
}
377
2021-12-17
jrmu
}
378
2021-12-17
jrmu
});
379
2021-12-17
jrmu
}
380
2021-12-17
jrmu
381
2021-12-17
jrmu
function highlight_pre() {
382
2021-12-17
jrmu
if (! pf(adata(__script__, 'highlight'))) return;
383
2021-12-17
jrmu
if (typeof hljs == 'undefined') return;
384
2021-12-17
jrmu
var x = dqsa('.highlight,.hlt');
385
2021-12-17
jrmu
386
2021-12-17
jrmu
for(var i=0; i<x.length; i++) {
387
2021-12-17
jrmu
var pre = Array.prototype.slice.call(x[i].querySelectorAll('pre,code'));
388
2021-12-17
jrmu
var n = x[i].nextElementSibling;
389
2021-12-17
jrmu
if (n && n.tagName == 'PRE') pre.push(n);
390
2021-12-17
jrmu
for(var j=0; j<pre.length; j++) {
391
2021-12-17
jrmu
pre[j].className += ' ' + x[i].className;
392
2021-12-17
jrmu
hljs.highlightBlock(pre[j]);
393
2021-12-17
jrmu
}
394
2021-12-17
jrmu
}
395
2021-12-17
jrmu
396
2021-12-17
jrmu
}
397
2021-12-17
jrmu
398
2021-12-17
jrmu
function ready(){
399
2021-12-17
jrmu
PmXMail();
400
2021-12-17
jrmu
inittoggle();
401
2021-12-17
jrmu
autotoc();
402
2021-12-17
jrmu
makesortable();
403
2021-12-17
jrmu
highlight_pre();
404
2021-12-17
jrmu
}
405
2021-12-17
jrmu
if( document.readyState !== 'loading' ) ready();
406
2021-12-17
jrmu
else window.addEventListener('DOMContentLoaded', ready);
407
2021-12-17
jrmu
})();
IRCNow