var Page_IsValid = true;

function ValidateForm()
{
	Page_IsValid = true;
	var i = Page_Validators.length;
	var Page_IsBlock; 
	while(i > 0)
	{
		var _object = document.getElementById(Page_Validators[i-1]);
		switch(_object.evaluationfunction)
		{
			case "RequiredFieldValidator":
				Page_IsBlock = RequiredFieldValidator(_object);
			break;
			case "MailValidator":
				Page_IsBlock = MailValidator(_object);
			break;
		}
		Page_IsValid = Page_IsValid && !Page_IsBlock;
		i--;
	}
	return Page_IsValid;
}

function StringTrim(_string) {
    var _stringTrim = _string.match(/^\s*(\S+(\s+\S+)*)\s*$/);
    return (_stringTrim == null) ? "" : _stringTrim[1];
}

function RequiredFieldValidator(_object)
{
	var Block_Page = false;
	var ObjectToEvaluate = document.getElementById(_object.controltovalidate);
	if(StringTrim(ObjectToEvaluate.value).length == 0)
	{
		Block_Page = true;
	}
	else
	{
		Block_Page = false;
	}
	if(Block_Page)
	{
		ObjectToEvaluate.style.backgroundColor = "#FC0000";
		ObjectToEvaluate.style.color = "#FFFFFF";
		ObjectToEvaluate.style.fontWeight = "bold";
	}
	else
	{
		ObjectToEvaluate.style.backgroundColor = "#FFFFFF";
		ObjectToEvaluate.style.color = "#3E3E3E";
		ObjectToEvaluate.style.fontWeight = "normal";
	}
	return Block_Page;
}

function MailValidator(_object)
{
	var rx = /(\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)/;
	var Block_Page = false;
	var ObjectToEvaluate = document.getElementById(_object.controltovalidate)
	if(StringTrim(ObjectToEvaluate.value).length == 0)
	{
		Block_Page = true;
	}
	else
	{
		var _match = rx.test(ObjectToEvaluate.value);
		if(_match)
		{
			Block_Page = false;
		}
		else
		{
			Block_Page = true;
		}
		
	}
    if(Block_Page)
	{
		ObjectToEvaluate.style.backgroundColor = "#FC0000";
		ObjectToEvaluate.style.color = "#FFFFFF";
		ObjectToEvaluate.style.fontWeight = "bold";
	}
	else
	{
		ObjectToEvaluate.style.backgroundColor = "#FFFFFF";
		ObjectToEvaluate.style.color = "#3E3E3E";
		ObjectToEvaluate.style.fontWeight = "normal";
	}
    return Block_Page;
}

