// Form validation
// Copyright (c) 2006
// Muzaffar Mahkamov

function Validator(formName)
{
	// Error messages, if any
	this.errors = [];
	
	// internal data
	this._formObj = YAHOO.util.Dom.get(formName);
	this._fields = [];
	
	this.CheckEmail = function(value)
	{
		var emailFilter=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/i;
		return (emailFilter.test(value));
	}
	
	this.CheckRequired = function(value)
	{
		return (value.length > 0);
	}
	
	this.AddRequired = function(fieldName, errorMsg)
	{
		var fld = YAHOO.util.Dom.get(fieldName);
		
		if(errorMsg === undefined)
			var errorMsg = 'Поле <a href="#' + fld.id + '">"' + fld.title + '"</a> обязательно для заполнения.';
			
		this._fields.push( { field: fld, 
							filter: this.CheckRequired,
							msg: errorMsg} );
	}
	
	this.AddEmail = function(fieldName, errorMsg)
	{
		var fld = YAHOO.util.Dom.get(fieldName);
		
		if(errorMsg === undefined)
			var errorMsg = 'Поле <a href="#' + fld.id + '">"' + fld.title + '"</a> должно содержать правильный почтовый адрес.';

		this._fields.push( { field: fld, 
							filter: this.CheckEmail,
							msg: errorMsg} );
	}
	
	this.Check = function()
	{
		i = 0; 
		c = this._fields.length;
		
		while(i < c)
		{
			var vo = this._fields[i];
			
			if(!vo.filter(vo.field.value))
				this.errors.push(vo.msg);
				
			i++;
		}
		
		return (this.errors.length == 0)
	}
}