generated_toc={generate:function(){generate_from='0';generate_for='unset';list_type='ol';back_to_top='on';tocparent=document.getElementById('generated-toc');if(tocparent){classes=tocparent.className.split(/\s+/);for(var i=0;i<classes.length;i++){if(classes[i].match(/^generate_from_h[1-6]$/)){generate_from=classes[i].substr(classes[i].length-1,1);}else if(classes[i].match(/^generate_for_[a-z]+$/)){generate_for=classes[i].match(/^generate_for_([a-z])+$/)[1];}else if(classes[i].match(/^list_type_[a-z]+$/)){list_type=classes[i].match(/^list_type_([a-z])+$/)[1];}else if(classes[i].match(/^back_to_top_[a-z]+$/)){back_to_top=classes[i].match(/^back_to_top_([a-z])+$/)[1];}}}else{return;}
if(generate_for=='page'){top_node=document.getElementsByTagName('body');}else{top_node=tocparent.parentNode;}
if(generate_from==0){first_header_found=generated_toc.findFirstHeader(top_node);if(!first_header_found){return;}else{generate_from=first_header_found.toLowerCase().substr(1);}}
headings_to_treat={"h6":''};for(var i=5;i>=parseInt(generate_from);i--){headings_to_treat["h"+i]='';}
nodes=top_node.all?top_node.all:top_node.getElementsByTagName('*');headings=[];for(var i=0;i<nodes.length;i++){if(nodes[i].nodeName.toLowerCase()in headings_to_treat){if((' '+nodes[i].className+' ').indexOf('no-TOC')!=-1){continue;}
headings.push(nodes[i]);}}
status=generated_toc.readCookie("generated_toc_display");display_initially="block";toggle_initially="[-- hide table of contents --]";cur_head_lvl="h"+generate_from;cur_list_el=document.createElement(list_type);cur_list_el.style.display=display_initially;p=document.createElement('p');span=document.createElement('span');span.className='hidden';a=document.createElement('a');a.href='#aftertoc';a.appendChild(document.createTextNode('[-- skip table of contents --]'));span.appendChild(a);p.appendChild(span);tocparent.appendChild(p);p=document.createElement('p');p.id='toggle-container';a=document.createElement('a');a.id='generated_toc_d_toggle';a.appendChild(document.createTextNode(toggle_initially));p.appendChild(a);a.onclick=generated_toc.wrapOpenClose(a,cur_list_el);a.href='#';tocparent.appendChild(p);tocparent.appendChild(cur_list_el);for(var i=0;i<headings.length;i++){this_head_el=headings[i];this_head_lvl=headings[i].nodeName.toLowerCase();if(!this_head_el.id){this_head_el.id='heading_toc_j_'+i;this_head_el.setAttribute('tabindex','-1');}
while(this_head_lvl>cur_head_lvl){var last_listitem_el=null;for(var j=0;j<cur_list_el.childNodes.length;j++){if(cur_list_el.childNodes[j].nodeName.toLowerCase()=='li'){last_listitem_el=cur_list_el.childNodes[j];}}
if(!last_listitem_el){last_listitem_el=document.createElement('li');}
new_list_el=document.createElement(list_type);last_listitem_el.appendChild(new_list_el);cur_list_el.appendChild(last_listitem_el);cur_list_el=new_list_el;cur_head_lvl='h'+(parseInt(cur_head_lvl.substr(1,1))+1);}
while(this_head_lvl<cur_head_lvl){cur_list_el=cur_list_el.parentNode.parentNode;cur_head_lvl='h'+(parseInt(cur_head_lvl.substr(1,1))-1);}
li=document.createElement('li');a=document.createElement('a');a.href='#'+this_head_el.id;a.appendChild(document.createTextNode(generated_toc.innerText(this_head_el)));li.appendChild(a);cur_list_el.appendChild(li);if(back_to_top=='on'){newdiv=document.createElement("div");newdiv.innerHTML="<a href='#beforetoc'>[back to top]</a>";this_head_el.parentNode.insertBefore(newdiv,this_head_el.nextSibling);}}
p=document.createElement('p');p.id='aftertoc';tocparent.appendChild(p);if(back_to_top=='on'){p=document.createElement('p');p.id='beforetoc';tocparent.parentNode.insertBefore(p,tocparent)}
var alllis=tocparent.getElementsByTagName("li");for(var i=0;i<alllis.length;i++){var foundlink=false;for(var j=0;j<alllis[i].childNodes.length;j++){if(alllis[i].childNodes[j].nodeName.toLowerCase()=='a'){foundlink=true;}}
if(!foundlink){alllis[i].className="missing";}else{alllis[i].className="notmissing";}}},wrapOpenClose:function(a,cur_list_el){return function(e){d=cur_list_el.style.display;a.firstChild.nodeValue=(d=='block'?'[-- show':'[-- hide')+' table of contents --]';a.className=(d=='block'?'toggle-closed':'toggle-open');cur_list_el.style.display=d=='block'?'none':'block';if(cur_list_el.style.display=="block"){generated_toc.createCookie("generated_toc_display","open",21);}else{generated_toc.createCookie("generated_toc_display","closed",21);}
if(window.event){window.event.returnValue=false;window.event.cancelBubble=true;}else{e.preventDefault();e.stopPropagation();}}},createCookie:function(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires="; expires="+date.toGMTString();}
else var expires="";document.cookie=name+"="+value+expires+"; path=/";},readCookie:function(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0)
return c.substring(nameEQ.length,c.length);}
return null;},eraseCookie:function(name){createCookie(name,"",-1);},innerText:function(el){return(typeof(el.innerText)!='undefined')?el.innerText:(typeof(el.textContent)!='undefined')?el.textContent:el.innerHTML.replace(/<[^>]+>/g,'');},findFirstHeader:function(node){var nn=node.nodeName.toLowerCase();if(nn.match(/^h[1-6]$/)){return nn;}else{for(var i=0;i<node.childNodes.length;i++){var subvalue=generated_toc.findFirstHeader(node.childNodes[i]);if(subvalue)return subvalue;}
return null;}},init:function(){if(arguments.callee.done)return;arguments.callee.done=true;generated_toc.generate();}};(function(i){var u=navigator.userAgent;var e=false;var st=setTimeout;if(/webkit/i.test(u)){st(function(){var dr=document.readyState;if(dr=="loaded"||dr=="complete"){i()}else{st(arguments.callee,10);}},10);}
else if((/mozilla/i.test(u)&&!/(compati)/.test(u))||(/opera/i.test(u))){document.addEventListener("DOMContentLoaded",i,false);}else if(e){(function(){var t=document.createElement('doc:rdy');try{t.doScroll('left');i();t=null;}catch(e){st(arguments.callee,0);}})();}else{window.onload=i;}})(generated_toc.init);
