// JavaScript Document

/*
  Funzioni per la gestione degli errori
  
  Posso aggiungere un argomento ad Xform per definire la classe di errore da usare.
  Se non è definito uso questa di default
  
*/

var XError = {};

XError.check = function( rsp )
{ 
  // Analizzo se è un caso di errore o meno e mi comporto di conseguenza
  if ( rsp["errno"] )
    return XError.fire(rsp);
  else
    return XError.clear(rsp);
}

XError.clear = function( rsp )
{ 
  if ( $(rsp["response"]).innerHTML )
  {
    if( ! $(rsp["obj"]).className ) $(rsp["obj"]).className = "";
    $(rsp["obj"]).className = $(rsp["obj"]).className.replace(" err","");
    $(rsp["response"]).innerHTML = "";
  }  
  
  return true;
}

XError.fire = function( rsp )
{
  // Elimino il messaggio precedente ( per sicurezza, evito i duplicati ) Potri abilitare
  // in xForm la pulizia globale sempre e cmq. Così in caso di sequenza non eseguo l'operazione
  // due volte.
   
  XError.clear(rsp);
  
  // Recupero il messaggio di errore
  var errMex = ERROR[rsp["errno"]]["ita"];
  
  // Tratto il messaggio
  //$(rsp["obj"]).parentNode.style.background = "lightblue";
  if( ! $(rsp["obj"]).className ) $(rsp["obj"]).className = "";
  $(rsp["obj"]).className += " err";
  
  /*
  var nodeError = createElement( "span", "err_" + $(rsp["obj"]).id);
  nodeError.id = "err_" + $(rsp["obj"]).id;
  nodeError.className = "nomeclasse"; // così posso ridefinire la classe via css
                                      // per ogni singola pagina definendo i comportamenti.
                                      // inoltre potrei anche fargli passare tale classe
                                      // integrandola nei dati passati. ma come opzionali
                                      // se c'è la uso altrimenti nisba. Così posso
                                      // gestirla solo dove serve. Dobbiamo aggiungere un parametro
                                      // json opzionale.
                                      // oppure mettiamo nel campo response l'id del campo
                                      // dove deve finire l'errore. uno span ovviamente
                                      // che viene definito con html.
  
  nodeError.innerHTML = errMex;
  $( rsp["response"] ).appendChild(nodeError);
  */
  
  $( rsp["response"] ).innerHTML = errMex;
  
  return false;
}

// Devo definire l'array con gli errori
var ERROR   = [];
ERROR["1"]  = { "ita" : "Campo obbligatorio" };
ERROR["2"]  = { "ita" : "Stringa troppo corta" };
ERROR["3"]  = { "ita" : "Stringa troppo lunga" };
ERROR["4"]  = { "ita" : "Campo non valido" };
ERROR["5"]  = { "ita" : "Valore troppo piccolo" };
ERROR["6"]  = { "ita" : "Valore troppo grande" };
ERROR["7"]  = { "ita" : "Password non valida" };
ERROR["8"]  = { "ita" : "Conferma password non coincide" };
ERROR["9"]  = { "ita" : "Data non valida" };
ERROR["10"] = { "ita" : "Password corrente errata" };
ERROR["11"] = { "ita" : "Conferma mail non coincide" };
ERROR["12"] = { "ita" : "Dati non corretti" };
