
/*
 * function validateHardwareForm()
 * Validates input fields for glider hardware submission form.
 */
function validateHardwareForm() {

    // Store the form in a variable
    var f = document.hardware;

    // Make sure the required fields have been filled out --------------------
    if (f.glider.value == "") {
        alert('Please enter a glider name!');
        return false;
    }
    else if (f.unit_number.value == "") {
        alert('Please enter a unit number for this glider!');
        return false;
    }
    else if (f.added_by.value == "") {
        alert('Please enter a user name.');
        return false;
    }
    // -----------------------------------------------------------------------

    // Validate filled-out fields --------------------------------------------
    var input; // For storing the current form element
    for (var i = 0; i < f.elements.length; i++) {

        // Store this element in a var
        input = f.elements[i];

        // Parameter name with underscores replaced with a whitespace
        var parameter = input.name.replace(/_/, " ");

        // glider: letters and numbers only
        if (input.name == 'glider') {
            if (input.value.search(/\W/) != -1) {
                alert(parameter.toUpperCase() +
                        ': May contain letters and numbers only!');
                return false;
            }
        }
        // unit_number: 1-4 digits only
        else if (input.name == 'unit_number') {
            if (input.value.search(/^\d{1,4}$/) == -1) {
                alert(parameter.toUpperCase() +
                        ': May contain upto 4 digits only!');
                return false;
            }
        }
        // sim_id: must contain 19 digits only
        else if (input.name == 'sim_id') {
            // Remove all non-digit characters
            var simId = input.value.replace(/\D/g, "");
            if (simId.length != 19) {
                alert(parameter.toUpperCase() +
                        ': Must contain 19 digits!');
                return false;
            }
            input.value = simId;
        }
        // argos_ptt: 4-5 digits only
        else if (input.name == 'argos_ptt') {
            if (input.value.search(/^\d{4,5}$/) == -1) {
                alert(parameter.toUpperCase() +
                        ': Must contain 4 or 5 digits only!');
                return false;
            }
        }
        // os_version: 4 digits
        else if (input.name == 'os_version') {
            var os = input.value.replace(/\D/g, "");
            if (os.length < 3 || os.length > 4) {
                alert(parameter.toUpperCase() +
                        ': Invalid OS version specified!');
                return false;
            }
            input.value = os;
        }
        else if (input.name.search(/freewave/) != -1) {
            var freewave = input.value.replace(/\D/g, "");
            if (freewave.length != 7) {
                alert(parameter.toUpperCase() +
                        ': must contain 7 digits!');
                return false;
            }
            input.value = freewave;
        }

    }
    // -----------------------------------------------------------------------

    alert('All submissions valid.');
    return false;

}


