var date = new Date();
var currentMonth = date.getMonth();
var dayInWeek = date.getDay();
var currentDay = date.getDate();
var currentYear = date.getFullYear();

var days = new Array("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31");
var libDay = new Array("Lu","Ma","Me","Je","Ve","Sa","Di");
var months = new Array("Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");

//calcule le nombre de jours dans le mois courant
function getMaxDays(year,month) 
{
	var m = month;
	var maxMois;
	//mois de février
	if(m == 1) {
	//recherche si l'année est bissextile : tous les 4 ans, sauf pour les années multiples de 100 mais pas multiples de 400
	if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
	  maxMois = 29;
	else
	  maxMois = 28;
	} else if(m == 3 || m == 5 ||  m == 8 ||  m == 10)
	maxMois = 30;
	else
	maxMois = 31;
	//retourne le dernier jour du mois
	return maxMois;
}

function monthUp(today)
{
	//premier appel de la fonction, lors du chargement de la page. On met le calendrier sur le mois courant
	if(today == "today") 
	{
		currentMonth = date.getMonth();
		document.getElementById("year").innerHTML = currentYear;
	} 
	else
		currentMonth++;
	if(currentMonth > 11)
	{
		currentMonth = 0;
		currentYear++;
		document.getElementById("year").innerHTML = currentYear;
	}
	document.getElementById("month").innerHTML = months[currentMonth];
	changeDays();
}

function monthDown()
{
	currentMonth--;
	if(currentMonth < 0) {
	currentMonth = 11;
	currentYear--;
	document.getElementById("year").innerHTML = currentYear;
	}
	document.getElementById("month").innerHTML = months[currentMonth];

	changeDays();
}

function changeDays()
{
	var thisdate = new Date();
	thisdate.setYear(currentYear);
	thisdate.setMonth(currentMonth);
	thisdate.setDate(1);

	var maxDays = getMaxDays(currentYear, currentMonth);
	var i=0;
	var currentRow = 2;
	var currentCell = thisdate.getDay();
	var highlightDate = thisdate.getDay();
	var correspDays = new Array(6,0,1,2,3,4,5);
	currentCell = correspDays[currentCell];
	//on met à vide les premières cases
	if(currentCell > 0)
	{
		var j = 0;
		for(j=0;j<currentCell;j++)
		{
			document.getElementById("calendar").rows[currentRow].cells[j].innerHTML = "";
		}		
	}

	//on remplit les jours dans les cases correspondantes
	var min = date.getDate() + 3;
	for(i=0;i<maxDays;i++)
	{
		if ( (currentMonth == date.getMonth()) & (i < min))
		{
			if ( (i > date.getDate()) & ((currentCell == 5) || (currentCell == 6)) )
			{
				document.getElementById("calendar").rows[currentRow].cells[currentCell].innerHTML = days[i];
				min++;
			}
			else
			{
				document.getElementById("calendar").rows[currentRow].cells[currentCell].innerHTML = "&nbsp;&nbsp;"
			}
		}
		else
		{
			if ( (currentCell == 5) || (currentCell == 6) )
			{
				document.getElementById("calendar").rows[currentRow].cells[currentCell].innerHTML = days[i];
			}
			else
			{
				document.getElementById("calendar").rows[currentRow].cells[currentCell].innerHTML = "<a href=\"javascript:void(0)\" onclick=\"getThisDay("+currentRow+","+currentCell+");\">"+days[i]+"</a>";
			}
		}
		currentCell ++;
		if(currentCell == 7)
		{
		  currentCell = 0;
		  currentRow ++;
		}
	}

	//on met à vide les dernières cases
	if(currentCell < 6)
	{
		var j = 0;
		for(j=currentCell;j<7;j++)
		{

			document.getElementById("calendar").rows[currentRow].cells[j].innerHTML = "";
		}
	}
	if(currentRow < 7)
	{
		var j=0;
		for(j=0;j<7;j++)
		{
			document.getElementById("calendar").rows[7].cells[j].innerHTML = "";
		}
	}
}

function getThisDay(row,cell)
{
	var thisYear = currentYear;
	var thisMonth = currentMonth+1;
	var thisDay = document.getElementById("calendar").rows[row].cells[cell].getElementsByTagName("a")[0].innerHTML;
	//document.getElementById("calendar").rows[row].cells[cell].innerHTML;
	if(thisDay.length == 1)
	thisDay = "0"+thisDay;
	if(thisMonth.toString().length == 1)
	thisMonth = "0"+thisMonth;
	eval("document.formulaire.date.value = '"+thisDay + "/" + thisMonth + "/" + thisYear+"'");
	Effect.toggle('form_calendrier','blind');
}