﻿function KeySortDropDownList_onkeypress(dropdownlist, caseSensitive, oform) {
    //////////////////////////////////////////////////////////////////////
    //Nomen Omen Est
    //alert(window.event.keyCode);
    if (window.event.keyCode == 13 || window.event.keyCode == 32 || window.event.keyCode == 27) {
        if (document.getElementById(oform) != null) {
            document.getElementById(oform).submit();
            return false;
        }
    }
    //////////////////////////////////////////////////////////////////////

    // check the keypressBuffer attribute is defined on the dropdownlist
    var undefined;

    if (dropdownlist.keypressBuffer == undefined) {
        dropdownlist.keypressBuffer = '';
    }
    // get the key that was pressed
    var key = String.fromCharCode(window.event.keyCode);
    dropdownlist.keypressBuffer += key;
    if (!caseSensitive) {
        // convert buffer to lowercase
        dropdownlist.keypressBuffer = dropdownlist.keypressBuffer.toLowerCase();
    }
    // find if it is the start of any of the options 
    var optionsLength = dropdownlist.options.length;
    for (var n = 0; n < optionsLength; n++) {
        var optionText = dropdownlist.options[n].text;
        if (!caseSensitive) {
            optionText = optionText.toLowerCase();
        }
        if (optionText.indexOf(dropdownlist.keypressBuffer, 0) == 0) {
            dropdownlist.selectedIndex = n;
            return false; // cancel the default behavior since we have selected our own value 
        }
    }
    // reset initial key to be inline with default behavior 
    dropdownlist.keypressBuffer = key;
    return true; // give default behavior
}

