function validate_all() { var re_value; var forms = document.forms; for (i=0; i <= forms.length; i++){ re_value = validate(forms[i]); if (!re_value){ return false;} } } function validate(form){ var error = ''; var cur; if (form){ if (form._needed_fields){ var needed = new Array(); needed = form._needed_fields.value.split("|"); for (i=0; i < needed.length; i++){ var obj = getMyObj(form, needed[i]); var myType = obj.type; switch (myType){ case "radio": if (!is_radio_checked(needed[i], form)){ error += do_error(needed[i], form, myType); } break; case "checkbox": if (!is_chBox_checked(obj)){ error += do_error(needed[i], form, myType); } break; case "select-one": if (!is_select_checked(obj)){ error += do_error(needed[i], form, myType); } break; case "select-multiple": if (!is_select_checked(obj)){ error += do_error(needed[i], form, myType); } break; default: // catch all other stuff that's not special!!! if (obj.value == ""){ error += do_error(needed[i], form, myType); } break; } if(needed[i] == '_mailfrom' && !validate_email(form)){ error += "Email address is invalid \n"; } } if (error != ''){ alert(error); return false; } } else { return true; } } else { return validate_all();} //incase validate is called with no form element } function getMyObj(form, myVar){ var elem = form.elements; for (j=0; j < elem.length; j++){ if (elem[j].name == myVar){ return elem[j]; } } return null; } function is_radio_checked(nm, form){ var elem = form.elements; var myChk = 0; for (j=0; j < elem.length; j++){ if (elem[j].name && elem[j].name == nm){ if (elem[j].checked){ myChk = 1; } } } return myChk; } function is_chBox_checked(nm){ var myChk = 0; if (nm.checked){ myChk = 1; } return myChk; } function getName(myName, f_names, f_lables){ for (k=0; k < f_names.length; k++){ if (myName.name == f_names[k]){ return f_lables[k]; } } return myName.name; } function is_select_checked(obj){ var mychek = 0; for (m=0; m < obj.options.length; m++){ if (obj.options[m].selected && obj.options[m].value != ""){ mychek = 1; } } return mychek; } function do_error(myNeeded, form, myType){ var f_names = new Array(); var f_lables = new Array(); f_names = form._fieldnames.value.split("|"); f_lables = form._fieldlabels.value.split("|"); var error = "Required " + myType + " field left blank: " + getName(getMyObj(form,myNeeded),f_names,f_lables); error += "\n"; return error; } function validate_email(this_form){ var email_addy = this_form._mailfrom.value; return /^(\w+\.)*([\w-]+)@([\w-]+\.)+([a-zA-Z]{2,4})$/.test(email_addy); }