var mxValidation = new Class({
	initialize: function(form){
		$(form).addEvent("submit", function(e){
			return this.checkRequired(form);
		}.bind(this));
	},
	checkRequired: function(form){
		required = 0;
		$$(".required").each(function(element, i){
			/*ID = "parent_"+i;
			element.getParent().id = ID;*/
			if(element.value.trim() == ""){
				element.setStyle("border", "1px solid #FF0000");
				var myFx = new Fx.Tween(element.getParent(), {
								duration: 900, 
								transition: Fx.Transitions.linear,
								onComplete: function(){
									new Fx.Tween(element.getParent(), {
										duration: 900, 
										transition: Fx.Transitions.linear,
									}).start('background-color', '#FFEBE8', '#FFFFFF');
								}
							}).start('background-color', '#FFFFFF', '#FFEBE8');
				required = 1;
			}else{
				element.getParent().setStyle("background-color", "#FFFFFF");
				element.setStyle("border", "1px solid #CCCCCC");
			}
		});
		if(required == 1){
			return false;	
		}else{
			return this.checkMail(form);
		}
	},
	checkMail: function(form){
		email = 0;
		$$(".email").each(function(element, i){
			if(element.value.indexOf('@') < 1 || element.value.lastIndexOf('.') < element.value.indexOf('@') + 2){
				element.setStyle("border", "1px solid #FF0000");
				var myFx = new Fx.Tween(element.getParent(), {
								duration: 900, 
								transition: Fx.Transitions.linear,
								onComplete: function(){
									new Fx.Tween(element.getParent(), {
										duration: 900, 
										transition: Fx.Transitions.linear,
									}).start('background-color', '#FFEBE8', '#FFFFFF');
								}
							}).start('background-color', '#FFFFFF', '#FFEBE8');
				email = 1;
			}else{
				element.getParent().setStyle("background-color", "#FFFFFF");
				element.setStyle("border", "1px solid #CCCCCC");
			}
		});
		if(email == 1){
			return false;	
		}else{
			return this.compareMail(form);
		}
	},
	compareMail: function(form){
		compareMail = 0;
		$$(".compareMail").each(function(element, i){
			if($("email").value != element.value){
				element.setStyle("border", "1px solid #FF0000");
				var myFx = new Fx.Tween(element.getParent(), {
								duration: 900, 
								transition: Fx.Transitions.linear,
								onComplete: function(){
									new Fx.Tween(element.getParent(), {
										duration: 900, 
										transition: Fx.Transitions.linear,
									}).start('background-color', '#FFEBE8', '#FFFFFF');
								}
							}).start('background-color', '#FFFFFF', '#FFEBE8');
				compareMail = 1;
			}else{
				element.getParent().setStyle("background-color", "#FFFFFF");
				element.setStyle("border", "1px solid #CCCCCC");
			}
		});
		if(compareMail == 1){
			return false;	
		}else{
			return true;
		}
	}
});