//function to check empty fields
function isEmpty(field) {
    var str = field.value;
    var empty = (str == "" || str == null || str.charAt(0) == ' ')
        ? field.name
        : false;
    return empty;
}

//function that performs all functions, defined in the onsubmit event handler
function check(form) {
    var emptyFields = new Array;
    var err = false;
    var fieldsToCheck = {
        'inputs' : [
            'FirstName',
            'LastName',
            'EmailAddress',
            'PhoneNumber'
        ]
    };
    
    // check inputs (input, select, textrea)
    if (fieldsToCheck.inputs) {
        for (var i=0;i<fieldsToCheck.inputs.length;i++) {
            var e = isEmpty(form[fieldsToCheck.inputs[i]]);
            if (e) emptyFields.push(e);
        }
    }
    // check radio buttons & checkboxes
    if (fieldsToCheck.multiples) {
        for (var i=0;i<fieldsToCheck.multiples.length;i++) {
            var filled = false;
            var multiple = fieldsToCheck.multiples[i];
            var multiples = document.getElementsByName(multiple);
            for (var j=0;j<multiples.length;j++) {
                if (multiples[j].name == multiple && multiples[j].checked) {
                    filled = true;
                    continue;
                }
            }
            if (!filled) emptyFields.push(multiple);
        }
    }
    
    // output some error messages, if applicable
    if (emptyFields.length > 0) {
        alert("The following is required:\n\n\t " + emptyFields.join("\n\t ") + "\n\nPlease complete.");
        err = true; 
    }

    // if any errors were recorded, stop the form from submitting
    if (err) return false;
}