/**
 * Gestion de l'ajax lors du changement de mois dans le module AllEvents - Calendrier
 */

window.addEvent('domready', function() {
   mod_calendar_change_month();
});

/* 
 * Récupère le code JS dans la portion de page mise-à-jour par Ajax afin de l'exécuter
 */
function getTooltips() {
	
   // La fonction getToolTips est appelée à chaque mise-à-jour du calendrier (par exemple lors d'un changement de mois depuis 
   // le module.    La mise-à-jour Ajax génère le calendrier pour le mois sélectionné ainsi qu'un élément de type span dont la classe est
   // se_script_tooltips et qui contient le code JS pour qu'un tooltip s'affiche lors du survol de la souris.
   // Il faut récupérer le code JS et l'évaluer afin que le tooltip puisse être associé au jour du calendrier.   Le code ci-dessous s'en charge	
		
   $$('.se_script_tooltips').each(function(el) {
	   eval(el.innerHTML);
   });	
   
   return;
   
} // function getTooltips()
/*
 * La fonction calendar_updated() est appellée par la fonction Ajaxify lorsque le module calendrier a été mis à jour.
 * Ajaxify appelle cette fonction parce que le paramètre fctOnSuccess a été initialisé dans la fonction mod_calendar_change_month
 */
function calendar_updated() {
	
   // Une fois le calendrier à jour, initialise le code JS qui permettra de faire d'autres mises-à-jour	
   mod_calendar_change_month();
   
   // Interprète et exécute le code JS pour les tooltips   
   getTooltips();
   
   return;
   
} // function calendar_updated()
/*
 * Insère le code JS nécessaire afin de permettre la mise-à-jour du module calendrier.
 */
function mod_calendar_change_month() {
	   
   // Parce que le module calendrier peut être utilisé plus d'une fois sur la même page, utilise une boucle
   // afin de récupérer toutes les valeurs .se_calendar_id.     

   $$('.se_calendar_ID').each(function(el){
	   
	  // "el" est normallement un span (exemple : <span title='se_calendar_ID' class='se_calendar_ID'>803</span>) 
	  // "el" est construit par la function Module_Calendar() du module AllEvents
	   
      var ID = el.innerHTML;
      
      // L'objet se_prev_year est généré par le module calendrier uniquement lorsque la barre de navigation est affichée; ce qui n'est pas
      // garanti vu qu'il existe un paramètre dans le module qui permet de la désactiver.
      
      if ($('prevMonth_'+ID) != undefined) {
    	  
//alert("se_calendrier::mod_calendar_change_month()");

         var sParams = "&modid="+ID;         
         
         // Il faut transmettre le Itemid de la page afin que le module puisse retrouver ses paramètres.
         
         if (typeof se_Itemid !== 'undefined') sParams += '&Itemid='+se_Itemid;

    	 var sTask   = "ajax_Calendrier";

    	 // Le code ci-dessous va vérifier si les éléments HTML prevYear_999, prevMonth_999, nextMonth_999 et nextYear_999 existent
    	 // (999 est le numéro du module).   Si présent, attache un code Javascript afin de permettre la mise-à-jour du calendrier
   
         $('prevYear_'+ID).onclick = function () {
            sParams=sParams+"&y="+$('prevYear_year_'+ID).innerHTML+"&m="+$('prevYear_month_'+ID).innerHTML;
	        Ajaxify(sTask, sParams, 'se_module_calendrier_'+ID,true,'calendar_updated()');   
          }; // $('prevYear_'+ID).onclick = function ()
          
    	 $('prevMonth_'+ID).onclick = function () {
    		sParams=sParams+"&y="+$('prevMonth_year_'+ID).innerHTML+"&m="+$('prevMonth_month_'+ID).innerHTML;
 	        Ajaxify(sTask, sParams, 'se_module_calendrier_'+ID,true,'calendar_updated()');   
         }; // $('prevMonth_'+ID).onclick = function ()
         
         // Code pour la mise à jour "Mois suivant"
         $('nextMonth_'+ID).onclick = function () {
        	sParams=sParams+"&y="+$('nextMonth_year_'+ID).innerHTML+"&m="+$('nextMonth_month_'+ID).innerHTML;
  	        Ajaxify(sTask, sParams, 'se_module_calendrier_'+ID,true,'calendar_updated()');      
         }; // $('nextMonth_'+ID).onclick = function ()
   
         // Code pour la mise à jour "Mois suivant"
         $('nextYear_'+ID).onclick = function () {
        	sParams=sParams+"&y="+$('nextYear_year_'+ID).innerHTML+"&m="+$('nextYear_month_'+ID).innerHTML;
  	        Ajaxify(sTask, sParams, 'se_module_calendrier_'+ID,true,'calendar_updated()');      
         }; // $('nextYear_'+ID).onclick = function ()
       	  
      } // if ($('se_prev_year_'+ID) != undefined)
      
   }); // $$('.se_calendar_ID').each(function(el)

}; // function calendar_change_month() {

