//############################################################################## // Filename: admin_validation.jsp (VIEW) // // Created By: Rebecca Castonguay // // Description: Contains client-side validation routines // // List of Functions Defined: // validEmail // isNumeric // validateAdminSearch // validateCommonFields // validateRegister // clearAllCommonFields // clearAllAdminFields // clearAllStudentFields // validateChangePassword // validateEditProfile // validateLogin // validateTimesheet // clearTimesheet // validateSearchEval // validateEval // clearEval // validateContactUs // clearAllTrainingFields // validateTrainingFields // // Last Modified: // 5/3/00 Rebecca Castonguay updated comments // 5/9/00 Rebecca Castonguay disallow spaces in user_alias field // 5/19/00 Rebecca Castonguay postal_code should allow non-numeric chars // 6/1/00 Rebecca Castonguay Fixed bug where code was still referencing removed // "COURSE_ALERTS" field // // Copyright (c) 2000 USinternetworking, Inc. All Rights Reserved. //############################################################################## var MIN_PASSWORD_LENGTH = 6; function validEmail(email) { var field = email; var str = field.value; if ( window.RegExp ) { var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)"; var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$"; var reg1 = new RegExp(reg1str); var reg2 = new RegExp(reg2str); if (!reg1.test(str) && reg2.test(str)) return true; field.focus(); field.select(); return false; } if(str.indexOf("@") >= 0) return true; field.focus(); field.select(); return false; } function isNumeric(str) { var l; for(l = 0; l < String(str).length; l++) { if(isNaN(parseInt(str.charAt(l), 10))) { if(str.charAt(l) != '-') return false; } } return true; } function validateAdminSearch(form) { if(form.CARDEAN_EMAIL.value != '') { if(!validEmail(form.CARDEAN_EMAIL)) { alert("Please enter a valid email address."); return false; } } return true; } function validateCommonFields(form, validateStudent) { // required fields: first name, last name, address1, city, state, zip, country, home phone, // native language, send info, course alerts if(form.USER_ALIAS.value=='') { alert("Please enter a user name."); return false; } var userID = form.USER_ALIAS.value; var notspace = false; for(c = 0; c < String(userID).length; c++) { if(String(userID).charAt(c) != ' ') { notspace = true; } else if(notspace == true) { alert("There can be no spaces in the user name."); return false; } } if(form.FIRST_NAME.value=='') { alert("Please enter a first name."); return false; } if(form.LAST_NAME.value=='') { alert("Please enter a last name."); return false; } if(form.ADDRESS_1.value=='') { alert("Please enter an address."); return false; } if(form.CITY.value=='') { alert("Please enter a city."); return false; } if(form.STATE.value=='') { alert("Please enter a state or province."); return false; } if(form.POSTAL_CODE.value=='') { alert("Please enter a zip or postal code."); return false; } if(form.USER_COUNTRY.value=='') { alert("Please enter a country."); return false; } if(form.USER_HOME_PHONE.value=='') { alert("Please enter a home phone number."); return false; } if(form.NATIVE_LANGUAGE.value=='') { alert("Please enter a native language."); return false; } if(form.newpassword.value != '') { if(form.newpassword.value.length < MIN_PASSWORD_LENGTH) { alert("New password must be at least " + MIN_PASSWORD_LENGTH + " characters long."); return false; } if(form.newpassword.value != form.checknewpassword.value) { alert("New password and verify new password fields must match."); return false; } } if(form.CARDEAN_EMAIL.value != '') { if(!validEmail(form.CARDEAN_EMAIL)) { alert("Please enter a valid email address."); return false; } } if(validateStudent) { if(form.MANAGER_EMAIL.value != '') { if(!validEmail(form.MANAGER_EMAIL)) { alert("Please enter a valid manager email address."); return false; } } } // phone fields must be only numeric... if(form.USER_HOME_PHONE.value != '') { if(!isNumeric(form.USER_HOME_PHONE.value)) { alert("Please enter only numbers in the home phone number field."); return false; } } if(form.WORK_PHONE.value != '') { if(!isNumeric(form.WORK_PHONE.value)) { alert("Please enter only numbers in the work phone number field."); return false; } } return true; } function validateRegister(form) { // required fields: email, first name, last name, user id, newpassword, checknewpassword, send_info, // and course alerts if(form.CARDEAN_EMAIL.value == '') { alert("Please enter an email address."); return false; } if(!validEmail(form.CARDEAN_EMAIL)) { alert("Please enter a valid email address."); return false; } if(form.FIRST_NAME.value=='') { alert("Please enter a first name."); return false; } if(form.LAST_NAME.value=='') { alert("Please enter a last name."); return false; } if(form.USER_ALIAS.value=='') { alert("Please enter a user name."); return false; } var userID = form.USER_ALIAS.value; var notspace = false; for(c = 0; c < String(userID).length; c++) { if(String(userID).charAt(c) != ' ') { notspace = true; } else if(notspace == true) { alert("There can be no spaces in the user name."); return false; } } if(form.newpassword.value == '') { alert("Please enter a password."); return false; } if(form.newpassword.value.length < MIN_PASSWORD_LENGTH) { alert("New password must be at least " + MIN_PASSWORD_LENGTH + " characters long."); return false; } if(form.newpassword.value != form.checknewpassword.value) { alert("New password and verify new password fields must match."); return false; } return true; } function clearAllCommonFields(form) { form.USER_ALIAS.value = ""; form.date.value = ""; form.origpassword.value = ""; form.newpassword.value = ""; form.checknewpassword.value = ""; form.FIRST_NAME.value = ""; form.MIDDLE_INITIAL.value = ""; form.LAST_NAME.value = ""; form.CARDEAN_EMAIL.value = ""; form.ADDRESS_1.value = ""; form.ADDRESS_2.value = ""; form.CITY.value = ""; form.STATE.value = ""; form.POSTAL_CODE.value = ""; form.USER_COUNTRY.value = ""; form.USER_HOME_PHONE.value = ""; form.WORK_PHONE.value = ""; form.NATIVE_LANGUAGE.value = ""; form.OTHER_LANGUAGE.value = ""; form.SEND_INFORMATION.selectedIndex = 0; form.INTEREST_STUDENT.selectedIndex = 0; form.INTEREST_SPONSOR.selectedIndex = 0; form.INTEREST_INSTRUCTOR.selectedIndex = 0; } function clearAllAdminFields(form) { clearAllCommonFields(form); form.ADMIN_TYPE.value = ""; } function clearAllStudentFields(form) { clearAllCommonFields(form); form.DEPARTMENT.value = ""; form.MANAGER_FIRST_NAME.value = ""; form.MANAGER_LAST_NAME.value = ""; form.MANAGER_EMAIL.value = ""; } function validateChangePassword(form) { if(form.origpassword.value == '') { alert("Original password required."); return false; } if(form.newpassword.value == '') { alert("New password required."); return false; } if(form.newpassword.value.length < MIN_PASSWORD_LENGTH) { alert("New password must be at least " + MIN_PASSWORD_LENGTH + " characters long."); return false; } if(form.checknewpassword.value == '') { alert("New password check field required."); return false; } if(form.newpassword.value != form.checknewpassword.value) { alert("New password check field must match new password field."); return false; } return true; } function validateEditProfile(form, validateStudent) { // required fields: first name, last name, address1, city, state, zip, country, home phone, // native language, send info, course alerts if(form.FIRST_NAME.value=='') { alert("Please enter a first name."); return false; } if(form.LAST_NAME.value=='') { alert("Please enter a last name."); return false; } if(form.ADDRESS_1.value=='') { alert("Please enter an address."); return false; } if(form.CITY.value=='') { alert("Please enter a city."); return false; } if(form.STATE.value=='') { alert("Please enter a state or province."); return false; } if(form.POSTAL_CODE.value=='') { alert("Please enter a zip or postal code."); return false; } if(form.USER_COUNTRY.value=='') { alert("Please enter a country."); return false; } if(form.USER_HOME_PHONE.value=='') { alert("Please enter a home phone number."); return false; } if(form.NATIVE_LANGUAGE.value=='') { alert("Please enter a native language."); return false; } // email must be valid if(!validEmail(form.CARDEAN_EMAIL)) { alert("Please enter a valid email address."); return false; } // phone fields must be only numeric... if(form.USER_HOME_PHONE.value != '') { if(!isNumeric(form.USER_HOME_PHONE.value)) { alert("Please enter only numbers in the home phone number field."); return false; } } if(form.WORK_PHONE.value != '') { if(!isNumeric(form.WORK_PHONE.value)) { alert("Please enter only numbers in the work phone number field."); return false; } } // if manager email exists, it must be valid... if(validateStudent) { if(form.MANAGER_EMAIL.value != '') { if(!validEmail(form.MANAGER_EMAIL)) { alert("Please enter a valid manager email address."); return false; } } } return true; } function validateLogin(form) { // required fields: User ID, password if(form.USER_ALIAS.value=='') { alert("Please enter a user name."); return false; } if(form.origpassword.value=='') { alert("Please enter a password."); return false; } return true; } function validateTimesheet(form) { // required fields: TIMESHEET_NO_SECTIONS (numeric), TIMESHEET_DISCUSSION_MINS (numeric), // TIMESHEET_GRADING_MINS (numeric), TIMESHEET_STUDENT_EMAIL_MINS (numeric), // TIMESHEET_CARDEAN_TODO_MINS (numeric), TIMESHEET_TECH_TROUBLE_MINS (numeric), // TIMESHEET_OTHER_MINS (numeric) if(form.TIMESHEET_NO_SECTIONS.value=='') { alert("Please enter a number of sections."); return false; } if(form.TIMESHEET_DISCUSSION_MINS.value=='' || form.TIMESHEET_GRADING_MINS.value=='' || form.TIMESHEET_STUDENT_EMAIL_MINS.value=='' || form.TIMESHEET_CARDEAN_TODO_MINS.value=='' || form.TIMESHEET_TECH_TROUBLE_MINS.value=='' || form.TIMESHEET_OTHER_MINS.value=='') { alert("You must enter a number in each of the time fields."); return false; } if(!isNumeric(form.TIMESHEET_DISCUSSION_MINS.value) || !isNumeric(form.TIMESHEET_GRADING_MINS.value) || !isNumeric(form.TIMESHEET_STUDENT_EMAIL_MINS.value) || !isNumeric(form.TIMESHEET_CARDEAN_TODO_MINS.value) || !isNumeric(form.TIMESHEET_TECH_TROUBLE_MINS.value) || !isNumeric(form.TIMESHEET_OTHER_MINS.value)) { alert("You may only enter numbers in the time fields."); return false; } var total_time = form.TIMESHEET_DISCUSSION_MINS.value + form.TIMESHEET_GRADING_MINS.value + form.TIMESHEET_STUDENT_EMAIL_MINS.value + form.TIMESHEET_CARDEAN_TODO_MINS.value + form.TIMESHEET_TECH_TROUBLE_MINS.value + form.TIMESHEET_OTHER_MINS.value; if(total_time == 0) { alert("The sum of all time fields cannot be 0."); return false; } return true; } function clearTimesheet(form) { form.TIMESHEET_NO_SECTIONS.value = '1'; form.TIMESHEET_DISCUSSION_MINS.value = '0'; form.TIMESHEET_GRADING_MINS.value = '0'; form.TIMESHEET_STUDENT_EMAIL_MINS.value = '0'; form.TIMESHEET_CARDEAN_TODO_MINS.value = '0'; form.TIMESHEET_TECH_TROUBLE_MINS.value = '0'; form.TIMESHEET_OTHER_MINS.value = '0'; form.TIMESHEET_COMMENTS.value = ""; form.TIMESHEET_PROD_ID.selectedIndex = 0; return false; } function validateSearchEval(form) { return true; } function local_isAnythingChecked(radioArray, num) { for(b = 0; b < num; b++) { if(radioArray[b].checked == true) return true; } return false; } function validateEval(form) { if(local_isAnythingChecked(form.EVAL_ANSWER01, 5) == false) { alert("please answer question #3"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER02, 2) == false) { alert("please answer question #4"); return false; } // did the user report technical issues? if(form.EVAL_ANSWER02[0].checked == true) { if(form.EVAL_ANSWER31.value == "" && form.EVAL_ANSWER32.value == "") { alert("please answer question #5"); return false; } if(form.EVAL_ANSWER31.value != "") { if(local_isAnythingChecked(form.EVAL_ANSWER03, 5) == false) { alert("please answer question #6"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER04, 5) == false) { alert("please answer question #7"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER05, 4) == false) { alert("please answer question #8"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER06, 3) == false) { alert("please answer question #9"); return false; } } if(form.EVAL_ANSWER32.value != "") { if(local_isAnythingChecked(form.EVAL_ANSWER07, 5) == false) { alert("please answer question #11"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER08, 5) == false) { alert("please answer question #12"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER09, 4) == false) { alert("please answer question #13"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER10, 3) == false) { alert("please answer question #14"); return false; } } } if(local_isAnythingChecked(form.EVAL_ANSWER11, 6) == false) { alert("please answer question #15"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER12, 6) == false) { alert("please answer question #16"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER13, 6) == false) { alert("please answer question #17"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER14, 6) == false) { alert("please answer question #18"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER15, 6) == false) { alert("please answer question #19"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER16, 6) == false) { alert("please answer question #20"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER17, 6) == false) { alert("please answer question #21"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER18, 6) == false) { alert("please answer question #22"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER19, 6) == false) { alert("please answer question #23"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER20, 6) == false) { alert("please answer question #24"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER21, 6) == false) { alert("please answer question #25"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER22, 6) == false) { alert("please answer question #26"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER23, 6) == false) { alert("please answer question #27"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER24, 6) == false) { alert("please answer question #28"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER25, 6) == false) { alert("please answer question #29"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER26, 6) == false) { alert("please answer question #30"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER27, 6) == false) { alert("please answer question #31"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER28, 6) == false) { alert("please answer question #32"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER29, 6) == false) { alert("please answer question #33"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER30, 6) == false) { alert("please answer question #34"); return false; } if(form.EVAL_ANSWER33.value == "") { alert("please answer question #35"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER36, 5) == false) { alert("please answer question #36"); return false; } if(local_isAnythingChecked(form.EVAL_ANSWER37, 5) == false) { alert("please answer question #37"); return false; } if(form.EVAL_ANSWER34.value == "") { alert("please answer question #38"); return false; } if(form.EVAL_ANSWER35.value == "") { alert("please answer question #39"); return false; } return true; } function local_uncheckAll(radioArray, num) { for(b = 0; b < num; b++) radioArray[b].checked = false; } function clearEval(form) { local_uncheckAll(form.EVAL_ANSWER01, 5); local_uncheckAll(form.EVAL_ANSWER02, 2); local_uncheckAll(form.EVAL_ANSWER03, 5); local_uncheckAll(form.EVAL_ANSWER04, 5); local_uncheckAll(form.EVAL_ANSWER05, 4); local_uncheckAll(form.EVAL_ANSWER06, 3); local_uncheckAll(form.EVAL_ANSWER07, 5); local_uncheckAll(form.EVAL_ANSWER08, 5); local_uncheckAll(form.EVAL_ANSWER09, 4); local_uncheckAll(form.EVAL_ANSWER10, 3); local_uncheckAll(form.EVAL_ANSWER11, 6); local_uncheckAll(form.EVAL_ANSWER12, 6); local_uncheckAll(form.EVAL_ANSWER13, 6); local_uncheckAll(form.EVAL_ANSWER14, 6); local_uncheckAll(form.EVAL_ANSWER15, 6); local_uncheckAll(form.EVAL_ANSWER16, 6); local_uncheckAll(form.EVAL_ANSWER17, 6); local_uncheckAll(form.EVAL_ANSWER18, 6); local_uncheckAll(form.EVAL_ANSWER19, 6); local_uncheckAll(form.EVAL_ANSWER20, 6); local_uncheckAll(form.EVAL_ANSWER21, 6); local_uncheckAll(form.EVAL_ANSWER22, 6); local_uncheckAll(form.EVAL_ANSWER23, 6); local_uncheckAll(form.EVAL_ANSWER24, 6); local_uncheckAll(form.EVAL_ANSWER25, 6); local_uncheckAll(form.EVAL_ANSWER26, 6); local_uncheckAll(form.EVAL_ANSWER27, 6); local_uncheckAll(form.EVAL_ANSWER28, 6); local_uncheckAll(form.EVAL_ANSWER29, 6); local_uncheckAll(form.EVAL_ANSWER30, 6); local_uncheckAll(form.EVAL_ANSWER36, 5); local_uncheckAll(form.EVAL_ANSWER37, 5); form.EVAL_ANSWER31.value = ""; form.EVAL_ANSWER32.value = ""; form.EVAL_ANSWER33.value = ""; form.EVAL_ANSWER34.value = ""; form.EVAL_ANSWER35.value = ""; return false; } function validateContactUs(form) { // required fields: first name, last name, email, subject, comment if(form.firstName.value=='') { alert("Please enter a first name."); return false; } if(form.lastName.value=='') { alert("Please enter a last name."); return false; } if(form.email.value=='') { alert("Please enter an email address."); return false; } if(!validEmail(form.email)) { alert("Please enter a valid email address."); return false; } if(form.subject.value=='') { alert("Please enter a subject."); return false; } if(form.comment.value=='') { alert("Please enter a comment."); return false; } return true; } function clearAllTrainingFields(form) { form.TRAINING_COMMENTS.value = ""; } function validateTrainingFields(form) { if(form.TRAINING_COMMENTS.value=='') { alert("Please enter a comment."); return false; } }