/** * Form validation * Check for mandatory field and type field * first arg = field name (input tag attribute name) * second arg = form label (user side) * third arg = 'R' for mandatory field, 'isEmail' if e-mail required, 'inRange' if numeric required * and so on... **/ function MM_validateForm() { //v4.0 var i,j,p,q,nm,field,errorField,test,label,type,value,num,min,max,errors='',args=MM_validateForm.arguments; errorField = null; form = document.forms["htmlForm"]; try { for (i=0; i<(args.length-2); i+=3) { field = form.elements[args[i]]; test=args[i+2]; label=args[i+1]; if (field) { if (field.length && !field.type) { type = field[0].type; } else { type = field.type; } if (type != 'text' && type != 'radio' && type != 'checkbox' && type != 'select-one' && type != 'select-multiple') { throw "errorType"; } if (!field.length) { if (type == 'text') { value = field.value; if (value!='') { if (test.indexOf('isEmail')!=-1) { p=value.indexOf('@'); if (p<1 || p==(value.length-1)) { errors+='- '+label+' must contain an e-mail address.\n'; errorField = (errorField != null)? errorField : field; } } else if (test!='R') { num = parseFloat(value); if (isNaN(value)) { errors+='- '+label+' must contain a number.\n'; errorField = (errorField != null)? errorField : field; } if (test.indexOf('inRange') != -1) { p=test.indexOf(':'); min=test.substring(8,p); max=test.substring(p+1); if (num