function getRelations(selectedEntity) {
	// store this value for Bilal's BuildHistory
	setSubject(selectedEntity.text);
	
	var pars = 'username=' + selectedEntity.value + '&t2=true&databaseid=' + getSelectedDB() + '&navtype=' + getSelectedNavType();
	//alert(pars);
		
	var myAjax = new Ajax.Request(
		apiUrl, 
		{
			method: 'get', 
			parameters: pars, 
			onComplete: showRelations
		});
}

function getObjects(selectedRelation) {
	// store this value for Bilal's BuildHistory
	setRelation(selectedRelation.text);
	
	var pars = 'username=' + selectedRelation.value + '&t3=true&databaseid=' + getSelectedDB() + '&navtype=' + getSelectedNavType();
	//alert(pars);
		
	var myAjax = new Ajax.Request(
		apiUrl, 
		{
			method: 'get', 
			parameters: pars, 
			onComplete: showObjects
		});
}

function getDocuments(selectedEntity) {
	// store this value for Bilal's BuildHistory
	setObject(selectedEntity.text);
	
	var pars = 'username=' + selectedEntity.value + '&t6=true&databaseid=' + getSelectedDB() + '&navtype=' + getSelectedNavType();
	//alert(pars);
	
	var myAjax = new Ajax.Request(
		apiUrl, 
		{
			method: 'get', 
			parameters: pars, 
			onComplete: showDocuments
		});
}

// Populate the relationships select box in the navigation area
function showRelations(originalRequest)
{
	clearSelectBox("relSelect");
	clearSelectBox("objSelect");
	clearSelectBox("docSelect");	

	var obj = originalRequest.responseXML;
	var items =	obj.getElementsByTagName('item');
	var relIds = obj.getElementsByTagName('relID');
	var clsNames = obj.getElementsByTagName('type');
	
	updateSelectBox("relSelect", items, relIds, clsNames);
}

// Populate the entities select box in the navigation area
function showObjects(originalRequest)
{
	clearSelectBox("objSelect");
	clearSelectBox("docSelect");	

	var obj = originalRequest.responseXML;
	var items =	obj.getElementsByTagName('item');
	var objectId = obj.getElementsByTagName('ID');
	var subjectId =	obj.getElementsByTagName('entityID');
	var relationId =	obj.getElementsByTagName('relationID');
	var clsNames = obj.getElementsByTagName('type');
	
	for(i=0; i < items.length; i++){
		objectId[i].firstChild.data = subjectId[0].firstChild.data + "-" + relationId[0].firstChild.data + "-" + objectId[i].firstChild.data
	}
	
	updateSelectBox("objSelect", items, objectId, clsNames);
}

// Populate the documents select box in the navigation area
function showDocuments(originalRequest)
{
	clearSelectBox("docSelect");
	
	var obj = originalRequest.responseXML;
	var items =	obj.getElementsByTagName('item');
	var docIds = obj.getElementsByTagName('item');
	var clsNames = obj.getElementsByTagName('item');
	//alert(items);
		
	updateSelectBox("docSelect", items, docIds, clsNames);
}

function showAbstract(selectedDoc) {
	// connect back to Bilal's code to show abstract
    filesMouseOver(escape(selectedDoc), '6', 't1', 'textFileArea');
}


function updateSelectBox(fieldName, items, IDs, clsNames) {
	var box = document.getElementById(fieldName);
	
	for(i=0; i < items.length; i++){
		var label = items[i].firstChild.data;
		var id = IDs[i].firstChild.data;
		var clsName = clsNames[i].firstChild.nodeValue;

		//alert('Label: '+label+' Id: '+id + ' Class: '+ clsName);
		
		opt = new Option(label, id);
		opt.className = clsName;
		box.options[box.options.length] = opt; 
	}
	
	Element.show(fieldName);
}

function clearSelectBox(fieldName) {
	var field = document.getElementById(fieldName);
	var first = field.options[0];
	field.options.length = 0;
	field.options[0] = first;
}

function help(msg) {
	var defaultMsg = "No help is available for the selected topic.";
	if (msg == null) {
	   msg = defaultMsg;
	}
	$('helpDiv').innerHTML = msg;
	$('helpDiv').show();
	alert (msg);

}