function VALIDATE()
{
	this.m_requiredTextFields = new Array();
	this.m_regularExpression = new Array();
	this.m_requiredCheckBoxes = new Array();
	this.add_required_text_field = VALIDATE_addTextField;
	this.add_required_check_box_group = VALIDATE_addRequiredCheckBoxGroup;
	this.validate = VALIDATE_validate;
	this.add_regular_expression_field = VALIDATE_addRegularExpressionTextField;
	this.validate_required_text_fields = VALIDATE_requiredTextFields;
	this.validate_regular_expressions = VALIDATE_regularExpressions;
	this.validate_required_check_box_group = VALIDATE_requiredCheckBoxGroup;
}

function VALIDATE_validate()
{
	var valid = true;
	
	valid = this.validate_required_text_fields() ? valid : false;
	
	valid = this.validate_regular_expressions() ? valid : false;
	
	valid = this.validate_required_check_box_group() ? valid : false;
	
	return valid;
	
}

function VALIDATE_requiredCheckBoxGroup()
{
	var valid = true;
	for(var i=0; i<this.m_requiredCheckBoxes.length; i++)
	{
		var errorObject = this.m_requiredCheckBoxes[i];
		var checked = false;
		for(var j=0; j<errorObject.element.length; j++)
		{
			if(errorObject.element[j].checked)
			{
				checked = true;
			}
		}
		
		if(!checked)
		{
			valid = false;
			errorObject.errorField.innerHTML = errorObject.errorMessage;		
		}
		else
		{
			errorObject.errorField.innerHTML = "";
		}
	}
	
	return valid;
}

function VALIDATE_addRequiredCheckBoxGroup(checkBoxArray, errorField, errorMessage)
{
	var errorObject = new ERROROBJECT();
	errorObject.element = checkBoxArray;
	errorObject.errorField = errorField;
	errorObject.errorMessage = errorMessage;
	this.m_requiredCheckBoxes.push(errorObject);
}


function VALIDATE_addTextField(element, errorField, errorMessage)
{
	var errorObject = new ERROROBJECT;
	errorObject.element = element;
	errorObject.errorField = errorField;
	errorObject.errorMessage = errorMessage;
	this.m_requiredTextFields.push(errorObject);
}


function VALIDATE_addRegularExpressionTextField(element, errorField, errorMessage, regularExpression)
{
	var errorObject = new ERROROBJECT;
	errorObject.element = element;
	errorObject.errorField = errorField;
	errorObject.errorMessage = errorMessage;
	errorObject.regularExpression = regularExpression;
	this.m_regularExpression.push(errorObject);
}


function VALIDATE_requiredTextFields()
{
	var valid = true;
	for(var i=0; i<this.m_requiredTextFields.length; i++)
	{
		var errorObject = this.m_requiredTextFields[i];
		if(errorObject.element.value == '')
        {
            valid = false;
            errorObject.errorField.innerHTML = errorObject.errorMessage;
        }
        else
        {
			 errorObject.errorField.innerHTML = "";
        }
	}
	
	return valid;
}

function VALIDATE_regularExpressions()
{
	var valid = true;
	for(var i=0; i<this.m_regularExpression.length; i++)
	{
		var errorObject = this.m_regularExpression[i];
		if(!errorObject.regularExpression.test(errorObject.element.value))
        {
            valid = false;
            errorObject.errorField.innerHTML = errorObject.errorMessage;
        }
        else
        {
			errorObject.errorField.innerHTML = "";
        }
	}
	
	return valid;
}


function ERROROBJECT()
{
	this.element = null;
	this.errorField = null;
	this.errorMessage = null;
	this.regularExpression = null;
}