// page_toc.js

function getTOCSectionTitle(candidateElement) {

//alert(formatContainer(candidateElement));
	// get section title
	sectionDiv = candidateElement.nextSibling;
	sectionDiv = skipTextNodesForwards(sectionDiv);

	sectionTitleDiv = sectionDiv.firstChild;
	sectionTitleDiv = skipCommentNodesForwards(sectionTitleDiv);
	sectionTitleStr = sectionTitleDiv.nodeValue;

	return sectionTitleStr;
}

function getTocContainer(tocDOM) {
	// find all A elements from current document
	var aElements = tocDOM.getElementsByTagName('a');

	var tocContainer = tocDOM.createElement('ul');
		
	var nameElements = new Array();

	// find A tags that have 'name' attribute (our section anchors) 
	var aElementsLength = aElements.length;
	var numTOCitems = 0;
	
  for (var n = 0; n < aElementsLength; n++) {
  	var candidateElement = aElements[n];

		var sectionName = candidateElement.getAttribute('name');
		if (sectionName && (sectionName != "")) {
			numTOCitems++;
			
			// add new item to container
			tocItem = tocDOM.createElement('li');
			tocContainer.appendChild(tocItem);

			// create section anchor
			tocItemAnchor = tocDOM.createElement('a');

			// set toc anchor href to section anchor name
			tocItemAnchor.setAttribute('href', "#" + sectionName);

			// clear existing toc anchor name
			tocItemAnchor.setAttribute('name', "");

			tocItem.appendChild(tocItemAnchor);

			// add toc anchor title	
			sectionTitleStr = getTOCSectionTitle(candidateElement)
			tocItemTitle = tocDOM.createTextNode(sectionTitleStr);
			tocItemAnchor.appendChild(tocItemTitle);
		}
	}
	
	if (numTOCitems > 1) {
		return tocContainer;
	}
	else {
		return tocDOM.createElement('ul');
	}

}


function buildPageToc(tocElement, tocTitleStr) {
	tocDOM = document;
	tocBoxStr = ""	;
	
	var tocContainer = getTocContainer(tocDOM);
	
	if (!isContainerEmpty(tocContainer)) 
	{
		var tocBox = document.createElement('div');
		tocBox.setAttribute("class", "TOCBox");
		tocBox.className="TOCBox";
		
		var tocTitle = document.createElement('div');
		tocBox.appendChild(tocTitle);
		tocTitle.setAttribute("class", "TOCTitle");
		tocTitle.className="TOCTitle";
		
		var tocTitleText = document.createTextNode(tocTitleStr);
		tocTitle.appendChild(tocTitleText);
		
		// can't do this, as style gets corrupted in IE
			//tocBox.appendChild(tocContainer);

		appendNodeContent(tocBox, getNodeOuterHTML(tocContainer));
		tocBoxStr = getNodeOuterHTML(tocBox);
	}

	replaceElementContent(tocElement, tocBoxStr);
}
