// email kireol at yahoo.com
// autoMask - an adaption of anyMask
// <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 autoMask(field, event, sMask) {
	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) != '#') && (sMask.charAt(keyCount+1) != 'A')){
		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) {
	if (e.srcElement){
		return e.srcElement;
	}
    if (e.target){
		return e.target;
	}
}

function getKeyCode(e){
	if (e.srcElement){
		return e.keyCode
	}
	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);
	if (lCode >= 65 && lCode <= 122 ){
		return true;
	}else{
		return false;
	}
}

function isPunct(c){
	var lCode = c.charCodeAt(0);
	if (lCode >= 32 && lCode <= 47 ){
		return true;
	}else{
		return false;
	}
}