function processquicktoc() {
 var theTOCElement=document.getElementById('quicktoc');
 if (!theTOCElement) return;
 var theTOCHeading=document.getElementById('quicktocheading');
 var theElement=document.getElementById('quicktoccontents');
 if ((!theElement.style.display) || (theElement.style.display=='none')) {
  theElement.style.display='block';
  theTOCHeading.style.backgroundImage='url(/pub/quicktoc/arrowdown.gif)';
  var theTOCstatus=theTOCElement.getAttribute("quicktocstatus");
  if ((!theTOCstatus) || (theTOCstatus=='empty')) {
   populatequicktoc(theTOCElement,theElement);
  }
 } else {
  theElement.style.display='none';
  theTOCHeading.style.backgroundImage='url(/pub/quicktoc/arrowright.gif)';
 }
}
function populatequicktoc(theTOCElement,theContentsElement) {
 var theWikiTextElement = document.getElementById('wikitext');
 var theList=theWikiTextElement.childNodes,theHeadings=new Array();
 var theHeadingElements='H1,H2,H3,H4,H5,H6';
 var theLength=theList.length,theTag;
 var theIndex;
 var theHTML='';
 function HeadingInfo() {
  this.element=null;
  this.depth=null;
  this.id=null;
  this.text=null;
  this.html=null;
  this.indent=null;
 }
 var theIndent=6;
 for (var i=0;i<theLength;i++) {
  theTag=theList[i].tagName;
  theIndex=theHeadingElements.indexOf(theTag);
  if (theIndex>-1) {
   var theHeading = new HeadingInfo;
   theHeading.element=theList[i];
   theHeading.depth=((theIndex+3)/3);
   theIndent=Math.min(theIndent,theHeading.depth);
   theHeading.id=theHeading.element.id;
   theHeadings.push(theHeading);
  }
 }
 theLength=theHeadings.length;
 for (var i=0;i<theLength;i++) {
  var theHeading=theHeadings[i];
  theHeading.text=getelementtext(theHeading.element);
  if (!theHeading.id) {
   theHeading.id="headingid-"+i;
   theHeading.element.setAttribute("id",theHeading.id);
  }
  theHeading.html='<div class="quicktocitem" style="margin-left:' + 5 * (theHeading.depth-theIndent) + 'px"><a href="#'+theHeading.id+'">'+theHeading.text+'</a></div>';
  theHTML+=theHeading.html;
 }
 theContentsElement.innerHTML=theHTML;
 theTOCElement.setAttribute("quicktocstatus","loaded")
}
function getelementtext(theElement) {
 var theChildren=theElement.childNodes;
 var theText='';
 var theLength=theChildren.length;
 for (var i=0;i<theLength;i++) {
  if (theChildren[i].nodeType==3) {
   theText+=theChildren[i].nodeValue;
  } else {
   theText+=getelementtext(theChildren[i]);
  }
 }
 return theText;
}


