/* ---------------------------------------------------------------
 *
 *          Fonctions CALENDRIER D'ÉVENEMENTS
 *
 * -------------------------------------------------------------
 */
var modif_activite = false;

var cal_ev_bg_jour_semaine = 'caj_sem';//'#c4dc8c';
var cal_ev_bg_jour_fds = 'caj_fds';
var cal_ev_bg_jour_today = 'caj_today';
var cal_ev_bg_jour_mouseover = "#cdd9f3";
var cal_ev_bg_somm_type_hover = "#ffffff";
//var cal_ev_affiche_auj = true;
//var cal_ev_affiche_auj_timer = 2000;

var check_today = new Date.today().toString('yyyy-MM-dd');
var mois_cal_ev = new Date.today().moveToFirstDayOfMonth();
var mois_nom = "";

var titres_jours_ev = '<div class="cal_ev_nom_jour">D</div><div class="cal_ev_nom_jour">L</div><div class="cal_ev_nom_jour">M</div><div class="cal_ev_nom_jour">M</div><div class="cal_ev_nom_jour">J</div><div class="cal_ev_nom_jour">V</div><div class="cal_ev_nom_jour">S</div>';


var cev_d = new Array();
var cev_c = new Array();
var cev_t = new Array();
var cal_ev_titres_sommaire = new Array();
var cal_ev_pres_sommaire = new Array();
var cal_ev_mois_presents = new Array();

var cal_ev_aujourdhui = true;

var cal_ev_dispo = true;

var cal_ev_dernier_select = "";
var cal_pres_reaffiche = false;
/*
function InitCalEv() {
        mois = mois_cal_ev;
        max_mois = mois.getDaysInMonth();

        mois_nom = mois.getMonthName() ;

        mois_nom = mois_nom.substr(0,1).toUpperCase() + mois_nom.substr(1); // première lettre majuscule...


        mois_num = mois.getMonth();

        annee = mois.toString('yyyy'); //annee = mois.getYear(); // donne 109 au lieu de 2009
        $('cal_ev_mois').innerHTML = ''+mois_nom+' '+annee;

}
*/
var cal_xuzen = "";

function GetCalEv(mois_diff,mois_direct) {
 if (!edition_active) {
  if (cal_ev_dispo) {     
     if (!isMSIE || gteIE9) $('#grille_cal_ev').stop(true,true).fadeOut({duration:'fast',queue:false}).slideUp({duration:'fast',easing:'swing',queue:false});

     if (mois_direct === undefined) {
        mois_cal_ev.addMonths(mois_diff);
     }
     else {
        mois_cal_ev = new Date.parse(mois_direct+'-05');
        mois_cal_ev.moveToFirstDayOfMonth(); // COMPENSER LE FUSEAU HORRAIRE qui reculait d'un mois (4h)hahahahax
     }

     mois_check = mois_cal_ev.toString('yyyy-MM');
     annee = mois_cal_ev.toString('yyyy');

     if (ZEN('ce_sm') && (activite_a_venir != 2)) {
         SelectValeur(ZEN('ce_sm'),mois_cal_ev.toString('MM'));              

         var ce_sa = ZEN('ce_sa');
         if (SelectValeur(ce_sa,annee) === false) {
             // fonctionnera tant que les exceptions sont consécutives aux années déjà présentes,
             //  plusieurs exceptions peuvent désordonner la liste...
            newOpt = document.createElement('option');
            newOpt.text = annee;
            newOpt.value = annee;

           if (annee < ce_sa.options[0].value) {
             try { ce_sa.add(newOpt,ce_sa.options[0]); }
             catch(ex) { ce_sa.add(newOpt,0); }
           }
           else {
             try { ce_sa.add(newOpt, null); }
             catch(ex) { ce_sa.add(newOpt); }
           }
           SelectValeur(ce_sa,annee);
         }
        
         mois_nom = mois_cal_ev.getMonthName();
         mois_nom = mois_nom.substr(0,1).toUpperCase() + mois_nom.substr(1); // première lettre majuscule...
         ZEN('cal_ev_mois').innerHTML = ''+mois_nom+' '+annee;

     }

     if (!cal_ev_mois_presents[mois_check]) {
         cal_ev_dispo = false;
          if (est_intra) cal_xuzen = "&xuz="+xuzen;
          $('#cal_ev_sablier').stop().fadeTo('slow',0.2);
          var html_doc = document.getElementsByTagName('head').item(0);
          var js = document.createElement('script');
          js.setAttribute('language', 'javascript');
          js.setAttribute('type', 'text/javascript');
          js.setAttribute('src', 'calendrier_mois.php?mois='+mois_check+cal_xuzen);
          html_doc.appendChild(js);

       cal_ev_mois_presents[mois_check] = true;
     }
     else {
       AfficheCalEv();
     }
  }
 }
}

var activite_a_venir = false;
var liste_a_venir = new Array();
var last_a_venir = "";
var aav_nb = 0;
var aav_max = 6;
var cev_ta = -1;
function CAVjour(date_present,ja) {
  for (t in cev_d[date_present])
     for (j in cev_d[date_present][t]) {
         id = cev_d[date_present][t][j];
         if (!liste_a_venir[id] && aav_nb < aav_max) {
            liste_a_venir[id] = true; // juste pour éviter de répéter
            if (last_a_venir != date_present) {
              j_nom = ja.toString('dddd'); j_nom = j_nom.substring(0,1).toUpperCase()+j_nom.substring(1);
              $('#cev_a_venir').append('<h3>'+j_nom+' le '+i+" "+mois_nom+'</h3>');
            }
            $('#cev_a_venir').append($('<div class="cal_ev_pres_elem_'+t+'">'+cev_c[id]+'</div>'));
            last_a_venir = date_present;
            aav_nb++;
         }
     }
}
function AfficheCalEv(ta) {
  anim = true;
    
  mois = mois_cal_ev;
  max_mois = mois.getDaysInMonth();
  mois_num = mois.getMonth();
  annee = mois.toString('yyyy'); //annee = mois.getYear(); // donne 109 au lieu de 2009
  mois_nom = mois.getMonthName();

  // routine si on a un activite à venir.. 
  if (activite_a_venir == 1) {
    $('#cev_a_venir').append('<div class="gros">Événements à venir</div>');
    pj = new Date.today().toString('d');
    pj = parseInt(pj);
    ja = new Date(mois);
    ja.addDays(pj-1);
    for (i = pj; (i <= max_mois && aav_nb < aav_max); i++) {
      date_present = ja.toString('yyyy-MM-dd');
      if (cev_d[date_present]) CAVjour(date_present,ja);
      ja.addDays(1);
    }
    if (aav_nb < aav_max) {
       activite_a_venir = 2;
       GetCalEv(1);
       return false;
    } else activite_a_venir = 3; // pas besoin de "visiter l'autre mois", mais doit afficher !
  }  
  if (activite_a_venir == 2) { // on rempli avec ce qu'on peut dans l'autre mois et on revient avec 3
    ja = new Date(mois);
    for (i = 1; (i <= max_mois && aav_nb < aav_max); i++) {
      date_present = ja.toString('yyyy-MM-dd');
      if (cev_d[date_present]) CAVjour(date_present,ja);
      ja.addDays(1);
    }
    activite_a_venir = 3;
    mois_cal_ev.addMonths(-1); //reset..
    mois = mois_cal_ev;
    max_mois = mois.getDaysInMonth();
    mois_num = mois.getMonth();
    annee = mois.toString('yyyy'); 
    // mois_nom = mois.getMonthName(); //pas vraiment besoin plus bas..

  }

  if (activite_a_venir > 2) { //on affiche la grille
      activite_a_venir = false;
      //$('#cev_a_venir>div>div').remove();
      $('#cev_a_venir *').attr('id',null);
      $('#cev_a_venir>div>div').hide();
      if (super_admin) {
        $('#cev_a_venir>div .admin_options').remove();
        $('#cev_a_venir .clearing').next().remove();
      }
      $('#cev_a_venir>div>p').hide();
      $('#cev_a_venir img').each(function() {        
        SAImg(this); //même traitement que sommaire accueil.. :)       
      });
      $('#cev_a_venir>div').css({padding:'3px','border-bottom':'1px dotted #99bb77'}); /*prévient de transmettre aux sous-classes.. */
      $('#cev_a_venir>div>h4').each(function(){
          $(this).click(function(){
             p = $(this).parent()
             if (p.hasClass('aav_ouvert'))
               p.removeClass('aav_ouvert').find('div,p').stop(true,true).slideUp('fast');
             else {
               $('#cev_a_venir .aav_ouvert').removeClass('aav_ouvert').find('div,p').stop(true,true).slideUp('fast');
               p.addClass('aav_ouvert').find('div,p').stop(true,true).slideDown('fast');
             }
          });
          $(this).hover(function(){$(this).css('text-decoration','underline');},function(){$(this).css('text-decoration','none');})
      });
      $('#cev_a_venir').fadeIn('fast');
      $('#cal_menu').hover(
        function(){$(this).css({"background-color":"#ffffff"}).addClass("ombre");},
        function(){$(this).css({"background-color":"transparent"}).removeClass("ombre");}
       );
  }
 // si la grille est là, elle sera remplie directement à la fin des chargements..
 if (ZEN('grille_cal_ev') && activite_a_venir === false) {
     $('#cal_ev_sablier').stop().fadeTo('fast',0);
     if (ta !== undefined) {
          cev_ta = ta;
          anim = false;
      }
      $('.cal_ev_legende').each(function() {
          if (cev_ta < 0 || $(this).hasClass('cal_ev_li_'+cev_ta)) $(this).fadeTo('fast',1);
          else $(this).fadeTo('fast',0.5);
     });

  first_day_of_week = 0;
  if (mois.is().sun()) first_day_of_week = 0;
  if (mois.is().mon()) first_day_of_week = 1;
  if (mois.is().tue()) first_day_of_week = 2;
  if (mois.is().wed()) first_day_of_week = 3;
  if (mois.is().thu()) first_day_of_week = 4;
  if (mois.is().fri()) first_day_of_week = 5;
  if (mois.is().sat()) first_day_of_week = 6;

  affichage = "";
  jours_affichage = new Date(mois); 

  for (i = 0; i < first_day_of_week; i++)
     affichage += '<div class="cal_ev_vide ui-corner-all">&nbsp;</div>';

  for (i = 1; i <= max_mois; i++) {

      date_present = jours_affichage.toString('yyyy-MM-dd');

      bg_jour = cal_ev_bg_jour_fds;                                     // FIN DE SEMAINE
      if (jours_affichage.isWeekday()) bg_jour = cal_ev_bg_jour_semaine;    // JOUR DE SEMAINE
      if (date_present == check_today) bg_jour = cal_ev_bg_jour_today;    // AUJOURD'HUI

      details = '';
      style_txt = '';
      types_bg = '';
      cal_ev_info = '';

      if (cev_d[date_present]) {
         // remettre ça pour accélérer si pas de menu de types...
         //if (est_admin || !cal_ev_titres_sommaire[date_present]) {
            somm = "";
            somm_c = "";
            if (cev_ta == -1) {
              for (t in cev_d[date_present])
               for (j in cev_d[date_present][t]) {
                 id = cev_d[date_present][t][j];
                 clicdroit = ""
                 // t=10 : séances du conseil, NON ÉDITABLE :)
                 if (super_admin && t != 10) clicdroit = ' oncontextmenu="ModifierContenu('+id+',this,\'act\'); return false;" title="Cliquez avec le bouton droit pour éditez cet élément du calendrier"'

                 somm += '<li'+clicdroit+' class="cal_ev_li_'+t+'" id="'+id+date_present+'">'+cev_t[id]+'</li>';

                 somm_c += '<div'+clicdroit+' class="cepe cal_ev_pres_elem_'+t+' ui-corner-all ombre" id="d'+id+date_present+'">'+cev_c[id]+'</div>';
               }
            }else {
               t = cev_ta;
               for (j in cev_d[date_present][t]) {
                 id = cev_d[date_present][t][j];
                 clicdroit = ""
                 // t=10 : séances du conseil, NON ÉDITABLE :)
                 if (super_admin && t != 10) clicdroit = ' oncontextmenu="ModifierActivite('+id+'); return false;" title="Cliquez avec le bouton droit pour éditez cet élément du calendrier"'

                 somm += '<li'+clicdroit+' class="cal_ev_li_'+t+'" id="'+id+date_present+'">'+cev_t[id]+'</li>';

                 somm_c += '<div'+clicdroit+' class="cepe cal_ev_pres_elem_'+t+' ui-corner-all ombre" id="d'+id+date_present+'">'+cev_c[id]+'</div>';
               }
            }
            cal_ev_titres_sommaire[date_present] = somm;
            cal_ev_pres_sommaire[date_present] = somm_c;
         //}

//

         dp = "'"+date_present+"'";
         details = "";
         style_txt = ' cejt_gras';

         types_bg = "";
  //       for (t in cev_d[date_present]) types_bg += '<p class="cal_ev_type_bg_'+t+'"></p>';


         cal_ev_info = '<div class="cal_ev_jour_info" id="ceji_'+date_present+'"><ul>' + cal_ev_titres_sommaire[date_present] + '</ul></div>'+ cal_ev_pres_sommaire[date_present];
      }
      admin_nouv = "";
      if (super_admin) admin_nouv = '<a title="Ajouter un évenement débutant ce jour" style="text-decoration:none; margin:3px; font-size:14px;" href="javascript:ModifierActivite(\'nouveau\',\''+date_present+'\');">+</a>';
      affichage += '<div class="cal_ev_jour ui-corner-all '+bg_jour+'">'+
                     admin_nouv+
                     cal_ev_info+
                     '<p class="cal_ev_jour_txt'+style_txt+'">'+i+'</p>'+
                    '</div>';
      jours_affichage.addDays(1);
  }

  for (i = first_day_of_week+max_mois; i%7!=0; i++)
    affichage += '<div class="cal_ev_vide ui-corner-all">&nbsp;</div>';

  
  //ZEN('cal_ev_annee').innerHTML = ''+annee;
  ZEN('grille_cal_ev').innerHTML = ''+titres_jours_ev+affichage+'<div class="clearing"></div>';
  $('#grille_cal_ev > .cal_ev_nom_jour, #cal_ev_titre').addClass('ui-corner-all');


  $('.cal_ev_jour').hover(function() {
      if (!modif_activite && $(this).find('ul').length >0) {
       $(this).css({overflow:'visible', 'z-index':100});
       if (!isMSIE || gteIE9) {
          $(this).addClass('ombre');
          $(this).find('.cal_ev_jour_info').addClass('ombre');
       }
      }
  }, function() {
      if (!modif_activite) {
       $(this).find('.cepe').stop(true,true).hide();
       // pas animé car croppé par l'overflow hidden
        $(this).css({overflow:'hidden', 'z-index':1})
        .removeClass('ombre')
        .find('.cal_ev_jour_info').removeClass('ombre');
      }
  });

  cepe_mouse_over = "";
  $('.cepe').hover(function() {
    cepe_mouse_over = $(this).attr('id');
  },function () {
    cepe_mouse_over = "";
  });
  $('.cal_ev_jour_info >ul>li').hoverIntent(function() {
     if (!modif_activite) {
      $('.cepe').stop(true,true).fadeOut('fast').removeClass('ombre');;
      desc = $('#d'+ $(this).attr('id'));
      pos = desc.parent().position();
      if (!IE7 && pos.left > 300)
          desc.css('right','80px');
      else desc.css('left','75px');
      if (!IE7 && pos.top > 300)
          desc.css('bottom','10px');
      else desc.css('top','-10px');
      desc.stop(true, true).slideDown({duration: 360, easing: 'swing', queue:false}).addClass('ombre');
     }

  }, function() {
    if (!modif_activite) {
     //$(this).removeClass('menu_hover')
     if (cepe_mouse_over != 'd'+ $(this).attr('id'))
         $('#d'+ $(this).attr('id')).stop(true, true).fadeOut('fast');
    }
  });

          if (est_admin) {
              $('.admin_options').fadeTo('fast',0.6);
              $('.admin_options').hover(function(){$(this).stop().fadeTo('fast',1);},function(){$(this).stop().fadeTo('fast',0.6);});
              $('#cal_ev .admin_options').addClass('ui-corner-all');
          }
    if ((!isMSIE || gteIE9) && anim) $('#grille_cal_ev').stop(false,true).css('opacity',0.1).fadeTo({duration:'fast',queue:false},1);//.slideDown({duration:'fast',easing:'swing',queue:false})

 }

}
