window.addEvent('domready', function() {
	$$('form.validated').each(function(item) {
		item.store('formCheck',new FormCheck(item,{
			display:{
				scrollToFirst: true,
				addClassErrorToField: true
			}
		}));
	});
});

function creditCardNumberCheck(el) {
	el.value = el.value.replace(/ /g, '');
	if (el.value.test(/[^0-9]/)) {
		el.errors.push("Credit card number must be numeric.");
	}
	if (el.value.length < 13 || el.value.length > 19) {
		el.errors.push("Credit card number must be 13-19 digits");
	}
	if (!isLuhnValid(el.value)) {
		el.errors.push("Credit card number invalid, please check and re-enter");
	}
	return (el.errors.length == 0);
}

function isLuhnValid(s) {
	var total = 0;
	var l, d;
	for (l = s.length - 1; l >= 0; l--) {
		d = parseInt(s.charAt(l));
		if ((s.length - l) % 2 == 0)
			d *= 2;
		if (d >= 10)
			total += 1 + (d % 10);
		else
			total += d;
	}
	return (total % 10 == 0);
}

