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 = "Enter a value for "var mSuffix = ""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)."var iZIPCode = "This field must be a 5 or 9 digit U.S. ZIP Code (like 94043)."var iUSPhone = "This field must be a 10 digit U.S. phone number (like 415 555 1212)."var iWorldPhone = "This field must be a valid international phone number."var iSSN = "This field must be a 9 digit U.S. social security number (like 123 45 6789)."var iEmail = "This field must be a valid email address (like foo@bar.com)."var iCreditCardPrefix = "This is not a valid "var iCreditCardSuffix = " credit card number."var iDay = "This field must be a day number between 1 and 31."var iMonth = "This field must be a month number between 1 and 12."var iYear = "This field must be a 2 or 4 digit year number."var iDatePrefix = "The Day, Month, and Year for "var iDateSuffix = " do not form a valid date."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;   // must programmatically check this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){   var i;    if (isEmpty(s)) return true;    for (i = 0; i < s.length; i++)    {           var c = s.charAt(i);        if (whitespace.indexOf(c) == -1) return false;    }    return true;}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 ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) )}function isDigit (c){   return ((c >= "0") && (c <= "9"))}function isLetterOrDigit (c){   return (isLetter(c) || isDigit(c))}function isInteger (s){   var i;    if (isEmpty(s))        if (isInteger.arguments.length == 1) return defaultEmptyOK;       else return (isInteger.arguments[1] == true);    for (i = 0; i < s.length; i++)    {           var c = s.charAt(i);        if (!isDigit(c)) return false;    }    return true;}function isSignedInteger (s){   if (isEmpty(s))        if (isSignedInteger.arguments.length == 1) return defaultEmptyOK;       else return (isSignedInteger.arguments[1] == true);    else {        var startPos = 0;        var secondArg = defaultEmptyOK;        if (isSignedInteger.arguments.length > 1)            secondArg = isSignedInteger.arguments[1];        if ( (s.charAt(0) == "-") || (s.charAt(0) == "+") )           startPos = 1;            return (isInteger(s.substring(startPos, s.length), secondArg))    }}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){   var i;    var seenDecimalPoint = false;    if (isEmpty(s))        if (isFloat.arguments.length == 1) return defaultEmptyOK;       else return (isFloat.arguments[1] == true);    if (s == decimalPointDelimiter) return false;    for (i = 0; i < s.length; i++)    {           var c = s.charAt(i);        if ((c == decimalPointDelimiter) && !seenDecimalPoint) seenDecimalPoint = true;        else if (!isDigit(c)) return false;    }    return true;}function isSignedFloat (s){   if (isEmpty(s))        if (isSignedFloat.arguments.length == 1) return defaultEmptyOK;       else return (isSignedFloat.arguments[1] == true);    else {        var startPos = 0;        var secondArg = defaultEmptyOK;        if (isSignedFloat.arguments.length > 1)            secondArg = isSignedFloat.arguments[1];        if ( (s.charAt(0) == "-") || (s.charAt(0) == "+") )           startPos = 1;            return (isFloat(s.substring(startPos, s.length), secondArg))    }}function isAlphabetic (s){   var i;    if (isEmpty(s))        if (isAlphabetic.arguments.length == 1) return defaultEmptyOK;       else return (isAlphabetic.arguments[1] == true);    for (i = 0; i < s.length; i++)    {           var c = s.charAt(i);        if (!isLetter(c))        return false;    }    return true;}function isAlphanumeric (s){   var i;    if (isEmpty(s))        if (isAlphanumeric.arguments.length == 1) return defaultEmptyOK;       else return (isAlphanumeric.arguments[1] == true);    for (i = 0; i < s.length; i++)    {           var c = s.charAt(i);        if (! (isLetter(c) || isDigit(c) ) )        return false;    }    return true;}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);       if (isWhitespace(s)) return false;        var i = 1;    var sLength = s.length;    while ((i < sLength) && (s.charAt(i) != "@"))    { i++    }    if ((i >= sLength) || (s.charAt(i) != "@")) return false;    else i += 2;    while ((i < sLength) && (s.charAt(i) != "."))    { i++    }    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;    else return true;}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 }    }    if ( !( radio[i] ) ) {		return "";	}	else {		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 (cc == "4222222222222222") { // test card    return true;   }  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 = stripWhitespace(cardType);	cardType = cardType.toUpperCase();	var doesMatch = true;  if (cardNumber == "4222222222222222") { // test card    return 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);}// this will work to get element by ID for Mozilla DOM (including IE5.x - 6.x) as well as IE4.function get(eN){	if(document.getElementById){		return(eval('document.getElementById(\'' + eN + '\')'));	}	else	if(document.all){			return(eval('document.all.' + eN));	}}//Validations JS//Make sure that the year, month, and day are in the correct range, and that// the day value is not greater than the number of days in the month. This// function does account for leap years. It also assumes that the date is in// American format (mm/dd/yy) instead of (dd/mm/yy).function CheckDate(date, dFormat){    var calendar = new Array(31,28,31,30,31,30,31,31,30,31,30,31);    var day;    var xx;    var yy;    var month;    var year;    if (date.substring(1, 2) == '/')    {        yy = parseInt(date.substring(0, 1), 10);        if (date.substring(3, 4) == '/')        {             xx = parseInt(date.substring(2, 3), 10);             year = parseInt(date.substring(4, 8), 10);        }        else        {             xx = parseInt(date.substring(2, 4), 10);             year = parseInt(date.substring(5, 9), 10);        }    }   else    {        yy = parseInt(date.substring(0, 2), 10);        if (date.substring(4, 5) == '/')        {             xx = parseInt(date.substring(3, 4), 10);             year = parseInt(date.substring(5, 9), 10);        }        else        {             xx = parseInt(date.substring(3, 5), 10);             year = parseInt(date.substring(6, 10), 10);        }    }        if ( dFormat == "ddmmyy" ) {    	day = yy;    	month = xx;    }    else {    	day = xx;    	month = yy;    }    if (day < 1 || month < 1 || month > 12 || year < 10 || ( year >= 100 ) && ( year < 1000 ) )        return false;        calendar[1] += (year % 4 ? 0 : year % 100 ? 1 : year % 400 ? year == 200 ? 1 : 0 : 1);    return (day <= calendar[month - 1]);}function stringToMilliseconds(date, dFormat){//This function will return seconds since 01/01/00 for dateformats mmddyyyy and ddmmyyyy    var day;    var xx;    var yy;    var month;    var year;    var retVal;    if (date.substring(1, 2) == '/')    {        yy = parseInt(date.substring(0, 1), 10);        if (date.substring(3, 4) == '/')        {             xx = parseInt(date.substring(2, 3), 10);             year = parseInt(date.substring(4, 8), 10);        }        else        {             xx = parseInt(date.substring(2, 4), 10);             year = parseInt(date.substring(5, 9), 10);        }    }   else    {        yy = parseInt(date.substring(0, 2), 10);        if (date.substring(4, 5) == '/')        {             xx = parseInt(date.substring(3, 4), 10);             year = parseInt(date.substring(5, 9), 10);        }        else        {             xx = parseInt(date.substring(3, 5), 10);             year = parseInt(date.substring(6, 10), 10);        }    }        if ( dFormat == "ddmmyy" ) {    	day = yy;    	month = xx;    }    else {    	day = xx;    	month = yy;    }  var retVal = Date.parse(month + "/" + day + "/" + year)  return retVal;   }function isGreaterThanDate(strDateToCheck, strDatetoCheckAgainst, dateformat){//alert ('Date1:'+ strDateToCheck + ', Date2:' + strDatetoCheckAgainst);if (strDatetoCheckAgainst == "") return true;if (strDateToCheck  == "") return false;if (CheckDate(strDateToCheck, dateformat) == false) return "error";if (CheckDate(strDatetoCheckAgainst,dateformat)==false) return "error1";var dateToCheck;var dateToCheckAgainst;dateToCheck = stringToMilliseconds( strDateToCheck,dateformat);dateToCheckAgainst = stringToMilliseconds( strDatetoCheckAgainst, dateformat);//alert ('Date1:'+ dateToCheck + ', Date2:' + dateToCheckAgainst);if (dateToCheck > dateToCheckAgainst) 	{return true;}else 	{return false;}} function checkMaxMinDate(dateToCheck,minDate1,minDate2,maxDate1,maxDate2,dateformat) {var retValvar minvar maxif (!CheckDate(dateToCheck,dateformat)) return false;if (minDate1 != "" || minDate2 != "") {//Check min      if (isGreaterThanDate(minDate1,minDate2,dateformat) == "error") {	alert("error with Date Format for minDate: " + minDate1);	return false;  }  else if (isGreaterThanDate(minDate1,minDate2,dateformat) == "error1") {	//Date format for minDate2 will be checked at some point if form is correctly constructed skip min date 	retVal= true;  }  else if (minDate1 =="" && minDate2 != "") {             if (isGreaterThanDate(minDate2,dateToCheck,dateformat)) {                   return false;               }               else {                   retVal = true;               }	  }  else if (minDate2 == "" && minDate1 != "") {              if (isGreaterThanDate(minDate1,dateToCheck,dateformat)) {                   return false;               }               else {                   retVal = true;               }	   }  else if (isGreaterThanDate(minDate1,minDate2,dateformat) == true && minDate2 != "") {              if (isGreaterThanDate(minDate2,dateToCheck,dateformat)) {                   return false;               }               else {                   retVal = true;               }    }    else if (isGreaterThanDate(minDate1,dateToCheck,dateformat)) {                  return false;               }               else {                   retVal = true;               }	      }         if (maxDate1 != "" || maxDate2 != "") {//Check max   if (isGreaterThanDate(maxDate1,maxDate2,dateformat) == "error") {	alert("error with Date Format for maxDate:" + maxDate1);	return false;  }  else  if (isGreaterThanDate(maxDate1,maxDate2,dateformat) == "error1") {	//Date format for maxDate2 will be checked at some point if form is correctly constructed skip max date 	return true;  }  else if (maxDate1 == "" && maxDate2 != "") {              if (isGreaterThanDate(maxDate2,dateToCheck,dateformat)) {                   return true;               }               else {                   return false;               }	  }  else if (maxDate1 != "" && maxDate2 == "") {              if (isGreaterThanDate(maxDate1,dateToCheck,dateformat)) {                   return true;               }               else {                   return false;               }	  }  else  if (isGreaterThanDate(maxDate1,maxDate2,dateformat)) {              if (isGreaterThanDate(maxDate1,dateToCheck,dateformat)) {                   return true;               }               else {                   return false;               }	             }   else if (isGreaterThanDate(maxDate2,dateToCheck,dateformat)) {                   return true;               }               else {                   return false;               }	     }          return true;}var ValidationDict = new Object();ValidationDict.zip = /\d{5}(-\d{4})?/; // zip//ValidationDict.numeric = /(,?[0-9])*(.)?([0-9])*/; // matches #,###,###.##//ValidationDict.numeric = /(,?[0-9])*.?[0-9]*/; // matches #,###,###.##ValidationDict.numeric = /[0-9]*/; // matches #########ValidationDict.currencyUSD = /^\$*\d{1,3}(,\d{3})*\.\d{2}/; // matches $#,###,###.##ValidationDict.currencyRs = /((Rs)?)(\d{1,2})?(\,\d{2})*(\,?\d{1,3})(\.\d{1,2})?/; // matches Rs#,##,##,###.##ValidationDict.hhmm12 = /^([1-9]|1[0-2]):[0-5]\d$/; // 12 hour timeValidationDict.hhmm24 = /^([1-9]|[1-2][0-4]):[0-5]\d$/; // 24 hour timeValidationDict.email =  /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/; // internet email addressfunction validateForm(theForm, validatorField, msgField, reqField, min, minField, max, maxField, preEval){var msg = "";var formElements = theForm.elements;var isValid = true;var retVal = true;if ( arguments.length >= 9 ) eval( preEval );for( var i = 0; i < formElements.length; i++ ) {with( formElements[i] ){var validationType = eval( 'formElements[i].' + validatorField );if ( !(formElements[i].value > "") || ( validationType == "radio" )) {  var validationReq = eval( 'formElements[i].' + reqField );  if (validationReq == "yes") {    if ( validationType == "radio" ) {      var radio = formElements[i];      if ( !formElements[i - 1] == false ) {        if ( ( name == formElements[i - 1].name ) && ( retVal == true ) ) continue;      }      retVal = radio.checked;      if ( !formElements[i + 1] == false ) {        if ( ( name == formElements[i + 1].name ) || ( retVal == true ) ) continue;      }      else {        if ( retVal == true ) continue;      }    }    if ( msg == "" ) formElements[i].focus();    msg += ( eval( "formElements[i]." + msgField ) + " \n" );    isValid = false;    continue;  }  else {    continue;  }}if( !validationType ) {      continue;}var patterns = ValidationDict[validationType];if( !patterns ) {  retVal = true;}else {   retVal = patterns.exec( value );  if ( retVal > "" ) retVal = true;}var validationMin = eval('formElements[i].' + min);var validationMax = eval('formElements[i].' + max);if (!validationMin) validationMin = "";if (!validationMax) validationMax = "";var minFieldName = eval('formElements[i].' + minField);var maxFieldName = eval('formElements[i].' + maxField);if (minFieldName) {	var validationMinField =  eval( 'theForm.' + minFieldName + '.value' );}else var validationMinField = "";if (maxFieldName) {var validationMaxField =  eval( 'theForm.' + maxFieldName + '.value' );}else var validationMaxField = "";if ( validationType == "dateUK" ) {   retVal = checkMaxMinDate( value, validationMin,validationMinField, validationMax, validationMaxField, "ddmmyy" );  // alert('date checked:' + retVal);}else if ( validationType == "date" ) {    retVal = checkMaxMinDate( value, validationMin, validationMinField, validationMax, validationMaxField, "mmddyy" );      }   if( retVal != true ){      if ( msg == "" ) formElements[i].focus();      msg += eval( "formElements[i]." + msgField ) + " \n"; isValid = false;  }}}if ( isValid == false ) {  alert ( msg );  return false;}  return true;}//Smart-eCat JSfunction NextURL(nextURL) {	if ( nextURL == null || nextURL == "" ) { 		if ( window.opener ) {			window.close();		}		else {			history.back();		}	}	else {		window.location = nextURL;	}}function openImageWindow( windowUrl, windowHeight, windowWidth ) { 	var windowArgs = "";	if ( openImageWindow.arguments.length > 1 ) {		windowArgs = "height=" + windowHeight + ",width=" + windowWidth + ",";	}	windowArgs += "dependent=yes,resizable=yes,menubar=no,scrollbars=yes,toolbar=no,z-lock=yes";	imageWindow = window.open(windowUrl,"SeCWindow",windowArgs);	imageWindow.focus();}function AddToOrder(docID, itemQty, dbURL, nextURL, openShoppingCart) {	if ( isNonnegativeInteger( itemQty, false ) == false )  {		alert ( "Enter a non negative numeric quantity" ) ;		return false ;	}	if ( itemQty > 32767 )  {		alert ( "Item quantity may not be greater than 32767" ) ;		return false ;	}	agentURL = dbURL + "/(Add+Item+to+Order)?OpenAgent";	if( itemQty == null || itemQty == "" ) {		addItemURL = agentURL + '&ItemID=' + docID + '&ItemQty=1&NextURL=' + nextURL;	}	else {		addItemURL = agentURL + '&ItemID=' + docID + '&ItemQty=' + itemQty + '&NextURL=' + nextURL;	}		if ( openShoppingCart == true ) {		addItemURL += "&OpenOrder=1";	}	if ( window.frames['DropBox'] ) {		window.frames['DropBox'].location.href = addItemURL;	}	else { 		window.location.href = addItemURL;	}	return true;}function AddItemFromView(docID, itemQty, dbURL, anchor) {	if ( isNonnegativeInteger( itemQty, false ) == false )  {		alert ( "Enter a non negative numeric quantity" ) ;		return false ;	}	if ( itemQty > 32767 )  {		alert ( "Item quantity may not be greater than 32767" ) ;		return false ;	}	var nextURL;	if( document.forms[0].PageURL ) { 		nextURL = document.forms[0].PageURL.value;		nextURL += anchor;	}	AddToOrder(docID, itemQty, dbURL, nextURL);	return true;}function SubmitSearchForm(form, dbURL, view, category) {	searchURL = dbURL + "/" + view + "?SearchView&Query=";	if ( category > "" ) searchURL += "([Category] contains " + category + ") AND ";	exactMatch = form.ExactMatch.value;	if ( exactMatch == "" ) { exactMatch = "TRUE" }		useThesaurus = form.UseThesaurus.value	if ( useThesaurus == "" ) { useThesaurus = "TRUE" }		searchURL += form.Query.value;	searchURL += "&SearchOrder=" + form.Sort.value;	searchURL += "&SearchMax=" + form.MaxResults.value;	searchURL += "&SearchWV=" + exactMatch;	searchURL += "&SearchThesaurus=" + useThesaurus;		searchURL += searchURL + '&View=' + view + '&Category=' + category;	location.href = searchURL;}function setCookie(name, value, expire, domain, path, secure) {   document.cookie = name + "=" + escape(value)   + ((expire == null) ? ";" : ("; expires=" + expire.toGMTString()))   + ((domain == null) ? ";" : ("; domain=" + domain))   + ((path == null) ? "; path=/" : ("; path=" + path))   + ((secure == null) ? ";" : ("; secure=" + secure))   + ";"}function getCookie(Name) {   var search = Name + "="   if (document.cookie.length > 0) { // if there are any cookies      offset = document.cookie.indexOf(search)       if (offset != -1) { // if cookie exists          offset += search.length          // set index of beginning of value         end = document.cookie.indexOf(";", offset)          // set index of end of cookie value         if (end == -1)             end = document.cookie.length         return unescape(document.cookie.substring(offset, end))      }    }}function DeleteCookie(sName){  // Delete the cookie with the specified name.    document.cookie = sName + "=" + escape(sValue) + "; expires=Fri, 31 Dec 1999 23:59:59 GMT;";}function setProductID( form ) {	var showSize = form.ShowSize.value;	var showColor = form.ShowColor.value;	// get the list of product IDs	tempString = form.ProductGroupIDList.value;	var productIDList = tempString.split(",");			//If we are looking at both sizes and colors	if ( showColor == "Yes" && showSize == "Yes" ) {		var tempString = new String("");			tempString = form.ProductGroupSizeList.value;		var productSizes = tempString.split(",");		var sizeIndex = form.ProductSize.selectedIndex;		sizeIndex < 0 ? sizeIndex = 0 : true;		var size = productSizes[sizeIndex];		tempString = form.ProductGroupColorList.value;		var productColors = tempString.split(",");		var colorIndex = form.ProductColor.selectedIndex;		colorIndex < 0 ? colorIndex = 0 : true;		var color = productColors[colorIndex];			var sizecolor = size + '*' + color;		var i = 0;			tempString = form.ProductGroupSizeColorList.value;		var productGroupSizeColors = tempString.split(",");				for ( i = 0; i < productGroupSizeColors.length; i++ )    		{			if (sizecolor == productGroupSizeColors[i])			{				form.ProductID.value = productIDList[i];				form.ProductGroupIDSelect.value = productIDList[i];				form.ProductGroupIDSelect.selectedIndex = i;								return true;	     	}		  }   	}	else if ( showColor == "Yes" ) {		//If it's just a color list		var intIndex = form.ProductColor.selectedIndex;		form.ProductID.value = productIDList[intIndex];		form.ProductGroupIDSelect.value = productIDList[intIndex];		form.ProductGroupIDSelect.selectedIndex = intIndex;	}	else if ( showSize == "Yes" ) {		//If it's just a size list		var intIndex = form.ProductSize.selectedIndex;		form.ProductID.value = productIDList[intIndex];		form.ProductGroupIDSelect.value = productIDList[intIndex];		form.ProductGroupIDSelect.selectedIndex = intIndex;		}		return true;}function AddItemFromView(docID, itemQty, dbURL, anchor) {	if ( isNonnegativeInteger( itemQty, false ) == false )  {		alert ( "Enter a non negative numeric quantity" ) ;		return false ;	}	if ( itemQty > 32767 )  {		alert ( "Item quantity may not be greater than 32767" ) ;		return false ;	}	var nextURL;	if( document.forms[0].PageURL ) { 		nextURL = document.forms[0].PageURL.value;		nextURL += anchor;	}	AddToOrder(docID, itemQty, dbURL, nextURL);	return true;}