browsername=navigator.appName; if(browsername.indexOf('Netscape')!=-1) {browsername='NS'} else{ if(browsername.indexOf('Microsoft')!=-1) {browsername='MSIE'} else {browsername='N/A'} } var form; var labels; function initForm(){ form = document.forms["F"]; labels = document.getElementsByTagName('LABEL'); for (var i = 0; i < labels.length; i++) { if (labels[i].htmlFor != '') { var elem = document.getElementById(labels[i].htmlFor); //segna l'elemento con la sua label if (elem && elem.getAttribute('richiesto')){ labels[i].setAttribute("class","richiesto"); elem.label = labels[i]; } } } return true; } var form_modified = false; function initForm2(){ $('.myElements').each(function() { var elem = $(this); elem.data('oldVal', elem.val()); elem.bind("propertychange change keyup input paste", function(event){ if (elem[0].type == 'radio' || elem[0].type == 'checkbox') { form_modified = true; } if (elem.data('oldVal') != elem.val()) { elem.data('oldVal', elem.val()); form_modified = true; } }); }); } function checkRequiredFields(){ var strError = ""; var firstField = ""; for (var index = 0; index < form.length; index++){ if (form.elements[index].getAttribute('richiesto')){ valore = form.elements[index].value; if (trimstring(valore) == ""){ firstField = (firstField == "") ? form.elements[index] : firstField; if (form.elements[index].label) // se l'elemento ha una label allora la label fieldName = form.elements[index].label.firstChild.nodeValue; else // altrimenti il nome dell'elemento fieldName = form.elements[index].name; strError += ((strError == "") ? " " : ", ") + fieldName + "\n"; } } } error_msg = "Valorizzare: " + strError + ""; if (strError != "") { parent.dhtmlx.alert({ title: "Attenzione", text: error_msg, ok : "Ok", callback: function() { firstField.focus(); } }); return false; } return true; } function checkMaxLength (textarea, evt, maxLength){ if (textarea.selected && evt.shiftKey) // ignore shift click for select return true; var allowKey = false; if (textarea.selected && textarea.selectedLength > 0) allowKey = true; else { if (browsername=='NS') var keyCode = evt.which; else var keyCode = evt.keyCode; if (keyCode < 32 && keyCode != 13) allowKey = true; else allowKey = textarea.value.length < maxLength; } textarea.selected = false; if ((browsername=='NS')&&(!allowKey)){ evt.preventDefault(); evt.returnValue = false; evt.stopPropagation(); return false; } return allowKey; } function numInt(campo){ if (!campo.value) return ''; var returnValue = parseInt(campo.value); if(isNaN(returnValue)){ parent.dhtmlx.alert({ title: "Attenzione", text: "Inserire un valore numerico intero!", ok : "Ok", callback: function() { if (browsername=='NS'){ globalvar = campo; setTimeout("globalvar.focus()",0); } else campo.focus(); } }); return 0; } return returnValue; } function numInt4(campo){ if (!campo.value) return ''; var returnValue = parseInt(campo.value); if (isNaN(campo.value) || parseInt(campo.value)<=0 || !isInt(campo.value) ){ parent.dhtmlx.alert({ title: "Attenzione", text: "Inserire un valore positivo intero!", ok : "Ok", callback: function() { if (browsername=='NS'){ globalvar = campo; setTimeout("globalvar.focus()",0); } else campo.focus(); } }); return ''; } return returnValue; } function numInt2(campo){ if (!campo.value) return ''; var returnValue = parseInt(campo.value); if(isNaN(returnValue)){ if (browsername=='NS'){ globalvar = campo; setTimeout("globalvar.focus()",0); } else campo.focus(); return false; } return true; } function isInt(n) { return n % 1 == 0; } function intOdec(campo) { var n = parseFloat(campo.value); if ( n % 1 == 0) formatta_input(campo,0); else formatta_input(campo,2); } function intOdec2(campo) { var n = parseFloat(campo); if ( n % 1 == 0) return number_format(campo, 0, "," , "."); else return number_format(campo, 2, "," , "."); } function numReal(campo){ var contenuto = campo.value; contenuto2 = parseFloat(contenuto); if (contenuto!=contenuto2){ parent.dhtmlx.alert({ title: "Attenzione", text: "Inserire un valore numerico corretto!", ok : "Ok", callback: function() { if (browsername=='NS'){ globalvar = campo; setTimeout("globalvar.focus()",0); } else campo.focus(); } }); return ''; } return contenuto; } function numInt3(campo){ if (!campo.value) return ''; var orig = campo.value; // while (campo.value.charAt(0) == '0') // campo.value = campo.value.substring(1, campo.value.length); if (isNaN(campo.value) || parseInt(campo.value)<0 || !isInt(campo.value) ){ parent.dhtmlx.alert({ title: "Attenzione", text: "Inserire un numero intero!", ok : "Ok", callback: function() { if (browsername=='NS'){ globalvar = campo; setTimeout("globalvar.focus()",0); } else campo.focus(); } }); return '0'; } return orig; } function checkdate(objName){ if(objName.value.length==0) return true; if(chkdate(objName) == false){ parent.dhtmlx.alert({ title: "Attenzione", text: "Inserire la data nel formato gg/mm/aaaa!", ok : "Ok", callback: function() { objName.value=''; if (browsername=='NS'){ globalvar = objName; setTimeout("globalvar.focus()",0); } else objName.focus(); } }); return false; } else return true; } function chkdate(objName){ var strDatestyle = "EU"; //European date style var strDate; var strDateArray; var strDay; var strMonth; var strYear; var intday; var intMonth; var intYear; var booFound = false; var datefield = objName; var strSeparatorArray = new Array("-"," ","/","."); var intElementNr; var err = 0; var strMonthArray = new Array(12); strMonthArray[0] = "01"; strMonthArray[1] = "02"; strMonthArray[2] = "03"; strMonthArray[3] = "04"; strMonthArray[4] = "05"; strMonthArray[5] = "06"; strMonthArray[6] = "07"; strMonthArray[7] = "08"; strMonthArray[8] = "09"; strMonthArray[9] = "10"; strMonthArray[10] = "11"; strMonthArray[11] = "12"; strDate = datefield.value; if (strDate.length < 1) { err = 11; return false; } if (strDate.length < 6) { err = 11; return false; } for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) { if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) { strDateArray = strDate.split(strSeparatorArray[intElementNr]); if (strDateArray.length != 3) {err = 1;return false;} else { strDay = strDateArray[0]; strMonth = strDateArray[1]; strYear = strDateArray[2]; } booFound = true; } } if (booFound == false) { if (strDate.length > 5) { strDay = strDate.substr(0, 2); strMonth = strDate.substr(2, 2); strYear = strDate.substr(4); } } // if (strYear.length == 2) {strYear = '20' + strYear;} if (strDay.length == 1) {strDay = '0' + strDay;} // US style if (strDatestyle == "US") {strTemp = strDay;strDay = strMonth;strMonth = strTemp;} intday = parseInt(strDay, 10); if (isNaN(intday)) {err = 2;return false;} intMonth = parseInt(strMonth, 10); if (isNaN(intMonth)) { for (i = 0;i<12;i++) { if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) { intMonth = i+1; strMonth = strMonthArray[i]; i = 12; } } if (isNaN(intMonth)) {err = 3;return false;} } intYear = parseInt(strYear, 10); if (intYear < 1000) {err = 15;return false;} if (intYear > 3000) {err = 15;return false;} if (isNaN(intYear)) {err = 4;return false;} if (intMonth>12 || intMonth<1) {err = 5;return false;} if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {err = 6;return false;} if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {err = 7;return false;} if (intMonth == 2) { if (intday < 1) {err = 8;return false;} if (LeapYear(intYear) == true) {if (intday > 29) {err = 9;return false;}} else { if (intday > 28) {err = 10;return false;}} } if (strDatestyle == "US") { datefield.value = strMonthArray[intMonth-1] + " " + intday+" " + strYear; } else { datefield.value = strDay + "/" + strMonthArray[intMonth-1] + "/" + strYear; } return true; } function LeapYear(intYear){ if(intYear % 100 == 0){ if(intYear % 400 == 0){ return true; } } else{ if((intYear % 4) == 0){ return true; } } return false; } function disabilitaCampi(form){ for(i=0; i < form.elements.length; i++) { if(form.elements[i].type == 'text') form.elements[i].readOnly=true; if(form.elements[i].type == 'textarea') form.elements[i].readOnly=true; if(form.elements[i].type == 'password') form.elements[i].disabled=true; if(form.elements[i].type == 'select-one') form.elements[i].disabled=true; if(form.elements[i].type == 'radio') form.elements[i].disabled=true; if(form.elements[i].type == 'checkbox') form.elements[i].disabled=true; if(form.elements[i].type == 'image') form.elements[i].disabled=true; } } //******************************************************************** //********** FUNZIONI PER I CALCOLI NUMERICI CON JAVASCRIPT ********** //******************************************************************** function adattaValori(Val,Msg){ var returnValue = ""; //********* verifica se è già in formato numeroComputer ******** var NumComp=0; var NumDec=0; for(var i=0; i 0) NumDec++; if(digit == ".") NumComp++; returnValue+=digit; } else{ NumComp=-100; NumDec=-100; } }//end for if(NumDec == 1 || NumDec == 2) return returnValue; returnValue = ""; //************************************************************** for(var i=0; i NON CONSIDERIAMO I DECIMALI ***** //***** d = 1 => CONSIDERIAMO I DECIMALI ***** var d = 1; tempNumber = Math.round(Value * 100); var segno=0; if(tempNumber < 0){ segno=1; tempNumber*=-1; } if(tempNumber < 10) tempString = "00" + tempNumber; else if(tempNumber < 100) tempString = "0" + tempNumber; else tempString = "" + tempNumber; if(tempString.length > 15){ // alert ("IMPOSSIBILE ELABORARE NUMERI > DI 9999 MILIARDI"); parent.dhtmlx.alert({ title: "Attenzione", text: "IMPOSSIBILE ELABORARE NUMERI > DI 9999 MILIARDI", ok : "Ok", callback: function() { if (browsername=='NS'){ globalvar = EL; setTimeout("globalvar.focus()",0); } else EL.focus(); } }); return 0; } if(tempString.length > 5){ //Devo inserire almeno un punto if(tempString.length == 6){ returnString = tempString.substring(0,1) + "." + tempString.substring(1,tempString.length-2); } else if(tempString.length == 7){ returnString = tempString.substring(0,2) + "." + tempString.substring(2,tempString.length-2); } else if(tempString.length == 8){ returnString = tempString.substring(0,3) + "." + tempString.substring(3,tempString.length-2); } else if(tempString.length == 9){ //Devo inserire 2 punti returnString = tempString.substring(0,1) + "."; returnString+= tempString.substring(1,4) + "." + tempString.substring(4,tempString.length-2); } else if(tempString.length == 10){ //Devo inserire 2 virgole returnString = tempString.substring(0,2) + "."; returnString+= tempString.substring(2,5) + "." + tempString.substring(5,tempString.length-2); } else if(tempString.length == 11){ //Devo inserire 2 virgole returnString = tempString.substring(0,3) + "."; returnString+= tempString.substring(3,6) + "." + tempString.substring(6,tempString.length-2); } else if(tempString.length == 12){ //Devo inserire 3 punti returnString = tempString.substring(0,1) + "."; returnString+= tempString.substring(1,4) + "."; returnString+= tempString.substring(4,7) + "." + tempString.substring(7,tempString.length-2); } else if(tempString.length == 13){ //Devo inserire 3 punti returnString = tempString.substring(0,2) + "."; returnString+= tempString.substring(2,5) + "."; returnString+= tempString.substring(5,8) + "." + tempString.substring(8,tempString.length-2); } else if(tempString.length == 14){ //Devo inserire 3 punti returnString = tempString.substring(0,3) + "."; returnString+= tempString.substring(3,6) + "."; returnString+= tempString.substring(6,9) + "." + tempString.substring(9,tempString.length-2); } else if(tempString.length == 15){ //Devo inserire 4 punti returnString = tempString.substring(0,1) + "."; returnString+= tempString.substring(1,4) + "."; returnString+= tempString.substring(4,7) + "."; returnString+= tempString.substring(7,10) + "." + tempString.substring(10,tempString.length-2); } }//END IF else{ // Non sono necessari i punti returnString = tempString.substring(0,(tempString.length-2)); } // aggiunge i decimali if(d == 1) returnString+= "," + tempString.substring(tempString.length-2,tempString.length); if(segno==1) returnString="-"+returnString; return returnString ; } function Formatta2(EL){ var Val = EL.value; var Value = adattaValori(Val,1); if(!Value){ if (browsername=='NS'){ globalvar = EL; setTimeout("globalvar.focus()",0); } else EL.focus(); return 0; } var returnString = ""; var tempNumber = 0; var tempString = ""; //***** d = 0 => NON CONSIDERIAMO I DECIMALI ***** //***** d = 1 => CONSIDERIAMO I DECIMALI ***** var d = 0; tempNumber = Math.round(Value * 100); if(tempNumber < 10) tempString = "00" + tempNumber; else if(tempNumber < 100) tempString = "0" + tempNumber; else tempString = "" + tempNumber; if(tempString.length > 14){ // alert("IMPOSSIBILE ELABORARE NUMERI > DI 999 MILIARDI"); parent.dhtmlx.alert({ title: "Attenzione", text: "IMPOSSIBILE ELABORARE NUMERI > DI 999 MILIARDI!", ok : "Ok", callback: function() { if (browsername=='NS'){ globalvar = EL; setTimeout("globalvar.focus()",0); } else EL.focus(); } }); return 0; } if(tempString.length > 5){ //Devo inserire almeno un punto if(tempString.length == 6){ returnString = tempString.substring(0,1) + "." + tempString.substring(1,tempString.length-2); } else if(tempString.length == 7){ returnString = tempString.substring(0,2) + "." + tempString.substring(2,tempString.length-2); } else if(tempString.length == 8){ returnString = tempString.substring(0,3) + "." + tempString.substring(3,tempString.length-2); } else if(tempString.length == 9){ //Devo inserire 2 punti returnString = tempString.substring(0,1) + "."; returnString+= tempString.substring(1,4) + "." + tempString.substring(4,tempString.length-2); } else if(tempString.length == 10){ //Devo inserire 2 virgole returnString = tempString.substring(0,2) + "."; returnString+= tempString.substring(2,5) + "." + tempString.substring(5,tempString.length-2); } else if(tempString.length == 11){ //Devo inserire 2 virgole returnString = tempString.substring(0,3) + "."; returnString+= tempString.substring(3,6) + "." + tempString.substring(6,tempString.length-2); } else if(tempString.length == 12){ //Devo inserire 3 punti returnString = tempString.substring(0,1) + "."; returnString+= tempString.substring(1,4) + "."; returnString+= tempString.substring(4,7) + "." + tempString.substring(7,tempString.length-2); } else if(tempString.length == 13){ //Devo inserire 3 punti returnString = tempString.substring(0,2) + "."; returnString+= tempString.substring(2,5) + "."; returnString+= tempString.substring(5,8) + "." + tempString.substring(8,tempString.length-2); } else if(tempString.length == 14){ //Devo inserire 3 punti returnString = tempString.substring(0,3) + "."; returnString+= tempString.substring(3,6) + "."; returnString+= tempString.substring(6,9) + "." + tempString.substring(9,tempString.length-2); } }//END IF else{ // Non sono necessari i punti returnString = tempString.substring(0,(tempString.length-2)); } // aggiunge i decimali if(d == 1) returnString+= "," + tempString.substring(tempString.length-2,tempString.length); return returnString ; } function arro2(x){ x=Math.round(x*100)/100; return x; } function disattiva(f) { for (i=0; i < f.elements.length; i++) if ((f.elements[i].type == 'button')||(f.elements[i].type == 'submit')) f.elements[i].disabled=true; } function confronta(d1,d2,Msg){ if (!d1.value) return true; var now = d1.value; var giorno = now.substring(0,2); var mese = now.substring(3,5); var anno = now.substring(6,10); var now1 = d2.value; var giorno1 = now1.substring(0,2); var mese1 = now1.substring(3,5); var anno1 = now1.substring(6,10); if(anno < anno1) { if(Msg == 1) parent.dhtmlx.alert({ title: "Attenzione", text: "Inserire data superiore alla precedente!", ok : "Ok", callback: function() { d1.value=d2.value; if (browsername=='NS'){ globalvar = d1; setTimeout("globalvar.focus()",0); } else d1.focus(); } }); return false; } else { if(anno == anno1) { if(mese < mese1) { if(Msg == 1) parent.dhtmlx.alert({ title: "Attenzione", text: "Inserire data superiore alla precedente!", ok : "Ok", callback: function() { d1.value=d2.value; if (browsername=='NS'){ globalvar = d1; setTimeout("globalvar.focus()",0); } else d1.focus(); } }); return false; } else { if(mese == mese1) { if(giorno < giorno1) { if(Msg == 1) parent.dhtmlx.alert({ title: "Attenzione", text: "Inserire data superiore alla precedente!", ok : "Ok", callback: function() { d1.value=d2.value; if (browsername=='NS'){ globalvar = d1; setTimeout("globalvar.focus()",0); } else d1.focus(); } }); return false; } } } } } return true; } function confronta2(d1,d2,Msg){ if (!d1.value) return true; if (!d2.value) return true; if (d2.value=='0') return true; var now = d1.value; var giorno = now.substring(0,2); var mese = now.substring(3,5); var anno = now.substring(6,10); var now1 = d2.value; var giorno1 = now1.substring(0,2); var mese1 = now1.substring(3,5); var anno1 = now1.substring(6,10); if(anno > anno1) { if(Msg == 1) parent.dhtmlx.alert({ title: "Attenzione", text: "Inserire data inferiore alla successiva!", ok : "Ok", callback: function() { d1.value=d2.value; if (browsername=='NS'){ globalvar = d1; setTimeout("globalvar.focus()",0); } else d1.focus(); } }); return false; } else { if(anno == anno1) { if(mese > mese1) { if(Msg == 1) parent.dhtmlx.alert({ title: "Attenzione", text: "Inserire data inferiore alla successiva!", ok : "Ok", callback: function() { d1.value=d2.value; if (browsername=='NS'){ globalvar = d1; setTimeout("globalvar.focus()",0); } else d1.focus(); } }); return false; } else { if(mese == mese1) { if(giorno > giorno1) { if(Msg == 1) parent.dhtmlx.alert({ title: "Attenzione", text: "Inserire data inferiore alla successiva!", ok : "Ok", callback: function() { d1.value=d2.value; if (browsername=='NS'){ globalvar = d1; setTimeout("globalvar.focus()",0); } else d1.focus(); } }); return false; } } } } } return true; } function confronta3(d1,d2,Msg){ if (!d1.value) return true; if (!d2.value) return true; if (d2.value=='0') return true; var now = d1.value; var giorno = now.substring(0,2); var mese = now.substring(3,5); var anno = now.substring(6,10); var now1 = d2.value; var giorno1 = now1.substring(0,2); var mese1 = now1.substring(3,5); var anno1 = now1.substring(6,10); if(anno > anno1) { if(Msg == 1) parent.dhtmlx.alert({ title: "Attenzione", text: "Inserire data NON superiore a OGGI!", ok : "Ok", callback: function() { d1.value=d2.value; if (browsername=='NS'){ globalvar = d1; setTimeout("globalvar.focus()",0); } else d1.focus(); } }); return false; } else { if(anno == anno1) { if(mese > mese1) { if(Msg == 1) parent.dhtmlx.alert({ title: "Attenzione", text: "Inserire data NON superiore a OGGI!", ok : "Ok", callback: function() { d1.value=d2.value; if (browsername=='NS'){ globalvar = d1; setTimeout("globalvar.focus()",0); } else d1.focus(); } }); return false; } else { if(mese == mese1) { if(giorno > giorno1) { if(Msg == 1) parent.dhtmlx.alert({ title: "Attenzione", text: "Inserire data NON superiore a OGGI!", ok : "Ok", callback: function() { d1.value=d2.value; if (browsername=='NS'){ globalvar = d1; setTimeout("globalvar.focus()",0); } else d1.focus(); } }); return false; } } } } } return true; } function DateDiff(d1,d2){ var fromArray = d1.value.split('/'); fromdate = new Date( fromArray[2], fromArray[1]-1, fromArray[0]); var toArray = d2.value.split('/'); todate = new Date( toArray[2], toArray[1]-1, toArray[0]); var date_diff = Math.abs(todate - fromdate)/86400000; return date_diff; //differenza in giorni fra d2 e d1 } function DateDiffNoABS(d1,d2){ var d1Data = d1.value.split(' '); //elimino ora se cè var d2Data = d2.value.split(' '); //elimino ora se cè var fromArray = d1Data[0].split('/'); fromdate = new Date( fromArray[2], fromArray[1]-1, fromArray[0]); var toArray = d2Data[0].split('/'); todate = new Date( toArray[2], toArray[1]-1, toArray[0]); var date_diff = (todate - fromdate)/86400000; return date_diff; //differenza in giorni fra d2 e d1 } function DateOraDiffNoABS(d1,d2){ var d1Data = d1.value.split(' '); var d2Data = d2.value.split(' '); var d1ORA = d1Data[1].split(':'); var d2ORA = d2Data[1].split(':'); var fromArray = d1Data[0].split('/'); fromdate = new Date( fromArray[2], fromArray[1]-1, fromArray[0], d1ORA[0] , d1ORA[1]); var toArray = d2Data[0].split('/'); todate = new Date( toArray[2], toArray[1]-1, toArray[0], d2ORA[0] , d2ORA[1]); var date_diff = (todate - fromdate) / 1000 / 3600; //in hours return date_diff; //differenza in giorni fra d2 e d1 } function DateAddMese(d1,mese){ var fromArray = d1.value.split('/'); var dts = new Date( fromArray[2], fromArray[1]-1, fromArray[0]); // anno mese giorno var n = dts.getDate(); //giorno della data dts.setDate(1); //setto il giorno al primo del mese dts.setMonth(dts.getMonth() + mese); //sommo i mesi dts.setDate(Math.min(n, GetMonthDays(dts.getFullYear(),dts.getMonth()))); //setto il giorno al giorno n //o al massimo giorno del mese se il giorno lo supera return dts; } function GetMonthDays(year, month) { if (LeapYear(year) == true) var g=29; else var g=28; return[31,g,31,30,31,30,31,31,30,31,30,31][month]; } function sepOra(El){ var num = El.value.length; if (num == 2) { El.value = El.value + ":";} } function convalidaOra(El,tipo){ if (El.value=='') return; var pattern = /^([01]\d|2[0-3]):([0-5]\d)$/; if (El.value.search(pattern) == -1) { if (tipo==0) { alert("Orario non corretto."); El.value=''; El.focus(); } if (tipo==1) parent.dhtmlx.alert({ title: "Attenzione", text: "Orario non corretto.!", ok : "Ok", callback: function() { El.value=''; El.focus(); } }); } return true; } function convalidaOra2(El){ if (El=='') return; var pattern = /^([01]\d|2[0-3]):([0-5]\d)$/; if (El.search(pattern) == -1) { return false } return true; } function convalidaDate2(date) { if (date=='') return; var matches = /^(\d{2})[.-\/](\d{2})[.-\/](\d{4})$/.exec(date); if (matches == null) return false; var d = matches[1]; var m = matches[2]-1; var y = matches[3]; var composedDate = new Date(y, m, d); return composedDate.getDate() == d && composedDate.getMonth() == m && composedDate.getFullYear() == y; } function checkdateOra(dataOra,mask,formatomask) { var sup = dataOra.value.split(' '); var data = sup[0]; var ora = sup[1]; if (data=='__/__/____') return; if (!convalidaDate2(data)) { parent.dhtmlx.alert({ title: "Attenzione", text: "Data non corretta.", ok : "Ok", callback: function() { if (mask==1) $(dataOra).unmask(); dataOra.value=''; if (mask==1) $(dataOra).mask(formatomask); dataOra.focus(); } }); return false; } if (typeof ora === 'undefined') return true; if (!ora) return true; if (!convalidaOra2(ora)) { parent.dhtmlx.alert({ title: "Attenzione", text: "Orario non corretto.", ok : "Ok", callback: function() { if (mask==1) $(dataOra).unmask(); dataOra.value=''; if (mask==1) $(dataOra).mask(formatomask); dataOra.focus(); } }); return false; } return true; } function convalidaDate(date) { if (date=='') return true; var matches = /^(\d{2})[.-\/](\d{2})[.-\/](\d{4})$/.exec(date); if (matches == null) return false; var d = matches[1]; var m = matches[2]-1; var y = matches[3]; var composedDate = new Date(y, m, d); return composedDate.getDate() == d && composedDate.getMonth() == m && composedDate.getFullYear() == y; } function emailCheck(emailStr) { if (emailStr=='') return true; var emailPat = /^(.+)@(.+)$/; var specialChars = "\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"; var validChars = "[^\\s" + specialChars + "]"; var quotedUser = "(\"[^\"]*\")"; var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/; var atom = validChars + "+"; var word = "(" + atom + "|" + quotedUser + ")"; var userPat = new RegExp("^" + word + "(\\." + word + ")*$"); var domainPat = new RegExp("^" + atom + "(\\." + atom + ")*$"); var matchArray = emailStr.match(emailPat); if (matchArray == null) { parent.dhtmlx.alert("L'email sembra essere sbagliata: (controlla @ e .)", "Attenzione"); return false; } var user = matchArray[1]; var domain = matchArray[2]; if (user.match(userPat) == null) { parent.dhtmlx.alert("La parte dell'email prima di '@' non sembra essere valida!" , "Attenzione"); return false; } var IPArray = domain.match(ipDomainPat); if (IPArray != null) { for (var i = 1; i <= 4; i++) { if (IPArray[i] > 255) { parent.dhtmlx.alert("L'IP di destinazione non è valido!" , "Attenzione"); return false; } } return true; } var domainArray = domain.match(domainPat); if (domainArray == null) { parent.dhtmlx.alert("La parte dell'email dopo '@' non sembra essere valida!" , "Attenzione"); return false; } var atomPat = new RegExp(atom, "g"); var domArr = domain.match(atomPat); var len = domArr.length; if (domArr[domArr.length - 1].length < 2 || domArr[domArr.length - 1].length > 6) { parent.dhtmlx.alert("Il dominio di primo livello (es: .com e .it) non sembra essere valido!" , "Attenzione"); return false; } if (len < 2) { var errStr = "L'indirizzo e-mail manca del dominio!"; parent.dhtmlx.alert(errStr , "Attenzione"); return false; } return true; } // End --> function getCheckedValue(radioObj) { if(!radioObj) return ""; var radioLength = radioObj.length; if(radioLength == undefined) if(radioObj.checked) return radioObj.value; else return ""; for(var i = 0; i < radioLength; i++) { if(radioObj[i].checked) { return radioObj[i].value; } } return ""; } function ControllaPIVA(pi){ if(pi==''){ return ''; } if(pi.length != 11){ return "La lunghezza della partita IVA non è
corretta: la partita IVA dovrebbe essere lunga
esattamente 11 caratteri."; } validi = "0123456789"; for(i = 0; i < 11; i++ ){ if(validi.indexOf( pi.charAt(i) ) == -1) return "La partita IVA contiene un carattere non valido
I caratteri validi sono le cifre."; } s=0; for(i = 0; i <= 9; i += 2){ s += pi.charCodeAt(i) - '0'.charCodeAt(0); } for(i = 1; i <= 9; i += 2){ c = 2*( pi.charCodeAt(i) - '0'.charCodeAt(0) ); if( c > 9 ) c = c - 9; s += c; } if((10 - s%10 )%10 != pi.charCodeAt(10) - '0'.charCodeAt(0)){ return "La partita IVA non è valida:
il codice di controllo non corrisponde."; } return ''; } function number_format (number, decimals, dec_point, thousands_sep) { number = (number + '').replace(/[^0-9+\-Ee.]/g, ''); var n = !isFinite(+number) ? 0 : +number, prec = !isFinite(+decimals) ? 0 : Math.abs(decimals), sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep, dec = (typeof dec_point === 'undefined') ? '.' : dec_point, s = '', toFixedFix = function (n, prec) { var k = Math.pow(10, prec); return '' + Math.round(n * k) / k; }; // Fix for IE parseFloat(0.55).toFixed(0) = 0; s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.'); if (s[0].length > 3) { s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep); } if ((s[1] || '').length < prec) { s[1] = s[1] || ''; s[1] += new Array(prec - s[1].length + 1).join('0'); } return s.join(dec); } function formatta_input(campo,d,parametroFacoltativo,parIntOdec,parametroFacoltativo2) { //********* verifica caso x.xxx lo trasformo in x.xxx,00 ******** var returnValue = ""; var Val=campo.value; var NumComp=0; var NumDec=0; for(var i=0; i 0) NumDec++; if(digit == ".") NumComp++; returnValue+=digit; } else{ NumComp=-100; NumDec=-100; } }//end for if(NumDec == 3) {returnValue+=',00'; campo.value=returnValue; return; } //************************************************************** var contenuto = campo.value; var numerocomputer = parseFloat(campo.value); if((parametroFacoltativo=='siNull' || parametroFacoltativo2=='siNull') && contenuto=='') { return true; } if (numerocomputer == campo.value); //il numero è in formato computer else { contenuto = contenuto.replace(/\./g, ""); //espressione regolare tolgo i punti contenuto = contenuto.replace(/,/g, "."); //espressione regolare trasformo virgola in punto } contenuto2 = parseFloat(contenuto); if (contenuto!=contenuto2){ parent.dhtmlx.alert({ title: "Attenzione", text: "Inserire un valore numerico corretto!", ok : "Ok", callback: function() { campo.value = 0; if (browsername=='NS'){ globalvar = campo; setTimeout("globalvar.focus()",0); } else campo.focus(); } }); return false; } if (parametroFacoltativo=='soloPositivi'){ if (contenuto < 0){ parent.dhtmlx.alert({ title: "Attenzione", text: "Inserire un valore numerico positivo!", ok : "Ok", callback: function() { campo.value = 0; if (browsername=='NS'){ globalvar = campo; setTimeout("globalvar.focus()",0); } else campo.focus(); } }); return false; } } if (parametroFacoltativo=='soloPositiviNozero'){ if (contenuto <= 0){ parent.dhtmlx.alert({ title: "Attenzione", text: "Inserire un valore numerico positivo!", ok : "Ok", callback: function() { campo.value = ''; if (browsername=='NS'){ globalvar = campo; setTimeout("globalvar.focus()",0); } else campo.focus(); } }); return false; } } if (parIntOdec==1) { if ( contenuto2 % 1 == 0) campo.value = number_format(contenuto2, 0, "," , "."); else campo.value = number_format(contenuto2, d, "," , "."); return true; } campo.value = number_format(contenuto2, d, "," , "."); return true; } function trim(str){ if (!str) return str; return str.replace(/^\s+|\s+$/g,""); } function trimstring(str){ if (str.trim) return str.trim() else return str.replace(/(^\s*)|(\s*$)/g, "") //find and remove spaces from left and right hand side of string } var STR_PAD_LEFT = 1; var STR_PAD_RIGHT = 2; var STR_PAD_BOTH = 3; function pad(str, len, pad, dir) { if (typeof(len) == "undefined") { var len = 0; } if (typeof(pad) == "undefined") { var pad = ' '; } if (typeof(dir) == "undefined") { var dir = STR_PAD_RIGHT; } if (len + 1 >= str.length) { switch (dir){ case STR_PAD_LEFT: str = Array(len + 1 - str.length).join(pad) + str; break; case STR_PAD_BOTH: var right = Math.ceil((padlen = len - str.length) / 2); var left = padlen - right; str = Array(left+1).join(pad) + str + Array(right+1).join(pad); break; default: str = str + Array(len + 1 - str.length).join(pad); break; } // switch } return str; } function bytesToSize(bytes,precision){ var toFixedFix = function (n, prec) { var k = Math.pow(10, prec); return '' + Math.round(n * k) / k; }; if (!precision) precision=0; var kilobyte = 1024; var megabyte = kilobyte * 1024; var gigabyte = megabyte * 1024; var terabyte = gigabyte * 1024; if ((bytes >= 0) && (bytes < kilobyte)) { return bytes + ' B'; } else if ((bytes >= kilobyte) && (bytes < megabyte)) { return toFixedFix(bytes / kilobyte, precision) + ' KB'; } else if ((bytes >= megabyte) && (bytes < gigabyte)) { return toFixedFix(bytes / megabyte, precision) + ' MB'; } else if ((bytes >= gigabyte) && (bytes < terabyte)) { return toFixedFix(bytes / gigabyte, precision) + ' GB'; } else if (bytes >= terabyte) { return toFixedFix(bytes / terabyte, precision) + ' TB'; } else { return bytes + ' B'; } } function svuotawin(w) { if (w.getFrame()){ if (w.getFrame().contentWindow.dhxWins) w.getFrame().contentWindow.dhxWins.unload(); } } function keyDown(e) { if (browsername == "NS") { var element = e.target.nodeName.toLowerCase(); var nKey=e.which; if (nKey == 116) { e.cancelBubble=true; e.returnValue = false; return false } if (nKey == 8) { if ((element != 'input' && element != 'textarea')) { //sul nic editor abilito il tasto indietro per cancellare var className = trimstring(e.target.className); var nospace = className.replace(/ /g, ''); if (nospace=='nicEdit-mainnicEdit-selected') ; else { e.cancelBubble=true; e.returnValue = false; return false } } else if (element == 'input' || element == 'textarea'){ var readOnly = e.target.readOnly ; if(readOnly){ e.cancelBubble=true; e.returnValue = false; return false } } } } if (browsername == "MSIE") { var element = event.srcElement.tagName.toLowerCase(); var ieKey=event.keyCode; if (ieKey == 116){ event.keyCode=0; window.event.cancelBubble=true; window.event.returnValue = false; return false } if (ieKey == 8){ if ((element != 'input' && element != 'textarea')) { //sul nic editor abilito il tasto indietro per cancellare var className = trimstring(event.srcElement.className); var nospace = className.replace(/ /g, ''); if (nospace=='nicEdit-mainnicEdit-selected') ; else { event.keyCode=0; window.event.cancelBubble=true; window.event.returnValue = false; return false } } else if (element == 'input' || element == 'textarea'){ var readOnly = event.srcElement.readOnly ; if(readOnly){ event.keyCode=0; window.event.cancelBubble=true; window.event.returnValue = false; return false } } } } } document.onkeydown = keyDown