// This file is a compacted version of toc.src.js.
// To produce it using VI use:
// :%s/\(^.*\)\/\/.*$/\1/g<Enter>
// 400<Shift>J
// :wq<Enter>
// http://www.vim.org
function TOC() {} TOC.strArClassName  = new Array("icon", "folder"); TOC.boolEnabled = false; TOC.strOpenStateClass = 'open'; TOC.strClosedStateClass = 'closed'; TOC.boolDefaultState = true; TOC.strExistingElementId = 'page'; TOC.oldFilterValue = ''; TOC.filterEvent = null; TOC.filterTime = 250; TOC.latestTriggerId = 'latest_bar'; TOC.latestElementId = 'latest_list'; TOC.latestState = true; TOC.initialize = function() { if(true) { TOC.boolEnabled = true; } if(document.getElementsByTagName && TOC.boolEnabled) { TOC.boolDefaultState = false; eArDocumentListElements = document.getElementsByTagName('li'); for(intCurrentListElementIndex = 0; intCurrentListElementIndex < eArDocumentListElements.length; intCurrentListElementIndex++) { eCurrentListElement = eArDocumentListElements[intCurrentListElementIndex]; if(TOC.boolContainsAllClasses(eCurrentListElement, TOC.strArClassName)) { if(TOC.boolContainsClass(eCurrentListElement, TOC.strOpenStateClass)) { TOC.changeClass( eCurrentListElement, TOC.strOpenStateClass, TOC.strClosedStateClass); } else { eCurrentListElement.className = eCurrentListElement.className.trim() + ' ' + TOC.strClosedStateClass; } eCurrentListElement.boolInitialized = true; eCurrentListElement.boolState = !TOC.boolDefaultState; }		} } if(navigator.userAgent) { strUA = navigator.userAgent; rexIEMajorRevSearch = /MSIE\ ([0-9]+)\.[0-9]+/g; intRevNoSubExpressionIndex = 1; strArRevSearchResults = rexIEMajorRevSearch.exec(strUA); if(strArRevSearchResults) { intMajorRevNumber = parseInt(strArRevSearchResults[intRevNoSubExpressionIndex]); if(intMajorRevNumber <= 6) TOC.disablePNG(); } } TOC.toggleLatest(); }; TOC.toggleAll = function(boolState) {if(document.getElementsByTagName){ strFindClass = boolState ? TOC.strClosedStateClass : TOC.strOpenStateClass; strReplaceClass = boolState ? TOC.strOpenStateClass : TOC.strClosedStateClass; eArDocumentListElements = document.getElementsByTagName('li'); for(intCurrentListElementIndex = 0; intCurrentListElementIndex < eArDocumentListElements.length; intCurrentListElementIndex++) { eCurrentListElement = eArDocumentListElements[intCurrentListElementIndex]; if(eCurrentListElement.boolInitialized && TOC.boolContainsAllClasses(eCurrentListElement, TOC.strArClassName)) if(TOC.boolContainsClass(eCurrentListElement, strFindClass)) { dummyEvent = function(){}; dummyEvent.target = eCurrentListElement; TOC.toggleSection(dummyEvent, eCurrentListElement); } } }}; TOC.toggleSection = function(event, eToToggle) { if(!TOC.boolIsValidEventPropagation(event, eToToggle)) { if(event.stopPropagation) { event.stopPropagation(); } return; } if(eToToggle.boolState) { if(eToToggle.boolInitialized) { eToToggle.boolState = !eToToggle.boolState; } else { eToToggle.boolState = !TOC.boolDefaultState; eToToggle.boolInitialized = true; } TOC.changeClass(eToToggle, TOC.strClosedStateClass, TOC.strOpenStateClass); } else { eToToggle.boolState = !eToToggle.boolState; TOC.changeClass(eToToggle, TOC.strOpenStateClass, TOC.strClosedStateClass); } }; TOC.boolContainsClass = function(eElement, strClassName) { if(!eElement.className) { return false; } if(TOC.boolEnabled) { strArClasses = eElement.className.split(' '); for(curClass = 0; curClass < strArClasses.length; curClass++) if(strArClasses[curClass] == strClassName) return true; return false;		} return false; }; TOC.boolContainsAllClasses = function(eElement, strArClassNames) { for(intCurClassIndex = 0; intCurClassIndex < strArClassNames.length; intCurClassIndex++) if(!TOC.boolContainsClass(eElement, strArClassNames[intCurClassIndex])) return false; return true;		}; TOC.changeClass = function(eElement, strFrom, strTo) { if(TOC.boolEnabled) { strArElementClasses = eElement.className.split(' '); boolChanged = false; for(i = 0; i<strArElementClasses.length; i++) { if(strArElementClasses[i] == strFrom) { strArElementClasses[i] = strTo; boolChanged = true; } } if(!boolChanged) strArElementClasses[strArElementClasses.length] = strTo; eElement.className = strArElementClasses.join(' '); } }; TOC.boolIsValidEventPropagation = function(eventToCheck, eTargetElement) { if(eventToCheck.target) { if(eventToCheck.target != eTargetElement) { return false; } } return true; }; TOC.blank = function() { if(window.event) { window.event.cancelBubble = true; } }; TOC.clickPassthrough = function(strElementId) { dummyEvent = function() {}; dummyEvent.target = document.getElementById(strElementId); TOC.toggleSection(dummyEvent, dummyEvent.target); }; TOC.filter = function(eFilter) {if(document.getElementsByTagName){ te = document.getElementById(TOC.strExistingElementId); if(!(te.textContent || te.innerText)) return; TOC.oldFilterValue = eFilter.value; TOC.toggleAll(true); eArListElements = document.getElementsByTagName('li'); eArElements = new Array(); for(intCurrentListElement = 0; intCurrentListElement < eArListElements.length; intCurrentListElement++) if( !TOC.boolContainsClass(eArListElements[intCurrentListElement], 'latest') && (TOC.boolContainsAllClasses(eArListElements[intCurrentListElement], new Array('icon', 'file')) || TOC.boolContainsAllClasses(eArListElements[intCurrentListElement], new Array('icon', 'folder')))) eArElements[eArElements.length] = eArListElements[intCurrentListElement]; for(intCurrentListElementIndex = 0; intCurrentListElementIndex < eArElements.length; intCurrentListElementIndex++) { eCurrentListElement = eArElements[intCurrentListElementIndex]; TOC.filterElement(eCurrentListElement, eFilter.value); } }}; TOC.filterElement = function(eElement, filter) { if(eCurrentListElement.textContent) strElementContentText = eCurrentListElement.textContent; else if(eCurrentListElement.innerText) strElementContentText = eCurrentListElement.innerText; else return; strElementContentText = strElementContentText.toUpperCase(); strArFilterWords = filter.split(' '); for(intFilterWordIndex = 0; intFilterWordIndex < strArFilterWords.length; intFilterWordIndex++) { strFilterWord = strArFilterWords[intFilterWordIndex].toUpperCase(); if(strFilterWord != '') { if(strElementContentText.indexOf(strFilterWord) == -1) { TOC.changeClass(eElement, 'visible', 'hidden'); return; } } } TOC.changeClass(eElement, 'hidden', 'visible'); }; TOC.scheduleFilterEvent = function(eSource) { if(TOC.filterEvent != null) { clearTimeout(TOC.filterEvent); TOC.filterEvent = null; } TOC.filterSrc = eSource; TOC.filterEvent = setTimeout('TOC.filter(TOC.filterSrc);', TOC.filterTime); }; TOC.disablePNG = function() {if(document.getElementsByTagName){ eArListElements = document.getElementsByTagName('li'); for(intCurrentListElement = 0; intCurrentListElement < eArListElements.length; intCurrentListElement++) if(TOC.boolContainsClass(eArListElements[intCurrentListElement], 'icon')) TOC.changeClass(eArListElements[intCurrentListElement], 'png', 'nopng'); }}; TOC.toggleLatest = function() { eLatestTrigger = document.getElementById(TOC.latestTriggerId); eLatestElement = document.getElementById(TOC.latestElementId); if(!(eLatestTrigger && eLatestElement)) return; if(TOC.latestState) { TOC.latestState = false; TOC.changeClass(eLatestTrigger, 'open', 'closed'); TOC.changeClass(eLatestElement, 'visible', 'hidden'); } else { TOC.latestState = true; TOC.changeClass(eLatestTrigger, 'closed', 'open'); TOC.changeClass(eLatestElement, 'hidden', 'visible'); } };
