function setDefaultPointer() { document.body.style.cursor="default"; var buttons = document.getElementsByTagName("INPUT"); for(i=0;i"; return result } function UnformatNumber(n) { nn = n.replace(/\./g,""); nn = nn.replace(/\,/g,"."); return nn; } function checkField(f){ // f deve essere un element HTML (input o altro) // non sono tutti necessariamente implementati var ok = 0; if (f.getAttribute("notCheck") == 1) return ok; var label = f.getAttribute("label"); var dataFormat = f.getAttribute("dataFormat"); var notNull = f.getAttribute("notNull"); // INPUT if (f.type == "text" || f.type == "hidden" || f.type == "file") { if (f.value.length == 0){ if (notNull == 1) return "Il campo " + label + " deve essere valorizzato"; else return ok; } if (f.value.length > f.maxLength && f.maxLength != -1) return "Il campo " + label + " deve avere una lunghezza massima di " + f.maxLength + " caratteri"; if (f.getAttribute("minLength") && f.value.length < parseFloat(f.getAttribute("minLength"))) return "Il campo " + label + " deve avere una lunghezza minima di " + f.getAttribute("minLength") + " caratteri"; switch (f.getAttribute("dataType")) { case "String": break; case "Number": //numero anche con decimali if (isNaN(UnformatNumber(f.value))) return -10; break; case "Integer": break; case "Date": if (dataFormat){ if (isDate(f.value,dataFormat)) return ok; else return "Il campo " + label + " deve essere inserito nel formato " + dataFormat; } else{ return "Formato data non definito"; } break; case "Digit": //stringa di soli numeri interi if(!isDigit(f.value)) return "Il campo " + label + " deve essere composto da caratteri numerici"; break; } } // TEXTAREA else if (f.type == "textarea"){ if (f.getAttribute("notNull") && f.value.length==0) return "Il campo " + label + " deve essere valorizzato"; if (f.value.length > f.maxLength && f.maxLength != -1) return "Il campo " + label + " deve avere una lunghezza massima di " + f.maxLength + " caratteri"; if (f.getAttribute("minLength") && f.value.length < f.minLength) return "Il campo " + label + " deve avere una lunghezza minima di " + f.getAttribute("minLength") + " caratteri"; } return ok; } function isAlphaNumeric(s){ if (s.value.match(/[a-zA-Z0-9]/g).length == s.value.length) return true; else return false; } function isDigit(s){ if (!s || !s.match(/[0-9]/g)) return false; if (s.match(/[0-9]/g).length == s.length) return true; else return false; } function isDate(d,formatType){ //formatType: 1 dd/mm/yyyy fff = formatType.toLowerCase(); switch (fff){ case "dd/mm/yyyy": dd = d.substr(0,2); mm = d.substr(3,2); yy = d.substr(6,4); break; default: return false; } if (!isDigit(dd)) return false; if (!isDigit(mm)) return false; if (!isDigit(yy)) return false; dddd = new Date(yy,mm-1,dd); yyy=dddd.getFullYear().toString(); mmm=(dddd.getMonth()+1).toString(); mmm=mmm.length==1?"0"+mmm:mmm ddd=dddd.getDate().toString(); ddd=ddd.length==1?"0"+ddd:ddd if (!(ddd==dd && mmm==mm && yyy==yy)) return false; else return true; } function toDate(d,formatType){ //formatType: 1 dd/mm/yyyy //in caso di errore ritorna undefined if (isDate(d,formatType)){ fff = formatType.toLowerCase(); switch (fff){ case "dd/mm/yyyy": dd = d.substr(0,2); mm = d.substr(3,2); yy = d.substr(6,4); break; default: return undefined; } return new Date(yy,mm-1,dd); } else{ return undefined; } } function getDate(f){ //dato un field f ritorna la Date relativa //in caso di errore ritorna undefined var label = f.getAttribute("label"); var dataFormat = f.getAttribute("dataFormat"); if (!dataFormat) return undefined; return toDate(f.value, dataFormat); } function checkNow(f){ //controlla se la data nel field f è superiore alla data odierna if (f.value.length == 0) return 0; var label = f.getAttribute("label"); d = getDate(f); if (d){ now = new Date(); if (d > now) return "La data " + label + " deve essere inferiore o uguale alla data odierna."; } else{ return "Errore nel campo " + label + "."; } return 0; } function checkDateDiff(f1, f2){ //controlla se la data f1 è <= alla data f2 var label1 = f1.getAttribute("label"); var label2 = f2.getAttribute("label"); d1 = getDate(f1); if (!d1) return 0; d2 = getDate(f2); if (!d2) return 0; if (d1 > d2) return label1 + " deve essere inferiore o uguale a " + label2 + "." return 0; } function checkDateBetween(f1, f2){ //controllo di due field data DA e A //return false se ok altrimenti il messaggio di errore //i field devono avere gli attributi label //il formato data è sempre lo stesso dateFormat = "dd/mm/yyyy"; label1 = f1.getAttribute("label"); label2 = f2.getAttribute("label"); d1 = toDate(f1.value, dateFormat); d2 = toDate(f2.value, dateFormat); if (!d1 && d2) return "Attenzione, il campo " + label1 + " deve essere valorizzato."; if (d1 && d2){ if (d1 > d2) return "Attenzione, " + label1 + " deve essere minore o uguale a " + label2 + "." } return false; } function composeDate(f,fD,fM,fY){ ok = 0; if(fD.value.length==0 || fM.value.length==0 || fY.value.length==0){ f.value = ""; return; } if(!isDigit(fD.value) || !isDigit(fM.value) || !isDigit(fY.value)){ f.value = ""; return; } dd=fD.value.length==1?"0"+fD.value:fD.value mm=fM.value.length==1?"0"+fM.value:fM.value if (fY.value<100) yy=parseFloat(fY.value)+2000; else if (fY.value<1000) yy=parseFloat(fY.value)+1000; else yy=fY.value; fD.value = dd; fM.value = mm; fY.value = yy; f.value = dd + "/" + mm + "/" + yy; } function setListVisibility(e,radioChecked){ for (i=0;i