$(document).ready(function(){
	
	/* ----- Global Vars ----- */
	var form = $("#customForm");
	
	var nome = $("#nome");
	var nomeInfo = $("#nomeInfo");
	
	var apelid = $("#apelid");
	var apelidInfo = $("#apelidInfo");
	
	var dnac = $("#dnac");
	var dnacInfo = $("#dnacInfo");
	
	var dni = $("#dni");
	var dniInfo = $("#dniInfo");
	
	var enderezo = $("#enderezo");
	var enderezoInfo = $("#enderezoInfo");
	
	var poboacion = $("#poboacion");
	var poboacionInfo = $("#poboacionInfo");
	
	var provincia = $("#provincia");
	var provinciaInfo = $("#provinciaInfo");
	
	var cp = $("#cp");
	var cpInfo = $("#cpInfo");
	
	var tlf = $("#tlf");
	var tlfInfo = $("#tlfInfo");
	
	var email = $("#email");
	var emailInfo = $("#emailInfo");
	
	var club = $("#club");
	var clubInfo = $("#clubInfo");
	
	var dpago = $("#dpago");
	var dpagoInfo = $("#dpagoInfo");
	
	var message = $("#message");



	//On blur
	nome.blur(validateNome);
	apelid.blur(validateApelid);
	dnac.blur(validateDataNac);
	dni.blur(validateDNI);
	enderezo.blur(validateEnderezo);
	poboacion.blur(validatePoboacion);
	provincia.blur(validateProvincia);
	cp.blur(validateCP);
	tlf.blur(validateTlf);
	email.blur(validateEmail);
	club.blur(validateClub);
	dpago.blur(validateDataPago);
	
	//On key press
	nome.keyup(validateNome);
	apelid.keyup(validateApelid);
	dnac.keyup(validateDataNac);
	dni.keyup(validateDNI);
	enderezo.keyup(validateEnderezo);
	poboacion.keyup(validatePoboacion);
	provincia.keyup(validateProvincia);
	cp.keyup(validateCP);
	tlf.keyup(validateTlf);
	email.keyup(validateEmail);
	club.keyup(validateClub);
	dpago.keyup(validateDataPago);
	
	//On Submitting
	form.submit(function(){
		if(validateNome() & validateApelid() & validateDataNac() & validateDNI() & validateEnderezo() & validatePoboacion() & validatePoboacion() & validateProvincia() & validateCP() & validateTlf() & validateEmail() & validateClub() & validateDataPago())
			return true
		else
			return false;
	});






	/* ----- Validation Functions ----- */
	function validateNome(){
		//if it's NOT valid
		if(nome.val().length <= 0 || nome.val().length > 30){
			nome.addClass("error");
			nomeInfo.text("\u00c9 obrigatorio cubrir este campo.");
			nomeInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			nome.removeClass("error");
			nomeInfo.text("[*] Obrigatorio");
			nomeInfo.removeClass("error");
			return true;
		}
	}
	
	
	function validateApelid(){
		//if it's NOT valid
		if(apelid.val().length <= 0 || apelid.val().length > 40){
			apelid.addClass("error");
			apelidInfo.text("\u00c9 obrigatorio cubrir este campo.");
			apelidInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			apelid.removeClass("error");
			apelidInfo.text("[*] Obrigatorio");
			apelidInfo.removeClass("error");
			return true;
		}
	}
	
	
	function validateDataNac(){
		//testing regular expression
		var a = $("#dnac").val();
		var filter = /^[0-9]+[0-9]+\/+[0-9]+[0-9]+\/+[0-9]{2}$/;
		//if it's valid email
		if(filter.test(a)){
			dnac.removeClass("error");
			dnacInfo.text("Ok! A data \u00e9 v\u00e1lida.");
			dnacInfo.removeClass("error");
			return true;
		}
		//if it's NOT valid
		else{
			dnac.addClass("error");
			dnacInfo.text("O formato da data non \u00e9 v\u00e1lido. Exemplo: 31/10/70");
			dnacInfo.addClass("error");
			return false;
		}
	}
	
	
	function validateDNI(){
		//if it's NOT valid
		if(dni.val().length <= 0 || dni.val().length > 9){
			dni.addClass("error");
			dniInfo.text("\u00c9 obrigatorio cubrir este campo. Exemplo: 44487123H");
			dniInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			dni.removeClass("error");
			dniInfo.text("[*] Obrigatorio");
			dniInfo.removeClass("error");
			return true;
		}
	}
	
	
	function validateEnderezo(){
		//if it's NOT valid
		if(enderezo.val().length <= 0 || enderezo.val().length > 50){
			enderezo.addClass("error");
			enderezoInfo.text("\u00c9 obrigatorio cubrir este campo.");
			enderezoInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			enderezo.removeClass("error");
			enderezoInfo.text("[*] Obrigatorio");
			enderezoInfo.removeClass("error");
			return true;
		}
	}
	
	
	function validatePoboacion(){
		//if it's NOT valid
		if(poboacion.val().length <= 0 || poboacion.val().length > 20){
			poboacion.addClass("error");
			poboacionInfo.text("\u00c9 obrigatorio cubrir este campo.");
			poboacionInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			poboacion.removeClass("error");
			poboacionInfo.text("[*] Obrigatorio");
			poboacionInfo.removeClass("error");
			return true;
		}
	}
	
	
	function validateProvincia(){
		//if it's NOT valid
		if(provincia.val().length <= 0 || provincia.val().length > 20){
			provincia.addClass("error");
			provinciaInfo.text("\u00c9 obrigatorio cubrir este campo.");
			provinciaInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			provincia.removeClass("error");
			provinciaInfo.text("[*] Obrigatorio");
			provinciaInfo.removeClass("error");
			return true;
		}
	}
	
	
	function validateCP(){
		//if it's NOT valid
		if(cp.val().length <= 0 || cp.val().length > 5){
			cp.addClass("error");
			cpInfo.text("\u00c9 obrigatorio cubrir este campo. Exemplo: 32002");
			cpInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			cp.removeClass("error");
			cpInfo.text("[*] Obrigatorio");
			cpInfo.removeClass("error");
			return true;
		}
	}
	
	
	function validateTlf(){
		//if it's NOT valid
		if(tlf.val().length <= 0 || tlf.val().length > 9){
			tlf.addClass("error");
			tlfInfo.text("\u00c9 obrigatorio cubrir este campo. Exemplo: 676888555");
			tlfInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			tlf.removeClass("error");
			tlfInfo.text("[*] Obrigatorio");
			tlfInfo.removeClass("error");
			return true;
		}
	}
	
	
	function validateEmail(){
		//testing regular expression
		var a = $("#email").val();
		var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
		//if it's valid email
		if(filter.test(a)){
			email.removeClass("error");
			emailInfo.text("Ok! O email \u00e9 v\u00e1lido.");
			emailInfo.removeClass("error");
			return true;
		}
		//if it's NOT valid
		else{
			email.addClass("error");
			emailInfo.text("Este email non \u00e9 v\u00e1lido. Exemplo: email@email.com");
			emailInfo.addClass("error");
			return false;
		}
	}
	
	
	function validateClub(){
		//if it's NOT valid
		if(club.val().length <= 0 || club.val().length > 40){
			club.addClass("error");
			clubInfo.text("\u00c9 obrigatorio cubrir este campo.");
			tlfInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			club.removeClass("error");
			clubInfo.text("[*] Obrigatorio");
			clubInfo.removeClass("error");
			return true;
		}
	}
	
	
	function validateDataPago(){
		//testing regular expression
		var a = $("#dpago").val();
		var filter = /^[0-9]+[0-9]+\/+[0-9]+[0-9]+\/+[0-9]{2}$/;
		//if it's valid email
		if(filter.test(a)){
			dpago.removeClass("error");
			dpagoInfo.text("Ok! A data \u00e9 v\u00e1lida.");
			dpagoInfo.removeClass("error");
			return true;
		}
		//if it's NOT valid
		else{
			dpago.addClass("error");
			dpagoInfo.text("O formato da data non \u00e9 v\u00e1lido. Exemplo: 01/09/09");
			dpagoInfo.addClass("error");
			return false;
		}
	}


});
