// Funcion que comprueba la entrada de form_alta de los NIF, NIE
function CompruebaNIF(elCIF, tipoDoc, desDe, oTro, Txterr, msg) {
	var resul = false;
	var texTo
	texTo = Txterr;
		
// si el numero de documento no se informa, y se debe comprobar (parametro oTro informado), damos error
	if ( (!elCIF || elCIF == "") && oTro == 1 ) {
		if ( tipoDoc == "NIF" ) {
			if (Txterr != "N") {
				if (msg == 99) {
					resul = "- el nif del " + texTo + " debe informarse.\n";
				} else {
					alert ("EL NIF DEL " + texTo + " DEBE INFORMARSE");
				}
			}
		}
		if ( tipoDoc == "NIE" ) {
			if (Txterr != "N") {
				if (msg == 99) {
					resul = "- el nie del " + texTo + " debe informarse.\n";
				} else {
					alert ("EL NIE DEL " + texTo + " DEBE INFORMARSE");
				}
			}
		}
	}
// si el numero de documento no se informa, nos saltamos la validacion
	if ( elCIF ) {
	// validacion del PAS
		if ( tipoDoc == "PAS") {
			resul = true;
		}
	// validacion de la primera letra del NIE		
		if ( tipoDoc == "NIE" ) {
			if ( elCIF.substr(0,1) != "X") {	
				if (Txterr != "N") {
					if (msg == 99) {
						resul = "- la primera letra del nie del " + texTo + " es err\363nea.\n";
					} else {
						alert ( "LA PRIMERA LETRA DEL NIE DEL " + texTo + " ES ERRONEA." );
					}
				}
			} else {
				resul = true;
			}
		} 
	// validacion de la letra final del NIF y del NIE, segun el caso.
		if ( tipoDoc == "NIF" || ( tipoDoc == "NIE" && resul == true ) ) {
			resul = false;
			var letra;
			var nif = elCIF;
			var letra1 = nif.substr(0, 1);
			if (!/^[0123456789]/.test(letra1) && tipoDoc == "NIF") { // para NIF, el primer digito debe ser un numero
				if (Txterr != "N") {
					if (msg == 99) {
						resul = "- el primer d\355gito del nif del " + texTo + " no puede ser una letra.\n";
					} else {
						alert("EL PRIMER DIGITO DEL NIF DEL " + texTo + " NO PUEDE SER UNA LETRA");
					}
				}
			} else {
				if ( tipoDoc == "NIE" ){
					var nif = nif.substr(1,(nif.length));
				}
				var letra2 = nif.substr((nif.length - 1), 1)
				if (!/^[0123456789]/.test(letra2)) { 
					var nif2 = nif.substr(0, (nif.length - 1));
				} else {
					var nif2 = nif;
				}
				if (nif2 !='') {
					letra = (nif2 %= 23) + 1;
					if (letra == 1) {letra='T'};
					if (letra == 2) {letra='R'};
					if (letra == 3) {letra='W'};
					if (letra == 4) {letra='A'};
					if (letra == 5) {letra='G'};
					if (letra == 6) {letra='M'};
					if (letra == 7) {letra='Y'};
					if (letra == 8) {letra='F'};
					if (letra == 9) {letra='P'};
					if (letra == 10) {letra='D'};
					if (letra == 11) {letra='X'};
					if (letra == 12) {letra='B'};
					if (letra == 13) {letra='N'};
					if (letra == 14) {letra='J'};
					if (letra == 15) {letra='Z'};
					if (letra == 16) {letra='S'};
					if (letra == 17) {letra='Q'};
					if (letra == 18) {letra='V'};
					if (letra == 19) {letra='H'};
					if (letra == 20) {letra='L'};
					if (letra == 21) {letra='C'};
					if (letra == 22) {letra='K'};
					if (letra == 23) {letra='E'};
					
					if ( letra != letra2 ) {
						if ( tipoDoc == "NIE" ) {
							if (Txterr != "N") {
								if (msg == 99) {
									resul = "- el nie del " + texTo + " es err\363neo.\n";
								} else {
									alert ( "EL NIE DEL " + texTo + " ES ERRONEO." );
								}
							}
						} else {
							if (Txterr != "N") {
								if (msg == 99) {
									resul = "- el nif del " + texTo + " es err\363neo.\n";
								} else {
									alert ( "EL NIF DEL " + texTo + " ES ERRONEO." );
								}
							}
						}
					} else {
						resul = true;
					}
				}
			} //end if nif no esta vacio
		}
	}
	return resul;
}

// funciones para rellenar a ceros por la izquierda el nif o el nie
function rellena_nif(Tipo, Nif, desDe, oTro, Texto, msg){

	if (desDe == 2) {
		retorno = valida_fecha(document.form_alta.f_nac_d.value, document.form_alta.f_nac_m.value, 
							   document.form_alta.f_nac_a.value, "DE NACIMIENTO");
		if (retorno == false) {
			return false;
		}
	}
	respu = false;
	respu = CompruebaNIF(Nif.value, Tipo.value, desDe, oTro, Texto, msg);
	var nif = Nif.value;

	if (respu == true) {
	
		if ((nif != '') && ((Tipo.value == "NIF") || 
			(Tipo.value == "NIE" && nif.substring(0, 1) == "X"))) {
	
			var letra1 = '';
	
			if (Tipo.value == "NIE") {
				var letra1 = nif.substring(0, 1);
				var nif = nif.substring(1,(nif.length));
			}
	
			var letra2 = nif.substr((nif.length - 1), 1);
			var nif2 = nif.substr(0, (nif.length - 1));
	
			if (Tipo.value == "NIF") {
				var y = 8;
			} else {
				var y = 7;
			}
	
			var aux = '';
	
			for (var i=0; i < (y - nif2.length); i++) {
				var ch = 0;
				aux += ch;
			}
	
			nif2 = aux + nif2;
	
			Nif.value = letra1 + nif2 + letra2;
		}
		return respu;
	} else {
		if (oTro != 0) {	// si es obligatorio
			return respu;
		} else {			// si no es obligatorio
			if (nif != '') {
				return false;
			} else {
				return true;
			}
		}
	}
}  

//valida que la fecha de nacimiento sea correcta
//se le pasan el dia, mes y a–o de la fecha a validar, y un texto adicional para la alerta. Este puede ir en blanco.
function valida_fecha(Dia, Mes, Ano, teXto, msg) {
//alert(Dia+'/'+Mes+'/'+Ano+'/'+teXto+'/'+msg);
//alert('holo');
	//calculo la fecha de hoy 
	hoy=new Date() 
	//guardo en variables las fechas de hoy
	var ano_hoy = hoy.getFullYear();
	var ano = parseFloat(Ano); 
	var mes = parseFloat(Mes); 
	var dia = parseFloat(Dia); 
	var Error = 0;
	var resuc = true;
	
	if (isNaN(ano) || ano > ano_hoy) {
		Error = 1;
	}
	if (isNaN(mes) || mes > 12 || mes < 1) {
		Error = 1;
	}
	if (isNaN(dia) || dia > 31 || dia < 1) {
		Error = 1;
	}

	// validamos que la fecha sea correcta
    if((ano < 1900) || (ano > ano_hoy) || (mes < 1) || (mes > 12) || (dia < 1) || (dia > 31)) {
		Error = 1;
    } else {
		if((ano%4 != 0) && (mes == 2) && (dia > 28)) {
			Error = 1;
		} else {
			if ((((mes == 4) || (mes == 6) || (mes == 9) || (mes==11)) && (dia>30)) || ((mes==2) && (dia>29))) {
				Error = 1;
			}
		}
	}
	
	if (Error != 0) {
		if (msg == 99) {
			resuc = "- la fecha " + teXto + " no es correcta";
		} else {
			alert ("LA FECHA " + teXto + " NO ES CORRECTA");
			resuc = false;
		}
	}

	return resuc; 

}

//calcular los a–os entre dos fechas
function calcular_annos(Desde) { 

	var Dia = document.form_alta.f_nac_d.value;
	var Mes = document.form_alta.f_nac_m.value;
	var Ano = document.form_alta.f_nac_a.value;
	if (Desde == 1) {
		//calculo la fecha de hoy 
		hoy=new Date() 
		//guardo en variables las fechas de hoy
		var ano_hoy = hoy.getFullYear();
		var mes_hoy = hoy.getMonth() + 1; //+ 1 porque los meses empiezan en 0
		var dia_hoy = hoy.getUTCDate();
	} else if (Desde == 2) {
		var ano_hoy = document.form_alta.f_carnet_a_a.value;
		var mes_hoy = document.form_alta.f_carnet_a_m.value;
		var dia_hoy = document.form_alta.f_carnet_a_d.value;
		var ano_hoy = parseFloat(ano_hoy); 
		var mes_hoy = parseFloat(mes_hoy); 
		var dia_hoy = parseFloat(dia_hoy); 
	} else if (Desde == 3) {
		var ano_hoy = document.form_alta.f_carnet_b_a.value;
		var mes_hoy = document.form_alta.f_carnet_b_m.value;
		var dia_hoy = document.form_alta.f_carnet_b_d.value;
		var ano_hoy = parseFloat(ano_hoy); 
		var mes_hoy = parseFloat(mes_hoy); 
		var dia_hoy = parseFloat(dia_hoy); 
	}
	
	var resuc = false;
	var ano = parseFloat(Ano); 
	var mes = parseFloat(Mes); 
	var dia = parseFloat(Dia); 

	//resto los a–os de las dos fechas 
//	alert (Desde + "//" + ano_hoy + "//"+ ano);
	Difer=ano_hoy - ano - 1; //-1 porque no se si ha cumplido a–os ya este a–o 

	//si resto los meses y me da menor que 0 entonces no ha cumplido a–os. Si da mayor si ha cumplido 
	if (mes_hoy - mes < 0) {//+ 1 porque los meses empiezan en 0 
		Difer = Difer;
	} else if (mes_hoy - mes > 0) {
		Difer = Difer + 1;
	} else {
		//entonces es que eran iguales. miro los dias 
		//si resto los dias y me da menor que 0 entonces no ha cumplido a–os. Si da mayor o igual si ha cumplido 
		if (dia_hoy - dia >= 0) {
			Difer = Difer + 1;
		}
	}

	return Difer;
}  

// Funcion que comprueba que el numero de cuenta es correcto. En caso de ser erroneo, indica cual es el correcto.
// se le pasan el codigo de banco, oficina, dc a validar y el numero de cuenta.
function calculaDC(Entidad, Agencia, Ncuenta, Dc, msg) {

	var dc = 0;
			
	for (cont2=0; cont2 < 2 ;cont2++) {
		var aux = "";
		if (cont2 == 1)
			dc = dc*10;
		if (cont2 == 0) {
			for (var i=0; i < Entidad.length; i++) {
				var ch = Entidad.substring (i, i+1);
				aux += ch;
			}
			for (var i=0; i < Agencia.length; i++) {
				var ch = Agencia.substring (i, i+1);
				aux += ch;
			}
		} else {
			for (var i=0; i < Ncuenta.length; i++) {
				var ch = Ncuenta.substring (i, i+1);
				aux += ch;
			}
		}
		var cont3 = 0;
		var suma = 0;
		for (var cont1 = aux.length-1; cont1 >= 0; cont1--) {
			dig_buf = aux.substring (cont1, cont1+1);
			digito = parseFloat (dig_buf);
			if (cont3 == 0)
				suma = suma + (digito*6);
			else if (cont3 == 1)
				suma = suma + (digito*3);
			else if (cont3 == 2)
				suma = suma + (digito*7);
			else if (cont3 == 3)
				suma = suma + (digito*9);
			else if (cont3 == 4)
				suma = suma + (digito*10);
			else if (cont3 == 5)
				suma = suma + (digito*5);
			else if (cont3 == 6)
				suma = suma + (digito*8);
			else if (cont3 == 7)
				suma = suma + (digito*4);
			else if (cont3 == 8)
				suma = suma + (digito*2);
			else if (cont3 == 9)
				suma = suma + (digito*1);
				cont3++;
		}
		suma = suma % 11;
		digito = 11 - suma;
		if (digito == 10)
			dc++;
		else if (digito == 11)
			;
		else
			dc+= digito;
	}
	if (dc < 10)
		dc = "0" + dc;
		
	if (Dc != dc){
		if (msg == 99) {
			resuc = "- el DC de la cuenta bancaria no es correcto.\n";
		} else {
			alert ("HAY UN ERROR EN EL 'DC' DE LA CUENTA BANCARIA.\n\nCOMPRUEBA QUE LOS DATOS SON CORRECTOS.");
			resuc = false;
		}
	} else {
		resuc = true;
	}
	return resuc;
			
}//end function calculaDC

// abre la ventana para seleccionar un modelo
function Open() {
	var Marca = document.form_alta.marca.value;
	var Patron_modelo = document.form_alta.patron_modelo.value;
	var Producto = document.form_alta.producto.value;
	var LLamar = 'include/serv_NPVERNSVC_2.inc.php?marca=' + Marca + '&patron_modelo=' + Patron_modelo + '&producto=' + Producto;
	var sValue = window.showModalDialog(LLamar,'SelectValueWindow');
	var tabla = new Array();
	tabla = sValue.split(","); 
	document.form_alta.tab_vehiculo.value = sValue;
	document.form_alta.cod_vehiculo.value = tabla[0];
	document.form_alta.modelo.value = tabla[1];
	document.form_alta.version.value = tabla[2];
	document.form_alta.plazas.value = tabla[3];
	document.form_alta.potencia.value = tabla[4];
	document.form_alta.cc.value = tabla[5];
	document.form_alta.clase_moto.value = tabla[6];
	if (tabla[1] == tabla[2]) {
		document.form_alta.modelo_sel.value = tabla[1];
	} else {
		document.form_alta.modelo_sel.value = tabla[1] + " " + tabla[2];
	}
	document.form_alta.matricula.focus();
}

// Funcion que busca el banco
function buscarbanco() {

	var encontrado=false;
	for(var i=0;i < document.form_alta.banco.length;i++){
		valorCod = document.form_alta.entidad.value;
		codigo = valorCod.substring(0,4);
		if(codigo == document.form_alta.banco[i].value){
			document.form_alta.banco[i].selected=true;
			encontrado=true;
		}//end if codigo
	}//end bucle for
	if(! encontrado) {
		document.form_alta.banco[document.form_alta.banco.length-1].selected=true; document.form_alta.banco.value = '0000';
	}
}//end funcion buscarbanco  

// Funcion que carga el codigo del banco en la variable de la entidad
function cargaCodigo() {

	 valorCod = document.form_alta.banco.options[document.form_alta.banco.selectedIndex].value;

	 codigo = valorCod.substring(0,4);
	 document.form_alta.entidad.value=codigo;
	 document.form_alta.oficina.value="";
	 document.form_alta.entidad.focus();
}

// Funcion que busca la provincia
function BuscaProv(codigo, literal, msg) {

	while (codigo.value.length < 5) {
		codigo.value = "0" + codigo.value;
	}
	
	var coDigo = codigo.value.substr(0,2);

	switch (coDigo) {
		case "01":
			literal.value = "ALAVA";
			break;
		case "02":
			literal.value = "ALBACETE";
			break;
		case "03":
			literal.value = "ALICANTE";
			break;
		case "04":
			literal.value = "ALMERIA";
			break;
		case "05":
			literal.value = "AVILA";
			break;
		case "06":
			literal.value = "BADAJOZ";
			break;
		case "07":
			literal.value = "ILLES BALEARS";
			break;
		case "08":
			literal.value = "BARCELONA";
			break;
		case "09":
			literal.value = "BURGOS";
			break;
		case "10":
			literal.value = "CACERES";
			break;
		case "11":
			literal.value = "CADIZ";
			break;
		case "12":
			literal.value = "CASTELLON DE LA PLANA";
			break;
		case "13":
			literal.value = "CIUDAD REAL";
			break;
		case "14":
			literal.value = "CORDOBA";
			break;
		case "15":
			literal.value = "A CORU\321A";
			break;
		case "16":
			literal.value = "CUENCA";
			break;
		case "17":
			literal.value = "GIRONA";
			break;
		case "18":
			literal.value = "GRANADA";
			break;
		case "19":
			literal.value = "GUADALAJARA";
			break;
		case "20":
			literal.value = "GUIPUZCOA";
			break;
		case "21":
			literal.value = "HUELVA";
			break;
		case "22":
			literal.value = "HUESCA";
			break;
		case "23":
			literal.value = "JAEN";
			break;
		case "24":
			literal.value = "LEON";
			break;
		case "25":
			literal.value = "LLEIDA";
			break;
		case "26":
			literal.value = "LA RIOJA";
			break;
		case "27":
			literal.value = "LUGO";
			break;
		case "28":
			literal.value = "MADRID";
			break;
		case "29":
			literal.value = "MALAGA";
			break;
		case "30":
			literal.value = "MURCIA";
			break;
		case "31":
			literal.value = "NAVARRA";
			break;
		case "32":
			literal.value = "OURENSE";
			break;
		case "33":
			literal.value = "ASTURIAS";
			break;
		case "34":
			literal.value = "PALENCIA";
			break;
		case "35":
			literal.value = "LAS PALMAS";
			break;
		case "36":
			literal.value = "PONTEVEDRA";
			break;
		case "37":
			literal.value = "SALAMANCA";
			break;
		case "38":
			literal.value = "SANTA CRUZ DE TENERIFE";
			break;
		case "39":
			literal.value = "CANTABRIA";
			break;
		case "40":
			literal.value = "SEGOVIA";
			break;
		case "41":
			literal.value = "SEVILLA";
			break;
		case "42":
			literal.value = "SORIA";
			break;
		case "43":
			literal.value = "TARRAGONA";
			break;
		case "44":
			literal.value = "TERUEL";
			break;
		case "45":
			literal.value = "TOLEDO";
			break;
		case "46":
			literal.value = "VALENCIA";
			break;
		case "47":
			literal.value = "VALLADOLID";
			break;
		case "48":
			literal.value = "VIZCAYA";
			break;
		case "49":
			literal.value = "ZAMORA";
			break;
		case "50":
			literal.value = "ZARAGOZA";
			break;
		case "51":
			literal.value = "CEUTA";
			break;
		case "52":
			literal.value = "MELILLA";
			break;
		default:
			if (msg == 99) {
				literal.value = "";
				resul = "- el c\363digo postal es erroneo.";
			} else {
				literal.value = "";
				resul = "EL CODIGO POSTAL ES ERRONEO.";
				alert (resul);
				resul = false;
			}
			return resul;
			break;
	}
	return true;
}

// validamos los datos del formulario de alta.
function valida_alta() {
//alert('holo');
	var respue = true;
	var posi = 0;
	var errores = '';

	// validaciones de datos del socio
	if (!document.form_alta.nombre.value) {
		errores += '- falta el nombre.\n';
		if (posi == 0) {
			posi = 1;
		}
	}
	if (!document.form_alta.apellidos.value) {
		errores += '- falta el primer apellido.\n';
		if (posi == 0) {
			posi = 2;
		}
	}
	if (!document.form_alta.domicilio.value || !document.form_alta.num_dir.value) {
		errores += "- falta el domicilio y/o n\272.\n";
		if (posi == 0) {
			posi = 3;
		}
	}
	if (!document.form_alta.localidad.value) {
		errores += '- falta la localidad.\n';
		if (posi == 0) {
			posi = 4;
		}
	}
	respue = BuscaProv(document.form_alta.cod_post, document.form_alta.provincia, 99, 1);
	if (respue != true) {
		errores += respue + "\n";
		if (posi == 0) {
			posi = 5;
		}
	}
	if (!document.form_alta.tlf_1.value) {
		errores += '- falta el tel\351fono 1.\n';
		if (posi == 0) {
			posi = 6;
		}
	} else {
		var reg1 = new RegExp ("^[0-9]{9,9}$","g");
		if (!reg1.test(document.form_alta.tlf_1.value)) {
			errores += '- el tel\351fono 1 no tiene un formato v\341lido.\n';
			if (posi == 0) {
				posi = 6;
			}
		}
	}
	if (document.form_alta.tlf_2.value) {
		var reg2 = new RegExp ("^[0-9]{9,9}$","g");
		if (!reg2.test(document.form_alta.tlf_2.value)) {
			errores += '- el tel\351fono 2 no tiene un formato v\341lido.\n';
			if (posi == 0) {
				posi = 7;
			}
		}
	}
	if (document.form_alta.fax.value) {
		var regf = new RegExp ("^[0-9]{9,9}$","g");
		if (!regf.test(document.form_alta.fax.value)) {
			errores += '- el fax no tiene un formato v\341lido.\n';
			if (posi == 0) {
				posi = 8;
			}
		}
	}
	if (!document.form_alta.email.value) {
		errores += '- falta el E-mail.\n';
		if (posi == 0) {
			posi = 9;
		}
	} else {
		var reg = new RegExp ("^[A-Za-z0-9][A-Za-z0-9_\.-]*@([A-Za-z0-9][A-Za-z0-9_-]*\.)+(.[A-Za-z]{2,3})$","g");
		if (!reg.test(document.form_alta.email.value)) {
			errores += '- el E-mail no tiene una sint\341xis v\341lida.\n';
			if (posi == 0) {
				posi = 9;
			}
		} else {
			var i = 0;
			var cuenta = 0;
			for(i=0;i<document.form_alta.email.value.length;i++) {
				if(document.form_alta.email.value.charAt(i)=="@") {
					cuenta ++;
				}
			}
			if (cuenta > 1) {
				errores += '- el E-mail no tiene una sintaxis v\341lida.\n';
				if (posi == 0) {
					posi = 9;
				}
			}
		}
	}

	if (document.form_alta.domic_corresp.value || document.form_alta.num_corresp.value || document.form_alta.piso_corresp.value || 
		document.form_alta.localidad_corresp.value || document.form_alta.cod_post_corresp.value) {
		if (!document.form_alta.domic_corresp.value || !document.form_alta.num_corresp.value) {
			errores += "- falta el domicilio y/o n\272 de correspondencia.\n";
			if (posi == 0) {
				posi = 18;
			}
		}
		if (!document.form_alta.localidad_corresp.value) {
			errores += '- falta la localidad de correspondencia.\n';
			if (posi == 0) {
				posi = 19;
			}
		}
		respue = BuscaProv(document.form_alta.cod_post_corresp, document.form_alta.provincia_corresp, 99, 1);
		if (respue != true) {
			errores += respue + "\n";
			if (posi == 0) {
				posi = 20;
			}
		}
	}

	respue = valida_fecha(document.form_alta.f_nac_d.value, document.form_alta.f_nac_m.value, document.form_alta.f_nac_a.value, 
							"de nacimiento", 99);
	if (respue != true) {
		errores += respue + "\n";	
		if (posi == 0) {
			posi = 10;
		}
	} else {
		respue = calcular_annos(1);
		if (respue < 16) {
			errores += "- el socio titular no puede ser menor de 16 a\361os.\n";
			if (posi == 0) {
				posi = 10;
			}
		}
		if (respue > 15 && respue < 18) {
			errores += "- para socio titular con 16 o 17 a\361os es necesaria la autorizacion paterna por escrito.\n";
			if (posi == 0) {
				posi = 10;
			}
		}
	}
	if (document.form_alta.f_carnet_a_d.value == 0 && document.form_alta.f_carnet_a_m.value == 0 && 
		document.form_alta.f_carnet_a_a.value == 0 && document.form_alta.f_carnet_b_d.value == 0 && 
		document.form_alta.f_carnet_b_m.value == 0 && document.form_alta.f_carnet_b_a.value == 0) {
		errores += "- falta la fecha del carn\351 A o B.\n";
		if (posi == 0) {
			posi = 11;
		}
	} else { 
		if (document.form_alta.f_carnet_a_d.value != 0 || document.form_alta.f_carnet_a_m.value != 0 || 
			document.form_alta.f_carnet_a_a.value != 0) {
			respue = valida_fecha(document.form_alta.f_carnet_a_d.value, document.form_alta.f_carnet_a_m.value, document.form_alta.f_carnet_a_a.value, 
									"de carn\351 A", 99);
			if (respue != true) {
				errores += respue + "\n";
				if (posi == 0) {
					posi = 11;
				}
			} else {
				respue = calcular_annos(2);
				if (respue < 16) {
					errores += "- la diferencia entre fecha nacimiento y fecha de carn\351 A no puede ser inferior a 16 a\361os.\n";
					if (posi == 0) {
						posi = 11;
					}
				}
			}
		}
		if (document.form_alta.f_carnet_b_d.value != 0 || document.form_alta.f_carnet_b_m.value != 0 || 
			document.form_alta.f_carnet_b_a.value != 0) {
			respue = valida_fecha(document.form_alta.f_carnet_b_d.value, document.form_alta.f_carnet_b_m.value, document.form_alta.f_carnet_b_a.value, 
									"de carn\351 B", 99);
			if (respue != true) {
				errores += respue + "\n";
				if (posi == 0) {
					posi = 12;
				} else {
					respue = calcular_annos(3);
					if (respue < 18) {
						errores += "- la diferencia entre fecha nacimiento y fecha de carn\351 B no puede ser inferior a 18 a\361os.\n";
						if (posi == 0) {
							posi = 12;
						}
					}
				}
			}
		}	
	}
	respue = calculaDC(document.form_alta.entidad.value, document.form_alta.oficina.value,
					   document.form_alta.cuenta.value, document.form_alta.dc.value, 99);
	if (respue != true) {
		errores += respue;
		if (posi == 0) {
			posi = 13;
		}
	}
	if (document.form_alta.arag.value != "10040103" || document.form_alta.marca.value != "") {
		if (document.form_alta.marca.value == "") {
			errores += "- falta la marca de la moto.\n";
			if (posi == 0) {
				posi = 14;
			}
		}
		if (document.form_alta.patron_modelo.value == "") {
			errores += "- falta el modelo de la moto.\n";
			if (posi == 0) {
				posi = 15;
			}
		}
		if (document.form_alta.matricula.value == "" && document.form_alta.bastidor.value == "") {
			errores += "- falta la matr\355cula o el bastidor de la moto.\n";
			if (posi == 0) {
				posi = 16;
			}
		}
		if (document.form_alta.matricula.value != "") {
			Matricula = document.form_alta.matricula.value;
			if (Matricula.substring(0, 3) == "BTR" || Matricula.substring(0, 3) == "btr") {
				var hayerror = 0;
				if (Matricula.length < 9) {
					hayerror = 1;
				} else {
					for (var i=3; i < Matricula.length ; i++) {
						Matr2 = Matricula.substring(i, i+1);
						if (!/^[0123456789]/.test(Matr2)) {
							hayerror = 1;
						}
					}
				}
				if (hayerror == 1) {
					errores += "- la matr\355cula no es correcta.\n";
					if (posi == 0) {
						posi = 16;
					}
				}
			} else {
				for (var i=0; i < Matricula.length ; i++) {
					Matr2 = Matricula.substring(i, i+1);
					if (Matr2 == " ") {
						hayerror = 1;
					}
				}
				if (hayerror == 1) {
					errores += "- la matr\355cula no puede tener espacios.\n";
					if (posi == 0) {
						posi = 16;
					}
				}
			}
		}
// 		if (document.form_alta.f_fab_d.value != 0 || document.form_alta.f_fab_m.value != 0 || 
// 			document.form_alta.f_fab_a.value != 0) {
			respue = valida_fecha(document.form_alta.f_fab_d.value, document.form_alta.f_fab_m.value, document.form_alta.f_fab_a.value, 
									"de 1\252 matriculaci\363n de la moto", 99);
			if (respue != true) {
				errores += respue + "\n";
				if (posi == 0) {
					posi = 17;
				}
			}
// 		}	
	}

	if (errores) {
		switch (posi) {
			case 1:
				document.form_alta.nombre.focus();
				break;
			case 2:
				document.form_alta.apellidos.focus();
				break;
			case 3:
				document.form_alta.domicilio.focus();
				break;
			case 4:
				document.form_alta.localidad.focus();
				break;
			case 5:
				document.form_alta.cod_post.focus();
				break;
			case 6:
				document.form_alta.tlf_1.focus();
				break;
			case 7:
				document.form_alta.tlf_2.focus();
				break;
			case 8:
				document.form_alta.fax.focus();
				break;
			case 9:
				document.form_alta.email.focus();
				break;
			case 18:
				document.form_alta.domic_corresp.focus();
				break;
			case 19:
				document.form_alta.localidad_corresp.focus();
				break;
			case 20:
				document.form_alta.cod_post_corresp.focus();
				break;
			case 10:
				document.form_alta.f_nac_d.focus();
				break;
			case 11:
				document.form_alta.f_carnet_a_d.focus();
				break;
			case 12:
				document.form_alta.f_carnet_b_d.focus();
				break;
			case 13:
				document.form_alta.entidad.focus();
				break;
			case 14:
				document.form_alta.marca.focus();
				break;
			case 15:
				document.form_alta.patron_modelo.focus();
				break;
			case 16:
				document.form_alta.matricula.focus();
				break;
			case 17:
				document.form_alta.f_fab_d.focus();
				break;
		}
		errores = "HAY LOS SIGUIENTES ERRORES:\n" + errores + "\nCorr\355gelos para poder continuar.";
		alert(errores);
		return false;
	}
		
	return true;
}


// validamos los datos del formulario de registro_web.

function valida_registro_web() {
	var respue = true;
	var posi = 0;
	var errores = '';

	// validaciones de datos del socio
	if (!document.form_alta.nombre.value) {
		errores += '- falta el nombre.\n';
		if (posi == 0) {
			posi = 1;
		}
	}
	if (!document.form_alta.apellidos.value) {
		errores += '- falta el primer apellido.\n';
		if (posi == 0) {
			posi = 2;
		}
	}

	respue = rellena_nif(document.form_alta.tipo_doc, document.form_alta.nif, 1, 1, 'registro', 99);
	if (respue != true) {
		errores += respue;	
		if (posi == 0) {
			posi = 10;
		}
	}
		
	respue = valida_fecha(document.form_alta.dianac.value, document.form_alta.mesnac.value, document.form_alta.anonac.value, 
								"de nacimiento", 99);
	if (respue != true) {
		errores += respue + "\n";	
		if (posi == 0) {
			posi = 10;
		}
	}
	
	if (!document.form_alta.email.value) {
		errores += '- falta el E-mail.\n';
		if (posi == 0) {
			posi = 9;
		}
	} else {
		var reg = new RegExp ("^[A-Za-z0-9][A-Za-z0-9_\.-]*@([A-Za-z0-9][A-Za-z0-9_-]*\.)+(.[A-Za-z]{2,3})$","g");
		if (!reg.test(document.form_alta.email.value)) {
			errores += '- el E-mail no tiene una sint\341xis v\341lida.\n';
			if (posi == 0) {
				posi = 9;
			}
		} else {
			var i = 0;
			var cuenta = 0;
			for(i=0;i<document.form_alta.email.value.length;i++) {
				if(document.form_alta.email.value.charAt(i)=="@") {
					cuenta ++;
				}
			}
			if (cuenta > 1) {
				errores += '- el E-mail no tiene una sintaxis v\341lida.\n';
				if (posi == 0) {
					posi = 9;
				}
			}
		}
	}
	if (!document.form_alta.tlf.value) {
		errores += '- falta el tel\351fono.\n';
		if (posi == 0) {
			posi = 6;
		}
	} else {
		var reg1 = new RegExp ("^[0-9]{9,9}$","g");
		if (!reg1.test(document.form_alta.tlf.value)) {
			errores += '- el tel\351fono no tiene un formato v\341lido.\n';
			if (posi == 0) {
				posi = 6;
			}
		}
	}
	
	if (errores) {
		switch (posi) {
			case 1:
				document.form_alta.nombre.focus();
				break;
			case 2:
				document.form_alta.apellidos.focus();
				break;
			case 3:
				document.form_alta.nif.focus();
				break;
			case 4:
				document.form_alta.dianac.focus();
				break;
			case 5:
				document.form_alta.mesnac.focus();
				break;
			case 6:
				document.form_alta.anonac.focus();
				break;
			case 7:
				document.form_alta.email.focus();
				break;
			case 8:
				document.form_alta.tlf.focus();
				break;
			
		}
		errores = "HAY LOS SIGUIENTES ERRORES:\n" + errores + "\nCorr\355gelos para poder continuar.";
		alert(errores);
		return false;
	}
		
	return true;
}


	function check() {
		with (document.formu) {
			var errores = '';
			
			if (!email.value) {
				errores += 'Introduzca su direcci\363n de E-Mail.\n';
			} else {
				var reg = new RegExp ("^[A-Za-z0-9][A-Za-z0-9_\.-]*@([A-Za-z0-9][A-Za-z0-9_-]*\.)+(.[A-Za-z]{2,3})$","g");
				if (!reg.test(email.value)) {
					errores += 'El E-mail no tiene una sintaxis v\341lida.\n';
				} else {
					var i = 0;
					var cuenta = 0;
					for(i=0;i<email.value.length;i++) {
						if(email.value.charAt(i)=="@") {
							cuenta ++;
						}
					}
					if (cuenta > 1) {
						errores += 'El E-mail no tiene una sintaxis v\341lida.\n';
					}
				}
			}
		
		
		}
		
		if (errores) {
			alert(errores);
			return false;
		}
			
		return true;
	}
