// JavaScript Document

function smartOptionFinder(oSelect, oEvent) {
//alert("in smartOptionFinder oSelect="+oSelect+" oEvent="+oEvent);
  var sKeyCode = oEvent.keyCode;
  var sToChar = String.fromCharCode(sKeyCode);
  if (sKeyCode == 8) event.returnValue=false; // no backspace
  if (sKeyCode == 188)  {
    sToChar = "," ; }
  if((sKeyCode > 47 && sKeyCode < 91) || (sKeyCode == 32) || (sKeyCode == 188))  {
    var sNow = new Date().getTime();
    if (oSelect.getAttribute("finder") == null)     {
      oSelect.setAttribute("finder", sToChar.toUpperCase());
      oSelect.setAttribute("timer", sNow);    } 
    else if( sNow > parseInt(oSelect.getAttribute("timer")) + 4000) { //Reset all;
        oSelect.setAttribute("finder", sToChar.toUpperCase());
        oSelect.setAttribute("timer", sNow); }//reset timer;     
        else {
        oSelect.setAttribute("finder", oSelect.getAttribute("finder") + sToChar.toUpperCase());
        oSelect.setAttribute("timer", sNow); }//update timer;    
    var sFinder = oSelect.getAttribute("finder");
    var arrOpt = oSelect.options;
    var iLen = arrOpt.length;
    for (var i = 0; i < iLen ; i++)     {
      sTest = arrOpt[i].text;
      if (sTest.toUpperCase().indexOf(sFinder) == 0) {
        arrOpt[i].selected = true;
        break; }}
    event.returnValue = false; } 
//  else  {  //Not a digit;  }
}
