var ie=document.all var dom=document.getElementById var longRfc=13; function irMenu(){ document.forms[0].action = "/sipress/menu.sipress"; document.forms[0].submit(); } /** VALIDACIONES PARA ESPACIOS **/ function trim(str) { str.replace(/^ *| *$/g,""); return str; } function eliminaDobleEspacio(cad){ var regexp = /\s+/g; /* Expresión regular para buscar todos los espacios múltiples */ cad=cad.replace(regexp, " "); /* Reemplazar todos los espacios múltiples por uno solo */ var regx = /^\s/; if(cad.match(regx)){ cad = cad.substring(1,cad.length); } return cad; } /** EXPRESIONES REGULARES PARA VALIDAR CAMPOS CON CADENAS ESPECIALES **/ function validaCurp(curp){ // COHA840806HDFRRL03 var regx = /^([A-Z]{4})(\d\d)((0[1-9]|1[012])(0[1-9]|1\d|2[0-8]))|((0[13456789]|1[012])(29|30))|((0[13578]|1[02])(31)|0229)(H|M)([A-Z]{5})\d{2}$/; return regx.test(curp); } function validaRfc(rfc) { var regx ; rfc = rfc.toUpperCase(); if(rfc.length === 13){ // COHA840806A03 regx = /^([A-ZÑ&]{4})(\d\d)((0[1-9]|1[012])(0[1-9]|1\d|2[0-8]))|((0[13456789]|1[012])(29|30))|((0[13578]|1[02])(31)|0229)\w{3}$/; } else if(rfc.length === 12){ // CHA840806A03 regx = /^([A-ZÑ&]{3})(\d\d)((0[1-9]|1[012])(0[1-9]|1\d|2[0-8]))|((0[13456789]|1[012])(29|30))|((0[13578]|1[02])(31)|0229)\w{3}$/; } else { return false; } return regx.test(rfc); } /** * JCBG - función para la validacion del formato del RP */ function validaRegistroPatronal( rp ){ var regx = /^[A-Z\d]{1}\d{7}(((1(0|3|4|7)))|((3(0|2|3|6|8)))|((4(2))))\d{1}$/; if(regx.test( rp )){ var strRP = rp.substr(0,10); var strDigito = rp.substr(10); if(obtenAlgoritmoDiez(strRP) == strDigito) { return true; } } return false; } /* Obtiene el digito verificador a partir del NRP y usando el algoritmo diez */ function obtenAlgoritmoDiez(strRP) { var alfabeto = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; /*Se efectua la transformación del primer dígito y se obtiene así la clave totalmente numerica con la que se trabajará.*/ //var cve = alfabeto.indexOf( strRP.toUpperCase().charAt(0) ) + FAC_CONVERSION + strRP.substring(1, strRP.length); var cve = alfabeto.indexOf( strRP.toUpperCase().charAt(0) ) + strRP.substring(1, strRP.length); var i = cve.length - 1;//para iniciar en las unidades, después las decenas... var paso3 = 0; var bandera = true; while(i >= 0) { if(bandera) { var porDos = Number(cve.charAt(i)) * 2; if (porDos > 9 )//si el resultado es un numero de dos cifras, es necesario tratar estas por separado. paso3 += Number(porDos.toString().charAt(0)) + Number(porDos.toString().charAt(1)); else paso3 += Number(porDos); bandera = false; } else { paso3 += Number(cve.charAt(i)); bandera = true; } i--; } var digitoV = 10-(paso3%10); if(digitoV == 10)//validacion de lógica de negocio digitoV = 0; return digitoV; } function validaEmail(email){ if(email.search(/yahoo.com|yahoo.com.mx|hotmail.com|jotmail.com|hotmail.com.mx|latinmail.com|latinmaul.com|latinmail.co|starmedia.com|aol.com|aol.com.mx|prodigy.net.mx|msn.com|live.com/g)) return false; var regx = /^([\w-]+\.)*?[\w-]+@[\w-]+\.([\w-]+\.)*?[\w]+$/; return regx.test(email); } /******** VALIDACIONES DE CAMPOS **********/ function validaCampos(campo, tipo, longitud) { if(longitud!=null){ campo.value = campo.value.substring(1, longitud); } switch(tipo){ case "rp": if( campo.value != null && campo.value != "" ){ if( !validaRegistroPatronal( campo.value ) ) { // Valida el formato del Registro Patronal alert( "El registro patronal es inválido." ); campo.focus(); } } break; case "rfc": if( campo.value != null && campo.value != "" ){ //Para personas físicas if ( longRfc == 13 && campo.value.length != 13 ){ alert('El RFC no corresponde a una persona física.'); campo.focus(); return; //Para personas morales } else if (longRfc == 12 && campo.value.length != 12 ){ alert('El RFC no corresponde a una persona moral.'); campo.focus(); return; } if( !validaRfc( campo.value ) ) { // Valida el formato del RFC alert( "El rfc es inválido." ); campo.focus(); return; } } break; } } /*********** VALIDACIONES DE TECLAS VALIDAS **********/ function esTextoValido2(campo, tipo, longitud){ if(longitud!=null){ campo.value = campo.value.substring(0, longitud); } campo.value=eliminaDobleEspacio(campo.value); /* tecla = (document.all) ? e.keyCode : e.which; if (tecla==0 || tecla==8){//tabulador 8=backspace. return true; } */ var regexp, rxReplace; switch(tipo){ case "ascii": regexp = /^.*$/; rxReplace = /^.*$/; break; case "todos": regexp = /^[a-zA-Z0-9ñÑáÁéÉíÍóÓúÚüÜ&,. ()\-\']+$/; rxReplace = /^[^a-zA-Z0-9ñÑáÁéÉíÍóÓúÚüÜ&,. ()\-\']$/; break; case "rfc": regexp = /^[A-Z0-9Ñ&]+$/; rxReplace = /^[^A-Z0-9Ñ&]$/; break; case "rp": regexp = /^[A-Z0-9Ñ&]+$/; rxReplace = /^[^A-Z0-9Ñ&]$/; break; case "curp": regexp = /^[A-Z0-9Ñ&]+$/; rxReplace = /^[^A-Z0-9Ñ&]$/; break; case "nombre": regexp = /^[a-zA-ZñÑáÁéÉíÍóÓúÚüÜ& ]+$/; rxReplace = /^[^a-zA-ZñÑáÁéÉíÍóÓúÚüÜ& ]$/; break; case "numero": regexp = /^[0-9]+$/; rxReplace = /^[^0-9]$/; break; case "correo": regexp = /^[a-zA-Z0-9 \.\_\-\@]+$/; rxReplace = /^[^a-zA-Z0-9 \.\_\-\@]$/; break; case "folio": regexp = /^[0-9\*]+$/; rxReplace = /^[^0-9\*]$/; break; } if(!regexp.test(campo.value)){ nuevoText=''; for(i=0; i longitud) { return false; } return true; } else return false; } function bloqueaBotones(bloquea){ var botones = document.getElementsByName("boton"); var lenBotones = botones.length; for (var i = 0; i < lenBotones; i+=1) { botones[i].disabled = bloquea; } } function comparaFechaConActual(fecha){ var xMonth=fecha.substring(3, 5); var xDay=fecha.substring(0, 2); var xYear=fecha.substring(6,10); var fechaAct = new Date(); var yMonth=fechaAct.getMonth()+1; var yDay=fechaAct.getDate(); //var yYear=fechaAct.getYear(); var yYear=fechaAct.getFullYear(); if (xYear> yYear) { return(true); } else { if (xYear == yYear) { if (xMonth> yMonth) { return(true); } else { if (xMonth == yMonth) { if (xDay> yDay) { return(true); } else { return(false); } } else { return(false); } } } else { return(false); } } } function validaAlfabetico( dato ){ var regx = /^[a-zA-ZñÑáÁéÉíÍóÓúÚüÜ&,. \'()\-]+$/; return regx.test( dato ); } function validaAlfaBasico( dato ){ var regx = /^[a-zA-ZñÑáÁéÉíÍóÓúÚüÜ& ]+$/; return regx.test( dato ); } function validaAlfaNumBasico( dato ){ var regx = /^[\wñÑáÁéÉíÍóÓúÚüÜ& ]+$/; return regx.test( dato ); } // Validacion para la funcion de 'esAlfaNumerico' function validaAlfanumerico( dato ) { var regx = /^[\da-zA-ZñÑáÁéÉíÍóÓúÚüÜ&,. \'()\-]+$/; return regx.test( dato ); } function validaNumericos( dato ){ var regx = /^[\d]+$/; return regx.test( dato ); } function validaNumerosFecha(cadena){ var regx = /^[\d/]+$/; return regx.test(cadena); } function validaNumerosFecha(cadena){ var regx = /^[\d/]+$/; return regx.test(cadena); } function validaEspacios(elemen, charCode){ //(espacio) if ( charCode == 32 && elemen.value.length < 1) { return false; } if ( charCode == 32 && elemen.value.substring(elemen.value.length-1,elemen.value.length)==' ') { return false; } return true; } function esAlfabetico(elemen, e) { var charCode; if (navigator.appName == "Netscape") { charCode = e.which; } else { charCode = e.keyCode; } if ( !validaEspacios(elemen, charCode ) ) { return false; } if( charCode == 180 ){ return false; } mychar = unescape('%' + charCode.toString(16)); if ( validaAlfabetico( mychar ) ) { return true; } return false; } function esAlfaNumerico(elemen,e) { var charCode; if (navigator.appName == "Netscape") { charCode = e.which; } else { charCode = e.keyCode; } if (!validaEspacios(elemen, charCode ) ) { return false; } mychar = unescape('%' + charCode.toString(16)); if ( validaAlfanumerico( mychar ) ) { return true; } return false; } function esAlfabeticoBasico(elemen,e) { var charCode; if (navigator.appName == "Netscape") { charCode = e.which; } else { charCode = e.keyCode; } if (!validaEspacios(elemen, charCode ) ) { return false; } if( charCode == 180 ){ return false; } mychar = unescape('%' + charCode.toString(16)); if ( validaAlfaBasico( mychar ) ) { return true; } return false; } function esAlfaNumBasico(elemen,e) { var charCode; if (navigator.appName == "Netscape") { charCode = e.which; } else { charCode = e.keyCode; } if (!validaEspacios(elemen, charCode ) ) { return false; } if( charCode == 180 ){ return false; } mychar = unescape('%' + charCode.toString(16)); if ( validaAlfaNumBasico( mychar ) ) { return true; } return false; } function esDigito(elemen, e) { //alert("-sipress.js"); var charCode; if (navigator.appName == "Netscape") { charCode = e.which; } else { charCode = e.keyCode; } if (charCode == 8){ //backspace correcto return true; } mychar = unescape('%' + charCode.toString(16)); if ( validaNumericos( mychar ) ) { return true; } return false; } function esFecha(elemen, e) { var charCode; if (navigator.appName == "Netscape") { charCode = e.which; } else { charCode = e.keyCode; } mychar = unescape('%' + charCode.toString(16)); if ( validaNumerosFecha( mychar ) ) { return true; } return false; } function esCorreo(elemen, e) { var charCode; if (navigator.appName == "Netscape") { charCode = e.which; } else { charCode = e.keyCode; } mychar = unescape('%' + charCode.toString(16)); if ( validaEmail( mychar ) ) { return true; } return false; } function esRfcCurp(elemen, e) { var charCode; if (navigator.appName == "Netscape") { charCode = e.which; } else { charCode = e.keyCode; } if (charCode==0 || charCode==8){//tabulador 8=backspace. return true; } mychar = unescape('%' + charCode.toString(16)); if ( validaRfcCurp( mychar ) ) { return true; } return false; } function validaRfcCurp(dato){ var regx = /^[a-zA-ZñÑ0-9&]+$/; return regx.test(dato); } /** * JCBG - 2009/11/30 */ function validaCampos2( tipoValidacion, campo ){ var dato = document.getElementsByName( campo )[0].value; var msg = "Algunos caracteres no son permitidos. Por favor verifiquelos."; // falta agregar validacion de longitudes if( dato != null && dato != "" ){ if( tipoValidacion == "alfa" ) { if( !validaAlfabetico( dato ) ){ alert( msg ); document.getElementsByName( campo )[0].focus(); return false; } } else if ( tipoValidacion == "nume" ) { if( !validaNumericos( dato ) ){ alert( msg ); document.getElementsByName( campo )[0].focus(); return false; } } else if ( tipoValidacion == "alfaNume" ) { if( !validaAlfanumerico( dato ) ){ alert( msg ); document.getElementsByName( campo )[0].focus(); return false; } } } } function pasteLenght( campo, longitud ){ var datoLength = document.getElementById( campo ).value.length; var maxLength = longitud - 1; var nuevaCadena = ""; if( datoLength > maxLength ){ nuevaCadena = document.getElementById( campo ).value.substring( 0, maxLength ); document.getElementById( campo ).innerHTML = nuevaCadena; } }