var fieldValidationArray = new Array() ; // will act like our collection of validation objects var indexToNameMap = new Array(); // define array to hold names that are the index to fieldValidationArray, to help iterate serially var rangePair = new Array(); // will contain arrays with two elements whose elemets are field objects // the frst element will be the specification and the other is the range var chkBoxEnabledCount=0; var chkBoxEnabledMax = 0; var validationSucessful=true; var rangeChecksDisabled = false; /************************* * validation object * *************************/ //Validation object Constructor function validationObject(fieldName,displayName,optionalFlag,minEntryFlag,dataType,minValue, maxValue, badIndexValue) { var valObject = new Object(); valObject.fieldName = fieldName || "Un-named"; //name that appears in the name attribute of the field valObject.displayName = displayName || "Un-named"; // a descriptive name, for error message displays valObject.optionalFlag = optionalFlag || true; // True indicates the field is optional false=required valObject.minEntryFlag = minEntryFlag || false; // field participates in the "minimum entry" rule valObject.dataType = dataType || "String"; // type of data, String, Number (only Number is used for data validation) if (isEmpty(minValue)) valObject.minValue='none'; else valObject.minValue = minValue ; // minimum llowable value if data type is Number valObject.maxValue = maxValue || 'none'; // Maximum allowable value if the datatype is number valObject.badOptionIndex = badIndexValue || -1; valObject.alternateValidation = null; valObject.additionalValidation=null; valObject.enabled = true; valObject.isEnabled = isEnabled; return valObject; } /*************************************************** * Class Methods for the Validation object * ***************************************************/ function isEnabled() { if (this.enabled==true) return true; else return false; } /*************************************************** * Helper Methods for the Validation object * ***************************************************/ function enableField(formName,fieldName,enabledFlag) { if (isNull(formName) || isNull(fieldName) || isNull(enabledFlag)) return false; //alert(formName+" / "+fieldName+" / "+enabledFlag); var fldValObject = fieldValidationArray[fieldName]; var fldObject = document.forms[formName][fieldName]; // get the field object; if (!isNull(fldObject)) { switch(enabledFlag) { case true: fldValObject.enabled = true; fldObject.onfocus=null; if (isIE) fldObject.style.background="#ffffff"; break; case false: fldObject.value=""; // clear the field fldValObject.enabled = false; fldObject.onfocus=blockKeys; if (isIE) fldObject.style.background="#cccccc"; break; } } } /*******************************************************************************/ function enableRangeChecks() {rangeChecksDisabled = false; } function disableRangeChecks() {rangeChecksDisabled = true; } function addValidationObject(valObject) { fieldValidationArray[valObject.fieldName] = valObject; indexToNameMap[indexToNameMap.length] = valObject.fieldName; } /*******************************************************************************/ function addAdditionalValidation(fldName,validationFunction){ if (isNull(fldName) || isNull(validationFunction) ) return false; var valObject = fieldValidationArray[fldName]; if (isNull(valObject)) return false; valObject.additionalValidation = validationFunction; // get the validation object } /*******************************************************************************/ function setAlternateValidation(fldName,valFunctionName) { if (isNull(fldName) || isNull(validationFunction) ) return false; var valObject = fieldValidationArray[fldName]; if (isNull(fldObject)) return false; valObject.alternateValidation = validationFunctionName; // get the validation object } /*******************************************************************************/ function blockKeys() { if (!validationSucessful) return false; this.blur(); if (countryInits.toUpperCase()=="MX") { alert('Esta campo es incapacitar\nEs necesario pulsar en la check box por capictar lo.'); } else { alert('This field has been disabled\nThe check box must be checked to enable it'); } return false; } /*******************************************************************************/ function setAllValidationEvent(theFormName,evntName) { var fldName ; var fldValObject; // get the validation object for (var i=0;i maxValue) { alert("field: "+valObject.displayName+" \nmust not be larger than "+maxValue+' '+uomValue); theField.focus(); return false; } } else if(!isNaN(valObject.minValue) && isNaN(valObject.maxValue)) { // only min range if (fldValue < minValue) { alert("field: "+valObject.displayName+" \nmust not be smaller than "+minValue+' '+uomValue); //theField.focus(); return false; } } else if(!isNaN(valObject.minValue) && !isNaN(valObject.maxValue)) { // both range values if (fldValue < minValue || fldValue > maxValue) { alert(" "+valObject.displayName+" \nmust be in the range of \n"+minValue+' '+uomValue+" and "+maxValue+' '+uomValue); //theField.focus(); return false; } } } } } } if (valObject.additionalValidation != null && this.onfocus==null) { return valObject.additionalValidation(theField); } return true; } /** validate the fields on the specified form..assuming the fields in the validation array are on this form **/ function validateFields(theFormName) { var fldName ; var fldObject for (var i=0;i "+ fldValObject.fieldName+" / "+fldValObject.displayName+"\n"; } alert(dmp); } /* minimumEntry: verify that the minimum fields have been populated with info */ function validateMinimumEntry(theForm) { var reqFlds="\n"; var minEntry = false; var minEntryCount = 0; var fldName ; var fldValObject ; // get the validation object var fldObject; var objType; var fldValue; // dumpArray (); // debuging: list the items in the validation array. for (var i=0;i