// Scripts per la convalida e l'invio dei messaggi
// Scritto da me...deh!
var sd = "";
var cn = "";
var nm = "";
var cf = "";
var gg = "";
var mm = "";
var aa = "";
var na = "";
var pa = "";
var rz = "";
var pz = "";
var vi = "";
var cp = "";
var tl = "";
var cl = "";
var pr = "";
var uf = "";
var mt = "";
var sr = "";
var rt = "";
var ma = "";
var ct = "";
var cookie = "";
var ruolo = false;
var nonRuolo = false;

//certificati per servizio
var giuridico = new Array("Attestato di servizio",
                          "Certificato di servizio standard personale a tempo indeterminato",
                                                                                                        "Certificato di servizio standard personale a tempo indeterminato relativo ai supplenti delle istituzioni scolastiche",
                          "Certificato di servizio standard personale a tempo determinato (escluso supplenti istituzioni scolastiche)",
                          "Certificati di servizio contenenti dati e informazioni particolari",
                          "Certificati di servizi prestati a notula/incarico professionale");
var previdenziale = new Array("Certificato di servizio standard personale a tempo indeterminato ad uso previdenziale",
                              "Certificato di servizio standard personale a tempo determinato ad uso previdenziale (compresi supplenti istituzioni scolastiche)",
                              "Certificazione per iscrizione ad albi professionali",
                              "Certificato di servizio relativo a servizi prestati presso enti disciolti");
var economico = new Array("Dichiarazione per la concessione di indennita' di disoccupazione requisiti ridotti (relativa ai periodi lavorati nell'anno precedente)",
                          "Dichiarazione per la concessione di indennita' di disoccupazione ordinaria (relativa ai periodi lavorati nel biennio precedente)",
                          "Certificazione di servizi prestati presso il Comune di Firenze con versamenti I.N.P.S.");
//indirizzi email dei servizi
var indirizzo = new Array("certservizio@comune.fi.it",
                          "certprevidenziali@comune.fi.it",
                          "certdisoccupazione@comune.fi.it");
var indirizzoNDR = new Array("certserviziondr@comune.fi.it");

//nomi dei servizi
var certificati = new Array ("Certificazioni&nbsp;PO&nbsp;Trattamento&nbsp;Giuridico",
                             "Certificazioni&nbsp;U.O.C&nbsp;Trattamento&nbsp;Previdenziale",
                             "Certificazioni&nbsp;PO&nbsp;Trattamento&nbsp;Economico");
//pagine html dei servizi
var pagine = new Array("giuridico.html", "previdenziale.html", "economico.html");

/*function isSetCookie() {
  if (getCookie("cct") != null) return inviaMessaggio();
  else {
    alert("La richiesta non può essere inoltrata\nPremendo 'Ok' sarai indirizzato alla pagina appropriata");
    window.document.economico.action = "richiesta.html";
    return;
  }
}*/

function addToCookie(nome, valore) {
  var aux = "&";
  if (cookie != "")
          cookie += aux;
  cookie += nome + "=" + escape(valore);
}

function setCookie(expires, path, domain, secure) {
  document.cookie += cookie +
  ((expires) ? "; expires=" + expires.toGMTString() : "") +
  ((path) ? "; path=" + path : "") +
  ((domain) ? "; domain=" + domain : "") +
  ((secure) ? "; secure" : "");
}

function deleteCookie(close) {
        //alert("inizio deleteCookie");  //!! debug 30-12-05
  var data = new Date();
  setCookie(new Date(data.getTime() - 10 * 1000 * 3600 * 24));
        //cookie = "";
        if (close == true) { /*alert("close window: " + close);*/ window.close(); }  //!! debug 30-12-05
        //else alert("close window: " + close);  //!! debug 30-12-05
        //alert("fine deleteCookie");  //!! debug 30-12-05
}

function getCookie(name) {
  var cName = name + "=";
  var dc = document.cookie;
  if (dc.length > 0) {
    begin = dc.indexOf(cName);
    if (begin != -1) {
      begin += cName.length;
      end = dc.indexOf("&", begin);
      return unescape(dc.substring(begin, end));
    }
  }
  return null;
}

function trim(stringa) {
  var re = /\s+$|^\s+/g;        //qualunque spazio bianco a inizio e/o fine del testo
  return stringa.replace(re, "");
}

function vuoto(campo) {
  if ((trim(campo.value) == "") || (campo.value == null)) {
          alert("Il campo '" + campo.name.toUpperCase() + "' è obbligatorio");
          campo.focus();
          return true;
  }
  else return false;
}

function controllaData(gg, mm, aa) {
  var mesi = new Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
  var giorni = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
  if ((aa.value % 4) == 0) giorni[1] = 29;
  if (gg.value > giorni[mm.value - 1]) {
          alert("La data inserita non è corretta: " + gg + "/" + mm + "/" + aa);
          gg.focus();
          return false;
  }
  else return true;
}

function controllaTesto(campo) {
  var re = /[^a-zA-Zàèéìòù()'\s-.]+/g;
  if (re.test(campo.value)) {
          alert("Il campo '" + campo.name.toUpperCase() + "' contiene caratteri non ammessi: " + campo.value);
          campo.focus();
          return true;
  }
  else return false;
}

function controllaNumero(campo) {
  var re = /^[0-9]{5,}$/;
  if (campo.value != "") {
          if (!re.test(campo.value)) {
                  alert("Il campo '" + campo.name.toUpperCase() + "' non è corretto: " + campo.value);
                  campo.focus();
                  return true;
          }
          else return false;
  }
  else return false;
}

function controllaTelefono(campo) {
  var re = /^[0-9]{2,}[\/\-\\]?[0-9]{5,}$/;
  if (campo.value != "") {
          if (!re.test(campo.value)) {
                  alert("Il campo '" + campo.name.toUpperCase() + "' contiene caratteri non ammessi: " + campo.value);
                  campo.focus();
                  return true;
          }
          else return false;
  }
  else return false;
}

function controllaFiscale(campo){
  var re = /^[a-zA-Z]{6}\d{2}[a-zA-Z]\d{2}[a-zA-Z]\d{3}[a-zA-Z]$/;
  if (!re.test(campo.value)) {
          alert("Il campo '" + campo.name.toUpperCase() + "' non è corretto: " + campo.value);
          campo.focus();
          return true;
  }
  else return false;
}

function scegliPagina(i) {
  var finestra = window.open(pagine[i], "", "toolbar=0,location=0,menubar=0,dependent='yes',resizable=1,scrollbars=1,status=1,titlebar=1");
  finestra.resizeTo(800,600);
}

function scegliIndirizzo(ufficio) {
        //alert("inizio scegliIndirizzo -- ufficio: " + ufficio);  debug //!! 30-12-05
        switch (ufficio) {
                case "tg":
                                                if ((nonRuolo) && (ruolo)) {
                                                        return (indirizzo[0] + ";" + indirizzoNDR[0]);
                                                }
                                                else if ((nonRuolo) && (!ruolo)) {
                                                        return indirizzoNDR[0];
                                                }
                                                else return indirizzo[0];
                case "tp":
                                                return indirizzo[1];
                case "te":
                                                return indirizzo[2];
        }
}

function inviaMessaggio() {
  var tipo = "text/plain";

//Dati del richiedente
  var messaggio = "Dati del richiedente\n\nCognome: "+getCookie("ccn")+"\n";
  messaggio += "Nome: "+getCookie("cnm")+"\n";
  messaggio += "Codice Fiscale: "+getCookie("ccf")+"\n";
  messaggio += "Nato il: "+getCookie("cda")+"\n";
  messaggio += "Nato a: "+getCookie("cna")+" ("+getCookie("cpa")+")\n";
  messaggio += "Residente in: "+getCookie("cvi")+", "+getCookie("crz")+" ("+getCookie("cpz")+")";
  if ((getCookie("ccp")) != null)
          messaggio += ", "+getCookie("ccp")
  messaggio += "\n";
  if ((getCookie("ctl")) != null)
                messaggio += "Telefono: "+getCookie("ctl")+"\n";
  if ((getCookie("ccl")) != null)
    messaggio += "Cellulare: "+getCookie("ccl")+"\n";
  if ((getCookie("cpr")) != null)
                messaggio += "Profilo professionale: "+getCookie("cpr")+"\n";
  if ((getCookie("cuf")) != null)
                messaggio += "Ufficio: "+getCookie("cuf")+"\n";
  if ((getCookie("cmt")) != null)
    messaggio += "Matricola: "+getCookie("cmt")+"\n";
        //messaggio += "Impiegato a tempo "+getCookie("csr")+"\n";
  messaggio += "Rilascio certificato: "+getCookie("crt")+"\n";

//Copie dei certificati richiesti è un po una porcata ... MA FUNZIONA!
  messaggio += "Certificati richiesti\n\n";
  var myForm = eval(document.forms[0]);
  var formName = eval(myForm.name);
  var formLen = eval(myForm.length - 2);
        //alert("formLen: " + formLen);  //!! debug 30-12-05
  var mySelect;
  var myNextSelect;
        var text = false;
        var textField;
        var textValue;
  var cert = false;                                //controlla se almeno un certificato è stato scelto
  var i = 0;
  while(i < formLen) {
    mySelect = eval(myForm.elements[i]);
//prendo l'elmento select-one i-esimo
    if ((mySelect.type == "select-one") && (mySelect.value != "")) {
       cert = true;
       messaggio += "N. " + mySelect.value + " copie: " + formName[i];
//porcata doppia -- individuo l'unico certificato da mandare all'indirizzo per NDR del trattamento giuridico
                         if ((nonRuolo == false) && (formName[i] == giuridico[3]))        {
                                        nonRuolo = true;
                         }
                         else ruolo = true;
//sempre peggio -- guardo se il campo successivo è un text field
//ne esiste solo uno che deve essere compilato se la select precedente non è vuota!
       myNextSelect = myForm.elements[i+1];
       if (myNextSelect.type == "text") {
                                        text = true;
                                        textField = myNextSelect;
                                        textValue = trim(myNextSelect.value);
                                        //alert("myNextSelect.value (ente per cui si è prestato servizio): " + trim(myNextSelect.value));  //!! debug 30-12-05
                                        messaggio += " (" + textValue.toUpperCase() + ")\n";
       }
       else messaggio += "\n";
    }
    i++;
  }
        if ((getCookie("csd")) != null)
                messaggio += "\nDa presentare presso la sede I.N.P.S di: "+ getCookie("csd")+"\n";

  if (!cert) {
     alert("Scegliere almeno una certificazione");
     return "";
  }
        if (text && vuoto(textField))
                return false;

//Form di riepilogo e invio mail
  var ufficio = getCookie("cct");
        var cdest = scegliIndirizzo(ufficio);
        //alert("fine scegliIndirizzo -- cdest: " + cdest);  //!! debug 30-12-05
        //nonRuolo = false;
        //ruolo = false;
  var cogg = getCookie("oggetto");

  var testo = "<html><title>Riepilogo della richiesta inoltrata</title><body><div align=center><h3>Riepilogo della richiesta</h3><p>";
  testo += "<form name='mailform' action='mailto:"+cdest+"?Subject="+cogg+"' method='post' ENCTYPE='"+tipo+"'>";
  testo += "<textarea name=' ' rows=30 cols=55 readonly>"+messaggio+"</textarea>";
        //testo += "<p><p><input name=' ' type='submit' value='Invia'>&nbsp;";
  testo += "<p><input name=' ' type='button' value='Chiudi' onClick='javascript:window.close()'>";
  testo += "</form></div>";

  var finestra = window.open('', target="_self");
  finestra.document.write(testo);
        //deleteCookie(false);
  var data = new Date();
  document.cookie += ";expires=" + new Date(data.getTime() - 10 * 1000 * 3600 * 24);
        var ok = confirm("Inviare la richiesta?");
        if (ok) {
                finestra.document.mailform.submit();
                finestra.document.close();
                finestra.close();
        }
        else finestra.document.close();
        return true;
}

function convalida() {
  cookie = "";
//sede I.N.P.S - OBBLIGATORIO PER CERT. DISOCCUPAZIONE
        sd= eval("dati.sede_inps");
        if (controllaTesto(sd)) return false;
//nome e cognome - OBBLIGATORI
  cn = eval("dati.cognome");
  if (vuoto(cn) || controllaTesto(cn)) return false;
  addToCookie("ccn", trim(cn.value.toUpperCase()));
  nm = eval("dati.nome");
  if (vuoto(nm) || controllaTesto(nm)) return false;
  addToCookie("cnm", trim(nm.value.toUpperCase()));

//codice fiscale - OBBLIGATORIO
  cf = eval("dati.codice");
  //alert("Fiscale "+controllaFiscale(cf));
  if (vuoto(cf)|| controllaFiscale(cf)) return false; //disabilitato per le prove -- DA SCOMMENTARE!!
  addToCookie("ccf", trim(cf.value.toUpperCase()));

//data di nascita - OBBLIGATORIO
  gg = eval("dati.giorno");
  mm = eval("dati.mese");
  aa = eval("dati.anno");
  if (vuoto(gg) || vuoto(mm) || vuoto(aa) || !(controllaData(gg, mm, aa))) return false;
  data = eval(gg.value) + "/" + eval(mm.value) + "/" + eval(aa.value);
  addToCookie("cda", data);

//luogo di nascita - OBBLIGATORIO
  na = eval("dati.nato_a");
  if (vuoto(na) || controllaTesto(na)) return false;
  addToCookie("cna", trim(na.value.toUpperCase()));
  pa = eval("dati.prov_a");
  if (vuoto(pa)) return false;
  addToCookie("cpa", pa.value);

//residenza - OBBLIGATORI
  rz = eval("dati.residente");
  if (vuoto(rz) || controllaTesto(rz)) return false;
  addToCookie("crz", trim(rz.value.toUpperCase()));
  pz = eval("dati.prov");
  if (vuoto(pz)) return false;
  addToCookie("cpz", pz.value);
  vi = eval("dati.via");
  if (vuoto(vi)) return false;
  addToCookie("cvi", trim(vi.value.toUpperCase()));

//cap, telefono e cellulare - OPZIONALI
  cp = eval("dati.cap");
  if (controllaNumero(cp)) return false;
  if (cp.value != "") addToCookie("ccp", trim(cp.value));
  tl = eval("dati.tel");
  if (controllaTelefono(tl)) return false;
  if (tl.value != "") addToCookie("ctl", trim(tl.value));
  cl = eval("dati.cell");
  if (controllaTelefono(cl)) return false;
  if (cl.value != "") addToCookie("ccl", trim(cl.value));

//profilo professionale, ufficio e matricola - OPZIONALI
  pr = eval("dati.profilo");
  if (pr.value != "") addToCookie("cpr", trim(pr.value.toUpperCase()));
  uf = eval("dati.ufficio");
  if (uf.value != "") addToCookie("cuf", trim(uf.value.toUpperCase()));
  mt = eval("dati.matricola");
  if (controllaNumero(mt)) return false;
  if (mt.value != "") addToCookie("cmt", trim(mt.value));

//radio button Determinato/Indeterminato - SOPPRESSO
        //sr = eval("dati.servizio");
        //var i = 0;
        //while(!sr[i].checked) { i++; }
        //var _sr = sr[i].value;
        //addToCookie("csr", _sr);

//radio button Modalità di rilascio certificato
  rt = eval("dati.ritiro");
  i = 0;
  while(!rt[i].checked) { i++; }
  var _rt = rt[i].value.toUpperCase();
  addToCookie("crt", _rt);

//mail interna - SOPPRESSA
        //ma = eval("dati.email");
        //addToCookie("cma", trim(ma.value));

//radio button Tipo di certificazioni (per ufficio)
  ct = eval("dati.certificati");
  i = 0;
  while(!ct[i].checked) { i++; }
  var _ct = ct[i].value;
        //alert("_ct: " + _ct); //!! debug 30-12-05
        if ((_ct == "te") && (vuoto(sd))) {
        //alert("Inserire la sede I.N.P.S presso la quale si desiderà presentare la certificazione"); //!! debug 25-02-06
                sd.focus();
                return false;
        }
        else {
                if (!controllaTesto(na))
                        addToCookie("csd", trim(sd.value.toUpperCase()));
                else return false;
        }
        addToCookie("cct", _ct);
  addToCookie("oggetto", certificati[i]);
  addToCookie("fine", "fine");
  setCookie();
  var finestra = window.open(pagine[i], "", "toolbar=0,location=0,menubar=0,dependent='yes',resizable=1,scrollbars=1,status=1,titlebar=1");
}
