//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Msxml2.XMLHTTP");
	} else {
		alert("Your browser is out of date!\nPlease upgrade your browser in order to be able to access all the functionality of our website.");
	}
}
	
//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();
//Called from keyup on the search textbox.
//Starts the AJAX request.
function searchSuggest() {
	var handlefield = document.getElementById('txtSearch');
	var slength = handlefield.value.length;
	if (slength > 2) {
		var ss = document.getElementById('search_suggest');
		ss.style.border = "1px solid black";
		if (searchReq.readyState == 4 || searchReq.readyState == 0) {
			var str = escape(document.getElementById('txtSearch').value);
			searchReq.open("GET", 'searchSuggest.php?search=' + str, true);
			searchReq.onreadystatechange = handleSearchSuggest; 
			searchReq.send(null);
		}
	}		
}

function searchSuggestTo() {
	var handlefield = document.getElementById('txtSearchTo');
	var slength = handlefield.value.length;
	if (slength > 2) {
		var ss = document.getElementById('search_suggestTo');
		ss.style.border = "1px solid black";
		if (searchReq.readyState == 4 || searchReq.readyState == 0) {
			var str = escape(document.getElementById('txtSearchTo').value);
			searchReq.open("GET", 'searchSuggest.php?search=' + str, true);
			searchReq.onreadystatechange = handleSearchSuggestTo; 
			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");
		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 suggest = '<div onmouseover="javascript:suggestOver(this);" ';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
			suggest += 'onclick="javascript:setSearch(this.innerHTML);" ';
			suggest += 'class="suggest_link">' + str[i] + '</div>';
			ss.innerHTML += suggest;
		}
		//ss.innerHTML += "<hr />";
		if (str.length > 1) ss.innerHTML += '<a href=# onClick="javascript:suggestRemove(search_suggest);"><font color="blue">&nbsp; Close</font></a>';
		//ss.innerHTML += "<hr />";
	}
}

function handleSearchSuggestTo() {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById('search_suggestTo')
		ss.innerHTML = '';
		var str = searchReq.responseText.split("\n");
		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 suggest = '<div onmouseover="javascript:suggestOver(this);" ';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
			suggest += 'onclick="javascript:setSearchTo(this.innerHTML);" ';
			suggest += 'class="suggest_link">' + str[i] + '</div>';
			ss.innerHTML += suggest;
		}
		//ss.innerHTML += "<hr />";
		if (str.length > 1) ss.innerHTML += '<a href=# onClick="javascript:suggestRemove(search_suggestTo);"><font color="blue">&nbsp; Close</font></a>';
		//ss.innerHTML += "<hr />";
	}
}

//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';
}
//remove suggest box
function suggestRemove(div_name) {
	div_name.innerHTML = '';
	div_name.style.border = '0px';
}
//Click function
function setSearch(value) {
	//old method var getcode = value.match(/(\(\w*\))/);
	//var getncode = getcode[(getcode.length)-1];
	var endPos = value.lastIndexOf(')');
	var startPos = value.lastIndexOf('(', endPos);
	var getncode = value.slice(startPos + 1, endPos);
	document.getElementById('txtSearch').value = getncode;
	var ss = document.getElementById('search_suggest');
	ss.style.border = '0px';
	document.getElementById('search_suggest').innerHTML = '';
}

function setSearchTo(value) {
	//old method var getcode = value.match(/(\(\w*\))/g);
	//var getncode = getcode[(getcode.length)-1];
	var endPos = value.lastIndexOf(')');
	var startPos = value.lastIndexOf('(', endPos);
	var getncode = value.slice(startPos + 1, endPos);
	document.getElementById('txtSearchTo').value = getncode;
	var ss = document.getElementById('search_suggestTo');
	ss.style.border = '0px';
	document.getElementById('search_suggestTo').innerHTML = '';
}
