document.addEventListener("DOMContentLoaded", function () { var footnotes = new Array(); function makeLinksKlickable (el) { if (el.nodeType == 3) { let links = new Array(); let spl = el.textContent.split(' '); for (let i = 0; i < spl.length; i++) if (spl[i].indexOf('http:\/\/') == 0 || spl[i].indexOf('https:\/\/') == 0) links.push(i); if (links.length > 0) { let pos = 0; let tn; for (let i = 0; i < links.length; i++) { tn = document.createTextNode(''); while (pos < links[i]) { tn.textContent += spl[pos]+' '; pos++; } if (tn.textContent != '') el.parentElement.insertBefore(tn, el); let a = document.createElement('a'); a.href = spl[pos]; a.target = '_blank'; a.textContent = spl[pos]; el.parentElement.insertBefore(a, el); pos++; } tn = document.createTextNode(''); while (pos < spl.length) { tn.textContent += spl[pos]; if (pos < spl.length-1) tn.textContent += ' '; pos++; } if (tn.textContent != '') el.parentElement.insertBefore(tn, el); el.parentElement.removeChild(el); } } else if (el.nodeType == 1 && el.tagName.toLowerCase() != 'a') for (let i = el.childNodes.length-1; i >= 0; i--) makeLinksKlickable(el.childNodes[i]); } function createFootnoteRef (note, firstref) { let el = document.createElement('sup'); el.className = 'footnotelink'; var link = document.createElement('a'); link.href = '#footnote'+note.notenumber; link.addEventListener('click', function () { for (let j = 0; j < footnotes.length; j++) footnotes[j].className = 'footnote'; note.className = 'footnote active'; }); link.innerHTML = note.notenumber; el.appendChild(link); if (firstref) el.id = 'footnotelink'+note.notenumber; return el; } let a; let namednotes = new Object(); let noterefs = new Array(); for (let repeat = 0; repeat < 2; repeat++) { if (repeat == 0) a = document.getElementsByTagName('span'); else a = document.getElementsByTagName('footnote'); for (let i = 0; i < a.length; i++) { if ((repeat == 0 && (' '+a[i].className+' ').indexOf(' footnote ') == -1) || a[i].processed) continue; a[i].processed = true; if (a[i].getAttribute('notename')) namednotes[a[i].getAttribute('notename')] = a[i]; if (a[i].getAttribute('noteref')) { noterefs.push(a[i]); continue; } a[i].notenumber = footnotes.length+1; makeLinksKlickable(a[i]); a[i].parentElement.insertBefore(createFootnoteRef(a[i], true), a[i]); let el = document.createElement('a'); el.className = 'number'; el.href = '#footnotelink'+(footnotes.length + 1); el.id = 'footnote'+(footnotes.length + 1); el.innerHTML = '['+(footnotes.length + 1)+']'; a[i].insertBefore(el, a[i].firstChild); footnotes.push(a[i]); } } if (footnotes.length == 0) return; for (let i = 0; i < noterefs.length; i++) { let target = namednotes[noterefs[i].getAttribute('noteref')]; if (target) noterefs[i].parentElement.insertBefore(createFootnoteRef(target, false), noterefs[i]); noterefs[i].parentElement.removeChild(noterefs[i]); } let el2 = document.getElementById('footer'); let b = false; if (!el2) { b = true; document.createElement('div'); } el2.className = 'footer'; el2.id = 'footer'; el = document.createElement('hr'); el2.appendChild(el); for (let i = 0; i < footnotes.length; i++) el2.appendChild(footnotes[i]); if (b) document.body.appendChild(el2); }, true);