var arrValidateFields;
var arrErrorMessages = ["callbackFormWarning"];

/*
 * Create the list of fields to be validated
 */
function validate_init_fields() {
	arrValidateFields = [];
	
	// For each field add the following information
	// - ID
	// - Data type
	// - Parameters (object: optional)
	arrValidateFields.push({id: "txtName", dataType: "string", parameters: {minLength: 3, maxLength: 30}});
	arrValidateFields.push({id: "txtTelephone", dataType: "telephone"});
	
	return (true);
} // validate_init_fields


// Perform the validation
function validate_form() {
	var arrInvalidFields
	var intCounter, intLength;

	// Clear any field highlighting
	validate_clearHighlight(arrValidateFields, arrErrorMessages);
	
	arrInvalidFields = [];
	intLength = arrValidateFields.length;
	
	for (intCounter = 0; intCounter < intLength; intCounter++) {
		blnValid		= true;
		objValidate	= arrValidateFields[intCounter];
		
		// Retrieve the data
		strData = document.getElementById(objValidate.id).value;
		
		switch (objValidate.dataType.toLowerCase()) {
			case "string":
				blnValid = validate_string(strData, objValidate.parameters.minLength, objValidate.parameters.maxLength);
				break;
				
			case "email":
				blnValid = validate_email(strData);
				break;
				
			case "telephone":
				blnValid = validate_telephone(strData);
				break;
				
			case "notempty":
				blnValid = validate_notEmpty(strData);
				break;
				
			case "notstringvalue":
				blnValid = validate_notStringValue(strData, objValidate.parameters.value);
				break;
				
			case "number":
				blnValid = validate_number(strData, objValidate.parameters.minValue, objValidate.parameters.maxValue);
				break;
				
			default:
				break;
		} // switch
		
		if (!blnValid) {
			arrInvalidFields.push(objValidate.id);
		} // if
	} // for		
		
	// Check the invalid fields array
	if (arrInvalidFields.length > 0) {
		validate_setHighlight(arrInvalidFields, arrErrorMessages);
		return (false);
	} else {
		return (true);
	} // if - else
} // validate_form