function getElementsByClassName(node,classname) { if (node.getElementsByClassName) return node.getElementsByClassName(classname); else { var hasClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)"); var allElements = document.getElementsByTagName("*"); var results = []; var element; for (var i = 0; (element = allElements[i]) != null; i++) { var elementClass = element.className; if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass)) results.push(element); } return results; } } function toc_init(content_id) { var toc = document.getElementById(content_id + "_toc"); if(toc) { var TOC_STATE = {INIT : 0, H2 : 1, H3 : 2}; var toc_state = TOC_STATE.INIT; var toc_html = ""; var containers = document.getElementsByClassName(content_id); for(var i = 0; i < containers.length; i++) { var content = containers[i];//document.getElementById(content_id); /*alert("Content : nodeType " + content.nodeType + " tagName " + content.tagName);*/ /* add every child with matching id */ for(var j = 0; j < content.childNodes.length; j++) { var toc_entry = content.childNodes[j]; /*alert("Entry : nodeType " + toc_entry.nodeType + " tagName " + toc_entry.tagName);*/ if((toc_entry.nodeType == 1) && ((toc_entry.tagName == "H2") || (toc_entry.tagName == "H3"))) { for(var k = 0; k < toc_entry.childNodes.length; k++) { var toc_entry_anchor = toc_entry.childNodes[k]; if((toc_entry_anchor.nodeType == 1) && (toc_entry_anchor.tagName == "A")) { var link = "" + toc_entry_anchor.innerHTML + ""; if((toc_state == TOC_STATE.INIT) && (toc_entry.tagName == "H2")) { toc_html += "