var tempError;
/*
function mostrar_error(texto) {	
  clearTimeout(tempError);
	$("#texto_error").html(texto);
	$("#ventana_error").animate({ 
      top: "0px"
    }, 500 );
  tempError=setTimeout(ocultar_error, 7000);  
}
function ocultar_error() {  
  $("#ventana_error").animate({ 
      top: "-170px"
    }, 500 );    
    clearTimeout(tempError);
}		
*/
function check_fields(tipo,nombre,valor,longitud) {
	var elcontenido=jQuery.trim(valor);
	//elcontenido=elcontenido.replace(/^\s*|\s*$/g,"");	
	
//	Control campos alfanumericos
	if (tipo=="t") {		
		if (elcontenido == '') {
			mostrar_error(nombre + " es obligatorio.");							
			return false;					
		}
		if (elcontenido.length > longitud) {
			mostrar_error(nombre + " debe tener menos de " + longitud + " carácteres.");							
			return false;							
		}		
		ocultar_error();
		return elcontenido;
	}
//	Control campos numericos	
	if (tipo=="n") {
		if (elcontenido == '') {
			mostrar_error(nombre + " es obligatorio.");							
			return false;
		}		
		if ((nombre=="Edad") ||(nombre=="Edad del hijo")){
			if (isNaN(elcontenido)){
				mostrar_error(nombre + " solo puede contener números.");							
				return false;	
			} else {
				if (elcontenido>longitud){
					mostrar_error("Seguro que eres tan viejo.");							
					return false;	
				}
				if (elcontenido<0){
					mostrar_error(nombre + " incorrecta.");							
					return false;	
				}
			}
		} else{
			if ((elcontenido.length != longitud) || (isNaN(elcontenido))){
				mostrar_error(nombre + " es incorrecto.");							
				return false;	
			}				
		}
		if ((nombre=="Código postal") && ((elcontenido>=53000) || (elcontenido<1000))) {
			mostrar_error(nombre + " es incorrecto.");							
			return false;	
		}
		ocultar_error();
		return elcontenido;
	}
	
//	Control campos email
	if (tipo=="e") {		
		if (elcontenido == '') {
			mostrar_error(nombre + " es obligatorio.");							
			return false;
		}		
		if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(elcontenido)){				
			ocultar_error();		  
	  } else {
	  	mostrar_error(nombre + " tiene un formato incorrecto.");							
			return false;
	  }	
	  ocultar_error();	
	  return elcontenido;
	}
}
	
$("#close_message").click(function() {
  ocultar_error();
});

$(document).ready(function(){
	
//Mostrar/ocultar campos de edad de los hijos
	$("#hijos").change(function(){
   	if ($("#hijos").val()>0) $("#lblhijos").attr("style","visibility: visible;"); else $("#lblhijos").attr("style","visibility: hidden;");
   	for (x=0;x<$("#hijos").val();x++){
   		y=x+1;
     	$("#edadh"+y).attr("style","visibility: visible;");
    }
    x++;
    for (y=x;y<7;y++){
    	$("#edadh"+y).attr("style","visibility: hidden;");
     	$("#edadh"+y).removeClass("input_formp1_error_h");
     	$("#edadh"+y).addClass("input_formp1_h");
     	$("#edadh"+y).val('');
    }
  });
  
// Validacion de campos del formulario
	
// Validacion de nombre	
	$("#nombre").blur(function () {		
		var resultado='';		
		resultado=check_fields("t","Nombre",$(this).val(),50);
		if (resultado != false) {
			ocultar_error();
			$(this).removeClass("input_formp1_error");
			$(this).addClass("input_formp1");	
			$(this).val(resultado);
		} else {
			$(this).removeClass("input_formp1");
			$(this).addClass("input_formp1_error");	
		}			
	});

// Validacion de apellido	
	$("#apellido").blur(function () {
		var resultado='';				
		resultado=check_fields("t","Apellido",$(this).val(),50);
		if (resultado != false) {
			ocultar_error();
			$(this).removeClass("input_formp1_error");
			$(this).addClass("input_formp1");	
			$(this).val(resultado);
		} else {
			$(this).removeClass("input_formp1");
			$(this).addClass("input_formp1_error");	
		}			
	});	
	
	// Validacion de Codigo Postal	
	$("#codpostal").blur(function () {	
		var resultado='';			
		resultado=check_fields("n","Código postal",$(this).val(),5);
		if (resultado != false) {
			ocultar_error();
			$(this).removeClass("input_formp1_error");
			$(this).addClass("input_formp1");	
			$(this).val(resultado);
		} else {
			$(this).removeClass("input_formp1");
			$(this).addClass("input_formp1_error");	
		}			
	});	
	
	// Validacion de Email 1
	$("#email1").blur(function () {		
		var resultado='';		
		resultado=check_fields("e","Email 1",$(this).val(),0);
		if (resultado != false) {
			$.get("check_email.asp", { id: resultado },
		  	function(data){
		  		var result = data;
		    	if (result.indexOf('invalid')==-1) {		    		
		    		var e0=resultado;
						var e1=$("#email2").val();						
						if (e0==e1) {
							mostrar_error("Email y Email secundario deben ser diferentes.");							
							$("#email1").removeClass("input_formp1");
							$("#email1").addClass("input_formp1_error");	
						} else {
			    		ocultar_error();
							$("#email1").removeClass("input_formp1_error");
							$("#email1").addClass("input_formp1");	
							$("#email1").val(resultado);
						}		    		
		    	} else {
		    		mostrar_error(resultado + " ya existe en la base de datos.");							
						$("#email1").removeClass("input_formp1");
						$("#email1").addClass("input_formp1_error");	
		    	}		    			    	
		  },"text");						
		} else {
			$(this).removeClass("input_formp1");
			$(this).addClass("input_formp1_error");	
		}			
	});	

	// Validacion de Email 2
	$("#email2").blur(function () {	
		var resultado='';	
		if ($(this).val() != '') {			
			resultado=check_fields("e","Email 2",$(this).val(),0);
			if (resultado != false) {
				$.get("check_email.asp", { id: resultado },
			  	function(data){
			  		var result = data;
			    	if (result.indexOf('invalid')==-1) {
			    		var e0=resultado;
							var e1=$("#email1").val();						
							if (e0==e1) {
								mostrar_error("Email y Email secundario deben ser diferentes.");							
								$("#email2").removeClass("input_formp1");
								$("#email2").addClass("input_formp1_error");	
							} else {
				    		ocultar_error();
								$("#email2").removeClass("input_formp1_error");
								$("#email2").addClass("input_formp1");	
								$("#email2").val(resultado);
							}	
			    	} else {
			    		mostrar_error(resultado + " ya existe en la base de datos.");							
							$("#email2").removeClass("input_formp1");
							$("#email2").addClass("input_formp1_error");	
			    	}		    			    	
			  },"text");						
			} else {
				$(this).removeClass("input_formp1");
				$(this).addClass("input_formp1_error");	
			}	
		}		
	});		
	
// Validacion de Email 1 rep
	$("#email1rep").blur(function () {		
		var resultado='';		
		resultado=check_fields("e","Repetir Email 1",$(this).val(),0);
		if (resultado != false) {
			$.get("check_email.asp", { id: resultado },
		  	function(data){
		  		var result = data;
		    	if (result.indexOf('invalid')==-1) {
		    		var e0=resultado;
						var e1=$("#email1").val();						
						if (e0!=e1) {
							mostrar_error("Email 1 y Repetir Email 1 deben ser iguales.");							
							$("#email1rep").removeClass("input_formp1");
							$("#email1rep").addClass("input_formp1_error");	
						} else {
			    		ocultar_error();
							$("#email1rep").removeClass("input_formp1_error");
							$("#email1rep").addClass("input_formp1");	
							$("#email1rep").val(resultado);
						}
		    	} else {
		    		mostrar_error(resultado + " ya existe en la base de datos.");							
						$("#email1rep").removeClass("input_formp1");
						$("#email1rep").addClass("input_formp1_error");	
		    	}		    			    	
		  },"text");						
		} else {
			$(this).removeClass("input_formp1");
			$(this).addClass("input_formp1_error");	
		}					
	});			

// Validacion de Email 2 rep
	$("#email2rep").blur(function () {			
		var resultado='';
		if ($(this).val() != '') {				
			resultado=check_fields("e","Repetir Email 2",$(this).val(),0);
			if (resultado != false) {
				$.get("check_email.asp", { id: resultado },
			  	function(data){
			  		var result = data;
			    	if (result.indexOf('invalid')==-1) {
			    		var e0=resultado;
							var e1=$("#email2").val();						
							if (e0!=e1) {
								mostrar_error("Email 2 y Repetir Email 2 deben ser iguales.");							
								$("#email2rep").removeClass("input_formp1");
								$("#email2rep").addClass("input_formp1_error");	
							} else {
				    		ocultar_error();
								$("#email2rep").removeClass("input_formp1_error");
								$("#email2rep").addClass("input_formp1");	
								$("#email2rep").val(resultado);
							}
			    	} else {
			    		mostrar_error(resultado + " ya existe en la base de datos.");							
							$("#email2rep").removeClass("input_formp1");
							$("#email2rep").addClass("input_formp1_error");	
			    	}		    			    	
			  },"text");						
			} else {
				$(this).removeClass("input_formp1");
				$(this).addClass("input_formp1_error");	
			}	
		} else {
			if ($("#email2").val() != '') {
				mostrar_error("Email 2 y Repetir Email 2 deben ser iguales.");							
				$("#email2rep").removeClass("input_formp1");
				$("#email2rep").addClass("input_formp1_error");	
			} else {
    		ocultar_error();
				$("#email2rep").removeClass("input_formp1_error");
				$("#email2rep").addClass("input_formp1");	
				$("#email2rep").val(resultado);
			}
		}				
	});			
	
// Validacion de Edad	
	$("#edad").blur(function () {		
		var resultado='';		
		resultado=check_fields("n","Edad",$(this).val(),135);
		if (resultado != false) {
			ocultar_error();
			$(this).removeClass("input_formp1_error");
			$(this).addClass("input_formp1");	
			$(this).val(resultado);
		} else {
			$(this).removeClass("input_formp1");
			$(this).addClass("input_formp1_error");	
		}			
	});	

// Validacion de Edad Hijos	
	$("input[id^='edadh']").blur(function () {		
		var resultado='';	
		if ($(this).val() != '') {	
		resultado=check_fields("n","Edad del hijo",$(this).val(),80);
		if (resultado != false) {
			ocultar_error();
			$(this).removeClass("input_formp1_error_h");
			$(this).addClass("input_formp1_h");	
			$(this).val(resultado);
		} else {
			$(this).removeClass("input_formp1_h");
			$(this).addClass("input_formp1_error_h");	
		}			
		}
	});
	
	
// Validacion de Movil	
	$("#movil").blur(function () {	
		var resultado='';	
		if ($(this).val() != '') {	
			resultado=check_fields("n","Móvil",$(this).val(),9);
			if (resultado != false) {
				if (resultado.substring(0,1)!= '6') { 
					mostrar_error("Móvil incorrecto.");
		 	 		$(this).removeClass("input_formp1");
					$(this).addClass("input_formp1_error");	
			 	} else {			 		
			 		$.get("check_movil.asp", { id: resultado },
				  	function(data){
				  		var result = data;
				    	if (result.indexOf('invalid')==-1) {
				    		ocultar_error();
								$("#movil").removeClass("input_formp1_error");
								$("#movil").addClass("input_formp1");	
								$("#movil").val(resultado);
				    	} else {
				    		mostrar_error(resultado + " ya existe en la base de datos.");							
								$("#movil").removeClass("input_formp1");
								$("#movil").addClass("input_formp1_error");	
				    	}		    			    	
				  },"text");				 							
				}
			} else {
				$(this).removeClass("input_formp1");
				$(this).addClass("input_formp1_error");	
			}	
		}		
	});		

// Validacion de Movil Rep
	$("#movilrep").blur(function () {		
		var resultado='';
		if ($(this).val() != '') {	
			resultado=check_fields("n","Repetir Móvil",$(this).val(),9);
			if (resultado != false) {
				if (resultado.substring(0,1)!= '6') { 
					mostrar_error("Móvil incorrecto.");
		 	 		$(this).removeClass("input_formp1");
					$(this).addClass("input_formp1_error");	
			 	} else {
			 		var e0=resultado;
					var e1=$("#movil").val();						
					if (e0!=e1) {
						mostrar_error("Móvil y Repetir Móvil deben ser iguales.");							
						$("#movilrep").removeClass("input_formp1");
						$("#movilrep").addClass("input_formp1_error");	
					} else {
		    		ocultar_error();
						$("#movilrep").removeClass("input_formp1_error");
						$("#movilrep").addClass("input_formp1");	
						$("#movilrep").val(resultado);
					}					
				}
			} else {
				$(this).removeClass("input_formp1");
				$(this).addClass("input_formp1_error");	
			}	
		}	else {
			if ($("#movil").val() != '') {
				mostrar_error("Móvil y Repetir Móvil deben ser iguales.");							
				$("#movilrep").removeClass("input_formp1");
				$("#movilrep").addClass("input_formp1_error");	
			} else {
    		ocultar_error();
				$("#movilrep").removeClass("input_formp1_error");
				$("#movilrep").addClass("input_formp1");	
				$("#movilrep").val(resultado);
			}	
		}
	});			

// Validacion de Referenciado
	$("#referenciado").blur(function () {	
		var resultado='';
		if ($(this).val() != '') {				
			resultado=check_fields("e","Referenciado",$(this).val(),0);
			if (resultado != false) {
				$.get("check_email.asp", { id: resultado },
			  	function(data){
			  		var result = data;
			    	if (result.indexOf('invalid')==-1) {
			    		mostrar_error(resultado + " no existe en la base de datos.");							
							$("#referenciado").removeClass("input_formp1");
							$("#referenciado").addClass("input_formp1_error");	
			    	} else {
			    		ocultar_error();
							$("#referenciado").removeClass("input_formp1_error");
							$("#referenciado").addClass("input_formp1");	
							$("#referenciado").val(resultado);			    		
			    	}		    			    	
			  },"text");						
			} else {
				$(this).removeClass("input_formp1");
				$(this).addClass("input_formp1_error");	
			}	
		}		
	});	
		
   
// Validacion del formulario 
	$("#continuar").click(function () {			
		var hayError=0;
		var camposObligatorios=['nombre','apellido','codpostal','email1','email1rep','edad'];
		
		//Validacion edad de los hijos
		aux=0;
		for (x=0;x<$("#hijos").val();x++){
  		y=x+1;
     	if($("#edadh"+y).val()==''){
     	 hayError=3;
     	 break;
  	 	}else{ 
     		if($("#edadh"+y).val()<aux){
     			hayError=3;
     			break;
     		}else{
     			aux=$("#edadh"+y).val();
     		}
     	}
   	}	
		
		$("form").each(function() {
			$("input").each(function() {
				if ($(this).attr("class")=='input_formp1_error') {
					hayError=1;
				}
				if ((jQuery.inArray($(this).attr("id"),camposObligatorios)>-1) && ($(this).val()=='')) {
					hayError=2;
					$(this).removeClass("input_formp1");
					$(this).addClass("input_formp1_error");
				}
			});
		});
		
		if(hayError==1) {
			mostrar_error("El registro contiene errores, compruébelo antes de continuar.");
		} 
		if(hayError==2) {
			mostrar_error("Existen campos obligatorios por cumplimentar.");
		} 	
		if(hayError==3) {
			mostrar_error("La edad de los hijos contiene errores, compruébelo antes de continuar");
		}
		if (hayError==0){
			if ($("input:checked").length<1){
			  hayError=3;
				mostrar_error("Debes seleccionar tu sexo.");
				$("#divsexo").removeClass("input_formp1");
				$("#divsexo").addClass("input_formp1_error");
			} else {
				$("#divsexo").removeClass("input_formp1_error");
				$("#divsexo").addClass("input_formp1");
			}	
		}

//Si no hay error procedemos al submit		
		if (hayError==0){
			$("#form1").attr("action","reg_b.asp"); 
			$("#form1").submit();
		}
	});	
			
});

