// **************************************************
// Drop Down Key Seach Script
//
// Change Log
// Name:	Date:		Change:
// JasonK	3/14/06	    Create
//
// **************************************************



function ComboBox_onfocus(cmbBox) {
	//var cmbBox = event.srcElement;
	//Make sure the searchstring attribute is present.
	if (cmbBox.getAttribute("searchstring", 0) == null) {
		cmbBox.setAttribute("searchstring", "", false);
	}
	cmbBox.searchstring = "";
}

function ComboBox_onkeydown(cmbBox) {
	//Make sure the searchstring attribute is present.
	if (cmbBox.getAttribute("searchstring", 0) == null) {
		cmbBox.setAttribute("searchstring", "", false);
	}

	var varkeycode = event.keyCode;

	//(Tab Key)
	if (varkeycode == 9) {
		return;
	}

	//(Down Arrow)
	if (varkeycode == 38) {
		return;
	}

	//(Up Arrow)
	if (varkeycode == 40) {
		return;
	}

	//(ESC key)
	if (varkeycode == 27) { 
		//Clear out the search string.
		cmbBox.searchstring = "";
		cmbBox.selectedIndex = 0;
		//Cancel the default action of the event.  This will prevent the onkeypress and
		//onkeyup events from firing for the ESC key, since they normally would.
		return false;
	}

	//(Backspace key)
	if (varkeycode == 8) {
		//get rid of the last character of the string
		if (cmbBox.searchstring.length > 1) {
			cmbBox.searchstring = cmbBox.searchstring.substring(0,cmbBox.searchstring.length - 1);
		} else {
			//They just cleared the entire string, or there wasn't any string.
			cmbBox.searchstring = "";
			cmbBox.selectedIndex = 0;
			return false;
		}
	} else {
	    if ((varkeycode >= 48 && varkeycode <= 57) || (varkeycode >= 65 && varkeycode <= 90))
	    {
		    cmbBox.searchstring = cmbBox.searchstring + String.fromCharCode(varkeycode);	
		}
	}
	
	//look for a match.
	var founditem = false;
	for (var i = cmbBox.options.length - 1; i > 0; i--) {
		var leftstring = cmbBox.options(i).text;
		leftstring = ReplaceStr(leftstring, "-", "");
		leftstring = ReplaceStr(leftstring, "\\", "");
		leftstring = ReplaceStr(leftstring, "/", "");
		leftstring = ReplaceStr(leftstring, ":", "");
		leftstring = ReplaceStr(leftstring, ";", "");
		leftstring = ReplaceStr(leftstring, "'", "");
		leftstring = ReplaceStr(leftstring, ".", "");
		leftstring = ReplaceStr(leftstring, "(", "");
		leftstring = ReplaceStr(leftstring, ")", "");
		leftstring = ReplaceStr(leftstring, "&", "");
		leftstring = ReplaceStr(leftstring, " ", "");
		leftstring = leftstring.substring(0,cmbBox.searchstring.length);
		if (leftstring.toLowerCase() == cmbBox.searchstring.toLowerCase() &&
		    leftstring != "" && cmbBox.searchstring != "") {
			cmbBox.selectedIndex = i;	
			founditem = true;
			return false;
		}
	}		
}