
		
                
var current = "";
var currentTop = false;

function init(){
	 current = 0;
	 setBoldCurrent();
}


function contentInit(){
	if (top.index != null){
		if (top.index.current == ""){
			//alert(top.index.current);
			top.index.init();
		}
	}
}

function isContentAvailable(){
	if (top.frames["content"] != null){
		initDone = true;
		return true;
	} 
	initDone = false;
	return false;
}

function highlightToc(elem){
		var tr = elem.parentNode;
		while (tr.nodeName != "TR"){
			tr = tr.parentNode;
		}
		/*for (var i = 0 ; i < tr.childNodes.length; i++){
			
			if (tr.childNodes[i].nodeType == 1){
				tr.childNodes[i].style.fontWeight = 'bold';
			}
			
		}*/
		var elems = tr.getElementsByTagName("a");
		for (var i = 0; i < elems.length; i++){
			elems[i].style.fontWeight = "bold";
		}

}

function unhighlightToc(elem){
		if (elem){
			var tr = elem.parentNode;
			/*for (var i = 0 ; i < tr.childNodes.length; i++){
				if (tr.childNodes[i].nodeType == 1){
					tr.childNodes[i].style.fontWeight = 'normal';
				}
			}*/
		var elems = tr.getElementsByTagName("a");
		for (var i = 0; i < elems.length; i++){
			elems[i].style.fontWeight = "normal";
		}
		}
}

function highlightCToc(elem){
		var elems = elem.getElementsByTagName("a");
		for (var i = 0; i < elems.length; i++){
			if (!elems[i].className.match(/.*?pre.*/)){ 
				elems[i].style.textDecoration = "underline";
			}
		}
}
function unhighlightCToc(elem){
		var elems = elem.getElementsByTagName("a");
		for (var i = 0; i < elems.length; i++){
			elems[i].style.textDecoration = "none";
		}
}


function highlight(elem){
	elem.className = elem.className + " highlight";
}
function unhighlight(elem){
	//elem.style.backgroundColor = 'white';
	elem.className = elem.className.replace(/(.*?) ?highlight.*/, "$1");
}

function setBold(elem){
	//if (current){
	//	unhighlightToc(current);
	//}
	current = elem.parentNode.parentNode;
	top.focus();
        
        var tr = elem.parentNode;
        while (tr.nodeName != "TR") {
                tr = tr.parentNode;
        }
	var a = tr.getElementsByTagName("a");
	for (var i = 0; i < a.length; i++){
		var td = a[i].parentNode;
		while (td.nodeName != "TD") {
			td = td.parentNode;
		}
		
		//if (!td.className.match(/.*?pre.*/) && !currentTop){
			a[i].style.fontWeight = "bold";
			//alert("bold");
		//}
	}
	

        hideOToc(tr);/**/
//setBoldCurrent();
}


function setBoldCurrent(){
	var cFrame = top.frames["content"];
	var iFrame = top.frames["index"];

	if (current){
		unhighlightToc(current);
	}
	var links = iFrame.document.getElementsByTagName("a");
	var loc = (cFrame.location + "").replace(/^.*\//, "");
	var done = false;
	for (var i = 0 ; i < links.length; i++){
		if (links[i].href.replace(/^.*\//, "") == loc){
			highlightToc(links[i].parentNode);
			current = links[i].parentNode.parentNode;
			if (!done){
				hideOToc(links[i].parentNode.parentNode);
				//currentTop = a[i].href;
			}
			done = true;
		} else {
			//alert("notloc");

			unhighlightToc(links[i].parentNode);
		}
	}
	if (!done){
		for (var i = 0 ; i < links.length; i++){
			if (links[i].pathname.replace(/^.*[\/\\]/, "") == loc){
				highlightToc(links[i]); 
				current = links[i];
			if (!done){
				hideOToc(links[i].parentNode.parentNode);
			}
				done = true;
				break;
			}
		}	
	}

}		

function hideOToc(tr){
	var myLevel = tr.className.replace(/l/, "");
	currentTop = false;
	hideOTocBefore(tr.previousSibling, myLevel, myLevel);
	hideOTocAfter(tr.nextSibling, myLevel, true);
}
function hideOTocBefore(tr, level, oLevel){
	if (tr != null) {
		if ( tr.nodeType == 1 && tr.className.match(/l[0-9]+/)){
			var myLevel = tr.className.replace(/l/, "");
			if (myLevel > level){
				tr.style.display = "none";
			} else {
			/*table-row is not accepted by IE*/
				tr.style.display = "";
				if (myLevel < level){
					var a = tr.getElementsByTagName("a");
					for (var i = 0; i < a.length; i++){
						var td = a[i].parentNode;
						while (td.nodeName != "TD") {
							td = td.parentNode;
						}
						
						if (!td.className.match(/.*?pre.*/) && !currentTop){
							a[i].style.fontWeight = "bold";
						}
						if (myLevel == 1) {
							currentTop = true;
						}
					}
				} else {
					//if (myLevel < level && level != oLevel){
						var a = tr.getElementsByTagName("a");
						for (var i = 0; i < a.length; i++){
							var td = a[i].parentNode;
							while (td.nodeName != "TD") {
								td = td.parentNode;
							}
							
							if (!td.className.match(/.*?pre.*/) && !currentTop){
								a[i].style.fontWeight = "normal";
							}
							
						}
					//}
				}
			}
			if (myLevel < level){
				hideOTocBefore(tr.previousSibling, myLevel, oLevel);
			} else {
				hideOTocBefore(tr.previousSibling, level, oLevel);
			}
		} else {
			hideOTocBefore(tr.previousSibling, level, oLevel);
		}
	}
}

function hideOTocAfter(tr, level, ext){
	if (tr != null) {
		if (tr.nodeType == 1){
			var myLevel = tr.className.replace(/l/, "");
			if (ext && myLevel > level){
				level = myLevel;
			}
			if (myLevel > level){
				tr.style.display = "none";
			} else {
				tr.style.display = "";
				var a = tr.getElementsByTagName("a");
				for (var i = 0; i < a.length; i++){
					a[i].style.fontWeight = "normal";
				}
			}
			if (myLevel < level){
				hideOTocAfter(tr.nextSibling, myLevel, false);
			} else {
				hideOTocAfter(tr.nextSibling, level, false);
			}
		} else {
			hideOTocAfter(tr.nextSibling, level, ext);
		}
	}
}




	
