Incremental Select in JavaScript

<head>
<SCRIPT = JavaScript>
	var timerid     = null;
	var matchString = "";
	var mseconds    = 5000;	// Length of time before search string is reset

	function shiftHighlight(keyCode,targ)
		{
			keyVal      = String.fromCharCode(keyCode); // Convert ASCII Code to a string
			matchString = matchString + keyVal; // Add to previously typed characters
			elementCnt  = targ.length - 1;	// Calculate length of array -1
			for (i = elementCnt; i > 0; i--)
			{
				selectText = targ.options[i].text.toLowerCase(); // convert text in SELECT to lower case
				if (selectText.substr(0,matchString.length) == 	matchString.toLowerCase())
				{
					targ.options[i].selected = true; // Make the relevant OPTION selected
				}
			}
			clearTimeout(timerid); // Clear the timeout
			timerid = setTimeout('matchString = ""',mseconds); // Set a new timeout to reset the key press string
		
			return false; // to prevent IE from doing its own highlight switching
		}
</SCRIPT>
</head>
<body>

<select tabindex=1 name=whatever accesskey='s' label='Select something' size=1 onKeyPress = 'return shiftHighlight(event.keyCode, this);'>'
<option>Type a selection</option>