var gStrAlertStart, gStrAlertBody, gStrAlertEnd, gStrAlertIndent; gStrAlertStart = 'The following fields are invalid:\n'; gStrAlertIndent = '\n - ' gStrAlertEnd = '' function ggSubmit(inThisForm){ if(parseInt(inThisForm.ggGo.value)==0){ gStrAlertBody = ''; var boolValid = true; var strValObjects = new String(inThisForm.ggObjects.value); var strValCalls = new String(inThisForm.ggCalls.value); var strValLabels = new String(inThisForm.ggLabels.value); var arrValObjects = strValObjects.split(','); var arrValCalls = strValCalls.split(','); var arrValLabels = strValLabels.split(','); for(x=0;x< arrValObjects.length;x++){ var formObj = inThisForm[arrValObjects[x]]; switch(parseInt(arrValCalls[x])){ case 1: //text //alert('case text - ' + formObj); if(!valText(formObj,arrValLabels[x])){ if(boolValid){boolValid = false;} } break; case 2: //Select - ListBox //alert('case select - ' + formObj); if(!valSelect(formObj,arrValLabels[x])){ if(boolValid){boolValid = false;} } break; case 3: //radio & Checkbox if(!valRadioCheckbox(formObj,arrValLabels[x])){ if(boolValid){boolValid = false;} } break; case 4: //email //alert('case email - ' + formObj); if(!valEmail(formObj,arrValLabels[x])){ if(boolValid){boolValid = false;} } break; case 5: //Date //alert('case Date - ' + formObj); if(!valDate(formObj,arrValLabels[x])){ if(boolValid){boolValid = false;} } break; default: alert('Error: ' + arrValCalls[x]); break; } } if (boolValid){ inThisForm.ggGo.value = 1; inThisForm.method = 'post'; inThisForm.submit(); }else{ alert(gStrAlertStart + gStrAlertBody + gStrAlertEnd); } }else{ alert('This page is currently submitting.\nClick OK to continue.'); } } function valSelect(inFormObj,inObjLabel){ if(inFormObj.selectedIndex == 0){ gStrAlertBody = gStrAlertBody + gStrAlertIndent + inObjLabel + ' (make a selection)'; return false; }else{ return true; } } function valText(inFormObj,inObjLabel){ if (trim(inFormObj.value)==""){ gStrAlertBody = gStrAlertBody + gStrAlertIndent + inObjLabel + ' (required)'; return false; }else{ inFormObj.value = noReturn(inFormObj.value); return true; } } function valText_allowReturn(inFormObj,inObjLabel){ if (trim(inFormObj.value)==""){ gStrAlertBody = gStrAlertBody + gStrAlertIndent + inObjLabel + ' (required)'; return false; }else{ return true; } } function trim(inStr){ return(inStr.replace(/^\s+/, '').replace(/\s+$/, '')); } function noReturn(inStr){ return(inStr.replace(/\r\n|\r|\n/g," ")); } function valEmail(inFormObj,inObjLabel){ if(valText(inFormObj,inObjLabel)){ if(isEmail(inFormObj.value)){ if(isLegalEmail(inFormObj.value)){ return true; }else{ gStrAlertBody = gStrAlertBody + gStrAlertIndent + inObjLabel + ' (invalid email address)'; return false; } }else{ gStrAlertBody = gStrAlertBody + gStrAlertIndent + inObjLabel + ' (invalid email address)'; return false; } }else{ return false; } } function isLegalEmail(s) { var alpha = "abcdefghijklmnopqrstuvwxyz.-_@ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'" for (var i=0; i< s.length; i++) { var c = s.charAt(i); // illegal charachter found if (alpha.indexOf(c) == -1) { return false; } } return true; } function isEmail (s){ // there must be >= 1 character before @, so we // start looking at character position 1 // (i.e. second character) var i = 1; var sLength = s.length; // look for @ while ((i < sLength) && (s.charAt(i) != "@")){ i++ } if ((i >= sLength) || (s.charAt(i) != "@")){ return false; }else{ i += 2; } // look for . while ((i < sLength) && (s.charAt(i) != ".")){ i++ } // there must be at least one character after the . if ((i >= sLength - 1) || (s.charAt(i) != ".")){ return false; }else{ return true; } } function valDate(inFormObj,inObjLabel){ if(valText(inFormObj,inObjLabel)){ var reDate = /^((29(-|\/)0?2(-|\/)(19(0[48]|[2468][048]|[13579][26])|2000))|(((3[01]|[12][0-9]|0?[1-9])(-|\/)(0?[13578]|1[02]))|((30|[12][0-9]|0?[1-9])(-|\/)(0?[469]|11))|(([12][0-8]|19|0?[1-9])(-|\/)(0?2)))(-|\/)(19\d{2}|2\d{3}))$/ if(!reDate.test(inFormObj.value)){ gStrAlertBody = gStrAlertBody + gStrAlertIndent + inObjLabel + ' (invalid Date)'; return false; }else{ return true; } }else{ return false; } } function valRadioCheckbox(inFormObj,inObjLabel){ var boolChecked = false; if(!inFormObj.length){ if (inFormObj.checked){ return true; }else{ gStrAlertBody = gStrAlertBody + gStrAlertIndent + inObjLabel + ' (make a selection)'; return false; } }else{ for(i=0;i< inFormObj.length;i++){ if (inFormObj[i].checked){ boolChecked = true; } } if(!boolChecked){ gStrAlertBody = gStrAlertBody + gStrAlertIndent + inObjLabel + ' (make a selection)'; return false; }else{ return true; } } }