var highlightedID = "ai_bm_Aldicarb";
var highlighted_Bc = ""
var highlighted_c = ""

function openActiveIngredient(elemID) {
	resetTree();
	
	elemID = "ai_bm_" + elemID;
	// import relevant tree
	var ai_elem = document.getElementById(elemID);
	var cc_elem = ai_elem.parentNode;
	var cc_header = cc_elem.previousSibling;
	var sg_elem = cc_elem.parentNode;
	var sg_header = sg_elem.previousSibling;
	var group_elem = sg_elem.parentNode;
	var group_header = group_elem.previousSibling;
	
	// open relevent branch
	group_elem.style.display = "block";
	sg_elem.style.display = "block";
	cc_elem.style.display = "block";
	toggleSymbol(group_header, "minus");
	toggleSymbol(sg_header, "minus");
	toggleSymbol(cc_header, "minus");
	
	// localise branch
	highlighted_Bc = ai_elem.style.backgroundColor;
	highlighted_c = ai_elem.style.color;
	ai_elem.style.backgroundColor = "#FFFF00";
	var offset = findPosY(group_header);
	window.scrollTo(0,offset-37);
	offset = null;
	window.focus();
	
	return elemID;
}

function openChemicalClass(elemID) {
	resetTree();
	
	elemID = "cc_bm_" + elemID;
	// import relevant tree
	var cc_header = document.getElementById(elemID);
	var sg_elem = cc_header.parentNode;
	var sg_header = sg_elem.previousSibling;
	var group_elem = sg_elem.parentNode;
	var group_header = group_elem.previousSibling;
	
	// open relevent branch
	group_elem.style.display = "block";
	toggleSymbol(group_header, "minus");
	sg_elem.style.display = "block";
	toggleSymbol(sg_header, "minus");
	cc_header.style.display = "block";
	
	// localise branch
	highlighted_Bc = cc_header.style.backgroundColor;
	highlighted_c = cc_header.style.color;
	cc_header.style.backgroundColor = "#FFFF00";
	var offset = findPosY(group_header);
	window.scrollTo(0,offset-37)
	window.focus();
	
	return elemID;
}

function openGroup(elemID) {
	resetTree();
	
	elemID = "group_bm_" + elemID;
	// select relevant tree
	var group_header = document.getElementById(elemID);
	var sg_elem = group_header.nextSibling;
		
	// open relevent tree
	group_header.style.display = "block";
	toggleSymbol(group_header, "minus");
	sg_elem.style.display = "block";
	
	// localise branch
	highlighted_Bc = group_header.style.backgroundColor;
	highlighted_c = group_header.style.color;
	group_header.style.backgroundColor = "#FFFF00";
	var offset = findPosY(group_header);
	window.scrollTo(0,offset-37);
	window.focus();
	
	return elemID;
}

function resetTree() {
	document.getElementById(highlightedID).style.backgroundColor = highlighted_Bc;
	document.getElementById(highlightedID).style.color = highlighted_c;
	closeChildren();
	document.getElementById("group_dd").selectedIndex = 0;
	document.getElementById("chemicalclass_dd").selectedIndex = 0;
	document.getElementById("activeingredient_dd").selectedIndex = 0;
}

function closeChildren() {  
	root = document.getElementById("container");
	for (var i = 0; i < root.childNodes.length; i++) {
		var subgroup = root.childNodes[i].childNodes[1];
		for (var j = 0; j < subgroup.childNodes.length; j=j+2) {
			var chemicalclass = subgroup.childNodes[j+1];
				for (var k = 0; k < chemicalclass.childNodes.length; k=k+2) {
					var activeingredients = chemicalclass.childNodes[k+1];
					// close the current activeingredient
					activeingredients.style.display = "none";
					toggleSymbol(activeingredients.previousSibling, "plus");
				}
				// close the current chemical class
				chemicalclass.style.display = "none";
				toggleSymbol(chemicalclass.previousSibling, "plus");
		}
		// close the current subgroup
		subgroup.style.display = "none";
		toggleSymbol(subgroup.previousSibling, "plus");
	}
}

function findPosY(obj) {
// find the vertical position of tag 'obj'
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	} else if (obj.y) {
		curtop += obj.y;
	}
	return curtop;
}