Credit Card Validation

Credit Card Validation script

HTML

<div>
<input id="cc" type="text" /><span id="type"></span>
</div>

CSS

div{
 margin: 10px 10px 10px 10px;   
}

input[type=text]{
 margin-right: 10px;    
}

.error{
 border-color: red;
 color: red;
}

span{
 color: gray;        
}

JavaScript

function CCValidationWithType(cardNumber) {
    var response = {
        valid: false,
        type: "Invalid"
    };

    var cardNumberWithoutDashes = cardNumber.split("-").join("");
    if (cardNumberWithoutDashes.length > 16 || cardNumberWithoutDashes.length < 14) {
        response.type = "Not a Credit Card Number";
        return response;
    }

    var regExpressions = {
        "Visa": /^4\d{3}-?\d{4}-?\d{4}-?\d{4}$/,
        // Visa: length 16, prefix 4, dashes optional.
        "MasterCard": /^5[1-5]\d{2}-?\d{4}-?\d{4}-?\d{4}$/,
        // Mastercard: length 16, prefix 51-55, dashes optional.
        "Discover": /^6011-?\d{4}-?\d{4}-?\d{4}$/,
        // Discover: length 16, prefix 6011, dashes optional.
        "American Express": /^3[4,7]\d{13}$/,
        // American Express: length 15, prefix 34 or 37.
        "Diners": /^3[0,6,8]\d{12}$/ // Diners: length 14, prefix 30, 36, or 38.
    };

    for (var cardType in regExpressions) {
        var exp = regExpressions[cardType];
        if (exp.test(cardNumber)) {
            response.type = cardType;
            break;
        }
        continue;
    }

    // Checksum ("Mod 10")
    // Add even digits in even length strings or odd digits in odd length strings.
    var checksum = 0;
    for (var i = (2 - (cardNumberWithoutDashes.length % 2)); i <= cardNumberWithoutDashes.length; i += 2) {
        checksum += parseInt(cardNumberWithoutDashes.charAt(i - 1));
    }
    // Analyze odd digits in even length strings or even digits in odd length strings.
    for (var i = (cardNumberWithoutDashes.length % 2) + 1; i < cardNumberWithoutDashes.length; i += 2) {
        var digit = parseInt(cardNumberWithoutDashes.charAt(i - 1)) * 2;
        if (digit < 10) {
            checksum += digit;
        } else {
            checksum += (digit - 9);
        }
    }
    if ((checksum % 10) == 0) {
        response.valid = true;
    }else{
        response.valid = false;
        response.type = "Invalid " + response.type +...