﻿function getKeyChar(key) {
    switch (key) {
        case 96: return "0"; break;
        case 97: return "1"; break;
        case 98: return "2"; break;
        case 99: return "3"; break;
        case 100: return "4"; break;
        case 101: return "5"; break;
        case 102: return "6"; break;
        case 103: return "7"; break;
        case 104: return "8"; break;
        case 105: return "9"; break;
        default: return String.fromCharCode(key); break;
    }
} 
function regexAllow(regex, e) {
    if (window.event) e = window.event;
    var keynum = (e.keyCode) ? e.keyCode : e.which;
    switch (keynum) {
        case 8: //backspace
        case 9: //tab
        case 13: //enter
        case 17: //ctrl
        case 18: //alt
        case 19: //pause/break
        case 20: //capslock
        case 27: //escape
        case 33: //page up
        case 34: //page down
        case 35: //end
        case 36: //home
        case 37: //left arrow
        case 38: //up arrow
        case 39: //right arrow
        case 40: //down arrow
        case 45: //insert
        case 46: //delete
            return true;
        default:
            var keychar = String.fromCharCode(keynum);
            return regex.test(keychar);
    }
}
function isNumericKey(allowDecimal, allowNegative, e) {
    if (window.event) e = window.event;
    var keynum = (e.keyCode) ? e.keyCode : e.which;
    if (e.ctrlKey)
        return true;
    switch (keynum) {
        case 9: //tab
        case 13: //enter
        case 17: //ctrl
        case 18: //alt
        case 19: //pause/break
        case 20: //capslock
        case 27: //escape
        case 33: //page up
        case 34: //page down
        case 35: //end
        case 36: //home
        case 37: //left arrow
        case 38: //up arrow
        case 39: //right arrow
        case 40: //down arrow
        case 8: //backspace
        case 45: //insert
        case 46: //delete
            return true;
        case 96: //0 numpad
        case 97: //1 numpad
        case 98: //2 numpad
        case 99: //3 numpad
        case 100: //4 numpad
        case 101: //5 numpad
        case 102: //6 numpad
        case 103: //7 numpad
        case 104: //8 numpad
        case 105: //9 numpad
        case 49: //1
        case 50: //2
        case 51: //3
        case 52: //4
        case 53: //5
        case 54: //6
        case 55: //7
        case 56: //8
        case 57: //9
        case 48: //0
            return !e.shiftKey;
            break;
        //NUMPAD  
        case 110: //. numpad
        case 190: //.
            return !e.shiftKey && allowDecimal;
            break;
        case 109: //- numpad
        case 189: //-
            return !e.shiftKey && allowNegative;
            break;
        default:
            return false;
    }
}
function numericRange(min, max, e) {
    if (window.event != undefined) e = window.event;
    var srcElement = e.srcElement ? e.srcElement : e.target;
    if (!srcElement.value) {
        return false;
    }
    if (isNaN(srcElement.value)) {
        return false;
    }
    var value = parseFloat(srcElement.value);
    if (value > max || value < min) {
        return false;
    }
    return true;
}
function fireOnEnterPressed(code, e) {
    if (window.event != undefined) e = window.event;
    var keynum = (e.keyCode) ? e.keyCode : e.which;
    if (keynum == 13) {
        eval(code);
        return false;
    }
    return true;
}
function cleanNumber(e, places) {
    if(window.event != undefined) e = window.event;
    var textbox = e.srcElement ? e.srcElement : e.target;
    try {
        if (!places)
            places = 0;
        var result = parseFloat(textbox.value);
        textbox.value = result.toFixed(places);
    }catch(err){}
}