$(document).ready(function(){
 validateForm();
});

function validateForm(){
	var form = $('#fields');
	
	form.children().each(function(){
		if(this.name){
			//alert(this.tagName + " - " + this.name + "- " + $(this).attr("validate"));
			if($(this).attr("validate")){
				$(this).attr("valid",false);
				$(this).blur(function(){
					//alert(this.name);
					validateField(this,$(this).attr("validate"));
				//.onBlur = validateField(this.name, $(this).attr("validate"));
			});
			}
		}
	});
	$('#envoyer').addClass("disabled");	
}

function formValid(){
	var form = $('#fields');
	var valid=true;
	form.children().each(function(){
		if(this.name){
			if($(this).attr("validate")){
				if($(this).attr("valid")=="false"){
					valid = false;
				}
			}
		}});
	return valid;	
}

function validateField(quien,como){
	//alert(quien.name + " - " + como);
switch(como){
	case 'value':
		if(quien.value==""){
			$(quien).addClass("error");
			$(quien).attr("valid",false);
		}else{
			$(quien).removeClass("error");
			$(quien).attr("valid",true);
		}
		break;
		
	case 'text':
		if(quien.value.length==0){
			$(quien).addClass("error");
			$(quien).attr("valid",false);
		}else{
			$(quien).removeClass("error");
			$(quien).attr("valid",true);
		}
		break;
		
	case 'email':
		var reg = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/;
		if(reg.test(quien.value) == false) {
			$(quien).addClass("error");
			$(quien).attr("valid",false);
		}else{
			$(quien).removeClass("error");
			$(quien).attr("valid",true);
		}
		break;			
	}
	var formValido=formValid();
	
	if(!formValido){
		$('#envoyer').addClass("disabled");	
	}else{
		$('#envoyer').removeClass("disabled");	
	}
	
	
}


function submitForm(){
	if(validateSubmit()){
		$("#form").submit();
	}else{
		$("#errorMsg").show();
	}
}

function validateSubmit(){
	var form = $('#fields');
	allOk=true;
	form.children().each(function(){
		if(this.name){
			//alert(this.tagName + " - " + this.name + "- " + $(this).attr("validate"));
			if($(this).attr("validate")){
					validateField(this,$(this).attr("validate"));
					if($(this).attr("valid")=="false"){
						allOk=false;
					}
			}
		}
	});
	return allOk;
	
}