moisX=["","Janvier","F&eacute;vrier","Mars","Avril","Mai","Juin","Juillet","Ao&ucirc;t","Septembre","Octobre","Novembre","D&eacute;cembre"];
JourM=["Di","Lu","Ma","Me","Je","Ve","Sa"];

var fermable_microcal=true;
var select_old= null;

var startWeek=0;						//debut de la semaine 0=dim,1=lun,...
var jourPause={0:true,6:true}; 			//jour de pause de la semaine

var jourFeriee={"1-1":"jour an","1-5":"fête du travail","8-5":"armistice","14-7":"fête nationale","15-8":"ascension","1-11":"armistice","11-11":"toussaint","25-12":"noel"};

//structure la date 
function strucDate(dateX) 
{return {"pos":dateX.getDay(),"jour":dateX.getDate(),"mois":dateX.getMonth()+1,"annee":dateX.getFullYear()};}


var dateS= strucDate(new Date());	//date Selectionné
var dnow= strucDate(new Date());	//date actuelle

//   Ma modif pour garder la dernière date sélectionée
//var dact = ( document.all ? document.getElementById('DAT').innerText : document.getElementById('DAT').textContent ) ;
// var dact = document.getElementById('DAT').innerText ;
// dateS = strucDate( new Date( dact.substr(5,5)+"-"+dact.substr(0,4) )) ;
var dax = document.getElementById('dateDebut') ;
if( dax != null )
	{
	dax = dax.value ;
	var aa = dax.substr(6,4) ;
	var mm = dax.substr(3,2) ;
	var jj = dax.substr(0,2) ;
	dateS = strucDate( new Date( mm + "-" + jj + "-" + aa ) ) ;
	}





//retourne le ième jour du 1er du mois
function premJourMois(mois,annee) 
{return (new Date(annee,mois-1,1).getDay());}
//retourne le jour max du mois
function JmaxMois(mois,annee) 
{return (new Date(annee,mois,0).getDate());}


/* Test une date si elle est correct...spécial killer*/
function testTypeDate(dateEntree)
{
tst=false;
try
{rc=dateEntree.split("/");nd=new Date(rc[2],(rc[1]-1),rc[0]);
tst=(rc[2]>1800&&rc[2]<2200&&rc[2]==nd.getFullYear()&&rc[1]==(nd.getMonth()+1)&&rc[0]==nd.getDate());
} catch(e) {}
return tst;
}

//selection de la zone avec la souris
function choix(koi,code)
{
if (code) 
{ select_old= koi.style.background;
   koi.style.background ='#c0c0FF';
}
else 
{
koi.style.background =select_old;
}
}


function testTravail(oldX,xx,jj,mm,aa)
{
// styleX="font-family:Tahoma;font-size:10px;text-align:center;";
styleX="font-family:Tahoma;font-size:14px;text-align:center;";
styleX+=(oldX)?"":"color:#e0e0e0;";
styleX+="cursor:hand;border-right:1px #e0e0e0 solid;border-bottom:1px #e0e0e0 solid;";
if (jourPause[xx]||jourFeriee[jj+"-"+mm]!=null) styleX+="background:#f0f0f0;";
//if (jj==dnow.jour&&mm==dnow.mois&&aa==dnow.annee) styleX+="border:2px red solid;";
if (jj==dateS.jour&&mm==dateS.mois&&aa==dateS.annee) styleX+="border:2px red solid;";
return (styleX+"text-decoration:none;") ;
}

//test si année bissextile
function bissextile(annee) {
return (annee%4==0 && annee %100!=0 || annee%400==0);
}

//Retourne le nombre de jour depuis le 1er janvier (num de semaine)
function nbJAnnee(dateX){
var nb_mois=[,0,31,59,90,120,151,181,212,243,273,304,334];
j=dateX.jour ; m=dateX.mois ; a=dateX.annee;
nb=nb_mois[m]+j-1 ;
if (bissextile(a) && m>2) nb++;
return nb;
}

//affiche le calendrier
function view_microcal(actif,ki,source,mxS,axS)
{
if (actif)
{


//decalage du mois su on clique sur -/+
if (mxS!=-1) 
{
clearTimeout(cc);
document.getElementById(ki).focus();
fermable_microcal=true;
dateS.mois=mxS;
dateS.annee=axS;
if (dateS.mois<1) {dateS.annee--;dateS.mois+=12;}
if (dateS.mois>12) {dateS.annee++;dateS.mois-=12;}

}
//init
Dstart=(premJourMois(dateS.mois,dateS.annee)+7-startWeek)%7;
jmaxi=JmaxMois(dateS.mois,dateS.annee);
jmaxiAvant=JmaxMois((dateS.mois-1),dateS.annee);
//si on veux ajouter le numero de la semaine ...
//idxWeek=parseInt(nbJAnnee(strucDate(new Date(dateS.mois+'-01-'+dateS.annee)))/7,10)+1;

ymaxi=parseInt((jmaxi+Dstart+1)/7,10);

//generation du tableau
//--entête
htm="<table id='calpj'><tr style='font-size:12px;font-family:Tahoma;text-align:center;'>";
//htm+="<td style='cursor:hand;' onclick=\"view_microcal(true,'"+ki+"','"+source+"',"+(dateS.mois-1)+","+dateS.annee+");\">-</td>";
htm+="<td width=30>" ;
htm+="<A HREF=# style='text-decoration:none;' onclick=\"view_microcal(true,'"+ki+"','"+source+"',"+(dateS.mois-1)+","+dateS.annee+");\">" ;
htm+="<img border='0' src='../../DOPA/images/moins.GIF'></A></td>";
htm+="<td colspan='5'> <b> "+moisX[dateS.mois]+"</b>&nbsp;"+dateS.annee+"</td>";
//htm+="<td style='cursor:hand;' onclick=\"view_microcal(true,'"+ki+"','"+source+"',"+(dateS.mois+1)+","+dateS.annee+")\"> + </td></tr>";
htm+="<td width=30>" ;
htm+="<A HREF=# style='text-decoration:none;' onclick=\"view_microcal(true,'"+ki+"','"+source+"',"+(dateS.mois+1)+","+dateS.annee+")\">" ;
htm+="<img border='0' src='../../DOPA/images/plus.GIF'></A></td></tr>";
//--corps
htm+="<tr>";
//affichage des jours DLMMJVS
for (x=0;x<7;x++) 
htm+="<td style='font-size:12px;font-family:Tahoma;text-align:center'><b>"+JourM[(x+startWeek)%7]+"</b></td>";
htm+="</tr>"

tab=10000 ;

//------------------------
for (y=0;y<=ymaxi;y++)
{
htm+="<tr>";
for (x=0;x<7;x++)
{
idxP=y*7+x-Dstart+1; //numero du jour
aa=dateS.annee;
xx=(x+startWeek)%7;
//jour du mois précedent
if (idxP<=0)
{
jj=idxP+jmaxiAvant;mm=dateS.mois-1;
if (mm==0)
{mm=12;aa--;}
htm+="<td width=30><A CLASS='cal' HREF=# tabindex="+(tab++) ; 
htm+=" onmouseover='choix(this,true)' onmouseout='choix(this,false)' " ;
htm+="onclick=\""+ki+".value='"+((jj<10)?"0":"")+jj+"/"+((mm<10)?"0":"")+mm+"/"+aa+"';"+ki+".style.color='black';\">" ;
htm+="<div style='width:30;"+testTravail(false,xx,jj,mm,aa)+"'>"+jj+"</div></A></td>";
}
else if (idxP>jmaxi) //jour du mois suivant
{
jj=idxP-jmaxi;mm=dateS.mois+1;
if (mm==13)
{mm=1;aa++;}

htm+="<td width=30>" ;
htm+="<A CLASS='cal' HREF=# tabindex="+(tab++) ;
htm+=" onmouseover='choix(this,true)' onmouseout='choix(this,false)' " ;
htm+="onclick=\"document.getElementById('"+ki+"').value='"+((jj<10)?"0":"")+jj+"/"+((mm<10)?"0":"")+mm+"/"+aa+"';document.getElementById('"+ki+"').style.color='black';\">" ;
htm+="<div style='width:30;"+testTravail(false,xx,jj,mm,aa)+"'>"+jj+"</div></A></td>";}
else //jour du mois en cours
{
jj=idxP;mm=dateS.mois;
htm+="<td width=30><A CLASS='cal' HREF=# tabindex="+(tab++) ;
htm+=" onmouseover='choix(this,true)' onmouseout='choix(this,false)' " ;
htm+="onclick=\"document.getElementById('"+ki+"').value='"+((jj<10)?"0":"")+jj+"/"+((mm<10)?"0":"")+mm+"/"+aa+"';document.getElementById('"+ki+"').style.color='black';\">" ;
htm+="<div style='width:30;"+testTravail(true,xx,jj,mm,aa)+"'>"+jj+"</div></A></td>";}
}
htm+="</tr>" ;
}//-------------------------
htm+="<tr><td colspan=8 align=center><A HREF=# onclick=\"document.getElementById('"+ki+"').value='"+(dnow.jour<10?"0":"")+dnow.jour+"/"+(dnow.mois<10?"0":"")+dnow.mois+"/"+dnow.annee+"';document.getElementById('"+ki+"').style.color='black';\">Aujourd'hui</A></TD></TR>" ;
htm+="</table>" ;
//affiche le tableau
document.getElementById(source).innerHTML=htm;
document.getElementById(source).style.visibility="";
} else
{
//ferme le calendrier
if (fermable_microcal) 

   cc=setTimeout("document.getElementById('"+source+"').style.visibility='hidden'",500);



 
}
}


