I am currently working on some homework for school and I am little stuck with my switch!
I am getting a response up until alert(card) in checkcard();
my problem is, none of the cases will actually validate the type of card that is is in reference too, I am not allowed to use any addons like jQuery etc etc.
I'll post relevant code and be glad to hear from you guys :D I've commented the lines with #### for ease. Also, getcard does return correct card type as wished.
    function getCard(){
    var cardType = "unknown";
    var cardTypeArray = document.getElementById("chooseCard").getElementsByTagName("input");
    for(var i = 0; i < cardTypeArray.length; i++){
        if (cardTypeArray[i].checked) { 
            cardType = cardTypeArray[i].value;  
        }
    }
    alert ("cardtype is" + cardType);
    return cardType;
}
function checkCard(cardNumber){
    var errMsg = "";
    var card = getCard(); 
    //var cardNumber = document.getElementById("cardNumber").value;
    var regVisa = /^4[0-9]{12}(?:[0-9]{3})?$/;
    var regMaster = /^5[1-5][0-9]{14}$/;
    var regAmerica = /^3[47][0-9]{13}$/;
    alert(card); // works till here #######
    switch(card){
        case "Visa":
            if (parseInt(cardNumber.substring(0,1)!=4) {
                errMsg = "card number is not visa \n";
            }
            break;
        case "Mastercard":
            if (cardNumber.substring(0,1) !=5) {
                errMsg = "card number is not mastercard. \n";
            }
        break;
        case "AmericanExpress":
            if (cardNumber.substring(0,2) !=51) {
                errMsg = "card number not american express, \n";
            }
            break;
    }
    return errMsg;
}
function validator(){
    var errMsg = "";                                /* stores the error message */
    var result = true;  
    var visaCard = document.getElementById("visa").checked;
    var masterCard = document.getElementById("mastercard").checked;
    var americanExpress = document.getElementById("americanExpress").checked;
    var cardName = document.getElementById("cardName").value;
    //document.getElementById("cardName").setAttribute('maxlength',40);
    var regexAlpha = /^[a-zA-Z ]+$/;
    var cardNumber = document.getElementById("cardNumber").value;
    var regexNum =  /^[0-9]+$/;
    var date = new Date();
    var todayDateMonth = date.getMonth() + 1;
    var todayDateYear = date.getFullYear();
    var expMonth = document.getElementById("expMonth").value;
    var expYear = document.getElementById("expYear").value;
    var regVisa = /^4[0-9]{12}(?:[0-9]{3})?$/;
    var regMaster = /^5[1-5][0-9]{14}$/;
    var regAmerica = /^3[47][0-9]{13}$/;
    if (todayDateMonth > expMonth || todayDateYear > expYear){
        errMsg += "expiry date is wrong\n";
        result = false;
    }
    if (!(visaCard || masterCard || americanExpress)){
        errMsg += "please select visa, mastercard or american express\n";
        result = false;
    }   /* assumes no errors */
    if (cardNumber.length > 16 || cardNumber.length < 15 )
    {
        errMsg = errMsg + "your card number can only contain 15 to 16 digits \n";
        result = false;
    }else{
        checkCard(cardNumber); // Starts here #######
    }
    if (cardName.length > 40 || cardName.length < 1 || !regexAlpha.test(cardName))
    {
        errMsg = errMsg + "your card name must only contain alpha characters \n";
        result = false;
    }
    if (errMsg != "") {
        alert(errMsg);
    }
    return result;    //if false the information will not be sent to the server
}
function init() {
    if(document.getElementById("regform")!==null){
    var regForm = document.getElementById("regform");// get ref to the HTML element
    regForm.onsubmit = validate;    
    prefill_form();
}
    if(document.getElementById("bookform") !=null){
    var bookForm = document.getElementById("bookform");
    bookForm.onsubmit = validator;          /* assigns functions to corresponding events */
    var cancel = document.getElementById("cancelButton");
    cancel.onclick = cancelBooking;
    getBooking();
    }
}
 
     
    