function validateFormOnSubmit(theForm) { var reason = ""; reason += ValidateFName(theForm.fname); reason += ValidateLName(theForm.Lname); reason += ValidateAddress1(theForm.address1); reason += ValidateCity(theForm.city); reason += ValidateState(theForm.state); reason += ValidateZip(theForm.zip); reason += validatePhone(theForm.phone); if (theForm.fax.value != ""){ reason += validateFax(theForm.fax); } if (theForm.mobile.value != ""){ reason += validateMobile(theForm.mobile); } reason += validateEmail(theForm.email); reason += validateUsername(theForm.username); reason += validatePassword(theForm.password); reason += ValidateQuestions(theForm.Answer1); reason += ValidateQuestions(theForm.Answer2); reason += ValidateQuestions(theForm.Answer3); reason += ValidateQuestions(theForm.Answer4); reason += ValidateQuestions(theForm.Answer5); //reason += validateConfirmPassword(theForm.password,theForm.Confpass); //reason += FrontPage_Form1_Validator(theForm.course); //reason += validateEmpty(theForm.from); if (reason != "") { alert("Some fields need correction:\n" + reason); return false; } return true; } function FrontPage_Form1_Validator(fld) { var error = ""; if (fld.selectedIndex == 0) { //error= fld.selectedIndex.options[fld.options.selectedIndex].value error = "The first \"course\" option is not a valid selection. Please choose one of the other options."; fld.style.background = 'Yellow'; } else { //error= fld.selectedIndex.value; fld.style.background = 'White'; } return error; } function ValidateQuestions(fld) { var error = ""; if (fld.value == "") { fld.style.background = 'Yellow'; error = "Each question must be answered.\n"; } else if ((fld.value.length < 4) || (fld.value.length > 40)) { fld.style.background = 'Yellow'; error = "Each answer must be at least 5 characters and no more than 40 characters.\n"; } else { fld.style.background = 'White'; } return error; } function ValidateFName(fld) { var error = ""; if (fld.value == "") { fld.style.background = 'Yellow'; error = "Please enter your first name.\n"; } else { fld.style.background = 'White'; } return error; } function ValidateLName(fld) { var error = ""; if (fld.value == "") { fld.style.background = 'Yellow'; error = "Please enter your last name.\n"; } else { fld.style.background = 'White'; } return error; } function ValidateAddress1(fld) { var error = ""; if (fld.value == "") { fld.style.background = 'Yellow'; error = "Please enter your address.\n"; } else { fld.style.background = 'White'; } return error; } function ValidateCity(fld) { var error = ""; if (fld.value == "") { fld.style.background = 'Yellow'; error = "Please enter a city.\n"; } else { fld.style.background = 'White'; } return error; } function ValidateState(fld) { var error = ""; if (fld.selectedIndex == 0) { error = "Please select a state."; fld.style.background = 'Yellow'; } else { fld.style.background = 'White'; } return error; } function ValidateZip(fld) { //later, check for 5 digits var error = ""; if (fld.value == "") { fld.style.background = 'Yellow'; error = "Please enter a zip code.\n"; } else { fld.style.background = 'White'; } return error; } function validateEmpty(fld) { var error = ""; if (fld.value.length == 0) { fld.style.background = 'Yellow'; error = "The required field has not been filled in.\n" } else { fld.style.background = 'White'; } return error; } function validateUsername(fld) { var error = ""; var illegalChars = /\W/; // allow letters, numbers, and underscores if (fld.value == "") { fld.style.background = 'Yellow'; error = "Please enter a username.\n"; } else if ((fld.value.length < 5) || (fld.value.length > 15)) { fld.style.background = 'Yellow'; error = "Usernames must be at least 5 characters and no more than 15 characters.\n"; } else if (illegalChars.test(fld.value)) { fld.style.background = 'Yellow'; error = "The username contains illegal characters.\n"; } else { fld.style.background = 'White'; } return error; } function validatePassword(fld) { var error = ""; var illegalChars = /[\W_]/; // allow only letters and numbers if (fld.value == "") { fld.style.background = 'Yellow'; error = "Please enter a password.\n"; } else if ((fld.value.length < 7) || (fld.value.length > 15)) { error = "Your password must be more then 7 characters and less then 15 characters \n"; fld.style.background = 'Yellow'; } else if (illegalChars.test(fld.value)) { error = "The password contains illegal characters.\n"; fld.style.background = 'Yellow'; } else if (!((fld.value.search(/(a-z)+/)) && (fld.value.search(/(0-9)+/)))) { error = "The password must contain at least one numeral.\n"; fld.style.background = 'Yellow'; } else { fld.style.background = 'White'; } return error; } function validateConfirmPassword(fld1, fld2) { var error = ""; if (fld1.value != fld2.value) { error = "Your passwords do not match.\n"; fld.style.background = 'Yellow'; } else { fld.style.background = 'White'; } return error; } function trim(s) { return s.replace(/^\s+|\s+$/, ''); } function validateEmail(fld) { var error=""; var tfld = trim(fld.value); // value of field with whitespace trimmed off var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ; var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ; if (fld.value == "") { fld.style.background = 'Yellow'; error = "Please enter an email address.\n"; } else if (!emailFilter.test(tfld)) { //test email for illegal characters fld.style.background = 'Yellow'; error = "Please enter a valid email address.\n"; } else if (fld.value.match(illegalChars)) { fld.style.background = 'Yellow'; error = "The email address contains illegal characters.\n"; } else { fld.style.background = 'White'; } return error; } function validatePhone(fld) { var error = ""; var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, ''); if (fld.value == "") { error = "Please enter a phone number.\n"; fld.style.background = 'Yellow'; } else if (isNaN(parseInt(stripped))) { error = "The phone number contains illegal characters.\n"; fld.style.background = 'Yellow'; } else if (!(stripped.length == 10)) { error = "The phone number is the wrong length. Make sure you included an area code.\n"; fld.style.background = 'Yellow'; } else { fld.style.background = 'White'; } return error; } function validateFax(fld) { var error = ""; var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, ''); if (isNaN(parseInt(stripped))) { error = "The fax number contains illegal characters.\n"; fld.style.background = 'Yellow'; } else if (!(stripped.length == 10)) { error = "The fax number is the wrong length. Make sure you included an area code.\n"; fld.style.background = 'Yellow'; } else { fld.style.background = 'White'; } return error; } function validateMobile(fld) { var error = ""; var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, ''); if (isNaN(parseInt(stripped))) { error = "The mobile number contains illegal characters.\n"; fld.style.background = 'Yellow'; } else if (!(stripped.length == 10)) { error = "The mobile number is the wrong length. Make sure you included an area code.\n"; fld.style.background = 'Yellow'; } else { fld.style.background = 'White'; } return error; } /** * DHTML date validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/) */ // Declaring valid date character, minimum year and maximum year var dtCh= "/"; var minYear=1900; var maxYear=2100; function validateDate(fld) //later, check that date is in the future { var error = ""; if (isDate(fld.graddate.value)==false){ fld.graddate.style.background = 'Yellow'; //error = "The form must be correctly filled in before your registration can be submitted.\n"; return false; //? } else { fld.graddate.style.background = 'White'; return true; } } function isDate(dtStr){ var daysInMonth = DaysArray(12) var pos1=dtStr.indexOf(dtCh) var pos2=dtStr.indexOf(dtCh,pos1+1) var strMonth=dtStr.substring(0,pos1) var strDay=dtStr.substring(pos1+1,pos2) var strYear=dtStr.substring(pos2+1) strYr=strYear if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1) if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1) for (var i = 1; i <= 3; i++) { if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1) } month=parseInt(strMonth) day=parseInt(strDay) year=parseInt(strYr) if (pos1==-1 || pos2==-1){ alert("The date format should be : mm/dd/yyyy") return false } if (strMonth.length<1 || month<1 || month>12){ alert("Please enter a valid month") return false } if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){ alert("Please enter a valid day") return false } if (strYear.length != 4 || year==0 || yearmaxYear){ alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear) return false } if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){ alert("Please enter a valid date") return false } return true } function isInteger(s){ var i; for (i = 0; i < s.length; i++){ // Check that current character is number. var c = s.charAt(i); if (((c < "0") || (c > "9"))) return false; } // All characters are numbers. return true; } function stripCharsInBag(s, bag){ var i; var returnString = ""; // Search through string's characters one by one. // If character is not in bag, append to returnString. for (i = 0; i < s.length; i++){ var c = s.charAt(i); if (bag.indexOf(c) == -1) returnString += c; } return returnString; } function daysInFebruary (year){ // February has 29 days in any year evenly divisible by four, // EXCEPT for centurial years which are not also divisible by 400. return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 ); } function DaysArray(n) { for (var i = 1; i <= n; i++) { this[i] = 31 if (i==4 || i==6 || i==9 || i==11) {this[i] = 30} if (i==2) {this[i] = 29} } return this }