//Funzione che blocca l'esecuzione della funzione che la chiama finché passa il tempofunction pause(numberMillis) {  var closeString = 'window.setTimeout(function () { window.close(); }, ' + numberMillis + ');';  //Il codice HTML da visualizzare dentro il dialog  var waitString = "<html><head><title>Attendere...</title></head><body bgcolor=#eceaea><table width=100% height=100% border=0><tr><td align=center valign=middle style=\"font-family:arial\">Attendere il caricamento del figlio ...</td></tr></table></body><script>"+closeString+"</script></html>";  var result  if(IsIE()) {    //Se volete che il dialog non si vede, usare la seguente riga    //result=window.showModalDialog('javascript:document.writeln("<script>' + closeString + '<' + '/script>")');    //Se volete che il dialog si vede, usare la seguente riga    result=window.showModalDialog("javascript:document.writeln('"+waitString+"')",null,"dialogHeight:50px;dialogWidth:320px;status:no;help:no");  }  else if(IsNetscape() || IsMozilla()) {    //It requires a trusted script.    //There isn't any way to stop code execution. The below row is wrong! missing ')' and openDialog function doesn't work fine.    //result=openDialog('javascript:document.writeln("<script>' + closeString + '<' + '/script>")', 'pauseDialog', 'modal=1,width=10,height=10');
  }}function checkAndLoadChild(childName) {  //Controllo se il figlio e caricato oppure no. Il tag iframe ha il nome del figlio in minuscolo  if(Eq(CtrlById(Lower(childName)).src,'')) {    //Se non è caricato, lo carico. La servlet è in minuscolo mentre per GetLinkPCKeys deve coincidere    CtrlById(Lower(childName)).src=Lower(childName)+'?m_bInnerChild=true'+GetLinkPCKeys(childName)    //Fermo l'esecuzione delle funzione per 1500 millsecondi    pause(1500);  }}// Notare che nell'elenco delle funzioni la Transform è comunque definita, // ma senza codice.function gasplib_Transform(nNumber, sPicture) {  return Format(nNumber, 0, 0, sPicture);}

//---Start function: AddDetailRow
function gasplib_AddDetailRow(aFields, aValues) {  /* Parametri:     aFields - Array contenente l'elenco dei Campi del Transitorio    aValues - Array contenente i valori di ciascun Campo              */  var i,gp,cHide;  gp=CtrlById('GridTable');  for (i = 0; i < aFields.length; i++) {    try {      window["Set_"+aFields[i]](aValues[i]);    }    catch (e) {      // Campo nascosto o calcolato (non è previsto il metodo Set_...)      cHide = "w_"+aFields[i];        window[cHide]=aValues[i];      Calculate();      SaveDependsOn();      SetControlsValue();      EnableControlsUnderCondition();    }  }  Calculate();  SaveDependsOn();  SetControlsValue();  EnableControlsUnderCondition();  Dataoperations('Add', gp);}
//---End function

//---Start function: AppendDetailRow
function gasplib_AppendDetailRow(AFields, AFieldValues) {  var res = false;  var newRowIndex = CtrlById('GridTable').rows.length - 1;  if ( ! gasplib_WriteDetailField(newRowIndex, AFields, AFieldValues)) return (false);  if ( ! ActivateNextRow(null,newRowIndex)) return (false);   /*  SetModified(false);  DoUpdate(true);  */  return(true);}
//---End function

//---Start function: AsciiToChar
function gasplib_AsciiToChar(nAscii) {   return Chr(nAscii);}
//---End function

//---Start function: ConvData
function gasplib_ConvData(data){  var gg = new String();  var mm = new String();  var aa = new String();  var risultato = new String();  aa = data.substr(0,4);  mm = data.substr(4,2);  gg = data.substr(6,2);  risultato = gg + "/" + mm + "/" + aa;  return(risultato);}
//---End function

//---Start function: DateDiff
function gasplib_DateDiff(ADate1, ADate2) {  var res = 0;  if ( ( typeof ADate1 == 'undefined' ) || ( typeof ADate2 == 'undefined' ))     return res;  if ( ( typeof ADate1 == 'object' ) && ( ADate1.constructor == Date ))     datDate1 = ADate1;  else     datDate1= Date.parse(ADate1);  if ( ( typeof ADate2 == 'object' ) && ( ADate2.constructor == Date ))     datDate2 = ADate2;  else     datDate2= Date.parse(ADate2);  res = ((datDate2-datDate1)/(24*60*60*1000))  return res;}
//---End function

//---Start function: Evaluator
function gasplib_Evaluator(AInstruction) {  var res = "";  eval(AInstruction);  return res;}
//---End function

//---Start function: FillArrayRows
function gasplib_FillArrayRows(AFromRow, AToRow, AColsName, AColsValues) {  if ( AToRow == -1 )     AToRow = m_oTrs.length;  for ( key=AFromRow; key<AToRow; key++ ) {    retVal = gasplib_WriteDetailFields(ARow, AColsName, AColsValues);  }}
//---End function

//---Start function: GetComboValue
function gasplib_GetComboValue(cCombo, xValue) {  var res = "";  switch (cCombo) {    case 'MRTSTAT':      // Stato Civile      switch (xValue){        case '01':            res = 'Celibe/Nubile';           break;        case '02':            res = 'Coniugato/a';           break;        case '03':            res = 'Vedovo/a';           break;        case '04':            res = 'Separato/a legalmente';           break;        case '05':            res = 'Divorziato/a';           break;        case '06':            res = 'Decetuto/a';           break;        case '07':            res = 'Tutelato/a';           break;        case '08':            res = 'Figlio/a minore';           break;        default:            res = 'Non comunicato';       }      break;    case 'TITLSTUD':      // Titolo di studio      switch (xValue){        case '01':            res = 'Nessuno';           break;        case '02':            res = 'Licenza elementare';           break;        case '03':            res = 'Licenza media';           break;        case '04':            res = 'Diploma';           break;        case '05':            res = 'Laurea';           break;        case '06':            res = 'Attestato';           break;        case '07':            res = 'Diploma post-laurea';           break;        default:            res = 'Non comunicato';       }      break;  }return res;}
//---End function

//---Start function: GetParentVariableDate
function gasplib_GetParentVariableDate( AVarName ) {var RetVal = new Date();var command;  if (( parent == null ) && ( opener == null ))    return null;  if ( parent != null )    op = parent;  if ( opener != null )    op = opener;  command = "RetVal = new Date('" + op[AVarName] + "');"  eval(command);  return(RetVal);}
//---End function

//---Start function: GetParentVariableNumber
function gasplib_GetParentVariableNumber(AVarName) {var RetVal = 0;var command;  if (( parent == null ) && ( opener == null ))    return null;  if ( parent != null )    op = parent;  if ( opener != null )    op = opener;  command = "RetVal = '" + op[AVarName] + "';";  eval(command);  return(RetVal);}
//---End function

//---Start function: GetParentVariableString
function gasplib_GetParentVariableString(AVarName) {  var RetVal;  var command;  if (( parent == null ) && ( opener == null ))    return null;  if ( parent != null )    op = parent;  if ( opener != null )    op = opener;  command = "RetVal = '" + op[AVarName] + "';";  eval(command);  return(RetVal);}
//---End function

//---Start function: GetSon
//ATTENZIONE: il nome del figlio che viene passato alla funzione deve identico a quello inserito nella pagina//            con i caratteri minuscoli e maiuscolifunction gasplib_GetSon(SonName) {  var RetVal;  var toEvaluate;  var command;  var theObj;  RetVal = null;  //Controllo il caricamento del figlio  checkAndLoadChild(SonName);  toEvaluate = "theObj = parent.frames.main.frames." + Lower(SonName);  eval (toEvaluate);  if ( ( typeof theObj == 'undefined' ) || ( theObj == null ) ){    toEvaluate = "theObj = m_o" + Lower(SonName);    eval(toEvaluate);    if ( ( typeof theObj == 'undefined' ) || ( theObj == null ) )      return( RetVal );    else {      return(theObj);    }  } else {      return(theObj);  }}
//---End function

//---Start function: GetSonVariable
//ATTENZIONE: il nome del figlio che viene passato alla funzione deve identico a quello inserito nella pagina//            con i caratteri minuscoli e maiuscolifunction gasplib_GetSonVariable(AVarName, SonName) {  var RetVal;  var toEvaluate;  var command;  var theObj;  RetVal = "";  //Controllo il caricamento del figlio  checkAndLoadChild(SonName);  // Test a iframe  toEvaluate = "theObj = parent.frames.main.frames." + Lower(SonName);  eval (toEvaluate);  if ( ( typeof theObj == 'undefined' ) || ( theObj == null ) ){    toEvaluate = "theObj = m_o" + Lower(SonName);    //alert(toEvaluate);    eval(toEvaluate);    //alert(theObj);    //alert("testing window... " + toEvaluate);    if ( ( typeof theObj == 'undefined' ) || ( theObj == null ) )      return( RetVal );    else {      //m_oTrs[0].ID      //alert("in window");      command = "RetVal = m_o" + Lower(SonName) + "." + AVarName;      //alert(command);      eval(command);      //alert(RetVal);      return(RetVal);    }  } else {    //alert("in frame");    command = "RetVal = " + theObj.name + "." + AVarName;    //alert(command);    eval(command);    //alert(RetVal);    return(RetVal);  }}
//---End function

//---Start function: GetSonVariableDate
//ATTENZIONE: il nome del figlio che viene passato alla funzione deve identico a quello inserito nella pagina//            con i caratteri minuscoli e maiuscolifunction gasplib_GetSonVariableDate(AVarName, SonName) {  var RetVal;  var toEvaluate;  var command;  var theObj;  var theval;  RetVal = new Date();  //Controllo il caricamento del figlio  checkAndLoadChild(SonName);  // Test a iframe  toEvaluate = "theObj = parent.frames.main.frames." + Lower(SonName);  eval (toEvaluate);  if ( ( typeof theObj == 'undefined' ) || ( theObj == null ) ){    toEvaluate = "theObj = m_o" + Lower(SonName);    //alert(toEvaluate);    eval(toEvaluate);    //alert(theObj);    //alert("testing window... " + toEvaluate);    if ( ( typeof theObj == 'undefined' ) || ( theObj == null ) )      return( RetVal );    else {      //m_oTrs[0].ID      //alert("in window");      command = "theval = m_o" + Lower(SonName) + "." + AVarName;      eval(command);      //alert(theval);      command = "RetVal = new Date('" + theval + "');"      //alert(command);      eval(command);      //alert(RetVal);      return(RetVal);    }  } else {    //alert("in frame");    command = "theval = " + theObj.name + "." + AVarName;    eval(command);    //alert(theval);    command = "RetVal = new Date('" + theval  + "');"    //alert(command);    eval(command);    //alert(RetVal);    return(RetVal);  }}
//---End function

//---Start function: GetSonVariableNumber
//ATTENZIONE: il nome del figlio che viene passato alla funzione deve identico a quello inserito nella pagina//            con i caratteri minuscoli e maiuscolifunction gasplib_GetSonVariableNumber(AVarName, SonName) {  var RetVal;  var toEvaluate;  var command;  var theObj;  RetVal = 0;  //Controllo il caricamento del figlio  checkAndLoadChild(SonName);  // Test a iframe  toEvaluate = "theObj = parent.frames.main.frames." + Lower(SonName);  eval (toEvaluate);  if ( ( typeof theObj == 'undefined' ) || ( theObj == null ) ){    toEvaluate = "theObj = m_o" + Lower(SonName);    //alert(toEvaluate);    eval(toEvaluate);    //alert(theObj);    //alert("testing window... " + toEvaluate);    if ( ( typeof theObj == 'undefined' ) || ( theObj == null ) )      return( RetVal );    else {      //m_oTrs[0].ID      //alert("in window");      command = "RetVal = m_o" + Lower(SonName) + "." + AVarName + "';"      //alert(command);      eval(command);      //alert(RetVal);      return(RetVal);    }  } else {    //alert("in frame");    command = "RetVal = " + theObj.name + "." + AVarName + ";"    //alert(command);    eval(command);    //alert(RetVal);    return(RetVal);  }}
//---End function

//---Start function: GetSonVariableString
//ATTENZIONE: il nome del figlio che viene passato alla funzione deve identico a quello inserito nella pagina//            con i caratteri minuscoli e maiuscolifunction gasplib_GetSonVariableString(AVarName, SonName) {  var RetVal="";  var toEvaluate;  var command;  var theObj;  //Controllo il caricamento del figlio  checkAndLoadChild(SonName);  toEvaluate = "theObj = parent.frames.main.frames." + Lower(SonName);  eval(toEvaluate);  if (( typeof theObj == 'undefined') || (theObj == null )){    toEvaluate = "theObj = m_o" + Lower(SonName);    eval(toEvaluate);    if ((typeof theObj=='undefined') || (theObj==null))      return(RetVal);    else {      command = "RetVal = m_o" + Lower(SonName) + "." + AVarName + "';"      eval(command);      return(RetVal);    }  } else {    command = "RetVal = " + theObj.name + "." + AVarName + ";"    eval(command);    return(RetVal);  }}
//---End function

//---Start function: LoadAccRow
function gasplib_LoadAccRow(cScheme) {  var RetVal = "X";  var Fields = new Array();  var Values = new Array();  var Dati = gasplib_ReadSQL('QLOADACCOUNT', cScheme);  var nRec = Dati.length;  // Campi da Passare  Fields[0] = 'CPROWORD';  Fields[1] = 'IDACCOUNT';  Fields[2] = 'VACREDITCUR';  Fields[3] = 'VADEBITCUR';  try {    for(var i=0; i<nRec; i++){      Values[0] = Val(Dati[i][0]);      Values[1] = Dati[i][1];      Values[2] = 0;      Values[3] = 0;      if(Dati[i][2]==1){        Values[2] = 1000;      }else{        Values[3] = 500;      }      gasplib_AddDetailRow(Fields, Values);      }  }  catch (e) {    RetVal="E";  }  return RetVal;}
//---End function

//---Start function: NewDate
function gasplib_NewDate(aDate, nDay) {   if (aDate==null) return aDate;   var d;   d=aDate.getTime();    return new Date(d+nDay*86400000);}
//---End function

//---Start function: NvlC
function gasplib_NvlC(sVar1, sVar2) {   if (sVar1!=null) return sVar1;   return sVar2;}
//---End function

//---Start function: NvlD
function gasplib_NvlD(aVar1, aVar2) {   if (aVar1!=null) return aVar1;   return aVar2;}
//---End function

//---Start function: NvlN
function gasplib_NvlN(nVar1, nVar2) {   if (nVar1!=null) return nVar1;   return nVar2;}
//---End function

//---Start function: PG
function gasplib_PG(nLen,nDec) {    return this.Picture(nLen,nDec,',');  }
//---End function

//---Start function: PS
function gasplib_PS(nLen,nDec) {    return this.Picture(nLen,nDec,',');  }
//---End function

//---Start function: Picture
function gasplib_Picture(nLen,nDec,cSep) {    var pict='';    // parte decimale    if (nDec > 0) {	    pict = '.';	    for(i = 0; i < nDec; i++) {		    pict = pict + '9';	    }    }    // parte intera    for(i = 0; i < (nLen-nDec); i++) {            if (i % 3 == 0 && i > 0) pict= cSep + pict      pict = '9'+pict;          }     return(pict);}
//---End function

//---Start function: ReadSQL
function gasplib_ReadSQL(cCmd, cParam) {  // Valorizzazione dei parametri  // cCmd: Nome della Visual Query da eseguire (Senza Suffisso)  // CParam: Stringa Elenco dei parametri da passare alla query  //         Indicare senza w_; se più di 1 separati da virgola; ''=Nessuno  var strparms='';  // Interpreta i Parametri per la VQuery  if(!Empty(cParam)) {    var aparms=cParam.split(',');    for(var i=0;i<aparms.length;i++){      if(Trim(aparms[i])!=''){        //prende i valori dai relativi textbox        get_par=URLenc(aparms[i]);        strparms+='&w_'+get_par+'='+CtrlByName(get_par).value;      }    }  }  // Istanzia l'Oggetto per la gestione delle richieste al Server  var url = new JSURL('../servlet/SQLDataProviderServer?rows=10000&startrow=0&sqlcmd='+URLenc(cCmd)+strparms,true);  // Invia la richiesta al Server (Ritorna un Array)  var output=url.Response();
  if (output != '')
  {
     output=eval(output);
     return output[1];
  }
  else
     return new Array();
  /*
  // Versione per SitePainter B52
  var p=output.indexOf('|||');  var s=output.substr(0,p);  output=output.substr(p+3);  var Fields=s.split('||');  var j;  for(j=0;j<Fields.length;j++){      Fields[j]=Fields[j].toLowerCase();  }  // Prepara un array dei soli dati estrapolati dalla Query  var Data=new Array();  p=output.indexOf('|||');  while(p!=-1){    s=output.substr(0,p);    output=output.substr(p+3);    Data[Data.length] = s.split('||');    p=output.indexOf('|||');  }  //Ritorna: Data= Array bidimensionale contenente il cursore della Query  //Data[Numero Record][Posizione Campo]  //Data.length: Ritorna il numero di record letti dalla query. 
  return Data;*/}
//---End function

//---Start function: RefreshSon
function gasplib_RefreshSon(ASonName) {var theObj;var toEvaluate;  theObj = gasplib_GetSon(ASonName);  if ( ( typeof theObj == 'undefined' ) || ( theObj == null ) ){    alert("La finestra " + ASonName + " non è presente!!!");  } else {    toEvaluate = "theObj.document.refresh();";    eval(toEvaluate);  }}
//---End function

//---Start function: SelectDeselectAll
function gasplib_SelectDeselectAll(cObjName, nValue) {  var l_nOldRow = m_nCurrentRow;  var Command;  SetControlsValue();  WorkToTrs();  m_nCurrentRow = 0;  TrsToWork();  SetControlsValue();  while (Lt(m_nCurrentRow,m_nRows+1)) {    Command = "Set_" + cObjName + "(" + nValue + ")";    eval(Command);    Command = "w_" + cObjName + "=" + nValue ;    eval(Command);    SetControlsValue();    WorkToTrs();    m_nCurrentRow = m_nCurrentRow + 1;    TrsToWork();    SetControlsValue();  }  m_nCurrentRow = l_nOldRow;  TrsToWork();  SetControlsValue();}
//---End function

//---Start function: SetDetailRowEditable
function gasplib_SetDetailRowEditable(ARow) {var maxIndexValue = Rows() - 1;var objTable = CtrlById('GridTable');  // Se non si è in stato di edit o di insert (rispetto al documento intero, non alla  // singola riga) esce con false.  if ( Ne(m_cFunction,'edit') &&  Ne(m_cFunction,'new') ) return(false);  // Se si tratta di una riga 'nuova' l'indice della riga corrente è  // uguale al numero di righe (N.B. l'indice parte da 0). Quindi il controllo  // sulla correttezza dell'indice deve essere fatto solo se cerco di settare  // valori su di una riga diversa da quella corrente; inoltre si dovrà 'selezionare'  // la riga indicata.  if ( Ne(ARow,m_nCurrentRow)) {     if ((Gt(ARow,maxIndexValue )) || ( Lt(ARow, 0 )) ) return(false);     ActivateNextRow(ARow-1);     //PerformClick(objTable.rows[ARow].children[0].children[0]);     // Se il PerformClick() non è andato a buon fine vuol dire che la     // riga corrente non è valida e non mi ha permesso di selezionare     // quella che voglio modificare, esce con false     if ( Ne(ARow,m_nCurrentRow)) return(false);  }  return(true);}
//---End function

//---Start function: SetDetailRowValue
function gasplib_SetDetailRowValue(AColName) {  var res = "";  var command;  if ( m_nCurrentRow <= 0 )    return res;  command = "res = m_oTrs[m_nCurrentRow]." + AColName + ";";  eval(command);  return res;}
//---End function

//---Start function: SetParentVariable
function gasplib_SetParentVariable(cVarName, xValue) {  var RetVal;  if (( parent == null ) && ( opener == null ))    RetVal="E";  if ( parent != null )    op = parent;  if ( opener != null )    op = opener;  if (op!=null) {    try{      try {        op["Set_"+Substr(cVarName,3)](xValue);        }      catch (e) {        RetVal="a:"+e;        op[cVarName]=xValue        op.Calculate()        op.SetControlsValue()        op.EnableControlsUnderCondition()      }    } catch(e){    RetVal='b:'+e;    }  }  else {    RetVal="X";  }  return (RetVal);}
//---End function

//---Start function: SetSonVarC
function gasplib_SetSonVarC(cSonName, cVarName, cValue) {  /* Parametri:     cSonName - Nome dell'Oggetto Figlio integrato    cVarName - Nome della Variabile/Campo da valorizzare (senza w_)    cValue   - Valore da assegnare a cVarName  */  var cHide;  var RetVal;  RetVal="X";  // Istanzia il Figlio se non esiste  checkAndLoadChild(cSonName);  var son=FrameRef(cSonName);  try {    son["Set_"+cVarName](cValue);    RetVal="S";  }  catch (e) {    // Campo nascosto o calcolato (non è previsto il metodo Set_...)    cHide = "w_"+cVarName    son[cHide]=cValue    son.Calculate()    son.SetControlsValue()    son.EnableControlsUnderCondition()    RetVal="H";  }  return (RetVal);}
//---End function

//---Start function: SetSonVarD
function gasplib_SetSonVarD(cSonName, cVarName, dValue) {  /* Parametri:     cSonName - Nome dell'Oggetto Figlio integrato    cVarName - Nome della Variabile/Campo da valorizzare (senza w_)    dValue   - Valore da assegnare a cVarName  */  var cHide;  var RetVal;  RetVal="X";  // Istanzia il Figlio se non esiste  checkAndLoadChild(cSonName);  var son=FrameRef(cSonName);  try {    son["Set_"+cVarName](dValue);    RetVal="S";  }  catch (e) {    // Campo nascosto o calcolato (non è previsto il metodo Set_...)    cHide = "w_"+cVarName    son[cHide]=dValue    son.Calculate()    son.SetControlsValue()    son.EnableControlsUnderCondition()    RetVal="H";  }  return (RetVal);}
//---End function

//---Start function: SetSonVarN
function gasplib_SetSonVarN(cSonName, cVarName, nValue) {  /* Parametri:     cSonName - Nome dell'Oggetto Figlio integrato    cVarName - Nome della Variabile/Campo da valorizzare (senza w_)    nValue   - Valore da assegnare a cVarName  */  var cHide;  var RetVal;  RetVal="X";  // Istanzia il Figlio se non esiste  checkAndLoadChild(cSonName);  var son=FrameRef(cSonName);  try {    son["Set_"+cVarName](nValue);    RetVal="S";  }  catch (e) {    // Campo nascosto o calcolato (non è previsto il metodo Set_...)    cHide = "w_"+cVarName    son[cHide]=nValue    son.Calculate()    son.SetControlsValue()    son.EnableControlsUnderCondition()    RetVal="H";  }  return (RetVal);}
//---End function

//---Start function: SetSonVariable
function gasplib_SetSonVariable(cSonName, cVarName, xValue) {  /* Parametri:     cSonName - Nome dell'Oggetto Figlio integrato    cVarName - Nome della Variabile/Campo da valorizzare (senza w_)    xValue   - Valore da assegnare a cVarName  */  var cHide;  var RetVal;  RetVal="X";  // Istanzia il Figlio se non esiste  checkAndLoadChild(cSonName);  var son=FrameRef(cSonName);  try {    son["Set_"+cVarName](xValue);    RetVal="S";  }  catch (e) {    // Campo nascosto o calcolato (non è previsto il metodo Set_...)    cHide = "w_"+cVarName    son[cHide]=xValue    son.Calculate()    son.SetControlsValue()    son.EnableControlsUnderCondition()    RetVal="H";  }  return (RetVal);}
//---End function

//---Start function: SetVarNamed
function gasplib_SetVarNamed(AVarName, AVarVal) {   //alert(AVarVal);   eval(AVarName + " = '" + AVarVal + "'");   SetModified();   DoUpdate(true);}
//---End function

//---Start function: SystemTimeMillis
function gasplib_SystemTimeMillis() {  return(-1);}
//---End function

//---Start function: Test
function gasplib_Test(cQueryName,cParamList) {  var i, nRec;  var cRec;  var Dati = gasplib_ReadSQL(cQueryName,cParamList);  nRec = Dati.length;   alert('Trovati record:'+nRec);  for(i=0; i<nRec; i++){    alert('Codice:'+Dati[i][0]+'Nome:'+Dati[i][1]+'Flag:'+Dati[i][2]);  }  //gasplib_AddDetailRow(campi, valori);}
//---End function

//---Start function: Transform


//---End function

//---Start function: WriteDetailField
function gasplib_WriteDetailField(ARow, AFieldName, AFieldValue ) {  var retVal = gasplib_WriteDetailFields(ARow,new Array(AFieldName), new Array(AFieldValue));/*var command = "retVal = Set_" + AFieldName + "(\"" + AFieldValue + "\")";var savedRow = m_nCurrentRow;var retVal = true;  if (! gasplib_SetDetailRowEditable(ARow)) return(false);  // Eseguo il settaggio vero e proprio del campo in questione  retVal = false;  eval(command);  // Se è andato tutto bene cerco di ripristinare la riga corrente  // salvata all'entrata di questa routine  if (retVal) gasplib_SetDetailRowEditable(savedRow);*/  return (retVal);}
//---End function

//---Start function: WriteDetailFields
function gasplib_WriteDetailFields(ARow, AFields, AFieldValues) {  var retVal;  var esitoFinale = true;  var savedRow = m_nCurrentRow;  var i;  var command = "";  if (! gasplib_SetDetailRowEditable(ARow)) return(false);  retVal = true;  for (i = 0; i < AFields.length; i++) {    command = "retVal = Set_" + AFields[i] + "(\"" + AFieldValues[i] + "\")";    eval(command);    esitoFinale = ((esitoFinale) && (retVal));    //if (!retVal) break;  }  if (esitoFinale) gasplib_SetDetailRowEditable(savedRow);  return (esitoFinale);}
//---End function

//---Start function: getcMonth
function gasplib_getcMonth(nMonth) {  var cMonth = '';  switch(nMonth){    case '1':      cMonth = 'Gennaio';      break;    case '2':      cMonth = 'Febbraio';      break;    case '3':      cMonth = 'Marzo';      break;    case '4':      cMonth = 'Aprile';      break;    case '5':      cMonth = 'Maggio';      break;    case '6':      cMonth = 'Giugno';      break;    case '7':      cMonth = 'Luglio';      break;    case '8':      cMonth = 'Agosto';      break;    case '9':      cMonth = 'Settembre';      break;    case '10':      cMonth = 'Ottobre';      break;    case '11':      cMonth = 'Novembre';      break;    case '12':      cMonth = 'Dicembre';      break;    default:      cMonth = '';  }  return cMonth;}
//---End function

//---Start function: vvv
function gasplib_vvv(line) {  var res = 0;  return res;}
//---End function

//---Start function: MakeGASPLib
function MakeGASPLib() {  this.AddDetailRow=gasplib_AddDetailRow  this.AppendDetailRow=gasplib_AppendDetailRow  this.AsciiToChar=gasplib_AsciiToChar  this.ConvData=gasplib_ConvData  this.DateDiff=gasplib_DateDiff  this.Evaluator=gasplib_Evaluator  this.FillArrayRows=gasplib_FillArrayRows  this.GetComboValue=gasplib_GetComboValue  this.GetParentVariableDate=gasplib_GetParentVariableDate  this.GetParentVariableNumber=gasplib_GetParentVariableNumber  this.GetParentVariableString=gasplib_GetParentVariableString  this.GetSon=gasplib_GetSon  this.GetSonVariable=gasplib_GetSonVariable  this.GetSonVariableDate=gasplib_GetSonVariableDate  this.GetSonVariableNumber=gasplib_GetSonVariableNumber  this.GetSonVariableString=gasplib_GetSonVariableString  this.LoadAccRow=gasplib_LoadAccRow  this.NewDate=gasplib_NewDate  this.NvlC=gasplib_NvlC  this.NvlD=gasplib_NvlD  this.NvlN=gasplib_NvlN  this.PG=gasplib_PG  this.PS=gasplib_PS  this.Picture=gasplib_Picture  this.ReadSQL=gasplib_ReadSQL  this.RefreshSon=gasplib_RefreshSon  this.SelectDeselectAll=gasplib_SelectDeselectAll  this.SetDetailRowEditable=gasplib_SetDetailRowEditable  this.SetDetailRowValue=gasplib_SetDetailRowValue  this.SetParentVariable=gasplib_SetParentVariable  this.SetSonVarC=gasplib_SetSonVarC  this.SetSonVarD=gasplib_SetSonVarD  this.SetSonVarN=gasplib_SetSonVarN  this.SetSonVariable=gasplib_SetSonVariable  this.SetVarNamed=gasplib_SetVarNamed  this.SystemTimeMillis=gasplib_SystemTimeMillis  this.Test=gasplib_Test  this.Transform=gasplib_Transform  this.WriteDetailField=gasplib_WriteDetailField  this.WriteDetailFields=gasplib_WriteDetailFields  this.getcMonth=gasplib_getcMonth  this.vvv=gasplib_vvv}
//---End function

var GASPLib = new MakeGASPLib()

