// Event Calendar
// copyright Stephen Chapman, 10th June 2006, 11th June 2006

var tb = 'b'; // Affiche les evenements en haut (t) ou en bas du calendrier (b)
var headbg = '#5FA0BD;';  // table heading background colour
var todaybg = '#ffffff;'; // current selected date background colour
var textclr = '#000000;'; // text colour
var linkclr = '#b81836;'; // link text colour
var noMessage =  'Aucun événement aujourd\'hui'; // message to display when no entry in array

var x = 0;

// permission is granted to use this javascript provided that the below code is not altered
function monthlength(month,year) 
{
   var dd = new Date(year, month, 0);
   return dd.getDate();
}

var moy = ['janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre'];
var today = new Date();
var selDate = today.getFullYear()+getmmdd(today.getMonth()+1,today.getDate());


function dispCal(yy,mm) 
{ 
   if (mm < 0 || mm > 12) 
   {
      alert('month must be between 1 and 12'); 
      return false;
   } 
   if (yy != 0 && (yy < 1901 || yy > 2100)) 
   {
      alert('year must be after 1900 and before 2101'); 
      return false;
   } 
   var dow = ['D','L','M','M','J','V','S']; 
   var calendar = new Date(); 
   var today = calendar.getDate(); 
   calendar.setDate(1); 
   if (yy > 1900) 
      calendar.setFullYear(yy); 
   if (mm > 0) 
      calendar.setMonth(mm - 1); 
   var yy = year = calendar.getFullYear(); 
   var month = calendar.getMonth(); 
   calendar.setDate(today); 
   var weekday = calendar.getDay(); 
   var daysInMonth = monthlength(month+1,year); 
   var hilite_start = '<td width="30" style="background-color:' + todaybg + '" align="center"><b>'; 
   var td_start = '<td width="30" align="center">'; 

   if (document.getElementById) 
   {
      var mmb = month;  
      mm = month + 1; 
      var yya = yyb = yy; 
      if (mmb <1) 
      {
         mmb += 12; yyb--;
      } 
      var mma = month + 2; 
      if (mma > 12) 
      {
         mma -= 12; 
         yya++;
      } 
      var yb = yy -1; 
      var ya = yy +1; 
   }
   var cal = '<div id="cal"><div style="width:150px"><table border="0" cellspacing="0" cellpadding="2" align="center"><tr><td style="background:' + headbg + '" align="center"><a href="#" onclick="if (cala = dispCal('+yyb+','+mmb+')) {document.getElementById(\'cal\').innerHTML = cala; return false;}"><</a></td><td colspan="5" style="background:' + headbg + '" align="center">' + moy[month]  + ' ' + year + '</td><td style="background:' + headbg + '" align="center"><a href="#" onclick="if (cala = dispCal('+yya+','+mma+')) {document.getElementById(\'cal\').innerHTML = cala; return false;}">></a><\/td><\/tr><tr>'; 

   for(dex=0; dex < 7; dex++) 
   {
      cal += td_start + dow[dex] + '</td>';
   } 
   cal += '<\/tr><tr>'; 
   var day2 = today; 
   for (dex = today; dex > 6; dex -=7) 
      day2 = dex; 
   weekday -= day2 - 1;
   while (weekday < 0) 
      weekday += 7; 
   for(dex=0; dex < weekday; dex++) 
      cal += td_start + ' <\/td>'; 
   for(dex=1; dex <= daysInMonth; dex++) 
   {
      if(weekday == 7) 
      {
         cal += '</tr><tr>'; weekday = 0;
      }
      if(selDate == year+getmmdd(month+1,dex)) 
         cal += hilite_start +'<span '+clickDate(dex,month,year) + '>'+ dex + '<\/span><\/b><\/td>'; 
      else 
         cal += td_start + '<span '+clickDate(dex,month,year) + '>' + dex + '<\/span><\/td>'; 
      weekday += 1;
   } 
   for(dex=weekday; dex < 7; dex++) 
      cal += td_start + ' <\/td>'; 
   cal += '<\/tr><\/table><\/div>';
   cal += '</div>'; 
   return cal;
}


function start() 
{

   var x = '<div id="calDate" style="width:150px"><\/div>'; 
   var y = ''; 
   if (tb == 't') 
      y = x + dispCal(0,0); 
   else 
      y = dispCal(0,0) + x; 
   document.getElementById('calendar').innerHTML = y; 
   ev();
}

window.onload = start;

function clickDate(day, month, year) 
{

   var ct = nextDate(year + getmmdd(month+1,day));
   if (ct == '') 
      ct = nextDate('0000' + getmmdd(month+1,day));
   if (ct == '') 
      return 'style="color:"'+textclr; 
   else 
      return 'style="cursor:pointer;font-weight:bold;color:'+linkclr+'" onclick="selDate = '+year+ getmmdd(month+1,day)+'; isDate(' + day + ',' + month + ',' + year + ');return false;"';
}


function isDate(dayVal,monthVal,yearVal) 
{

   var ct = nextDate(yearVal + getmmdd(monthVal+1,dayVal));
   if (ct == '') 
      ct = nextDate('0000' + getmmdd(monthVal+1,dayVal));
   if (ct == '') 
      ct = noMessage;
   else
   {
      //document.getElementById('calDate').innerHTML = selDate + ':<br \/>' +ct; 
      document.getElementById('calDate').innerHTML = '<br style="clear:both;"><span class="titreEventCal">' + dayVal + ' ' + moy[monthVal] + ' ' + yearVal + ':</span><br \/> ' + '<span class="txtEventCal">' +ct+ '</span>';
      //document.getElementById('calDate').innerHTML = '<u>' + parseInt(selDate.substr(6,2)) + ' ' + moy[parseInt(selDate.substr(4,2))-1] + ' ' + selDate.substr(0,4) + ':</u><br \/><br \/> ' +ct;
   }
   return false;
}


function nextDate(yymmdd) 
{

   var x = dA.length;
   for (var i = 0; i < x; i++) 
   {
      if (dA[i].substr(0,8) == yymmdd) 
      {
         return dA[i].substr(9).replace(/<sep>/g, "<br /><br />");
      }
   }
   return '';
}


function getmmdd(mm,dd) 
{

   return (mm > 9 ? '' + mm : '0' + mm) + (dd > 9 ? dd : '0' + dd);
}

function ev() 
{

   var ct = nextDate(selDate);
   if (ct == '') 
      ct = nextDate('0000' + selDate.substr(4));
   if (ct == '') 
      ct = noMessage; 
   else
   {
      document.getElementById('calDate').innerHTML = '<u>' + GetDay(selDate.substr(6,2)) + ' ' + GetMonthStr(selDate.substr(4,2)) + ' ' + selDate.substr(0,4) + ':</u><br \/><br \/> ' +ct;
}
}


function GetDay(jour)
{
   if(jour.substr(0,1) == "0")
   {
      return jour.substr(1,1);
   }
   else
   {
      return jour.substr(0,2);
   }
}


function GetMonthStr(mois)
{
   if(mois.substr(0,1) == "0")
   {
      return moy[parseInt(mois.substr(1,1))-1];
   }
   else
   {
      return moy[parseInt(selDate.substr(0,2))-1];
   }
}

               