fValidate.prototype.alnum=function(minLen,tCase,numbers,spaces,puncs)
{if(this.typeMismatch('text'))return;tCase=this.setArg(tCase,"a");numbers=(numbers=="true"||numbers=="1");spaces=(spaces=="true"||spaces=="1");var okChars="",arrE=['None','Any','No','No','Any'];if(minLen!='*')
{minLen=parseInt(minLen,10);arrE[0]=minLen;}else{minLen=0;}
switch(tCase.toUpperCase())
{case'U':okChars+='A-Z';arrE[1]='UPPER';break;case'L':okChars+='a-z';arrE[1]='lower';break;case'C':okChars+='A-Z][a-z';arrE[1]='Intial capital';minLen--;break;default:okChars+='a-zA-Z';break;}
if(numbers==true)
{okChars+='0-9';arrE[2]='Yes';}
if(spaces==true)
{okChars+=' ';arrE[3]='Yes';}
if(puncs=="any")
{arrE[4]="Any";}
else if(puncs=="none")
{arrE[4]="None";}
else
{puncs=puncs.replace(/pipe/g,"|");okChars+=puncs;arrE[4]=puncs;}
var length=(minLen!="*")?"{"+ minLen+",}":"+";var regex=(puncs=="any")?new RegExp("^(["+ okChars+"]|[^a-zA-Z0-9\\s])"+ length+"$"):new RegExp("^["+ okChars+"]"+ length+"$");if(!regex.test(this.elem.value))
{this.throwError([this.elem.value,this.elem.fName,arrE[0],arrE[1],arrE[2],arrE[3],arrE[4]]);}}
fValidate.prototype.ssn=function()
{if(this.typeMismatch('text'))return;if(!(/^\d{3}\-\d{2}\-\d{4}$/.test(this.elem.value)))
this.throwError();}
fValidate.prototype.zip=function(sep)
{if(this.typeMismatch('text'))return;sep=this.setArg(sep,"- ");var regex=new RegExp("^[0-9]{5}(|["+ sep.toPattern()+"][0-9]{4})?$");if(!regex.test(this.elem.value))
{this.throwError();}}
fValidate.prototype.phone=function(format)
{if(this.typeMismatch('text'))return;format=this.setArg(format,0);var patterns=[/^(\(?\d\d\d\)?)?[ -]?\d\d\d[ -]?\d\d\d\d$/,/^(\(\d\d\d\) )?\d\d\d[ -]\d\d\d\d$/];if(!patterns[format].test(this.elem.value))
{if(format==1)
{this.throwError();}else{this.throwError([],1);}}}
