/*
PRODUCT: 	JavaScript Utilities for Credit Card Validation
VERSION:	1.01, April 2004
CONTACT:	Future Shock Ltd, www.Future-Shock.net, post@future-shock.net

This file may be used freely as long as none of the comments are removed.
*/

function FSfncCheckCCexpire(FormField) {
	// Check credit expiry date is in valid format
	var CCexpire=FormField.value;
	if (CCexpire=="") {alert("Please enter your credit card expiry date."); FormField.focus(); return false}
	var ArrayCCexpr=CCexpire.split("/");
	if ((ArrayCCexpr.length!=2) || (ArrayCCexpr[0]=="") || (isNaN(ArrayCCexpr[0])) || (ArrayCCexpr[1]=="") || (isNaN(ArrayCCexpr[1])) || (ArrayCCexpr[0]<1) || (ArrayCCexpr[0]>12)) {alert("Expiry date is not in correct format."); FormField.focus(); return false}
	return true;
	}

function FSfncCheckCCnum(FormField) {
	// Check credit/Switch card number is in valid format
	var ccRE=/\W/gi;
	var CCnumber=FormField.value.replace(ccRE, "");
	if (isNaN(CCnumber)) {alert("Credit card number is not numeric."); FormField.focus(); return false}
	if ((CCnumber.length!=16) && (CCnumber.length!=18)) {alert("Incorrect number of digits in credit card number."); FormField.focus(); return false}
	var cardMath=0;
	for (i=CCnumber.length; i>0; i--) {
		if (i % 2 == 1) {
			var doubled = "" + (parseInt(CCnumber.substring(i - 1, i)) * 2);
			if (doubled.length==2) {doubled = parseInt(doubled.substring(0,1)) + parseInt(doubled.substring(1,2))}
			cardMath += parseInt(doubled);
			}
		else {cardMath += parseInt(CCnumber.substring(i - 1, i))}
		}
	if (cardMath % 10 != 0) {alert("Credit card number is invalid."); FormField.focus(); return false}
	return true;
	}

