var Calendrier_selectfunction=null;

function AfficherCalendrier(jqsel, ladate, ladateinitiale)
{
	var i=0;
	if(!ladateinitiale) ladateinitiale=ladate;
	
	var ds=ladate.split("-");
	// date au 1er du mois :
	var dselect=new Date();
	dselect.setFullYear(ds[0],ds[1]-1,ds[2]);
	
	// traitement date initiale :
	var dsinit=ladateinitiale.split("-");
	// date au 1er du mois :
	var dselectinit=new Date();
	dselectinit.setFullYear(dsinit[0],dsinit[1]-1,dsinit[2]);
	var MOISENCOURS=(dselect.getFullYear()==dselectinit.getFullYear() && dselect.getMonth()==dselectinit.getMonth());
	
	var lesmois=["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"];
	
	var libmois=lesmois[dselect.getMonth()];
	var annee=ds[0]
	
	var h = '<div id="calendrier_global">'+
			'<div id="calendrier_div1">'+
				'<a href="javascript:;" id="calendrier_moisprec" onclick="Calendrier_moisprec(\''+jqsel+'\',\''+ladate+'\',\''+ladateinitiale+'\')">&lt;&lt;</a>'+
				'<span>'+libmois+' '+annee+'</span>'+
				'<a href="javascript:;" id="calendrier_moissuiv" onclick="Calendrier_moissuiv(\''+jqsel+'\',\''+ladate+'\',\''+ladateinitiale+'\')">&gt;&gt;</a>'+
			'</div>'+
			'<div id="calendrier_div2">'+
				'<div class="libjour">Lu</div>'+
				'<div class="libjour">Ma</div>'+
				'<div class="libjour">Me</div>'+
				'<div class="libjour">Je</div>'+
				'<div class="libjour">Ve</div>'+
				'<div class="libjour">Sa</div>'+
				'<div class="libjour">Di</div>';
	
	var ds=ladate.split("-");
	// date au 1er du mois :
	var d=new Date();
	d.setFullYear(ds[0],ds[1]-1,1);
	
	// on définit j au 1er du mois : 0->lundi 6->dimanche
	var j=d.getDay()-1; if(j==-1) j=6;
	
	// nombre de jours dans le mois
	d = new Date(d.getFullYear(), d.getMonth()+1, 0);
	var maxmois=d.getDate();
	
	//on insère les cases vides pour arriver au jour en question
	for(i=0; i<j; i++) h+='<div class="vide"></div>';
	
	// on insère les cases correspondant au jours
	for(i=1; i<=maxmois; i++)
	{
		j++; if(j==7) j=0;
		if(MOISENCOURS && i==dselectinit.getDate())
			h+='<a href="javascript:;" onclick="Calendrier_dateselect(\''+jqsel+'\',\''+ladate+'\',\''+i+'\')" class="today"><span>'+i+'</span></a>';
		else
			h+='<a href="javascript:;" onclick="Calendrier_dateselect(\''+jqsel+'\',\''+ladate+'\',\''+i+'\')" class="jour"><span>'+i+'</span></a>';
	}
	//on insère les cases vides pour compléter jusqu'au dimanche
	if(j!=0)
	for(i=j; i<=6; i++) h+='<div class="vide"></div>';
	
	h+='<div style="clear: both;">&nbsp;</div>';
		
	h+=		'</div>'+
		'<div id="calendrier_div3"><a href="javascript:;" onclick="Calendrier_fermer(\''+jqsel+'\')">ANNULER</a></div>'+
		'</div>';
	
	$(jqsel).html(h);
	$(jqsel).fadeIn();
}

function Calendrier_moisprec(jqsel, ladate, ladateinitiale)
{
	var ds=ladate.split("-");
	// date au 1er du mois précédent :
	var dselect=new Date();
	dselect.setFullYear(ds[0],ds[1]-2,1);
	
	AfficherCalendrier(jqsel, dselect.getFullYear()+'-'+(dselect.getMonth()+1)+'-1', ladateinitiale);
}

function Calendrier_moissuiv(jqsel, ladate, ladateinitiale)
{
	var ds=ladate.split("-");
	// date au 1er du mois suivant :
	var dselect=new Date();
	dselect.setFullYear(ds[0],ds[1],1);
	
	AfficherCalendrier(jqsel, dselect.getFullYear()+'-'+(dselect.getMonth()+1)+'-1', ladateinitiale);
}

function Calendrier_dateselect(jqsel, ladate, jour)
{
	var ds=ladate.split("-");
	var dselect=new Date();	dselect.setFullYear(ds[0],ds[1]-1,jour);
	
	var mois=dselect.getMonth()+1; 	if(mois<10) mois="0"+mois;
	var jour=dselect.getDate(); 	if(jour<10) jour="0"+jour;
	
	Calendrier_fermer(jqsel);
	
	if(typeof(Calendrier_selectfunction)== 'function') Calendrier_selectfunction(ds[0]+"-"+mois+"-"+jour);
}

function Calendrier_fermer(jqsel)
{
	eval('$("#calendrier_global").fadeOut(400, function () { $("'+jqsel+'").html(""); });');
}
