(function(){ version.extensions['timedreplaceMacro'] = { major: 2, minor: 1, revision: 0 }; macros['timedinsert'] = macros['timedreplace'] = { handler: function (g, e, f, b) { 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 = (parseInt(f[0]) || 0) * 500; var h; if (c) { h = insertElement(g, "span", null, "timedreplacement timedreplacement1"); 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 timedreplacement2", 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 ? window.scrollY : document.body.scrollTop; 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 K = window.scrollY ? window.scrollY : document.body.scrollTop; var L = window.innerHeight ? window.innerHeight : document.body.clientHeight; var M = K + L; if(O >= K) { if(P > M) { if(N.offsetHeight < L) { return (O - (L - N.offsetHeight) + 20) } else { return O; } } } } function A(K) { var L = 0; while(K.offsetParent) { L += K.offsetTop; K = K.offsetParent; } return L } } }());