/**
 * This will check required fields in a form
 */
function checkRequiredFields (aForm, markClass) {
    // by default form is valid
    var valid = true;

    // default class
    if (typeof markClass == 'undefined') {
        markClass = "missing-required";
    }

    // test data validity using this regular
    var rex = /^[\w\d\s.#,'"$%!?*()\-=+@\[\];:\/]+$/i;
    
    // collect required elements (visible inputs, select boxes and text areas)
    var frmElements = $(aForm).find('input:visible,select,textarea');

    // any required elements?
    if (frmElements.length > 0) {
        // cycle all req. elements and check them
        $.each(frmElements, function () {
            var input = $(this);
            var value = input.val();

            // test required firlds
            if (input.hasClass('required-form-element') && (value.length == 0)) {
                // failed test for required field
                input.addClass(markClass);
                valid = false;

            } else if ((value.length > 0) && !value.match(rex)) {
                // failed test for form element valdity
                input.addClass(markClass);
                valid = false;

            } else {
                // element is valid
                input.removeClass(markClass);
            }

            // continue iteration on next element
            return true;
        });
    }

    // inform with popup
    if (!valid) {
        alert("Please fill-in all required fields.");
    }

    return valid;
}


