<!--
AddEvent(window, "load", AutoCompleteSelect, false);

function AutoCompleteSelect() {
	var els;
	els = document.body.getElementsByTagName("select");
	for (var i = 0; i < els.length; i++) {
		AddEvent(els[i], "keypress", ACSelect);
	}
}


// Constants
var acSelectDelay				= 2000;	// Max delay between 2 keypress events (in milliseconds)
// Field name, last modified datetime, current search text
var acSelectField = null, acSelectDT = 0, acSelectText = "";
// acSelect (oField, bUseValue, bForceMatch)
//	Use this function when you have a SELECT box with non-latin values.
//	Using this function, typing into the SELECT box will auto-select the
//	best match in the SELECT box.
//	Arguments:
//		oField		SELECT field object.
//		bUseValue	This chooses which of the SELECT properties to use:
//					'value' or 'text'.
function ACSelect(oEvt, bUseValue) {
	var found = false;
	// Get Field and Key pressed
	//	event
	var evt = (oEvt) ? oEvt : ((window.event) ? window.event : "");
	if (!evt) return found;
	if (evt.altKey || evt.ctrlKey) return found;
	//	field
	var fld = GetTargetElement(evt);
	if (!fld || fld.tagName.toLowerCase() != "select") return found;
	//	key pressed
	var charCode = (evt.keyCode) ? evt.keyCode : evt.which;
	if (charCode < 32) return found;
	// Check settings
	var property = (bUseValue) ? "value": "text";
	var today = new Date()
	if (fld != acSelectField || acSelectDT + acSelectDelay < today.getTime()) {
		acSelectField = fld;
		acSelectText = "";
	}
	acSelectDT = today.getTime();
	acSelectText += String.fromCharCode(charCode).toLowerCase();
	// Search
	for (var i = 0; i < fld.options.length; i++) {
		if (fld.options[i][property].toLowerCase().substring(0, acSelectText.length) == acSelectText) {
			found = true;
			break;
		}
	}
	if (found) fld.selectedIndex = i;
}
//-->

