campo_nonVuoto =     new Array("nonVuoto", "codice_operatore",
                                           "LRcognome",
                                           "LRnome",
                                           "LRcf",
                                           "LRemail",
                                           "AMMcognome",
                                           "AMMnome",
                                           "AMMcf",
                                           "AMMemail"
                                           );
campo_nonVuoto_utente =     new Array("nonVuoto", "codice_operatore", "cf" );

                                             
campo_cf =        new Array("cf", "LRcf", "AMMcf");
campo_cf_utente = new Array("cf", "cf");
campo_tel =       new Array("telefono", "LRtel", "AMMtel");
campo_email =     new Array("email", "LRemail", "AMMemail");
campo_numeri =    new Array("numeri", "codice_operatore");
campo_primoSelezionato = new Array("primoSelezionato", "lingua");


var traduzioni = new Array();
traduzioni['codice_operatore'] = new Array();
traduzioni['codice_operatore']['ITA']= 'Codice Operatore';
traduzioni['codice_operatore']['DEU']= 'Benutzercode';

traduzioni['cf'] = new Array();
traduzioni['cf']['ITA']= 'Codice Fiscale';
traduzioni['cf']['DEU']= 'Steuernummer';

traduzioni['piva'] = new Array();
traduzioni['piva']['ITA']= 'Partita IVA';
traduzioni['piva']['DEU']= 'MwSt.-Nr.';

traduzioni['LRcognome'] = new Array();
traduzioni['LRcognome']['ITA']= 'Cognome (Legale Rappresentante)';
traduzioni['LRcognome']['DEU']= 'Nachname (Gesetzlicher Vertreter)';

traduzioni['LRnome'] = new Array();
traduzioni['LRnome']['ITA']= 'Nome(Legale Rappresentante)';
traduzioni['LRnome']['DEU']= 'Vorname (Gesetzlicher Vertreter)';

traduzioni['LRcf'] = new Array();
traduzioni['LRcf']['ITA']= 'Codice Fiscale (Legale Rappresentante)';
traduzioni['LRcf']['DEU']= 'Steuernummer (Gesetzlicher Vertreter)';

traduzioni['LRtel'] = new Array();
traduzioni['LRtel']['ITA']= 'Telefono (Legale Rappresentante)';
traduzioni['LRtel']['DEU']= 'Telefon (Gesetzlicher Vertreter)';

traduzioni['LRemail'] = new Array();
traduzioni['LRemail']['ITA']= 'E-mail (Legale Rappresentante)';
traduzioni['LRemail']['DEU']= 'E-mail (Gesetzlicher Vertreter)';

traduzioni['AMMcognome'] = new Array();
traduzioni['AMMcognome']['ITA']= 'Cognome (Amministratore di sistema)';
traduzioni['AMMcognome']['DEU']= 'Nachname (Administrator)';

traduzioni['AMMnome'] = new Array();
traduzioni['AMMnome']['ITA']= 'Nome (Amministratore di sistema)';
traduzioni['AMMnome']['DEU']= 'Vorname (Administrator)';

traduzioni['AMMcf'] = new Array();
traduzioni['AMMcf']['ITA']= 'Codice Fiscale (Amministratore di sistema)';
traduzioni['AMMcf']['DEU']= 'Steuernummer (Administrator)';

traduzioni['AMMtel'] = new Array();
traduzioni['AMMtel']['ITA']= 'Telefono (Amministratore di sistema)';
traduzioni['AMMtel']['DEU']= 'Telefon (Administrator)';

traduzioni['AMMemail'] = new Array();
traduzioni['AMMemail']['ITA']= 'E-mail (Amministratore di sistema)';
traduzioni['AMMemail']['DEU']= 'E-mail (Administrator)';

traduzioni['lingua'] = new Array();
traduzioni['lingua']['ITA']= 'Lingua';
traduzioni['lingua']['DEU']= 'Sprache';



function controllaForm(lingua) {
   var messaggi = new Array();
   var messaggio = '';

   if (document.organismo.cf.value.length != 0) {
       messaggio= codiceFiscaleOrganismo(document.organismo.cf, lingua);
       if (messaggio.length>0) {
          messaggi[messaggi.length]= messaggio;
       }
   }
   else if (document.organismo.piva.value.length != 0) {
       messaggio= PivaOrganismo(document.organismo.piva, lingua);
       if (messaggio.length>0) {
          messaggi[messaggi.length]= messaggio;
       }
   }
   else {
      if (lingua == 'ITA') {
         messaggi[messaggi.length]='E\' necessario che sia compilato almeno un campo tra codice fiscale e partita iva\n';
      }
      else {
         messaggi[messaggi.length]='Es muss mindestens die Steuernummer oder MwSt. ausgefüllt werden\n';
      }
   }
   if (messaggi.length>0) {
      campo_free = (new Array ('aggMessaggio')).concat(messaggi);
     return(controlla (lingua, traduzioni, campo_nonVuoto, campo_numeri, campo_cf, campo_tel, campo_email, campo_primoSelezionato, campo_free))
   }
   else 
      return(controlla (lingua , traduzioni, campo_nonVuoto, campo_numeri, campo_cf, campo_tel, campo_email, campo_primoSelezionato))
}


function codiceFiscaleOrganismo(target, lingua) {
   errore= false;

   confronta = "0123456789";
   cf = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/;
   reTrim=/\s+$|^\s+/g;
   lunghezza = target.value.length;
   analisi = target.value.toUpperCase();
   
   if (lunghezza ==11) {
      for (f=0; f<11; f++) {
         carattere = analisi.substring (f, f+1);
         errore = errore || (confronta.indexOf(carattere) == -1) ? true : false;
      }
   } else {
      if (analisi.length != 0) {
         codiceF = analisi.replace(reTrim,"");
         errore = (cf.test(codiceF) != true) ? true : false;
      }
   }

   if (errore) {
      if (lingua == 'ITA') {
         return("Il codice fiscale inserito nel campo Codice Fiscale non e' valido.");
      }
      else {
         return("Die Steuerkodexnummer im Feld Steuernummer ist ungültig.");
      }
   }
   return "";
}

// Funzione che controlla la validita' della partita iva
function PivaOrganismo(target, lingua) {
   confronta = "0123456789";
   errore= false;
   reTrim=/\s+$|^\s+/g;
   lunghezza = target.value.length;
   analisi =target.value.toUpperCase();
   if (lunghezza == 11) {
      for (f=0; f<11; f++) {
         carattere = analisi.substring (f, f+1);
         errore = errore ||(confronta.indexOf(carattere) == -1) ? true : false;
      }
   } 
   if (errore) {
      if (lingua == 'ITA') {
         return ("Il codice fiscale/partita IVA del campo Partita IVA non e' stato scritto correttamente.\n");
      }
      else {
         return ("Die Steuerkodexnummer/Mehrwertsteuernummer im Feld MwSt.-Nr. wurde nicht korrekt eingegeben.\n");
      }
   }
   return "";
}

function controllaFormUtente(lingua) {
      return(controlla (lingua , traduzioni, campo_nonVuoto_utente, campo_cf_utente));
}



