//flag errore in pagina var flgErrPag=false; var cmpErr=''; function vdata(s) { //esce subito se c'è un altro errore in pagina if (flgErrPag && (cmpErr!=s)) { return; } var ss=eval(s+".value"); var dataobj=data(ss); if (!dataobj.b) { flgErrPag=true; cmpErr=s; eval(s+".select()"); alert("Data non valida!"); return dataobj; } else { cmpErr=''; flgErrPag=false; eval(s+".value='"+dataobj.dita+"'"); return dataobj; } } ndec=4; function objToN() { objToN.b; objToN.n; objToN.sn; } function to_number(snum, nd) /* accetta numeri in formato 100'000,29 o altri senza segno di migliaia restituisce un oggetto .b = booleano, true se e' numero .n = float, numero convertito .sn=stringa, stringa in formato nd decimali e migliaia con ' */ { if (snum=="") { //esce subito senza errori se snum="" objToN.b=true; objToN.n=""; objToN.sn=""; return objToN; } //tolgo ('.,) e controllo se e' numero snum=snum.toString(); ssnum=snum.replace(/'|,|\+|\./g,""); //controlla sep decimali ripetuto if (snum.indexOf(",")!=snum.lastIndexOf(",")) ssnum=""; //controlla se negativo var segno=1; if (snum.indexOf("-")==0) { segno=-1; ssnum=ssnum.substr(1); } //cerca altri caratteri alfanumerici if (ssnum.match("[^0-9]")!=null) ssnum=""; num=parseInt(ssnum); if (isNaN(num)) { //stringa o valore nullo objToN.b=false; objToN.sn=ssnum; objToN.n=null; } else { ssnum=snum.replace(/'|\.|\+/g,""); ssnum=ssnum.replace(/,/g,"."); var ssegno=""; if (snum.indexOf("-")==0) { ssnum=ssnum.substr(1); ssegno="-"; } num=Math.round(parseFloat(ssnum)*Math.pow(10,nd)); num=num/Math.pow(10,nd); objToN.n=num*segno; //in input: . separatore dei decimali ssnum=num.toString(); var n=ssnum.indexOf("."); if (n!=-1) { //decimale var sndec=ssnum.substr(n+1); sndec=sndec+"0000000000000000000000".substr(0,nd-sndec.length); //intero var snint=ssnum.substr(0,n); } else { //zeri come decimali var sndec="0000000000000000000000".substr(0,nd); //tutto intero senza punti di migliaia var snint=ssnum; } objToN.b=true; //segni di migliaia var str=snint; snint=""; while (str.length>3) { snint="."+str.substr(str.length-3)+snint; str=str.substr(0,str.length-3); } snint=str+snint; //aggiunge la virgola if (nd!=0) { sndec=","+sndec; } objToN.sn=ssegno+snint+sndec; } return objToN; } function vto_number(s, ndec) { //esce subito se c'è un altro errore in pag if (flgErrPag && (cmpErr!=s)) return; var ss=eval(s+".value"); var nobj=to_number(ss,ndec); if (!nobj.b) { flgErrPag=true; cmpErr=s; eval(s+".select()"); alert("Numero non valido!"); return nobj; } else { cmpErr=''; flgErrPag=false; eval(s+".value='"+nobj.sn+"'"); return nobj; } } function vgen(campo,lista) { //esce subito se c'è già un'errore in pagina if (flgErrPag && (cmpErr!=campo)) return; var valore=eval(campo+'.value.toUpperCase()'); var flg=false; var sep=""; var str=""; var i=0; var i1=lista.indexOf(';',i); while (i1!=-1) { str+=sep + "'"+lista.substr(i,i1-i)+"'"; i=i1+1; sep=","; i1=lista.indexOf(';',i); } eval("var aVal = new Array ("+str+")") for (i=0;i<=aVal.length-1;i++) { if (valore==aVal[i]) flg=true; } if (!flg) { cmpErr=campo; flgErrPag=true; eval(campo+".select()"); alert("Valore non valido !"); } else { eval(campo+".value='"+valore+"'"); cmpErr=''; flgErrPag=false; } } function vnull(campo) { //esce subito se c'è già un'errore in pagina if (flgErrPag && (cmpErr!=campo)) return; var valore=eval(campo+'.value'); if (valore=='') { cmpErr=campo; flgErrPag=true; eval(campo+".select()"); alert("Campo obbligatorio !"); } else { eval(campo+".value='"+valore+"'"); cmpErr=''; flgErrPag=false; } } function vnum(campo) { vto_number(campo,0); } function vval(campo) { vto_number(campo,2); } function vint(campo) { //esce subito se c'è già un'errore in pagina if (flgErrPag && (cmpErr!=campo)) return; var valore=eval(campo+'.value'); if (valore.search('[0-9]')==-1 && valore != "") { cmpErr=campo; flgErrPag=true; eval(campo+".select()"); alert("Valore non valido !"); } else { eval(campo+".value='"+valore+"'"); cmpErr=''; flgErrPag=false; } } function obbligatori() { if (fObb) { for (i=0;i<=aCampi.length-1;i++) { eval("vcampo=document.forms[0]."+aCampi[i]+".value"); if (vcampo=="") { eval("document.forms[0]."+aCampi[i]+".focus()"); alert("Campo "+aNomiC[i]+" richiesto!"); return false; } } } return true; } function su(imgName,path) { fileName = imgName.substring(0,(imgName.length-2)); //alert(fileName); eval(imgName + "_0= new Image()"); eval(imgName + "_0.src ='"+path+"img/"+fileName+"_0.gif'"); img1 = eval(imgName + "_0.src "); //alert (img1); document [imgName].src = img1; } function giu(imgName,path) { fileName = imgName.substring(0,(imgName.length-2)); //alert(fileName); eval(imgName + "_1= new Image()"); eval(imgName + "_1.src ='"+path+"img/"+fileName+"_1.gif'"); img2 = eval(imgName + "_1.src "); //alert (img2+':'+imgName); document [imgName].src = img2; } function invia_ctrl() { if (obbligatori()) document.forms[0].submit(); } function invia() { document.forms[0].submit(); } function resetta() { document.forms[0].reset(); } // controlla la partita iva restituisce booleano function cnt_piva(part_iva) { var somma_pari; var somma_disp; var i; var comodo; var cifra; var tmp; var tmp3; var tmp5; var somma_pari = 0; var somma_disp = 0; var cnt_piva = true; tmp4=isNaN(part_iva); if ((part_iva==null) || (part_iva == "") || tmp4==null || (part_iva == "0000000000") || (part_iva == "00000000000")) { cnt_piva = false; } for(i=2;i<=10;i=i+2) { tmp3=part_iva.substr( i-1, 1); cifra=parseFloat(tmp3); comodo = cifra * 2; if (comodo > 8) { comodo = comodo - 9; } somma_pari = somma_pari + comodo; } for (i=1;i<=9;i=i+2) { cifra = parseFloat(part_iva.substr(i-1, 1)); somma_disp = somma_disp + cifra; } comodo = somma_pari + somma_disp; tmp=comodo.toString(10); comodo = 10 - parseFloat(tmp.substr(tmp.length-1, 1)); tmp=part_iva.toString(10); tmp5=comodo.toString(10); if (tmp5.substr(tmp5.length-1, 1) != tmp.substr(tmp.length-1, 1)) { cnt_piva = false; } return cnt_piva; } function link(pagina) { var att="&"; if (pagina.search(/\?/)==-1) att="?"; //alert(pagina+att+"nn="+(Math.random().toString()).substr(2)); parent.frames['corpo'].location.href=pagina+att+"nn="+(Math.random().toString()).substr(2); } function objData() { objData.b; objData.ding; objData.dita; } function data(s) /* accetta una stringa e la converte in data restituisce un oggetto .b booleano: true data valida, false data non valida .ding stringa: data in formato inglese #mm/gg/aaaa# .dita stringa: data in formato italiano gg/mm/aaaa se data vuota .ding stringa: "" .dita stringa: "" */ { var ngiorni = new Array(31,29,31,30,31,30,31,31,30,31,30,31) var b=true; if (s=="") { objData.b=b; objData.ding=""; objData.dita=""; return objData; } if (s.indexOf("/")==-1) { var giorno=s.substr(0,2); var mese=s.substr(2,2); var anno=s.substr(4); } else { var n=s.indexOf("/"); var giorno=s.substr(0,n); s=s.substr(n+1); n=s.indexOf("/"); var mese=s.substr(0,n); var anno=s.substr(n+1); } if (anno.length < 2 || anno.length >4) b=false; else { var anno_n=parseFloat(anno) if (isNaN(anno_n)) b=false; else { if (70 <= anno_n && anno_n <= 99) anno=1900+anno_n; else { if (anno.length==2) anno=2000+anno_n; } anno_n=parseFloat(anno); } } var mese_n=parseFloat(mese); if (isNaN(mese_n)) b=false; else { if (mese_n < 1 || mese_n > 12) b=false; else { if (mese_n<10) mese_n="0"+mese_n; var giorno_n=parseFloat(giorno); if (isNaN(giorno_n)) b=false; else { var anno_n=parseFloat(anno) var max_gg = max_mese(mese_n,anno_n); if (giorno_n < 1 || giorno_n > max_gg) b=false; if (giorno_n < 10) giorno_n="0"+giorno_n; } } } objData.b=b; objData.ding=mese_n+"/"+giorno_n+"/"+anno_n; objData.dita=giorno_n+"/"+mese_n+"/"+anno_n; return objData; } function max_mese(mese_n,anno_n) { if (mese_n==1 || mese_n==3 || mese_n==5 || mese_n==7 || mese_n==8 || mese_n==10 || mese_n==12) { return (31); }//then if (mese_n==4 || mese_n==6 || mese_n==9 || mese_n==11) { return (30); }//then if (mese_n==2) { if ((anno_n%100) == 0) if ((anno_n%100) == 0) { return (29); }//then2 else { return (28); }//else2 else if ((anno_n%4) == 0) { return (29); }//then3 else { return (28); }//else3 }//then1 else return (null); }//max_mese function vdata(s) { var ss=eval(s+".value"); var dataobj=data(ss); if (!dataobj.b) { alert("Data non valida!"); eval(s+".select()"); return dataobj; } else { eval(s+".value='"+dataobj.dita+"'"); return dataobj; } } ndec=4; function objToN() { objToN.b; objToN.n; objToN.sn; } function to_number(snum, nd) /* accetta numeri in formato 100'000,29 o altri senza segno di migliaia restituisce un oggetto .b = booleano, true se e' numero .n = float, numero convertito .sn=stringa, stringa in formato nd decimali e migliaia con ' */ { //tolgo ('.,) e controllo se e' numero snum=snum.toString(); ssnum=snum.replace(/'|,|\+|\./g,""); //controlla sep decimali ripetuto if (snum.indexOf(",")!=snum.lastIndexOf(",")) ssnum=""; //controlla se negativo var segno=1; if (snum.indexOf("-")==0) { segno=-1; ssnum=ssnum.substr(1); } //cerca altri caratteri alfanumerici if (ssnum.match("[^0-9]")!=null) ssnum=""; num=parseInt(ssnum); if (isNaN(num)) { //stringa o valore nullo objToN.b=false; objToN.sn=ssnum; objToN.n=null; } else { ssnum=snum.replace(/'|\.|\+/g,""); ssnum=ssnum.replace(/,/g,"."); var ssegno=""; if (snum.indexOf("-")==0) { ssnum=ssnum.substr(1); ssegno="-"; } num=Math.round(parseFloat(ssnum)*Math.pow(10,nd)); num=num/Math.pow(10,nd); objToN.n=num*segno; //in input: . separatore dei decimali ssnum=num.toString(); var n=ssnum.indexOf("."); if (n!=-1) { //decimale var sndec=ssnum.substr(n+1); sndec=sndec+"0000000000000000000000".substr(0,nd-sndec.length); //intero var snint=ssnum.substr(0,n); } else { //zeri come decimali var sndec="0000000000000000000000".substr(0,nd); //tutto intero senza punti di migliaia var snint=ssnum; } objToN.b=true; //segni di migliaia var str=snint; snint=""; while (str.length>3) { snint="."+str.substr(str.length-3)+snint; str=str.substr(0,str.length-3); } snint=str+snint; //aggiunge la virgola if (nd!=0) { sndec=","+sndec; } objToN.sn=ssegno+snint+sndec; } return objToN; } function vto_number(s, ndec) { var ss=eval(s+".value"); var nobj=to_number(ss,ndec); if (!nobj.b) { alert("Numero non valido!"); eval(s+".select()"); return nobj; } else { eval(s+".value='"+nobj.sn+"'"); return nobj; } } function cdbl(s) { s=s.toString(); s=s.replace(/\./g,""); s=s.replace(/,/g,"."); return parseFloat(s); } function cdbl_s(n,ndec) { s=n.toString(); s=s.replace(/\./g,","); return to_number(s,ndec).sn; }