// Calendrier Javascript
// Dernière mise à jour : 11/02/2010
<!--

// Variables globales
var _calHead_CAL;                  // Entête
var _calEnd_CAL;                   // Bas de page
var _calBody_CAL;                  // Corps
var _content_CAL;                  // Contenant (div, span, etc.)
var _field_CAL;                    // Champs à remplir
var _dtToday_CAL = new Date();     // Date du jour
var _dtFirst_CAL;                  // Date du mois en cours (1er jour)
var _tabDay_CAL = new Array();     // Tableau des jours (1: Initiales / 2: Court / 3: Longs)
var _tabMonth_CAL = new Array();   // Tableau des mois
var _style_CAL;                    // Style du calendrier - 0 = Sans la barre d'année / 1 = Avec la barre d'année
var _lblPrevMonth_CAL;
var _lblNextMonth_CAL;
var _lblPrevYear_CAL;
var _lblNextYear_CAL;


// Définition du style
var _bgHeadMonth_CAL = "#e0e0e0";
var _bgHeadPrevNext_CAL = "#e0e0e0";
var _bgHeadDay_CAL = "#327c98"

var _bgBodyDay_CAL = "#d6e5ea";
var _bgBodyDay_Hover_CAL = "#cce3c2";
var _bgBodyWeekEnd_CAL = "#c1d7e0";
var _bgBodyWeekEnd_Hover_CAL = "#cce3c2";
var _bgBodyToday_CAL = "#ebc492";
var _bgBodyToday_Hover_CAL = "#cce3c2";
var _bgBodyDay_Off_CAL = "#ebebeb";

var _textHeadDay_CAL = "#ffffff";
var _textBodyDayOff_CAL = "#d3d3d3";

// Définition des tailles
var _cellW_CAL = "30px";
var _cellH_CAL = "20px";



// Initialisation du Calendrier
function initCal(_object, _object2 ,_langue, _varstyle){
 _style_CAL = _varstyle;
 _content_CAL = document.getElementById(_object);
 _field_CAL = document.getElementById(_object2);
 _dtToday_CAL = new Date(_dtToday_CAL.getFullYear(),_dtToday_CAL.getMonth(),_dtToday_CAL.getDate());
 _dtFirst_CAL = new Date(_dtToday_CAL.getFullYear(),_dtToday_CAL.getMonth(),1);
 initLabels(_langue);
 openCal();
 generateMonth();
}


// Changement du champs en cours
function changeField(_object2, _num){
 _field_CAL = document.getElementById(_object2);
 resetImg(_num);
}


// Reset des images appelantes du calendrier
function resetImg(_num){
 _cpt = 1;
 var _test = false;
 var _testImg;
 while(_test != true){
  _testImg = document.getElementById("opencloseCal" + _cpt);
  if(_testImg == null){
   _test = true;
  }else{
   _testImg.src="/images/calendar/bt_opencal.png";
   _cpt++;
  }
 }
 _testImg = document.getElementById("opencloseCal" + _num);
 _testImg.src="/images/calendar/bt_editcal.png";
}


// Ouverture simple du calendrier
function openCal(){
 document.getElementById(_content_CAL.id).style.display = '';
}


// Fermeture simple du calendrier
function closeCal(){
 document.getElementById(_content_CAL.id).style.display = 'none';
}


// Ouverture / Fermeture simple du calendrier
function opencloseCal(){
 if(document.getElementById(_content_CAL.id).style.display == 'none'){
  document.getElementById(_content_CAL.id).style.display = '';
 }else{
  document.getElementById(_content_CAL.id).style.display = 'none';
 }
}


// Initialisation des labels des jours et des mois
function initLabels(_langue){
 for(_cpt=1; _cpt<=3; _cpt++){
  _tabDay_CAL[_cpt] = new Array();
 }
 switch(_langue){
  case "fr":
   _tabDay_CAL[1][1] = "Lu"; _tabDay_CAL[1][2] = "Ma"; _tabDay_CAL[1][3] = "Me"; _tabDay_CAL[1][4] = "Je"; _tabDay_CAL[1][5] = "Ve"; _tabDay_CAL[1][6] = "Sa"; _tabDay_CAL[1][7] = "Di"; _tabDay_CAL[2][1] = "Lun"; _tabDay_CAL[2][2] = "Mar"; _tabDay_CAL[2][3] = "Mer"; _tabDay_CAL[2][4] = "Jeu"; _tabDay_CAL[2][5] = "Ven"; _tabDay_CAL[2][6] = "Sam"; _tabDay_CAL[2][7] = "Dim"; _tabDay_CAL[3][1] = "Lundi"; _tabDay_CAL[3][2] = "Mardi"; _tabDay_CAL[3][3] = "Mercredi"; _tabDay_CAL[3][4] = "Jeudi"; _tabDay_CAL[3][5] = "Vendredi"; _tabDay_CAL[3][6] = "Samedi"; _tabDay_CAL[3][7] = "Dimanche";
   _tabMonth_CAL[0] = "Janvier"; _tabMonth_CAL[1] = "Février"; _tabMonth_CAL[2] = "Mars"; _tabMonth_CAL[3] = "Avril"; _tabMonth_CAL[4] = "Mai"; _tabMonth_CAL[5] = "Juin"; _tabMonth_CAL[6] = "Juillet"; _tabMonth_CAL[7] = "Août"; _tabMonth_CAL[8] = "Septembre"; _tabMonth_CAL[9] = "Octobre"; _tabMonth_CAL[10] = "Novembre"; _tabMonth_CAL[11] = "Décembre";
   _lblPrevMonth_CAL = "Mois précédent : ";
   _lblNextMonth_CAL = "Mois suivant : ";
   _lblPrevYear_CAL = "Année précédente : ";
   _lblNextYear_CAL = "Année suivante : ";
   break;
  case "en":
   _tabDay_CAL[1][1] = "Mo"; _tabDay_CAL[1][2] = "Tu"; _tabDay_CAL[1][3] = "We"; _tabDay_CAL[1][4] = "Th"; _tabDay_CAL[1][5] = "Fr"; _tabDay_CAL[1][6] = "Sa"; _tabDay_CAL[1][7] = "Su"; _tabDay_CAL[2][1] = "Mon"; _tabDay_CAL[2][2] = "Tue"; _tabDay_CAL[2][3] = "Wed"; _tabDay_CAL[2][4] = "Thu"; _tabDay_CAL[2][5] = "Fri"; _tabDay_CAL[2][6] = "Sat"; _tabDay_CAL[2][7] = "Sun"; _tabDay_CAL[3][1] = "Monday"; _tabDay_CAL[3][2] = "Tuesday"; _tabDay_CAL[3][3] = "Wednesday"; _tabDay_CAL[3][4] = "Thursday"; _tabDay_CAL[3][5] = "Friday"; _tabDay_CAL[3][6] = "Saturday"; _tabDay_CAL[3][7] = "Sunday";
   _tabMonth_CAL[0] = "January"; _tabMonth_CAL[1] = "February"; _tabMonth_CAL[2] = "March"; _tabMonth_CAL[3] = "April"; _tabMonth_CAL[4] = "May"; _tabMonth_CAL[5] = "June"; _tabMonth_CAL[6] = "July"; _tabMonth_CAL[7] = "August"; _tabMonth_CAL[8] = "September"; _tabMonth_CAL[9] = "October"; _tabMonth_CAL[10] = "November"; _tabMonth_CAL[11] = "December";
   _lblPrevMonth_CAL = "Previous month: ";
   _lblNextMonth_CAL = "Next month: ";
   _lblPrevYear_CAL = "Previous year: ";
   _lblNextYear_CAL = "Next year: ";
   break;
  default :
   _tabDay_CAL[1][1] = "L"; _tabDay_CAL[1][2] = "M"; _tabDay_CAL[1][3] = "M"; _tabDay_CAL[1][4] = "J"; _tabDay_CAL[1][5] = "V"; _tabDay_CAL[1][6] = "S"; _tabDay_CAL[1][7] = "D"; _tabDay_CAL[2][1] = "Lun"; _tabDay_CAL[2][2] = "Mar"; _tabDay_CAL[2][3] = "Mer"; _tabDay_CAL[2][4] = "Jeu"; _tabDay_CAL[2][5] = "Ven"; _tabDay_CAL[2][6] = "Sam"; _tabDay_CAL[2][7] = "Dim"; _tabDay_CAL[3][1] = "Lundi"; _tabDay_CAL[3][2] = "Mardi"; _tabDay_CAL[3][3] = "Mercredi"; _tabDay_CAL[3][4] = "Jeudi"; _tabDay_CAL[3][5] = "Vendredi"; _tabDay_CAL[3][6] = "Samedi"; _tabDay_CAL[3][7] = "Dimanche";
   _tabMonth_CAL[0] = "Janvier"; _tabMonth_CAL[1] = "Février"; _tabMonth_CAL[2] = "Mars"; _tabMonth_CAL[3] = "Avril"; _tabMonth_CAL[4] = "Mai"; _tabMonth_CAL[5] = "Juin"; _tabMonth_CAL[6] = "Juillet"; _tabMonth_CAL[7] = "Août"; _tabMonth_CAL[8] = "Septembre"; _tabMonth_CAL[9] = "Octobre"; _tabMonth_CAL[10] = "Novembre"; _tabMonth_CAL[11] = "Décembre";
   _lblPrevMonth_CAL = "Mois précédent : ";
   _lblNextMonth_CAL = "Mois suivant : ";
   _lblPrevYear_CAL = "Année précédente : ";
   _lblNextYear_CAL = "Année suivante : ";
   break;
 }
}


// Mois précédent
function prevMonth(){
 _dtFirst_CAL.setMonth(_dtFirst_CAL.getMonth()-1);
 generateMonth();
}


// Mois suivant
function nextMonth(){
 _dtFirst_CAL.setMonth(_dtFirst_CAL.getMonth()+1);
 generateMonth();
}


// Année précédente
function prevYear(){
 _dtFirst_CAL.setFullYear(_dtFirst_CAL.getFullYear()-1);
 generateMonth();
}


// Année suivante
function nextYear(){
 _dtFirst_CAL.setFullYear(_dtFirst_CAL.getFullYear()+1);
 generateMonth();
}


// Validation de la date
function validDate(_year, _month, _day){
 _month++;
 if(_day<10){
  _day = "0" + _day;
 }
 if(_month<10){
  _month = "0" + _month;
 }
 _field_CAL.value = _day + "/" + _month + "/" + _year;
}


// Envoi de Today
function validToday(){
 _day = _dtToday_CAL.getDate();
 _month = _dtToday_CAL.getMonth()+1;
 _year = _dtToday_CAL.getFullYear();
 if(_day<10){
  _day = "0" + _day;
 }
 if(_month<10){
  _month = "0" + _month;
 }
 _field_CAL.value = _day + "/" + _month + "/" + _year;
}


// =======================================================================================================================================================================================
// Génération de l'entête et du bas de page
// =======================================================================================================================================================================================
function generateHead(){
 var _monthNum;
 if(_dtFirst_CAL.getMonth()<9){
  _monthNum = "0" + (_dtFirst_CAL.getMonth()+1);
 }else{
  _monthNum = _dtFirst_CAL.getMonth()+1;
 }
 if(_style_CAL == 1){
  _monthName = _tabMonth_CAL[_dtFirst_CAL.getMonth()];
 }else{
  _monthName = _tabMonth_CAL[_dtFirst_CAL.getMonth()]+" "+_dtFirst_CAL.getFullYear()
 }
 _calHead_CAL = '<table cellpadding="0" cellspacing="0">'+
 '<tr>'+
 '<td align="center" valign="middle" width="' + _cellW_CAL + '" height="' + _cellH_CAL + '" style="cursor:pointer;background-color:' + _bgHeadPrevNext_CAL + '" onclick="prevMonth();"><img src="/images/calendar/bt_prev.png" alt="' + _lblPrevMonth_CAL + _tabMonth_CAL[_dtFirst_CAL.getMonth()-1] + '" name="' + _lblPrevMonth_CAL + _tabMonth_CAL[_dtFirst_CAL.getMonth()-1] + '"></td>'+
 '<td align="center" valign="middle" width="' + _cellW_CAL*5 + '" height="' + _cellH_CAL + '" style="cursor:default;background-color:' + _bgHeadMonth_CAL + '" colspan="5"><span style="font-size:10px;">' + _monthName + '</span></td>'+
 '<td align="center" valign="middle" width="' + _cellW_CAL + '" height="' + _cellH_CAL + '" style="cursor:pointer;background-color:' + _bgHeadPrevNext_CAL + '" onclick="nextMonth();"><img src="/images/calendar/bt_next.png" alt="' + _lblNextMonth_CAL + _tabMonth_CAL[_dtFirst_CAL.getMonth()+1] + '" name="' + _lblNextMonth_CAL + _tabMonth_CAL[_dtFirst_CAL.getMonth()+1] + '"></td>'+
 '</tr>'+
 '<tr>';
 for(_cpt=1; _cpt<=7; _cpt++){
  _calHead_CAL += '<td align="center" valign="middle" width="' + _cellW_CAL + '" height="' + _cellH_CAL + '" style="cursor:default;background-color:' + _bgHeadDay_CAL + '"><span style="font-size:10px;color:' + _textHeadDay_CAL + '">' + _tabDay_CAL[1][_cpt] + '</span></td>';
 }
 _calHead_CAL += '</tr>';
 _calEnd_CAL = '</table>';
 _content_CAL.innerHTML = _calHead_CAL + _calBody_CAL + _calEnd_CAL;
}


// =======================================================================================================================================================================================
// Génération du mois et affichage
// =======================================================================================================================================================================================
function generateMonth(){
 generateHead();
 var _dtTest = new Date(_dtFirst_CAL.getFullYear(),_dtFirst_CAL.getMonth(),_dtFirst_CAL.getDate());
 var _dtTestNextDay = new Date(_dtFirst_CAL.getFullYear(),_dtFirst_CAL.getMonth(),_dtFirst_CAL.getDate());
 var _dtLast = new Date(_dtFirst_CAL.getFullYear(),_dtFirst_CAL.getMonth()+1,0);
 var _bgTest;
 var _bgTestHover;
 _calBody_CAL = "<tr>";
 // Jours précédents le 1er jour du mois
 _cptW=1;
 while(_cptW!=_dtFirst_CAL.getDay() && _cptW<=6){
  _cptW++;
 }
 _dtTest.setDate(_dtTest.getDate()-_cptW);
 _cptW=1;
 while(_cptW!=_dtFirst_CAL.getDay() && _cptW<=6){
  _dtTest.setDate(_dtTest.getDate()+1);
  _calBody_CAL += "<td align='center' valign='middle' width='" + _cellW_CAL + "' height='" + _cellH_CAL + "' style='cursor:pointer;background-color:" + _bgBodyDay_Off_CAL + "'><span style='font-size:10px;color:" + _textBodyDayOff_CAL + "' onClick='javascript:prevMonth()'>" + _dtTest.getDate() + "</span></td>";
  _cptW++;
 }
 // Jours du mois
 _dtTest.setDate(_dtTest.getDate()+1);
 _cptLines = 1;
 for(_cptF=_dtFirst_CAL.getDate(); _cptF<=_dtLast.getDate(); _cptF++){
  _dtTest.setDate(_cptF);
  if(_dtTest.getDate() == _dtToday_CAL.getDate() && _dtTest.getMonth() == _dtToday_CAL.getMonth() && _dtTest.getFullYear() == _dtToday_CAL.getFullYear()){
   _bgTest = _bgBodyToday_CAL;
   _bgTestHover = _bgBodyToday_Hover_CAL;
  }else if(_dtTest.getDay()==6 || _dtTest.getDay()==0) {
   _bgTest = _bgBodyWeekEnd_CAL;
   _bgTestHover = _bgBodyWeekEnd_Hover_CAL;
  }else{
   _bgTest = _bgBodyDay_CAL;
   _bgTestHover = _bgBodyDay_Hover_CAL;
  }
  _calBody_CAL += "<td align='center' valign='middle' width='" + _cellW_CAL + "' height='" + _cellH_CAL + "' onClick='javascript:validDate(" + '"' + _dtFirst_CAL.getFullYear() + '","' + _dtFirst_CAL.getMonth() + '","' + _cptF + '"' + ")' style='cursor:pointer;background-color:" + _bgTest + "' onMouseOver='javascript:this.style.background=" + '"' + _bgTestHover + '"' + "' onMouseOut='javascript:this.style.background=" + '"' + _bgTest + '"' + "'><span style='font-size:10px;'>" + _cptF + "</span></td>";
  _dtTestNextDay.setDate(_dtTest.getDate()+1);
  if(_dtTest.getDay()==0 && _dtTestNextDay.getMonth()== _dtTest.getMonth()){
   _calBody_CAL += "</tr><tr>";
   _cptLines++;
  }
 }
 // Jours suivants le dernier jour du mois
 while(_dtTest.getDay()!=0){
  _dtTest.setDate(_dtTest.getDate()+1);
  _calBody_CAL += "<td align='center' valign='middle' width='" + _cellW_CAL + "' height='" + _cellH_CAL + "' style='cursor:pointer;background-color:" + _bgBodyDay_Off_CAL + "'><span style='font-size:10px;color:" + _textBodyDayOff_CAL + "' onClick='javascript:nextMonth()'>" + _dtTest.getDate() + "</span></td>";
 };
 _calBody_CAL += "</tr>";
 // Ligne supplémentaire si lignes <6
 if(_cptLines<6){
  _calBody_CAL += "<tr>";
  for(_cptF=1; _cptF<=7; _cptF++){
   _dtTest.setDate(_dtTest.getDate()+1);
   _calBody_CAL += "<td align='center' valign='middle' width='" + _cellW_CAL + "' height='" + _cellH_CAL + "' style='cursor:pointer;background-color:" + _bgBodyDay_Off_CAL + "'><span style='font-size:10px;color:" + _textBodyDayOff_CAL + "' onClick='javascript:nextMonth()'>" + _dtTest.getDate() + "</span></td>";
  }
  _calBody_CAL += "</tr>";
 }
 // Ligne supplémentaire si lignes <5
 if(_cptLines<5){
  _calBody_CAL += "<tr>";
  for(_cptF=1; _cptF<=7; _cptF++){
   _dtTest.setDate(_dtTest.getDate()+1);
   _calBody_CAL += "<td align='center' valign='middle' width='" + _cellW_CAL + "' height='" + _cellH_CAL + "' style='cursor:pointer;background-color:" + _bgBodyDay_Off_CAL + "'><span style='font-size:10px;color:" + _textBodyDayOff_CAL + "' onClick='javascript:nextMonth()'>" + _dtTest.getDate() + "</span></td>";
  }
  _calBody_CAL += "</tr>";
 }
 // Ligne de l'année en cours
 if(_style_CAL == 1){
 _calBody_CAL += '<tr>'+
 '<td align="center" valign="middle" width="' + _cellW_CAL + '" height="' + _cellH_CAL + '" style="cursor:pointer;background-color:' + _bgHeadPrevNext_CAL + '" onclick="prevYear();"><img src="/images/calendar/bt_prev.png" alt="' + _lblPrevYear_CAL + (_dtFirst_CAL.getFullYear()-1) + '" name="' + _lblPrevYear_CAL + (_dtFirst_CAL.getFullYear()-1) + '"></td>'+
 '<td align="center" valign="middle" width="' + _cellW_CAL*5 + '" height="' + _cellH_CAL + '" style="cursor:default;background-color:' + _bgHeadMonth_CAL + '" colspan="5"><span style="font-size:10px;">' + _dtFirst_CAL.getFullYear() + '</span></td>'+
 '<td align="center" valign="middle" width="' + _cellW_CAL + '" height="' + _cellH_CAL + '" style="cursor:pointer;background-color:' + _bgHeadPrevNext_CAL + '" onclick="nextYear();"><img src="/images/calendar/bt_next.png" alt="' + _lblNextYear_CAL + (_dtFirst_CAL.getFullYear()+1) + '" name="' + _lblNextYear_CAL + (_dtFirst_CAL.getFullYear()+1) + '"></td>'+
 '</tr>';
 }

 // Génération du calendrier
 _content_CAL.innerHTML = _calHead_CAL + _calBody_CAL + _calEnd_CAL;
}

//-->