validation = Class.create();

validation.prototype = {
	
	initialize: function(){
	
		this.reponse = true;
		this.message = new Array();
	
		// This object pointer
		var thisPointer = this;
		
		// Clear field styles
		var objFields = document.getElementsByClassName('FieldFailed');
		for(var i=0; i<objFields.length; i=i+1)
			objFields[i].removeClassName("FieldFailed");
		
	},
	
	setField: function(fieldName, type, message){
		
		// Get Fields
		var objField = $(fieldName);
		
		switch(type){
			case "email":
				if(!objField.value.length || objField.value.replace(/[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/,"").length)
					this.setError(objField,message + "\n- E-mail address needs to be correctly formatted.");
				break;
				
			case "money":
				if(!objField.value.length || objField.value.replace(/[0-9]*[.]?[0-9]?[0-9]?/,"").length)
					this.setError(objField,message + "\n- Value must be a valid currency entry (no $ sign, max 2 decimal places).");
				break;
				
			case "int" :
				if(!objField.value.length || objField.value.replace(/[0-9]+/,"").length)
					this.setError(objField,message + "\n- Value must be a valid integer (non-decimal number).");
				break;
				
			case "decimal" :
				if(!objField.value.length || !objField.value.replace(/[0-9]*[.]?[0-9]*/,"").length)
					this.setError(objField,message + "\n- Value must be a valid decimal number.");
				break;
				
			case "select":
				if(!objField.options[objField.selectedIndex].value.length)
					this.setError(objField,message);
				break;
	
			case "multiselect":
				if(objField.selectedIndex == -1)
					this.setError(objField,message);
				break;
				
			case "datetime":
				if(!objField.value.replace(/\s*/,"").length)
					this.setError(objField,message);
			break;

			default:
				if(!objField.value.replace(/\s*/,"").length)
					this.setError(objField,message);
			break;
		}
	},
	
	setError: function(objField,message){
		this.reponse = false;
		this.message.push(message);
		objField.addClassName("FieldFailed");
	},
	
	validate: function(){
		for(var i=0; i<this.message.length; i=i+1)
			alert(this.message[i]);
		return this.reponse;
	}
	
}