var arrHeuresAct = new Array(); // dans ajouterAtelier.php

var newAjax = function() {
    var ajax = null;
    if(window.XMLHttpRequest) {
        try {
            ajax = new XMLHttpRequest();
        } catch(e) {
            ajax = false;
        }
    } else if(window.ActiveXObject) {
        try {
            ajax = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(e) {
            try {
                ajax = new ActiveXObject("Microsoft.XMLHTTP");
            } catch(e) {
                ajax = false;
            }
        }
    }
    return ajax;    
};

var getElementsByClassName = function(clsName){
    var retVal = new Array();
    var elements = document.getElementsByTagName("*");
    for(var i = 0;i < elements.length;i++){
        if(elements[i].className.indexOf(" ") >= 0){
            var classes = elements[i].className.split(" ");
            for(var j = 0;j < classes.length;j++){
                if(classes[j] == clsName)
                    retVal.push(elements[i]);
            }
        }
        else if(elements[i].className == clsName)
            retVal.push(elements[i]);
    }
    return retVal;
};

var validerLogin = function() {
    
        var _user = $F("txtLogin");
        var _pwd =  $F("txtPwd");
        
        if( _user.length == 0 || _pwd.length == 0 ) {
            $("errLogin").innerHTML = "Veuillez spécifier un code d'usager et un mot de passe.";
            $("errLogin").style.display = 'block';
        } else { 
            $("frmLoginAct").submit();   
        }  
};

var checkEnter = function(e) {
    
    var characterCode = null;
        
    if(e && e.which) {
        e = e;
        characterCode = e.which;
    } else{
        e = event
        characterCode = e.keyCode;
    }

    if(characterCode == 13) {
        return true;
    } else{
        return false;
    }
};

var envoyerForm_Index = function(e) {
   if( checkEnter(e) ) {
       alert("envoie formulaire");
   } 
};

var supprimerEcole = function(id) {
  if( confirm("Attention! Vous êtes sur le point de supprimer une école.\nTous les élèves associés à cette école seront également supprimés. Êtes-vous certain?") ) {
      document.location.href='supprimerEcole.php?IdEcole='+id;
  }  
};

var genererMdpRep = function() {
    if( confirm("Attention! Vous êtes sur le point de générer un nouveau mot de passe pour le compte de ce répondant.\nÊtes-vous certain?") ) {
        alert("OK");
    }  
};

var afficherAtelier = function() {
    var id = $("lstIdCegep").value;
    if(id != '') {
        document.location.href = 'admAtelier.php?id=' + id;
    } else {
        alert("Veuillez choisir un cégep dans la liste.");
        $("lstIdCegep").focus();
    }
};

var swMenu = function(id) {
    for(var i = 1; i <= 3; i++) {
        if( id == i ) {
            $("menuDiv_"+i).style.display = 'block';
            $("menuLocal_"+i).className = 'menuLocal_on';
        } else {
            $("menuDiv_"+i).style.display = 'none';
            $("menuLocal_"+i).className = 'menuLocal_off';
        }    
    }
};

var lancerRechercheLocal = function(IdCegep, NbPlaces) {
    if( IdCegep == '' || NbPlaces == '' ) {
        alert("Le cégep ou le nombre de place n'a pas été spécifié.");    
    } else {
        
        // Étape 1 : Chargement des paramètres pour la recherche.
        var params = new String();
        var arrServices = new Array();
        var arrRetour = getElementsByClassName('chkServices'); 
        var totalCheck = 0;
        
        for(var i = 0; i < arrRetour.length; i++) {
            var obj = $(arrRetour[i].id);
            if( obj.checked ) {
                arrServices.push((obj.id).replace("chkSrv_", ""));
                totalCheck++;
            }    
        }
        
        if( totalCheck == 0 ) {
            alert("Vous devez sélectionner au-moins un service requis pour effectuer une recherche.");
        } else {
            var total = arrServices.length;
            for(var j=0; j < total;j++) {
                params += arrServices[j];
                if( j < total-1 )
                    params += ',';     
            }
            
            try {
                var ajax = newAjax();
                var strURLSearch = 'getLocaux.php?id='+IdCegep+'&services='+params+'&nb='+NbPlaces;
                $("loadingAJAX").style.display = 'block';
                 
                // Paramètrage de la réponse
                ajax.onreadystatechange = function(){
                    if(ajax.readyState == 4) {
                          if(ajax.status == 200) {
                            // Validation des données.
                            var objXML = ajax.responseXML;
                            var locaux = objXML.getElementsByTagName("local");
                            if( locaux.length == 0 ) {
                                alert("Aucun local disponible ne correspond à vos critètres. Veuillez recommencer.");
                            } else {
                                for(var i=0; i < locaux.length; i++) {
                                    
                                    var objLocal = locaux[i];
                                    
                                    // On va chercher les informations.
                                    var numero = objLocal.getElementsByTagName("numero")[0].firstChild.nodeValue;
                                    var places = objLocal.getElementsByTagName("places")[0].firstChild.nodeValue;
                                    var description = objLocal.getElementsByTagName("description")[0].firstChild.nodeValue;
                                    
                                    // Liste des services.
                                    var services = objLocal.getElementsByTagName("service");
                                    for(k=0; k < services.length; k++) {    
                                        var objService = services[k];
                                        alert("IdService: " + objService.getAttribute("id"));
                                    }
                                    
                                     
                                    
                                     
                                }        
                            }
                            
                            $("loadingAJAX").style.display = 'none';
                          }
                     }
                };
                         
                ajax.open('GET', strURLSearch, true);
                ajax.send(null);
                
            } catch(e) {
                alert("Erreur AJAX!");
            }       
        }
    } 
};

var supprimerLocal = function(IdLocal) {
    if( confirm("Attention!\nVous êtes sur le point de supprimer un local. Le système fera une vérification si ce local peut-être supprimé à l'étape suivante. Êtes-vous certain de vouloir supprimer ce local ?") ) {
        if( IdLocal == '' ) {
            alert("Une erreur est survenue, le numéro du local est vide.");
        } else {
            document.location.href='supprimerLocal.php?IdLocal='+IdLocal;
        }  
    }   
};

var infoLocal = function(IdLocal) {
  var win = window.open("infoLocal.php?IdLocal="+IdLocal, "fenetre1","width=600,height=400");  
};

var chercherArray = function(arrRecherche, valeur) {
    for(var i =0; i < arrRecherche.length; i++ ) {
        if( arrRecherche[i] == valeur )
            return i;
    }
    return -1;   
};

var choisirDateActivite = function() {
  // Validation des champs de la date.
  // j,m,a > 0
  var j = $F("j");
  var m = $F("m");
  var a = $F("a");
  // Validation des heures.
  // hdX > 0, mdX > -1
  var hd1 = $F("hd1");
  var hd2 = $F("hd2");
  var md1 = $F("md1");
  var md2 = $F("md2");
  if( j == 0 || m == 0 || a == 0 ) {
      alert("La date sélectionnée n'est pas valide. Veuillez choisir une date valide, par exemple: 1 janvier 2009.");
  } else {
      // Validation des heures.
      if( hd1 == 0 || hd2 == 0 ) {
          alert("L'heure de départ ou de fin n'est pas valide.");
      } else {
          if( md1 == -1 || md2 == -1 ) {
              alert("Les minutes de l'heure de départ ou de fin ne sont pas valides.");
          } else {
              // Vérification que l'heure de départ doit être supérieure à l'heure de début.
              if( hd2 < hd1 ) {
                alert("L'heure de fin d'activité doit être égale ou supérieure à l'heure de départ.");
              } else if( (hd1 == hd2) && (md2 < md1) ) {
                  alert("Les minutes de l'heure de fin doivent être supérieure à celles de l'heure du début.");
              } else {
                  // Tout est OK
                  // Étape 1 : Vérifier si on n'a pas déjà cet heure pour cet atelier.
                  // Vérification.
                  if( m.length == 1 ) {
                      var tmp = '0'+m; m = tmp;
                  }
                                    
                  if( j.length == 1 ) {
                      var tmp = '0'+j; j = tmp;
                  }
                  
                  if( hd1.length == 1 ) {
                      var tmp = '0'+hd1; hd1 = tmp;
                  }          
                  
                  if( hd2.length == 1 ) {
                      var tmp = '0'+hd2; hd2 = tmp;
                  }
                
                  if( md1.length == 1 ) {
                      var tmp = '0'+md1; md1 = tmp;
                  }          
                  
                  if( md2.length == 1 ) {
                      var tmp = '0'+md2; md2 = tmp;
                  }               
                  
                  // Vérification que cette chaine n'est pas dans le array.              
                  var strSaveDate = a+"-"+m+"-"+j+"de"+hd1+":"+md1+"a"+hd2+":"+md2;
                  var strLisible = "Le "+j+"/"+m+"/"+a+" de "+hd1+":"+md1+" à "+hd2+":"+md2; 
                  var intTrouve = chercherArray(arrHeuresAct, strSaveDate);
                  
                  if( intTrouve == -1 ) {
                    // On ajoute l'élément. 
                    arrHeuresAct.push(strSaveDate);
                    
                    var indiceCourant = (arrHeuresAct.length)-1;
                    var objHTML = document.getElementById("dateSelectionnes");
                    var dataHTML = objHTML.innerHTML;
                    
                    objHTML.innerHTML += "<div id=\"item"+strSaveDate+"\">" + strLisible + " [<a href=\"javascript:supprimerDateAtelier('"+strSaveDate+"');\">x</a>]</div>";     
                  
                  } else {
                    alert("Cette date est déjà ajoutée pour cet atelier.");
                  }
              }
          }   
      }   
  }  
};

var supprimerDateAtelier = function(str) {
    // On retire l'élément du tableau.
    var intIndice = chercherArray(arrHeuresAct, str);
    arrHeuresAct.splice(intIndice, 1);
    // Supprime le DIV.
    $("item"+str).remove();    
};

var proposerLocal = function() {
  
  var arrServices = new Array();
  var arrRetour = getElementsByClassName('chkServices'); 
  var totalCheck = 0;
  var boolErreur = false;
  
  var placesMin = $F("lstMinA");
  var placesMax = $F("lstMaxA");
  var IdCegep = $F("lstIdCegep");
  
  // Texte des erreurs.
  var msgErreur = '';
  
  // --------------------------------- validations --------------------------------- //
  if( IdCegep == '' ) {
  	msgErreur += "Vous devez sélectionner un cégep.\n";
  	boolErreur = true;	
  }
  
  if( placesMin == '' ) {
  	msgErreur += "Vous devez sélectionner un nombre de place(s) minimum.\n";
  	boolErreur = true;	
  }
  
  if( placesMax == '' ) {
  	msgErreur += "Vous devez sélectionner un nombre de place(s) maximum.\n";
  	boolErreur = true;	
  }
  
  for(var i = 0; i < arrRetour.length; i++) {
        var obj = $(arrRetour[i].id);
        if( obj.checked ) {
            arrServices.push((obj.id).replace("chkSrv_", ""));
            totalCheck++;
        }    
  }
  
  // Vérifie uniquement si on n'a aucune erreur jusqu'à présent.
  if( boolErreur == false ) {
	  if( totalCheck == 0 ) {
	    if( ! confirm("Êtes-vous certain de ne pas avoir besoin d'équipement pour cet atelier?'") ){
	        $("chkSrv_1").focus();
	        boolErreur = true;     
	    }	
	  }
  }
  
  // --------------------------------- gestion des erreurs --------------------------------- //
  if( boolErreur == true ) {
  	alert(msgErreur);
  } else {
         
         var dataPOST = "placesMax="+placesMax+"&";
         dataPOST += "placesMin="+placesMin+"&";
         dataPOST += "arrServices="+arrServices+"&";
         dataPOST += "IdCegep="+IdCegep;
         
         try {
           // On va chercher les pénalités pour une partie donnée.
           var ajax = newAjax();
           $("loadingAJAX").style.display = 'block';
            
           // Paramètrage de la réponse
           ajax.onreadystatechange = function(){
               if(ajax.readyState == 4) {
                     if(ajax.status == 200) {
                         
                         try {
                             var objXML = ajax.responseXML;
                             var locaux = objXML.getElementsByTagName("local");
                             if( locaux.length > 0 ) {
                                 
                                 var htmlListe = "<label class=\"lblF\" for=\"lstIdLocal\">Local disponible :</label>&nbsp;<select name=\"lstIdLocal\" id=\"lstIdLocal\" onchange=\"getHoraireLocal(this.value);\">\n";
                                 htmlListe += "<option value=\"0\">Choisir...</option>\n";
                                 
                                 $("listeLocauxDispo").innerHTML = '';
                                 
                                 for(var i=0; i < locaux.length; i++) {
                                     var objLocal = locaux[i];
                                     var numeroLocal = objLocal.firstChild.nodeValue;
                                     var IdLocal = objLocal.getAttribute("id");
                                     htmlListe += "<option value=\""+IdLocal+"\">"+numeroLocal+"</option>\n"; 
                                 }
                                 htmlListe += "</select>";
                                 $("listeLocauxDispo").innerHTML = htmlListe;
                                 $("resultLocaux").style.display = 'block';
                                 $("listeLocauxDispo").focus();
                                  
                             } else {
                                 $("listeLocauxDispo").innerHTML = '&nbsp;';
                                 $("resultLocaux").style.display = 'none';
                                 alert("Aucun local ne correspond à vos critères de recherche.\nVeuillez choisir un nombre de places maximum différent.\nOu bien, vous demandez trop de services pour ce qu'offre les locaux de ce Cégep.");
                             }
                             
                                
                         } catch(excpt) {
                             alert(excpt);    
                         }
                         
                        $("loadingAJAX").style.display = 'none';
                     }
                }
           };

           ajax.open('POST', 'proposerLocal.php', true);
           ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 
           ajax.send(dataPOST);
             
       	} catch(e) {
           	alert("Erreur AJAX: "+e);
       	}
  	}	// @ 351.
};

var getHoraireLocal = function(IdLocal) {
    if( IdLocal == 0 ) {
        alert("Veuillez choisir un local valide.");
        $("lstIdLocal").focus();
    } else {
        
        var dataGET = 'getHoraireLocal.php?IdLocal='+IdLocal;
        
        try {
            // On va chercher les pénalités pour une partie donnée.
            var ajax = newAjax();
            var dataHTMLOutput = '';
            var indiceCourant = 0;
            
            // Paramètrage de la réponse
            ajax.onreadystatechange = function(){
            if(ajax.readyState == 4) {
                 if(ajax.status == 200) {
                     
                $("calendrierHoraire").innerHTML = '';

                try {
                    
                    var objXML = ajax.responseXML;
                    var dates = objXML.getElementsByTagName("date");
                    var totalDates = dates.length;

                    if( totalDates > 0 ) {
                        
                        var arrHTMLDates = new Array(totalDates);
                        
                        for(var i=0; i<dates.length; i++) {
                            
                            // var objDate = objXML.getElementsByTagName("date")[i];                            
                            var totalPlages = objXML.getElementsByTagName("date")[i].getAttribute("total");
                            var dateEnCours = objXML.getElementsByTagName("date")[i].getAttribute("valeur");
                            
                            arrHTMLDates[i] = '';
                            
                            for(var p = 0; p<=totalPlages; p++) {  
                                
                                if( p == 0 )
                                   arrHTMLDates[i] = arrHTMLDates[i] + "<table class=\"tabListing\" cellpadding=\"4\" cellspacing=\"0\"><tr><th>Plage</th><th>"+dateEnCours+"</th></tr>"; 
                                
                                var objPlageEnfant = objXML.getElementsByTagName("date")[i].getElementsByTagName("plage")[p];
                                
                                var txtDisabled = "";
                                
                                var estDispo = ( objPlageEnfant.getAttribute("dispo") == 0 ? "checked=\"checked\" disabled=\"disabled\"" : "" );
                                var IdJourHoraire = objPlageEnfant.getAttribute("IdJourHoraire");
                                var NumeroPlage = objPlageEnfant.getAttribute("NumeroPlage");
                                
                                arrHTMLDates[i] += "<tr><td>"+objPlageEnfant.firstChild.nodeValue+"</td><td>";
                                arrHTMLDates[i] += "<input type=\"checkbox\" "+estDispo+" name=\"horaire[]\" value=\""+IdJourHoraire+"_"+NumeroPlage+"\" "+txtDisabled+" />";
                                arrHTMLDates[i] += "</td></tr>";
                                
                                if( p == totalPlages )
                                     arrHTMLDates[i] += "</table>";
                            }
                        }
                        
                        // On vide.
                        var htmlDataOutput = "<table><tr>";
                        
                        for(var j=0;j<arrHTMLDates.length;j++) {
                            htmlDataOutput += "<td valign=\"top\">" + arrHTMLDates[j] + "</td>";    
                        }
                        
                        htmlDataOutput += "</tr></table>";
                        $("calendrierHoraire").innerHTML = htmlDataOutput;
                        
                    }

                    $("calendrierHoraire").style.display = 'block';
                   
                } catch(excpt) {
                    alert("Fonction getHoraireLocal\nErreur: "+excpt);    
                }      
              }
            }
        };

        ajax.open('GET', dataGET, true);
        ajax.send(null);

        } catch(e) {
            alert("Erreur AJAX: "+e);
        }   
        
    }  
};


var supprimerAtelier = function(IdAtelier, IdNumeroBloc) {
    
    if( IdAtelier.length == 0 || IdNumeroBloc.length == 0 ) {
        alert("Erreur! Un des paramètres est manquant pour la suppression de cet atelier.");
    } else {
        if( confirm("Attention!\nVous êtes sur le point de supprimer un atelier de l'horaire. Êtes-vous certain de vouloir supprimer cet atelier?'") ) {
        
            try {
                // On va chercher les pénalités pour une partie donnée.
                var ajax = newAjax();
                var dataGET = "supprimerAtelier.php?IdAtelier="+IdAtelier;
                dataGET += "&IdNumeroBloc="+IdNumeroBloc;
                
                // Paramètrage de la réponse
                ajax.onreadystatechange = function(){
                if(ajax.readyState == 4) {
                    if(ajax.status == 200) {
                        if( ajax.responseText == 1 ) {
                            alert("Cet atelier a bien été supprimé.\nLa page va maintenant se recharger.");
                            document.location.reload();
                        } else {
                            alert("Impossible de supprimer cet atelier. Veuillez recommencer.");
                        }   
                    }     
                  }
                };
                
                ajax.open('GET', dataGET, true);
                ajax.send(null); 
                
            } catch(e) {
                alert("Erreur AJAX: "+e);
            }         
        } 
    } 
};

var supprimerEtudiant = function(IdEtudiant) {
    
    if( IdEtudiant.length == 0 ) {
        alert("Erreur! Le numéro de cet étudiant est invalide.");
    } else {
        if( confirm("Attention! Vous êtes sur le point de supprimer un étudiant. Êtes-vous certain de vouloir supprimer cet étudiant?") ) {
        
            try {
                // On va chercher les pénalités pour une partie donnée.
                var ajax = newAjax();
                var dataGET = "supprimerEtudiant.php?IdEtudiant="+IdEtudiant;
                
                // Paramètrage de la réponse
                ajax.onreadystatechange = function(){
                if(ajax.readyState == 4) {
                    if(ajax.status == 200) {
                        if( ajax.responseText == 1 ) {
                            alert("Cet étudiant a bien été supprimé.\nLa page va maintenant se recharger.");
                            document.location.reload();
                        } else {
                            alert("Impossible de supprimer cet étudiant. Veuillez recommencer.");
                        }   
                    }     
                  }
                };
                
                ajax.open('GET', dataGET, true);
                ajax.send(null); 
                
            } catch(e) {
                alert("Erreur AJAX: "+e);
            }         
        } 
    } 
};



var getTotalChoixPlage = function(numeroPlage) {
  var arrCases = getElementsByClassName("chkPlage_"+numeroPlage);
  var total = 0;
  for(var i=0; i < arrCases.length; i++) {
      if( arrCases[i].checked ) total++;
  }
  return total; 
};

var getTotalChoixPlageBloc = function(numeroPlage, NoBloc) {
  var arrCases = getElementsByClassName("chkPlage"+NoBloc+"_"+numeroPlage);
  var total = 0;
  for(var i=0; i < arrCases.length; i++) {
      if( arrCases[i].checked ) total++;
  }
  return total; 
};

// Nouvelle fonction de validationd des ateliers, par blocs.
var validationAtelierEleveBloc = function(IdEtudiant, NbPlages, IdDateAtelier_PeriodeDiner) {
    
    var boolDiner = false;

    var arrChkAteliersA = getElementsByClassName("chkAtelier1");    
    var arrChkAteliersB = getElementsByClassName("chkAtelier2");    
    
    // Bloc A, Bloc B.
    var arrChecksA = new Array();
    var arrChecksB = new Array();
    var arrDateAtelierA = new Array();
    var arrDateAtelierB = new Array();
    
    var totalErrA = 0;
    var strErrA = 'Impossible de sauvegarder la sélection de vos ateliers pour le bloc A:\r\n';
    var totalErrB = 0;
    var strErrB = 'Impossible de sauvegarder la sélection de vos ateliers pour le bloc B:\r\n';
    
    // Validation de la sélection des plages.
    var arrPlagesA = new Array();
    var totalA = 0; 
    var arrPlagesB = new Array(); 
    var totalB = 0;
    var totaux = 0;
    
    // Validation de A.
    for(var p=0; p <= NbPlages; p++) {
        arrPlagesA[p] = getTotalChoixPlageBloc(p, 1);
        if( arrPlagesA[p] > 1 ) {
            totalErrA++; strErrA += "Vous avez sélectionné plus qu'un atelier dans la plage "+eval("arrNomPlages1[p]")+" du Bloc A.\r\n";    
            // On change le style de l'en-tête du bloc.
            document.getElementById("blocAtelier1_"+p).className = "titreHoraireErreur";
        } else {
            document.getElementById("blocAtelier1_"+p).className = "titreHoraire"; 
        }        
    }
    
    // Validation de B.
    for(var p=0; p <= NbPlages; p++) {
        arrPlagesB[p] = getTotalChoixPlageBloc(p, 2);
        if( arrPlagesB[p] > 1 ) {
            totalErrB++; strErrB += "Vous avez sélectionné plus qu'un atelier dans la plage "+eval("arrNomPlages2[p]")+" du Bloc B.\r\n";    
            // On change le style de l'en-tête du bloc.
            document.getElementById("blocAtelier2_"+p).className = "titreHoraireErreur";
        } else {
            document.getElementById("blocAtelier2_"+p).className = "titreHoraire"; 
        }        
    }
    
    // Bloc A.
    for(var i=0; i < arrChkAteliersA.length; i++) {
      
        if( arrChkAteliersA[i].checked ) {
            
          var IdAtelier = (arrChkAteliersA[i].getAttribute("id")).replace("chk_", "");
          var IdDateAtelier = arrChkAteliersA[i].getAttribute("value");
            
            
          if( IdAtelier == IdDateAtelier_PeriodeDiner )
            boolDiner = true;
            
          arrChecksA.push(IdAtelier);
          arrDateAtelierA.push(IdDateAtelier);
      }
    }

    // Bloc B.
    for(var i=0; i < arrChkAteliersB.length; i++) {
        if( arrChkAteliersB[i].checked ) {   
          
          var IdAtelier = (arrChkAteliersB[i].getAttribute("id")).replace("chk_", "");
          var IdDateAtelier = arrChkAteliersB[i].getAttribute("value");
          
          if( IdAtelier == IdDateAtelier_PeriodeDiner )
            boolDiner = true;
            
          arrChecksB.push(IdAtelier);
          arrDateAtelierB.push(IdDateAtelier);
      } 
    }
    
    // 4 cas possibles d'erreur.
    if( totalErrA > 0 && totalErrB == 0 ) {
        alert( strErrA );    
    } else if ( totalErrA == 0 && totalErrB > 0 ) {
        alert( strErrB );
    } else if ( totalErrA > 0 && totalErrB > 0 ) {
        alert( strErrA + "\r\n" + strErrB );
    } else {
        
        // Validation des choix.
        totalA = arrChecksA.length;
        totalB = arrChecksB.length;
        totaux = totalA + totalB;
        
        if( totaux != 5 ) {
            // 4 choix + 1 dîner.
            alert("Vous devez choisir 4 ateliers et une 1 période de dîner. Impossible de sauvegarder vos choix.");
        } else if ( totaux == 5 ) {
            // Validation dans chacun des blocs.
            // Validation du dîner.
            if( boolDiner == false ) {
                alert("Vous devez choisir votre période de dîner avant de sauvegarder vos ateliers.");
            } else {
                if( totalA == 0 ) {
                    alert("Vous devez sélectionner au-moins 1 atelier dans la liste du Bloc A. Impossible de sauvegarder vos choix.");
                } else { 
                
                    try {
                        // On va chercher les pénalités pour une partie donnée.
                        var ajax = newAjax();
                        var dataGET = "validerChoixAtelier.php?IdEtudiant="+IdEtudiant;
                        dataGET += "&arrIdAtelier=";
                        for(var indA=0; indA<arrChecksA.length;indA++) {
                            dataGET += arrChecksA[indA] + ",";    
                        }
                        for(var indB=0; indB<arrChecksB.length;indB++) {
                            dataGET += arrChecksB[indB] + ",";    
                        }
                        dataGET += "&arrIdBlocAtelier=";
                        for(var daA=0; daA<arrDateAtelierA.length;daA++) {
                            dataGET += arrDateAtelierA[daA] + ",";    
                        }
                        for(var daB=0; daB<arrDateAtelierB.length;daB++) {
                            dataGET += arrDateAtelierB[daB] + ",";    
                        }
                        
                        dataGET = dataGET.replace(",&", "&");
                        // Retire la dernière , à la fin.
                        dataGET = dataGET.substr(0, (dataGET.length-1));
                        
                        // Paramètrage de la réponse
                        ajax.onreadystatechange = function(){
                        if(ajax.readyState == 4) {
                            if(ajax.status == 200) {
                                var reponse = ajax.responseText;
                                switch(reponse) {
                                    case "errParam":
                                    case "errArray":
                                    case "errAjout":
                                    case "errMail":
                                    case "errAjoutAvantMail":
                                        alert("Une erreur est survenue. Impossible de sauvegarder vos choix. Veuillez réessayer.");
                                    break;
                                    case "errInscriptionBloque":
                                        alert("Les inscriptions sont présentement bloquées. Contactez le responsable de votre école secondaire pour faire débloquer les inscriptions pour votre compte.");
                                    break;
                                    case "OK":
                                        alert("Succès! Vos ateliers ont bien été sauvegardées. Une confirmation a été envoyé à votre courriel.");
                                        if( confirm("Désirez-vous aller à la page d'impression de votre horaire pour cette journée?") ) {
                                            document.location.href="etudiantHoraire.php";
                                        }
                                    break;
                                    default:
                                        alert("Une erreur est survenue. Impossible de sauvegarder vos choix. Veuillez réessayer.");
                                    break;
                                }
                            }     
                          }
                        };

                        ajax.open('GET', dataGET, true);
                        ajax.send(null); 
                        
                    } catch(e) {
                        alert("Erreur AJAX: "+e);
                    }   
                }             
            }
        }   
    }      
};


var validationAtelierEleve = function(IdEtudiant, NbPlages) {
   
  var arrChkAteliers = getElementsByClassName("chkAtelier");
  var arrChecks = new Array();
  var arrDateAtelier = new Array();
  var totalErr = 0;
  var strErr = 'Impossible de sauvegarder la sélection de vos ateliers:\r\n';
  
  // Validation de la sélection des plages.
  var arrPlages = new Array();
  for(var p=0; p <= NbPlages; p++) {
      
     arrPlages[p] = getTotalChoixPlage(p);
     if( arrPlages[p] > 1 ) {
        totalErr++; strErr += "Vous avez sélectionné plus qu'un atelier dans la plage "+arrNomPlages[p]+".\r\n";    
        // On change le style de l'en-tête du bloc.
        document.getElementById("blocAtelier_"+p).className = "titreHoraireErreur";
     } else {
        document.getElementById("blocAtelier_"+p).className = "titreHoraire"; 
     } 
  }
  

  if( totalErr > 0 ) {
      alert( strErr + "Les plages d'horaire en erreur sont marquées en rouge.\r\n" );
  } else {

      for(var i=0; i < arrChkAteliers.length; i++) {
          if( arrChkAteliers[i].checked ) {
              arrChecks.push( (arrChkAteliers[i].getAttribute("id")).replace("chk_", "") );
              arrDateAtelier.push( arrChkAteliers[i].getAttribute("value") );
          }
      }
      // On trie les sélections.
      if( arrChecks.length < 4 ) {
          alert("Vous devez sélectionner au-moins quatre ateliers pour votre horaire de la journée.");
      } else if( arrChecks.length != 4 ) {
          alert("Vous devez sélectionner un maximum de quatre ateliers pour votre horaire de la journée.")
      } else {

          attendreValidationAteliers();
          
          try {
            // On va chercher les pénalités pour une partie donnée.
            var ajax = newAjax();
            var dataGET = "validerChoixAtelier.php?IdEtudiant="+IdEtudiant;
            dataGET += "&arrIdAtelier="+arrChecks+"&arrIdBlocAtelier="+arrDateAtelier;

            // Paramètrage de la réponse
            ajax.onreadystatechange = function(){
            if(ajax.readyState == 4) {
                if(ajax.status == 200) {
                    var reponse = ajax.responseText;
                    switch(reponse) {
                        case "errParam":
                        case "errArray":
                        case "errAjout":
                        case "errMail":
                        case "errAjoutAvantMail":
                            alert("Une erreur est survenue. Impossible de sauvegarder vos choix. Veuillez réessayer.");
                        break;
                        case "OK":
                            alert("Succès! Vos ateliers ont bien été sauvegardées. Une confirmation a été envoyé à votre courriel.");
                            if( confirm("Désirez-vous aller à la page d'impression de votre horaire pour cette journée?") ) {
                                document.location.href="etudiantHoraire.php";
                            }
                        break;
                        default:
                            alert("Une erreur est survenue. Impossible de sauvegarder vos choix. Veuillez réessayer.");
                        break;
                    }
                }     
              }
            };
            
            ajax.open('GET', dataGET, true);
            ajax.send(null); 
            
          } catch(e) {
            alert("Erreur AJAX: "+e);
          } 
      }    
  }

};

var attendreValidationAteliers = function() {
};

var changerCegep = function() {
    if( $("lstCegep").value == 0 ) {
        alert("Vous devez choisir un Cégep dans la liste déroulante.");
        $("lstCegep").focus();
    } else {
        document.location.href = $("lstCegep").value;
    }
};

var confirmerAtelier = function(IdAtelier, IdDateAtelier, action) {

	var msgConfirm = '';
	
	if( action == 1 )
		msgConfirm = "Êtes-vous certain de vouloir confirmer cet atelier?";
	else
		msgConfirm = "Êtes-vous certain de vouloir refuser cet atelier?";

	if( confirm(msgConfirm) ) {
		try {
			// On va chercher les pénalités pour une partie donnée.
			var ajax = newAjax();
			var NbPlaceMinAtelier = $("lstMin_"+IdAtelier+"_"+IdDateAtelier).value;
			var dataGET = "setConfirmerAtelier.php?IdAtelier="+IdAtelier+"&IdDateAtelier="+IdDateAtelier+"&action="+action+"&NbPlaceMinAtelier="+NbPlaceMinAtelier;
			var msgAction = '';
			if( action == 1 )
				msgAction = 'confirmé';
			else
				msgAction = 'refusé';

			// Paramètrage de la réponse
			ajax.onreadystatechange = function(){
			if(ajax.readyState == 4) {
			    if(ajax.status == 200) {
			    	var reponse = ajax.responseText;
			    	if( reponse == 1 ) {
			    		alert("Succès! Cet atelier a bien été "+msgAction+". La page va maintenant se rechargée.");
			    		document.location.reload();
			    	} else {
			    		alert("Une erreur est survenue. Impossible de confirmer/refuser cet atelier. Veuillez recommencer.");
			    	}
			    }     
			  }
			};
			
			ajax.open('GET', dataGET, true);
			ajax.send(null); 
		
		} catch(e) {
			alert("Erreur AJAX: "+e);
		}


	}
};

var confirmerPresence = function(IdAtelier, IdDateAtelier) {
   
  var arrIdEtudiant = new Array();
  var arrPresences = new Array();
  var arrCases = getElementsByClassName('chkPresence');
  
  for(var i = 0; i < arrCases.length; i++) {
      arrIdEtudiant.push(arrCases[i].getAttribute('id').replace('etu_', ''));
      arrPresences.push((arrCases[i].checked ? 1 : 0));
  }
  
  if( confirm("Êtes-vous certain de vouloir confirmer la présence de ces étudiants ?") ) {
    try {
        // On va chercher les pénalités pour une partie donnée.
        var ajax = newAjax();
        var dataGET = "setPresenceAtelier.php?arrIdEtudiant="+arrIdEtudiant+"&arrPresences="+arrPresences+"&IdAtelier="+IdAtelier+"&IdDateAtelier="+IdDateAtelier;

        // Paramètrage de la réponse
        ajax.onreadystatechange = function(){
        if(ajax.readyState == 4) {
            if(ajax.status == 200) {
                var reponse = ajax.responseText;
                if( reponse == 1 ) {
                    alert("Succès! Les présences ont bien été sauvegardées.");
                    if( confirm("Désirez-vous imprimer la list des présences ?") ) {
                        window.print();    
                    }
                } else {
                    alert("Une erreur est survenue. Impossible de sauvegarder les présences. Veuillez recommencer.");
                }
            }     
          }
        };
        
        ajax.open('GET', dataGET, true);
        ajax.send(null); 

    } catch(e) {
        alert("Erreur AJAX: "+e);
    }        
  }
      
};


var etatCourantPresenceCoche = false;

var cocherTous = function(classeCss) {
    var arrCases = getElementsByClassName(classeCss);
    var total = 0;
    for(var i=0; i < arrCases.length; i++) {
        if( etatCourantPresenceCoche )
            arrCases[i].checked = false;
        else
            arrCases[i].checked = true;
      }
    etatCourantPresenceCoche = !etatCourantPresenceCoche; 
};

var atelierComplet = function(etat, IdAtelier, IdDateAtelier) {
  
  var msgConfirm = "";
  if( etat == 1 )
     msgConfirm = "Êtes-vous certain de vouloir marquer cet atelier comme complète ?\nLes étudiants ne pourront plus s'inscrire.";
  else
     msgConfirm = "Êtes-vous certain de vouloir ouvrir les inscriptions pour cet atelier ?\nLes étudiants pourront de nouveau s'inscrire à cet atelier.";
    
  if( confirm(msgConfirm) ) {
    try {
        // On va chercher les pénalités pour une partie donnée.
        var ajax = newAjax();
        var dataGET = "setAtelierComplete.php?IdAtelier="+IdAtelier+"&IdDateAtelier="+IdDateAtelier+"&etat="+etat;

        // Paramètrage de la réponse
        ajax.onreadystatechange = function(){
        if(ajax.readyState == 4) {
            if(ajax.status == 200) {
                var reponse = ajax.responseText;
                if( reponse == 1 ) {
                    alert("Succès! L'état de cet atelier a bien été sauvegardé. La page va maintenant de recharger.");
                    document.location.reload();
                } else {
                    alert("Une erreur est survenue. Impossible de sauvegarder l'état de cet atelier'. Veuillez recommencer.");
                }
            }     
          }
        };
        
        ajax.open('GET', dataGET, true);
        ajax.send(null); 

    } catch(e) {
        alert("Erreur AJAX: "+e);
    }    
  }
    
};

var getListeLocauxCoches = function() {
    var arrCases = getElementsByClassName('chkPresence');
    var arrLocauxSelect = new Array();
    var total = 0;
    for(var i=0; i < arrCases.length; i++) {
        if( arrCases[i].checked ) {
             arrLocauxSelect.push(arrCases[i].value);
        }
    }
    if( arrLocauxSelect.length == 0 )
        alert("Veuillez sélectionner au-moins un local.");
    else
    {
        var fen = window.open("formatImprimerHoraireLocaux.php?arrLocaux="+arrLocauxSelect);
        if( ! fen )
            alert("Veuillez autoriser les popups pour cette fenêtre s.v.p.");
    }
};

var getListeRepondantsCoches = function() {
    var arrCases = getElementsByClassName('chkPresence');
    var arrLocauxSelect = new Array();
    var total = 0;
    for(var i=0; i < arrCases.length; i++) {
        if( arrCases[i].checked ) {
             arrLocauxSelect.push(arrCases[i].value);
        }
    }
    if( arrLocauxSelect.length == 0 )
        alert("Veuillez sélectionner au-moins un répondant.");
    else
    {
        var fen = window.open("formatImprimerHoraireRepondant.php?arrRepondants="+arrLocauxSelect);
        if( ! fen )
            alert("Veuillez autoriser les popups pour cette fenêtre s.v.p.");
    }
};

var restaurerBackup = function(dir) {
	var strMsg1 = "ATTENTION! Vous êtes sur le point de restaurer une sauvegarde et d'écraser toutes les données actuelles du logiciel RCS.\n\nÉlèves, inscriptions, activités, locaux, etc.\n\nÊtes-vous certain de vouloir restaurer cette sauvegarde?";
	var strMsg2 = "IL N'Y A PAS DE RETOUR POSSIBLE.\n\nConfirmez de nouveau votre intention."
	if( confirm(strMsg1) && confirm(strMsg2) ) {
	    try {
	        // On va chercher les pénalités pour une partie donnée.
	        var ajax = newAjax();
	        var dataGET = "restaurerBackup.php?dir="+dir;
	
	        // Paramètrage de la réponse
	        ajax.onreadystatechange = function(){
	        if(ajax.readyState == 4) {
	            if(ajax.status == 200) {
	                var reponse = ajax.responseText;
	                if( reponse == 'ok' ) {
	                    alert("Succès! La restauration a été complétée avec succès. Votre session va maintenant se terminer.");
	                    document.location.href="logout.php";
	                } else {
	                    alert("Une erreur est survenue. Impossible de restaurer la sauvegarde. Veuillez recommencer.");
	                }
	            }     
	          }
	        };
	        
	        ajax.open('GET', dataGET, true);
	        ajax.send(null); 
	
	    } catch(e) {
	        alert("Erreur AJAX: "+e);
	    }	
	}
};

var confirmerRAZ = function() {
	var strMsg1 = "ATTENTION! Vous êtes sur le point de restaurer le logiciel RCS et d'écraser toutes les données actuelles autres que les locaux, les ateliers, les cégeps et les écoles secondaires du logiciel RCS. Êtes-vous certain de vouloir restaurer le logiciel?";
	var strMsg2 = "IL N'Y A PAS DE RETOUR POSSIBLE.\n\nConfirmez de nouveau votre intention."
	if( confirm(strMsg1) && confirm(strMsg2) ) {
		 $("frmRAZ").submit();
	}
};

var confirmerModifierDateRCS = function() {
	if( confirm("Êtes-vous certain de vouloir modifier la journée de la rencontre Cégep-Secondaire?") ) {
		 $("frmReset").submit();
	}
};

var deplacerAtelier = function(IdAtelier, IdNumeroBloc, IdLocal, IdDateAtelier) {
	document.location.href = 'deplacerAtelier.php?IdAtelier='+IdAtelier+'&IdNumeroBloc='+IdNumeroBloc+'&IdLocal='+IdLocal+'&IdDateAtelier='+IdDateAtelier;
};

var confirmDeplacerLocal = function() {
	if(confirm("Êtes-vous certain de vouloir déplacer cet atelier de local?")) {
		$("frmDeplacer").submit();
	}
}
