//SGBR Librería de formularios //Colores de resaltado var iColorPartida = "#ffffff"; var iColorError = "#ff0000"; var iColorCorrecto = "#0000ff"; var hiloActivo; //Tiene que ser un select var nombreCampoTipoDocumento; //D.N.I.|Documento de Extranjero|N.I.E.|N.I.F.|C.I.F.|Pasaporte var tiposDocumentos = []; var idDocumento,nombreDocumento; //A partir de aquí no tocar var extensionesPermitidas = ["doc","odm","odt","pdf","odg","jpg","docx","txt","tif","odi","odc","jpeg","png"]; var version = "2.1"; function compruebaCamposAutomaticos(num,campos){ if (num==undefined) num = 0; var z = campos==undefined?document.forms[num].length:campos.length; var nombre; for (var i = 0;i1){ resto = parametro.substring(1,parametro.length); var limites = resto.split("."); if (esNumero(limites[0])) max = parseInt(limites[0]); if (esNumero(limites[1])) min = parseInt(limites[1]); } parametro = parametro.substring(0,1); switch (parametro){ case "E": if (estaVacio(valor)){ alert("El campo resaltado no puede estar vacio"); res = true; break; } case "e": if (!estaVacio(valor) && !esEmail(valor)){ alert("El campo resaltado no contiene una dirección de correo válida.\nPor favor vuelva a introducir una válida."); res = true; } break; case "D": if (estaVacio(valor)){ alert("El campo resaltado no puede estar vacio"); res = true; break; } case "d": var reparado = trataDocumento(valor,num); if (reparado==undefined){ eval ("nombreDocumento = document.forms[0]."+nombreCampoTipoDocumento+"!=undefined?document.forms[0]."+nombreCampoTipoDocumento+".options[document.forms[0]."+nombreCampoTipoDocumento+".selectedIndex].text:nombreDocumento;"); alert("El campo resaltado no contiene un "+nombreDocumento+" válido.\nPor favor vuelva a introducir uno válido."); res = true; }else{ elemento.value = reparado; } break; case "T": if (estaVacio(valor)){ alert("El campo resaltado no puede estar vacio"); res = true; break; } case "t": var nValor = valor.length; if (max!=undefined && min!=undefined && (nValor>max || nValormax){ alert("El campo tiene que tener un número de caracteres menor o igual que "+max); res = true; break; } if (min!=undefined && nValormax || nValormax){ alert("El campo tiene que tener un valor numérico menor o igual que "+max); res = true; break; } if (min!=undefined && nValormax || nValormax){ alert("El campo tiene que tener un valor numérico menor o igual que "+max); res = true; break; } if (min!=undefined && nValor52999 || parseFloat(valor)<1000)){ alert("El campo resaltado no contiene un código postal válido.\nPor favor vuelva a introduccirlo correctamente."); res = true; } break; case "P": if (estaVacio(valor)){ alert("El campo resaltado no puede estar vacio"); res = true; break; } case "p": if (!estaVacio(valor) && !extensionPermitida(valor)){ alert("El campo resaltado no contiene un documento con extensión permitida.\n\nLas extensiones permitidas son:\n"+extensionesPermitidas+"\n\nPor favor, vuelva a introduccir un fichero correcto."); res = true; } break; } } return res; } function realizaAccion(elemento,num){ if (num==undefined) num = 0; var tipo = elemento.type; switch (tipo){ case "file": case "password": case "text": case "textarea": case "select-one": case "select-multiple": resalta(elemento,num); break; case "checkbox": case "radio": var z = document.forms[num].length; for (var i = 0;i1?campos[0]:nombre; } function trataDocumento(texto,num){ texto=texto.replace(/\s/g,"").toUpperCase(); texto=texto.replace(/\./g,""); texto=texto.replace(/-/g,""); eval ("idDocumento = document.forms["+num+"]."+nombreCampoTipoDocumento+"!=undefined?document.forms["+num+"]."+nombreCampoTipoDocumento+".options[document.forms["+num+"]."+nombreCampoTipoDocumento+".selectedIndex].value:idDocumento;"); //D.N.I.|Documento de Extranjero|N.I.E.|N.I.F.|C.I.F.|Pasaporte switch (idDocumento){ case tiposDocumentos[0]: if (esDNI(texto)) return texto; break; case tiposDocumentos[1]: if (esExtranjero(texto)) return texto; break; case tiposDocumentos[2]: if (esNIE(texto)) return texto; break; case tiposDocumentos[3]: if (esNIF(texto)) return texto; break; case tiposDocumentos[4]: if (esCIF(texto)) return texto; break; case tiposDocumentos[5]: if (esPasaporte(texto)) return texto; break; } if (texto==""){ return texto; } return undefined; } function estaVacio(texto){ return texto==undefined || texto==null || texto.length==0; } function esEmail(texto){ var filtro = new RegExp(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/); return !estaVacio(texto) && filtro.test(texto); } function esNIF(texto){ var letras = "TRWAGMYFPDXBNJZSQVHLCKE"; var expNIF = new RegExp("^[0-9]{8}[A-Z]{1}$"); if (!expNIF.test(texto)){ return false; } var n = texto.substring(0,8); var numero = n%23; var l = texto.substring(8,9); var ll = letras.substring(numero, numero+1); if (l != ll) { return false; } return true; } function esNIE(texto){ var letras = "TRWAGMYFPDXBNJZSQVHLCKE"; var expNIF = new RegExp("^[X]{1}[0-9]{7}[A-Z]{1}$"); if (!expNIF.test(texto)){ return false; } var n = texto.substring(1,8); var numero = n%23; var l = texto.substring(8,9); var ll = letras.substring(numero, numero+1); if (l != ll) { return false; } return true; } function esDNI(texto){ return esNumero(texto); } function esPasaporte(texto){ return true; } function esExtranjero(texto){ return true; } function esCIF(texto){ var expCIF = new RegExp(/^[ABCDEFGHKLMNPQSJRUV]\d\d\d\d\d\d\d[0-9,A-J]$/g); if (!expCIF.test(texto)){ return false; } var pares = 0; var impares = 0; var suma; var ultima; var unumero; var uletra = new Array("J", "A", "B", "C", "D", "E", "F", "G", "H", "I"); var xxx; ultima = texto.substr(8,1); for (var cont = 1 ; cont < 7 ; cont ++){ xxx = (2 * parseInt(texto.substr(cont++,1))).toString() + "0"; impares += parseInt(xxx.substr(0,1)) + parseInt(xxx.substr(1,1)); pares += parseInt(texto.substr(cont,1)); } xxx = (2 * parseInt(texto.substr(cont,1))).toString() + "0"; impares += parseInt(xxx.substr(0,1)) + parseInt(xxx.substr(1,1)); suma = (pares + impares).toString(); unumero = parseInt(suma.substr(suma.length - 1, 1)); unumero = (10 - unumero).toString(); if (unumero == 10) unumero = 0; if ((ultima == unumero) || (ultima == uletra[unumero])) return true; else return false; } function esNumero (vVariable){ if (isNaN(parseInt(vVariable))) return (false); return !(isNaN(vVariable)); } function cicloColores(nombreElemento,colorPartida,colorDestino,veces,tiempo,n,fuerzaComienzo,num){ if (num==undefined) num = 0; var nColorPartida,nColorDestino,sFuncion,sColor = "#" n++; if (n!=veces){ for (var f=0;f<3;f++){ nColorPartida = parseInt("0x"+ colorPartida.substr(1+(f*2),2)); nColorDestino = parseInt("0x"+ colorDestino.substr(1+(f*2),2)); nColorPartida = Math.round( nColorPartida + ((nColorDestino-nColorPartida)*n)/veces ); if (nColorPartida<16) sColor +="0"; sColor += nColorPartida.toString(16); } sFuncion="cicloColores('"+nombreElemento+"','"+colorPartida+"','"+colorDestino+"',"+veces+","+tiempo+","+n+",false,"+num+")"; }else { sColor=colorDestino; n=0; sFuncion="cicloColores('"+nombreElemento+"','"+colorDestino+"','"+colorPartida+"',"+veces+","+tiempo+","+n+",false,"+num+")"; } hiloActivo = setTimeout (sFuncion,tiempo); eval("document.forms["+num+"]."+nombreElemento+".style.backgroundColor = sColor"); }