//-------------------------------------------- function calculoLetraFinal(dni){ var letra=''; if (dni > 0 && dni < 99999999) { //si valor valido... var resto = dni % 23 //obtencion del resto de la division por 23 switch(resto) { //en funcion del resto, asigna letra case 0: letra="T"; break; case 1: letra="R"; break; case 2: letra="W"; break; case 3: letra="A"; break; case 4: letra="G"; break; case 5: letra="M"; break; case 6: letra="Y"; break; case 7: letra="F"; break; case 8: letra="P"; break; case 9: letra="D"; break; case 10: letra="X"; break; case 11: letra="B"; break; case 12: letra="N"; break; case 13: letra="J"; break; case 14: letra="Z"; break; case 15: letra="S"; break; case 16: letra="Q"; break; case 17: letra="V"; break; case 18: letra="H"; break; case 19: letra="L"; break; case 20: letra="C"; break; case 21: letra="K"; break; case 22: letra="E"; break; case 23: letra="U"; break; } } return letra; } function ValidarCTA(tmpCTA, tipoCTA) { var response = true; if (tmpCTA!='' && tipoCTA!='') { response = false; var tipo = tipoCTA.toUpperCase(); // pasar a mayúsculas switch(tipo) { // CTA Española case 'NACIONAL': { //if( !isNaN(tmpCTA) && tmpCTA.length==20) //{ if (comprobarCuentaBancaria(tmpCTA)) response=true; //} break; } default: { response=true; break; } } } return response; } function comprobarCuentaBancaria(tmpCTA) { var banco = tmpCTA.substring(0,4); var sucursal = tmpCTA.substring(4,8); var dc = tmpCTA.substring(8,10); var cuenta = tmpCTA.substring(10,20); if (banco.length != 4 || sucursal.length != 4 || dc.length != 2 || cuenta.length != 10){ alert("Por favor, introduzca correctamente los datos de su cuenta; no están completos"); } else{ if (!numerico(banco) || !numerico(sucursal) || !numerico(dc) || !numerico(cuenta)){ alert("Por favor, introduzca correctamente los datos de su cuenta; no son numéricos"); }else{ if (!(obtenerDigito("00" + banco + sucursal) == parseInt(dc.charAt(0))) || !(obtenerDigito(cuenta) == parseInt(dc.charAt(1)))){ alert("Número de cuenta erróneo"); }else { return true; } } } return false; } function obtenerDigito(valor){ valores = new Array(1, 2, 4, 8, 5, 10, 9, 7, 3, 6); control = 0; for (i=0; i<=9; i++) control += parseInt(valor.charAt(i)) * valores[i]; control = 11 - (control % 11); if (control == 11) control = 0; else if (control == 10) control = 1; return control; } function numerico(valor){ cad = valor.toString(); for (var i=0; i"9") return false; } return true; } //----------------------------------------- function ValidarDNI(tmpDni, tipodni) { var response = false; var dni = tmpDni.toUpperCase(); // pasar a mayúsculas switch(tipodni) { // NIF Español case 'NIF': { if (/^[A-Za-z0-9]{9}$/.test(dni)){ var numero = dni.substr(0,8); var dc = dni.substr(8,1); if(calculoLetraFinal(numero)==dc) response = true; } break; } // NIE Español case 'NIE': { if (/^[A-Za-z0-9]{9}$/.test(dni)){ var numero = dni.substr(1,7); var dc = dni.substr(8,1); if(calculoLetraFinal(numero)==dc) response = true; } break; } // CIF case 'CIF': { if (/^[A-Za-z0-9]{9}$/.test(dni) && /^[ABCDEFGHKLMNPQS]/.test(dni) ) // Son 9 dígitos y el primer digito es una letra { var v1 = new Array(0,2,4,6,8,1,3,5,7,9); var temp = 0; var temp1; for( i = 2; i <= 6; i += 2 ) { temp = temp + v1[ parseInt(dni.substr(i-1,1)) ]; temp = temp + parseInt(dni.substr(i,1)); }; temp = temp + v1[ parseInt(dni.substr(7,1)) ]; temp = (10 - ( temp % 10)); if( temp == 10 && ( dni.substr(8,1)=='J' || dni.substr(8,1)=='0') ) response=true; else if ( dni.substr(8,1)==temp ) response=true; } break; } default: { response=true; break; } } return response; } //----------------------------------------- function documentoIdentidad_validarDNI(idCampoDocumento,idCampoTipoDocumento){ var response = true; campoDocumento = document.getElementById(idCampoDocumento); campoTipoDocumento = document.getElementById(idCampoTipoDocumento); if( campoDocumento.value!='' && campoTipoDocumento.value!='' ) { if(!ValidarDNI(campoDocumento.value,campoTipoDocumento.value)) { response = false; alert('El DNI introducido no es válido'); } } return response; }