/*global SISAL, Dialog, window */

/**
 * La variabile rappresenta il namespace utilizzato per tutto il codice
 * javascript del AREAPRIVATA.
 */
SISAL.GNTN.AREAPRIVATA = (function AREAPRIVATA() {

    var components =
        [
        // TODO provvisorio, per il test di cps con la logica vecchia
        {
            url : "/AreaPrivata/pubblico/datianagrafici.jsp" + location.search,
            options : {target : "datianagrafici"}
        },
        {
            url : "/AreaPrivata/pubblico/ilTuoCodicePromozione.jsp" + location.search,
            options : {target : "ilTuoCodicePromozione"}
        },
        {
            url : "/AreaPrivata/pubblico/promozioniIniziative.jsp" + location.search,
            options : {target : "promozioniIniziative"}
        },
        {
            url : "/AreaPrivata/pubblico/massimaliGiocoVincita.jsp" + location.search,
            options : {target : "massimaliGiocoVincita"}
        },
        {
            url : "/AreaPrivata/pubblico/giocaIlGiusto.jsp" + location.search,
            options : {target : "giocaIlGiusto"}
        }
        
    ],
    EnableRightClick = 0,
    isNS = (navigator.appName === "Netscape") ? 1 : 0
    ;
    
    function trim(str) {
        return str.replace(/^\s+|\s+$/g, "");
    }
    
    function disableCtrlKeyCombination(e) {
        // list all CTRL + key combinations you want to disable
        var forbiddenKeys = ['a', 'n', 'c', 'x', 'v', 'j'],
        key,
        isCtrl,
        i;

        if (window.event) {
            key = window.event.keyCode; // IE
            if (window.event.ctrlKey)
            {    
                isCtrl = true;
            }    
            else
            {    
                isCtrl = false;
            }    
        } else {
            key = e.which; // firefox
            if (e.ctrlKey)
            {    
                isCtrl = true;
            }    
            else
            {    
                isCtrl = false;
            }   
        }

        if (isCtrl) {
            for (i = 0; i < forbiddenKeys.length; i = i + 1) {
                 //alert('Key combination CTRL + ' +
                 //String.fromCharCode(key) + ' has been disabled.');
                if (forbiddenKeys[i].toLowerCase() === String.fromCharCode(key).toLowerCase())
                {    
                    return false;
                }    
            }

            // controllo CTRL INS
            if (key === 45) {
                 //alert('Key combination CTRL INS has been disabled.');
                return false;
            }
        }

        // SHIFT INS
        if (key === 16 || key === 45) {
             //alert('Key combination SHIFT INS has been disabled.');
            return false;
        }
        return true;
    }       

    function mischandler()
    {
        if (EnableRightClick === 1)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    function mousehandler(e)
    {
        var myevent = "",
            eventbutton = ""
            ;
        
        if (EnableRightClick === 1)
        {
            return true;
        }
        myevent = (isNS) ? e : event;
        eventbutton = (isNS) ? myevent.which : myevent.button;
        if ((eventbutton === 2) || (eventbutton === 3))
        {
            return false;
        }  
    }

    function keyhandler(e)
    {
        var myevent = (isNS) ? e : window.event;
        if (myevent.keyCode === 96)
        {
            EnableRightClick = 1;
        }
        return;
    }        
    
    
    
    
    
    function radioDati(campo) {
        
        var i = null,
            campiDati = null,
            spanmodificadati = null
            ;

        for (i = 1; i <= 4; i += 1) {

            campiDati = "modificadati";
            spanmodificadati = "spanmodificadati";

            campiDati = campiDati + "" + i;
            spanmodificadati = spanmodificadati + "" + i;

            if (campo.id !== campiDati) {
                document.getElementById(spanmodificadati).style.fontWeight = "normal";
            } else {
                document.getElementById(spanmodificadati).style.fontWeight = "bold";
            }

        }
    }

    function modificaDati(frm,paginaCadutaSessioneScaduta)
	{
        var titolo = null,
            onclick = null,
            contenuto = null,
            labelButton1 = null,
            labelButton2 = null,
            onclickButton1 = null,
            onclickButton2 = null,
            i = 0,
            radioname = null,
            valore = null,
            form = null,
            vecchiausername = null,
            mess = null,
            esito = false,
            statoPassword = null,
            paginaCaduta = null
            ;
        
        esito = controlloSessione(paginaCadutaSessioneScaduta);
        
        if (esito)
        {
          //form = document.getElementById(frm);
          
          for (i = 1; i <= 4; i += 1)
          {
              radioname = "modificadati" + i;
              if (document.getElementById(radioname).checked)
              {
                  valore = document.getElementById(radioname).value;
                  //alert("valore => " + valore);
                  break;
              } 
          }
         
          if (SISAL.isNullOrEmpty(valore))
          {
                  mess = "Seleziona la voce che desideri aggiornare";
                          SISAL.FX.showOnElement_TemplatePopup('body', 'ms.alert.buttonok.html', {"{title}" : "Attenzione",	"{content}" : mess,	"{buttonclick}" : '<hideThis>', "{buttontext}" : 'OK', width : '350px'});
          }
          
          if (valore === "pin")
          {    
              titolo = "MODIFICA PASSWORD";
              labelButton1 = "Annulla";
              labelButton2 = "Conferma";
              onclickButton1 = "<hideThis>";
              onclickButton2 = "SISAL.GNTN.AREAPRIVATA.modificaDatiButtonConferma('pin','"+frm+"')";
              statoPassword = (SISAL.getCookieField("login", "statoPassword")*1);
              
              /*alert("statoPassword => " + statoPassword);
              alert("paginaCaduta => " + SISAL.getCookie("paginaCaduta"));
              alert("T/F => " + SISAL.isNullOrEmpty(SISAL.getCookie("paginaCaduta")));*/
              
              if (statoPassword === 2 && !SISAL.isNullOrEmpty(SISAL.getCookie("paginaCaduta")))
              {
            	  onclickButton1 = "location.href='http://" + location.hostname + SISAL.getCookie("paginaCaduta")+ "?logout=OFF'";
              }	  
              
              SISAL.ajax("/AreaPrivata/pubblico/HTML/modificaPIN.html?par=1", {
                  method : 'GET',
                  response : true,
                  success : function (html) {
                      SISAL.FX.showOnElement_TemplatePopup('body',
                              'ms.alert.buttonconfannulla.html', {
                          "{title}" : titolo,
                          "{content}" : html,
                          "{buttonclickAnnulla}" : onclickButton1,
                          "{buttontextAnnulla}" : labelButton1,
                          "{buttonclickConferma}" : onclickButton2,
                          "{buttontextConferma}" : labelButton2,
                          width : "410px"
                      });
                  }
              });
          }
          else if (valore === "username")
          {    
              titolo = "MODIFICA USERNAME";
              labelButton1 = "Annulla";
              labelButton2 = "Conferma";
              onclickButton1 = "<hideThis>";
              onclickButton2 = "SISAL.GNTN.AREAPRIVATA.modificaDatiButtonConferma('username',"+frm+")";
              
              SISAL.ajax("/AreaPrivata/pubblico/HTML/modificaUsername.html", {method: 'GET', response: true, success: function (html)
                  {
                      SISAL.FX.showOnElement_TemplatePopup('body', 'ms.alert.buttonconfannulla.html', {"{title}" : titolo, "{content}" : html, "{buttonclickAnnulla}" : onclickButton1, "{buttontextAnnulla}" : labelButton1, "{buttonclickConferma}" : onclickButton2, "{buttontextConferma}" : labelButton2, width : "410px"});
      
                      
                  }});
          }        
          else if (valore === "recapito")
          {    
              titolo = "MODIFICA RECAPITO";
              labelButton1 = "Annulla";
              labelButton2 = "Conferma";
              onclickButton1 = "<hideThis>";
              onclickButton2 = "SISAL.GNTN.AREAPRIVATA.modificaDatiButtonConferma('profilo',"+frm+")";
  
              SISAL.ajax("/AreaPrivata/pubblico/modificaProfilo.jsp", {response: true, success: function (html)
                  {
                      SISAL.FX.showOnElement_TemplatePopup('body', 'ms.alert.buttonconfannulla.html', {"TextAlign_default": "TextAlign_left", "{title}" : titolo, "{content}" : html, "{buttonclickAnnulla}" : onclickButton1, "{buttontextAnnulla}" : labelButton1, "{buttonclickConferma}" : onclickButton2, "{buttontextConferma}" : labelButton2, width : "610px"});
                  }});
              
          }    
          else if (valore === "domandesicurezza")
          {
              labelButton1 = "Annulla";
              labelButton2 = "Conferma";
              onclickButton1 = "<hideThis>";
              onclickButton2 = "SISAL.GNTN.AREAPRIVATA.modificaDatiButtonConferma('domandesicurezza',"+frm+")";
  
              impostazioniSicurezza = (SISAL.getCookieField("login", "impostazioniSicurezza")*1);
              
              if ((impostazioniSicurezza % 2)== 0 )
              {
            	  titolo = "IMPOSTA DOMANDE SICUREZZA";
                  SISAL.ajax("/AreaPrivata/pubblico/modificaDomendeSicurezzaImposta.jsp", {response: true, success: function (html)
                      {
                          SISAL.FX.showOnElement_TemplatePopup('body', 'ms.alert.buttonconfannulla.html', {"TextAlign_default": "TextAlign_left", "{title}" : titolo, "{content}" : html, "{buttonclickAnnulla}" : onclickButton1, "{buttontextAnnulla}" : labelButton1, "{buttonclickConferma}" : onclickButton2, "{buttontextConferma}" : labelButton2, width : "610px"});
                      }});
              } 	  
              else
              {	  
	           	  titolo = "MODIFICA DOMANDE SICUREZZA";            	  
	              SISAL.ajax("/AreaPrivata/pubblico/modificaDomendeSicurezza.jsp", {response: true, success: function (html)
                  {
                      SISAL.FX.showOnElement_TemplatePopup('body', 'ms.alert.buttonconfannulla.html', {"TextAlign_default": "TextAlign_left", "{title}" : titolo, "{content}" : html, "{buttonclickAnnulla}" : onclickButton1, "{buttontextAnnulla}" : labelButton1, "{buttonclickConferma}" : onclickButton2, "{buttontextConferma}" : labelButton2, width : "610px"});
                  }});
              }
              
          }    
      } // FINE IF CONTROLLO COOKIE LOGIN            
    }
    
    function modificaPin()
    {
        var titolo = null,
        onclick = null,
        contenuto = null,
        labelButton = null,
        onclickButton = null,
        nuovopin = null,
        renuovopin = null,
      //  vecchiopin = null,
        parametri = null,
        messaggio = null
        ;        
        
        titolo = "MODIFICA PASSWORD";
        labelButton = "chiudi";
        onclickButton = "<hideThis>";
        nuovopin = document.getElementById('nuovopin').value;
        renuovopin = document.getElementById('renuovopin').value;
        vecchiopin = document.getElementById('vecchiopin').value;
        parametri = "?vecchiopin=" + vecchiopin + "&nuovopin=" + nuovopin;
        //parametri = "?nuovopin=" + nuovopin;
        
        if (SISAL.isNullOrEmpty(vecchiopin))
        {
            document.getElementById("mexbox").style.display = "";
            document.getElementById("messaggio").innerHTML = "Il campo \'Inserisci la vecchia Password\' deve essere valorizzato ";
            return;
        }    
        else if (SISAL.isNullOrEmpty(nuovopin))
        {
            document.getElementById("mexbox").style.display = "";
            document.getElementById("messaggio").innerHTML = "Il campo \'Inserisci la nuova Password\' deve essere valorizzato ";
            return;
        }
        else if (SISAL.isNullOrEmpty(renuovopin))
        {
            document.getElementById("mexbox").style.display = "";
            document.getElementById("messaggio").innerHTML = "Il campo \'Reinserisci la nuova Password\' deve essere valorizzato ";
            return;
        }
        
        
        messaggio = checkPassword(nuovopin,"Password");
        
        if (SISAL.isNullOrEmpty(messaggio))
        {
	        if (nuovopin !== renuovopin)
	        {
	            document.getElementById("mexbox").style.display = "";
	            document.getElementById("messaggio").innerHTML = "I campi \'Reinserisci la nuova Password\' e \'Inserisci la nuova Password\' devono essere uguali ";
	            return;
	        }
        }
        else
        {
            document.getElementById("mexbox").style.display = "";
            document.getElementById("messaggio").innerHTML = messaggio;
            return;
        }	
        
        if (vecchiopin === nuovopin)
        {
            document.getElementById("mexbox").style.display = "";
            document.getElementById("messaggio").innerHTML = "Attenzione la vecchia Password coincide con la nuova ";
            return;
        }
        
        
        
        SISAL.ajax("/AreaPrivata/pubblico/servlet/ModificaPin" + parametri, {response: true, success: function (html)
        {
	        if (html === "0")
	        {
	            contenuto = "La tua password &egrave; stata aggiornata";
	            
	            //alert("checkModificaDati PRIMA " + SISAL.getCookie('checkModificaDati'));
	            
	            if(!SISAL.isNullOrEmpty(SISAL.getCookie('infoLogin')) && SISAL.getCookie('infoLogin') != "null")
	            {
		           	// CASO MP va fatto se no tutte le volte il controllo sullo js di login rimanda sempre alla
	            	// pagina del profilo
	                var cookie_infoLogin = SISAL.getCookie('infoLogin'),
	                cookie_infoLogin = cookie_infoLogin.replace("statoPassword=2", "statoPassword=1");
	                SISAL.setCookie('infoLogin', {value: cookie_infoLogin, secure: true});
	                //alert("cookie_infoLogin => " + cookie_infoLogin);
	                var cookie_login = SISAL.getCookie('login'),
	                cookie_login = cookie_login.replace("statoPassword=2", "statoPassword=1");
	                SISAL.setCookie('login', {value: cookie_login, secure: true});
	                //alert("cookie_login => " + cookie_login);
	            }
	           	// CASO GNTN/MP deve essere fatto sia per MP che GNTN se il cookie vale TURE non verrà più proposta a video la pop up del cambio password.
	          	SISAL.setCookie('checkModificaDati', {value: "true", secure: true});
	            
	            //alert("checkModificaDati DOPO " + SISAL.getCookie('checkModificaDati'));            
	        }            
	        else
	        {
	            //contenuto = "Il tuo pin non &egrave; stato aggiornato";
	            contenuto = html;
	        }    
	        SISAL.FX.showOnElement_TemplatePopup('body', 'ms.alert.buttonok.html', {"{title}" : titolo, "{content}" : contenuto, "{buttontext}" : labelButton, "{buttonclick}" : onclickButton, width : "410px"});
         }});  
        
/*        alert("ATTENAIONZE !!! forzo 0 per test");
        html = "0";
        
        if (html === "0")
        {
            contenuto = "La tua password &egrave; stata aggiornata";
            
            //alert("checkModificaDati PRIMA " + SISAL.getCookie('checkModificaDati'));
            
            if(!SISAL.isNullOrEmpty(SISAL.getCookie('infoLogin')) && SISAL.getCookie('infoLogin') != "null")
            {
                var cookie_infoLogin = SISAL.getCookie('infoLogin'),
                cookie_infoLogin = cookie_infoLogin.replace("statoPassword=2", "statoPassword=1");
                SISAL.setCookie('infoLogin', {value: cookie_infoLogin, secure: true});
                alert("cookie_infoLogin => " + cookie_infoLogin);
                var cookie_login = SISAL.getCookie('login'),
                cookie_login = cookie_login.replace("statoPassword=2", "statoPassword=1");
                SISAL.setCookie('login', {value: cookie_login, secure: true});
                alert("cookie_login => " + cookie_login);
            }
           	// CASO GNTN
          	SISAL.setCookie('checkModificaDati', {value: "true", secure: true});
            
            //alert("checkModificaDati DOPO " + SISAL.getCookie('checkModificaDati'));            
        }            
        else
        {
            //contenuto = "Il tuo pin non &egrave; stato aggiornato";
            contenuto = html;
        }    
    
    
        SISAL.FX.showOnElement_TemplatePopup('body', 'ms.alert.buttonok.html', {"{title}" : titolo, "{content}" : contenuto, "{buttontext}" : labelButton, "{buttonclick}" : onclickButton, width : "410px"});        
        */
    }        
  
    function controlloUsername(pLabel, pCampo) {

         //alert("controlloUsername");
         //alert("pCampo => " + pCampo);

        var messaggio = null,
            espressione = new RegExp("[^._\\-0-9]")
            ;
        
        if (pCampo.match(/^\d+$/)) {
            messaggio = "Il campo Nuovo " + pLabel + " deve contenere almeno una lettera [A-Z]";
            return messaggio;
        } else if (pCampo.match(/^[.]+$/)) {
            messaggio = "Il campo Nuovo " + pLabel + " deve contenere almeno una lettera [A-Z]";
            return messaggio;
        } else if (pCampo.match(/^[\_]+$/)) {
            messaggio = "Il campo Nuovo " + pLabel + " deve contenere almeno una lettera [A-Z]";
            return messaggio;
        } else if (pCampo.match(/^[\-]+$/)) {
            messaggio = "Il campo Nuovo " + pLabel + " deve contenere almeno una lettera [A-Z]";
            return messaggio;
        }
        else
        {
            if (!espressione.test(pCampo))
            {
                messaggio = "Il campo Nuovo " + pLabel + " deve contenere almeno una lettera [A-Z]";
                return messaggio;
            }
        }    
        
        
        
        /*    
        if (!espressione.test(pCampo)) {
            messaggio = "L' " + pLabel  + " inserita non &egrave; valida deve contenere almeno un carattere!";
        }*/

        // alert (messaggio)

        return messaggio;
    }    
    
    
    function modificaUsername(frm)
    {
        var titolo = null,
        onclick = null,
        contenuto = null,
        labelButton = null,
        onclickButton = null,
        nuovousername = null,
        parametri = null,
        messaggio = null,
        vecchiausername = null
        ;        
        
        vecchiausername = frm.vecchiausername.value;
        
        titolo = "MODIFICA USERNAME";
        labelButton = "chiudi";
        onclickButton = "<hideThis>";
        nuovousername = document.getElementById('nuovousername').value;
        parametri = "?nuovousername=" + nuovousername;
        
        if (SISAL.isNullOrEmpty(nuovousername))
        {
            document.getElementById("mexbox").style.display = "";
            document.getElementById("messaggio").innerHTML = "Il campo \'Nuovo Username\' deve essere valorizzato";
            return;
        }
        else
        {
            if (nuovousername.length < 6)
            {
                document.getElementById("mexbox").style.display = "";
                document.getElementById("messaggio").innerHTML = "Il campo \'Nuovo Username\' deve essere di almeno 6 caratteri";
                return;                
            }
            
            if (nuovousername.toUpperCase() === vecchiausername.toUpperCase())
            {
                document.getElementById("mexbox").style.display = "";
                document.getElementById("messaggio").innerHTML = "Il \'Nuovo Username\' coincide con il vecchio";
                //document.getElementById("messaggio").innerHTML = "Username non valido o non disponibile";
                return;
            }
            
            messaggio = controlloUsername("Username", nuovousername);
            if (!SISAL.isNullOrEmpty(messaggio))
            {    
                document.getElementById("mexbox").style.display = "";
                document.getElementById("messaggio").innerHTML = messaggio;
                return;
            }    
        }    
        
        SISAL.ajax("/AreaPrivata/pubblico/servlet/ModificaUsername" + parametri, {response: true, success: function (html)
            {
                if (html === "0")
                {
                    contenuto = "La tua username &egrave; stata aggiornata";
                    // LA RILANCIO COSI AGGIORNO I DATI
                    SISAL.ajax("/AreaPrivata/pubblico/datianagrafici.jsp", {target : "datianagrafici"});        
                }
                else
                {
                    contenuto = html;
                }    
            
            
                SISAL.FX.showOnElement_TemplatePopup('body', 'ms.alert.buttonok.html', {"{title}" : titolo, "{content}" : contenuto, "{buttontext}" : labelButton, "{buttonclick}" : onclickButton, width : "410px"});
            }});
        
        
    }        
    
    function controlloEmail(email) {

        var espressione = null,
            messaggio = null;

        // espressione =
        // /^[A-Z_a-z0-9+-]+(\.[A-Z_a-z0-9+-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9-]+)+$/;
        espressione = new RegExp("^[A-Z_a-z0-9+-]+(\\.[A-Z_a-z0-9+-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)+$");
        
        if (!SISAL.isNullOrEmpty(email)) {
            if (!espressione.test(email) || (!email.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi))) {
                // alert("La " + pLabel + " inserita non e' valida!");
                messaggio = "Il campo \'Email\' contiene caratteri non validi.";
            }
        }
        
        return messaggio;
    }            
    
    function modificaProfilo()
    {
    
      //alert("modificaProfilo");
    
        var titolo = null,
        onclick = null,
        contenuto = null,
        labelButton = null,
        onclickButton = null,
        domiciliosi = null,
        parametri = null,
        messaggio = null,
        provinciaDomicilio = null,
        comuneDomicilio = null,
        indirizzoDomicilio = null,
        capDomicilio = null,
        numCivicoDomicilio = null,
        email = null,
        telefono = null,
        telefono_new = null,
        prefisso = null,
        prefisso_new = null,
        nazioneDomicilio = null,
        provincia = null,
        cap = null,
        comune = null,
        indirizzo = null,
        civico = null,
        prefissoOld = null
        ;        
        
        titolo = "MODIFICA RECAPITO";
        labelButton = "chiudi";
        onclickButton = "<hideThis>";
        domiciliosi = document.getElementById('domiciliosi').checked;
        
        //alert("domiciliosi => " + domiciliosi);
        
        provinciaDomicilio = document.getElementById('provinciadomicilioold').value;
        indirizzoDomicilio = document.getElementById('indirizzodomicilioold').value;
        capDomicilio = document.getElementById('capdomicilioold').value;
        numCivicoDomicilio = document.getElementById('civicodomicilioold').value;
        comuneDomicilio = document.getElementById('comunedomicilioold').value;       
        
        provincia = document.getElementById('provinciaRes').value;
        indirizzo = document.getElementById('indirizzoRes').value;
        cap = document.getElementById('capRes').value;
        civico = document.getElementById('civicoRes').value;
        comune = document.getElementById('comuneRes').value;       
        
        /*alert("Provincia => " + provincia);
        alert("indirizzo => " + indirizzo);
        alert("cap => " + cap);
        alert("civico => " + civico);
        alert("comune => " + comune);*/
        
        
        if (!domiciliosi)
        {
            //alert("controllo dati domicilio");

            provinciaDomicilio = document.getElementById('provinciaDomicilio').value;
            //comuneDomicilio = document.getElementById('comuneDomicilio').value;
            indirizzoDomicilio = document.getElementById('indirizzo').value;
            capDomicilio = document.getElementById('cap').value;
            numCivicoDomicilio = document.getElementById('civico').value;
            nazioneDomicilio = document.getElementById('nazioneDomicilio').value;
            
            //alert("nazioneDomicilio => " + nazioneDomicilio)
            //alert("provinciaDomicilio => " + provinciaDomicilio);
            
            if (provinciaDomicilio === "EE")
            {
            
              if (SISAL.isNullOrEmpty(nazioneDomicilio))
              {
                document.getElementById("mexbox").style.display = "";
                document.getElementById("messaggio").innerHTML = "Il campo \'Nazione\' deve essere valorizzato ";
                return;
              }
              else
              {
                comuneDomicilio = document.getElementById('nazioneDomicilio').value;
              }  
            }  
            else
            {
              comuneDomicilio = document.getElementById('comuneDomicilio').value;
            }  
            
            if (SISAL.isNullOrEmpty(provinciaDomicilio))
            {
                document.getElementById("mexbox").style.display = "";
                document.getElementById("messaggio").innerHTML = "Il campo \'Provincia\' deve essere valorizzato ";
                return;
            }
            else if (SISAL.isNullOrEmpty(comuneDomicilio))
            {
                document.getElementById("mexbox").style.display = "";
                document.getElementById("messaggio").innerHTML = "Il campo \'Comune\' deve essere valorizzato ";
                return;
            }    
            else if (SISAL.isNullOrEmpty(trim(indirizzoDomicilio)))
            {
                document.getElementById("mexbox").style.display = "";
                document.getElementById("messaggio").innerHTML = "Il campo \'Indirizzo\' deve essere valorizzato ";
                return;
            }    
            else if (SISAL.isNullOrEmpty(numCivicoDomicilio))
            {
                document.getElementById("mexbox").style.display = "";
                document.getElementById("messaggio").innerHTML = "Il campo \'N.Civico\' deve essere valorizzato ";
                return;
            }
            else if (SISAL.isNullOrEmpty(capDomicilio))
            {
                document.getElementById("mexbox").style.display = "";
                document.getElementById("messaggio").innerHTML = "Il campo \'Cap\' deve essere valorizzato ";
                return;
            }    
            else if (!SISAL.isNullOrEmpty(capDomicilio))
            {
                if (capDomicilio.length < 5)
                {    
                    document.getElementById("mexbox").style.display = "";
                    document.getElementById("messaggio").innerHTML = "Il campo \'Cap\' deve essere di 5 caratteri ";
                    return;
                }    
            }
        }
        else
        {
          provinciaDomicilio = provincia;
          comuneDomicilio = comune;
          indirizzoDomicilio = indirizzo;
          numCivicoDomicilio = civico;
          capDomicilio = cap;
        }

        parametri = "?provinciaDomicilio=" + provinciaDomicilio;
        parametri = parametri + "&comuneDomicilio=" + comuneDomicilio;
        parametri = parametri + "&indirizzo=" + indirizzoDomicilio;            
        parametri = parametri + "&civico=" + numCivicoDomicilio;            
        parametri = parametri + "&cap=" + capDomicilio;
        
        email = document.getElementById('email').value;

        telefono = document.getElementById('telefono').value;
        telefono_new = document.getElementById('telefono_new').value;
        prefisso = document.getElementById('prefisso').value;
        prefisso_new = document.getElementById('prefisso_new').value;
        prefissoOld = document.getElementById('prefissoOld').value;
        
        if (SISAL.isNullOrEmpty(prefissoOld)) 
        {
        	if($('#addPrefisso').css("display") == "none")
        	{
                document.getElementById("mexbox").style.display = "";
                document.getElementById("messaggio").innerHTML = "Clicca sul pulsante modifica e inserisci i campi mancanti";
       			return;
        	}
			else
			{
				if (SISAL.isNullOrEmpty(prefisso_new))
				{
	                document.getElementById("mexbox").style.display = "";
	                document.getElementById("messaggio").innerHTML = "Selezionare un prefisso";
					return;
				}
				else
				{
					prefisso = prefisso_new;
				}
				if (SISAL.isNullOrEmpty(telefono_new))
				{
	                document.getElementById("mexbox").style.display = "";
	                document.getElementById("messaggio").innerHTML = "Inserire il nuovo numero di cellulare";
					return;
				}
				else
				{
					telefono = telefono_new;
				}
			}
        }
        else
        {
        	if(SISAL.isNullOrEmpty(prefisso))
        	{
                document.getElementById("mexbox").style.display = "";
                document.getElementById("messaggio").innerHTML = "Selezionare un prefisso";
				return;
        	}
        }
        
        if (!SISAL.isNullOrEmpty(telefono))
        {        
            if (telefono.length < 7)
            {    
                document.getElementById("mexbox").style.display = "";
                document.getElementById("messaggio").innerHTML = "Il campo \'Cellulare\' deve essere di almeno 7 caratteri";
                return;
            }    
        }    
        
        if (SISAL.isNullOrEmpty(email))
        {
            document.getElementById("mexbox").style.display = "";
            document.getElementById("messaggio").innerHTML = "Il campo \'Email\' deve essere valorizzato ";
            return;
        }    
        else if (SISAL.isNullOrEmpty(telefono))
        {
            document.getElementById("mexbox").style.display = "";
            document.getElementById("messaggio").innerHTML = "Il campo \'Cellulare\' deve essere valorizzato ";
            return;
        }
        
        messaggio = controlloEmail(email);        
        
        if (!SISAL.isNullOrEmpty(messaggio))
        {
            document.getElementById("mexbox").style.display = "";
            document.getElementById("messaggio").innerHTML = messaggio;
            return;
        }
        
        parametri = parametri + "&email=" + email;
        parametri = parametri + "&telefono=" + telefono;
        parametri = parametri + "&prefisso=" + prefisso;
        
        
        //alert("parametri => " + parametri);
        
        
        /*
        if (SISAL.isNullOrEmpty(nuovousername))
        {
            document.getElementById("mexbox").style.display = "";
            document.getElementById("messaggio").innerHTML = "Il campo \'Nuovo Username\' deve essere valorizzato";
            return;
        }*/    
        
       //alert("MODIFICA PROFILO PARAMETRI => " + parametri);
        
        
        SISAL.ajax("/AreaPrivata/pubblico/servlet/ModificaProfilo" + parametri, {response: true, success: function (html)
            {
                if (html === "0")
                {
                    contenuto = "Il tuo profilo &egrave; stato aggiornato";
                    // LA RILANCIO COSI AGGIORNO I DATI
                    SISAL.ajax("/AreaPrivata/pubblico/datianagrafici.jsp", {target : "datianagrafici"});        
                }
                else
                {
                    //contenuto = "Il tuo profilo non &egrave; stato aggiornato";
                    contenuto = html;
                }    
            
            
                SISAL.FX.showOnElement_TemplatePopup('body', 'ms.alert.buttonok.html', {"{title}" : titolo, "{content}" : contenuto, "{buttontext}" : labelButton, "{buttonclick}" : onclickButton, width : "610px"});
            }});    
    }           
    
    
    function modificaDomandeSicurezza()
    {
        var titolo = null,
        onclick = null,
        contenuto = null,
        labelButton = null,
        onclickButton = null,
        domanda1 = null,
        domanda2 = null,
        risposta1 = null,
        risposta2 = null,
        idDomanda1 = null,
        idDomanda2 = null,
        splitDomanda1 = null,
        splitDomanda2 = null
        ;        
        
        titolo = "MODIFICA DOMANDE SICUREZZA";
        labelButton = "chiudi";
        onclickButton = "<hideThis>";

        
        splitDomanda1 = document.getElementById('domSicurezzaUno').value.split("*");
        domanda1 = splitDomanda1[1];
        idDomanda1 = splitDomanda1[0];
        risposta1 = document.getElementById('risposta1').value;
        
        if (SISAL.isNullOrEmpty($.trim(domanda1)))
        {
            document.getElementById("mexbox").style.display = "";
            document.getElementById("messaggio").innerHTML = "Domanda 1 non valorizzata";
            return;
        }
        
        if (SISAL.isNullOrEmpty($.trim(risposta1)))
        {        
            document.getElementById("mexbox").style.display = "";
            document.getElementById("messaggio").innerHTML = "Risposta 1 non valorizzata";
            return;
        }
        
        domanda2="";
        idDomanda2="";
        risposta2="";
        
        if(!SISAL.isNullOrEmpty(document.getElementById('domSicurezzaDue')))
        {	
        	splitDomanda2 = document.getElementById('domSicurezzaDue').value.split("*");
        	domanda2 = splitDomanda2[1];
        	idDomanda2 = splitDomanda2[0];
        	risposta2 = document.getElementById('risposta2').value;
        	
            if (SISAL.isNullOrEmpty($.trim(domanda2)))
            {        
                document.getElementById("mexbox").style.display = "";
                document.getElementById("messaggio").innerHTML = "Domanda 2 non valorizzata";
                return;
            }
            
            if (SISAL.isNullOrEmpty($.trim(risposta2)))
            {        
                document.getElementById("mexbox").style.display = "";
                document.getElementById("messaggio").innerHTML = "Risposta 2 non valorizzata";
                return;
            }
            
            if(idDomanda1 === idDomanda2)
            {
                document.getElementById("mexbox").style.display = "";
                document.getElementById("messaggio").innerHTML = "Le domande devono essere diverse";
                return;
            }
        }
        	
        
        
        //alert("idDomanda1 : " + idDomanda1 + " - domanda1 : " + domanda1 + " - risposta1 : " + risposta1);
        //alert("idDomanda2 : " + idDomanda2 + " - domanda2 : " + domanda2 + " - risposta2 : " + risposta2);
        
        
        parametri = "?iddomanda1=" + idDomanda1;
        parametri = parametri + "&domanda1=" + domanda1;
        parametri = parametri + "&risposta1=" + risposta1;
        parametri = parametri + "&iddomanda2=" + idDomanda2;
        parametri = parametri + "&domanda2=" + domanda2;
        parametri = parametri + "&risposta2=" + risposta2;

        //alert("parametri => " + parametri);
        
        
        SISAL.ajax("/AreaPrivata/pubblico/servlet/ModificaDomandeSicurezza" + parametri, {response: true, success: function (html)
            {
                if (html === "0")
                {
                    contenuto = "Le domande sono state aggiornate";
                    // LA RILANCIO COSI AGGIORNO I DATI
                    SISAL.ajax("/AreaPrivata/pubblico/datianagrafici.jsp", {target : "datianagrafici"});        
                }
                else
                {
                    contenuto = html;
                }    
            
            
                SISAL.FX.showOnElement_TemplatePopup('body', 'ms.alert.buttonok.html', {"{title}" : titolo, "{content}" : contenuto, "{buttontext}" : labelButton, "{buttonclick}" : onclickButton, width : "610px"});
            }});   
             
    }     
    
    function modificaDatiButtonConferma(campo,frm) {
        
        if (campo === "pin")
        {
            modificaPin();
        }    
        else if (campo === "username")
        {
            modificaUsername(frm);
        }    
        else if (campo === "profilo")
        {
            modificaProfilo();
        }
        else if (campo === "domandesicurezza")
        {
            modificaDomandeSicurezza();
        }    
        
    }    
    
    function ricercaComune(selectIndex) {

        var id = null, codProvincia = null, encodeUrl = null;

        id = "comune";
        codProvincia = selectIndex.options[selectIndex.selectedIndex].value;
        
        //alert("codProvincia => " + codProvincia);
        
        if (codProvincia != "EE")
        {
          document.getElementById("comuneEstero").style.display = "none";
          document.getElementById("comuneItalia").style.display = "";
          encodeUrl = "/AreaPrivata/pubblico/servlet/comuni" + "?codProvincia=" + codProvincia;
          SISAL.ajax(encodeUrl, {target : id});
        }
        else
        {
          document.getElementById("comuneEstero").style.display = "";
          document.getElementById("comuneItalia").style.display = "none";
        }

    }
    
      function controlloSessione(paginaCadutaSessioneScaduta)
      {
        
    	//alert("controlloSessione");
    	  
        //alert("paginaCadutaSessioneScaduta => " + paginaCadutaSessioneScaduta);

        paginaCadutaSessioneScaduta1 = "http://" + location.hostname + paginaCadutaSessioneScaduta;
        
        //alert("paginaCadutaSessioneScaduta1 => " + paginaCadutaSessioneScaduta1);
        
        if (SISAL.isNullOrEmpty(SISAL.getCookie("login")))
        {
          onclick = "SISAL.unsetCookie('idSession'); location.href = '" + paginaCadutaSessioneScaduta1 + "'";
          
          SISAL.FX.showOnElement_TemplatePopup('body', 'gntn.alert.buttonok.html', {"{title}" : "Errore", "{content}" : "Sessione scaduta", "{buttonclick}" : onclick, width : '360px'});
          
          //alert(1);
          
          return false;
        }
        else
        {
        	
        	//alert(2);	
        	
          return true;
        }
        
 
        /*
        login.controlloSessioneScaduta();

        if (SISAL.isNullOrEmpty(SISAL.getCookie("login")))
        {
        	return false;
        }	
        
    	return true;   
    	*/     
        
      }  
    
    function back(formId) {

        document.getElementById("stato").value = "form";

        var form = document.getElementById(formId);
        form.submit();

    }
      
    function makeUppercase(iden) {
        document.getElementById(iden).value = document.getElementById(iden).value.toUpperCase();
        return;
    }
    
    function veryObbligatorio(nomeForm) {
        var idForm = document.getElementById(nomeForm).id, campocompilato = [], i, messaggio;

        campocompilato[0] = document.getElementById("idnumeroconto").value;
        campocompilato[1] = document.getElementById("idnome").value;
        campocompilato[2] = document.getElementById("idcognome").value;
        campocompilato[3] = document.getElementById("idprovincianascita").value;
        campocompilato[4] = document.getElementById("idcomunenascita").value;
        campocompilato[5] = document.getElementById("idgiornonascita").value;
        campocompilato[6] = document.getElementById("idmesenascita").value;
        campocompilato[7] = document.getElementById("idannonascita").value;
        campocompilato[8] = document.getElementById("idcodicefiscale").value;

        for (i = 0; i < campocompilato.length; i = i + 1) {
            if (SISAL.isNullOrEmpty(campocompilato[i])) {
                // alert('ATTENZIONE!! Tutti i campi richiesti sono
                // obbligatori.');
                messaggio = 'Tutti i campi richiesti sono obbligatori.';
                SISAL.FX.showOnElement_TemplatePopup('body', 'gntn.alert.buttonok.html', {"{title}" : "Attenzione", "{content}" : messaggio, "{buttonclick}" : '<hideThis>', width : '350px'});             
                
                return;
            }
        }

        document.forms[nomeForm].submit();

        return;
    }
    
    function formSubmit(formId) {

        
        // if (document.getElementById("verificadati").checked)
        // {
        
        //alert("formSubmit => " + formId);
        
        var form = document.getElementById(formId);
        form.submit();
        // }

    }
    
    function checkPassword(id_pin,label){
    	var regex = "^.*(?=.*[a-zA-Z])";
		var numeric = "(?=.*[0-9])";
		var special = "((?=.*[^a-zA-Z0-9]).*)";//Solo questi caratteri sono consentiti
		
		var rc1 = "[Q]{3,}|[W]{3,}|[E]{3,}|[R]{3,}|[T]{3,}|[Y]{3,}|[U]{3,}|[I]{3,}|[O]{3,}|[P]{3,}|";
		var rc2 = "[A]{3,}|[S]{3,}|[D]{3,}|[F]{3,}|[G]{3,}|[H]{3,}|[J]{3,}|[K]{3,}|[L]{3,}|";
		var rc3 = "[Z]{3,}|[X]{3,}|[C]{3,}|[V]{3,}|[B]{3,}|[N]{3,}|[M]{3,}|";
		var rc4 = "[0]{3,}|[1]{3,}|[2]{3,}|[3]{3,}|[4]{3,}|[5]{3,}|[6]{3,}|[7]{3,}|[8]{3,}|[9]{3,}";
		var repeatingChars = rc1 + rc2 + rc3 + rc4;

		var rgc1 = "[Q]{2,}|[W]{2,}|[E]{2,}|[R]{2,}|[T]{2,}|[Y]{2,}|[U]{2,}|[I]{2,}|[O]{2,}|[P]{2,}|";
		var rgc2 = "[A]{2,}|[S]{2,}|[D]{2,}|[F]{2,}|[G]{2,}|[H]{2,}|[J]{2,}|[K]{2,}|[L]{2,}|";
		var rgc3 = "[Z]{2,}|[X]{2,}|[C]{2,}|[V]{2,}|[B]{2,}|[N]{2,}|[M]{2,}|";
		var rcg4 = "[0]{2,}|[1]{2,}|[2]{2,}|[3]{2,}|[4]{2,}|[5]{2,}|[6]{2,}|[7]{2,}|[8]{2,}|[9]{2,}";
		var repeatingGroupChars = rgc1 + rgc2 + rgc3 + rcg4;
		
		var text1 = id_pin;
		
		if (text1.length < 8 || text1.length > 12){
			return("La tua " + label + " deve contenere da un minimo di 8 a un massimo di 12 caratteri tra numeri e lettere maiuscole e minuscole.");
			//return false;
		}
		
		//Controllo caratteri, dimensione
		if (!text1.match(regex)){
			return("La tua "+ label +" deve contenere almeno una lettera.");
			return false;
		}		
		
		//Controllo numerico
		if (!text1.match(numeric)){
			return("La tua "+ label +" deve contenere almeno un numero.");
			//return false;
		}
		
                /*
		//Controllo caratteri speciali
		if (text1.match(special)){
			return("Ci sono caratteri speciali");
			//return false;
		}
                */
		
		//Controllo caratteri ripetuti +3
		if (text1.toUpperCase().match(repeatingChars)){
                  return("Non &egrave; possibile ripetere  pi&ugrave; di due volte gli stessi caratteri.<p style='color:red;'>Esempio di errore: AAABCD1.</p>");
			//return("Non &egrave; possibile ripetere pi&ugrave; di tre volte gli stessi caratteri.");
			//return false;
		}
		
		//Controllo gruppi ripetuti 3+
		var groupCounter = 0;
        	var subStringIndex = 0;
		var curText = "";

        	while (subStringIndex + 2 < text1.length + 1) {
			
			curText = text1.substring(subStringIndex, subStringIndex + 2)
			
			if (curText.toUpperCase().match(repeatingGroupChars)){
                		groupCounter++;
            		}

            		subStringIndex++;
        	}

        	if (groupCounter > 2) {
                  return("Non &egrave; possibile ripetere pi&ugrave; di due volte la stessa sequenza di caratteri.<br><br><p style='color:red;'>" +
                  		"Esempio sequenza errata: AABBCC12.<br>" +
                  		"Esempio sequenza corretta: AABBCD12.</p>");
                  
		//	return false;
        	}

		//return true;
                
                return null;
	}	

   function trim(str){
    return str.replace(/^\s+|\s+$/g, "");
   }

   function matchRegExp(e, reg)
   {
       var key = null,
           keychar = null
           ;
       key = window.event ? e.keyCode : e.which;
       keychar = String.fromCharCode(key);

       if (key === 8 || key === 0)
       {    
           return true;
       }    
       else
       {    
           return reg.test(keychar);
       }    
   }
   
   function numDocumentoCharsOnly(e) {
       return matchRegExp(e, new RegExp("[a-zA-Z0-9]"));
   }
   
   function numsOnly(e) {
       return matchRegExp(e, new RegExp("[0-9]"));
   }
   
   function emailCharNum(e) {
       return  matchRegExp(e, new RegExp("[_a-zA-Z0-9@.-]"));
   }

   function risposteSicurezzaCharsOnly(e) {                                         
       return matchRegExp(e, new RegExp("[\\s0-9a-zA-Z.\\-.']"));
   }  

   function indirizzoCharsOnly(e) {    
       return matchRegExp(e, new RegExp("[\\s\/a-zA-Z0-9\\']"));
   }                          
   
   function numCivicoCharsOnly(e) {
       return matchRegExp(e, new RegExp("[\/a-zA-Z0-9]"));
   }
   
   function codiceFiscaleNumCharsOnly(e) {                                         
       return matchRegExp(e, new RegExp("[a-zA-Z0-9]"));       
   }                
   
   function promoCharsOnly(e) {
       return matchRegExp(e, new RegExp("[a-zA-Z0-9-]"));
   }
   
   
  
    return {
    	numDocumentoCharsOnly : numDocumentoCharsOnly,
    	numsOnly : numsOnly,
    	emailCharNum : emailCharNum,
    	risposteSicurezzaCharsOnly : risposteSicurezzaCharsOnly,
    	indirizzoCharsOnly : indirizzoCharsOnly,
    	numCivicoCharsOnly : numCivicoCharsOnly,
    	codiceFiscaleNumCharsOnly : codiceFiscaleNumCharsOnly,
    	promoCharsOnly : promoCharsOnly,
        radioDati : radioDati,
        modificaDati : modificaDati,
        modificaDatiButtonConferma : modificaDatiButtonConferma,
        ricercaComune : ricercaComune,
        components: components,
        disableCtrlKeyCombination : disableCtrlKeyCombination,
        mischandler : mischandler,
        keyhandler : keyhandler,
        mousehandler : mousehandler,
        controlloSessione : controlloSessione,
        back : back,
        makeUppercase : makeUppercase,
        veryObbligatorio : veryObbligatorio,
        formSubmit : formSubmit,
        checkPassword : checkPassword,
        trim : trim
        
    };
}());

if (SISAL.logger.isInfoEnabled()) {
    SISAL.logger.info("SISAL.GNTN.AREAPRIVATA - namespace creato");
}
  
