Ext.namespace('Ext.ux');
Ext.ux.ValidateForm = function(form){
	this.form = form;
	this.formel = Ext.get(form);

	/* regexp */
	//this.email = /^([\w]+)(\.[\w]+)*@([\w\-]+\.){1,5}([A-Za-z]){2,4}$/;
	this.email = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

	this.validate = function(){
		var result = true;

		/* reset fields */
		var el = this.formel.select('.invalid').elements;
		for(var i=0; i < el.length; i++){
			Ext.get(el[i]).removeClass('invalid');
		}

		/* test required fields */
		el = this.formel.select('.req').elements;
		for(i=0; i < el.length; i++){
			if(el[i].value == ""){
				Ext.get(el[i]).addClass('invalid');
				result = false;
			}
		}

		/* test email fields */
		el = this.formel.select('.email').elements;
		for(i=0; i < el.length; i++){
			if(el[i].value != "" && !this.email.test(el[i].value)){
				Ext.get(el[i]).addClass('invalid');
				result = false;
			}
		}
		
		return result;
	}

	return this.validate();
}
