function evaluateResponseText(http_request) {

	var response;
	response = http_request.responseText;
	var total_length = response.length;
	var temp = new Array();
	temp = response.split('<br />');
	var max;
	max = temp.length;

	var i;
	if (max > 0 && temp[0] && total_length < 500) {
		optslen = document.getElementById('suggestions').options.length;
		for (i=0;i<optslen;i++) {
			document.getElementById('suggestions').options[i] = null;
		}
		var boxsize = 0;
		for (i=0;i<max;i++) {
			if (temp[i]!='undefined' && temp[i] != '' && temp[i] != null) {
				document.getElementById('suggestions').options[i] = new Option(temp[i],temp[i]);
				boxsize+=1;
			}
			document.getElementById('suggestions').selectedIndex = 0;
		}
		if (boxsize > 12) {
			boxsize = 12;
		}
		document.getElementById('suggestions').size=boxsize;
		document.getElementById('suggested_div').style.display='';
		document.getElementById('suggested_div').style.display='';
	} else {
		if (document.getElementById('suggested_div').style.display!="none") {
			document.getElementById('suggested_div').style.display="none";
		}
		optslen = document.getElementById('suggestions').options.length;
		for (i=0;i<optslen;i++) {
			document.getElementById('suggestions').options[i] = null;
		}
		document.getElementById('suggestions').selectedIndex = 0;
	}
}

function getSuggested(value, event) {
	
	var suggestions = document.getElementById('suggestions');
	if (suggestions) {

		if (event.keyCode == 40) { //move down list
			if (suggestions.selectedIndex < (suggestions.options.length-1)) {
				suggestions.selectedIndex = suggestions.selectedIndex+1;
				document.getElementById('searchstring').value = suggestions.value;
			}
		} else if (event.keyCode == 38) { //move up list
			if (suggestions.selectedIndex > 0) {
				suggestions.selectedIndex = suggestions.selectedIndex-1;
				document.getElementById('searchstring').value = suggestions.value;
			}
		} else {

			// pass a unique parameter in so that we don't get old html as a result.
			var params = "run_q=1&searchterm="+value+"&unique="+Math.random()/Math.random()+Math.random();
			var url = "search_x.phtml?"+params;
			// make the request:
			makeAuthAjaxRequest("evaluateResponseText", url, null);

		}
	}
}

function makeAuthAjaxRequest(functionName, url, params) {

	var http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!http_request) {
		alert('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}

	http_request.onreadystatechange = function() { getAuthContents(functionName, http_request); };
	if (params) {
		http_request.open('POST', url, true);
		http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		http_request.send(params);
	} else {
		http_request.open('GET', url, true);
		http_request.send(null);
	}
}

function getAuthContents(functionName, http_request) {

	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			eval(functionName + "(http_request);");
		} else {
			// commented this line out becuase it is actually happening quite often for pcs with several browser windows open.
			//alert('There was a problem with the request.' + http_request.status);
		}
	}
}