<!--
function Mod10(cc) {
	var len 	= cc.length;
	var icc 	= parseInt(cc,10);
	var divSum 	= 0;
	var isMod10	= false;

	// guess I won't mess with a winning formula -- although I did strip about 44 lines of uselessness out of here...
	if(len >= 15){
		for(var i=len;i>0;i--){
			divSum += parseInt(icc % 10,10);
			i--;
			icc = icc / 10;
			var calc = parseInt(icc % 10,10) *2;
			switch(calc){
				case 10: calc = 1; break;	//5*2=10 & 1+0 = 1
				case 12: calc = 3; break;	//6*2=12 & 1+2 = 3
				case 14: calc = 5; break;	//7*2=14 & 1+4 = 5
				case 16: calc = 7; break;	//8*2=16 & 1+6 = 7
				case 18: calc = 9; break;	//9*2=18 & 1+8 = 9
				default: calc = calc;	 	//4*2= 8 &   8 = 8  -same for all lower numbers
			}
			divSum += calc;
			icc = icc / 10;
		}
		isMod10 = ((divSum%10)==0)?true:false;
	}

	return isMod10;
}

function validateCard(cc) {

	var err = validateCardText(cc);
	if(err) {
		alert(err);
		return false;
	}
	return true;
}

function validateCardText(cc) {
	var err = '';
	if(cc.match(/^3/)) {
		err += 'Your credit card appears to be an American Express.  Unfortunately we can only accept Visa or Mastercard.';
	}
	if(cc.match(/^6/)) {
		err += 'Your credit card appears to be a Discover Card.  Unfortunately we can only accept Visa or Mastercard.';
	}
	if(!cc.match(/^(4|5)/)) {
		err += 'Your credit card number does not appear to be a Visa or Mastercard.';
	}
	if(cc.length != 16) {
		err += 'Your credit card number does not have the correct number of digits.';
	}
	if(!Mod10(cc)) {
		err += 'Your credit card number does not appear to be valid.'
	}
	
	return err;
}

// -->

