/** 
 * mailing.js - File che permette la gestione del form per l'inscrizione/cancellazione dalla mailing list.
 *
 * @client FERRETTI GIORGIO - via Cagli, 14 - 60019 Senigallia (AN) - Italy - <info@ferrettigiorgio.com>   
 * @author Antonio Bencivenga <a.bencivenga@mahs.it>, Marco Giammarini <m.giammarini@mahs.it>
 * @version 0.1.0
 * @copyright 2009-2010 - MAHS di Antonio Bencivenga - www.mahs.it - ALL RIGHT RESERVED  
 * @package 005.002.005.2009-10
 */ 
var Mailing = 
{
  /*
   * Funzione di inizializzazione dell'oggetto. Necessaria per funzionare con mahs.js
   */
  init: function()
  { 
    var addMail = document.getElementById("mailing-add");

    if(addMail != null)
    {	
      MAHSCore.addEventListener(addMail, "click", Mailing.actionListener);
    }
    
    var delMail = document.getElementById("mailing-del");

    if(delMail != null)
    {	
      MAHSCore.addEventListener(delMail, "click", Mailing.actionListener);
    }       
  },
  
  /*addListener: function(event)
  {
    var nomeMailing = document.getElementById("mailing-nome");
    if((nomeMailing.value == "") || (MAHSCore.hasClass(nomeMailing,"not-validate")))
    {
      // Blocco l'evento.
      MAHSCore.preventDefault(event);
      // Avverto l'utente dell'errore.
      Mailing.writeError("ISCRIZIONE - Il campo NOME non e\' valido o e\' vuoto!");	
      return;
    }

    var cognomeMailing = document.getElementById("mailing-cognome");
    if((cognomeMailing.value == "") || (MAHSCore.hasClass(cognomeMailing,"not-validate")))
    {
      // Blocco l'evento.
      MAHSCore.preventDefault(event);
      // Avverto l'utente dell'errore.
      Mailing.writeError("ISCRIZIONE - Il campo COGNOME non e\' valido o e\' vuoto!");	
      return;
    }

    var mailMailing = document.getElementById("mailing-mail");
    if((mailMailing.value == "") || (MAHSCore.hasClass(mailMailing,"not-validate")))
    {
      // Blocco l'evento.
      MAHSCore.preventDefault(event);
      // Avverto l'utente dell'errore.
      Mailing.writeError("ISCRIZIONE - Il campo E-MAIL non e\' valido o e\' vuoto!");	
      return;
    }    
  },*/

  /*delListener: function(event)
  {
    var nomeMailing = document.getElementById("mailing-nome");
    if((nomeMailing.value == "") || (MAHSCore.hasClass(nomeMailing,"not-validate")))
    {
      // Blocco l'evento.
      MAHSCore.preventDefault(event);
      // Avverto l'utente dell'errore.
      Mailing.writeError("CANCELLAZIONE - Il campo NOME non e\' valido o e\' vuoto!");	
      return;
    }

    var cognomeMailing = document.getElementById("mailing-cognome");
    if((cognomeMailing.value == "") || (MAHSCore.hasClass(cognomeMailing,"not-validate")))
    {
      // Blocco l'evento.
      MAHSCore.preventDefault(event);
      // Avverto l'utente dell'errore.
      Mailing.writeError("CANCELLAZIONE - Il campo COGNOME non e\' valido o e\' vuoto!");	
      return;
    }

    var mailMailing = document.getElementById("mailing-mail");
    if((mailMailing.value == "") || (MAHSCore.hasClass(mailMailing,"not-validate")))
    {
      // Blocco l'evento.
      MAHSCore.preventDefault(event);
      // Avverto l'utente dell'errore.
      Mailing.writeError("CANCELLAZIONE - Il campo E-MAIL non e\' valido o e\' vuoto!");	
      return;
    }	  
  },*/

  actionListener: function(event)
  {  
    MAHSCore.preventDefault(event);
    var button = this;

    var formReg = document.getElementById("newsletter");

    // Preparo la variabile per salvare l'oggetto che contiene il report.
    var report = document.getElementById("mailing-report");

    // Controllo che le regole di validazione siano state rispettate.
    if(MAHSAdminForm.formValidation(formReg,report) == 0)
    {  	
      // Disabilito i pulsanti.
      document.getElementById("mailing-add").disabled = true;
      document.getElementById("mailing-del").disabled = true;
      // Inserisco immagine e scritta per il loading.
      MAHSAdminForm.loadingReport(report);
      // Estraggo i parametri dal form.
      var parameters = MAHSAdminForm.getFormParameters(formReg) + "&action=" + button.value;
      // Invio i dati mediante richiesta asincrona al server, dopo un attesa di 2 secondi (rich application).
      var ajaxPause = new MAHSAjaxPause("php/form/mailing.form.php", Mailing.writeSuccess, Mailing.writeError,"",parameters);
      window.setTimeout(ajaxPause.launch(),500);
    }
  },

  writeSuccess: function(responseXML, type, parameters)
  {
    var report = document.getElementById("mailing-report");

	if(responseXML != null)
    {
      // Se il risultato dell'inserimento del nuovo artista è andato a buon fine allora la aggiungo 
      // nella lista degli artisti.
      if(MAHSAjax.xmlValue(responseXML,"validate") == "si")
      {
        // Riabilito i pulsanti.
        document.getElementById("mailing-add").disabled = false;
        document.getElementById("mailing-del").disabled = false;

        MAHSCore.removeClass(report,"report-error");
        MAHSCore.addClass(report,"report-valid");

        switch(parseInt(MAHSAjax.xmlValue(responseXML,"action")))
        {
          case 0:
            report.innerHTML = "Inserimento nella mailing-list avvenuta con successo!";
          break;
          case 1:
      	    report.innerHTML = "Cancellazione dalla mailing-list avvenuta con successo!";
          break;
        }
      }
      else
      {
        // Riabilito i pulsanti.
        document.getElementById("mailing-add").disabled = false;
        document.getElementById("mailing-del").disabled = false;

        // Se i dati non sono validi, lo notifico all'utente.
        MAHSCore.removeClass(report,"report-valid");
        MAHSCore.addClass(report,"report-error");

        switch(parseInt(MAHSAjax.xmlValue(responseXML,"action")))
        {
          case 0:
            switch(parseInt(MAHSAjax.xmlValue(responseXML,"status")))
            {
              case 1:
                report.innerHTML = "Inserimento nella mailing-list NON avvenuta!";
              break;
              case 2:
          	    report.innerHTML = "Inserimento nella mailing-list NON avvenuta! Nome e/o Cognome vuoto.";
              break;
            }
          break;
          case 1:
        	switch(parseInt(MAHSAjax.xmlValue(responseXML,"status")))
        	{
              case 1:
                report.innerHTML = "Eliminazione dalla mailing-list NON avvenuta! I dati non corrispondono.";
              break;
              case 2:
        	    report.innerHTML = "Eliminazione dalla mailing-list NON avvenuta!";
              break;
              case 3:
          	    report.innerHTML = "Eliminazione dalla mailing-list NON avvenuta! Nome e/o Cognome vuoto.";
              break;
        	}
          break;
          case 2:
        	report.innerHTML = "ERRORE, operazione non conosciuta!";  
          break;
        }
      }
    }
    else
    {
      // Riabilito i pulsanti.
      document.getElementById("mailing-add").disabled = false;
      document.getElementById("mailing-del").disabled = false;

      // Se i dati non sono validi, lo notifico all'utente.
      MAHSCore.removeClass(report,"report-valid");
      MAHSCore.addClass(report,"report-error");
      report.innerHTML = "Problemi di connessione con il database, ritenta o ora o piu\' tardi.";
    }
  },
  
  writeError: function(text)
  {
    var report = document.getElementById("mailing-report");

    MAHSCore.removeClass(report,"report-valid");
    MAHSCore.addClass(report,"report-error");
    report.innerHTML = text;		
  }
};

MAHSCore.start(Mailing);
