
//////////////////////////////////////////////////////////////////Variables////////////////////////////////////////////////////////////////////////////

var now = new Date;//date et heure actuelle
var sccm=now.getMonth();//numero du mois acctuelle {0..11} : variable de reference
var sccy=now.getFullYear();//année actuelle sur 4 chiffres : variable de reference
var ccm=now.getMonth();//numero du mois acctuelle {0..11}
var ccy=now.getFullYear();//année actuelle sur 4 chiffres

var liste_jour=new Array('LUN','MAR','MIE','JOI','VIN','SAM','DUM');//liste des jours de la semaine
var mn=new Array('IANUARIE','FEBRUARIE','MARTIE','APRILIE','MAI','IUNIE','IULIE','AUGUST','SEPTEMBRIE','OCTOMBRIE','NOIEMBRIE','DECEMBRIE');// liste des mois
var mnn=new Array('31','28','31','30','31','30','31','31','30','31','30','31');//nombre des jours pour une année non bissextile
var mnl=new Array('31','29','31','30','31','30','31','31','30','31','30','31');//nombre des jours pour une année bissextile

var calvalarr=new Array(42);//tableau des valeurs calandrier
var updobj;//l'element à changer dans la page (champs text recevant la date selectionner)
var cel = new Array();//ensemble des cellules à laisser ouvert

////////////////////////////////////fonction retournant l'objet selon le type du navigateur//////////////////////////////////////////////////

function getObj(objID)
{
    if (document.getElementById) {return document.getElementById(objID);}
    else if (document.all) {return document.all[objID];}
    else if (document.layers) {return document.layers[objID];}
}

/////////////////////cacher le calandrier nue fois on a un evenement qui n'appartien pas à notre objet : click externe//////////////////////////////

function checkClick(e) {
	e?evt=e:evt=event;
	CSE=evt.target?evt.target:evt.srcElement;
	if (getObj('fc'))
		if (!isChild(CSE,getObj('fc')))
			getObj('fc').style.display='none';
}

//////////////////////////////////////////////////evenement appartient ou pas au calandrier/////////////////////////////////////////////////////////

function isChild(s,d) {
	while(s) {
		if (s==d) 
			return true;
		s=s.parentNode;
	}
	return false;
}

////////////////////////////////////////////////////////////marge gauche du calandrier///////////////////////////////////////////////////////////////

function left(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
		curleft += 95;
	return curleft;
}

/////////////////////////////////////////////////////////////////marge haut du calandrier////////////////////////////////////////////////////////////

function top(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
		curtop += -18;
	return curtop;
}

////////////////////////////////////////creation du l'entete du calandrier : objet calandrier = 'fc'//////////////////////////////////////////////////

document.write('<table id="fc" style="position:absolute;z-index:1001;border-collapse:collapse;background:#FFFFFF;border:1px solid #55D1EC;display:none" cellpadding=2>');

//////////////////////////////////////////////line 1 : fleche gauche - mois et année - fleche droit///////////////////////////////////////////////////

document.write('<tr><td style="cursor:pointer" onclick="csubm()"><img src="images/system/arrowleftmonth.gif"></td><td colspan=5 id="mns" align="center" style="font:bold 13px Arial"></td><td align="right" style="cursor:pointer" onclick="caddm()"><img src="images/system/arrowrightmonth.gif"></td></tr>');

/////////////////////////////////////////////////line 2 : liste des jours/////////////////////////////////////////////////////////////////////////////

document.write('<tr>');

for(var tt=1;tt<=7;tt++)
	{
			document.write('<td align=center style="color:#FFFFFF;background:#55D1EC;font:12px Arial">' + liste_jour[tt-1] + '</td>');
	}

document.write('</tr>');

//////////////////////////////creation du corps du calandrier : 6 line avec 7 cellule par line en total 42 cellules///////////////////////////////////

for(var kk=1;kk<=6;kk++) {
	document.write('<tr>');
	for(var tt=1;tt<=7;tt++)
		{
			num=7 * (kk-1) + tt;
			document.write('<td id="v' + num + '" style="width:18px;height:18px;color:#55D1EC;">&nbsp;</td>');
		}
	document.write('</tr>');
}
document.write('</table>');

document.all?document.attachEvent('onclick',checkClick):document.addEventListener('click',checkClick,false);

/////////////////////////////////////////////////////////////Script calandrier///////////////////////////////////////////////////////////////////////

///////////////////test de validite de la date de l'element d'appelle + preparation du calandrien selon cette date///////////////////////////////////

function lcs(ielem, cellule)
{
	updobj=ielem;//l'element à changer dans la page (champs text recevant la date selectionner)
	getObj('fc').style.left=left(ielem)+'px';//positionner le calandrier selon la fonction de marge gauche left()
	getObj('fc').style.top=top(ielem)+ielem.offsetHeight+'px';//positionner le calandrier selon la fonction de marge haut top()
	getObj('fc').style.display='';
	
	// First check date is valid
	curdt		=	ielem.value;//curdt reçoit le contenue de l'element d'appelle
	curdtarr	=	curdt.split('/');
	isdt		=	true;
	cel			=	cellule;

	for(var k=0;k<curdtarr.length;k++)//tester si l'element d'appelle contien dejas une date valide
		{
			if (isNaN(curdtarr[k]))
				isdt=false;
		}
	if (isdt&(curdtarr.length==3))
		{
			ccm=curdtarr[1]-1;//ccm prend le mois de la date presente dans l'element d'appelle
			ccy=curdtarr[2];//ccm prend l'année de la date presente dans l'element d'appelle
			prepcalendar(curdtarr[0], curdtarr[1]-1, curdtarr[2]);//affichage du calandrier suivant la date prensente dans l'element d'appelle
		}
	else prepcalendar('',ccm,ccy);
}

///////////////////////////////////////////////////////retourner l'evenement selon le type de navigateur/////////////////////////////////////////////

function evtTgt(e)
{
	var el;
	if(e.target)
		el=e.target;
	else if(e.srcElement)
		el=e.srcElement;
	if(el.nodeType==3)
		el=el.parentNode; // defeat Safari bug
	return el;
}

////////////////////////////////////////////en cas de non evenement un evenement sur l'objet window sera creer//////////////////////////////////////

function EvtObj(e)
{
	if(!e)
		e=window.event;
	return e;
}

///////////////////////////////////////////////////////////////////////////css on over///////////////////////////////////////////////////////////////

function cs_over(e)
{
	//evtTgt(EvtObj(e)).style.background='#EDEDED';
	evtTgt(EvtObj(e)).style.color='#FF6600';
}

///////////////////////////////////////////////////////////////////////////css on out////////////////////////////////////////////////////////////////

function cs_out(e)
{
	num_j=evtTgt(EvtObj(e)).id.substring(1);
	if	( (((num_j-(-1)) % 7)==0) || ((num_j % 7)==0) )
		 {
			evtTgt(EvtObj(e)).style.background='#D8F2FF';
			evtTgt(EvtObj(e)).style.color='#0066FF';
		 }
	else 
		{
			evtTgt(EvtObj(e)).style.background='#FFFFFF';
			evtTgt(EvtObj(e)).style.color='#0066FF';
		}
}

//////////////////////////////////////////////////////////////////////css on out mois suivant//////////////////////////////////////////////////////////

function cs_outs(e)
{
	num_j=evtTgt(EvtObj(e)).id.substring(1);
	if	( (((num_j-(-1)) % 7)==0) || ((num_j % 7)==0) )
		 {
			evtTgt(EvtObj(e)).style.background='#D8F2FF';
			evtTgt(EvtObj(e)).style.color='#666666';
		 }
	else 
		{
			evtTgt(EvtObj(e)).style.background='#EDEDED';
			evtTgt(EvtObj(e)).style.color='#666666';
		}
}

///////////////////////////////////////////////////////////////////////////css on click//////////////////////////////////////////////////////////////

function cs_click(e)
{
	updobj.value=calvalarr[evtTgt(EvtObj(e)).id.substring(1,evtTgt(EvtObj(e)).id.length)];
	if(document.getElementById('dat_date_debut')!=null)
	{
		document.getElementById('dat_date_debut').value=calvalarr[evtTgt(EvtObj(e)).id.substring(1,evtTgt(EvtObj(e)).id.length)];
		change_vol();
	}
	getObj('fc').style.display='none';
}

//////////////////////////////////////////////////////////////////////css cellule activée////////////////////////////////////////////////////////////

function f_cps(obj)
{
	num_j=obj.id.substring(1);
	if	( (((num_j-(-1)) % 7)==0) || ((num_j % 7)==0) )
		 {
			 obj.style.background='#D8F2FF';
			 obj.style.color='#0066FF';
		 }
	else
		{
			obj.style.background='#FFFFFF';
			obj.style.color='#0066FF';
		}
	obj.style.font='10px Arial';
	obj.style.textAlign='center';
	obj.style.textDecoration='none';
	obj.style.border='1px solid #6487AE';
	obj.style.cursor='pointer';
}

//////////////////////////////////////////////////////////////////////css cellule disactivée/////////////////////////////////////////////////////////

function f_cpps(obj)
{
	num_j=obj.id.substring(1);
	if	( (((num_j-(-1)) % 7)==0) || ((num_j % 7)==0) )
		 obj.style.background='#D8F2FF';
	else obj.style.background='#FFFFFF';
	obj.style.font='10px Arial';
	obj.style.color='#666666';
	obj.style.textAlign='center';
	obj.style.textDecoration='line-through';
	obj.style.border='1px solid #6487AE';
	obj.style.cursor='default';
}

////////////////////////////////////////////css cellule du jour de la date continue dans l'element d'appelle////////////////////////////////////////

function f_hds(obj)
{
	obj.style.background='#FFFFFF';
	obj.style.font='bold 10px Arial';
	obj.style.color='#ADC21C';
	obj.style.textAlign='center';
	obj.style.border='1px solid #6487AE';
	obj.style.cursor='pointer';
}

////////////////////////////////////////////////////css cellule des jours du mois precedent/////////////////////////////////////////////////////////

function f_mbma(obj)
{
	obj.style.background='#EDEDED';
	obj.style.font='bold 10px Arial';
	obj.style.color='#666666';
	obj.style.textAlign='center';
	obj.style.border='1px solid #6487AE';
	obj.style.textDecoration='line-through';
	obj.style.cursor='default';
}

/////////////////////////////////////////////////////////css cellule des jours du mois suivant///////////////////////////////////////////////////////

function f_cpss(obj)
{
	num_j=obj.id.substring(1);
	if	( (((num_j-(-1)) % 7)==0) || ((num_j % 7)==0) )
		 obj.style.background='#D8F2FF';
	else obj.style.background='#EDEDED';
	obj.style.font='10px Arial';
	obj.style.color='#666666';
	obj.style.textAlign='center';
	obj.style.textDecoration='none';
	obj.style.border='1px solid #6487AE';
	obj.style.cursor='pointer';
}


//////////////////////////////////////////////////////////fonction de preparation du calandrier/////////////////////////////////////////////////////

function prepcalendar(hd,cm,cy)//arguments : hd = jour du mois, cm = mois, cy = année
{
	now=new Date();//now = date aujourd'hui
	sd=now.getDate();//sh = jour du mois courrant
	td=new Date();//td = date aujourd'hui
	td.setDate(1);//affecter à la date td le jour 1 du mois
	td.setFullYear(cy);//affecter à la date td l'année cy
	td.setMonth(cm);//affecter à la date td le mois cm
	cd=td.getDay();//cd = le jour de la semaine de la date td (td = 1/cm/cy) 
	
	getObj('mns').innerHTML=mn[cm]+ ' ' + cy;//ecriture du mois et de l'année dans l'entete du calandrier
	
	marr=((cy%4)==0)?mnl:mnn;//marr = nombre de jours selon année : bissextile ou non bissextile
	if(cd==0)cd=7;	
	
////////////////////////////////////////////////mois précedent////////////////////////////////////////////////
	
	for(var d=1;d<cd;d++)
		{
			f_mbma(getObj('v'+parseInt(d)));
			var mp = 11;
			if(cm>0) mp = cm-1;
			
			getObj('v'+parseInt(d)).innerHTML = (marr[mp] - (cd-d))+1;				
			
			getObj('v'+parseInt(d)).onmouseover=false?null:null;
			getObj('v'+parseInt(d)).onmouseout=false?null:null;
			getObj('v'+parseInt(d)).onclick=false?null:null;
		}
	
////////////////////////////////////////////////mois courant////////////////////////////////////////////////
for(var d=cd;d<(cd-(-marr[cm]));d++)
		{
			f_cps(getObj('v'+parseInt(d)));//appliquer le style activée sur la cellule numero d
					
			dip = ((d < ((sd+cd)-1)) && (cm == sccm) && (cy == sccy));//jours avant ajourd'hui, pour specifier les cases à ouvrir ajouter
			htd = ( (hd!='') && ((d+1)-cd == hd) );//jours courrant
			
	
	///////////cellule à ouvrir ou fermer selon le tableau cel////////////
	
			if(dip==false)
				for(i=0;i<cel.length;i++)
					if(d==cel[i])
						{
							dip = false;
							break;
						}
					else dip = true;
	
	////////////////////////css selon cellule//////////////////////////////
	
			if (dip)
				f_cpps(getObj('v'+parseInt(d)));
			else if (htd)
				f_hds(getObj('v'+parseInt(d)));
			else
				f_cps(getObj('v'+parseInt(d)));

	////////////////////////evenement sur cellule//////////////////////////
	
			getObj('v'+parseInt(d)).onmouseover=(dip)?null:cs_over;
			getObj('v'+parseInt(d)).onmouseout=(dip)?null:cs_out;
			getObj('v'+parseInt(d)).onclick=(dip)?null:cs_click;
	
			getObj('v'+parseInt(d)).innerHTML=(d+1)-cd;	
			calvalarr[d]=''+((d+1)-cd)+'/'+(cm-(-1))+'/'+cy;
		}

////////////////////////////////////////////////mois suivant////////////////////////////////////////////////

	for(var d=(cd-(-marr[cm]));d<=42;d++)
		{
			f_cpss(getObj('v'+parseInt(d)));
			
			getObj('v'+parseInt(d)).onmouseover=false?null:cs_over;
			getObj('v'+parseInt(d)).onmouseout=false?null:cs_outs;
			getObj('v'+parseInt(d)).onclick=false?null:cs_click;
			
			getObj('v'+parseInt(d)).innerHTML = ((d-marr[cm])-cd)+1;				

			var ma = 1;
			var ya = cy+1;
			if(cm<11) 
				{
					ma = cm+2;
					ya = cy;
				}					
			calvalarr[d]=''+(((d-marr[cm])-cd)+1)+'/'+(ma)+'/'+ya;
		}
}

///////////////////////////////////////////////////preparation du calandrier/////////////////////////////////////////////////////////////////////////

prepcalendar('',ccm,ccy);
//getObj('fc'+cc).style.visibility='hidden';

///////////////////////////////////////////ajouter un mois quand on clique sur la flech droite///////////////////////////////////////////////////////

function caddm()
{
	marr=((ccy%4)==0)?mnl:mnn;
	
	ccm+=1;
	if (ccm>=12)
	{
		ccm=0;
		ccy++;
	}
	cdayf();
	prepcalendar('',ccm,ccy);
}

///////////////////////////////////////////supprimer un mois quand on clique sur la flech gauche/////////////////////////////////////////////////////

function csubm()
{
	marr=((ccy%4)==0)?mnl:mnn;
	
	ccm-=1;
	if (ccm<0)
	{
		ccm=11;
		ccy--;
	}
	cdayf();
	prepcalendar('',ccm,ccy);
}

//////////////////////////////////////////////////////////////ajouter un ans quand///////////////////////////////////////////////////////////////////

function caddy()
{
	ccy+=1;
	cdayf();
	prepcalendar('',ccm,ccy);
}

/////////////////////////////////////////////////////////////supprimer un ans////////////////////////////////////////////////////////////////////////

function csuby()
{
	ccy-=1;
	cdayf();
	prepcalendar('',ccm,ccy);
}

//////////////////////////////////////////////pas de retour avant ajourd'hui//////////////////////////////////////////////////////////////////////////

function cdayf()
{
if ((ccy>sccy)|((ccy==sccy)&&(ccm>=sccm)))
	return;
else
	{
		ccy=sccy;
		ccm=sccm;
		cfd=scfd;
	}
}
