﻿

function ValidateForm(strFormName) {
    var form_name = document.getElementById(strFormName);
    var form_elements = new Array();
    form_elements = form_name.elements;
    var form_field
    // iterates through form elements
    for (i = 0; i < form_elements.length; i++) {
        //alert(form_elements[i].name + " = " + form_elements[i].value);
        // ignore clear button and submit values
        if (form_elements[i].type == "button" || form_elements[i].type == "submit") {
            //break;
        }
        else {
            // alert(form_elements[i].name + " = " + form_elements[i].value);
            form_field = form_elements[i];

            // if mandatory field
            if (form_elements[i].getAttribute("mandatory_field") == "1") {
                // if textbox or textarea empty
                if (isStringEmpty(form_elements[i].value)) // checkbox
                 {
                    alert_msg = form_elements[i].getAttribute("mandatory_msg");
                    if (alert_msg == undefined) {
                        alert_msg = "Mandatory field"
                    }
                    alert(alert_msg);
                    form_field.focus();
                    return false;
                }
                
                // handle checkbox / radio
                if ((form_elements[i].type == "checkbox" )
                    || (form_elements[i].type == "radio" )) {
                    // check if any selected

                    var radioElements = new Array();
                    radioElements = document.getElementsByName(form_elements[i].getAttribute("name"));
                    var isChecked = false;
                    for (j = 0; j < radioElements.length; j++) {
                        if (radioElements[j].checked)
                            isChecked = true;
                    }
                    // none selected
                    if (!isChecked) {
                        alert_msg = form_elements[i].getAttribute("mandatory_msg");
                        if (alert_msg == undefined) {
                            alert_msg = "Mandatory field"
                        }
                        alert(alert_msg);
                        form_field.focus();
                        return false;
                    }
                }
            }

            // if password
            if (form_elements[i].getAttribute("password_field") == "1") {
                if (!confirmPassword()) {
                    alert_msg = form_elements[i].getAttribute("confirm_msg");
                    alert(alert_msg);
                    form_field.focus();
                    return false;
                }

                if (!validatePassword()) {
                    alert_msg = form_elements[i].getAttribute("password_msg");
                    alert(alert_msg);
                    form_field.focus();
                    return false;
                }
            }

            // if numeric

            // if email - test format
            if (form_elements[i].getAttribute("email_field") == "1") {

                if (isStringEmpty(document.getElementById('userEmailField').value))
                    document.getElementById('userEmailField').value = form_elements[i].value;
			    
                if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(form_elements[i].value)) {
                    //proper format -  do nothing      
                }
                else {
                    alert_msg = form_elements[i].getAttribute("email_msg");
                    if (alert_msg == undefined) {
                        alert_msg = "Invalid email";
                    }
                    alert(alert_msg);
                    form_field.focus();
                    return false;
                }
            }
        } // end if buttons
    }


    // if reached here successfully, submit
    form_name.submit();
}

