//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("Your Browser Sucks!\nIt's about time to upgrade don't you think?");
	}
}

//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();

//Called from keyup on the search textbox.
//Starts the AJAX request.
function searchSuggest() {
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		var str = escape(document.getElementById('search_box').value);
		searchReq.open("GET", 'ajax/suggest/search.php?search=' + str, true);
		searchReq.onreadystatechange = handleSearchSuggest;
		searchReq.send(null);
	}
}

//Called when the AJAX response is returned.
function handleSearchSuggest() {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById('search_suggest');
		ss.innerHTML = '';
		var str = searchReq.responseText.split("\n");

		ss.style.border = "1px solid #000";

		for(i=0; i < str.length - 1; i++) {
			//Build our element string.  This is cleaner using the DOM, but
			//IE doesn't support dynamically added attributes.
			var items = str[i].split("||||");
			var suggest = '<div onmouseover="javascript:suggestOver(this);" ';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
			suggest += 'onclick="javascript:setSearch(this.innerHTML, ' + items[0] + ');" ';
			suggest += 'class="suggest_link">' + items[1] + '</div>';
			ss.innerHTML += suggest;
		}

		// Hide border when there're no hits
		if(str.length == 1)
		{
			ss.style.border = "none";
		}
	}
}

//Mouse over function
function suggestOver(div_value) {
	div_value.className = 'suggest_link_over';
}
//Mouse out function
function suggestOut(div_value) {
	div_value.className = 'suggest_link';
}
//Click function
function setSearch(value, id) {
	document.getElementById('search_box').value = value;
	document.getElementById('search_suggest').style.border = "none";
	document.getElementById('search_suggest').innerHTML = '';

	// Make it possible to redirect directly to a search hit
	var input_id = document.createElement('input');
	input_id.type = "hidden";
	input_id.name = "id";
	input_id.id = "id";
	input_id.value = id;
	document.getElementById('ajax_search_form').appendChild(input_id);

	// Submit form
	document.getElementById('ajax_search_form').submit()
}