function esDigito(sChr){
var sCod = sChr.charCodeAt(0);
return ((sCod > 47) && (sCod < 58));
}
function valSep(oTxt){
var bOk = false;
bOk = bOk || ((oTxt.value.charAt(2) == "-") && (oTxt.value.charAt(5) == "-"));
bOk = bOk || ((oTxt.value.charAt(2) == "/") && (oTxt.value.charAt(5) == "/"));
bOk = bOk || ((oTxt.value.charAt(2) == " ") && (oTxt.value.charAt(5) == " "));



return bOk;
}
function finMes(oTxt){
var nMes = parseInt(oTxt.value.substr(3, 2), 10);
var nRes = 0;
switch (nMes){
case 1: nRes = 31; break;
case 2: nRes = 29; break;
case 3: nRes = 31; break;
case 4: nRes = 30; break;
case 5: nRes = 31; break;
case 6: nRes = 30; break;
case 7: nRes = 31; break;
case 8: nRes = 31; break;
case 9: nRes = 30; break;
case 10: nRes = 31; break;
case 11: nRes = 30; break;
case 12: nRes = 31; break;
}
return nRes;
}
function valDia(oTxt){
var bOk = false;
var nDia = parseInt(oTxt.value.substr(0, 2), 10);
bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt)));
return bOk;
}
function valMes(oTxt){
var bOk = false;
var nMes = parseInt(oTxt.value.substr(3, 2), 10);
bOk = bOk || ((nMes >= 1) && (nMes <= 12));
return bOk;
}
function valAno(oTxt){
var bOk = true;
var nAno = oTxt.value.substr(6);
bOk = bOk && ((nAno.length == 2) || (nAno.length == 4));
if (bOk){
for (var i = 0; i < nAno.length; i++){
bOk = bOk && esDigito(nAno.charAt(i));
}
}
return bOk;
}
function valFecha(oTxt){
var bOk = true;
if (oTxt.value != "")
{
		bOk = bOk && (valAno(oTxt));
		bOk = bOk && (valMes(oTxt));
		bOk = bOk && (valDia(oTxt));
		bOk = bOk && (valSep(oTxt));
		if (!bOk)
		{
		alert("Fecha errónea");
		//oTxt.value = "";
		//oTxt.focus();
		}
		else
		{
		var fecha=oTxt.value
		var dia=oTxt.value.substr(0, 2)
		var mes=oTxt.value.substr(3, 2)
		var ano=oTxt.value.substr(6)
		fecha=ano+mes+dia
		//fecha=dia+mes+ano
		DesdeInvertido="<%=DesdeInvertido%>"
		HastaInvertido="<%=HastaInvertido%>"
		DesdePreparado="<%=DesdePreparado%>"
		HastaPreparado="<%=HastaPreparado%>"

		if (fecha < DesdeInvertido || fecha > HastaInvertido)
			{
			alert('La fecha debe estar comprendida entre ' + DesdePreparado + ' y ' + HastaPreparado)
			bOk=false
			}
		
		}
		
}
return  bOk;
}
function registro(){ 								
	var _huboerror = false;
	
	document.frmreg.Mail.value=BlancosRedundantes(document.frmreg.Mail.value);
	if(!emailCheck(document.frmreg.Mail.value, 'E-Mail')){	
		document.frmreg.Mail.focus();
		document.frmreg.Mail.select();
		return;
	}

	document.frmreg.Password.value=BlancosRedundantes(document.frmreg.Password.value)
	if(document.frmreg.Password.value.length<5){	
		alert('<%Response.Write("La contraseña es obligatoria y debe tener al menos 5 caracteres")%>.');
		document.frmreg.Password.value = "";
		document.frmreg.Password2.value = "";
		document.frmreg.Password.focus();
		return;
	}

	document.frmreg.Password2.value=BlancosRedundantes(document.frmreg.Password2.value);
	if(document.frmreg.Password.value!=document.frmreg.Password2.value){
		if (document.frmreg.Password2.value.length<1){
			alert('<%Response.Write("Por favor, repite tu contraseña en la casilla correspondiente")%>.'); 
			document.frmreg.Password2.focus();
			return;
		}else{
			alert('<%Response.Write("Las contraseñas no coinciden. Por favor, asegúrate de introducir la misma en ambos campos")%>.'); 
			document.frmreg.Password.value="";
			document.frmreg.Password2.value="";
			document.frmreg.Password.focus();
			return;
		}
	}

	document.frmreg.Nombre.value=BlancosRedundantes(document.frmreg.Nombre.value);
	if(document.frmreg.Nombre.value.length < 2){
		alert('<%Response.Write("Por favor, introduce tu Nombre en la casilla correspondiente")%>.');
		document.frmreg.Nombre.focus();
		document.frmreg.Nombre.select();
		return;
	}

	document.frmreg.Apellidos.value=BlancosRedundantes(document.frmreg.Apellidos.value);
	if(document.frmreg.Apellidos.value.length < 2){
		alert('<%Response.Write("Por favor, introduce tus apellidos en la casilla correspondiente")%>.');				  
		document.frmreg.Apellidos.focus();
		document.frmreg.Apellidos.select();
		return;
	}
	
	document.frmreg.NIF.value=BlancosRedundantes(document.frmreg.NIF.value);
	if(!ValidarDNI(document.frmreg.NIF.value)){	
		document.frmreg.NIF.focus();
		document.frmreg.NIF.select();
		return;
	}
	
	
	
	document.frmreg.FechaNac.value=FormatearFecha(BlancosRedundantes(document.frmreg.FechaNac.value));	
	if (String(document.frmreg.FechaNac.value).length == 0){
		alert ('Por favor, introduce una fecha válida en el campo Fecha de nacimiento.')	
		document.frmreg.FechaNac.focus();
		document.frmreg.FechaNac.select();
		return;
	}
	
	if(!valFecha(document.frmreg.FechaNac)){
		document.frmreg.FechaNac.focus();
		document.frmreg.FechaNac.select();
		return;
	}
	
	document.frmreg.IdPais.value=BlancosRedundantes(document.frmreg.IdPais.value);
	if(document.frmreg.IdPais.value.length < 1){	
		alert('<%Response.Write("Por favor, selecciona un país")%>.'); 
		document.frmreg.IdPais.focus();
		//document.frmreg.IdPais.select();
		return;
	}
	
	
	document.frmreg.IdProvincia.value=BlancosRedundantes(document.frmreg.IdProvincia.value);
	if(document.frmreg.IdProvincia.value == 0 && document.frmreg.IdPais.value == 1){
		
		alert('<%Response.Write("Por favor, selecciona una provincia")%>.'); 
		document.frmreg.IdProvincia.focus();
		
		return;
	}
	
	
	
	document.frmreg.Localidad.value=BlancosRedundantes(document.frmreg.Localidad.value);
	if(document.frmreg.Localidad.value.length < 2){
		alert('<%Response.Write("Por favor, escribe el nombre de tu ciudad en la casilla correspondiente")%>.');				  
		document.frmreg.Localidad.focus();
		document.frmreg.Localidad.select();
		return;
	}
	document.frmreg.CPostal.value=BlancosRedundantes(document.frmreg.CPostal.value);
	if(document.frmreg.CPostal.value.length < 5 && document.frmreg.IdPais.value == 1){
		alert('<%Response.Write("Por favor, escribe tu código postal correcto")%>.');
		document.frmreg.CPostal.focus();
		document.frmreg.CPostal.select();
		return;
	}
	
	
		
	document.frmreg.Direccion.value=BlancosRedundantes(document.frmreg.Direccion.value);
	if(document.frmreg.Direccion.value.length < 2){
		alert('<%Response.Write("Por favor, escribe tu dirección")%>.'); 
		document.frmreg.Direccion.focus();
		document.frmreg.Direccion.select();
		return;
	}
	document.frmreg.Telefono.value=BlancosRedundantes(document.frmreg.Telefono.value);
	if(document.frmreg.Telefono.value.length < 2){
		alert('<%Response.Write("Por favor, escribe un Telefono de contacto")%>.'); 
		document.frmreg.Telefono.focus();
		document.frmreg.Telefono.select();
		return;
	}
	document.frmreg.Profesion.value=BlancosRedundantes(document.frmreg.Profesion.value);
	if(document.frmreg.Profesion.value.length < 2){
		alert('<%Response.Write("Por favor, escribe una Profesion ")%>.'); 
		document.frmreg.Profesion.focus();
		document.frmreg.Profesion.select();
		return;
	}
	document.frmreg.CentroTrabajo.value=BlancosRedundantes(document.frmreg.CentroTrabajo.value);
	if(document.frmreg.CentroTrabajo.value.length < 2){
		alert('<%Response.Write("Por favor, escribe tu CentroTrabajo ")%>.'); 
		document.frmreg.CentroTrabajo.focus();
		document.frmreg.CentroTrabajo.select();
		return;
	}
	
	
	
	
	document.frmreg.entidad.value=BlancosRedundantes(document.frmreg.entidad.value);
	document.frmreg.oficina.value=BlancosRedundantes(document.frmreg.oficina.value);
	document.frmreg.dc.value=BlancosRedundantes(document.frmreg.dc.value);
	document.frmreg.numc.value=BlancosRedundantes(document.frmreg.numc.value);
	
	if(document.frmreg.entidad.value!='' ||document.frmreg.oficina.value!='' || document.frmreg.dc.value!='' || document.frmreg.numc.value!='' ){
		if(!ValidarCCC(document.frmreg.entidad.value,document.frmreg.oficina.value,document.frmreg.dc.value,document.frmreg.numc.value)){
		document.frmreg.entidad.focus();
		document.frmreg.entidad.select();
		return;	
		}
	
	}
	
	
	
	if (!_huboerror){
		document.frmreg.action = "registro.asp?ID=<%=Id%>&IDM=<%=IdMenu%>&CLS=S";
		document.frmreg.submit();
		
	}	
}
function cambia_provincia(){
	var IdPais
	IdPais = document.frmreg.IdPais[document.frmreg.IdPais.selectedIndex].value
	if (IdPais != 1) {
			
		document.frmreg.IdProvincia.value = 0
		
		
	}else{
		document.frmreg.IdProvincia.options[0].selected = true
	}
	
}
	
function DigitoControl(cadena){
	var cifras = new Array(1,2,4,8,5,10,9,7,3,6);
    var chequeo = 0;
    for (var i=0; i < cifras.length; i++){
		chequeo += parseInt(cadena.charAt(i)) * cifras[i];
	}
    chequeo = 11 - (chequeo % 11);
	if (chequeo == 11) {chequeo = 0;}
	if (chequeo == 10) {chequeo = 1;}
    return chequeo;
}

// Funcion que comprueba que "valor" es un numero entero
function EsNumeroEntero(valor){
    var cadena = valor.toString();
	var longitud = cadena.length;
	if (longitud == 0){return false;}
	var ascii = null;
    for (var i=0; i<longitud; i++) {
		ascii = cadena.charCodeAt(i);
        if (ascii < 48 || ascii > 57){return false;}
    }
	return true;
}

// Funcion que valida el codigo de cuenta cliente
function ValidarCCC(entidad,oficina,dc,nc) {

	// Comprobamos que solo hemos introducido numeros
	if (!EsNumeroEntero(entidad)){
		alert("Debe introducir el número de entidad bancaria");
		return false;
	}
	if (!EsNumeroEntero(oficina)){
		alert("Debe introducir el número de oficina");
		return false;
	}
	if (!EsNumeroEntero(dc)){
		alert("Debe introducir los dos dígitos de control");
		return false;
	}
	if (!EsNumeroEntero(nc)){
		alert("Debe introducir el número de cuenta");
		return false;
	}
	// Comprobamos el primer digito de control
	var primer_control="00"+entidad+oficina;
	var primer_digito=DigitoControl(primer_control);
	if (primer_digito != dc.charAt(0)){
		alert("El código de cuenta proporcionado no es válido");
		return false;
	}

	// Comprobamos el segundo digito de control
	var segundo_control=nc;
	var segundo_digito=DigitoControl(segundo_control);
	if (segundo_digito != dc.charAt(1)){
		alert("El código de cuenta proporcionado no es válido");
		return false;
	}

	// Si todo es correcto enviamos el formulario
	alert("El código de cuenta bancaria parece correcto. Envío el formulario");
	return true;
}

function ValidarDNI(dni) {
	
	if (dni.substring(0,1)=="X" || dni.substring(0,1)=="T"){
	numero = dni.substr(1,dni.length-2);
	//alert('numero'+numero)
	let = dni.substr(dni.length-1,1);
	//alert('let'+let)
	numero = numero % 23;
	//alert('control'+numero)
	letra='TRWAGMYFPDXBNJZSQVHLCKET';
	letra=letra.substring(numero,numero+1);
	//alert('letra'+letra)
	if (letra!=let){
		alert(letra +'El NIE introducido es erroneo, recuerde introducir letra X ó la letra T al principio y la letra mayuscula correcta al final, sin espacios ni guiones');
		return false;		
	}

	}else{
	numero = dni.substr(0,dni.length-1);
	//alert('numero'+numero)
	let = dni.substr(dni.length-1,1);
	//alert('let'+let)
	numero = numero % 23;
	//alert('control'+numero)
	letra='TRWAGMYFPDXBNJZSQVHLCKET';
	letra=letra.substring(numero,numero+1);
	//alert('letra'+letra)
	if (letra!=let){
		alert('El NIF introducido es erroneo, recuerde introducir la letra mayuscula correcta al final, sin espacios ni guiones');
		return false;		
	}
	}
	return true;
}

