function getListAndResults(selectedTopic, listName) {
	getList(selectedTopic, listName);
	switch(listName) {
		case 'bioTopics':
		case 'mathTopics':
		case 'csTopics':
		case 'cbbeTopics':
			getTopicSearchResults(selectedTopic, listName);
			break;
		case 'textbooks':
			getTextbookSearchResults(selectedTopic);
			break;
		default:
			getSearchResults(selectedTopic, 0, false);
			break;
	}
	
}

function getTextbookSearchResults(selectedTopic) {
	getSearchResults(selectedTopic, 0, false);
}

function getList(selectedTopic, listName) {

			if(selectedTopic != "") { //if there is is a category passed in
			
			//if there are any select boxes after the one that the category came from, remove it
				if($(selectedTopic).up().nextSiblings() != '') { 
					$(selectedTopic).up().nextSiblings().each(function(n) {
						Element.remove(n);
					});
				}
				var boxesToKeep = $(selectedTopic).up().previousSiblings().length + 1;
			} else {
				// if there is no category passed in, we want to start from scratch, 
				// deleting all the select boxes that may be on the screen.
				if($('boxForm').childElements() != '') {
					$('boxForm').childElements().each(function(n) {
						Element.remove(n);
					});
				}
				var boxesToKeep = 0;
			}		
	// Make an ajax requesti asking for an updated list and search results to put on the screen
	new Ajax.Request('../app/helpers/outlineHelper.php5', 
	{
		method :'get', 
		parameters : {topic: selectedTopic, discipline: listName}, 
		onSuccess: function(transport) {
			var response = transport.responseText;
			if(response != "") {
			//if everything went well, create another select box and put the options 
			// that were returned inside it. Add new box to DOM	
				if(selectedTopic != "") {
					//insert an arrow to help show hiercarchy 
					var arr = new Element('span', {});
					$('boxForm').insert(arr.insert('&rarr;'));
				}
				var box = new Element('select', {id: 'box' + (boxesToKeep + 1), size: '5'});
				box.addClassName('COBoxes');
				box.update(response);
				$('boxForm').insert(box);
			}
		},
		onComplete: function() {
			Event.observe($('box' + (boxesToKeep + 1)), 'click', function() { getListAndResults($F('box' + (boxesToKeep + 1)), listName) });
		},
		onFailure: function() {
			alert('you fail');
		}
	
	});
	
	//If there is a topic, do a topic reference search as well as a simple catalog search
	//arguments: container, params(string if simple, has if advanced), starting point, advanced(boolean), insert(boolean)
}	
function getTopicSearchResults(selectedTopic, listName) {
	if(selectedTopic == "")
		return;
	switch(listName) {
		case 'bioTopics':
			getTopicSearchResultsHelper($H({Biology_Topic: selectedTopic, Type: 'Reference Material'}) ,'0', 'Biology_Topic');
			break;
		case 'mathTopics':
			getTopicSearchResultsHelper($H({Math_Topic: selectedTopic, Type: 'Reference Material'}) ,'0', 'Math_Topic');
			break;
		case 'csTopics':
			getTopicSearchResultsHelper($H({CS_Topic: selectedTopic, Type: 'Reference Material'}) ,'0', 'CS_Topic');
			break;
		case 'cbbeTopics':
			$('topicRef').update('');
			//getTopicReference($H({Biology_Topic: selectedTopic, Type: 'Reference Material'}));
			//getTopicReference($H({Math_Topic: selectedTopic, Type: 'Reference Material'}));
			//getTopicReference($H({CS_Topic: selectedTopic, Type: 'Reference Material'}));
			getTopicSearchResultsHelper($H({CBBE_Topic: selectedTopic, Type: 'Reference Material'}) ,'0', 'CBBE_Topic');
			break;
	}
}

function getTopicSearchResultsHelper(param, startFrom, key) {
	if(startFrom == null) {
		startFrom = 0;
	}
	new Ajax.Request('../app/helpers/ajaxSimpleSearchHelper.php5', 
	{
		method :'get', 
		parameters : {params: $H(param).get(key), advanced: 'false'},
		onSuccess: function(transport) {
			var simple = transport.responseText;
			$('searchContent').update(simple);
		},
		onFailure: function() {
			alert('you fail');
		}
	});
	
}

function getTopicReference(param) {
	var Jparam = param.toJSON();
	new Ajax.Request('../app/helpers/ajaxSimpleSearchHelper.php5', 
	{
		method :'get', 
		parameters : {params: Jparam, advanced: 'true'},
		onSuccess: function(transport) {
			var topic = transport.responseText;
			if(topic.match(/<br \/\>\<b\>No matching results were found\<\/b\>\.\<br\s\/\>/)) {
				topic = '';
			} else {
				topic.replace("style=\"font-size:100%;font-weight:normal;\"", "");
			}
			$('topicRef').insert(topic);
		},
		onFailure: function() {
			alert('you fail');
		}
	});
	
}


// displaySearchResults should take in a value and make an ajax request to get back the cserd search results
function getSearchResults(param, startFrom, isAdvanced) {
	if(startFrom == null) {
		startFrom = 0;
	}
	if(isAdvanced) {
		param = param.toJSON();
	}
	
	new Ajax.Request('../app/helpers/ajaxSimpleSearchHelper.php5', 
	{
		method :'get', 
		parameters : {params: param, sr: startFrom, advanced: isAdvanced },
		onSuccess: function(transport) {
			$('searchContent').update(transport.responseText);
		},
		onFailure: function() {
			alert('you fail');
		}
	});
	
}
