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