function beforeSubmit(tree, hiddenValues, hiddenTree){
	hiddenValues.value = "";
	hiddenTree.value = "";	
	checkTree(tree.getRoot(), hiddenValues, true, hiddenTree);
			
	if (hiddenValues.value == "" && !isInaccurateMode()){		
		el = document.getElementById("subject_error");		
		el.style.display = 'block';
		el.focus();
		return false;
	} else {		
		return true;
	}
}

function isInaccurateMode(){
	for (var i=0; i < document.mainFrm.mode.length; i++){
		if (document.mainFrm.mode[i].checked && document.mainFrm.mode[i].value == "inaccurate")
			return true;
	}
	return false;
}

function checkTree(node, hidden, add, hiddenTree) {	
	if (hiddenTree.value.length > 0) hiddenTree.value += "#";
	hiddenTree.value += (node.data.code + "@" + node.expanded + "@" + node.checkState + "@" + node.checked);
	
	if (node.checkState == 2 && add){
		if (hidden.value.length > 0) hidden.value += ":";
		hidden.value += node.data.code;		
		add = false;
	}		
	if (node.children != null){
		for (i in node.children){
			checkTree(node.children[i], hidden, add, hiddenTree);
		}
	}	 		
}

function processDomainsDiv(){
	if (isInaccurateMode()){
		el = document.getElementById("subject_container");
		el.style.display = 'none';
	} else {
		el = document.getElementById("subject_container");
		el.style.display = 'block';
	}
}
