<!-- 

// Popup window for Verisign verification
function popUp(url) {
sealWin=window.open(url,"win",'toolbar=0,location=0,directories=0,status=1,menubar=1,scrollbars=1,resizable=1,width=500,height=450');
self.name = "mainWin"; } //END FUNCTION popUp()


// alert message if STATE and ZIP don't match
// called from onLoad in BODY tag if written by .asp script
function ZipProblem() {
	var zipMsg = "The STATE and Zip Code do not match.\n"
	zipMsg = zipMsg + "Please check both and correct any errors."
	alert(zipMsg);
	order_form.ZIP.focus();
} // END FUNCTION ZipProblem()

function isEmailAddr(email) {
	var result = false
	var theStr = new String(email)
	var index = theStr.indexOf("@");
	if (index > 0) {
		var pindex = theStr.indexOf(".",index);
		if ((pindex > index+1) && (theStr.length > pindex+1))
		result = true;
	}
	return (result);
}


// ---------------- START Credit Card validation sub-functions

// Checks for expired credit card
function isNotExpired(ccMonth, ccYear) {
var thisDay = new Date();
var todayMonth = thisDay.getMonth();
var todayYear = thisDay.getFullYear();
ccMonth = ccMonth -1; //JavaScript months are 0-1, so need to subtract 1 from value from form

	if ((todayYear < ccYear) || (todayYear == ccYear && todayMonth <= ccMonth)) {
		return(true);
	}
	return(false);
}

// alert message for bad card number
function badNumber() {
	var msg = "The credit card number does not seem to be correct.\n";
	msg = msg + "Please check your entry.";
	alert(msg);
	//order_form.cc_number.focus();
}

//make sure length of CC string is in range (14-19)
function isLength(ccNum) {
	var ccNumLen = ccNum.length;
	if (ccNumLen >= 14 && ccNumLen <= 19) {
		return(true);
	}
	badNumber(); // alert bad card number
	return(false);
}

//replace " " and "-" characters with "" - return sanitized number
function figureCC(ccNum) {
	ccNumNew = ccNum.replace(/ /g,"");
	ccNumNew = ccNumNew.replace(/-/g,"");
	ccNum = ccNumNew;
	return ccNum;
}

//checks to make sure all characters are digits 0-9
function isDigits(ccNum) {
	for (var i = 0; i < ccNumNew.length; i++) {
		myChar = ccNumNew.charAt(i);
			if (myChar < "0" || myChar > "9") {
				/*badNumber();  // alert bad card number*/
				alert("digits only please");
				order_form.cc_number.focus();
				return (false);
			}
	}	
	return(true);
} // END FUNCTION isDigits()

/*  ================================================================
    FUNCTIONS: is(CardType)()
    INPUT:     cc - a string representing a credit card number
    RETURNS:   True if the credit card number is valid for that card type.
			   Then calls isCreditCard() to do Luhn Mod-10 check
	           False if mismatch or doesn't pass Luhn
	SAMPLE NUMBERS:
    Visa: 				4111 1111 1111 1111 (16 digits)
	MasterCard: 		5500 0000 0000 0004 (16 digits)
	AmericanExpress: 	3400 000000 00009 (15 digits)
	Discover:			6011000000000004 (16 digits)
	Diner's Club:		30000000000004 (14 digits)
	EnRoute:			201400000000009 (15 digits)
    ================================================================ */

function isVisa(cardType, cc) {
  if (((cc.length == 16) || (cc.length == 13)) &&
      (cc.substring(0,1) == 4))
    return isCreditCard(cc);
  wrongType(cardType);
  return false;
}  // END FUNCTION isVisa()

function isMasterCard(cardType, cc) {
  firstdig = cc.substring(0,1);
  seconddig = cc.substring(1,2);
  if ((cc.length == 16) && (firstdig == 5) &&
      ((seconddig >= 1) && (seconddig <= 5)))
    return isCreditCard(cc);
  wrongType(cardType);
  return false;
} // END FUNCTION isMasterCard() 

function isAmericanExpress(cardType, cc) {
  firstdig = cc.substring(0,1);
  seconddig = cc.substring(1,2);
  if ((cc.length == 15) && (firstdig == 3) &&
      ((seconddig == 4) || (seconddig == 7)))
    return isCreditCard(cc);
  wrongType(cardType);
  return false;
} // END FUNCTION isAmericanExpress()

function isDiscover(cardType, cc) {
  first4digs = cc.substring(0,4);
  if ((cc.length == 16) && (first4digs == "6011"))
    return isCreditCard(cc);
  wrongType(cardType);
  return false;
} // END FUNCTION isDiscover()

function isDinersClub(cardType, 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);
  wrongType(cardType);
  return false;
} // END FUNCTION isDinersClub()

function isCarteBlanche(cardType, cc) {
  return isDinersClub(cc);
} // END FUNCTION isCarteBlanche()

function isEnRoute(cardType, cc) {
  first4digs = cc.substring(0,4);
  if ((cc.length == 15) &&
      ((first4digs == "2014") ||
       (first4digs == "2149")))
    return isCreditCard(cc);
  wrongType(cardType);
  return false;
} // END FUNCTION isEnRoute()

function isJCB(cardType, 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);
  wrongType(cardType);
  return false;
} // END FUNCTION isJCB()


/*  ================================================================
    FUNCTION:	isCardMatch()
    INPUT:		cardType - a string representing the credit card type
				cardNumber - a string representing a credit card number
    RETURNS:  	true, if the credit card number is valid for the particular
	      		credit card type given in "cardType".
		    	Otherwise, false
    ================================================================ */

function wrongType(cardType) { // Generic alert message for card type-number mismatch
	alert("This does not appear to be a " + cardType + " card.");
	order_form.CCTYPE.focus();
} // END FUNCTION wrongType()

	
function isCardMatch(cardType, cardNumber) {
	var doesMatch = true;
	if ((cardType == "VISA") && (!isVisa(cardType, cardNumber))) {
		doesMatch = false;
	}
	if ((cardType == "MASTERCARD") && (!isMasterCard(cardType, cardNumber))) {
		doesMatch = false;
	}
	if ( ( (cardType == "AMERICANEXPRESS") || (cardType == "AMEX") )
                && (!isAmericanExpress(cardType, cardNumber))) {
		doesMatch = false;
	}
	if ((cardType == "DISCOVER") && (!isDiscover(cardType, cardNumber))) {
		doesMatch = false;
	}
	if ((cardType == "JCB") && (!isJCB(cardType, cardNumber))) {
		doesMatch = false;
	}
	if ((cardType == "DINERS") && (!isDinersClub(cardType, cardNumber))) {
		doesMatch = false;
	}
	if ((cardType == "CARTEBLANCHE") && (!isCarteBlanche(cardType, cardNumber))) {
		doesMatch = false;
	}
	if ((cardType == "ENROUTE") && (!isEnRoute(cardType, cardNumber))) {
		doesMatch = false;
	}
	return doesMatch;
} // END FUNCTION isCardMatch()


//Main check to pass credit card number Luhn Mod-10 algorithm
function isCreditCard(ccNum) {
	if (isLength(ccNum)) { //make sure it's 14-19 digits
		ccNum = figureCC(ccNum); //strip out "-" and " "
		if (isDigits(ccNum)) { //make sure no non-digit characters
			var len = ccNum.length;
			var total = 0;
			var temp=0;
			var i = 0
			for (i=len-1; i>=1; i-=2) {
				total = (total + eval(ccNum.charAt(i).valueOf()));
				temp = (eval(ccNum.charAt(i-1).valueOf())*2);
				var strTemp = temp.toString();
				total = (total + eval(strTemp.charAt(0).valueOf()));
					if (strTemp.length > 1) {
						total = (total + eval(strTemp.charAt(strTemp.length-1).valueOf()));
					}
			}
			if (ccNum.length % 2 == 1) {
				var answer = ccNum.toString();
				total = (total + eval(answer.charAt(0).valueOf()));
			}
			var answer = total % 10;
			if (answer == 0) {
				return(true);
			}
			else {
				//badNumber();
				alert("Credit card number is not valid - please try again");
				return (false);
			}
		}
		return(false);
	}
	return(false);
}


// ---------------- END Credit Card validation sub-functions

//----------------- START Main validation function

function Validator(order_form) {

	if (order_form.CFFRC80_Crazy_for_fish.value == "" && order_form.FSARC40_Five_star_assorted.value == "" && order_form.FCRC40_Fully_cooked.value == "" && order_form.NGD32_Nigri_delight.value == "" && order_form.NKRC57_Nikko_platter.value == "" && order_form.OSARC34_One_star_assorted.value == "" && order_form.TSARC60_Two_star_assorted.value == "" && order_form.VGT34_Vegetarian_platter.value == "") {
		alert("Please enter a quantity for at least one item.");
		order_form.CFFRC80_Crazy_for_fish.focus();
		return(false);
	}
	
	if (order_form.pickup_location.value == "choose") {
		alert("Please select a value for Pickup Location.");
		order_form.pickup_location.focus();
		return (false);
	}
	
	if (order_form.pickup_day.value == "choose") {
		alert("Please select a value for Pickup Day.");
		order_form.pickup_day.focus();
		return (false);
	}
	
	if (order_form.pickup_time.value == "choose") {
		alert("Please select a value for Pickup Time.");
		order_form.pickup_time.focus();
		return (false);
	}
	
	if (order_form.name.value == "") {
		alert("Please enter a Name");
		order_form.name.focus();
		return(false);
	}
	
	if (order_form.phone.value == "") {
	    alert("Please enter a Phone number.");
	    order_form.phone.focus();
	    return (false);
	}

	if (order_form.Email.value == "" || !isEmailAddr(order_form.Email.value)) {
		alert("Please enter your email address.");
		order_form.Email.focus();
		return (false);
	}

	if (order_form.cvv.value == "") {
	    alert("Please enter a CVV number.");
	    order_form.cvv.focus();
	    return (false);
	}

	if (order_form.password.value == "") {
	    alert("Please type in the special characters.");
	    order_form.password.focus();
	    return (false);
	}

/*	if (order_form.expDateMonth.value == "select") {
		alert("Please select a value for credit card Expiration Month.");
		order_form.expDateMonth.focus();
		return (false);
	}
	
	if (order_form.expDateYear.value == "choose") {
		alert("Please select a value for credit card Expiration Year.");
		order_form.expDateYear.focus();
		return (false);
	}
*/	

/* removed number COPIES from form on 09.18.00
	if (order_form.COPIES.value == "" || order_form.COPIES.value < 1) {
		alert("Please enter the number of copies you wish to receive.");
		order_form.COPIES.focus();
		return (false);
	}
	*/
	
/* removed check for billing type because it will always default to credit card=checked
	if (order_form.BILLING[0].checked == false && order_form.BILLING[1].checked == false) {
		alert("Please select a payment method.");
		order_form.BILLING[0].focus();
		return(false);
	}
	*/


	// START core credit card validation function
	/*var CCTYPE = order_form.CCTYPE.value;
		CCTYPE = CCTYPE.toUpperCase();
		CCTYPE = CCTYPE.replace(/ /g, "");*/
	var CCNUMBER = order_form.cc_number.value;
		CCNUMBER = figureCC(CCNUMBER);
	var CCMONTH = order_form.expDateMonth.value;
	var CCYEAR = order_form.expDateYear.value;
	// This credit card validation works if there is also a "billing" option
	/*if (order_form.BILLING[0] && order_form.BILLING[0].checked == true) {*/
		/*if (CCTYPE != "SO") { //CCTYPE not selected*/
			if (CCMONTH != "select") { //Month not selected
				if (CCYEAR !="select") { //Year not selected
					if (isNotExpired(CCMONTH, CCYEAR)) {
						/*if (isCardMatch(CCTYPE, CCNUMBER)) {*/
						if (isCreditCard(CCNUMBER)) {
							//alert("Core true!");
							return(true);
						}
						return (false); // Card type doesn't match number
					}
					alert("Your card has expired. Please verify the Month and Year.");
					order_form.expDateMonth.focus();
					return(false); // Card expired
				}
				alert("Please select a card expiration year.");
				order_form.expDateYear.focus();
				return(false); // Year not selected
			}
			alert("Please select a card expiration month.");
			order_form.expDateMonth.focus();
			return(false); // Month not selected
		<!--}
		//alert("Please select a credit card type.");
		//order_form.CCTYPE.focus();
		//return(false); // CCTYPE not selected-->		
	/*} //BILLING[0].checked (credit card billing)*/
	
	// END core credit card validation
	
} // END FUNCTION Validator

 -->