String.prototype.trim=function(){return this.replace(/(^\s*)|(\s*$)/g, "")};function acorta(num){num=""+num;if(!num)return "";num.trim();var numero="";for(i=0;i<num.length;i++){car=num.charAt(i);if("0123456789".indexOf(car)!=-1)numero+=car}return numero}function sinRaros(_cad){return(_cad!="")?_cad.replace(/[^A-Za-z0-9]/g, ""):true}function cambiaSeparadorDec(_n){var _signo=(_n.substr(0,1)=='-')?1:0;_n=_n.replace(/([^0-9])([0-9])/g,".\$2");var p=_n.lastIndexOf('.');var _dec='';if(p<0)p=_n.length;else _dec=_n.substr(p);var _ent=_n.substring(_signo,p);return((_signo)?'-':'' )+_ent.replace('.','')+_dec}function validaCc(numcc){longBanco=8;longCc=10;numcc=acorta(numcc);longCuenta=numcc.length;if(longCuenta!=longBanco+longCc+2){alert('Longitud del número de cuenta errónea.');return false}if(numcc.substring(0,4)>3999){alert('Número de cuenta bancaria erróneo.');return false}Pesos=new Array(6, 3, 7, 9, 10, 5, 8, 4, 2, 1);s1=0;s2=0;banco=numcc.substring(0,longBanco);cc=numcc.substring(longCuenta-longCc,longCuenta);for(i=0;i<longBanco;i++){s1+=Pesos[i]*banco.substring(longBanco-i-1,longBanco-i)}for(i=0;i<longCc;i++){s2+=Pesos[i]*cc.substring(longCc-i-1,longCc-i)}cod1=11-s1%11;cod1=(cod1>9)?1-cod1%10:cod1;cod2=11-s2%11;cod2=(cod2>9)?1-cod2%10:cod2;r=(cod1==numcc.substring(longBanco,longBanco+1)&& cod2==numcc.substring(longCuenta-longCc-1,longCuenta-longCc))?true:false;if(!r)alert("Número de cuenta bancaria erróneo.");return r}function validaEAN13(_ean){_ean=sinRaros(_ean);if(_ean.length!=13){alert("EL EAN13 es erróneo.");return false}L13_ean=acorta(_ean.charAt(13));L0_11_ean=_ean.substring(0,11);L0_11_ean=acorta(L0_11_ean);if(L13_ean.length!=1 || L0_11_ean.length!=12){alert("EL EAN13 es erróneo.");return false}suma=0;for(i=0;i<11;i+=2)suma+=3*parseInt(L0_11_ean.charAt(i))+parseInt(L0_11_ean.charAt(i+1));r=(10-suma%10)%10;r=(r==L13_ean)?true:false;if(!r)alert("El EAN13 con valor "+_ean+" es erróneo.");return r}var letra_dnif;var abc=new String("TRWAGMYFPDXBNJZSQVHLCKE");function letra_dni(DNI){if(DNI!="")letra_dnif=abc.charAt(DNI%23);return letra_dnif}function compruebaLetraDNI(){var letraM=new String(document.forms[0].letra.value.toUpperCase());if(letra_dni(document.forms[0].numero.value)!=letraM)alert("Carnet falso.");else alert("Carnet correcto.");alert(letra_dnif);document.forms[0].reset()}function compruebaDNI(num,letra){var letraS=letra.toUpperCase();var numS=acorta(num);var cad="";if(letraS!=""&&numS!="")if(abc.charAt(numS % 23)!=letraS){cad="Número o letra del DNI incorrectos.";r=false}else r=true;else {cad="Por favor, rellene los campos referentes al DNI.";r=false}if(cad!="")alert(cad);return r}function validaNIF(_nif){_nif=sinRaros(_nif).toUpperCase();while(_nif.length<9)_nif="0"+_nif;var letra_1=_nif.substr(0,1);if(ex=isNaN(letra_1))_nif="0"+_nif.substr(1,9);var num=_nif.substr(0,8);var letra_2=_nif.substr(8,9);r=compruebaDNI(num,letra_2);return(r)?r:((ex)?letra_1+num.substr(1,9):num)+letra_2}function validaCIF(_cif){tipo=new Array();tipo["A"]="Sociedad anónima";tipo["B"]="Sociedad de responsabilidad limitada";tipo["C"]="Sociedad colectiva";tipo["D"]="Sociedad comanditaria";tipo["E"]="Comunidads de bienes";tipo["F"]="Sociedad cooperativa";tipo["G"]="Asociación u otro tipo no definido";tipo["H"]="Comunidad de propietarios";tipo["N"]="Entidad no residente";tipo["P"]="Corporación local";tipo["Q"]="Organismo autónomo, asimilado o institución religiosa";tipo["S"]="Órgano de la administración";_cif=sinRaros(_cif);if(_cif.length!=9){alert("EL CIF es erróneo.");return false}L1_cif=_cif.charAt(0).toUpperCase();L9_cif=_cif.charAt(8).toUpperCase();if(!tipo[L1_cif]){alert("EL CIF es erróneo.");return false}L2_8_cif=_cif.substring(1,8);L2_8_cif=acorta(L2_8_cif);suma=0;for(i=1;i<8;i+=2){suma+=(L2_8_cif.charAt(i-1)!=9)?2*parseInt(L2_8_cif.charAt(i-1))%9:9;if(i<7)suma+=parseInt(L2_8_cif.charAt(i))}r=10-suma%10;if(L1_cif=="P" || L1_cif=="Q" || L1_cif=="S")r=String.fromCharCode(64+r);if(r==10)r=0;r=(r==L9_cif)?true:false;if(!r)alert("El CIF de "+tipo[L1_cif]+" con valor "+_cif+" es erróneo.");return r}function validaPasaporte(_pasap){var patron=/^([a-zA-Z]{2})([0-9]{6})$/;r=patron.test(_pasap);if(!r)alert("El número de pasaporte no es correcto.");return r}function esCorreoE(valor){valor=valor.toLowerCase();var reCorreo1=/^[a-z0-9$%][\w\.\-$%]*[a-z0-9$%]\@[a-z0-9][\w\.\-]+\.[a-z0-9]{2,6}$/;var reCorreo2=/[\.\-_$%][\.\-_$%]/;if(valor.substring(valor.length-3,valor.length)=='.es'){reCorreo1=/^[a-z0-9][a-z0-9\.\-]*[a-z0-9]\@[a-z0-9][a-z0-9\.\-]{0,61}[a-z0-9]\.es$/;reCorreo2=/^[a-z0-9][a-z0-9\.\-]*[a-z0-9]\@xn--.*\.es/}if((!reCorreo1.test(valor))|(reCorreo2.test(valor))){alert(cadError6);return false}return true}function validaURL(_url,_http){_url=_url.toLowerCase();var reUrl=(_http)?/^https?:\/\/([0-9a-zA-Z.-]+\.)+[a-zA-Z]{2,6}([0-9a-zA-Z~\/._-]+)*$/:/^(([0-9a-zA-Z.-]+\.)+[a-zA-Z]{2,6})?(\/[0-9a-zA-Z~._-]*)*$/;if(!reUrl.test(_url)){var _cTemp=(_http)?"http(s):/"+"/":"" ;alert("¡Dirección URL errónea!Por favor rellene su dirección de internet de la forma:"+_cTemp+"(abc.)xyz.ext(/carpeta)(/archivo.ext)");return false}return true}function validaCP(_cp){_cp=acorta(_cp);_r=(_cp<"01001" || _cp>"52999" || _cp.length!=5)?false:true;if(!_r)alert("Código postal erróneo.");return _r}function validaTelefono(_ntel,_pais){if(typeof(_pais)=="undefined")_pais='';_ntfno=_ntel;_ntel=1*acorta(_ntel);if(_pais==34)_r=((_ntel>599999999&&_ntel<700000000)||(_ntel>799999999&&_ntel<=999999999))?true:false;else _r=((_ntel>9999999&&_ntel<=999999999999999))?true:false;if(!_r)alert(_ntfno+" es un número teléfonico erróneo.");return _r}function validaSegSoc(_ss){_ss=acorta(_ss);ini=_ss.substring(0,2);num=1*(ini+""+1*_ss.substring(2,_ss.length-2));fin=1*_ss.substring(_ss.length-2,_ss.length);if(num<11000000 || ini<"01" || ini>"52" || _ss.length<11 || _ss.length>12 || num%97!=fin){alert("Número de la Seguridad Social erróneo.");return false}else return true}function validaFecha(_fecha,_tipo){_f=_fecha;_r=true;if(_fecha.length!=10)_r=false;else {_fecha=acorta(_fecha);if(((_fecha.length!=6&&_fecha.length!=8)|| _tipo<1 || _tipo>5)||((_fecha.length==8&&_tipo>3)||(_fecha.length==6&&_tipo<4)))_r=false;else {meses=Array(31,28,31,30,31,30,31,31,30,31,30,31);_la=(_tipo<4)?4:2;if(_tipo==1 || _tipo==4){anyo=_fecha.substr(0,_la);mes=_fecha.substr(4,2);dia=_fecha.substr(6,2)}else {if(_tipo==2 || _tipo==5){anyo=_fecha.substr(4,_la);mes=_fecha.substr(2,2);dia=_fecha.substr(0,2)}else {anyo=_fecha.substr(4,_la);mes=_fecha.substr(0,2);dia=_fecha.substr(2,2)}}if((anyo%4==0&&anyo%100!=0)||(anyo%100==0&&anyo%400==0))meses[1]=29;_r=_r &&((anyo<1000 || anyo>9999 || mes<1 || mes>12 || dia<1 || dia>meses[1*mes-1])?false:true )}}if(!_r)alert('La fecha '+_f+' es errónea o su formato es incorrecto.');return _r}function comparaFechas(_fecha1,_fecha2,_tipo,_modo){__f1=_fecha1;__f2=_fecha2;if(_modo!=1)_modo=false;var _r=true;var fec=new Date(),anho=1*fec.getFullYear(),mes=1+fec.getMonth(),dia=1*fec.getDate();_fecha1=acorta(_fecha1);if(!_fecha1)_fecha1=0;_fecha2=acorta(_fecha2);_la=(_tipo<4)?4:2;switch(_tipo){case 2:case 5:if(1*_fecha2.substr(4,_la)>anho&&_modo )_r=false;else if(1*_fecha2.substr(4,_la)==anho&&1*_fecha2.substr(2,2)>mes&&_modo )_r=false;else _r=(1*_fecha2.substr(4,_la)==anho&&1*_fecha2.substr(2,2)==mes&&1*_fecha2.substr(0,2)>dia&&_modo )?false:true;_fecha1=_fecha1.substr(4,_la)+_fecha1.substr(2,2)+_fecha1.substr(0,2);_fecha2=_fecha2.substr(4,_la)+_fecha2.substr(2,2)+_fecha2.substr(0,2); break;case 3:case 6:if(1*_fecha2.substr(4,_la)>anho&&_modo )_r=false;else if(1*_fecha2.substr(4,_la)==anho&&1*_fecha2.substr(0,2)>mes&&_modo )_r=false;else _r=(1*_fecha2.substr(4,_la)==anho&&1*_fecha2.substr(0,2)==mes&&1*_fecha2.substr(2,2)>dia&&_modo )?false:true;_fecha1=_fecha1.substr(4,_la)+_fecha1.substr(0,2)+_fecha1.substr(2,2);_fecha2=_fecha2.substr(4,_la)+_fecha2.substr(0,2)+_fecha2.substr(2,2); break;default:_r=true}var _mens=(!_r)?"Alguna de las fechas("+__f1+", "+__f2+")es posterior al día de hoy.":"";if(_fecha1>_fecha2){_mens+="\r\nLas fechas "+__f1+" y "+__f2+" no son consecutivas.";_r=false}if(!_r)alert(_mens);return _r}function validaHoras(_h,_modo,_m){if(typeof(_m)=="undefined" || !_m)_m=0.25;if(typeof(_modo)=="undefined" || !_modo)_modo=1;_h=cambiaSeparadorDec(_h);_r=(_h>0.00&&_h<=24.00)&&((_modo)?(parseInt(_h/_m)==_h/_m):true );if(!_r){alert("El valor de las horas debe estar comprendido entre "+_m+" y 24.00.\r\nSólo son válidos los valores decimales en intervalos de "+_m+" h.")}return _r}function validaNumero(_num){var patron1=/^-?[1-9]?[0-9]+\.?[0-9]*$/;var patron2=/^-?0\.[0-9]+$/;if(!patron1.test(_num)&& !patron2.test(_num)){alert('El número '+_num+' debe adecuarse al formato:-12345678.90123456');return false}else return true}var valorCampo="";function validaPorcentaje(_num,_longCif,_positivo){var _r=true;if(!_longCif)_longCif=5;if(!_positivo)_positivo=0;_num=cambiaSeparadorDec(_num);_mens=_num+":";if(!isNaN(_num)&& _num!=null ){if(_num.length>_longCif ){_mens+="\r\n-Tiene más de "+_longCif+" cifras.";_r=false}if(_num.indexOf('.')!=-1&&parseInt(_num.length)-parseInt(_num.indexOf('.'))>3 ){_mens+="\r\n-Tiene más de dos decimales.";_r=false}if(_num>100.00 ){_mens+="\r\n-Es mayor de 100.";_r=false}if(_positivo==1&&_num<0 ){_mens+="\r\n-No puede ser negativo.";_r=false}}else {_mens+="\r\n-El formato del número debería ser '12.34'.";_r=false}if(!_r)alert(_mens);valorCampo=_num;return _r}var digitosHex=new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F");function dec2hex(dec){return(digitosHex[dec>>4]+digitosHex[dec&15])}function hex2dec(hex){return(parseInt(hex,16))}function validaRGB(rgb){var pat1=/^[0-9A-Fa-f]{6}$/;var pat2=/^[0-9A-Fa-f]{3}$/;if(!pat1.test(rgb)&&!pat2.test(rgb)){alert('El color debe estar en formato RGB hexadecimal(00-FF). Ej.:01a4Fb');return false}else return true}function invierteColor(rgb){if(p=rgb.indexOf("#")>0 )rgb=rgb.substr(p);var i=-2,cad="";while(s=rgb.substr(i+=2,2)){t="0"+dec2hex((0x7F+hex2dec(s))%0xFF );cad+=t.substr(t.length-2,t.length)}return "#"+cad.toUpperCase()}function invierte(cad){var t="",i=cad.length;while(i>-1){t+=cad.substring(i,i+1);i--}return t}function longMaxCadena(_campo,_objForm,_longMax){if(eval("_objForm."+_campo+".value")!="" ){longi=(!_longMax)?eval("_objForm."+_campo+".maxLength"):1*_longMax;if(isNaN(longi))longi=Math.pow(2,31)-1;s=eval("_objForm."+_campo+".value.length<="+longi);if(!s)alert("El campo "+_campo+" debe tener "+longi+" caracteres como máximo.");return s}else return false}function validaIP(_ip){_ip=_ip.trim();var _r=true;var expreg=/^(\d{1,3}\.){3}\d{1,3}$/;if(expreg.test(_ip)){var partes=_ip.split(".");_ip="";if(!parseInt(parseFloat(partes[0])))_r=false;else for(var i=0;i<partes.length;i++){var t=parseInt(parseFloat(partes[i]));if(t>255){_r=false;break}_ip+=t+"."}}else _r=false;if(_r)_r=""+_ip.substring(0,_ip.length-1);else alert("La dirección IP introducida es incorrecta.");return _r}errores="";if(typeof(idioma)=="undefined")idioma="cast";switch(idioma){case "ingl":cadError1=" must contain an e-mail address";cadError2=" must contain a number";cadError3a=" must contain a number between ";cadError3b=" and ";cadError3c="";cadError4=" is required";cadError5="The following error(s)occurred";cadError6="E-mail address incorrect!\nPlease, fill the email with abc@xyz.ext pattern";break;case "fran":cadError1=" doit contenir une adresse poste-E";cadError2=" doit contenir un nombre";cadError3a=" doit contenir un nombre entre ";cadError3b=" et ";cadError3c="";cadError4=" est nécessaire";cadError5="Attention:il ya des erreurs";cadError6="L'adresse poste-E n'est pas correcte!\nS'il vous plaît, remplissez votre poste-E de la forme abc@xyz.ext";break;case "eusk":cadError1=" E-posta helbidea ez da zuzena";cadError2=" zenbaki bat izan behar da";cadError3a=" ";cadError3b="(e)tik ";cadError3c="(e)ra bitarteko zenbakia ez da izan behar";cadError4=" beharrezkoa da";cadError5="Ondorengo akatsak aurkitu dira";cadError6="E-posta helbidea ez da zuzena!\nMesedez, bete ezazu zure e-posta abc@xyz.exte eran";break;case "ital":cadError1=" deve contenere un indirizzo e-mail";cadError2=" deve contenere un numero";cadError3a=" deve contenere un numero tra ";cadError3b=" e ";cadError3c="";cadError4=" è un campo obbligatorio";cadError5="Si sono verificati i seguenti errori";cadError6="Indirizzo e-mail:abc@xyz.ext";break;case "alem":cadError1=" scheint keine gültige eMail-Adresse zu sein";cadError2=" muss eine Zahl sein";cadError3a=" muss eine Zahl zwischen ";cadError3b=" und ";cadError3c=" sein";cadError4=" ist erforderlich";cadError5="Folgende(r)Fehler bei der Eingabe";cadError6="eMail-Adresse:abc@xyz.ext";break;case "port":cadError1=" deve conter um endereço correio e. válido.";cadError2=" precisa ser um valor numérico";cadError3a=" precisa ser um valor entre ";cadError3b=" e ";cadError3c="";cadError4=" é obrigatório";cadError5="Os seguintes erros ocorreram";cadError6="Endereço de correio eletrônico erróneo!\nPor favor, preenche seu correio eletrônico da forma abc@xyz.ext";break;case "chec":cadError1=" musí být emailová adresa.";cadError2=" musí být un número";cadError3a=" musí být un número entre ";cadError3b=" a ";cadError3c="";cadError4=" je povinné(á/ý)";cadError5="Vyskytly se tyto chyby";cadError6="Neplatná emailová adresa!\nProsíme vyplnte svou emailovou adresu formou abc@xyz.ext";break;default:cadError1=" debe ser una dirección de correo e.";cadError2=" debe ser un número";cadError3a=" debe ser un número entre ";cadError3b=" y ";cadError3c="";cadError4=" es obligatorio";cadError5="Existen los siguientes errores";cadError6="¡Dirección de correo e. errónea!\nPor favor, rellene su correo e. de la forma abc@xyz.ext";break}function validaDesplegable(nm){if(typeof(errores)=="undefined")errores="";var val=MM_findObj(nm);var elemID=$(val.id);nm=(elemID.title)?elemID.title:((elemID.alt)?elemID.alt:val.name );errores +=(val.length)?"":"-"+nm+cadError4+".\n";return(errores=="")}function validaRadio(nm){if(typeof(errores)=="undefined")errores="";var val=document.getElementsByName(nm);nm=(val[0].title)?val[0].title:((val[0].alt)?val[0].alt:val[0].name );var valor=false;for(var i=0;i<val.length;i++)valor|=val[i].checked;if(valor){opcI=val[0].checked;opcF=val[i-1].checked}errores+=(valor)?"":"-"+nm+cadError4+".\n";return(errores=="")}function MM_findObj(n, d){var p,i,x;if(!d)d=document;if((p=n.indexOf("?"))>0&&parent.frames.length){d=parent.frames[n.substring(p+1)].document;n=n.substring(0,p)}if(!(x=d[n])&&d.all)x=d.all[n];for(i=0;!x&&i<d.forms.length;i++)x=d.forms[i][n];for(i=0;!x&&d.layers&&i<d.layers.length;i++)x=MM_findObj(n,d.layers[i].document);if(!x&&d.getElementById)x=d.getElementById(n);return x}document.MM_returnValue="";function MM_validateForm(){if(typeof(errores)=="undefined")errores="";var i,p,q,nm,test,num,min,max,args=MM_validateForm.arguments,elemID;for(i=0;i<(args.length-2);i+=3){test=args[i+2];var val=MM_findObj(args[i]);if(val){elemID=$(val.id);nm=(elemID&&elemID.title)?elemID.title:((elemID.alt)?elemID.alt:val.name );if((val=val.value)!=""){if(test.indexOf('isEmail')!=-1){if(!esCorreoE(val))errores+='-'+nm+cadError1+'.\n'}else if(test!='R'){num=parseFloat(val);if(isNaN(val))errores+='-'+nm+cadError2+'.\n';if(test.indexOf('inRange')!=-1){p=test.indexOf(':');min=test.substring(8,p);max=test.substring(p+1);if(num<min || max<num)errores+='-'+nm+cadError3a+min+cadError3b+max+cadError3c+'.\n'}}}else if(test.charAt(0)=='R')errores +='-'+nm+cadError4+'.\n'}}if(errores)alert(cadError5+':\n'+errores);return(document.MM_returnValue=(errores==""))}function enfoca(){var fo=document.forms, fe="";if(fo){for(var k=fo.length-1;k>-1;k--){var f=fo[k];var j=0;while((fe=f.elements[j])&& fe.type=='hidden'&&j<f.elements.length )j++;if(fe&&fe.type!='hidden')return fe.focus()}}return false}if(typeof('aE')!='function'){function aE(_o,_e,_f,_u){if(_o){if(typeof("_u")=="undefined" || !_u)_u=false;if(_o.addEventListener)return _o.addEventListener(_e,_f,_u);else if(_o.attachEvent)return _o.attachEvent("on"+_e,_f);else if(_o["on"+_e]){_o["on"+_e]=_f;return true}}return false}}aE(window,"load",enfoca)