function anyMask(event, sMask) 
{
	//var sMask = "**?##?####";
	var KeyTyped = String.fromCharCode(getKeyCode(event));
	var targ = getTarget(event);
	
	keyCount = targ.value.length;
	
	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) == 'B') && isAlpha(KeyTyped))
         return true; 
    
	if ((sMask.charAt(keyCount) == 'x') && isAlphaNumeric(KeyTyped)) 
	   return true; 
	
	if ((sMask.charAt(keyCount) == 'a') && isLowerAlpha(KeyTyped))
         return true; 
    
	if ((sMask.charAt(keyCount) == 'A') && isUpperAlpha(KeyTyped))
         return true; 
    
    if ((sMask.charAt(keyCount) == '?') && isPunct(KeyTyped))
         return true; 
         
	if ((sMask.charAt(keyCount) == 'u') && isURL(KeyTyped)) 
	   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)
{
	if ("01234567890".indexOf(c) == -1)
		return false;
	else
		return true;
	
}

function isAlpha(c)
{
	var lCode = c.charCodeAt(0);
	return (isLowerAlpha(c) || isUpperAlpha(c));
}  

function isAlphaNumeric(c)
{
	var lCode = c.charCodeAt(0);
	return ( isAlpha(c) || isNumeric(c));
}  

function isLowerAlpha(c)
{
	var lCode = c.charCodeAt(0);
	return (lCode >= 97 && lCode <= 122);
}  

function isUpperAlpha(c)
{
	var lCode = c.charCodeAt(0);
	return (lCode >= 65 && lCode <= 90);
}  

function isURL(c)
{
	var lCode = c.charCodeAt(0);
	return ( (lCode >= 97 && lCode <= 122) || (lCode >= 48 && lCode <= 57) || lCode == 45);
}  

function isPunct(c)
{
	var lCode = c.charCodeAt(0);
	return (lCode >= 32 && lCode <= 47);

}
 
//  End -->

