// JavaScript Document
var Aujourdhui=new Date();
var TabMois=Array("","Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");

var dateField='';
var objDebug=null;
var objTimerCalendar=null;

function ChampDate(objName)
{
objDebug=document.getElementById("Debug");
objDebug=null;
if (objDebug)	objDebug.style.display='block';

if (objDebug)	objDebug.innerHTML+='new ChampDate('+objName+')<br />';

objHTML=document.getElementById("FenetreCalendrier");
if (objHTML==null)
	{
	div=document.createElement("div");
	div.className='Calendrier';
	div.style.background='#DDDDDD';
	div.style.position='absolute';
	div.style.display='none';
	div.id='FenetreCalendrier';
	document.body.appendChild(div);
	}

var objInput=document.getElementById(objName);
if (objInput)
	{
	objInput.onblur=function()
		{
		objTimerCalendar=setInterval('closeCalendar()',100);
		objInput.value=VerifDate(objInput.value);
		}
	objInput.onfocus=function()		{ openCalendar(objInput); }
	objInput.onclick=function()		{ openCalendar(objInput); }
	objInput.onkeyup=function()		{ closeCalendar(); }
	objInput.onkeydown=function()	{ closeCalendar(); }
	}
}

//Appel calendrier
function openCalendar(objInput)
{
objFenetre=document.getElementById("FenetreCalendrier");
if (objFenetre)
	{
	x=getOffsetPosition(objInput,'Left')+22;
	y=getOffsetPosition(objInput,'Top')+22;
	objFenetre.style.left = x + 'px';
	objFenetre.style.top = y + 'px';
	objFenetre.style.display = 'block';
	}
if (objInput)
	{
	if (objDebug)	objDebug.innerHTML+=objInput.name+'.openCalendar('+objInput.value+')<br />';

	dateField=objInput;
	DateSel=VerifDate(objInput.value);

	m=Aujourdhui.getMonth()+1;
	a=Aujourdhui.getFullYear();
	var tab=DateSel.split("/");
	if (tab)
		{
		if (tab.length==3)
			{
			m=parseFloat(tab[1]);
			a=parseFloat(tab[2]);
			}
		}
	drawCalendar(a,m);
	}
}

function closeCalendar()
{
if (objTimerCalendar)	clearInterval(objTimerCalendar);
obj=document.getElementById("FenetreCalendrier");
if (obj) obj.style.display='none';
}
	
function digit2(n)
{
n=parseFloat(n);
if (n<10)	return '0'+n;
else		return n;
}

function drawCalendar(a,m)
{
if (objTimerCalendar)	clearInterval(objTimerCalendar);

a=parseFloat(a);
m=parseFloat(m);
if (m-12>0)	{ m=1; a++; }
if (m-1<0)	{ m=12; a--; }
AnnneEnCours=a;
MoisEnCours=m;
var d_jour=new Date();
var d=new Date(a,m-1,1);
var dfin=new Date(a,m-1,1);
var nb_jour=31;
var aff_j="";
var html="";
var Classe="";

DateSel=VerifDate(dateField.value);
var tableau=DateSel.split("/");

for(var k=32;k>27;k--)
	{
	dfin.setMonth(m-1);
	dfin.setDate(k);
	if (dfin.getMonth()!=m-1) {nb_jour=k-1;}
	}

var j1=d.getDay(); if (j1==0) j1=7;
var jour=0;

html=html+'<table border="0" width="175" cellspacing="0" cellpadding="0">';
html=html+'<tr>';
	html=html+'<th onclick="drawCalendar('+a+','+(m-1)+');" style="cursor:pointer;">&lt;</th>';
	html=html+'<th colspan="5">'+TabMois[m]+" "+a+'</th>';
	html=html+'<th onclick="drawCalendar('+a+','+(m+1)+');" style="cursor:pointer;">&gt;</th>';
html=html+'</tr>';
html=html+'<tr><th>L</th><th>M</th><th>M</th><th>J</th><th>V</th><th>S</th><th>D</th></tr>';
for(var i=0;i<6;i++)
	{
	html=html+"<TR>";
	for (j=0;j<7;j++)
		{
		jour=7*i+j-j1+2; 
		p=new Date();
		p.setYear(a);
		p.setMonth(m-1);
		p.setDate(jour-1);
		aff_j=jour;
		if ( (7*i+j>=j1-1) && (jour<=nb_jour) )
			{
			if ((j>4)) 		Classe='Cal-CaseWE';
			else 			Classe='Cal-Case';
			if ((jour==Aujourdhui.getDate()) && (m==Aujourdhui.getMonth()+1) && (a==Aujourdhui.getFullYear()) ) { Classe='Cal-CaseA'; }
			if (tableau)
				{
				if (tableau.length==3)
					{
					if ((jour==tableau[0]) && (m==tableau[1]) && (a==tableau[2])) { Classe='Cal-CaseS'; }
					}
				}
			
			if (a<200)	a+=1900;
			html=html+'<td class="'+Classe+'" onmouseover="this.className=\'Cal-CaseR\';" onmouseout="this.className=\''+Classe+'\';" onclick="returnDate(\''+digit2(jour)+'/'+digit2(m)+'/'+a+'\');">'+aff_j+'</td>';
			}
		else html=html+'<td class="Cal-Case">&nbsp;</td>';
		}
	html=html+"</tr>";
	}
html=html+"</table>";
document.getElementById('FenetreCalendrier').innerHTML=html;
}

function returnDate(val)
{
if (objDebug)	objDebug.innerHTML+='returnDate('+val+')<br />';

if (val.length>0)
	{
	//alert(val)
	dateField.value=val;
	document.getElementById("FenetreCalendrier").style.display='none';
    }
}

function VerifDate(val)
{
//if (objDebug)	objDebug.innerHTML+='VerifDate('+val+')<br />';

c=val;
c=c.replace(/(-|\.)/g, "/");
tab=c.split("/");
if (tab!=null)
	{
	if (tab.length==3)
		{
		j=digit2(tab[0]);
		m=digit2(tab[1]);
		a=tab[2];
		if (a.length==2)	a="20"+a;
		c=j+'/'+m+'/'+a;
		}
	}
return c;
}


function Aide (Obj,Txt){
objHTML=document.getElementById("Aide");
if (objHTML==null)
	{
	div=document.createElement("div");
	div.className='Aide';
	div.style.position='absolute';
	div.id='Aide';
	document.body.appendChild(div);
	}
	x=getOffsetPosition(Obj,'Left')+20;
	y=getOffsetPosition(Obj,'Top');
	div.style.left = x + 'px';
	div.style.top = y + 'px';
	div.style.display = 'block';
	div.innerHTML=Txt;
}
function FermeAide (){
objHTML=document.getElementById("Aide");
if (objHTML!=null)
	{
div.style.display = 'none';
	}
}
