// ============================================ //
// == a great script created and used by ppk == //
// == visit him on www.quirksmode.org ========= //
// ============================================ //
function createTOC()
{
    // modification: get contents out of the post
    if (bugRiddenCrashPronePieceOfJunk) return;

    //       -> body -> [1=text,2=header_div,3=text,4=container_div] -> [1=text,2=content] -> [..., 6=post]
    var x = getElement("id","content").childNodes[5].childNodes[3].childNodes;

    // var x = document.body.childNodes;
    var y = document.createElement('div');
    y.id = 'toc';
    var a = y.appendChild(document.createElement('span'));
    a.onclick = showhideTOC;
    a.innerHTML = 'Inhalts&uuml;bersicht';
    a.className = "contentheader";
    var z = y.appendChild(document.createElement('div'));
    // z.onclick = showhideTOC;
    var toBeTOCced = new Array();
    for (var i=0;i<x.length;i++)
    {
        if (x[i].nodeName.indexOf('H') != -1 || x[i].nodeName.indexOf('h') != -1)
            // toBeTOCced[toBeTOCced.length]=x[i];//
            toBeTOCced.push(x[i]);
    }
    if (toBeTOCced.length < 2) return;


    for (var i=0;i<toBeTOCced.length;i++)
    {
        var tmp = document.createElement('a');
        tmp.innerHTML = toBeTOCced[i].innerHTML;
        tmp.href = '#link' + i;
        tmp.className = 'page';
        z.appendChild(tmp);
        if (toBeTOCced[i].nodeName == 'H3' || toBeTOCced[i].nodeName == 'h3')
            tmp.className += ' indent';
        else {
          if (toBeTOCced[i].nodeName == 'H4' || toBeTOCced[i].nodeName == 'h4')
            tmp.className += ' indent2';
        }
        var tmp2 = document.createElement('a');
        tmp2.id = 'link' + i;
        if (toBeTOCced[i].nodeName == 'H1' || toBeTOCced[i].nodeName == 'h1')
        {
            tmp.innerHTML = 'Top';
            tmp.href = '#top';
            tmp2.id = 'top';
        }
        toBeTOCced[i].parentNode.insertBefore(tmp2,toBeTOCced[i]);
    }
    getElement("id","content").childNodes[5].childNodes[3].insertBefore(y, getElement("id","content").childNodes[5].childNodes[3].childNodes[2]);
}

var TOCstate = 'none';

function showhideTOC()
{
    TOCstate = (TOCstate == 'none') ? 'block' : 'none';
    document.getElementById('toc').lastChild.style.display = TOCstate;
}

function testnodes() {
  var x = getElement("id","content").childNodes[5].childNodes[3].childNodes;
  for (var l=0; l<x.length; l++) {
    // alert('position: '+l+' name: '+(x[l].nodeName) + " length: "+x[l].length+" type: "+x[l].nodeType);
  }
}
// window.onload = createTOC;
addEvent(window, 'load', createTOC);
addEvent(window, 'load', showhideTOC);
// addEvent(window, 'load', testnodes);
