var form = {

	errors: false,
	fields: false,
	
	config: {
		requiredClass: 'required',
		failedClass: 'failed'
	},
	
	validate: function(formid) {
	
		if(this.errors.length > 0) {
			this.resetErrors();
		}
	
		this.fields = new Array();
		this.errors = new Array();
	
		this.findRequired(formid);
		
		for(i = 0; i< this.fields.length; i++) {
			this.checkValue(i);
		}
		
		return this.action(formid);
	},
	
	findRequired: function(formid) {
		
		$('#'+formid+' .'+this.config.requiredClass).each(function() {
			var field = new Object();
				field._self = $(this);
				field.id = $(this).attr('id');
				field.name = $(this).attr('name');
				field.value = $(this).val();
				field.tag = $(this).context.tagName;
				field.type = $(this).context.type;
				
			form.fields.push(field);
		});
	},
	
	checkValue: function(index) {
	
		if(this.fields[index].value == '') {
			this.errors.push(this.fields[index]._self);
		}
	},
	
	markField: function(htmlObject) {
		htmlObject.addClass(this.config.failedClass);
	},
	
	removeMark: function(htmlObject) {
		htmlObject.removeClass(this.config.failedClass);
	},
	
	resetErrors: function() {
		for(i = 0; i<this.errors.length; i++) {
			this.removeMark(this.errors[i]);
		}
	},
	
	action: function(formid) {
		if(this.errors.length > 0) {
			for(i = 0; i<this.errors.length; i++) {
				 this.markField(this.errors[i]);
			}
			$('.fields.info').prepend('<div class="note">Bitte alle Pflichtfelder ausfüllen</div>');
			
			return false;
		} else {			
			//xajax_submitform(xajax.getFormValues(formid));
			//alert('alles erfolgrech');
			
			return true;
		}
	}
}
