/***************************/
//@Author: Adrian "yEnS" Mato Gondelle & Ivan Guardado Castro
//@website: www.yensdesign.com
//@email: yensamg@gmail.com
//@license: Feel free to use it, but keep this credits please!					
/***************************/

$(document).ready(function(){
	//global vars
	var form = $("#customForm");
	var txtNombre = $("#txtNombre");
	var txtNombreInfo = $("#txtNombreInfo");
	var txtCorreo = $("#txtCorreo");
	var txtCorreoInfo = $("#txtCorreoInfo");
	var email2 = $("#email2");
	var email2Info = $("#email2Info");
    var cmbEdad = $("#cmbEdad");
	var cmbEdadInfo = $("#cmbEdadInfo");
	var cmbSexo = $("#cmbSexo");
	var cmbSexoInfo = $("#cmbSexoInfo");
	var txtColonia = $("#txtColonia");
	var txtColoniaInfo = $("#txtColoniaInfo");
	var cmbOcupacion = $("#cmbOcupacion");
	var cmbOcupacionInfo = $("#cmbOcupacionInfo");
	var txtEmpresa = $("#txtEmpresa");
	var txtEmpresaInfo = $("#txtEmpresaInfo");
	
	//On blur
	txtNombre.blur(validateNombre);
	txtCorreo.blur(validateEmail1);
	email2.blur(validateEmail2);
    cmbEdad.blur(validateEdad);
	cmbSexo.blur(validateSexo);
    txtColonia.blur(validateColonia);
	cmbOcupacion.blur(validateOcupacion);
	txtEmpresa.blur(validateEmpresa);	
    //On key press
	txtNombre.keyup(validateNombre);
	txtCorreo.keyup(validateEmail1);
	email2.keyup(validateEmail2);
    cmbEdad.keyup(validateEdad);
	cmbSexo.keyup(validateSexo);
    txtColonia.keyup(validateColonia);
	cmbOcupacion.keyup(validateOcupacion);
	txtEmpresa.keyup(validateEmpresa);
	//On Submitting
	form.submit(function(){
		if(validateNombre() & validateEmail1() & validateEmail2() & validateEdad() & validateSexo() & validateColonia() & validateOcupacion() & validateEmpresa())
			return true
		else
			return false;
	});
	
	//validation functions
	function validateEmail1(){
		//testing regular expression
		var a = $("#txtCorreo").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)){
			txtCorreo.removeClass("error");
			txtCorreoInfo.text("Cuenta de correo valida");
			txtCorreoInfo.removeClass("error");
			return true;
		}
		//if it's NOT valid
		else{
			txtCorreo.addClass("error");
			txtCorreoInfo.text("La cuenta de correo es invalida!");
			txtCorreoInfo.addClass("error");
			return false;
		}
	}
	function validateEmail2(){
		var a = $("#txtCorreo");
		var b = $("#email2");
		//are not valid		
		if( txtCorreo.val() != email2.val() ){
			email2.addClass("error");
			email2Info.text("Las cuentas de correo no coinciden!");
			email2Info.addClass("error");
			return false;
		}
		//are valid
		else{
			email2.removeClass("error");
			email2Info.text("");
			email2Info.removeClass("error");
			return true;
		}
	}	
	function validateNombre(){
		//if it's NOT valid
		if(txtNombre.val().length < 3){
			txtNombre.addClass("error");
			txtNombreInfo.text("Se requieren nombres al menos de 3 letras!");
			txtNombreInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			txtNombre.removeClass("error");
			txtNombreInfo.text("");
			txtNombreInfo.removeClass("error");
			return true;
		}
	}
	function validateEdad(){
		//it's NOT valid
		if(cmbEdad.val().length < 1){
			cmbEdad.addClass("error");
			cmbEdadInfo.text("Por favor elige una opcion!");			
			return false;
		}
		//it's valid
		else{			
			cmbEdad.removeClass("error");
			cmbEdadInfo.text("");				
			return true;
		}
	}
	function validateSexo(){
		//it's NOT valid
		if(cmbSexo.val().length < 1){
			cmbSexo.addClass("error");
			cmbSexoInfo.text("Por favor elige una opcion!");			
			return false;
		}
		//it's valid
		else{			
			cmbSexo.removeClass("error");
			cmbSexoInfo.text("");				
			return true;
		}
	}	
	function validateColonia(){
		//it's NOT valid
		if(txtColonia.val().length < 4){
			txtColonia.addClass("error");
			txtColoniaInfo.text("Por favor escribe una colonia valida!");			
			return false;
		}
		//it's valid
		else{			
			txtColonia.removeClass("error");
			txtColoniaInfo.text("");				
			return true;
		}
	}	
	function validateOcupacion(){
		//it's NOT valid
		if(cmbOcupacion.val().length < 3){
			cmbOcupacion.addClass("error");
			cmbOcupacionInfo.text("Por favor elige una opcion!");			
			return false;
		}
		//it's valid
		else{			
			cmbOcupacion.removeClass("error");
			cmbOcupacionInfo.text("");				
			return true;
		}
	}
	function validateEmpresa(){
		//it's NOT valid
		if(txtEmpresa.val().length < 3){
			txtEmpresa.addClass("error");
			txtEmpresaInfo.text("Por favor escribe la empresa en la que laboras");			
			return false;
		}
		//it's valid
		else{			
			txtEmpresa.removeClass("error");
			txtEmpresaInfo.text("");				
			return true;
		}
	}	
});
