function AutoSuggest(id, table, field){
	var input = document.getElementById(id);
	var position = find_position(input);
	var size = find_size(input);
	var controller ="/includes/modules/base/controllers/autoSuggest.php?";
	var resultHolder;
	
	function init(){
		// set up event listeners
		input.onkeyup = send_request;
		input.onblur = hide_soon;
		
		// create a div to hold the search results
		resultHolder = document.createElement("div");
		resultHolder.id = id + "ResultHolder";
		//resultHolder.style.top = position.top + size.h + "px";
		//resultHolder.style.left = position.left + size.w + "px";
		resultHolder.style.top = "56px";
		resultHolder.style.left = "70px";
		resultHolder.style.width = "200px";
		resultHolder.style.height = "auto";
		resultHolder.className = "autoSuggest";
		document.body.appendChild(resultHolder);
	}	
	
	function hide_results(){
		resultHolder.style.display = "none";
		resultHolder.innerHTML = "";
	}
	
	function hide_soon(){
		
	}
	
	function populate_input(){
		input.value = this.name;
		input.focus();
		hide_results();
	}
	
	function send_request(){
		var ajax = new Ajax(controller);
		ajax.send_request("", "search=" + input.value + "&table=" + table + "&field=" + field, "suggest.show_results(responseText)");
		/*
		alert(responseText);
		if(responseText){
			show_results(responseText.split(","));
		}
		*/
		
	}
	
	this.show_results = function(results){
		resultHolder.innerHTML = "";
		if(results){
			results = results.split(",");
			if(results.length > 0){
				var list = document.createElement("ul");

				// for each of the results, add a list item with an action to add the text to the input
				for(var i = 0; i < results.length; i++){
					// create a list item, and a link to go in the list item
					var listItem = document.createElement("li");
					var a = document.createElement("a");
					// put the search result in the list
					var t = document.createTextNode(results[i]);
					a.name = results[i];
					a.onclick = populate_input;
					a.appendChild(t);
					listItem.appendChild(a);	
					list.appendChild(listItem);
				}

				resultHolder.appendChild(list);

				resultHolder.style.display = "block";
			}
		}		
	}
	
	init();
}