<PUBLIC:COMPONENT id="bhvSelectText" urn="maf:SelectText">
  <PUBLIC:PROPERTY NAME="NoSelectColor" />
  <PUBLIC:METHOD NAME="fnKillTimeout" />
  <PUBLIC:ATTACH EVENT="onkeypress" handler="doKeypress" />
  <PUBLIC:ATTACH EVENT="oncontentready" ONEVENT="event_oncontentready()" />

<SCRIPT language="JScript">

var global = window.document
global.oTimeout = ""
global.sCboFind = ""

function fnStartTimeout(oCmb){
var iOpak
var oSelected = -1
var oSelect = -1 

  try {
    this.focus();
  }
  catch (err) {
  }  
  if(global.oTimeout==""){
    global.oTimeout=window.setTimeout("try {document.all."+ this.id + ".fnKillTimeout();} catch (err) {};", 1000, "JScript")
  }

  global.sCboFind = global.sCboFind + String.fromCharCode(window.event.keyCode).toLowerCase();
  
  for(iOpak = oCmb.options.length-1; iOpak >= 0; iOpak--){
    if(oCmb.options[iOpak].text.substr(0,global.sCboFind.length).toLowerCase()==global.sCboFind){     
      if (NoSelectColor!=oCmb.options[iOpak].style.color){
        oSelect=iOpak;         
      }      
    }
    if (oCmb.options[iOpak].selected==true) {
      oSelected=iOpak;       
    }    
    oCmb.options[iOpak].selected=false;      
  }  
  if (oSelect==-1 && oSelected!=-1) {
    oCmb.options[oSelected].selected=true;
  } else if (oSelect!=-1){
    oCmb.options[oSelect].selected=true;
  }
}

function fnKillTimeout(){
  if(global.oTimeout!=""){
    window.clearTimeout(global.oTimeout);
    global.oTimeout="";
    global.sCboFind="";
    
    if (this.onchange){
      var selectedIndex = this.selectedIndex;
      if (selectedIndex>=0){
        this.focus();
        this.options[selectedIndex].selected=true;
        this.onchange();
      }
    }
  }
}

function newid()
{
  var id
  do
    id = 'id' + Math.random().toString().substr(2, 10)
  while (global.all(id))
  return id
}

function event_oncontentready()
{
  if (this.id == '')
    this.id = newid()
}

function doKeypress(){
  fnStartTimeout(this);
  event.returnValue = false;
}
</SCRIPT>

</PUBLIC:COMPONENT>