
/* 
 *  _utenti.js
 *      Classe per la gestione dell'interfaccia degli utenti.
 */

// **************** Set funzioni per DWR ****************

/* IL bean utente */
var utente = { idUtente:"0", idDettaglio:"0", login:"", password:"", attivoSon:"", giorno:"", mese:"", anno:"", scadGiorno:"", scadMese:"", scadAnno:"", dataScadenza:"", nome:"", cognome:"", email:"", annoNascita:"0", ragioneSociale:"", indirizzo:"", n_civ:"", telefono:"", citta:"", provincia:"", cap:"", societa:"", dipartimento:"", istituto:"0", viaf:"", n_civf:"", telefonof:"", cittaf:"", provinciaf:"", capf:"", ruolo:"", portale:"", destinatarioDom:"", ragioneSocialeDom:"", deleted:"n"};

/* IL bean infoDocenti */
var infoIns = { idInsegnamento:"0",
        insegnamento :"",
        ore:"0",
        crediti:"0",
        periodo:"",
        num_studenti:"0",
        num_esami:"0",
        sede_distaccata:"n",
        facolta:"",
        sede:"",
        titolare:"",
        anno_acc:"",
        tipo_laurea:"",        
        corso_laurea:"",        
        settore:"0",
        sector:null
    };

/* IL bean settoreScientifico */
var settore = { id_settore:0, codice:"", ordine:0, descrizione:"" };

var ruoloSelezionato = false;

function resetUtente() {
    utente = { idUtente:"0", idDettaglio:"0", login:"", password:"", attivoSon:"", giorno:"", mese:"", anno:"", scadGiorno:"", scadMese:"", scadAnno:"", dataScadenza:"", nome:"", cognome:"", email:"", annoNascita:"0", ragioneSociale:"", indirizzo:"", n_civ:"", telefono:"", citta:"", provincia:"", cap:"", societa:"", dipartimento:"", istituto:"0", viaf:"", n_civf:"", telefonof:"", cittaf:"", provinciaf:"", capf:"", ruolo:"", portale:"", destinatarioDom:"", ragioneSocialeDom:"", deleted:"n"};
}

function resetInfoIns()
{
    infoIns = { idInsegnamento:"0",
        insegnamento :"",
        ore: "0",
        crediti:"0",
        periodo:"",
        num_studenti:"0",
        num_esami:"0",
        sede_distaccata:"n",
        facolta:"",
        sede:"",
        titolare:"",
        anno_acc:"",
        tipo_laurea:"",
        corso_laurea:"",
        settore:"0",
        sector:null
    };
}

function resetSettore()
{
    settore = { id_settore:0, codice:"", ordine:0, descrizione:"" };
}

//******************************************
// funzioni per la pagina mailing.jsp
//******************************************
function doLoginMailing() {    
    var user = document.getElementById("user").value;
    var password = document.getElementById("password").value;        

    // controlla che i campi username e password siano stati inseriti    
    if (check_login_passwd(user, password))
    { 
        BI.setLoginDWR(function(b)
                                      {
                                        if (b) {
                                            retrieveURL('./Controller.do?query=__USERS_MAILING_TEMPLATE_REFRESH'); 
                                        }
                                        else {
                                            DWRUtil.setValue("risultato","L'username o la password sono errati.");
                                            alert("L'username o la password sono errati.");
                                        }
                                      },user, password);
    }    
}


function iscriviMailing(lc, lf, ls, toPage) {
    //BI.setLoginDWR(null, document.getElementById("user").value, document.getElementById("password").value);
    // stampa la lista delle mailing list, dividendole per aree di appartenenza
    var i;
    // contiene la stringa con coppie "lista:index_lista:index......" es. "0:3_0:5_1:2_2:6"
    // 'lista' prende 0,1 o 2  per Carocci, Faber o Scuolafacendo
    // 'index' corrisponde all'indice della mailing_list nella sottolista.
    var pair = "";
    var str_id = "";
    for (i=0; i<lc; i++)
    {
        if (document.getElementById("id_0_" + i).checked) 
            str_id += document.getElementById("id_0_" + i).value + " ";
    }

    for (i=0; i<lf; i++)
    {
        if (document.getElementById("id_1_" + i).checked)
            str_id += document.getElementById("id_1_" + i).value + " ";
    }

     for (i=0; i<ls; i++){
        if (document.getElementById("id_2_" + i).checked)
            str_id += document.getElementById("id_2_" + i).value + " ";
    }

    //BI.addMailingDWR(function()
    //                {                                                                            
    //                document.location.href="./Controller.do?query="+toPage
    //                alert("Grazie per esserti iscritto alle nostre mailing list. Verrai puntualmente aggiornato sulle nostre novità   editoriali.");
    //                }, str_id);

    document.location.href="./Controller.do?query="+toPage+"&jscr=0&&mailstr="+str_id;    
}




function doneIscrizioneMailing(b) {
    if (b) {                                           
        DWRUtil.setValue("risultato", "<center>Iscrizione avvenuta con successo.</center>");
         alert("Iscrizione avvenuta con successo.")
    } else
    {
        BI.getAlertMessage( function(f) { if(f!="") 
                                          { 
                                         //   DWRUtil.setValue("risultato", "<center>"+f+"</center>");                                             
                                             BI.setAlertMessage(""); 
                                          } } );
    }
}

function cambiaTipoUtenteMailing(tipo) {
    if (tipo>=1 && tipo<=2) BI.setTipoMailingDWR(visualizzaMailing, tipo);
    else alert("INTERNAL ERROR: si è verificato un errore. Perfavore ricarichi la pagina");
}

function visualizzaMailing(f) {
    if(f) go_and_remember_page('__USERS_MAILING_TEMPLATE');
    else alert("INTERNAL ERROR: si è verificato un errore. Perfavore ricarichi la pagina");
}
//*************************
// fine mailing.jsp
//*************************

//***********************************************************
// funzione per il recupero della password di un utente
//***********************************************************

function recuperaPassword(){
 // alert("  recuperaPassword    user="+document.getElementById("user").value);
 // alert("  recuperaPassword    mail_to="+document.getElementById("mail_to").value);
  //  if (document.getElementById("user").value!='' && document.getElementById("mail_to").value!='') {

document.getElementById("user").value='';
document.getElementById("password").value='';
  if ( document.getElementById("mail_to").value!='') { 
      BI.setLoginXRecuperoPassword(do_recuperaPassword, document.getElementById("user").value , document.getElementById("mail_to").value );

  } else {
        DWRUtil.setValue("risultato", "Inserire l'indirizzo e-mail per recuperare la password."); 
        alert("Inserire l'indirizzo e-mail per recuperare la password.");
 
    //    DWRUtil.setValue("risultato", "Inserire lo username e password per recuperare la password."); 
    //    alert("Inserire lo username per recuperare la password.");
    }
}

function do_recuperaPassword(b) {
    if (!b) {       
        BI.getErrorCod(do_error_recuperaPassword);       
    } else { 
        DWRUtil.setValue("risultato", "Username e Password inviate via email.");
         alert("Username e Password inviate via email.");
    }
}

function do_error_recuperaPassword(i) {
//alert("recuperaPassword");
    if(!i) {
        alert("INTERNAL ERROR: si è verificato un errore. Controllare le informazioni inserite e riprovare.");
    } else {
        BI.getErrorMessageByCod(do_write_error_recuperaPassword, i);
    }
}

function do_write_error_recuperaPassword(f) {
    if (!f) {
        alert("INTERNAL ERROR: si è verificato un errore. Perfavore ricarichi la pagina .else");
    } else {
        DWRUtil.setValue("risultato", f);
        alert(f);
    }

    BI.setErrorCod(0);
}

//************************************************************
// fine funzione per il recuopero della password di un utente
//************************************************************



//******************************************
// funzioni per le pagine carta_identita.jsp
//******************************************

function controllaCampiObligatoriStudenti(u, verify_psswd){
    var messaggio = "Attenzione sono stati riscontrati i seguenti errori:\n";
    var valido = true;
    var str = "";

    if (u.nome.length==0){
        valido = false;
        messaggio += " - il campo nome non può essere vuoto\n";
    }
    if (u.cognome.length==0){
        valido = false;
        messaggio += " - il campo cognome non può essere vuoto\n";
    }
    if (u.email.length==0){
        valido = false;
        messaggio += " - il campo email non può essere vuoto\n";
    }
    else {
        if (!validateEmail(u.email)){
            valido = false;
            messaggio += " - il campo email non valido\n";
        }
    }
    str = check_username(u.login);
    if (str.length >0){
        messaggio += str;
        valido = false;      
    }
    if (verify_psswd)
    {
        str = check_password(u.password);
        if (str.length >0){
            messaggio += str;
            valido = false;      
        }
        if (document.getElementById("password").value != document.getElementById("conferma_password").value) {
            valido = false;
            messaggio += " - la password non coincide con la conferma\n";
        }
    }
    else
    {
        if (u.password.length>0 || document.getElementById("conferma_password").value.length>0)
        {
            str = check_password(u.password);
            if (str.length >0){
                messaggio += str;
                valido = false;
            }
            if (document.getElementById("password").value != document.getElementById("conferma_password").value) {
                valido = false;
                messaggio += " - la password non coincide con la conferma\n";
            }
        }
    }

    if (!valido) alert(messaggio);
    return valido;
}

function controllaCampiObligatoriDocentiUniv(u, verify_psswd){
    var messaggio = "Attenzione sono stati riscontrati i seguenti errori:\n";
    var valido = true;
    var str = "";

    if (u.nome.length==0){
        valido = false;
        messaggio += " - il campo nome non può essere vuoto\n";
    }
    if (u.cognome.length==0){
        valido = false;
        messaggio += " - il campo cognome non può essere vuoto\n";
    } 

    if (u.email.length==0){
        valido = false;
        messaggio += " - il campo email non può essere vuoto\n";
    }
    else {
        if (!validateEmail(u.email)){
            valido = false;
            messaggio += " - il campo email non valido\n";
        }
    }    
    if (u.dipartimento.length==0){
        valido = false;
        messaggio += " - il campo dipartimento/istituto non può essere vuoto\n";
    }
    if (u.indirizzo.length==0){
        valido = false;
        messaggio += " - il campo indirizzo (recapito accademico) non può essere vuoto\n";
    }
    if (u.n_civ.length==0){
        valido = false;
        messaggio += " - il campo numero civico (recapito accademico) non può essere vuoto\n";
    }
    if (u.cap.length==0){
        valido = false;
        messaggio += " - il campo cap (recapito accademico) non può essere vuoto\n";
    }
    if (u.citta.length==0){
        valido = false;
        messaggio += " - il campo citta (recapito accademico) non può essere vuoto\n";
    }      
    if (u.provincia.length==0){
        valido = false;
        messaggio += " - il campo provincia (recapito accademico) non può essere vuoto\n";
    }
    
//CONTROLLARE
  //  if (u.telefonof.length==0){
 //      valido = false;
 //       messaggio += " - il campo telefono (recapito accademico) non può essere vuoto\n";
  //  } 

// solo  se sono in insert      da jsp:    bi.utente.getLogin().equals("") ? "disabled" 
if(document.getElementById("utentegetLogin").value ==""){
    str = check_username(u.login);
    if (str.length >0){
        messaggio += str;
        valido = false;      
    }
}
    if (verify_psswd)
    {
        str = check_password(u.password);
        if (str.length >0){
            messaggio += str;
            valido = false;      
        }
        if (document.getElementById("password").value != document.getElementById("conferma_password").value) {
            valido = false;
            messaggio += " - la password non coincide con la conferma\n";
        }
    }
    else
    {
        if (u.password.length>0 || document.getElementById("conferma_password").value.length>0)
        {
            str = check_password(u.password);
            if (str.length >0){
                messaggio += str;
                valido = false;
            }
            if (document.getElementById("password").value != document.getElementById("conferma_password").value) {
                valido = false;
                messaggio += " - la password non coincide con la conferma\n";
            }
        }
    }

    if (!valido) alert(messaggio);
    return valido;
}

function inserisciStudente(){
    DWRUtil.useLoadingMessage();
    DWRUtil.getValues(utente);
   
    var valido = controllaCampiObligatoriStudenti(utente, true);
    if (valido) {
        BI.addUtenteDWR(doInsertQueryUtente, utente);
    } 
}


function inserisciInsegnanti_sf(){
    
    DWRUtil.useLoadingMessage();
    DWRUtil.getValues(utente);

    if (utente.istituto==false)
        utente.istituto=0;

    for (i=0;i<document.forms["istituti"].istituto.length;i++) {
	if (document.forms["istituti"].istituto[i].checked) {
		utente.istituto = document.forms["istituti"].istituto[i].value;
	}
    }

    var valido = controllaCampiObligatoriStudenti(utente, true);

    if (valido) {
        BI.addUtenteDWR(doInsertQueryUtente, utente);
    } 
}

function doInsertQueryUtente(f){
    if (f!=true){
        alert("INTERNAL ERROR: non posso inserire l'utente.");
    } else {
        retrieveURL('./Controller.do?query=__USERS_INSERT');
    }
}

function controlloDati(){
    DWRUtil.useLoadingMessage();
    DWRUtil.getValues(utente);

    var messaggio = "Attenzione sono stati riscontrati i seguenti errori:\n";
    //var valido = true;
    var valido = controllaCampiObligatoriDocentiUniv(utente, true);

    //if (utente.nome.length==0){
      //  valido = false;
       // messaggio += " - il campo nome non può essere vuoto\n";
    //}
    //if (!valido) alert(messaggio);
    //else{
       // retrieveURL('./Controller.do?query=__USERS_INFO_DOCENTI_TEMPLATE');
       // BI.addUtenteDWR(utente);
   // }
        
    if (valido){
        retrieveURL('./Controller.do?query=__USERS_INFO_DOCENTI_TEMPLATE');
        BI.addUtenteDWR(utente);}
}

function inserisciDocenteUniv(){
    DWRUtil.useLoadingMessage();
    DWRUtil.getValues(utente);
    var valido = controllaCampiObligatoriDocentiUniv(utente, true);
    if (valido) {
        BI.addUtenteDWR(showInfoInsegnamentoDocenteUniv, utente);
    } 
}

function inserisciDocenteUnivDaInfo(){
    BI.addUtenteDWR(showInfoInsegnamentoDocenteUniv, utente); 
}

function controlloInsegnamentiDocente(){
 var messaggio = " Premere su 'Conferma dati sull'Insegnameto' "
   // messaggio = "Attenzione sono stati riscontrati i seguenti errori:\n";
  //  messaggio += " - il campo insegnamento non può essere vuoto\n";
    alert(messaggio);
    return false;
}

/*************************
* info_insegnamento.jsp *
*************************/

function showInfoInsegnamentoDocenteUniv(f){
    resetUtente();
    if (f!=true){
        alert("INTERNAL ERROR: non posso inserire l'utente.");
    } else {
    	retrieveURL('./Controller.do?query=__USERS_INSERT_DOCENTI');
        //retrieveURL('./Controller.do?query=__USERS_INFO_DOCENTI_TEMPLATE');
    }
}

function updateSedeDist(b)
{
    infoIns.sede_distaccata = document.getElementById('sede_distaccata').checked ? 's' : 'n';
}

function setTipoLaurea(tipo)
{
    infoIns.tipo_laurea = tipo;
}

function setCorsoLaurea(corso)
{
    infoIns.corso_laurea = corso;
}

function enabledAltroPeriodo(bval)
{
    document.getElementById("altroperiodo").disabled = !bval;
}

function setPeriodo(p)
{    
    infoIns.periodo = p;    
}

function setTitolare(t)
{
    infoIns.titolare = t;
}

function enableAltroTitolare(bTit)
{
    document.getElementById("_altroTitolare").disabled = !bTit;
}

function controllaCampiObligatoriInfoDocentiUniv(i)
{
    var messaggio = "Attenzione sono stati riscontrati i seguenti errori:\n";
    var valido = true;
    var str = "";

    if (i.insegnamento.length==0){
        valido = false;
        messaggio += " - il campo Insegnamento non può essere vuoto\n";
    }
  //  if (i.ore < 1){
  //      valido = false;
  //      messaggio += " - il campo N.Ore non può essere 0\n";
  //  }
    if (i.crediti < 1){
        valido = false;
        messaggio += " - il campo N.Crediti non può essere 0\n";
    }
    if (i.num_studenti < 1){
        valido = false;
        messaggio += " - il campo N.Studenti non può essere 0\n";
    }


    if (i.corso_laurea < 1){
        valido = false;
        messaggio += " - il campo Corso Laurea non può essere vuoto\n";
    }
 //   if (i.num_esami < 1){
 //       valido = false;
 //       messaggio += " - il campo N.Esami non può essere 0\n";
 //   }
 //   if (i.settore < 1){
 //       valido = false;
 //       messaggio += " - il campo Settore scientifico disciplinare non è stato selezionato\n";
 //   } 
 //   if (i.facolta.length==0){
 //       valido = false;
 //       messaggio += " - il campo Facoltà non può essere vuoto\n";
 //   } 
 //   if (i.sede.length==0){
 //       valido = false;
 //       messaggio += " - il campo Sede universitaria non può essere vuota\n";
 //   } 

    if (i.anno_acc=="SELEZIONARE"){
        valido = false;
        messaggio += " - il campo Anno Accademico non può essere vuoto\n";
    }
    if (!valido) alert(messaggio);
    return valido;
}

function inserisciInfoDocenteUniv()
{
    DWRUtil.useLoadingMessage();
    DWRUtil.getValues(infoIns);

    // recupera il valore del flag titolare
    var titolareArray = document.getElementsByName('_titolare');
    for (var i=0; i<titolareArray.length; i++)
    {
        if (titolareArray[i].checked)
        {
            infoIns.titolare=titolareArray[i].value;
            if (infoIns.titolare=='altro')
            {
                var altro = document.getElementById('_altroTitolare').value;
                infoIns.titolare = altro;
            }
            break;
        }
    }

    // recupera il valore del flag periodo
    var periodoArray = document.getElementsByName('periodo');
    for (var i=0; i<periodoArray.length; i++)
    {
        if (periodoArray[i].checked)
        {
            infoIns.periodo=periodoArray[i].value;
            if (infoIns.periodo=='altro')
            {
                var altro = document.getElementById('altroperiodo').value;
                infoIns.periodo = altro;
            }
            break;
        }
    }

    // recupera il valore del flag tipolaurea
    var tipolaureaArray = document.getElementsByName('tipolaurea');
    for (var i=0; i<tipolaureaArray.length; i++)
    {
        if (tipolaureaArray[i].checked)
        {
            infoIns.tipo_laurea=tipolaureaArray[i].value;            
            break;
        }
    
    }

    infoIns.corso_laurea=document.getElementById('corsolaurea').value;

    // recupera i dati del settore    
    settore.id_settore=infoIns.settore;
    var settoreSelect = document.getElementById('settore');
    settore.id_settore = settoreSelect.selectedIndex;
    var settoreText = settoreSelect.options[settoreSelect.selectedIndex].text;    
    var indexBlankSpace = settoreText.indexOf(' ');               
    var settoreClasse = (indexBlankSpace!=-1) ? settoreText.substring(0, indexBlankSpace) : '';
    settore.descrizione = (indexBlankSpace!=-1) ? settoreText.substring(indexBlankSpace+1) : '';
    var indexSlash = settoreClasse.indexOf('/');
    settore.codice = (indexSlash!=-1) ? settoreClasse.substring(0, indexSlash) : '';
    settore.ordine = (indexSlash!=-1) ? new Number(settoreClasse.substring(indexSlash+1)) : 0;
    
    infoIns.sector=settore;
    
    var valido = controllaCampiObligatoriInfoDocentiUniv(infoIns);
    if (valido) {
        BI.addInfoDocentiDWR(doAddInfoUtente, infoIns);
    }
    return valido;
}

function inserisciInfoDocenteUnivModificati(id)
{ 
    BI.deleteInsegnamento(id);
    var inserimento = inserisciInfoDocenteUniv();
    //alert("inserimento"+inserimento);
    if(inserimento){
        //BI.deleteInsegnamento(id);
        retrieveURL('./Controller.do?query=__USERS_INFO_DOCENTI_REFRESH');
    }
}

function doAddInfoUtente(f)
{
   if (f!=true){
        alert("INTERNAL ERROR: non posso inserire l'insegnamento.");
    } else
    {
        resetInfoIns();
        retrieveURL('./Controller.do?query=__USERS_INFO_DOCENTI_REFRESH');
    }
}

function doInsertInsegnamentiUtente(f){
    resetUtente();
    retrieveURL('./Controller.do?query=__USERS_INSERT_INSEGNAMENTI');
}

function deleteIns(id)
{
    BI.deleteInsegnamento(doDeleteIns, id);
}

function doDeleteIns(id)
{
    retrieveURL('./Controller.do?query=__USERS_INFO_DOCENTI_REFRESH');
}
//////////////////////////////////////////////////////////

function  modificaIns(id)
{  
    retrieveURL("./Controller.do?query=__USERS_INSEGNANTI_MODIFICA_TEMPLATE&jscr=0&id_ins="+id);
    BI.modificaInsegnamento(doModificaIns, id);
}


//function modificaInd(id)
//{   
  //   BI.modificaInsegnamento(doModificaIns, id);
//}


function doModificaIns()
{ 
   retrieveURL('./Controller.do?query=__USERS_INSEGNANTI_MODIFICA_TEMPLATE');
}


/////////////////////////////////////////////////




//*************************
// fine carta_identita.jsp
//*************************

//******************************************
// funzioni per la pagina login.jsp
//******************************************

function loginDocente() {
    var login = document.getElementById("login").value;
    var password = document.getElementById("password").value;

    // invia le informazioni di login alla classe BI
    BI.setLoginDWR(doLoginDocente, login, password);
}

function doLoginDocente(f) {
    //alert("dentro doLoginDocente");
    if (f) 
        retrieveURL('./Controller.do?query=__USERS_DOCENTI_LOGIN_SEARCH');
    else {        
        DWRUtil.setValue("errore", "Docente non trovato. Per favore, verificare login e password.");
        alert("Docente non trovato. Per favore, verificare login e password.");
    }
}

function loginInsegnante() {
    var login = document.getElementById("login").value;
    var password = document.getElementById("password").value;

    // invia le informazioni di login alla classe BI
    BI.setLoginDWR(doLoginInsegnante, login, password);
}

function doLoginInsegnante(f) {
    if (f) 
        retrieveURL('./Controller.do?query=__USERS_INSEGNANTI_LOGIN_SEARCH');
    else
        alert("INTERNAL ERROR: Non posso verificare il login");
}

function loginStudente() {
    var login = document.getElementById("login").value;
    var password = document.getElementById("password").value;

    // invia le informazioni di login alla classe BI
    BI.setLoginDWR(doLoginStudente, login, password);
}

function doLoginStudente(f) {
    //alert("dentro doLoginDocente");
    if (f) 
        retrieveURL('./Controller.do?query=__USERS_STUDENTI_LOGIN_SEARCH');
     else {        
        DWRUtil.setValue("errore", "Utente non trovato. Per favore, verificare login e password.");
        alert("Utente non trovato. Per favore, verificare login e password.");
    }
}
   
function login(dest,allegato,path){   
//alert(dest);
    var vlogin = document.getElementById("user").value;
    var vpassword = "";
    var tipo = "1";
    
    if(dest=="__USERS_DOCENTI_INSERT_TEMPLATE"  || dest=="__USERS_STUDENTI_INSERT_TEMPLATE"  ){
          vpassword =  document.getElementById("password2").value;
          tipo = "2"; 
    }else{ 
            if(dest=="__USERS_DOCENTI_LOGIN_ADOZIONI" || dest=="__USERS_ADOZIONI_TEMPLATE"){
                vpassword =  document.getElementById("password").value;
                tipo = "2";
            }
          vpassword =  document.getElementById("password").value; 
    }

    if(dest=="__USERS_DOCENTI_INSERT_TEMPLATE2")
          tipo = "2";

    if(dest=="__CARRELLO_M_ORDINE_TEMPLATE"){ 
         //retrieveURL('./Controller.do?query='+dest); 
        document.location.href = "./Controller.do?query="+dest+"&jscr=0&tipo="+tipo+"&login="+vlogin+"&passwd="+vpassword;  
    }else{ 
    //   alert("do_login-dest="+dest); 
       document.location.href = "./Controller.do?query="+dest+"&jscr=0&tipo="+tipo+"&login="+vlogin+"&passwd="+vpassword; 
} 
 
    
}


function login4(dest){   
//alert("login4");  

    var vlogin = document.getElementById("user").value;
    var vpassword = "" ;
        if(dest=="__USERS_DOCENTI_INSERT_TEMPLATE"  || dest=="__USERS_STUDENTI_INSERT_TEMPLATE"  ){
            vpassword =  document.getElementById("password2").value; 
        }else{ 
          vpassword =  document.getElementById("password").value; 
        }
//alert("vlogin="+vlogin+"    vpassword="+vpassword);
    try{
        BI.setLoginDWR4(vlogin, vpassword);     
         if( ! window.event) {
            sleep();//AC    
            sleep();//AC     
       }
    }catch (err){

   } 
}

function do_login(dest){    
     if(dest=="__CARRELLO_M_ORDINE_TEMPLATE"){ 
             retrieveURL('./Controller.do?query='+dest);   
      }else{ 
            //alert("do_login    dest="+dest); 
            document.location.href = "./Controller.do?query="+dest+"&jscr=0&tipo=1"; 
      } 
}

//AC
function sahiIsIE(){
var browser = navigator.appName;
return browser == "Microsoft Internet Explorer";
}
function sahiCreateRequestObject(){
var obj;
if(sahiIsIE()){
    obj = new ActiveXObject("Microsoft.XMLHTTP");
}
else{
    obj = new XMLHttpRequest();
}
return obj;
}
function sahiSendToServer(url){
try{
    var http = sahiCreateRequestObject();
    var url = url;
    http.open("GET", url, false);
    http.send(null);
    return http.responseText;  
}catch(ex){
    //alert("errore="+ex);
    throw ex;
}
}
function sleep(ms){
sahiSendToServer("http://localhost:8084/caroccifrontend");
//sahiSendToServer("http://localhost:9999/dyn/sleep?ms="+ms);
}

//Fine AC
  

function loginAdozioni(e){
     var keynum=13; 
     if (e!=null){
         if(window.event) { // IE
            keynum = e.keyCode
        }else if(e.which) { // Netscape/Firefox/Opera
            keynum = e.which
        }
    }
    if (keynum==13) { 
        var vdest = document.getElementById("dest").value;
        var vlogin = document.getElementById("user").value;
        var vpassword =  document.getElementById("password").value;
        var tipo = "2";
        //retrieveURL('./Controller.do?query='+vdest);
        document.location.href = "./Controller.do?query="+vdest+"&jscr=0&tipo="+tipo+"&login="+vlogin+"&passwd="+vpassword;  
    }
}

function  loginCodice(e){ 

    var keynum=13; 
    if (e!=null){
        if(window.event) { // IE
            keynum = e.keyCode
        } else if(e.which) { // Netscape/Firefox/Opera
            keynum = e.which
        }
    }  
    
    //press carriage return
    if (keynum==13) { 
         var vdest = document.getElementById("dest").value;
       // alert(vdest);
        login(vdest);
    }
}

//*************************
// fine login.jsp
//*************************

//******************************************
// funzioni per la pagina navigatori.jsp
//******************************************

function visualizzaVociMenu(id, nome) {
    //alert("dentro visualizzaVociMenu");
    // invia le informazioni di login alla classe BI
    BI.setVociMenuDaVisualizzareDWR(doVisualizzaVociMenu, id, nome);
}

function doVisualizzaVociMenu(f) {
    //alert("dentro doVisualizzaVociMenu");
    if (f) 
        retrieveURL('./Controller.do?query=__USERS_VOCIMENU_SEARCH');
    else
        alert("INTERNAL ERROR: Non posso visualizzare la voce selezionata");
}

//*************************
// fine navigatori.jsp
//*************************

function selezionaRuoli() {
    DWRUtil.useLoadingMessage();
    //var sel=document.getElementById("ruoli");

    var s=document.getElementById("ruoli");
    var result = new Array();
    var i;
    var counter = 0;
    for( i = 0; i < s.options.length; i++ ) {
        if ( s.options[i].selected ) {
            result[result.length] = s.options[i].value;
            counter++;
        }
    }
    
    if(counter == 0 ) {
          alert('Nessun campo selezionato');
    } else {
       BI.setSelectedRoleDWR(getSelectedRoleList, result);
    }
} 

function getSelectedRoleList(f){
    DWRUtil.useLoadingMessage();
    if (f!=true){
        alert("INTERNAL ERROR: non posso ottenere la lista dei ruoli selezionati.");
    } else {
        BI.getSelectedRoleList(writeSelectedRole);
    }
}

function writeSelectedRole(roles){
    if (roles.length>0) {
        ruoloSelezionato = true;
    } else {
        ruoloSelezionato = false;
    }
    DWRUtil.useLoadingMessage();
    DWRUtil.removeAllOptions("ruoliSelezionati");
    DWRUtil.addOptions("ruoliSelezionati", roles);
}


function rimuoviRuoli() {
    DWRUtil.useLoadingMessage();
    var sel=document.getElementById("ruoliSelezionati");
    var response=new Array(sel.length);
    var counter = 0;
    for (i=0; i<sel.length; i++){
        if(sel.options[i].selected) {
            response[counter] = sel.options[i].value;
            counter++;
        }
    }

    if(counter == 0 ) {
          alert('Nessun campo selezionato');
    } else {
       BI.setUnselectedRoleDWR(getSelectedRoleList, response);
    }
} 

function ricercaUtente(){
    DWRUtil.useLoadingMessage();

    var login = document.getElementById("login").value;
    var email = document.getElementById("email").value;
    var nome = document.getElementById("nome").value;
    var cognome = document.getElementById("cognome").value;
    var ruolo = document.getElementById("ruolo").value;

/*
    alert("login: '"+login+"' (size:"+login.length+")");
    alert("email: '"+email+"' (size:"+email.length+")");
    alert("nome: '"+nome+"' (size:"+nome.length+")");
    alert("cognome: '"+cognome+"' (size:"+cognome.length+")");
    alert("ruolo: '"+ruolo+"' (size:"+ruolo.length+")");
*/

    var parametri = "";

    if (login.length>0) {
        parametri = parametri + "<login>"+ login + "</login>";
    }
    if (email.length>0) {
        parametri = parametri + "<email>"+ email + "</email>";
    }
    if (nome.length>0) {
        parametri = parametri + "<nome>"+ nome + "</nome>";
    }
    if (cognome.length>0) {
        parametri = parametri + "<cognome>"+ cognome + "</cognome>";
    }
    if (ruolo.length>0) {
        parametri = parametri + "<ruolo>"+ ruolo + "</ruolo>";
    }

//    alert("parametri: '"+parametri+"' (size:"+parametri.length+")");

    if (parametri.length>0) {
        BI.setParametriRicercaUtente(doSearchQueryUtente, parametri);
    } else {
        alert("Nessun parametro per la ricerca inserito.");
    }
}

function doSearchQueryUtente(f){
    if (f!=true){
        alert("INTERNAL ERROR: non posso inserire l'utente.");
    } else {
        retrieveURL('./Controller.do?query=__USERS_SEARCH');
    }
}

function modificaUtente(){
    var sel = document.getElementById("risultati");
    var ut = sel.options[sel.selectedIndex].value;
    BI.setParametriRicercaUtente(doUpdateTemplateQueryUtente, ut);
}

function doUpdateTemplateQueryUtente(f){
    if (f!=true){
        alert("INTERNAL ERROR: non posso inserire l'utente.");
    } else {
        retrieveURL('./Controller.do?query=__USERS_UPDATE_TEMPLATE');
    }
}

function aggiornaUtente(){
    DWRUtil.useLoadingMessage();
    BI.resetUserBeanOnlyDWR(execAggiornaUtente);
}

function execAggiornaUtente(f)
{
    var check = false;
    if (f==true)
    {
        DWRUtil.getValues(utente);                

        if (utente.ruolo == 'Docente')
            if (utente.portale != 'Scuolafacendo')
                check = controllaCampiObligatoriDocentiUniv(utente, false);
            else
            {
                for (i=0;i<document.forms["istituti"].istituto.length;i++) {
                    if (document.forms["istituti"].istituto[i].checked) {
                            utente.istituto = document.forms["istituti"].istituto[i].value;
                    }
                }

                check = controllaCampiObligatoriStudenti(utente, false);
            }
        else
            if (utente.ruolo == 'Generico')
                check = controllaCampiObligatoriStudenti(utente, false);


        if (check)
            BI.addUtenteDWR(doUpdateQueryUtente, utente);
    }
}

function doUpdateQueryUtente(f){
    if (f!=true){
        alert("INTERNAL ERROR: non posso aggiornare l'utente.");
    } else {
        retrieveURL('./Controller.do?query=__USERS_UPDATE');
    }
}

function checkMsgMailing(msg){
    if ((msg != null) && (msg != "")) {
        alert(msg);
    }
}


