/**
* Checks to see whether a string passed to it passes the Luhn algorithm (also known as the Mod10 algorithm)
*
* @param card_number String to check. (Required)
* @return Returns a boolean.
* @author Scott Glassbrook (scott@phydiux.com)
* @version 1, April 22, 2003
*/
var rebmun_drac = Reverse(ReReplaceNoCase(getAccount(), "[^0-9]", "", "All"));
var length = len(rebmun_drac);
var even_list = "";
var even_numbers = "0";
var odd_numbers = "0";
var loop1 = "1";
var loop2 = "1";
while (loop1 LTE length)
{
if ((loop1 mod 2) eq "0")
even_list = even_list & (mid(rebmun_drac, loop1, 1) * 2);
else
odd_numbers = (odd_numbers + mid(rebmun_drac, loop1, 1));
loop1 = loop1 + 1;
}
while (loop2 LTE len(even_list))
{
even_numbers = (even_numbers + mid(even_list, loop2, 1));
loop2 = loop2 + 1;
}
if ((even_numbers + odd_numbers) mod 10 eq "0")
return true;
else
return false;