
// <input type=text name=ssn onkeypress="return autoMask(this,event, '###-##-####');">
// this will force #'s, not allowing alphas where the #'s are, and auto add -'s

function sep3(vfield, hfield) {
    if (getKeyCode(event) != 9 && getKeyCode(event) != 16) {
        vfield.value = vfield.value.replace(/,/g, '');
        hfield.value = vfield.value;
        vfield.value = FormatNumberBy3(vfield.value);
    }
    return true;
}

function sep3init(vfield) {
    vfield.value = FormatNumberBy3(vfield.value);
    return true;
}

function sep3AndColor(vfield) {
    sep3init(vfield);
    if (vfield.value.length > 0 && vfield.value.charAt(0) == '(') {
        vfield.style.color='red';
    }
}

function sep3init2(vfield, hfield) {
    vfield.value = FormatNumberBy3(hfield.value);
    return true;
}

function autoMask(field, event, sMask) {
    //var sMask = "**?##?####";

    if(getKeyCode(event) == 13)
        return true;

    var KeyTyped = String.fromCharCode(getKeyCode(event));
    var targ = getTarget(event);
    keyCount = targ.value.length;
    if(keyCount == sMask.length)
    {
        return false;
    }

    if((sMask.charAt(keyCount+1) == ''))
    {
        return true;
    }

    if ((sMask.charAt(keyCount+1) != '#') && (sMask.charAt(keyCount+1) != 'A' ) && (sMask.charAt(keyCount+1) != '.' ) )
    {
        field.value = field.value + KeyTyped + sMask.charAt(keyCount+1);
        return false;
    }

    if (sMask.charAt(keyCount) == '*')
        return true;

    if (sMask.charAt(keyCount) == KeyTyped)
    {
        return true;
    }

    if ((sMask.charAt(keyCount) == '#') && isNumeric(KeyTyped))
        return true;

    if ((sMask.charAt(keyCount) == 'A') && isAlpha(KeyTyped))
        return true;

    if ((sMask.charAt(keyCount+1) == '?') )
    {
        field.value = field.value + KeyTyped + sMask.charAt(keyCount+1);
        return true;
    }
    if (KeyTyped.charCodeAt(0) < 32) return true;
        return false;

}
function getTarget(e) {
    // IE5
    if (e.srcElement) {
        return e.srcElement;
    }
    if (e.target) {
        return e.target;
    }
}

function getKeyCode(e) {
    //IE5
    if (e.srcElement) {
        return e.keyCode
    }
    // NC5
    if (e.target) {
        return e.which
    }
}

function isNumeric(c)
{
    var sNumbers = "01234567890";
    if (sNumbers.indexOf(c) == -1)
        return false;
    else return true;

}

function isAlpha(c)
{
    var lCode = c.charCodeAt(0);
    //        alert(lCode);
    //        if (lCode >= 65 && lCode <= 122 )
    if ((lCode >= 1575 && lCode <= 1740) || lCode == 32)
    {
        return true;
    }
    else
        return false;
}

function isPunct(c)
{
    var lCode = c.charCodeAt(0);
    if (lCode >= 32 && lCode <= 47 )
    {
        return true;
    }
    else
        return false;

}
