// li passes el nom del camp de data i et diu si és una data, i si ho és, // et modifica el valor del camp per posar-te la data amb format dd/mm/aaaa // bool = isDate( nom_camp) function isDate( data , errmessage) { var errmes = 'Formato de fecha incorrecto'; if( errmessage != '') errmes = errmessage; var res = true; if( is.ie ) var buf = document.all(data).value; else var buf = document.forms[0].elements[ data ].value; if( buf.length == 0) return( true ); var longitud = 1; var dia,mes,any; var pos; var str; if (buf.length > 2+1+2+1+4) return msgerr( data , errmes); //mida màxima if (buf.length < 1+1+1+1+4) return msgerr( data , errmes); //mida mínima // agafem el dia if (!isDigit(buf.charAt(0))) return false; if (isDigit(buf.charAt(1))) longitud = 2; else longitud = 1; if (longitud == 1) dia = buf.charAt(0) * 1; //passem a integer else dia = buf.charAt(0) * 10 + buf.charAt(1) * 1; if (buf.charAt(longitud) != '/') return msgerr( data , errmes); pos = longitud + 1; // agafem el mes if (!isDigit(buf.charAt(pos))) return msgerr( data , errmes); if (isDigit(buf.charAt(pos+1))) longitud = 2; else longitud = 1; if (longitud == 1) mes = buf.charAt(pos) * 1; //passem a integer else mes = buf.charAt(pos) * 10 + buf.charAt(pos+1) * 1; if (buf.charAt(pos+longitud) != '/') return msgerr( data , errmes); pos += longitud + 1; // agafem l'any longitud = (buf.length - pos); // if ( (longitud != 2) && (longitud != 4) ) return msgerr( data , errmes); if ( longitud != 4 ) return false; any = 0; for (i=0;i2100) || (any<1800) ) return msgerr( data , errmes); // hi ha d'haver 12 mesos if ( (mes<1) || (mes>12) ) return msgerr( data , errmes); // dies: primer mirem entre 1 i 31, i llavors fem els mesos especials if ( (dia<1) || (dia>31) ) return msgerr( data , errmes); switch (mes) { case 2 : if ((any % 4)==0) { if (dia>29) return msgerr( data , errmes); } else { if (dia>28) return msgerr( data , errmes); } break; case 4 : if (dia>30) return msgerr( data , errmes); break; case 6 : if (dia>30) return msgerr( data , errmes); break; case 9 : if (dia>30) return msgerr( data , errmes); break; case 11 : if (dia>30) return msgerr( data , errmes); break; } return true; } // función que devuelve true si el campo cuyo nombre es data contiene una dirección de correo correcta // function isMail( data, len ) { var lengt = 7; if (len) lengt = len; if( is.ie ) var buf = document.all(data).value; else var buf = document.forms[0].elements[ data ].value; if( buf.length < len) return false; var posarr = buf.indexOf( '@' ); if ( posarr < 1 ) return false; var pospunt = buf.lastIndexOf( '.' ); if( pospunt < posarr + 1 ) return false; return true } // diu si el caràcter és un dígit // bool = isDigit( char ) function isDigit(c) { if ( (c < '0') || (c > '9') ) return(false); return(true); } // funció que treu un missatge d'error i fa el focus al camp que toca function msgerr( name , meserror ) { window.status = meserror; alert( meserror ); if( is.ie ) document.all( name ).focus(); else document.forms[0].elements[ name ].focus(); return false; } function isInlist(field, entry) { for (var i = 0; i < field.options.length; i++) { if (field.options[i].text == entry) { field.selectedIndex = i; alert(entry + "\r\nya se encuentra en la lista.") return true; } } } //afegir categories a un combo-box function addNewCategory(msg, obj, checkdup) { var newcat = window.prompt(msg, ''); if ( newcat && (!checkdup || !isInlist(obj, newcat)) ) { var oOption = document.createElement("OPTION"); oOption.text = newcat; oOption.value = newcat; obj.add(oOption); obj.selectedIndex = obj.length - 1; return true; } } // función que abre el dialogo para seleccionar una entrada del names. // Le pasamos un objeto campo donde debe poner el valor de retorno (F=xxxxxx) i un boolean para multivalor o no(MULTI=1/0) y el separador de multivalor puede se un código de caracter o un string (si es null el dialogo pondra "\r\n") function doAddress( namereturnvalue , multivalue, multiseparator) { var pathname = (window.location.pathname); var owin; var url = pathname.substring(0,(pathname.lastIndexOf('.nsf')+5))+'wNAMESDLG?OpenForm&F=' + namereturnvalue.name + '&MULTI=' + (multivalue ? '1' : '0') + ( (multivalue && multiseparator) ? ('&MULTISEP=' + multiseparator) : ''); if (screen.width>640) { if (navigator.appVersion.indexOf('X11') != -1) { owin = window.open(url , 'Address','status=yes,resizable=yes,scrollbars=yes,screenX=100,screenY=100,width=750,height=400'); } else { if (navigator.appName =='Netscape') { owin = window.open(url , 'Address','status=yes,resizable=yes,scrollbars=yes,screenX=120,screenY=100,width=740,height=470'); } else { owin = window.open(url,'Address','status=yes,resizable=yes,scrollbars=yes,top=120,left=100,width=700,height=400'); } } } else { if (navigator.appVersion.indexOf('X11') != -1) { owin = window.open(url,'Address','status=yes,resizable=yes,scrollbars=yes,screenX=0,screenY=0,width=630,height=480'); } else { if (navigator.appName =='Netscape') { owin = window.open(url,'Address','status=yes,resizable=yes,scrollbars=yes,screenX=0,screenY=0,width=630,height=480'); } else { owin = window.open(url,'Address','status=yes,resizable=yes,scrollbars=yes,top=0,left=0,width=630,height=480'); } } } } //keydown para campos names function kdNamesField(field, hotkey, ev, multivalue, multiseparator) { var rslt; if (!hotkey || (ev && (hotkey == ev.keyCode))) { doAddress(field, multivalue, multiseparator); rslt = false; } else { rslt = true; } if (ev) ev.returnValue = false; return rslt; } // cambia todas las ocurrencias del string which por what function replaceAll( source , which , what ) { var pos = 0; while( pos != -1 ) { pos = source.indexOf( which ); source = source.replace( which , what ); } return source; } // le pasamos el valor y comprueba si es numerico o no function isNumeric( name ) { var i; var res = true; if( is.ie ) var valu = document.all( name ).value; else var valu = document.forms[0].elements[ name ].value; var valu = eval( 'document.forms[0].' + name + '.value' ); if ( valu!='' ) { for (i=0; i < valu.length; i++) if ( ((valu.charAt(i) < '0') || (valu.charAt(i) > '9')) && (valu.charAt(i) != '.') && (valu.charAt(i) != ',') && (valu.charAt(i) != '+') && (valu.charAt(i) != '-') && (valu.charAt(i) != 'E') ) res = false; } return res; } function BrowserCheck() { var b = navigator.appName if (b=="Netscape") this.b = "ns" else if (b=="Microsoft Internet Explorer") this.b = "ie" else this.b = b this.version = navigator.appVersion this.v = parseInt(this.version) this.ns = (this.b=="ns" && this.v>=4) this.ns4 = (this.b=="ns" && this.v==4) this.ns5 = (this.b=="ns" && this.v==5) this.ie = (this.b=="ie" && this.v>=4) this.ie4 = (this.version.indexOf('MSIE 4')>0) this.ie5 = (this.version.indexOf('MSIE 5')>0) this.min = (this.ns||this.ie) } is = new BrowserCheck() function openview( pos , expand ) { var posstart = pos; if( pos == null ) posstart = document.all.Start.value; if( posstart == '' ) posstart = '1'; var src = document.all.pathDB.value + '/' + document.all.ViewName.value + '?OpenView';//&Start=' + expand;//posstart; src += '&Count=' + document.all.Count.value; if( expand != null ) src += '&Start=' + expand +'&Expand='+ expand + '#' + expand; else src += '&Start=' + posstart; //alert( src ); window.location = src; } function opendoc( urlpar , expand ) { var posstart = document.all.Start.value; if( posstart == '' ) posstart = '1'; var src = urlpar + '&Start=' + posstart + '&Count=' + document.all.Count.value + expand; window.location = src; }