// pageToc.js

//

// Ensure all H1, H2 and H3 headings are added to the page table of contents

//



window.onload = createTOC;



function createTOC()

{

  // find the nodes to be added to the Page TOC

  var tocTargets = new Array()

  nodes = document.body.childNodes

  for (var i = 0; i < nodes.length; i++) {

    nn = nodes[i].nodeName

    if (nn == "H1" || nn == "H2" || nn == "H3") {

      tocTargets.push(nodes[i])

    }

  }



  tocDiv = document.getElementById('pageToc')



  // Remove toc if none or one heading

  if (tocTargets.length <= 1) {

    tocDiv.parentNode.removeChild(tocDiv)

    return;

  }



  // Add the toc contents

  tocDiv = document.createElement('div')

  tocDiv.id = 'pageToc'

//  document.body.insertChildBefore(null,tocDiv)

  document.body.insertBefore(tocDiv, document.body.firstChild)

//  tocDiv = document.getElementById('pageToc')

//  tocDiv.innerHTML= "<h2>Page Contents </h2>"

  tocList = document.createElement('ul')

  tocList.className = "pageToc"

  tocDiv.appendChild(tocList)

  // Insert elements into our table of contents

  for (var i = 0; i < tocTargets.length; i++) {

    tocTarget = tocTargets[i]

    if (tocTarget.id == '') {

      tocTarget.id = 'pageToc' + i

    }

    newItem = document.createElement('li')


    newItem.className = "pageToc" + tocTarget.nodeName

    newLink = document.createElement('a')

    newLink.href = '#' + tocTarget.id

    newLink.innerHTML = tocTarget.innerHTML

    newItem.appendChild(newLink)

    tocList.appendChild(newItem)

    newItem.innerHTML = newItem.innerHTML + ' '

  }  

}


