var fullpost = true;

var toc_origOnLoad = null;

if (window.onload && window.onload != null)
{
    toc_origOnLoad = window.onload;
}

window.onload = toc_OnLoad;

function toc_OnLoad()
{
   var sidebar = document.getElementById("sidebar");

   if (sidebar != null)
   {
      var items = document.getElementsByTagName("H2");

      if (items.length > 0)
      {
         sidebar.style.display = "block";

         var sidebar_header = document.createElement('div');

         var sidebar_header_class = document.createAttribute('class');
         sidebar_header_class.nodeValue = "tocheader";
         sidebar_header.setAttributeNode(sidebar_header_class);

         var sidebar_header_text = document.createTextNode("Table of Contents");
         
         sidebar_header.appendChild(sidebar_header_text);
         
         sidebar.appendChild(sidebar_header);

         var sidebar_toc = document.createElement('div');

         var sidebar_toc_class = document.createAttribute('class');
         sidebar_toc_class.nodeValue = "tocentries";
         sidebar_toc.setAttributeNode(sidebar_toc_class);

         sidebar.appendChild(sidebar_toc);

         BuildTOC(sidebar_toc, 2);
      }
      else
      {
         sidebar.style.display = "none";
      }
   }

   /*
   if (location.search.length > 0)
   {
      var path = "";

      var search = decodeURI(location.search.substr(1));
      var evalString = "";
      
      var pairArray = search.split('#');
      
      for (var ii = 0; ii < pairArray.length; ++ii)
      {
         var pair = pairArray[ii];
         var evalArray = pair.split('=');
         
         if (evalArray[0].toLowerCase() == "dirid")
         {
            path = evalArray[1];
         }
         
         var folder = document.getElementById(path);
         
         if (folder != null)
         {
            var foldername = document.getElementById("foldername_" + path);
            foldername.className = "foldernameselected";
            
            var parent = folder.parentElement;
            
            while (parent.className == "folder")
            {
               parent.style.display = "block";
               parent = parent.parentElement;
               
               while (parent.className == "subfolder")
               {
                  var expand = document.getElementById("expand_" + parent.id);
                  
                  if (expand.onclick != null)
                  {
                     expand.onclick();
                  }
                  
                  parent = parent.parentElement;
               }
            }
         }
      }
   }
   */
   
   if (toc_origOnLoad != null)
   {
      toc_origOnLoad();
   }
}


function BuildTOC(dest, level)
{
   var tag = "H" + level;
   var items = document.getElementsByTagName(tag);
   var item = null;

   if (items.length > 0)
   {
      var i = 0;
     
      for (i = 0; i < items.length; ++i)
      {
         item = items[i];

         var text = "";

         if (!fullpost)
         {
            var parent = item.parentNode;
            
            if (parent)
            {
               var attr = parent.attributes.getNamedItem("class");
               
               if (attr && attr.value == "fullpost")
               {
                  continue;
               }
            }
         }

         if (item.childNodes.length > 1)
         {
            if (item.lastChild.tagName)
            {
               if (item.lastChild.childNodes.length > 1)
               {
                  text = item.lastChild.text;
                  // text = item.lastChild.childNodes[0].data;
               }
               else
               {
                  text = item.lastChild.lastChild.text;
               }
            }
            else
            {
               text = item.lastChild.text;
            }
         }
         else
         {
            text = item.lastChild.data;
         }
         
         var node = document.createElement('div');

         var node_class = document.createAttribute('class');
         node_class.nodeValue = "toc";
         node.setAttributeNode(node_class);

         var link = document.createElement('a');
         
         var link_id = document.createAttribute("id");
         link_id.nodeValue = "tocname_" + item.id;
         link.setAttributeNode(link_id);

         var link_href = document.createAttribute("href");
         link_href.nodeValue = "#" + item.id;
         link.setAttributeNode(link_href);

         var link_title = document.createAttribute("title");
         link_title.nodeValue = text;
         link.setAttributeNode(link_title);

         var text = document.createTextNode(" " + text);
         
         link.appendChild(text);

         node.appendChild(link);

         var img_src = document.createAttribute('src');

         dest.appendChild(node);
      }
   }

   return (items.length > 0);
}
