//
// Gestion de l'ajax lors du changement de mois dans le module SportingEvents - Calendrier
//

var modid;

window.addEvent('domready', function() {
   view_calendar_change_month();
});

function to_lower(str) {
   return str.toLowerCase();
}

function view_calendar_change_month() {

var form = document.frmPlanning;

   if (form!=undefined) {

      // Définition des URLs pour la mise à jour de la vue calendrier

      var url          = se_form_event_baseurl+"index2.php?option=com_sportingevents&format=raw&task=ajax_loadMonthlyView&view=calendar";
      var url_previous = url+"&year="+$('se_view_prev_year').value+"&month="+$('se_view_prev_month').value;
      var url_next     = url+"&year="+$('se_view_next_year').value+"&month="+$('se_view_next_month').value;

      // Dès lors que la page a été chargée; l'évènement asynchrone onSuccess va rappeller cette même fonction afin que les actions "Mois précédent" / "Mois suivant" de la page
      // nouvellement chargée fasse aussi appel à cette fonction JS.

      var options = {

         update : $('se_DrawCalendar'),
         onFailure : function(response) { show_failure(url, response);},
         onSuccess :

            function() {

               // Récupère le script qui se charge de créer les tooltips.   Ce script est entouré par les balises <script type="text/javascript"> et </script>; balise qu'il convient de supprimer
               // avant de faire un eval() qui va requérir au browser d'exécuter le code JS et donc de créer les tooltips.

               sScript =$('se_view_calendar_tooltip').innerHTML;

               // Trim : supprime les éventuels espaces avant et après la chaîne de caractères

               sScript = sScript.replace(/^\s\s*/, '').replace(/\s\s*$/, '');

               // Les tooltips ne sont pas forcément créés, tout dépend du paramétrage du module

               if (sScript!="") {

                  // Pour une raison mystérieuse, le tag <script> est mis en majuscules sous IE.   Aussi, les guillements sont supprimés par IE.   Brâve IE...

                  if (to_lower(sScript.substring(0, 31))=='<script type="text/javascript">') sScript =sScript.substring(31);
                  if (to_lower(sScript.substring(0, 29))=='<script type=text/javascript>') sScript =sScript.substring(29);
                  if (to_lower(sScript.substring(sScript.length-9))=='</script>') sScript = sScript.substring(0, sScript.length-10);

                  // A ce stade, sScript ne devrait contenir qu'un script JS valable qu'il est possible d'exécuter via une instruction eval()

                  try {

                     eval(sScript);

                  } catch(err) {

                     // Le code ne devrait pas arriver ici.   Si c'est le cas, cela veut dire que la code JS qui créé les tooltips est incorrect.
                     // Ce code est généré par la classe se_Calendar et plus précisement la fonction getTooltips()

                     if (getQuerystring('debug',0)>=1) {
                       show_failure('vue_mensuelle.js::calendar_change_month()', err.description);
                       show_failure('vue_mensuelle.js::calendar_change_month()', sScript);
                     } // if (getQuerystring('debug',0)>=1) {

                  } // try {

               } // if (sScript!="") {

               view_calendar_change_month();

            } // function() {

         }; // var options = {

      // Code pour la mise à jour de la vue mensuelle

      var objPreviousAjax= new Ajax(url_previous, options);

      $('se_view_prevMonth').onclick = function () {
         $('se_DrawCalendar').innerHTML = "<div class='ajaxLoading'>&#160;</div>"+$('se_DrawCalendar').innerHTML;
         objPreviousAjax.request();
       }; // $('prevMonth-'+ID).onclick = function () {

      // Code pour la mise à jour "Mois suivant"

      var objNextAjax= new Ajax(url_next, options);

      $('se_view_nextMonth').onclick = function () {
         $('se_DrawCalendar').innerHTML = "<div class='ajaxLoading'>&#160;</div>"+$('se_DrawCalendar').innerHTML;
         objNextAjax.request();
      }; // $('nextMonth-'+ID).onclick = function () {

      // Code pour le bouton Go qui permet, une fois qu'on a sélectionné un mois / année depuis les listes déroulantes, d'afficher le mois/année en question

      var objGoMonthAjax= new Ajax('', options);

      $('se_view_chgmonth').onclick = function () {

         var cbxYears = document.frmPlanning.se_go_year;

         objGoMonthAjax.url = url+"&year="+form.se_go_year[form.se_go_year.selectedIndex].text+"&month="+form.se_go_month.selectedIndex;

         $('se_DrawCalendar').innerHTML = "<div class='ajaxLoading'>&#160;</div>"+$('se_DrawCalendar').innerHTML;
         objGoMonthAjax.request();
      }; // $('nextMonth-'+ID).onclick = function () {

   } // if (form!=undefined) {

}; // function calendar_change_month() {
