Validator = Class.create({
	initialize: function(container) {
		this.initializeElement(container);
	},
	
	initializeElement: function(container) {
		this.container = $(container);
		if(this.container) {
			this.fields	= new Array();
	
			var listener = this.keyListener.bindAsEventListener(this);
			var elements = $$('#' + container + ' input');
			var element;
			var pattern;
			
			for(i = 0; i < elements.size(); i++) {
				element = elements[i];
				pattern	= element.readAttribute("pattern");
				if(pattern) {
					element.observe("keyup", listener);
					element.originalBackground 	= element.getStyle('backgroundColor');
					element.originalForeground 	= element.getStyle('color');
					element.regex				= new RegExp(pattern);
					this.fields.push(element);
				}
			}		
		}
	},
	
	keyListener: function(e)
	{
		this.checkField(e.target);
	},
	
	checkField: function(field)
	{
		if(field.disabled || (field.regex && field.regex.test($F(field)))) {
			field.setStyle({'backgroundColor': field.originalBackground});
			field.setStyle({'color': field.originalForeground});
			return true;
		}
		else {
			field.setStyle({'backgroundColor': 'red'});
			field.setStyle({'color': 'white'});
			return false;
		}	
	},
	
	checkAllFields: function()
	{
		check = true;
		for (var index = 0, len = this.fields.length; index < len; ++index) {
  			check = this.checkField(this.fields[index]) && check;
		}
		
		return check;
	}
});

