var reWhitespace=/^\s+$/;var reLetter=/^[áéíóúña-zÁÉÍÓÚÑA-Z]$/;var reAlphabetic=/^[áéíóúña-zÁÉÍÓÚÑA-Z]+$/;var reAlphanumeric=/^[áéíóúña-zÁÉÍÓÚÑA-Z0-9]+$/;var reDigit=/^\d$/;var reLetterOrDigit=/^([áéíóúña-zÁÉÍÓÚÑA-Z]|\d)$/;var reInteger=/^\d+$/;var reSignedInteger=/^[+|-]?\d+$/;var reFloat=/^((\d+(\.\d*)?)|((\d*\.)?\d+))$/;var reSignedFloat=/^(([+|-]?\d+(\.\d*)?)|([+|-]?(\d*\.)?\d+))$/;var reEmail=/^.+\@.+\..+$/;var digits="0123456789";var lowercaseLetters="abcdefghijklmnopqrstuvwxyzáéíóúñ";var uppercaseLetters="ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÍÓÚÑ";var whitespace=" \t\n\r";var decimalPointDelimiter=".";var phoneNumberDelimiters="()- ";var validUSPhoneChars=digits+phoneNumberDelimiters;var validWorldPhoneChars=digits+phoneNumberDelimiters+"+";var SSNDelimiters="- ";var validSSNChars=digits+SSNDelimiters;var digitsInSocialSecurityNumber=9;var digitsInUSPhoneNumber=10;var ZIPCodeDelimiters="-";var ZIPCodeDelimeter="-"

var validZIPCodeChars=digits+ZIPCodeDelimiters

var digitsInZIPCode1=5

var digitsInZIPCode2=9

var creditCardDelimiters=" "

var mPrefix="Você não dígito um valor em "

var mSuffix="\n Leste é um campo requerido, por favor escreva agora.\n"

var pEntryPrompt="Por favor digite "

var iPrefix="Você digito informação invalida em "

var iSuffix="\n Leste é um campo requerido, por favor escreva agora.\n"

var defaultEmptyOK=false

function makeArray(n){for(var i=1;i<=n;i++){this[i]=0}

return this}

var daysInMonth=makeArray(12);daysInMonth[1]=31;daysInMonth[2]=29;daysInMonth[3]=31;daysInMonth[4]=30;daysInMonth[5]=31;daysInMonth[6]=30;daysInMonth[7]=31;daysInMonth[8]=31;daysInMonth[9]=30;daysInMonth[10]=31;daysInMonth[11]=30;daysInMonth[12]=31;function isEmpty(s){return((s==null)||(s.length==0))}

function isWhitespace(s){return(isEmpty(s)||reWhitespace.test(s));}

function stripCharsInRE(s,bag){return s.replace(bag,"")}

function stripCharsInBag(s,bag){var i;var returnString="";for(i=0;i<s.length;i++){var c=s.charAt(i);if(bag.indexOf(c)==-1)returnString+=c;}

return returnString;}

function stripCharsNotInBag(s,bag){var i;var returnString="";for(i=0;i<s.length;i++){var c=s.charAt(i);if(bag.indexOf(c)!=-1)returnString+=c;}

return returnString;}

function stripWhitespace(s){return stripCharsInBag(s,whitespace)}

function charInString(c,s){for(i=0;i<s.length;i++){if(s.charAt(i)==c)return true;}

return false}

function stripInitialWhitespace(s){var i=0;while((i<s.length)&&charInString(s.charAt(i),whitespace))

i++;return s.substring(i,s.length);}

function stripInitialCeros(s){var i=0;while((i<s.length)&&charInString(s.charAt(i),'0'))

i++;return s.substring(i,s.length);}

function isLetter(c){return reLetter.test(c)}

function isDigit(c){return reDigit.test(c)}

function isLetterOrDigit(c){return reLetterOrDigit.test(c)}

function isInteger(s){var i;if(isEmpty(s))

if(isInteger.arguments.length==1)return defaultEmptyOK;else return(isInteger.arguments[1]==true);return reInteger.test(s)}

function isSignedInteger(s){if(isEmpty(s))

if(isSignedInteger.arguments.length==1)return defaultEmptyOK;else return(isSignedInteger.arguments[1]==true);else{return reSignedInteger.test(s)}}

function isPositiveInteger(s){var secondArg=defaultEmptyOK;if(isPositiveInteger.arguments.length>1)

secondArg=isPositiveInteger.arguments[1];return(isSignedInteger(s,secondArg)&&((isEmpty(s)&&secondArg)||(parseInt(s)>0)));}

function isNonnegativeInteger(s){var secondArg=defaultEmptyOK;if(isNonnegativeInteger.arguments.length>1)

secondArg=isNonnegativeInteger.arguments[1];return(isSignedInteger(s,secondArg)&&((isEmpty(s)&&secondArg)||(parseInt(s)>=0)));}

function isNegativeInteger(s){var secondArg=defaultEmptyOK;if(isNegativeInteger.arguments.length>1)

secondArg=isNegativeInteger.arguments[1];return(isSignedInteger(s,secondArg)&&((isEmpty(s)&&secondArg)||(parseInt(s)<0)));}

function isNonpositiveInteger(s){var secondArg=defaultEmptyOK;if(isNonpositiveInteger.arguments.length>1)

secondArg=isNonpositiveInteger.arguments[1];return(isSignedInteger(s,secondArg)&&((isEmpty(s)&&secondArg)||(parseInt(s)<=0)));}

function isFloat(s){if(isEmpty(s))

if(isFloat.arguments.length==1)return defaultEmptyOK;else return(isFloat.arguments[1]==true);return reFloat.test(s)}

function isSignedFloat(s){if(isEmpty(s))

if(isSignedFloat.arguments.length==1)return defaultEmptyOK;else return(isSignedFloat.arguments[1]==true);else{return reSignedFloat.test(s)}}

function isAlphabetic(s){var i;if(isEmpty(s))

if(isAlphabetic.arguments.length==1)return defaultEmptyOK;else return(isAlphabetic.arguments[1]==true);else{return reAlphabetic.test(s)}}

function isAlphanumeric(s){var i;if(isEmpty(s))

if(isAlphanumeric.arguments.length==1)return defaultEmptyOK;else return(isAlphanumeric.arguments[1]==true);else{return reAlphanumeric.test(s)}}

function reformat(s){var arg;var sPos=0;var resultString="";for(var i=1;i<reformat.arguments.length;i++){arg=reformat.arguments[i];if(i%2==1)resultString+=arg;else{resultString+=s.substring(sPos,sPos+arg);sPos+=arg;}}

return resultString;}

function isSSN(s){if(isEmpty(s))

if(isSSN.arguments.length==1)return defaultEmptyOK;else return(isSSN.arguments[1]==true);return(isInteger(s)&&s.length==digitsInSocialSecurityNumber)}

function isUSPhoneNumber(s){if(isEmpty(s))

if(isUSPhoneNumber.arguments.length==1)return defaultEmptyOK;else return(isUSPhoneNumber.arguments[1]==true);return(isInteger(s)&&s.length==digitsInUSPhoneNumber)}

function isInternationalPhoneNumber(s){if(isEmpty(s))

if(isInternationalPhoneNumber.arguments.length==1)return defaultEmptyOK;else return(isInternationalPhoneNumber.arguments[1]==true);return(isPositiveInteger(s))}

function isZIPCode(s){if(isEmpty(s))

if(isZIPCode.arguments.length==1)return defaultEmptyOK;else return(isZIPCode.arguments[1]==true);return(isInteger(s)&&((s.length==digitsInZIPCode1)||(s.length==digitsInZIPCode2)))}

function isEmail(s){if(isEmpty(s))

if(isEmail.arguments.length==1)return defaultEmptyOK;else return(isEmail.arguments[1]==true);else{return reEmail.test(s)}}

function isYear(s){if(isEmpty(s))

if(isYear.arguments.length==1)return defaultEmptyOK;else return(isYear.arguments[1]==true);if(!isNonnegativeInteger(s))return false;return((s.length==2)||(s.length==4));}

function isIntegerInRange(s,a,b){if(isEmpty(s))

if(isIntegerInRange.arguments.length==1)return defaultEmptyOK;else return(isIntegerInRange.arguments[1]==true);if(!isInteger(s,false))return false;var num=parseInt(s);return((num>=a)&&(num<=b));}

function isMonth(s){if(isEmpty(s))

if(isMonth.arguments.length==1)return defaultEmptyOK;else return(isMonth.arguments[1]==true);return isIntegerInRange(stripInitialCeros(s),1,12);}

function isDay(s){if(isEmpty(s))

if(isDay.arguments.length==1)return defaultEmptyOK;else return(isDay.arguments[1]==true);return isIntegerInRange(stripInitialCeros(s),1,31);}

function daysInFebruary(year){return(((year%4==0)&&((!(year%100==0))||(year%400==0)))?29:28);}

function isDate(year,month,day){if(!(isYear(year,false)&&isMonth(month,false)&&isDay(day,false)))return false;var intYear=parseInt(year);var intMonth=parseInt(month);var intDay=parseInt(day);if(intDay>daysInMonth[intMonth])return false;if((intMonth==2)&&(intDay>daysInFebruary(intYear)))return false;return true;}

function getRadioButtonValue(theField){for(var i=0;i<theField.length;i++){if(theField[i].checked){return theField[i].value}}

return false}

function prompt(s){window.status=s}

function promptEntry(s){window.status=pEntryPrompt+s}

function warnEmpty(theField,s){alert(mPrefix+s+mSuffix)

theField.focus()

return false}

function warnInvalid(theField,s){alert(iPrefix+s+iSuffix)

if(theField.type=="text"){theField.select()}

return false}

function checkString(theField,s,emptyOK){if(checkString.arguments.length==2)emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))return true;if(isWhitespace(theField.value))

return warnEmpty(theField,s);else return true;}

function checkInteger(theField,s,emptyOK){if(checkInteger.arguments.length==2)emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))return true;if(!isInteger(theField.value,false))

return warnInvalid(theField,s);else return true;}

function checkFloat(theField,s,emptyOK){if(checkFloat.arguments.length==2)emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))return true;if(!isFloat(theField.value,false))

return warnInvalid(theField,s);else return true;}

function checkEmail(theField,s,emptyOK){if(checkEmail.arguments.length==2)emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))return true;else if(!isEmail(theField.value,false))

return warnInvalid(theField,s);else return true;}

function checkYear(theField,s,emptyOK){if(checkYear.arguments.length==2)emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))return true;if(!isYear(theField.value,false))

return warnInvalid(theField,s);else return true;}

function checkMonth(theField,s,emptyOK){if(checkMonth.arguments.length==2)emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))return true;if(!isMonth(theField.value,false))

return warnInvalid(theField,s);else return true;}

function checkDay(theField,s,emptyOK){if(checkDay.arguments.length==2)emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))return true;if(!isDay(theField.value,false))

return warnInvalid(theField,s);else return true;}

function checkDate(theField,s,emptyOK){if(checkDate.arguments.length==2)emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))return true;if(theField.value.length<=8)return warnInvalid(theField,s);var regExpDate=new RegExp("[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9]");if(regExpDate.test(theField.value)==false){return warnInvalid(theField,s);}

var myDateArray=theField.value.split("/");if(!isDate(myDateArray[2],myDateArray[0],myDateArray[1]))

return warnInvalid(theField,s);return true;}

function checkCheckboxList(theForm,theField,s){for(i=0;i<theForm.length;i++){var e=0;var returnValue=false;e=theForm.elements[i];if(e.type=='checkbox'&&e.name==theField.name){if(theField.checked){returnValue=true;}}}

if(returnValue){return true;}

return warnEmpty(theField,s);}

function checkCheckbox(theField,s){if(theField.checked){return true;}

return warnEmpty(theField,s);}

function checkRadio(theField,s){var len;len=parseInt(theField.length);if(isNaN(len)){return(theField.checked)}

for(var n=0;n<len;n++){if(theField[n].checked){return true;}}

return warnInvalid(theField,s);}

function checkList(theField,s,emptyOK,titulo){var len;len=parseInt(theField.length);if(isNaN(len)){return false;}

if(titulo==true||titulo==null){inicio=1;}else{inicio=0;}

for(var n=inicio;n<len;n++){if((theField.options[n].selected)&&(!isEmpty(theField.options[n].value))){return true;}}

return warnInvalid(theField,s);}

function checkCreditCard(theRadioField,theField,s){var cardType=getRadioButtonValue(theRadioField)

var normalizedCCN=stripCharsInBag(theField.value,creditCardDelimiters)

if(!isCardMatch(cardType,normalizedCCN))

return warnInvalid(theField,s);else{theField.value=normalizedCCN

return true}}

function isCreditCard(st){if(st.length>19)

return(false);sum=0;mul=1;l=st.length;for(i=0;i<l;i++){digit=st.substring(l-i-1,l-i);tproduct=parseInt(digit,10)*mul;if(tproduct>=10)

sum+=(tproduct%10)+1;else

sum+=tproduct;if(mul==1)

mul++;else

mul--;}

if((sum%10)==0)

return(true);else

return(false);}

function isVisa(cc){if(((cc.length==16)||(cc.length==13))&&(cc.substring(0,1)==4))

return isCreditCard(cc);return false;}

function isMasterCard(cc){firstdig=cc.substring(0,1);seconddig=cc.substring(1,2);if((cc.length==16)&&(firstdig==5)&&((seconddig>=1)&&(seconddig<=5)))

return isCreditCard(cc);return false;}

function isAmericanExpress(cc){firstdig=cc.substring(0,1);seconddig=cc.substring(1,2);if((cc.length==15)&&(firstdig==3)&&((seconddig==4)||(seconddig==7)))

return isCreditCard(cc);return false;}

function isDinersClub(cc){firstdig=cc.substring(0,1);seconddig=cc.substring(1,2);if((cc.length==14)&&(firstdig==3)&&((seconddig==0)||(seconddig==6)||(seconddig==8)))

return isCreditCard(cc);return false;}

function isAnyCard(cc){if(!isCreditCard(cc))

return false;if(!isMasterCard(cc)&&!isVisa(cc)&&!isAmericanExpress(cc)&&!isDinersClub(cc)){return false;}

return true;}

function isCardMatch(cardType,cardNumber){cardType=cardType.toUpperCase();var doesMatch=true;if((cardType=="VISA")&&(!isVisa(cardNumber)))

doesMatch=false;if((cardType=="MASTERCARD")&&(!isMasterCard(cardNumber)))

doesMatch=false;if(((cardType=="AMERICANEXPRESS")||(cardType=="AMEX"))&&(!isAmericanExpress(cardNumber)))doesMatch=false;if((cardType=="DISCOVER")&&(!isDiscover(cardNumber)))

doesMatch=false;return doesMatch;}