//http://www.beachnet.com/~hstiles/cardtype.html
function isValidCardNumber(strNum)
{
var nCheck = 0;
var nDigit = 0;
var bEven = false;
for (n = strNum.length - 1; n >= 0; n--) {
var cDigit = strNum.charAt(n);
if (isDigit(cDigit)) {
var nDigit = parseInt(cDigit, 10);
if (bEven) {
if ((nDigit *= 2) > 9)
nDigit -= 9;
}
nCheck += nDigit;
bEven = !bEven;
} else if (cDigit != ' ' && cDigit != '.' && cDigit != '-') {
return false;
}
}
return (nCheck % 10) == 0;
}
function isDigit(c)
{
var strAllowed = "1234567890";
return (strAllowed.indexOf(c) != -1);
}
function isCardTypeCorrect(strNum, type)
{
var nLen = 0;
for (n = 0; n < strNum.length; n++) {
if (isDigit(strNum.substring(n, n + 1)))
++nLen;
}
if (type == 'Visa')
return ((strNum.substring(0, 1) == '4')
&& (nLen == 13 || nLen == 16));
else if (type == 'Amex')
return ((strNum.substring(0, 2) == '34'
|| strNum.substring(0, 2) == '37')
&& (nLen == 15));
else if (type == 'Master Card')
return ((strNum.substring(0, 2) == '51'
|| strNum.substring(0, 2) == '52'
|| strNum.substring(0, 2) == '53'
|| strNum.substring(0, 2) == '54'
|| strNum.substring(0, 2) == '55')
&& (nLen == 16));
else
return false;
}