function createTOC() {
	var y = document.createElement('div');
	y.id = 'innertoc';
	
	var toBeTOCced = getElementsByTagNames('h2,h3,h4,h5');
	if (toBeTOCced.length < 2) return false;

	for (var i=2;i<toBeTOCced.length;i++) {
		var tmp = document.createElement('div');
		
		if(toBeTOCced[i].nodeName == 'H2'){
			tmp.className = "title1";
		}else if(toBeTOCced[i].nodeName == 'H3'){
			tmp.className = "title2";
		}else if(toBeTOCced[i].nodeName == 'H4'){
			tmp.className = "title3";
		}else if(toBeTOCced[i].nodeName == 'H5'){
			tmp.className = "title4";
		}
		
		y.appendChild(tmp);
		
		var a = document.createElement('a');
		tmp.appendChild(a);
				
		var headerId = toBeTOCced[i].id || 'link' + i;
		a.href = '#' + headerId;
		a.innerHTML = toBeTOCced[i].innerHTML;
		
		toBeTOCced[i].id = headerId;
		
		
		/*if (toBeTOCced[i].nodeName == 'H2') {
			tmp.innerHTML = 'Top';
			tmp.href = '#top';
			toBeTOCced[i].id = 'top';
		}*/
	}
	return y;
}

function getElementsByTagNames(list,obj) {
	if (!obj) var obj = document;
	var tagNames = list.split(',');
	var resultArray = new Array();
	for (var i=0;i<tagNames.length;i++) {
		var tags = obj.getElementsByTagName(tagNames[i]);
		for (var j=0;j<tags.length;j++) {
			resultArray.push(tags[j]);
		}
	}
	var testNode = resultArray[0];
	if (!testNode) return [];
	if (testNode.sourceIndex) {
		resultArray.sort(function (a,b) {
				return a.sourceIndex - b.sourceIndex;
		});
	}
	else if (testNode.compareDocumentPosition) {
		resultArray.sort(function (a,b) {
				return 3 - (a.compareDocumentPosition(b) & 6);
		});
	}
	return resultArray;
}

/*++++++++++*/
function createResourceList() {
	var y = document.createElement('div');
	y.id = 'reslist';
	
	var toBeTOCced = document.getElementsByTagName('a');

	for (var i=2;i<toBeTOCced.length;i++) {
		if(toBeTOCced[i].className == 'resource'){
			var tmp = document.createElement('div');
			tmp.appendChild(toBeTOCced[i].cloneNode(true));
			tmp.className="title1";
			y.appendChild(tmp);
		}
	}
	return y;
}