var reWhitespace=/^\s+$/
var reLetter=/^[a-zA-Z]$/
var reAlphabetic=/^[a-zA-Z]+$/
var reAlphanumeric=/^[a-zA-Z0-9]+$/
var reDigit=/^\d/
var reLetterOrDigit=/^([a-zA-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 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="You did not enter a value into the "
var mSuffix=" field. This is a required field. Please enter it now."
var sUSLastName="Last Name"
var sUSFirstName="First Name"
var sWorldLastName="Family Name"
var sWorldFirstName="Given Name"
var sTitle="Title"
var sCompanyName="Company Name"
var sUSAddress="Street Address"
var sWorldAddress="Address"
var sCity="City"
var sStateCode="State Code"
var sWorldState="State, Province, or Prefecture"
var sCountry="Country"
var sZIPCode="ZIP Code"
var sWorldPostalCode="Postal Code"
var sPhone="Phone Number"
var sFax="Fax Number"
var sDateOfBirth="Date of Birth"
var sExpirationDate="Expiration Date"
var sEmail="Email"
var sSSN="Social Security Number"
var sCreditCardNumber="Credit Card Number"
var sOtherInfo="Other Information"
var iStateCode="This field must be a valid two character U.S. state abbreviation (like CA for California). Please reenter it now."
var iZIPCode="This field must be a 5 or 9 digit U.S. ZIP Code (like 94043). Please reenter it now."
var iUSPhone="This field must be a 10 digit U.S. phone number (like 415 555 1212). Please reenter it now."
var iWorldPhone="This field must be a valid international phone number. Please reenter it now."
var iSSN="This field must be a 9 digit U.S. social security number (like 123 45 6789). Please reenter it now."
var iEmail="This field must be a valid email address (like foo@bar.com). Please reenter it now."
var iCreditCardPrefix="This is not a valid "
var iCreditCardSuffix=" credit card number. (Click the link on this form to see a list of sample numbers.) Please reenter it now."
var iDay="This field must be a day number between 1 and 31.  Please reenter it now."
var iMonth="This field must be a month number between 1 and 12.  Please reenter it now."
var iYear="This field must be a 2 or 4 digit year number.  Please reenter it now."
var iDatePrefix="The Day, Month, and Year for "
var iDateSuffix=" do not form a valid date.  Please reenter them now."
var pEntryPrompt="Please enter a "
var pStateCode="2 character code (like CA)."
var pZIPCode="5 or 9 digit U.S. ZIP Code (like 94043)."
var pUSPhone="10 digit U.S. phone number (like 415 555 1212)."
var pWorldPhone="international phone number."
var pSSN="9 digit U.S. social security number (like 123 45 6789)."
var pEmail="valid email address (like foo@bar.com)."
var pCreditCard="valid credit card number."
var pDay="day number between 1 and 31."
var pMonth="month number between 1 and 12."
var pYear="2 or 4 digit year number."
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; var USStateCodeDelimiter="|"; var USStateCodes="AL|AK|AS|AZ|AR|CA|CO|CT|DE|DC|FM|FL|GA|GU|HI|ID|IL|IN|IA|KS|KY|LA|ME|MH|MD|MA|MI|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|MP|OH|OK|OR|PW|PA|PR|RI|SC|SD|TN|TX|UT|VT|VI|VA|WA|WV|WI|WY|AE|AA|AE|AE|AP"
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 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 isStateCode(s)
{if (isEmpty(s))
if (isStateCode.arguments.length == 1) 
return defaultEmptyOK;      
else return (isStateCode.arguments[1] == true);   
return ((USStateCodes.indexOf(s) != -1) && (s.indexOf(USStateCodeDelimiter) == -1) )}
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 (s, 1, 12);}
function isDay (s)
{if (isEmpty(s))
if (isDay.arguments.length == 1) return defaultEmptyOK;      else return (isDay.arguments[1] == true);   
return isIntegerInRange (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 prompt (s)
{window.status=s}
function promptEntry (s)
{window.status=pEntryPrompt + s}
function warnEmpty (theField, s)
{theField.focus()
alert(mPrefix + s + mSuffix)
return false}
function warnInvalid (theField, s)
{theField.focus()
theField.select()
alert(s)
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 checkStateCode (theField, emptyOK)
{if (checkStateCode.arguments.length == 1) emptyOK=defaultEmptyOK;   if ((emptyOK == true) && (isEmpty(theField.value))) return true;
else
{theField.value=theField.value.toUpperCase();      if (!isStateCode(theField.value, false)) 
return warnInvalid (theField, iStateCode);      else return true;  }}
function reformatZIPCode (ZIPString)
{if (ZIPString.length == 5) return ZIPString;   else return (reformat (ZIPString, "", 5, "-", 4));}
function checkZIPCode (theField, emptyOK)
{if (checkZIPCode.arguments.length == 1) emptyOK=defaultEmptyOK;   if ((emptyOK == true) && (isEmpty(theField.value))) return true;   else
{var normalizedZIP=stripCharsInBag(theField.value, ZIPCodeDelimiters)
 if (!isZIPCode(normalizedZIP, false))
return warnInvalid (theField, iZIPCode);     else 
 {theField.value=reformatZIPCode(normalizedZIP)
    return true;    }}}
function reformatUSPhone (USPhone)
{return (reformat (USPhone, "(", 3, ") ", 3, "-", 4))}
function checkUSPhone (theField, emptyOK)
{if (checkUSPhone.arguments.length == 1) emptyOK=defaultEmptyOK;   if ((emptyOK == true) && (isEmpty(theField.value))) return true;   else
{var normalizedPhone=stripCharsInBag(theField.value, phoneNumberDelimiters)
  if (!isUSPhoneNumber(normalizedPhone, false))
return warnInvalid (theField, iUSPhone);      else
{theField.value=reformatUSPhone(normalizedPhone)
     return true;}}}
function checkInternationalPhone (theField, emptyOK)
{if (checkInternationalPhone.arguments.length == 1) emptyOK=defaultEmptyOK;   if ((emptyOK == true) && (isEmpty(theField.value))) 
return true;
else
{if (!isInternationalPhoneNumber(theField.value, false)) 
return warnInvalid (theField, iWorldPhone);
else return true;}}
function checkEmail (theField, emptyOK)
{if (checkEmail.arguments.length == 1) emptyOK=defaultEmptyOK;
if ((emptyOK == true) && (isEmpty(theField.value))) 
return true;
else if (!isEmail(theField.value, false)) 
return warnInvalid (theField, iEmail);   
else
return true;}
function reformatSSN (SSN)
{return (reformat (SSN, "", 3, "-", 2, "-", 4))}
function checkSSN (theField, emptyOK)
{if (checkSSN.arguments.length == 1) emptyOK=defaultEmptyOK;
if ((emptyOK == true) && (isEmpty(theField.value)))
return true;   
else
{var normalizedSSN=stripCharsInBag(theField.value, SSNDelimiters)
  if (!isSSN(normalizedSSN, false))
return warnInvalid (theField, iSSN);      else
{theField.value=reformatSSN(normalizedSSN)
     return true;     }}}
function checkYear (theField, emptyOK)
{if (checkYear.arguments.length == 1) emptyOK=defaultEmptyOK;   if ((emptyOK == true) && (isEmpty(theField.value))) return true;   if (!isYear(theField.value, false))
return warnInvalid (theField, iYear);
else return true;}
function checkMonth (theField, emptyOK)
{if (checkMonth.arguments.length == 1) emptyOK=defaultEmptyOK;
if ((emptyOK == true) && (isEmpty(theField.value))) return true;
if (!isMonth(theField.value, false))
return warnInvalid (theField, iMonth);
else return true;}
function checkDay (theField, emptyOK)
{if (checkDay.arguments.length == 1) emptyOK=defaultEmptyOK;
if ((emptyOK == true) && (isEmpty(theField.value))) return true;
if (!isDay(theField.value, false))
return warnInvalid (theField, iDay);
else return true;}
function checkDate (yearField, monthField, dayField, labelString, OKtoOmitDay)
{if (checkDate.arguments.length == 4) OKtoOmitDay=false;
if (!isYear(yearField.value)) return warnInvalid (yearField, iYear);
if (!isMonth(monthField.value)) return warnInvalid (monthField, iMonth);
if ( (OKtoOmitDay == true) && isEmpty(dayField.value) ) return true;
else if (!isDay(dayField.value))
return warnInvalid (dayField, iDay);
if (isDate (yearField.value, monthField.value, dayField.value))
  return true;
alert (iDatePrefix + labelString + iDateSuffix)
return false}
function getRadioButtonValue (radio)
{for (var i=0; i < radio.length; i++)
{if (radio[i].checked) {break}
}
return radio[i].value}
function checkCreditCard (radio, theField)
{var cardType=getRadioButtonValue (radio)
var normalizedCCN=stripCharsInBag(theField.value, creditCardDelimiters)
if (!isCardMatch(cardType, normalizedCCN))
return warnInvalid (theField, iCreditCardPrefix + cardType + iCreditCardSuffix);
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 isCarteBlanche(cc)
{return isDinersClub(cc);}
function isDiscover(cc)
{first4digs=cc.substring(0,4);
if ((cc.length == 16) && (first4digs == "6011"))
return isCreditCard(cc);
return false;}
function isEnRoute(cc)
{first4digs=cc.substring(0,4);
if ((cc.length == 15) &&
 ((first4digs == "2014") ||
  (first4digs == "2149")))
return isCreditCard(cc);
return false;}
function isJCB(cc)
{first4digs=cc.substring(0,4);
if ((cc.length == 16) &&
 ((first4digs == "3088") ||
  (first4digs == "3096") ||
  (first4digs == "3112") ||
  (first4digs == "3158") ||
  (first4digs == "3337") ||
  (first4digs == "3528")))
return isCreditCard(cc);
return false;}
function isAnyCard(cc)
{if (!isCreditCard(cc))
return false;
if (!isMasterCard(cc) && !isVisa(cc) && !isAmericanExpress(cc) && !isDinersClub(cc) &&
 !isDiscover(cc) && !isEnRoute(cc) && !isJCB(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;
if ((cardType == "JCB") && (!isJCB(cardNumber)))
doesMatch=false;
if ((cardType == "DINERS") && (!isDinersClub(cardNumber)))
doesMatch=false;
if ((cardType == "CARTEBLANCHE") && (!isCarteBlanche(cardNumber)))
doesMatch=false;
if ((cardType == "ENROUTE") && (!isEnRoute(cardNumber)))
doesMatch=false;
return doesMatch;}
function IsCC (st) {return isCreditCard(st);}
function IsVisa (cc)  {return isVisa(cc);}
function IsVISA (cc)  {return isVisa(cc);}
function IsMasterCard (cc)  {return isMasterCard(cc);}
function IsMastercard (cc)  {return isMasterCard(cc);}
function IsMC (cc)  {return isMasterCard(cc);}
function IsAmericanExpress (cc)  {return isAmericanExpress(cc);}
function IsAmEx (cc)  {return isAmericanExpress(cc);}
function IsDinersClub (cc)  {return isDinersClub(cc);}
function IsDC (cc)  {return isDinersClub(cc);}
function IsDiners (cc)  {return isDinersClub(cc);}
function IsCarteBlanche (cc)  {return isCarteBlanche(cc);}
function IsCB (cc)  {return isCarteBlanche(cc);}
function IsDiscover (cc)  {return isDiscover(cc);}
function IsEnRoute (cc)  {return isEnRoute(cc);}
function IsenRoute (cc)  {return isEnRoute(cc);}
function IsJCB (cc)  {return isJCB(cc);}
function IsAnyCard(cc)  {return isAnyCard(cc);}
function IsCardMatch (cardType, cardNumber)  {return isCardMatch (cardType, cardNumber);}

function checkFullDate(dateFieldValue, datestyle) {
if (chkdate(dateFieldValue, datestyle) == false) {
return false;
}
else {
return true;
   }
}
function chkdate(dateFieldValue, datestyle) {
var strDatestyle = datestyle; // "US" United States or "EU" European date style
var strDate;
var strDateArray;
var strDay;
var strMonth;
var strYear;
var intday;
var intMonth;
var intYear;
var booFound = false;
var strSeparatorArray = new Array("-"," ","/",".");
var intElementNr;
var err = 0;
var strMonthArray = new Array(12);
strMonthArray[0] = "Jan";
strMonthArray[1] = "Feb";
strMonthArray[2] = "Mar";
strMonthArray[3] = "Apr";
strMonthArray[4] = "May";
strMonthArray[5] = "Jun";
strMonthArray[6] = "Jul";
strMonthArray[7] = "Aug";
strMonthArray[8] = "Sep";
strMonthArray[9] = "Oct";
strMonthArray[10] = "Nov";
strMonthArray[11] = "Dec";
strDate = dateFieldValue;
if (strDate.length < 1) {
return true;
}
for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
strDateArray = strDate.split(strSeparatorArray[intElementNr]);
if (strDateArray.length != 3) {
err = 1;
return false;
}
else {
strDay = strDateArray[0];
strMonth = strDateArray[1];
strYear = strDateArray[2];
}
booFound = true;
   }
}
if (booFound == false) {
if (strDate.length>5) {
strDay = strDate.substr(0, 2);
strMonth = strDate.substr(2, 2);
strYear = strDate.substr(4);
   }
}
if (strYear.length == 2) {
strYear = '20' + strYear;
}
// US style
if (strDatestyle == "US") {
strTemp = strDay;
strDay = strMonth;
strMonth = strTemp;
}
intday = parseInt(strDay, 10);
if (isNaN(intday)) {
err = 2;
return false;
}
intMonth = parseInt(strMonth, 10);
if (isNaN(intMonth)) {
for (i = 0;i<12;i++) {
if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
intMonth = i+1;
strMonth = strMonthArray[i];
i = 12;
   }
}
if (isNaN(intMonth)) {
err = 3;
return false;
   }
}
intYear = parseInt(strYear, 10);
if (isNaN(intYear)) {
err = 4;
return false;
}
if (intMonth>12 || intMonth<1) {
err = 5;
return false;
}
if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
err = 6;
return false;
}
if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
err = 7;
return false;
}
if (intMonth == 2) {
if (intday < 1) {
err = 8;
return false;
}
if (LeapYear(intYear) == true) {
if (intday > 29) {
err = 9;
return false;
}
}
else {
if (intday > 28) {
err = 10;
return false;
}
}
}
if (strDatestyle == "US") {
dateFieldValue = strMonthArray[intMonth-1] + " " + intday+" " + strYear;
}
else {
dateFieldValue = intday + " " + strMonthArray[intMonth-1] + " " + strYear;
}
return true;
}
function LeapYear(intYear) {
if (intYear % 100 == 0) {
if (intYear % 400 == 0) { return true; }
}
else {
if ((intYear % 4) == 0) { return true; }
}
return false;
}
function doDateCheck(from, to) {
if (Date.parse(from.value) <= Date.parse(to.value)) {
alert("The dates are valid.");
}
else {
if (from.value == "" || to.value == "") 
alert("Both dates must be entered.");
else 
alert("To date must occur after the from date.");
   }
   }
// Time Validation
function isTime(timeStr) {
// Checks if time is in HH:MM:SS AM/PM format.
// The seconds and AM/PM are optional.

var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm))?$/;

var matchArray = timeStr.match(timePat);
if (matchArray == null) {
return false;
}
hour = matchArray[1];
minute = matchArray[2];
second = matchArray[4];
ampm = matchArray[6];

if (second=="") { second = null; }
if (ampm=="") { ampm = null }

if (hour < 0  || hour > 23) {
alert("Hour must be between 1 and 12. (or 0 and 23 for military time)");
return false;
}
if (hour <= 12 && ampm == null) {
if (confirm("Please indicate which time format you are using.  OK = Standard Time, CANCEL = Military Time")) {
alert("You must specify AM or PM.");
return false;
   }
}
if  (hour > 12 && ampm != null) {
alert("You can't specify AM or PM for military time.");
return false;
}
if (minute<0 || minute > 59) {
alert ("Minute must be between 0 and 59.");
return false;
}
if (second != null && (second < 0 || second > 59)) {
alert ("Second must be between 0 and 59.");
return false;
}
return false;
}