//---------------------------------------------------------
// Gestione della Progress Bar
//---------------------------------------------------------

   function StartProgress(){
     window.parent.status="Caricamento in corso "
     window.progressDir=1
     AdvanceProgress()
   }

   function StopProgress(){
     window.clearTimeout(window.progressTimeout)
     window.parent.status=""
   }

   function AdvanceProgress(){
      if (window.progressDir==1){
         if (window.parent.status.length<90){
            window.parent.status+="|"
         }else{
            window.progressDir=-1
         }
      }else{
         if (window.parent.status.length>21){
            window.parent.status=window.parent.status.substr(0,window.parent.status.length-1)
         }else{
            window.progressDir=1
         }
      }   
      window.progressTimeout=window.setTimeout("AdvanceProgress()",50)
   }
//---------------------------------------------------------


   function StartProgressModal(){
     window.dialogArguments.parent.status="Caricamento in corso "
     window.progressDir=1
     AdvanceProgressModal()
   }

   function StopProgressModal(){
     window.clearTimeout(window.progressTimeout)
     window.dialogArguments.parent.status=""
   }

   function AdvanceProgressModal(){
      if (window.progressDir==1){
         if (window.dialogArguments.parent.status.length<90){
            window.dialogArguments.parent.status+="|"
         }else{
            window.progressDir=-1
         }
      }else{
         if (window.dialogArguments.parent.status.length>21){
            window.dialogArguments.parent.status=window.dialogArguments.parent.status.substr(0,window.dialogArguments.parent.status.length-1)
         }else{
            window.progressDir=1
         }
      }   
      window.progressTimeout=window.setTimeout("AdvanceProgressModal()",50)
   }
//---------------------------------------------------------


function ValData(cData) {
   var aAux,G,M,A,lBisestile;
   aAux=cData.split("-");
   if (aAux.length==3) {
      G=val(aAux[0]); 
      M=val(aAux[1]);
      A=val(aAux[2]);
    
      if (G>=1 && G<=31 && M>=1 && M<=12 && A>=0) {
         lBisestile=(((A%4)==0 && (A%100)!=0) || (A%400)==0);
         if ((M==11 || M==4 || M==6 || M==9) && G==31) { return false;}
         if (M==2 && G>29) {return false;}
         if (M==2 && G>28 && !lBisestile) {return false;} 
         return true;
      }
   }
   return false
}

function ValOra(cOra) {
   var aAux;
   aAux=cOra.split(":");
   if (aAux.length==2) {
      return val(aAux[0])>=0 && val(aAux[0])<=23 && val(aAux[1])>=0 && val(aAux[1])<=59;
   }
   return false
}


function val(cStr){
   var n,cAux,l
   cAux="";
   l=false;
   for (n=0;n<cStr.length;n++){
       if ((cStr.charAt(n)!="0")||l) {
          cAux=cAux+cStr.charAt(n);
          l=true;
       }
       if (cStr.charAt(n)<"0" || cStr.charAt(n)>"9") return 0
   }

   if (isNaN(parseInt(cAux))) {
      return 0;
   }
   return parseInt(cAux);
}

function alltrim(cStr){
   return ltrim(rtrim(cStr));
}

function rtrim(cStr){
   var n=cStr.length;
   while (n>0){
      if (cStr.charAt(n-1)!=" "){ break; }
      n--;
   }
   return cStr.substr(0,n)
}

function ltrim(cStr){
   var n=0;
   while (n<cStr.length){
      if (cStr.charAt(n)!=" "){ break; }
      n++;
   }
   return cStr.substr(n)
}

function padl(cStr,n,cChar){
   var m;
   for (m=1;m<=n;m++){
       cStr=cChar+cStr;
   }
   return cStr;
}

function padl(cStr,n,cChar){
   var m;
   for (m=1;m<=n;m++){
       cStr=cStr+cChar;
   }
   return cStr;
}

function dtos(cData){
   var aAux=cData.split("-");
   return ""+aAux[2]+aAux[1]+aAux[0]
}