function showAutocomplete(name, listName, listKey, listValue, listFunction, fieldName, minLength, evt) {
	var text = document.getElementById(name + "Text");
	if (minLength == 0 || text.value.length >= minLength) {
		var e = !evt ? window.event : evt;

		var obj = document.getElementById(name);
		var select = document.getElementById(name + "Select");
		var div = document.getElementById(name + "Autocomplete");

		var autocompleteCallback = function(list) {
			if (list.length > 0) {
				dwr.util.removeAllOptions(name + "Select");
				dwr.util.addOptions(name + "Select", list, listKey, listValue);
				select.options[0].selected = "senalected";
				div.style.visibility = "visible";
			} else {
				select.value = "";
				obj.value = "";
				div.style.visibility = "hidden";
			}
		};
		
		var selidx = select.selectedIndex < 0 ? 0 : select.selectedIndex;
		var keyCode = e.keyCode;
		if (keyCode == 40 || keyCode == 38) {
			if (select.options.length > (selidx + 1)) {
				select.options[selidx].selected = "";
				select.options[selidx + 1].selected = "selected";
			}
			select.focus();
		} else if (keyCode == 13) {
			setAutocompleteValue(select, e);
		} else if (e.type == "click" && div.style.visibility == "visible") {
			div.style.visibility = "hidden";
		} else {
			if (!listFunction) {
				autocompleteAjax.list(listName, fieldName, text.value, autocompleteCallback);
			} else {
				listFunction = listFunction.substring(0, listFunction.lastIndexOf(')')) + ', autocompleteCallback)'
				eval(listFunction);
			}
		}
		
		if (select.options.length > (selidx)) {
			obj.value = select.options[selidx].value;
		}
	}
}

function escondeAutocomplete(name) {
	var div = document.getElementById(name + "Autocomplete");
	div.style.visibility = "hidden";
}
function hideAutocomplete(name) {
	// document.getElementById(name + "Autocomplete").style.visibility=
	// "hidden";
}

function setAutocompleteValue(obj, evt) {
	var e = !evt ? window.event : evt;
	var keyCode = e.keyCode;
	
	if (keyCode == 13 || e.type == "change"  || e.type == "click") {
		var name = obj.name.substr(0, obj.name.indexOf("Select"));
		var div = document.getElementById(name + "Autocomplete");
		var text = document.getElementById(name + "Text");
		var hidden = document.getElementById(name);
	
		if (obj.value) {
			text.value = obj.options[obj.selectedIndex].text;
		}
		hidden.value = obj.value;
		div.style.visibility = "hidden";
	}
}