var validation = new Class ({
	initialize: function() {
		this.inputFields = $$("#form .req, #form .email, #form .postcode, #form .adres");
	},

	validateFields: function(){
		this.errors = new Array();
		this.inputFields.each(function (item,index){
			if (!this.validInput(this.getType($(item)),$(item).get("value"),$(item))) {
				if ($(item).get("class")) {
					this.errors.include(item);
				}
			} 
		}.bind(this));
	},

	getType: function(e){
		return e.get("class");
	},

	userInput: function(i){
		return i.get("value");
	},
	
	error: function(item,type){
		if(type=="add")
			$(item).style.borderColor = "#FF0000";
		else
			$(item).style.borderColor = "#BBB1AD";
	},

	validInput: function(fieldtype,value,item){
	
		switch (fieldtype)
		{
		case "req":
			controleren = true;
			if (controleren) {
				if(value==""){
					this.error(item,'add');
					return false;
				}
				else{
					this.error(item,'clear');
					return true;
				}
			} else {
				this.error(item,'clear');
				return true
			}
		break;
		case "email":
			var expression = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
										   '(\\@)([a-zA-Z0-9\\-\\.]+)'+
										   '(\\.)([a-zA-Z]{2,4})$');
			if (!expression.test(value)) {
				this.error(item,'add');
				return false;
			} else {
				this.error(item,'clear');
				return true;
			}
			
		break;
		case "postcode":
			value = value.toUpperCase(); 
			var expression = new RegExp('([0-9]){4}([A-Z]){2}');
			if (!expression.test(value)) {
				this.error(item,'add');
				return false;
			} else {
				this.error(item,'clear');
				return true;
			}
		break;
		case "adres":
			var expression = new RegExp('(\\s{1,})(\\d{1,})');
			if (!expression.test(value)) {
				this.error(item,'add');
				return false;
			} else {
				this.error(item,'clear');
				return true;
			}
		break;		
		}		
	}
});
