(function () { version.extensions['replaceMacro'] = { major: 1, minor: 2, revision: 1 }; macros['insert'] = macros['replace'] = { handler: function (g, e, f, b) { var h = insertElement(null, "span", null, "replacement"); var k = b.source.indexOf('>>', b.matchStart) + 2; var a = b.source.slice(k); var d = -1; var c = ''; var l = 0; var el = e.length for(var i = 0; i < a.length; i++) { if(a.substr(i, 7 + el) == '<>') { if(l == 0) { d = k + i + 7 + el; break; } else { l--; c += a.charAt(i); } } else { if(a.substr(i, 2 + el) == '<<' + e) { l++; } c += a.charAt(i); } } if(d != -1) { var m = Wikifier.createInternalLink(g, null); m.className = "internalLink replaceLink"; insertText(m, f[0]); insertText(h, c); g.appendChild(h); h.style.display = "none"; m.onclick = function () { var n = this.nextSibling; if(n) { var t = n.firstChild ? n.firstChild.nodeValue : ""; removeChildren(n); new Wikifier(n, t); n.style.display = "inline"; n.classList.add("replacement-in"); setTimeout(function () { n.classList.remove("replacement-in"); }, 1); scrollWindowTo(n); } if(e == "insert") { var p = document.createElement("span"); p.innerHTML = this.innerHTML; p.className = this.className + " disabled"; this.parentNode.insertBefore(p, this.nextSibling); } this.parentNode.removeChild(this); } b.nextMatch = d; } else { throwError(g, "can't find matching end" + e); return; } } } macros['endinsert'] = macros['endreplace'] = { 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 } } }());