
function toggleTab(obj) {
	// If object passed is the data list, assign obj to the first DT
	if (obj.nodeName == "DL" && obj.className.substring(0, 3) == "tab") {
		for (var i=0; i<obj.childNodes.length; i++) {
			if (obj.childNodes[i].nodeName == "DT") {
				obj = obj.childNodes[i];
				break;
			}
		}
		if (obj.nodeName != "DT") return false;
	}	
	else if (obj.nodeName != "DT" || obj.parentNode.className.substring(0, 3) != "tab") return false;
	
	var iTabHeight = obj.offsetHeight;
	
	// Close all tab and content
	for (var i=0; i<obj.parentNode.childNodes.length; i++) {
		if (obj.parentNode.childNodes[i].nodeName == "DD") obj.parentNode.childNodes[i].style.display = "none";
		else if (obj.parentNode.childNodes[i].nodeName == "DT") obj.parentNode.childNodes[i].className = "";
	}
	
	// Initialize the selected tab
	obj.className = "selected";								
	while (obj.nodeName != "DD") obj = obj.nextSibling;
	obj.style.display = "block";

	obj.parentNode.style.height = (((obj.offsetHeight+iTabHeight)*0.08)) + "em";
	
	return false;
}

function toggleData(obj) {
	if (obj) {
		var obj_data = obj;
		while (obj_data.tagName != "DD") obj_data = obj_data.nextSibling;
		
		if (obj_data.style.display == 'block') {
			obj_data.style.display = 'none';
			obj.className = 'expand';
		}
		else {
			obj_data.style.display = 'block';
			obj.className = 'shrink';
		}
		
		toggleDataAllSwitcher(obj);
	}
	else {
		alert('You did not pass DT object as an argument.');
	}
}

function toggleDataAllSwitcher(obj) {
	var obj_list = obj;
	while (obj_list.tagName != "DL") obj_list = obj_list.parentNode;
	var bAllOpen = true;
	
	if (document.getElementById(obj_list.id + "-all")) {
		for (var i=0; i<obj_list.childNodes.length; i++) {
			if (obj_list.childNodes[i].tagName == "DD" && obj_list.childNodes[i].style.display == 'none') {
				bAllOpen = false;
				break;	
			}
		}
		
		if (bAllOpen) document.getElementById(obj_list.id + "-all").className = 'shrink';
		else if (!bAllOpen) document.getElementById(obj_list.id + "-all").className = 'expand';
	}
}

function toggleAllData(obj) {
	var id = obj.id.substring(0, obj.id.search(/-all/));							
	var bAllOpen = true;
	
	obj_list = document.getElementById(id);
	
	for (var i=0; i<obj_list.childNodes.length; i++) {
		if (obj_list.childNodes[i].tagName == "DT") {
			obj_data = obj_list.childNodes[i].nextSibling;
			while (obj_data.tagName != "DD") obj_data = obj_data.nextSibling;
			if (obj_data.style.display == 'none') {
				obj_data.style.display = 'block';
				obj_list.childNodes[i].className = 'shrink';
				bAllOpen = false;
			}
		}
	}
	
	obj.className = 'shrink';
	
	if (bAllOpen) {
		for(var i=0; i<obj_list.childNodes.length; i++) {
			if (obj_list.childNodes[i].tagName == "DT") {
				obj_data = obj_list.childNodes[i].nextSibling;
				while (obj_data.tagName != "DD") obj_data = obj_data.nextSibling;
				
				obj_data.style.display = 'none';
				obj_list.childNodes[i].className = 'expand';
			}
		}
		
		obj.className = 'expand';
	}
}