(function () { version.extensions['timedreplaceMacro'] = { major: 2, minor: 2, revision: 0 }; macros['timedinsert'] = macros['timedreplace'] = { handler: function (g, e, f, b) { function cssTimeUnit(s) { if (typeof s == "string") { if (s.slice(-2).toLowerCase() == "ms") { return Number(s.slice(0, -2)) || 0; } else if (s.slice(-1).toLowerCase() == "s") { return Number(s.slice(0, -1)) * 1000 || 0; } } throwError(g, s + " isn't a CSS time unit"); return 0; } function tagcontents(starttag, endtag, k) { var a = b.source.slice(k); var l = 0; var c = ""; for (var i = 0; i < a.length; i++) { var w = endtag.length; if (a.substr(i, w) == endtag) { if (l == 0) { b.nextMatch = k + i + w; return c; } else { l--; c += a.charAt(i); } } else { if (a.substr(i, starttag.length) == starttag) { l++; } c += a.charAt(i); } } return ""; } var tr = "<<" + e; var rw = "<>"; var etr = "<>"; var k = b.source.indexOf('>>', b.matchStart) + 2; var c, d; if (e == "timedreplace") { c = tagcontents(tr, rw, k); d = tagcontents((c ? rw : tr), etr, c ? b.nextMatch : k); } else if (e == "timedinsert") { d = tagcontents(tr, etr, k); } else if (e == "timedremove") { c = tagcontents(tr, etr, k); } var tm; tm = cssTimeUnit(f[0]); var h; if (c) { if (d) { g = insertElement(g, "span", null, "timedreplacements"); } h = insertElement(g, "span", null, "timedreplacement timedremove"); new Wikifier(h, c); if (d || e == "timedremove") { setTimeout(function () { h.classList.add("replacement-out"); setTimeout(function () { h.parentNode.removeChild(h); }, 1000); }, tm); } } if (d) { var m = insertElement(g, "span", null, "timedreplacement timedinsert", d); m.style.display = "none"; setTimeout(function () { if (m) { var t = m.firstChild ? m.firstChild.nodeValue : ""; removeChildren(m); new Wikifier(m, t); m.style.display = "inline"; m.classList.add("replacement-in"); setTimeout(function () { m.classList.remove("replacement-in"); }, 1); scrollWindowTo(m); } }, tm); } else if (!c && e != "timedremove") { throwError(g, "can't find matching end" + e); return; } } } macros['timedremove'] = macros['timedreplace']; macros['replacewith'] = macros['endtimedinsert'] = macros['endtimedremove'] = macros['endtimedreplace'] = { handler: function () {} } scrollWindowTo = function (E) { var D = window.scrollY; var G = J(E); if (!G) return; var C = Math.abs(D - G); var B = 0; var I = (D > G) ? -1 : 1; var F = window.setInterval(H, 25); function H() { B += 0.1; window.scrollTo(0, D + I * (C * Math.easeInOut(B))); if (B >= 1) { window.clearInterval(F) } } function J(N) { var O = A(N); var P = O + N.offsetHeight; var L = window.innerHeight; var M = D + L; if (O >= D && P > M) { return ((N.offsetHeight < L) ? O - (L - N.offsetHeight) + 20 : O) } } function A(K) { var L = 0; while (K.offsetParent) { L += K.offsetTop; K = K.offsetParent; } return L } } }());