var nErr = 0; function doFormValidationCheckDate(datefield) { // var sDatestyle = "US"; // United States date style var sDatestyle = "EU"; // European date style // var sMonthStyle = "STR"; // month as string var sMonthStyle = "NUM"; // month as number var sDate = datefield.value; var sDateArray; var sDay; var sMonth; var sYear; var nDay; var nMonth; var nYear; var bFound = false; var sSeparatorArray = new Array("/"); // var sSeparatorArray = new Array("-", " ", "/", "."); var sMonthArray = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"); if (sDate.length < 1) { return true; } for (var nElementNr = 0; nElementNr < sSeparatorArray.length; nElementNr++) { if (sDate.indexOf(sSeparatorArray[nElementNr]) != -1) { sDateArray = sDate.split(sSeparatorArray[nElementNr]); if (sDateArray.length != 3) { nErr = 1; return false; } else { sDay = sDateArray[0]; sMonth = sDateArray[1]; sYear = sDateArray[2]; } bFound = true; break; } } if (bFound == false) { if (sDate.length>5) { sDay = sDate.substr(0, 2); sMonth = sDate.substr(2, 2); sYear = sDate.substr(4); } } // US style if (sDatestyle == "US") { var sTemp = sDay; sDay = sMonth; sMonth = sTemp; } nDay = parseInt(sDay, 10); if (isNaN(nDay)) { nErr = 2; return false; } nMonth = parseInt(sMonth, 10); if (isNaN(nMonth)) { for (var i = 0; i < 12; i++) { if (sMonth.toUpperCase() == sMonthArray[i].toUpperCase()) { nMonth = i+1; sMonth = sMonthArray[i]; break; } } if (isNaN(nMonth)) { nErr = 3; return false; } } nYear = parseInt(sYear, 10); if (isNaN(nYear)) { nErr = 4; return false; } // if (nYear < 90) { // nYear += 2000; // } else if (nYear < 100) { // nYear += 1900; // } else if (nYear < 1000) { // nErr = 4; // return false; // } if (nYear < 1900) { nErr = 4; return false; } if (nMonth > 12 || nMonth < 1) { nErr = 5; return false; } if ((nMonth == 1 || nMonth == 3 || nMonth == 5 || nMonth == 7 || nMonth == 8 || nMonth == 10 || nMonth == 12) && (nDay > 31 || nDay < 1)) { nErr = 6; return false; } if ((nMonth == 4 || nMonth == 6 || nMonth == 9 || nMonth == 11) && (nDay > 30 || nDay < 1)) { nErr = 7; return false; } if (nMonth == 2) { if (nDay < 1) { nErr = 8; return false; } if (doFormValidationCheckLeapYear(nYear) == true) { if (nDay > 29) { nErr = 9; return false; } } else { if (nDay > 28) { nErr = 10; return false; } } } if (nDay < 10) { sDay = "0" + nDay; } else { sDay = "" + nDay; } if (sMonthStyle == "STR") { if (sDatestyle == "US") { datefield.value = sMonthArray[nMonth-1] + " " + sDay + " " + nYear; } else { datefield.value = sDay + " " + sMonthArray[nMonth-1] + " " + nYear; } } else { if (nMonth < 10) { sMonth = "0" + nMonth; } else { sMonth = "" + nMonth; } // if (sDatestyle == "US") { // datefield.value = sMonth + "." + sDay + "." + nYear; // } else { // datefield.value = sDay + "." + sMonth + "." + nYear; // } } nErr = 0; return true; } function doFormValidationCheckLeapYear(intYear) { if (intYear % 100 == 0) { if (intYear % 400 == 0) { return true } } else { if ((intYear % 4) == 0) { return true } } return false } function doFormValidationCheckTime(objName) { var sTime; var sTimeArray; var sHour; var sMinute; var nHour; var nMinute; var sSeparatorArray = new Array(":", " ", "/", ".", "-"); var nElementNr; var timefield = objName; var bFound = false; sTime = objName.value; if (sTime.length < 1) { return true; } for (nElementNr = 0; nElementNr < sSeparatorArray.length; nElementNr++) { if (sTime.indexOf(sSeparatorArray[nElementNr]) != -1) { sTimeArray = sTime.split(sSeparatorArray[nElementNr]); if (sTimeArray.length != 2) { nErr = 1; return false; } else { sHour = sTimeArray[0]; sMinute = sTimeArray[1]; bFound = true; break; } } } if (bFound == false) { nErr = 2; return false; } nHour = parseInt(sHour, 10); if (isNaN(nHour)) { nErr = 3; return false; } nMinute = parseInt(sMinute, 10); if (isNaN(nMinute)) { nErr = 4; return false; } if (nHour > 23) { nErr = 5; return false; } if (nMinute > 59) { nErr = 6; return false; } if (nHour < 10) { sHour = "0" + nHour; } else { sHour = "" + nHour; } if (nMinute < 10) { sMinute = "0" + nMinute; } else { sMinute = "" + nMinute; } nErr = 0; objName.value = sHour + ":" + sMinute; return true; } function doFormValidationCheckElements(aFormElements) { for (i=0; i aFormElements[i][4]) { alert("The " + aFormElements[i][0] + " can be a maximum of " + aFormElements[i][4] + " characters)."); aFormElements[i][1].focus(); return false; } break; case "area": if (aFormElements[i][1].value.length < aFormElements[i][3]) { alert("The length for " + aFormElements[i][0] + " must be a minimum " + aFormElements[i][3] + " character(s)."); aFormElements[i][1].focus(); return false; } if (aFormElements[i][1].value.length > aFormElements[i][4]) { alert("The " + aFormElements[i][0] + " can be a maximum of " + aFormElements[i][4] + " character(s)."); aFormElements[i][1].focus(); return false; } break; case "number": var s = aFormElements[i][1].value.replace(/\\D/g,""); if (isNaN(s)) { alert(aFormElements[i][0] + " must be a numerical value!"); aFormElements[i][1].focus(); return false; } if (s == "") { alert(aFormElements[i][0] + " must be a numerical value!"); aFormElements[i][1].focus(); return false; } aFormElements[i][1].value=s; if (s < aFormElements[i][3]) { alert("The minimum value for " + aFormElements[i][0] + " is " + aFormElements[i][3] + "!"); aFormElements[i][1].focus(); return false; } if (s > aFormElements[i][4]) { alert(aFormElements[i][0] + " " + aFormElements[i][4] + " is too large!"); aFormElements[i][1].focus(); return false; } break; case "date": if (aFormElements[i][3] == 0 ) { break; } var s = aFormElements[i][1].value.replace(/\\s*/,""); aFormElements[i][1].value=s; if (s.length == 0 && aFormElements[i][3] > 0) { alert("The " + aFormElements[i][0] + " must be completed."); aFormElements[i][1].focus(); return false; } if (s.length != 10 ) { alert("The " + aFormElements[i][0] + " is not a valid date. It must be 'dd/mm/yyyy'"); aFormElements[i][1].focus(); return false; } if (s.charAt(2) != "/" || s.charAt(5) != "/") { alert("The " + aFormElements[i][0] + " is not a valid date. It must be 'dd/mm/yyyy'"); aFormElements[i][1].focus(); return false; } if (!doFormValidationCheckDate(aFormElements[i][1])) { alert("The " + aFormElements[i][0] + " is not a valid date."); aFormElements[i][1].focus(); return false; } break; case "time": var s = aFormElements[i][1].value.replace(/\\s*/,""); aFormElements[i][1].value=s; if (s.length == 0 && aFormElements[i][3] > 0) { alert("The " + aFormElements[i][0] + " must be completed."); aFormElements[i][1].focus(); return false; } if (!doFormValidationCheckTime(aFormElements[i][1])) { alert("The " + aFormElements[i][0] + " is not a valid time."); aFormElements[i][1].focus(); return false; } break; case "select": var s = aFormElements[i][1].value.replace(/\\D/g,""); if (s == "") { alert("No " + aFormElements[i][0] + " has been selected!"); aFormElements[i][1].focus(); return false; } break; default: alert("FormValidation: What type did the programmer mean (" + aFormElements[i][2]+")?!"); aFormElements[i][1].focus(); return false; break; } } return true; }