// form validation code // commence object definition // var checkObject=new Object(); function checkObject(objName_, niceName_, fieldType_) { this.objName=objName_; this.niceName=niceName_; this.fieldType=fieldType_; this.customValidation; this.customValidationMessage; } function checkObject_toString2() { return "Item:"+this.objName; } checkObject.prototype.toString=checkObject_toString2; // constants var TYPE_NORMAL=0; var TYPE_EMAIL=1; var TYPE_COMBO=2; var TYPE_NUMBER=3; var TYPE_MULTIPLE_COMBO=4; var TYPE_COMBO_SB=4; var TYPE_DATE=5; var TYPE_CUSTOM=6; var TYPE_NUMBER_INC_0=7; var TYPE_CHECKBOX=8; // end object definition var objs=new Array(); function reset(){ objs=new Array(); } function removePushOn(fieldName) { for (index in objs) { if (objs[index].objName == fieldName) { objs.splice(index, 1) return; } } } function pushOn(fieldName, niceName, fieldType, customValidation, customValidationMessage) { var newObj = new checkObject(fieldName, niceName, fieldType); newObj.customValidation = customValidation; newObj.customValidationMessage = customValidationMessage; objs.push(newObj); } function checkItem(w, objRef) { w=w.replace(/^\s*|\s*$/g,""); if(objRef.fieldType==TYPE_EMAIL) { return ((w.indexOf(".") > 0) && (w.indexOf("@") > 0)); }else if(objRef.fieldType==TYPE_NORMAL) { return !((w=="")||(w=="{nosel}")); }else if(objRef.fieldType==TYPE_NUMBER) { var wn=parseInt(w); return !isNaN(wn)&&(wn>0); }else if(objRef.fieldType==TYPE_COMBO) { return (w!=-1); }else if(objRef.fieldType==TYPE_COMBO_SB) { return (w>0); }else if(objRef.fieldType==TYPE_MULTIPLE_COMBO) { return (w!=""); }else if(objRef.fieldType==TYPE_DATE) { return validateDate(w,'W','A'); }else if(objRef.fieldType==TYPE_CUSTOM) { return objRef.customValidation(w); }else if(objRef.fieldType==TYPE_CHECKBOX) { return document.getElementById(objRef.objName).checked; }else if(objRef.fieldType==TYPE_NUMBER_INC_0) { var number=parseInt(w); return !isNaN(number)&&(number>=0); } } function checkForm() { var errors=""; var errorCount=0; var w=""; for(i=0;i0) { var finalString="The following errors were detected:\n\n"+errors; if(errorCount>5) { finalString+="\n\n... and "+(errorCount-5)+" more."; } alert(finalString); } return (errorCount==0); } function GetSafeDate(date) { var startDate = date.split('/'); var startDateString = ""; for (var i = startDate.length - 1; i >= 0; i--) { startDateString += startDate[i]; } return startDateString; } function CheckDateRange(startDate, endDate) { //Checks startDate is before endDate var startDateDate = GetDateAsDateObject(startDate); var endDateDate = GetDateAsDateObject(endDate); return (startDateDate <= endDateDate); } function GetDateAsDateObject(date) { var dateArr = date.split("/").reverse(); var dateObj = new Date(); dateObj.setYear(dateArr[0]); dateObj.setMonth(dateArr[1]); dateObj.setDate(dateArr[2]); return dateObj; } // Date Validation Javascript // copyright 30th October 2004, by Stephen Chapman // http://javascript.about.com // You have permission to copy and use this javascript provided that // the content of the script is not changed in any way. function validateDate(datefmt) { myOption = -1; for (i=0; i 0) { result += fld.charAt(i); if (fld.charAt(i) != " ") c = result.length; } } return result.substr(0,c); } var numb = '0123456789'; function isValid(parm,val) { if (parm == "") return true; for (i=0; i -1) dd = dd.substr(0,n); n = dd.lastIndexOf('nd'); if (n > -1) dd = dd.substr(0,n); n = dd.lastIndexOf('rd'); if (n > -1) dd = dd.substr(0,n); n = dd.lastIndexOf('th'); if (n > -1) dd = dd.substr(0,n); n = dd.lastIndexOf(','); if (n > -1) dd = dd.substr(0,n); n = mm.lastIndexOf(','); if (n > -1) mm = mm.substr(0,n); if (!isNum(dd)) return false; if (!isNum(yy)) return false; if (!isNum(mm)) { var nn = mm.toLowerCase(); for (var i=1; i < 13; i++) { if (nn == mth[i] || nn == mth[i].substr(0,3)) { mm = i; i = 13; } } } if (!isNum(mm)) return false; dd = parseFloat(dd); mm = parseFloat(mm); yy = parseFloat(yy); if (yy < 100) yy += 2000; if (yy < 1582 || yy > 4881) return false; if (mm == 2 && (yy%400 == 0 || (yy%4 == 0 && yy%100 != 0))) day[mm-1]++; if (mm < 1 || mm > 12) return false; if (dd < 1 || dd > day[mm-1]) return false; t.setDate(dd); t.setMonth(mm-1); t.setFullYear(yy); if (rng == 'p' || rng == 'P') { if (t > today) return false; } else if (rng == 'f' || rng == 'F') { if (t < today) return false; } else if (rng != 'a' && rng != 'A') { return false; } return true; }