//******************************************//
//**    Javascript Business Objects       **//
//**      (C) Copyright 2000-2002         **//
//**           By Level 2 Labs            **//
//**          All Rights Reserved         **//
//** Copying this web page, its content,  **//
//** code, images, or any other item      **//
//** in it without the expressed written  **//
//** permission from Level 2 Labs is      **//
//** strictly prohibited.                 **//
//******************************************//

/*******************************************************************************/
/* function: 	isDate()                                                       */
/* parameters:	elementPath (required)	(path to field that holds small value) */
/*				format (required)		(formats which the object accepts:     */
/*										  mm/dd/yyyy, mm-dd-yyyy, mm.dd.yyyy   */
/*                                        mmddyyyy                             */
/* returns: 	true or false                                                  */
/*******************************************************************************/
function isDate(elementPath, format) {
	// Create pointer to field element
	var fieldValue = eval("window.document." + elementPath);
	
	// Error flag 
	var error = true;

	// Check format programmer wants 
	if (format == "mm/dd/yyyy") {
		var charToCheckFor = "/";
		var lengthToCheckFor = 10;
	} else if (format == "mm-dd-yyyy") {
		var charToCheckFor = "-";
		var lengthToCheckFor = 10;
	} else if (format == "mm.dd.yyyy") {
		var charToCheckFor = ".";
		var lengthToCheckFor = 10;
	} else if (format == "mmddyyyy") {
		var charToCheckFor = "";
		var lengthToCheckFor = 8;
	} else if (format == "mm/dd/yy") {
		var charToCheckFor = "/";
		var lengthToCheckFor = 8;
	}
	
	// Check for proper length
	if (checkLength(elementPath, lengthToCheckFor, lengthToCheckFor) != true) {
		error = false;
	}
	
	// Check For Proper Formatting
	var pos = 0;
	for (var i=0; i < fieldValue.value.length; i++) {
		if (format != "mmddyyyy") {
			if (i !=2 && i != 5) {
				if ((fieldValue.value.charAt(i) < "0" || fieldValue.value.charAt(i) > "9")) {
					error = false;
				}
			} else {
				if (fieldValue.value.charAt(i) != charToCheckFor) {
					error = false;
				}
			}
		} else {
			if ((fieldValue.value.charAt(i) < "0" || fieldValue.value.charAt(i) > "9")) {
				error = false;
			}
		}
		
	}

	// Return error
	return error;
}

/**************************************************************************************************/
/* function: 	checkPassword()                                                                   */
/* parameters:	elementPath (required) (path to the form element)                                 */
/*              confirmElementPath (required) (path to the confirm form element or "none"         */
/*              required (required) (is this field required)                                      */
/*              minChars (required) (least amount of characters allowed in password               */
/*              maxChars (required) (most amount of characters allowed in password                */
/*              mustMix (required) (if true, must be alphanumeric, if false, will accept anything */
/* returns: 	"password-ok", "error-min", "error-max", "field-empty"                            */
/*          	"error-must-mix", "error-no-match"                                                */
/**************************************************************************************************/
function checkPassword(elementPath, confirmElementPath, required, minChars, maxChars, mustMix) {
	// Is this field required?
	if (required) {
		if (isEmpty(elementPath, "none")) {
			return "field-empty";
		}
	}
	
	// Check for minimun number of characters
	if (checkLength(elementPath, 0, 0) != true) {
		if (checkLength(elementPath, minChars, maxChars) == "error-minimum") {
			return "error-min";
		}
	}

	// Check for minimun number of characters
	if (checkLength(elementPath, 0, 0) != true) {
		if (checkLength(elementPath, minChars, maxChars) == "error-maximum") {
			return "error-max";
		}
	}
	
	// Check for match with confirm field
	if (confirmElementPath != "none") {
		// Create pointer to password element
		var fieldPassword = eval("window.document." + elementPath);

		// Create pointer to password confirm element
		var fieldPasswordConfirm = eval("window.document." + confirmElementPath);

		if (fieldPassword.value != fieldPasswordConfirm.value) {
			return "error-no-match";
		}
	}
	
	// Check for alphanumeric
	if (mustMix) {
		var numbers = false;
		var letters = false;
		var fieldPassword = eval("window.document." + elementPath);
		
		for (var i=0; i < fieldPassword.value.length; i++) {
			if (fieldPassword.value.charAt(i) < "0" || fieldPassword.value.charAt(i) > "9") {
				letters = true;
			} else {
				numbers = true;
			}
		}

		if (!(letters && numbers)) {
			return "error-must-mix";
		}
	}

	// Everything ok!
	return "password-ok";
}


/*********************************************************************************/
/* function: 	isCheckBoxChecked()                                              */
/* parameters:	elementPath (required) (path to the form element)                */
/*              mustBeCheckedList (required) (List of values to see if they were */
/*											  checked by the user or "Any")      */
/* returns: 	true or false                                                    */
/*********************************************************************************/
function isCheckBoxChecked(elementPath, mustBeCheckedList) {
	// Create pointer to field element
	var fieldValue = eval("window.document." + elementPath);
	
	// Set up error variable
	var error = false;

	// Split list of items to check for into array
	var arrayList = mustBeCheckedList.split(",");
	
	// Create new array to hold list of items
	var arrayMustBeChecked = new Array;

	// Figure out if anything has been checked
	if (mustBeCheckedList.toLowerCase() != "any") {
	
		// Look for specific items to be checked for
		for (var i = 0; i < fieldValue.length; i++) {
			for(var x=0; x < arrayList.length; x++) {
				if (fieldValue[i].value.toLowerCase() == arrayList[x].toLowerCase()) {
					if (!fieldValue[i].checked) {
						// Error, item not checked
						return false;
					}
				}
			}
		}
	} else {
	
		// Look for any items to be checked for
		error = true;
		for (var i = 0; i < fieldValue.length; i++) {
			if (fieldValue[i].checked) {
				// Item found, everything ok, exit.
				return true;
			}
		}
	}
	
	// Return value
	if (!error) {
	
		// Everything ok
		return true;
		
	} else {
	
		// There was an error
		return false;
		
	}
}



/****************************************************************************************/
/* function: 	isGreater()                                                             */
/* parameters:	elementPathFieldLarge (required) (path to field that holds large value) */
/*              elementPathFieldSmall (required) (path to field that holds small value) */
/*				canBeEqual (required)            (if true will check for > and =        */
/*                                                else it will check for > only.        */
/* returns: 	true or false                                                           */
/****************************************************************************************/
function isGreater(elementPathLarge, elementPathSmall, canBeEqual) {
	// Create pointer to field elements
	var fieldValueLarge = eval("window.document." + elementPathLarge);
	var fieldValueSmall = eval("window.document." + elementPathSmall);
	
	if (canBeEqual) {
		// Check for greater than or equal to
		if (fieldValueLarge.value  >= fieldValueSmall.value) {
			return true;
		} else {
			return false;
		}
	} else {
		// Check for greater than
		if (fieldValueLarge.value  > fieldValueSmall.value) {
			return true; 
		} else {
			return false;
		}
	}
}



/**************************************************************************************************************************/
/* function: 	isOptionSelected()                                                                                        */
/* parameters:	elementPath (required) (path to the form element)                                                         */
/*              invalidOptions (required) (a list of options that can not be selected or "none")                          */
/*              returnValue (required) ("text" (option label), "index" (option index) or "value" (option value) or "none" */
/* returns: 	"none-selected", "invalid-option" or the actual value of option selected                                  */
/**************************************************************************************************************************/
function isOptionSelected(elementPath, invalidOptions, returnValue) {

	// Create pointer to field element
	var fieldValue = eval("window.document." + elementPath);

	// Check index selected
	if (fieldValue.selectedIndex == -1) {
		return "none-selected";
	}
	
	// Check for invalid options
	if (invalidOptions != "none") {
		if (invalidOptions.indexOf("[" + fieldValue.selectedIndex + "]") != -1) {
			return "invalid-option";
		}
	}
	
	// Everything ok!
	var optionValue = eval("window.document." + elementPath + ".options[fieldValue.selectedIndex].value");
	var optionText = eval("window.document." + elementPath + ".options[fieldValue.selectedIndex].text");
	var optionIndex = fieldValue.selectedIndex;
	
	if (returnValue == "text") {
		return optionText;
	} else if (returnValue == "index") {
		return optionIndex;
	} else if (returnValue == "value") {
		return optionValue;
	}

}


/*************************************************************************/
/* function: 	submitForm()                                             */
/* parameters:	formName (required) (path to the form)                   */
/*              confirmFirst (required) (If true, it will ask user first */
/*                                       before submitting the form)     */
/* returns: 	nothing                                                  */
/*************************************************************************/
function submitForm(formName, confirmFirst) {

	// Create pointer to form
	var formPath = eval("window.document." + formName);
	
	// Submit form
	if (confirmFirst == true) {
		if (confirm("Are you sure?")) {
			formPath.submit();
		}
	} else {
		formPath.submit();
	}
}


//********************//
//** isEmailAddress **//
//********************//
function isEmailAddress(FormName, FormField, DisplayFieldName, DisplayErrorMessage, ReturnFocus, ClearField) {
    //** Define variables **//
    _error = false;    
    error_message = "OK";
    function_name = "isEmailAddress";
    _domainNames=",AF,AL,DZ,AS,AD,AO,AI,AQ,AG,AR,AM,AW,AC,AU,AT,AZ," +
    "BS,BH,BD,BB,BY,BE,BZ,BJ,BM,BT,BO,BA,BW,BV,BR,IO,BN,BG,BF,BI,KH," +
    "CM,CA,CV,KY,CF,TD,CL,CN,CX,CC,CO,KM,CD,CG,CK,CR,CI,HR,CU,CY,CZ," +
    "DK,DJ,DM,DO,TP,EC,EG,SV,GQ,ER,EE,ET,FK,FO,FJ,FI,FR,GF,PF,TF,GA," +
    "GM,GE,DE,GH,GI,GR,GL,GD,GP,GU,GT,GG,GN,GW,GY,HT,HM,VA,HN,HK,HU," +
    "IS,IN,ID,IR,IQ,IE,IM,IL,IT,JM,JP,JE,JO,KZ,KE,KI,KP,KR,KW,KG,LA," +
    "LV,LB,LS,LR,LY,LI,LT,LU,MO,MK,MG,MW,MY,MV,ML,MT,MH,MQ,MR,MU,YT," +
    "MX,FM,MD,MC,MN,MS,MA,MZ,MM,NA,NAME,NR,NP,NL,AN,NC,NZ,NI,NE,NG,NU,NF," +
    "MP,NO,OM,PK,PW,PA,PG,PY,PE,PH,PN,PL,PT,PR,QA,RE,RO,RU,RW,KN,LC," +
    "VC,WS,SM,ST,SA,SN,SC,SL,SG,SK,SI,SB,SO,ZA,GS,ES,LK,SH,PM,SD,SR," +
    "SJ,SZ,SE,CH,SY,TW,TJ,TZ,TH,TG,TK,TO,TT,TN,TR,TM,TC,TV,UG,UA,AE," +
    "GB,US,UM,UY,UZ,VU,VA,VE,VN,VG,VI,WF,EH,YE,YU,ZR,ZM,ZW,COM,EDU," +
    "GOV,MIL,NET,ORG,BIZ,COOP,"
   
    //** How many arguments were passed? **//
    var numOfArguments = arguments.length;
 
    //** If wrong number of parameters were passed, set error flag **//
    if (numOfArguments != 6) {
        _error = true;
        return_val=0; 
        error_message = function_name + " Error: Wrong number of parameters were passed.";
    }
    
    //** Check for nulls in parameters **//
    if ( !_error ){    
        for (var i=0; i <= arguments; i++) {
            if (arguments[i] == null || arguments[i] == "") {
                _error = true;
                return_val=0;
                error_message = function_name + " Error: Parameters cannot have a null value";
                break;
            }
        }  
    }

    //** Set up a pointer to the FormName.FormField **//
    var _tempForm = eval("window.document." + FormName + "." + FormField);
    
    //** Check if form field is valid **//
    if( !_tempForm ){
	    _error = true;
		return_val=0; 
		error_message = function_name + " Error: Field " + FormField + " in form " + FormName + " doesn't exist"; 
    }
    
    //** Specific function starts here **//
    
    var emailValue = _tempForm.value;
    var emailValue = trimField ( emailValue );
    
    if ( checkAlphanum ( emailValue ) ){
		if (checkSpaces ( emailValue )) {
			if ( emailValue.indexOf('"') > 0 || emailValue.indexOf(")") > 0 ||
			     emailValue.indexOf("(") > 0 || emailValue.indexOf("[") > 0||
			     emailValue.indexOf("]") > 0 || emailValue.indexOf("{") > 0 ||
			     emailValue.indexOf("}") > 0 || emailValue.indexOf(">") > 0 ||
			     emailValue.indexOf("<") > 0 || emailValue.indexOf(",") > 0 ||
			     emailValue.indexOf(";") > 0 || emailValue.indexOf(":") > 0 ){
			    _error = true;
				error_message = "The field " + DisplayFieldName + " cannot contain these special characters: ()[]{},;:\".";
				return_val=0;
			}else{
				if ( emailValue.indexOf("@") != -1 ){
					if ( emailValue.lastIndexOf("@") == emailValue.indexOf("@") ){
					    if ( emailValue.lastIndexOf("@") == emailValue.length - 1 ){
							_error = true;
							error_message = "The field " + DisplayFieldName + " cannot start or end with a dot(.)";
							return_val=0;
						}else{
							if ( emailValue.lastIndexOf (".") != -1 ){
								if ( emailValue.lastIndexOf (".") < emailValue.length - 1  &&
								    emailValue.indexOf (".") > 0 ){
								    emailDomain = "," + emailValue.substring(emailValue.lastIndexOf(".")+1) + ",";
								    emailDomain = emailDomain.toUpperCase();
								    if ( _domainNames.indexOf ( emailDomain ) != -1 ){ 
										return_val=1;
									}else{
										_error = true;
										error_message = "The field " + DisplayFieldName + " doesn't have a valid domain name";
										return_val=0;
									}
								}else{
									_error = true;
									error_message = "The field " + DisplayFieldName + " cannot start or end with a dot(.)";
									return_val=0;
								}
							}else{
								_error = true;
								error_message = "The field " + DisplayFieldName + " must contain at least a dot(.)";
								return_val=0;
							}
						}
					}else{
						_error = true;
						error_message = "The field " + DisplayFieldName + " cannot contain more than one @ character";
						return_val=0;
					}
				}else{
					_error = true;
					error_message = "The field " + DisplayFieldName + " must contain one @ character";
					return_val=0;
				}
			}
		}else{
			_error = true;
			error_message = "The field " + DisplayFieldName + " cannot contain spaces.";
			return_val=0;
		}
	}else{
		_error = true;
		error_message = "The field " + DisplayFieldName + " has to be alphanumeric.";
		return_val=0;
	}
	//** Custom code ends here **//
	
	//** Display any errors here if true **//
    if (DisplayErrorMessage && error_message != "OK") {
        alert(error_message);
    }
 
    //** Place focus on field if true **//
    if (ReturnFocus && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        _tempForm.focus();
    }
 
    //** Clear field if true **//
    if (ClearField && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        _tempForm.value="";
    }
    
    //** Return the arguments back to the user **//
    return (return_val);
}

//******************//
//** formatNumber **//
//******************//
function formatNumber(FormName, FormField, FormatString, DisplayFieldName, DisplayErrorMessage, ReturnFocus, ClearField) {
    //** Define variables **//
    _error = false;    
    error_message = "OK";
    function_name = "formatNumber";
   
    //** How many arguments were passed? **//
    var numOfArguments = arguments.length;
 
    //** If wrong number of parameters were passed, set error flag **//
    if (numOfArguments != 7) {
        _error = true;
        return_val=0; 
        error_message = function_name + " Error: Wrong number of parameters were passed.";
    }
    
    //** Check for nulls in parameters **//
    if ( !_error ){    
        for (var i=0; i <= arguments; i++) {
            if (arguments[i] == null || arguments[i] == "") {
                _error = true;
                return_val=0;
                error_message = function_name + " Error: Parameters cannot have a null value";
                break;
            }
        }  
    } 
    
    //** Set up a pointer to the FormName.FormField **//
    var _tempForm = eval("window.document." + FormName + "." + FormField);
    
    //** Check if form field is valid **//
    if( !_tempForm ){
	    _error = true;
		return_val=0; 
		error_message = function_name + " Error: Field " + FormField + " in form " + FormName + " doesn't exist"; 
    }
    
    //**************************************//
    //** Custom Function Code Begins Here **//
    //**************************************//
    if (!_error) {
        //** Set format flags **//
        comma = false;
        dollar = false;
        decimal = false;

        //** Break Apart Format String **//
        if (FormatString.indexOf(",") != -1 ) { comma = true }
        if (FormatString.indexOf("$") != -1 ) { dollar = true }
        if (FormatString.indexOf(".") != -1 ) { decimal = true }
        
        //** Get field value **//
		var FValue = _tempForm.value;

        //** Clean any extra characters
		var FValue = cleanInput ( FValue, "$" );
		var FValue = cleanInput ( FValue, "," );
		var FValue = cleanInput ( FValue, "-" );
        var FValue = cleanInput ( FValue, " " );
   
   		//** Check for number **//
		if ( checkNumber( FValue ) ) {
	        _tempForm.value=trimField (FValue);
            
            //** Check for decimal **//
            if (!decimal) { 
                //** Remove decimal here **//
                FValue = parseInt(FValue).toString();
                _tempForm.value = FValue;
            } else {
                //** Add decimal here **//
                FValue = addDecimals(FValue);
                _tempForm.value = FValue;
            }
            
            //** Add comma here **//
            if (comma) { _tempForm.value = addCommas(FValue) }
            
            //** Add dollar sign here **//
            if (dollar) { _tempForm.value = "$" + _tempForm.value }
            
			return_val=1;
		} else {
			_error = true; 
			error_message = "The " + DisplayFieldName + " field only accepts a number.";
			return_val=0;
		}
	}
    //************************************//
    //** Custom Function Code Ends Here **//
    //************************************//

    //** Display any errors here if true **//
    if (DisplayErrorMessage && error_message != "OK") {
        alert(error_message);
    }

    //** Place focus on field if true **//
    if (ReturnFocus && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        _tempForm.focus();
    }
 
    //** Clear field if true **//
    if (ClearField && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        _tempForm.value="";
    }
    
    //** Return the arguments back to the user **//
    return (return_val);
}

//*******************//
//** isPhoneNumber **//
//*******************//
function isPhoneNumber(FormName, FormField, FormatString, DisplayFieldName, DisplayErrorMessage, ReturnFocus, ClearField) {
    //** Define variables **//
    _error = false;    
    error_message = "OK";
    function_name = "isPhoneNumber";
   
    //** How many arguments were passed? **//
    var numOfArguments = arguments.length;
 
    //** If wrong number of parameters were passed, set error flag **//
    if (numOfArguments != 7) {
        _error = true;
        return_val=0; 
        error_message = function_name + " Error: Wrong number of parameters were passed.";
    }
    
    //** Check for nulls in parameters **//
    if ( !_error ){    
        for (var i=0; i <= arguments; i++) {
            if (arguments[i] == null || arguments[i] == "") {
                _error = true;
                return_val=0;
                error_message = function_name + " Error: Parameters cannot have a null value";
                break;
            }
        }  
    }

    //** Set up a pointer to the FormName.FormField **//
    var _tempForm = eval("window.document." + FormName + "." + FormField);
    
    //** Check if form field is valid **//
    if( !_tempForm ){
	    _error = true;
		return_val=0; 
		error_message = function_name + " Error: Field " + FormField + " in form " + FormName + " doesn't exist"; 
    }
    
    //**************************************//
    //** Custom Function Code Begins Here **//
    //**************************************//
    if (!_error) {
        //** Get field value **//
		var FValue = _tempForm.value;

        //** Clean any extra characters
		var FValue = cleanInput ( FValue, " " );
		var FValue = cleanInput ( FValue, "." );
		var FValue = cleanInput ( FValue, "-" );
		var FValue = cleanInput ( FValue, ")" );
		var FValue = cleanInput ( FValue, "(" );
            
		//** Check for the right length of the phone number **//
		if ( FValue.length == 11  || FValue.length == 13 || FValue.length == 10 || FValue.length == 7 ) {
    	   //** Check for number **//
		   if ( FValue.length == 11 && FValue.charAt(0) != "1" ) {
		     _error = true;
			 error_message = "You did not enter a valid phone number in the " + DisplayFieldName + " field.";
			 return_val=0;
		    } else {
	            if ( checkNumber( FValue ) ) {
				    FValue = checkFormat ( FValue, FormatString );
					if ( FValue != 0 ) {
					    _tempForm.value = FValue;
						return_val=1;
					} else {
					    _error = true;
						error_message = "The " + DisplayFieldName + " field cannot be properly formatted.\nPlease enter a phone number in the following format:\n" + FormatString;
						return_val=0;
					}
			    } else {
		      	    _error = true;
					error_message = "You did not enter a valid phone number in the " + DisplayFieldName + " field.";
			        return_val=0;
			    } 
	        }
        } else {
	        _error = true;
			return_val=0;
			error_message = "Phone numbers must be 7, 10, 11 or 13 digits.";
	    }
    }
    //************************************//
    //** Custom Function Code Ends Here **//
    //************************************//
    
    //** Display any errors here if true **//
    if (DisplayErrorMessage && error_message != "OK") {
        alert(error_message);
    }
 
    //** Place focus on field if true **//
    if (ReturnFocus && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        _tempForm.focus();
    }
 
    //** Clear field if true **//
    if (ClearField && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        _tempForm.value="";
    }
    
    //** Return the arguments back to the user **//
    return (return_val);
}


//****************//
//** isNotEmpty **//
//****************//
function isNotEmpty(FormName, FormField, DisplayFieldName, DisplayErrorMessage, ReturnFocus) {
    //** Define variables **//
    _error = false;
    response = false;
    error_message = "OK";
    function_name = "isNotEmpty";
    
    //** How many arguments were passed? **//
    var numOfArguments = arguments.length;

    //** If wrong number of parameters were passed, set error flag **//
    if (numOfArguments != 5) {
        _error = true;
        return_val=0;
        error_message = function_name + " Error: Wrong number of parameters were passed.";
    }
    
    //** Check for nulls in parameters **//
    for (var i=0; i <= arguments; i++) {
        if (arguments[i] == null || arguments[i] == "") {
            _error = true;
            return_val=0;
            error_message = function_name + " Error: Parameters cannot have a null value";
            break;
        }
    }

    //** Set up a pointer to the FormName.FormField **//
    var _tempForm = eval("window.document." + FormName + "." + FormField);
    
    //** Check if form field is valid **//
    if( !_tempForm ){
	    _error = true;
		return_val=0; 
		error_message = function_name + " Error: Field " + FormField + " in form " + FormName + " doesn't exist"; 
    }
    
    //**************************************//
    //** Custom Function Code Begins Here **//
    //**************************************//
    if (!_error) {
        //** Trim the field of trailing spaces **//
		var FValue = trimField (_tempForm.value);
       
       //** Check for proper length **//    
		if (FValue.length == 0) {
		    _error = true;
			return_val=0; 
			error_message = "The " + DisplayFieldName + " field can not be empty.  Please enter information."
		} else {
            return_val=1;
		}
    }
    //************************************//
    //** Custom Function Code Ends Here **//
    //************************************//
    
    //** Display any errors here if true **//   
    if (DisplayErrorMessage && error_message != "OK") {
        alert(error_message);
    }

    //** Place focus on field if true **//
    if (ReturnFocus && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        _tempForm.focus();
    }
    
    //** Return the arguments back to the user **//
    return(return_val);
}


//***************//
//** isInRange **//
//***************//
function isInRange(FormName, FormField, StartRange, EndRange, DisplayFieldName, DisplayErrorMessage, ReturnFocus, ClearField) {
    //** Convert Numbers **//
    StartRange = StartRange.toString();
    EndRange = EndRange.toString();

    //** Define variables **//
    _error = false;
    return_val=0;
    error_message = "OK";
    function_name = "isInRange";
    
    //** How many arguments were passed? **//
    var numOfArguments = arguments.length;

    //** If wrong number of parameters were passed, set error flag **//
    if (numOfArguments != 8) {
        _error = true;
        error_message = function_name + " Error: Wrong number of parameters were passed.";
        return_val=0;
    }
        
    //** Check for nulls in parameters **//
    if ( !_error ){
        for (var i=0; i <= arguments; i++) {
            if (arguments[i] == null || arguments[i] == "") {
                _error = true;
                error_message = function_name + " Error: Parameters cannot have a null value";
                return_val=0;
                break;
            }
        }
    }
    
    //** Check that the startRange and endRange are numbers **//
    if ( !_error ){
        if ( !checkNumber ( StartRange )){
            _error = true;
            error_message = function_name + " Error: Parameters are not numbers.  Start Range requires a number.";
            return_val=0;
        }
    }
 
    if ( !_error ){
        if ( !checkNumber ( EndRange )){
            _error = true;
            error_message = function_name + " Error: Parameters are not numbers.  End Range requires a number.";
            return_val=0;
        }
    }

    //** Set up a pointer to the FormName.FormField **//
    var _tempForm = eval("window.document." + FormName + "." + FormField);
    
    //** Check if form field is valid **//
    if( !_tempForm ){
	    _error = true;
		return_val=0; 
		error_message = function_name + " Error: Field " + FormField + " in form " + FormName + " doesn't exist"; 
    }
    
    //**************************************//
    //** Custom Function Code Begins Here **//
    //**************************************//
    if (!_error) {
        //** Get field value **//
        var FValue = _tempForm.value;
        
        //** Check for number **//    
        if ( !checkNumber( FValue ) ) {
            _error = true;
            return_val=0;
            error_message = "You must enter a number in the " + DisplayFieldName + " field.";
        }
            
        if ( !_error ){
            var Number = parseFloat ( FValue );
            var StartNumber = parseFloat ( StartRange );
            var EndNumber = parseFloat ( EndRange );
          
            if ( Number >= StartNumber && Number <= EndNumber ){
                return_val=1;            
            } else {
			    _error = true;
			    error_message = "Please enter a number between " + StartRange + " and " + EndRange + " in the " + DisplayFieldName + " field.";
                return_val=0;
            }
        }
    }
    //************************************//
    //** Custom Function Code Ends Here **//
    //************************************//

    //** Display any errors here if true **//
    if (DisplayErrorMessage && error_message != "OK") {
        alert(error_message);
    }

    //** Place focus on field if true **//
    if (ReturnFocus && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        _tempForm.focus();
    }
 
    //** Clear field if true **//
    if (ClearField && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        _tempForm.value="";
    }
    
    //** Return the arguments back to the user **//
    return (return_val);
}


//**************//
//** isNumber **//
//**************//
function isNumber(FormName, FormField, DisplayFieldName, DisplayErrorMessage, ReturnFocus, ClearField) {
    //** Define variables **//
    _error = false;    
    error_message = "OK";
    function_name = "isNumber";
   
    //** How many arguments were passed? **//
    var numOfArguments = arguments.length;
 
    //** If wrong number of parameters were passed, set error flag **//
    if (numOfArguments != 6) {
        _error = true;
        return_val=0; 
        error_message = function_name + " Error: Wrong number of parameters were passed.";
    }
    
    //** Check for nulls in parameters **//
    if ( !_error ){    
        for (var i=0; i <= arguments; i++) {
            if (arguments[i] == null || arguments[i] == "") {
                _error = true;
                return_val=0;
                error_message = function_name + " Error: Parameters cannot have a null value";
                break;
            }
        }  
    } 
    
    //** Set up a pointer to the FormName.FormField **//
    var _tempForm = eval("window.document." + FormName + "." + FormField);
    
    //** Check if form field is valid **//
    if( !_tempForm ){
	    _error = true;
		return_val=0; 
		error_message = function_name + " Error: Field " + FormField + " in form " + FormName + " doesn't exist"; 
    }
    
    //**************************************//
    //** Custom Function Code Begins Here **//
    //**************************************//
    if (!_error) {
        //** Get field value **//
		var FValue = _tempForm.value;
   
   		//** Check for number **//
		if ( checkNumber( FValue ) ) {
	        _tempForm.value=trimField (FValue);
			return_val=1;
		} else {
			_error = true; 
			error_message = "The " + DisplayFieldName + " field only accepts a number.";
			return_val=0;
		}
	}
    //************************************//
    //** Custom Function Code Ends Here **//
    //************************************//

    //** Display any errors here if true **//
    if (DisplayErrorMessage && error_message != "OK") {
        alert(error_message);
    }

    //** Place focus on field if true **//
    if (ReturnFocus && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        _tempForm.focus();
    }
 
    //** Clear field if true **//
    if (ClearField && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        _tempForm.value="";
    }
    
    //** Return the arguments back to the user **//
    return (return_val);
}

//*************//
//** isAlpha **//
//*************//
function isAlpha(FormName, FormField, DisplayFieldName, DisplayErrorMessage, ReturnFocus, ClearField) {
    //** Define variables **//
    _error = false;    
    error_message = "OK";
    function_name = "isAlpha";
   
    //** How many arguments were passed? **//
    var numOfArguments = arguments.length;
 
    //** If wrong number of parameters were passed, set error flag **//
    if (numOfArguments != 6) {
        _error = true;
        return_val=0; 
        error_message = function_name + " Error: Wrong number of parameters were passed.";
    }
    
    //** Check for nulls in parameters **//
    if ( !_error ){    
        for (var i=0; i <= arguments; i++) {
            if (arguments[i] == null || arguments[i] == "") {
                _error = true;
                return_val=0;
                error_message = function_name + " Error: Parameters cannot have a null value";
                break;
            }
        }  
    } 
    
    //** Set up a pointer to the FormName.FormField **//
    var _tempForm = eval("window.document." + FormName + "." + FormField);
    
    //** Check if form field is valid **//
    if( !_tempForm ){
	    _error = true;
		return_val=0; 
		error_message = function_name + " Error: Field " + FormField + " in form " + FormName + " doesn't exist"; 
    }
    
    //**************************************//
    //** Custom Function Code Begins Here **//
    //**************************************//
    if (!_error) {
	    //** Get field value **//
		var FValue = _tempForm.value;
		FValue = trimField ( FValue );
		_tempForm.value = FValue;
		
        //** Check for alpha **//
		if ( checkAlpha( FValue ) ) {
		    return_val=1;
		} else {
	        _error = true; 
			error_message = "The " + DisplayFieldName + " only accepts characters.\nNo numbers please."; 
			return_val=0;
	    }
	}
    //************************************//
    //** Custom Function Code Ends Here **//
    //************************************//

    //** Display any errors here if true **//
    if (DisplayErrorMessage && error_message != "OK") {
        alert(error_message);
    }

    //** Place focus on field if true **//
    if (ReturnFocus && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        _tempForm.focus();
    }
 
    //** Clear field if true **//
    if (ClearField && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        _tempForm.value="";
    }
    
    //** Return the arguments back to the user **//
    return (return_val);
}


//*********************//
//** isCorrectLength **//
//*********************//
function isCorrectLength(FormName, FormField, Length, DisplayFieldName, DisplayErrorMessage, ReturnFocus, ClearField) {
    //** Define variables **//
    _error = false;    
    error_message = "OK";
    function_name = "isCorrectLength";
   
    //** How many arguments were passed? **//
    var numOfArguments = arguments.length;
 
    //** If wrong number of parameters were passed, set error flag **//
    if (numOfArguments != 7) {
        _error = true;
        return_val=0; 
        error_message =  function_name + " Error: Wrong number of parameters were passed.";
    }
    
    //** Check for nulls in parameters **//
    if ( !_error ){    
        for (var i=0; i <= arguments; i++) {
            if (arguments[i] == null || arguments[i] == "") {
                _error = true;
                return_val=0;
                error_message = function_name + " Error: Parameters cannot have a null value";
                break;
            }
        }  
    } 
    
    //** Set up a pointer to the FormName.FormField **//
    var _tempForm = eval("window.document." + FormName + "." + FormField);
    
    //** Check if form field is valid **//
    if( !_tempForm ){
	    _error = true;
		return_val=0; 
		error_message = function_name + " Error: Field " + FormField + " in form " + FormName + " doesn't exist"; 
    }
    
    //**************************************//
    //** Custom Function Code Begins Here **//
    //**************************************//
    if (!_error) {
        //** Get field value **//
		var FValue = _tempForm.value;
		
        //** Check for length **//
		if ( FValue.length <= Length ) {
			return_val=1;
		} else {
	        _error = true; 
			error_message = "There is a limit of  " + Length + " characters in the " + DisplayFieldName + " field.\nYou've entered " + FValue.length + " characters.";
			return_val=0;
		}
	}
    //************************************//
    //** Custom Function Code Ends Here **//
    //************************************//

    //** Display any errors here if true **//
    if (DisplayErrorMessage && error_message != "OK") {
        alert(error_message);
    }

    //** Clear field if true **//
    if (ClearField && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        if (confirm("Would you like me to trim the characters over the limit?")) {
            _tempForm.value = _tempForm.value.substring(0,Length);
        }
    }

    //** Place focus on field if true **//
    if (ReturnFocus && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        _tempForm.focus();
    }
    
    //** Return the arguments back to the user **//
    return (return_val);
}


//*********************//
//** isAlphaNumberic **//
//*********************//
function isAlphaNumeric(FormName, FormField, DisplayFieldName, DisplayErrorMessage, ReturnFocus, ClearField) {
    //** Define variables **//
    _error = false;    
    error_message = "OK";
    function_name = "isAlphaNumeric";
   
    //** How many arguments were passed? **//
    var numOfArguments = arguments.length;
 
    //** If wrong number of parameters were passed, set error flag **//
    if (numOfArguments != 6) {
        _error = true;
        return_val=0; 
        error_message = function_name + " Error: Wrong number of parameters were passed.";
    }
    
    //** Check for nulls in parameters **//
    if ( !_error ){    
        for (var i=0; i <= arguments; i++) {
            if (arguments[i] == null || arguments[i] == "") {
                _error = true;
                return_val=0;
                error_message = function_name + " Error: Parameters cannot have a null value";
                break;
            }
        }  
    } 
    
    //** Set up a pointer to the FormName.FormField **//
    var _tempForm = eval("window.document." + FormName + "." + FormField);
    
    //** Check if form field is valid **//
    if( !_tempForm ){
	    _error = true;
		return_val=0; 
		error_message = function_name + " Error: Field " + FormField + " in form " + FormName + " doesn't exist"; 
    }
    
    //**************************************//
    //** Custom Function Code Begins Here **//
    //**************************************//
    if (!_error) {
        //** Get field value **//
		var FValue = _tempForm.value;
		FValue = trimField ( FValue );
		
        //** Check for alphanumeric **//
		if ( checkAlphanum( FValue ) ) {
			return_val=1;
		} else {
	        _error = true; 
			error_message = "The " + DisplayFieldName + " only accepts alphanumeric characters only.\nPlease re-enter."; 
			return_val=0;
		}
	}
    //************************************//
    //** Custom Function Code Ends Here **//
    //************************************//

    //** Display any errors here if true **//
    if (DisplayErrorMessage && error_message != "OK") {
        alert(error_message);
    }

    //** Place focus on field if true **//
    if (ReturnFocus && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        _tempForm.focus();
    }
 
    //** Clear field if true **//
    if (ClearField && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        _tempForm.value="";
    }
    
    //** Return the arguments back to the user **//
    return (return_val);
}

//***********************//
//** isCanadianZipCode **//
//***********************//
function isCanadianZipCode(zipcode) {
	if ((zipcode.length == 6) && (isNaN(zipcode.charAt(0))) && (! isNaN(zipcode.charAt(1))) && (isNaN(zipcode.charAt(2))) && (! isNaN(zipcode.charAt(3))) && (isNaN(zipcode.charAt(4))) && (! isNaN(zipcode.charAt(5)))){
		return true;
	}
	else {
		alert("The zip code you entered is not a valid Canadian zip code.");
		return false;
	}
}
//***************//
//** isZipCode **//
//***************//
function isZipCode(FormName, FormField, FormatString, DisplayFieldName, DisplayErrorMessage, ReturnFocus, ClearField) {
    //** Define variables **//
    _error = false;    
    error_message = "OK";
    function_name = "isZipCode";
   
    //** How many arguments were passed? **//
    var numOfArguments = arguments.length;
 
    //** If wrong number of parameters were passed, set error flag **//
    if (numOfArguments != 7) {
        _error = true;
        return_val=0; 
        error_message = function_name + " Error: Wrong number of parameters were passed.";
    }
    
    //** Check for nulls in parameters **//
    if ( !_error ){    
        for (var i=0; i <= arguments; i++) {
            if (arguments[i] == null || arguments[i] == "") {
                _error = true;
                return_val=0;
                error_message = function_name + " Error: Parameters cannot have a null value";
                break;
            }
        }  
    } 
    
    //** Set up a pointer to the FormName.FormField **//
    var _tempForm = eval("window.document." + FormName + "." + FormField);
    
    //** Check if form field is valid **//
    if( !_tempForm ){
	    _error = true;
		return_val=0; 
		error_message = function_name + " Error: Field " + FormField + " in form " + FormName + " doesn't exist"; 
    }
    
    //**************************************//
    //** Custom Function Code Begins Here **//
    //**************************************//
    if (!_error) {
	    //** Get field value **//
		var FValue = _tempForm.value;
		var FValue = cleanInput ( FValue, " " );
		var FValue = cleanInput ( FValue, "-" );
		var FValue = cleanInput ( FValue, "." );
        
		//** Check for the right length of the zip number **//
		if ( FValue.length != 5 && FValue.length != 9 ){
		    _error = true;
			return_val=0;
			if (FormatString != "both_formats") {
				error_message = "Please enter the zip code in the following format:\n" + FormatString;
			} else {
				error_message = "Please enter the zip code in the following format:\nxxxxx or xxxxx-xxxx";
			}
	    } else {
	        //** Check for number **//
			if ( checkNumber( FValue ) ) {
			    //** check and set the format according to the format string **//
				if (FormatString != "both_formats") {
				    FValue = checkFormat ( FValue, FormatString );
				    if ( FValue != 0 ){
				        _tempForm.value = FValue;
			            return_val=1;
			        } else {
				        _error = true;
						error_message = "Please enter the zip code in the following format:\n" + FormatString;
						return_val=0;
				    }
				}
            } else {
	            _error = true;
			    error_message = "Please enter the zip code in the following format:\n" + FormatString;
			    return_val=0;
	        }
        }
    }
    //************************************//
    //** Custom Function Code Ends Here **//
    //************************************//

    //** Display any errors here if true **//
    if (DisplayErrorMessage && error_message != "OK") {
        alert(error_message);
    }

    //** Place focus on field if true **//
    if (ReturnFocus && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        _tempForm.focus();
    }
 
    //** Clear field if true **//
    if (ClearField && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        _tempForm.value="";
    }
    
    //** Return the arguments back to the user **//
    return (return_val);
}


//**********************//
//** isSocialSecurity **//
//**********************//
function isSocialSecurity(FormName, FormField, FormatString, DisplayFieldName, DisplayErrorMessage, ReturnFocus, ClearField) {
    //** Define variables **//
    _error = false;    
    error_message = "OK";
    function_name = "isSocialSecurity";
   
    //** How many arguments were passed? **//
    //var arguments = isSocialSecurity.arguments;
    var numOfArguments = arguments.length;
 
    //** If wrong number of parameters were passed, set error flag **//
    if (numOfArguments != 7) {
        _error = true;
        return_val=0; 
        error_message = function_name + " Error: Wrong number of parameters were passed.";
    }
    
    //** Check for nulls in parameters **//
    if ( !_error ){    
        for (var i=0; i <= arguments; i++) {
            if (arguments[i] == null || arguments[i] == "") {
                _error = true;
                return_val=0;
                error_message = function_name + " Error: Parameters cannot have a null value";
                break;
            }
        }  
    } 
    
    //** Set up a pointer to the FormName.FormField **//
    var _tempForm = eval("window.document." + FormName + "." + FormField);
    
    //** Check if form field is valid **//
    if( !_tempForm ){
	    _error = true;
		return_val=0; 
		error_message = function_name + " Error: Field " + FormField + " in form " + FormName + " doesn't exist"; 
    }
    
    //**************************************//
    //** Custom Function Code Begins Here **//
    //**************************************//
    if (!_error) {
	    //** Get field value **//
		var FValue = _tempForm.value;
   		var FValue = cleanInput ( FValue, " " );
   		var FValue = cleanInput ( FValue, "." );
		var FValue = cleanInput ( FValue, "-" );
        
		//** Check for the right length of the social security number **//
		if ( FValue.length != 9 ){
		    _error = true;
			return_val=0;
			error_message = "Social security number must be 9 digits";
		} else {
		    //** Check for number **//
			if ( checkNumber( FValue ) ) {
			    //** check and set the format according to the format string **//
				FValue = checkFormat( FValue, FormatString );
				if ( FValue != 0 ){
			        _tempForm.value = FValue;
					return_val=1;
				} else {
					_error = true;
					error_message = "Social security number must be 9 digits";
					return_val=0;
				}
			} else {
		        _error = true; 
			    error_message = "Social security number must be 9 digits"
				return_val=0;
			}
		}
	}
    //************************************//
    //** Custom Function Code Ends Here **//
    //************************************//

    //** Display any errors here if true **//
    if (DisplayErrorMessage && error_message != "OK") {
        alert(error_message);
    }

    //** Place focus on field if true **//
    if (ReturnFocus && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        _tempForm.focus();
    }
 
    //** Clear field if true **//
    if (ClearField && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        _tempForm.value="";
    }
    
    //** Return the arguments back to the user **//
    return (return_val);
}


//****************//
//** removeChar **//
//****************//
function removeChar(FormName, FormField, Character, DisplayFieldName, DisplayErrorMessage, ReturnFocus, ClearField) {
    //** Define variables **//
    _error = false;    
    error_message = "OK";
    function_name = "removeChar";
    
    //** How many arguments were passed? **//
    var numOfArguments = arguments.length;
 
    //** If wrong number of parameters were passed, set error flag **//
    if (numOfArguments != 7) {
        _error = true;
        return_val=0; 
        error_message = function_name + " Error: Wrong number of parameters were passed.";
    }
    
    //** Check for nulls in parameters **//
    if ( !_error ){    
        for (var i=0; i <= arguments; i++) {
            if (arguments[i] == null || arguments[i] == "") {
                _error = true;
                return_val=0;
                error_message = function_name + " Parameters cannot have a null value";
                break;
            }
        }  
    } 
    
    //** Set up a pointer to the FormName.FormField **//
    var _tempForm = eval("window.document." + FormName + "." + FormField);
    
    //** Check if form field is valid **//
    if( !_tempForm ){
	    _error = true;
		return_val=0; 
		error_message = function_name + " Error: Field " + FormField + " in form " + FormName + " doesn't exist"; 
    }
    
    //**************************************//
    //** Custom Function Code Begins Here **//
    //**************************************//
    if (!_error) {
	    //** Get field value **//
		_tempForm.value = cleanInput (_tempForm.value, Character);
        return_val=1;
	}
    //************************************//
    //** Custom Function Code Ends Here **//
    //************************************//
    
    //** Display any errors here if true **//
    if (DisplayErrorMessage && error_message != "OK") {
        alert(error_message);
    }

    //** Place focus on field if true **//
    if (ReturnFocus && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        _tempForm.focus();
    }
 
    //** Clear field if true **//
    if (ClearField && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        _tempForm.value="";
    }
    
    //** Return the arguments back to the user **//
    return (return_val);
}


//****************//
//** trimSpaces **//
//****************//
function trimSpaces(FormName, FormField, DisplayFieldName, DisplayErrorMessage, ReturnFocus, ClearField) {
    //** Define variables **//
    _error = false;    
    error_message = "OK";
    function_name = "trimSpaces";
   
    //** How many arguments were passed? **//
    var numOfArguments = arguments.length;
 
    //** If wrong number of parameters were passed, set error flag **//
    if (numOfArguments != 6) {
        _error = true;
        return_val=0; 
        error_message = function_name + " Error: Wrong number of parameters were passed.";
    }
    
    //** Check for nulls in parameters **//
    if ( !_error ){    
        for (var i=0; i <= arguments; i++) {
            if (arguments[i] == null || arguments[i] == "") {
                _error = true;
                return_val=0;
                error_message = function_name + " Error: Parameters cannot have a null value";
                break;
            }
        }  
    } 
    
    //** Set up a pointer to the FormName.FormField **//
    var _tempForm = eval("window.document." + FormName + "." + FormField);
    
    //** Check if form field is valid **//
    if( !_tempForm ){
	    _error = true;
		return_val=0; 
		error_message = function_name + " Error: Field " + FormField + " in form " + FormName + " doesn't exist"; 
    }
    
    //**************************************//
    //** Custom Function Code Begins Here **//
    //**************************************//
    if (!_error) {
        //** Get field value **//
		_tempForm.value = trimField (_tempForm.value);
        return_val=1;
    }
    //************************************//
    //** Custom Function Code Ends Here **//
    //************************************//
    
    //** Display any errors here if true **//
    if (DisplayErrorMessage && error_message != "OK") {
        alert(error_message);
    }

    //** Place focus on field if true **//
    if (ReturnFocus && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        _tempForm.focus();
    }
 
    //** Clear field if true **//
    if (ClearField && DisplayErrorMessage && error_message != "OK" && _tempForm) {
        _tempForm.value="";
    }
    
    //** Return the arguments back to the user **//
    return (return_val);
}


