blob: 391d09a38e5d466a06f9a9f5fcdc50e063b1369a [file] [log] [blame]
<div id=footer>
<!--#include virtual="_navline.html" -->
</div>
<script>
function buildTocHelper(node, headers) {
if (node.nodeType == 1) {
// Element node.
var nodeName = node.nodeName.toLowerCase();
if (nodeName == "h2" || nodeName == "h3" || nodeName == "h4" ||
nodeName == "h5" || nodeName == "h6") {
if (node.id) {
headers.push([nodeName, node.innerHTML, node.id]);
node.appendChild(document.createTextNode("\u00A0")); // nbsp
var a = document.createElement("a");
a.class = "header-link";
a.href = "#" + node.id;
a.textContent = "\uD83D\uDD17"; // link symbol
node.appendChild(a);
}
} else {
for (var i = 0; i < node.childNodes.length; i++) {
buildTocHelper(node.childNodes[i], headers);
}
}
}
}
function buildToc() {
var headers = [];
buildTocHelper(document.body, headers);
if (headers.length == 0) {
return;
}
var toc = document.getElementById("toc");
var tocContents = document.createElement("div");
tocContents.id = "toc-contents";
tocContents.textContent = "Contents";
toc.appendChild(tocContents);
var level = 1;
var currentUl = null;
for (var i = 0; i < headers.length; i++) {
var header = headers[i];
var headerLevel = header[0];
var headerValue = header[1];
var headerId = header[2];
var newLevel = parseInt(headerLevel.substring(1));
while (newLevel > level) {
// We loop here to handle the case where we have h2 ... h4. This
// isn't a good way to write html, but someone may still do it.
var newUl = document.createElement("ul");
if (currentUl == null) {
toc.appendChild(newUl);
} else {
currentUl.appendChild(newUl);
}
currentUl = newUl;
level++;
}
while (newLevel < level) {
currentUl = currentUl.parentNode;
level--;
}
var li = document.createElement("li");
var a = document.createElement("a");
a.href = "#" + headerId;
a.textContent = headerValue;
li.appendChild(a);
currentUl.appendChild(li);
}
}
function wrapTables() {
var tables = document.getElementsByTagName("table");
for (var i = 0; i < tables.length; i++) {
var table = tables[i];
var parent = table.parentNode;
var div = document.createElement('div');
div.className = "table-wrapper";
parent.insertBefore(div, table);
div.appendChild(table);
}
}
buildToc();
wrapTables();
</script>