﻿// JScript File

function textBoxDigitMask(sender, objEvent) {             
    var mask = /^\d*$/;
    return testTextBoxMask(sender, objEvent, mask);
}

function textBoxNumberMask(sender, objEvent) {             
    var mask = /^[-+]?\d*(\.\d*)?$/;
    return testTextBoxMask(sender, objEvent, mask);
}

function testTextBoxMask(sender, objEvent, mask) {
    // preconditions
    if ((objEvent === undefined) || (objEvent === null) ||
        (sender === undefined) || (sender === null))
        return true;

    if (mask === undefined)
    {
        if (sender.mask === undefined)
        {
            alert("Mask not specified. Please set text mask in control's \"mask\" attribute.\d\nExample: <input type='text' mask='^{\d{1,5}$' />.");
            return true;
        }
        mask = sender.mask;
    }
    
    var iKeyCode, strKey;

    if (objEvent.keyCode) 
        iKeyCode = objEvent.keyCode;
    else
        iKeyCode = objEvent.which; 
    
    //alert(iKeyCode);
    // don't block navigation keys
    switch (iKeyCode)
    {
        case 8:
        case 9:
        case 10:
        case 13:
        case 35:
        case 36:
        case 37:
        case 38:
        case 39:
        case 40:
        case 46:
            return true;
            break;

        default:
            strKey = String.fromCharCode(iKeyCode);
            var newValue = sender.value + strKey;
            if (newValue.match(mask) === null)
                return false;
            break;
    }
}
