﻿//

 
    
    function IsNotCheckedPrivacy(obj, args) 
    {       
        var objChk=document.getElementById(controlIDCheckPrivacy);
        
        args.IsValid = (objChk.checked);
    }
    
     function IsNotCheckedAnyRichiesta(obj, args) 
    {
        var objChkA=document.getElementById(controlIDTipoRichestaA);
        var objChkB=document.getElementById(controlIDTipoRichestaB);
        var objChkC=document.getElementById(controlIDTipoRichestaC);
        var objChkD=document.getElementById(controlIDTipoRichestaD);
        var objChkE=document.getElementById(controlIDTipoRichestaE);
        
        args.IsValid = ( (objChkA.checked) ||  (objChkB.checked) ||  (objChkC.checked) ||  (objChkD.checked) ||  (objChkE.checked) );
    }
    
    function ValidaCognomePiuNome(obj, args) 
    {
        // in args.length ho la lunghezza del campo cognome
        
        var objPF_Nome=document.getElementById(controlIdPF_Nome);
               
        args.IsValid =  ((args.Value.length + objPF_Nome.value.length) <=39);
    }
    
    function ValidaDataNascita(obj, args) 
    {
        // in args ho il campo anno
        
        var objPF_DataNascitaGiorno=document.getElementById(controlIdPF_DataNascitaGiorno);
        var objPF_DataNascitaMese=document.getElementById(controlIdPF_DataNascitaMese);
        var objPF_DataNascitaAnno=document.getElementById(controlIdPF_DataNascitaAnno);
        
        if(  (objPF_DataNascitaGiorno.value.length=="") || (objPF_DataNascitaMese.value.length=="" ) || (objPF_DataNascitaAnno.value.length==""))
        {
            args.IsValid =false
        }
        else
        {
            var stringData=objPF_DataNascitaGiorno.value + "/" + objPF_DataNascitaMese.value + "/" + objPF_DataNascitaAnno.value;
            args.IsValid =(CheckDate(stringData));
        
        }
        
    }
    
    
   
    function PFIsNotSelectedMezzoSpedizione(obj, args) 
    {
        var objOpt1=document.getElementById(controlIDPFModalitaMail);
        var objOpt2=document.getElementById(controlIDPFModalitaPostaOrdinaria);
         
        args.IsValid =  ( (objOpt1.checked) || (objOpt2.checked) );
    }
    
    function PGIsNotSelectedMezzoSpedizione(obj, args) 
    {
        var objOpt1=document.getElementById(controlIDPGModalitaMail);
        var objOpt2=document.getElementById(controlIDPGModalitaPostaOrdinaria);
         
        args.IsValid =  ( (objOpt1.checked) || (objOpt2.checked) );
    }
    
    function OpenPageIstruzioniUso(){
        var sLeft = ((screen.availWidth - 850) / 2).toString() + "px";
        var newWin = window.open("./messages/Istruzioni.aspx", "_new", "toolbar=no,resizable=yes,titlebar =no,menubar=no,height=700,top=100,width=850,left=" + sLeft + ",centerscreen=yes,chrome=yes,scrollbars=yes "); //toolbar:no;location :no;resizable:yes
        if (newWin && newWin.top) {
            // popup has opened
        } else {
            // popup has been blocked
            alert("Hai impostato il blocco dei popup. Occorre disabilitarlo per riuscire ad aprire la pagina.")
        } 
    }
    
    
    function PF_MailObbligatoria(obj, args) 
    {
        var objOpt1=document.getElementById(controlIDPFModalitaMail);
        
        var objPFEmail1 = document.getElementById(controlIDPFEmail_1);
        var objPFEmail2 = document.getElementById(controlIDPFEmail_2);
         
        if(objOpt1.checked){
            args.IsValid = (  (objPFEmail1.value!="") && (objPFEmail2.value!="")   );
        }
        else    
            args.IsValid =true;                
    }
    
    function PG_MailObbligatoria(obj, args) 
    {
        var objOpt1=document.getElementById(controlIDPGModalitaMail);
        
        var objPFEmail1 = document.getElementById(controlIDPGEmail_1);
        var objPFEmail2 = document.getElementById(controlIDPGEmail_2);
         
        if(objOpt1.checked){
            args.IsValid = (  (objPFEmail1.value!="") && (objPFEmail2.value!="")   );
        }
        else    
            args.IsValid =true;                
    }
    
    function PF_MailUguali(obj, args) 
    {
        
        
        var objPFEmail1 = document.getElementById(controlIDPFEmail_1);
        var objPFEmail2 = document.getElementById(controlIDPFEmail_2);
         
        if((objPFEmail1.value!="") && (objPFEmail2.value!="")){
            args.IsValid = (  objPFEmail1.value==objPFEmail2.value) ;
        }
        else    
             args.IsValid =true;                 // ci pensano già gli altri controlli a fare il resto
    }
    
    function PG_MailUguali(obj, args) 
    {
        
        
        var objPFEmail1 = document.getElementById(controlIDPGEmail_1);
        var objPFEmail2 = document.getElementById(controlIDPGEmail_2);
         
        if((objPFEmail1.value!="") && (objPFEmail2.value!="")){
            args.IsValid = (  objPFEmail1.value==objPFEmail2.value) ;
        }
        else    
             args.IsValid =true;                 // ci pensano già gli altri controlli a fare il resto
    }
    
    function PF_IndirizzoAlternativoSpedizione(obj, args) 
    {
        
        var objOpt2=document.getElementById(controlIDPFModalitaPostaOrdinaria);
        if(objOpt2.checked){
            var objPF_IndirizzoSpedizione = document.getElementById(controlIDPF_IndirizzoSpedizione);
            var objPF_CapSpedizione = document.getElementById(controlIDPF_CapSpedizione);
            var objPF_ComuneSpedizione = document.getElementById(controlIDPF_ComuneSpedizione);
            var objPF_NazioneSpedizione = document.getElementById(controlIDPF_NazioneSpedizione);
            var objPF_NumeroCivicoSpedizione= document.getElementById(controlIDPF_NumeroCivicoSpedizione);
            var objPF_ProvinciaSpedizione = document.getElementById(controlIDPF_ProvinciaSpedizione);
         
            // se almeno uno è compilato, devono essere compilati tutti
            if ( (objPF_IndirizzoSpedizione.value!="")  
                ||  (objPF_CapSpedizione.value!="") 
                ||  (objPF_ComuneSpedizione.value!="") 
                ||  (objPF_NumeroCivicoSpedizione.value!="") 
                ||  (objPF_NazioneSpedizione.value!="") 
                ||  (objPF_ProvinciaSpedizione.value!="") )
                {
                    args.IsValid =     ((objPF_IndirizzoSpedizione.value!="")  
                                        &&  (objPF_CapSpedizione.value!="") 
                                        &&  (objPF_ComuneSpedizione.value!="") 
                                        &&  (objPF_NumeroCivicoSpedizione.value!="") 
                                        &&  (objPF_NazioneSpedizione.value!="") 
                                        &&  (objPF_ProvinciaSpedizione.value!="") ) ;     
                }
                else{
                 args.IsValid =true;        
                }
        }
        else    
             args.IsValid =true;           
        
    }
    
    function PG_IndirizzoAlternativoSpedizione(obj, args) 
    {
        
        var objOpt2=document.getElementById(controlIDPGModalitaPostaOrdinaria);
        if(objOpt2.checked){
            var objPF_IndirizzoSpedizione = document.getElementById(controlIDPG_IndirizzoSpedizione);
            var objPF_CapSpedizione = document.getElementById(controlIDPG_CapSpedizione);
            var objPF_ComuneSpedizione = document.getElementById(controlIDPG_ComuneSpedizione);
            var objPF_NazioneSpedizione = document.getElementById(controlIDPG_NazioneSpedizione);
            var objPF_NumeroCivicoSpedizione= document.getElementById(controlIDPG_NumeroCivicoSpedizione);
            var objPF_ProvinciaSpedizione = document.getElementById(controlIDPG_ProvinciaSpedizione);
         
            // se almeno uno è compilato, devono essere compilati tutti
            if ( (objPF_IndirizzoSpedizione.value!="")  
                ||  (objPF_CapSpedizione.value!="") 
                ||  (objPF_ComuneSpedizione.value!="") 
                ||  (objPF_NumeroCivicoSpedizione.value!="") 
                ||  (objPF_NazioneSpedizione.value!="") 
                ||  (objPF_ProvinciaSpedizione.value!="") )
                {
                    args.IsValid =     ((objPF_IndirizzoSpedizione.value!="")  
                                        &&  (objPF_CapSpedizione.value!="") 
                                        &&  (objPF_ComuneSpedizione.value!="") 
                                        &&  (objPF_NumeroCivicoSpedizione.value!="") 
                                        &&  (objPF_NazioneSpedizione.value!="") 
                                        &&  (objPF_ProvinciaSpedizione.value!="") ) ;     
                }
                else{
                 args.IsValid =true;        
                }
        }
        else    
             args.IsValid =true;           
        
    }
    
    
    function ImpostaNazione(sElement,sNomeControlloNazione){
        var objNazione=document.getElementById(sNomeControlloNazione);
        // se seleziono una provincia con codice <> 'EE', preseleziono Italia        
        if ((sElement.value!="") && (sElement.value!="EE")){           
           objNazione.value="I";
        }
        
        // se seleziono Estero e di là c'è selezionato italia, svuoto
        if ((sElement.value=="EE") && (objNazione.value=="I")){            
           objNazione.value="";
        }
    }
 
 
    function ImpostaProvincia(sElement,sNomeControlloProvincia){
        var objProv=document.getElementById(sNomeControlloProvincia);
        // se seleziono "non italia", preseleziono "estero" dall'altra parte
        // se seleziono "italia" e di là c'e scritto estero, svuoto
        
        if ((sElement.value!="") && (sElement.value!="I")){           
           objProv.value="EE";
        }
        
        if ((sElement.value=="I") && (objProv.value=="EE")){
            
           objProv.value="";
        }
    }


    function ManageFieldSpedizione(sTipo, sOptEmail,sOptOrdinaria){
     
        var objEmail=document.getElementById(sOptEmail);
        var objOrdinaria=document.getElementById(sOptOrdinaria);
        
         var objEmail1;
         var objEmail2;
            
        var objIndirizzo;
        var objCap;
        var objComune;
        var objNazione;
        var objCivico;
        var objProvincia;
        
        if(sTipo=="PF"){
            objEmail1=document.getElementById(controlIDPFEmail_1);
            objEmail2=document.getElementById(controlIDPFEmail_2);
            
            objIndirizzo=document.getElementById(controlIDPF_IndirizzoSpedizione);
            objCap=document.getElementById(controlIDPF_CapSpedizione);            
            objComune=document.getElementById(controlIDPF_ComuneSpedizione );               
            objNazione=document.getElementById(controlIDPF_NazioneSpedizione);                
            objCivico=document.getElementById(controlIDPF_NumeroCivicoSpedizione);
            objProvincia=document.getElementById(controlIDPF_ProvinciaSpedizione );                  
                   
        }
        else{
        
            objEmail1=document.getElementById(controlIDPGEmail_1);
            objEmail2=document.getElementById(controlIDPGEmail_2);
            
            objIndirizzo=document.getElementById(controlIDPG_IndirizzoSpedizione);
            objCap=document.getElementById(controlIDPG_CapSpedizione);            
            objComune=document.getElementById(controlIDPG_ComuneSpedizione );               
            objNazione=document.getElementById(controlIDPG_NazioneSpedizione);                
            objCivico=document.getElementById(controlIDPG_NumeroCivicoSpedizione);
            objProvincia=document.getElementById(controlIDPG_ProvinciaSpedizione );
        }
        
        if(objOrdinaria.checked){
            objEmail1.value="";
            objEmail2.value="";
            objEmail1.disabled=true;
            objEmail2.disabled=true;
            
            objIndirizzo.disabled=false;
            objCap.disabled=false;
            objComune.disabled=false;
            objNazione.disabled=false;
            objCivico.disabled=false;
            objProvincia.disabled=false;
            
        }
        else{
            objEmail1.disabled=false;
            objEmail2.disabled=false;
            
            objIndirizzo.disabled=true;
            objCap.disabled=true;
            objComune.disabled=true;
            objNazione.disabled=true;
            objCivico.disabled=true;
            objProvincia.disabled=true;
            
            objIndirizzo.value="";
            objCap.value="";
            objComune.value="";
            objNazione.value="";
            objCivico.value="";
            objProvincia.value="";
                       
        }
        
    }
    
     
    function ValidaCampiRichiestaE(obj, args) {
        var IndiceControlli =obj.id.substring(obj.id.lastIndexOf("_") + 1,100);
        
        // prendo "la radice" degli id dei controlli e vi aggiungo poi per torvarli l'indice corrente
        var sRadiceNumeroAtto = controlIDRichiestaE_txtNumeroAtto_1.substring(0, controlIDRichiestaE_txtNumeroAtto_1.lastIndexOf("_") + 1 );
        var sRadiceTipoAtto= controlIDRichiestaE_txtTipoAtto_1.substring(0, controlIDRichiestaE_txtTipoAtto_1.lastIndexOf("_") + 1 );
        var sRadiceDataAtto= controlIDRichiestaE_txtDataAtto_1.substring(0, controlIDRichiestaE_txtDataAtto_1.lastIndexOf("_") + 1 );        
        var sRadiceTribCons= controlIDRichiestaE_txtTribCons_1.substring(0, controlIDRichiestaE_txtTribCons_1.lastIndexOf("_") + 1 );          
        var sRadiceTipoAnnotamento= controlIDRichiestaE_txtTipoAnnotamento_1.substring(0, controlIDRichiestaE_txtTipoAnnotamento_1.lastIndexOf("_") + 1 );
        
        var objNumeroAtto=document.getElementById(sRadiceNumeroAtto + IndiceControlli);        
        var objTipoAtto =document.getElementById(sRadiceTipoAtto + IndiceControlli);        
        var objDataAtto=document.getElementById(sRadiceDataAtto + IndiceControlli);
        var objTribCons=document.getElementById(sRadiceTribCons + IndiceControlli);
        var objTipoAnnotamento=document.getElementById(sRadiceTipoAnnotamento + IndiceControlli);

        
        args.IsValid= (   (objNumeroAtto.value!="") || 
                            (objTipoAtto.value!="") ||
                            (objDataAtto.value!="") ||
                            (objTribCons.value!="") ||
                            (objTipoAnnotamento.value!="")   );
    }
    
    
    
  
    
    function OpenModuloPDF(){
        //var objNomeFile=document.getElementById(controlIDNomePDF);
        //var objNomeFile=document.getElementById("NomePDF");
        
        //var sNomeFile =objNomeFile.value.replace("\\","\\\\");
        
        // a seconda del tipo di browser utilizzo un metodo o l'altro  
        // ( safari e Chrome risultano "Netscape" ma anche firefox. quindi mentre i primi due funzionano anche con la prima istruzione, firefox no, quindi sposto sotto)
        //alert(navigator.appName);
        if ( isMicrosoft(0) || isOpera(0)  ){
          //  alert("IE");
           
            var sFullPath =  "DownloadDocument.aspx" ;                     
            IFramePerStampa.location=sFullPath;
        }            
        else{
            // alert("no IE");
            window.open('ShowDocument.aspx') ;             
        }            
    }
    
    
    function isNetscape(v) {
          /*
          ** Check if the browser is Netscape compatible
          **    v  version number
          ** returns  true if Netscape and version equals or greater
          */
          return isBrowser("Netscape", v);
    }

    function isMicrosoft(v) {
      /*
      ** Check if the browser is Microsoft Internet Explorer compatible
      **    v  version number
      ** returns  true if MSIE and version equals or greater
      */
      return isBrowser("Microsoft", v);
      }

    function isOpera(v) {
      /*
      ** Check if the browser is Microsoft Internet Explorer compatible
      **    v  version number
      ** returns  true if MSIE and version equals or greater
      */
      return isBrowser("Opera", v);
      }


    function isBrowser(b,v) {
      /*
      ** Check if the current browser is compatible
      **  b  browser name
      **  v  version number (if 0 don't check version)
      ** returns true if browser equals and version equals or greater
      */
      browserOk = false;
      versionOk = false;

      browserOk = (navigator.appName.indexOf(b) != -1);
      if (v == 0) versionOk = true;
      else  versionOk = (v <= parseInt(navigator.appVersion));
      return browserOk && versionOk;
      }

    
        function ControllaCF_PF(obj, args) 
        {
            var objCF=  document.getElementById(controlIdPF_CodiceFiscale);
            var objErrore=  document.getElementById(controlIdValidaCFPF);
            var CodiceFiscale = objCF.value.toUpperCase();
            
             
            if (CodiceFiscale==""){
                objErrore.innerHTML="Il campo Codice fiscale è obbligatorio";
                args.IsValid =false;  
            }
            else
            {
                if (CodiceFiscale.length!=16) 
                {
                        
                    objErrore.innerHTML="Il codice fiscale deve essere lungo 16 caratteri";
                    args.IsValid =false;    
                }
                else
                {
                    // controllo l'esattezza dei caratteri
                    // Definisco un pattern per il confronto :
                    //var pattern = /^[a-zA-Z]{6}[0-9]{2}[a-zA-Z][0-9]{2}[a-zA-Z][0-9]{3}[a-zA-Z]$/;
                    // if (CodiceFiscale.search(pattern) == -1){
                    //    objErrore.innerHTML="Il codice fiscale non risulta formalmente corretto";
                    // NON POSSO USARE LA REGOLA SOPRA: a causa del problema delle omocodie, al posto delle lettere possono apparire delle cifre
 
                   

                    validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
                    for( i = 0; i < 16; i++ ){
                        if( validi.indexOf( CodiceFiscale.charAt(i) ) == -1 ){
                            objErrore.innerHTML="Il codice fiscale contiene un carattere non valido:" + objCF.value.charAt(i) ;
                            args.IsValid =false;   
                            return;
                        }     
                    }
                    
                     // controllo il Cin : se è errato ,restituisco solo un messaggio.
                     if (!CinPFIsOk(CodiceFiscale) ){
                         alert("Il Codice Fiscale inserito non è congruente con i dati anagrafici inseriti.\nÈ comunque possibile procedere con l'inserimento.")                        
                     }  
                     args.IsValid =true;
                          
                 }
            }
        }
        
        function CinPFIsOk(sCF){
            var set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
            var set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
            var setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
            var setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
            s = 0;
            for( i = 1; i <= 13; i += 2 )
                s += setpari.indexOf( set2.charAt( set1.indexOf( sCF.charAt(i) )));
            for( i = 0; i <= 14; i += 2 )
                s += setdisp.indexOf( set2.charAt( set1.indexOf( sCF.charAt(i) )));
            if( s%26 != sCF.charCodeAt(15)-'A'.charCodeAt(0) )
            {
                return false;
            }
            else
                return true;

        }
        
         function ControllaCF_PG(obj, args) {
         
            var objTextBox=  document.getElementById(controlIdPG_CodiceFiscale);
            var objErrore=  document.getElementById(controlIdValidaCFPG);
            args.IsValid = ControllaPIVA(objTextBox.value,objErrore,"Codice fiscale");
            
            
         }
         
          
          
         function ControllaPIva_PG(obj, args) {
            
            var objTextBox=  document.getElementById(controlIdPG_PartitaIva  );
            var objErrore=  document.getElementById(controlIdValidaPivaPG  );
            args.IsValid = ControllaPIVA(objTextBox.value,objErrore,"Partita iva");
            
         }
         
         
         
         function ControllaPIVA(pi, objErr,sDescCampo)
        {
            if( pi == '' ) {
                objErr.innerHTML="Il campo " + sDescCampo + " è obbligatorio";
                return false;            
            }
            if( pi.length != 11 ){
                 objErr.innerHTML="Il campo " + sDescCampo + " deve essere lungo 11 caratteri";
                 return false; 
            }
                
            validi = "0123456789";
            for( i = 0; i < 11; i++ ){
                if( validi.indexOf( pi.charAt(i) ) == -1 )
                {
                    objErr.innerHTML="Il campo " + sDescCampo + " contiene un carattere non valido:" + pi.charAt(i) ;
                    return false;                               
                }
            }
            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)) { 
                if(sDescCampo=="Partita iva")
                    alert("La partita iva inserita non è congruente con i dati dell'azienda inseriti.\nÈ comunque possibile procedere con l'inserimento.")                         
                else
                    alert("Il Codice fiscale inserito non è congruente con i dati dell'azienda inseriti.\nÈ comunque possibile procedere con l'inserimento.")                        
            }
               
            return true;
        }

        function ControllaPF_CapResidenza(obj, args) 
        {
            var objCap=  document.getElementById(controlIdPF_CapResidenza);
            var objErrore=  document.getElementById(controlIdValidaPF_CapResidenza);
            var valueCap = objCap.value.toUpperCase();
            if(valueCap=="")
            {
                objErrore.innerHTML="Il campo Cap è obbligatorio";
                args.IsValid =false;  
            }
            else{
                if(valueCap.length!=5){
                    objErrore.innerHTML="Il campo Cap deve essere lungo 5 caratteri";
                    args.IsValid =false;  
                }
                else
                    args.IsValid =true;  
            }
        }



        function ControllaPG_CapResidenza(obj, args) 
        {
            var objCap=  document.getElementById(controlIdPG_CapResidenza);
            var objErrore=  document.getElementById(controlIdValidaPG_CapResidenza);
            var valueCap = objCap.value.toUpperCase();
            if(valueCap=="")
            {
                objErrore.innerHTML="Il campo Cap è obbligatorio";
                args.IsValid =false;  
            }
            else{
                if(valueCap.length!=5){
                    objErrore.innerHTML="Il campo Cap deve essere lungo 5 caratteri";
                    args.IsValid =false;  
                }
                else
                    args.IsValid =true;  
            }
        }  
        
        function ControllaPF_CapSpedizione(obj, args) 
        {
            var objCap=  document.getElementById(controlIDPF_CapSpedizione);
            var valueCap = objCap.value.toUpperCase();
            if((valueCap.length!=5) && (valueCap.length>0) ){
                args.IsValid =false;  
            }
            else
                args.IsValid =true;  
          
        }

     
        function ControllaPG_CapSpedizione(obj, args) 
        {
            var objCap=  document.getElementById(controlIDPG_CapSpedizione);
            var valueCap = objCap.value.toUpperCase();
            if((valueCap.length!=5) && (valueCap.length>0) ){
                args.IsValid =false;  
            }
            else
                args.IsValid =true;  
          
        }


        function isRFC822ValidEmail(sEmail) {

            var sQtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]';
            var sDtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]';
            var sAtom = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+';
            var sQuotedPair = '\\x5c[\\x00-\\x7f]';
            var sDomainLiteral = '\\x5b(' + sDtext + '|' + sQuotedPair + ')*\\x5d';
            var sQuotedString = '\\x22(' + sQtext + '|' + sQuotedPair + ')*\\x22';
            var sDomain_ref = sAtom;
            var sSubDomain = '(' + sDomain_ref + '|' + sDomainLiteral + ')';
            var sWord = '(' + sAtom + '|' + sQuotedString + ')';


            // ATTENZIONE: LO STANDARD RFC822PREVEDE ANCHE DOMINI DI PRIMO LIVELLO, QUINDI TEORICAMENTE,
            // è POSSIBILE ANCHE LA MAIL LISA@ERREVI
            // ma nell'uso che ne dobbiamo fare noi , è praticamente impossibile , quindi forzo almeno un dominio di secondo livello
            // quindi almeno un punto dopo il primo dominio
            // \\x2e è il punto, 
            // se lascio l'istruzione originale:
            //            var sDomain = sSubDomain + '(\\x2e' + sSubDomain + ')*';
            // significa che faccio il match del dominio di primo livello più eventuali sottodomini che possono anche non esserci (*) finale
            // io forzo invece almeno un dominio di sotto livello con {1,}
            var sDomain = sSubDomain + '(\\x2e' + sSubDomain + '){1,}';
            var sLocalPart = sWord + '(\\x2e' + sWord + ')*';
            var sAddrSpec = sLocalPart + '\\x40' + sDomain; // complete RFC822 email address spec
            var sValidEmail = '^' + sAddrSpec + '$'; // as whole string

            var reValidEmail = new RegExp(sValidEmail);

            if (reValidEmail.test(sEmail)) {
                return true;
            }

            return false;
        }

        function IsEmail1Valid(obj, args) {
            args.IsValid = false;


            var obj1 = document.getElementById(controlIDPFEmail_1);
            args.IsValid = isRFC822ValidEmail(obj1.value);

        }

        function IsEmail2Valid(obj, args) {
            args.IsValid = false;


            var obj1 = document.getElementById(controlIDPFEmail_2);
            args.IsValid = isRFC822ValidEmail(obj1.value);

        }
