var v_d = new Array();
function view_microcal( actif, ki, source, mxS, axS )
{
	var fermable_microcal=true;
	if(actif)
	{
		var startWeek=0;//debut de la semaine 0=dim,1=lun,...
		var moisX=['Janvier','F&eacute;vrier','Mars','Avril','Mai','Juin','Juillet','Ao&ucirc;t','Septembre','Octobre','Novembre','D&eacute;cembre'];
		var JourM=["Di","Lu","Ma","Me","Je","Ve","Sa"];
		var myDate=new Date();
		
		
		
		if (source == "cal_deb" || source == "cal_fin")
			{
			var myYears=(myDate.getYear()-1);
			
			if(myYears<999){myYears+=1900;}
			
			if(mxS==-1){mxS=myDate.getMonth()+1;}
			
			if(axS==0){axS=myYears+1;}
			}
		else
			{
			var myYears=myDate.getYear();
			
			if(myYears<999){myYears+=1900;}
			
			if(mxS==-1){mxS=myDate.getMonth()+1;}
			
			if(axS==0){axS=myYears;}
			}
		
		//alert(mxS+'||'+axS)
		//init
		Dstart=(premJourMois(mxS,axS)+7-startWeek)%7;
		jmaxi=JmaxMois(mxS,axS);
		jmaxiAvant=JmaxMois((mxS-1),axS);
		ymaxi=parseInt((jmaxi + Dstart + 1 ) /7, 10 );
	
		//generation du tableau
		//--entete
		html='<table style="background-color:#ffffff;"><tr style="font-size:10px; font-family:Tahoma; text-align:center; color:#ffffff; background-color:#23507A"><td colspan="7">';
		html+="<select name='"+ki+"liste_mois' onchange=\"view_microcal(true, '"+ki+"', '"+source+"', this.value, "+axS+");\" style='font-size:10px; font-family:Tahoma; color:#ffffff; background-color:#23507A'>";
		
		for(var i=0; i<12; i++)
			{
			html+='<option value="'+(i+1)+'"';
			if(i==(mxS-1)){html+='selected="selected"';}
			
			html+='>'+moisX[i]+'</option>';
			}
	
		html+='</select>';
		
		html+="<select name='"+ki+"liste_annee' onchange=\"view_microcal(true, '"+ki+"', '"+source+"', "+mxS+", this.value);\" style='font-size:10px; font-family:Tahoma; color:#ffffff; background-color:#23507A'>";
			
		var dat   = new Date();
		var annee = dat.getFullYear();
		
		if (source == "cal_deb" || source == "cal_fin")
			{
			for(var i=0; i < 4; i++)
				{
				html+='<option value="'+(myYears+i)+'"';
				
				if (axS==(myYears+i)){html+='selected="selected"';}	
				
				html+='>'+(myYears+i)+'</option>';
				}
			}
		else
			{
			for(var i=0; i<3; i++)
				{
				html+='<option value="'+(myYears+i)+'"';
				if(axS==(myYears+i)){html+='selected="selected"';}
				
				html+='>'+(myYears+i)+'</option>';
				}	
			}
			
		html+='</select>';
			
			
			
		html+='&nbsp;<span style="cursor:pointer; color:#ffffff;" onclick=\'view_microcal(false, "'+ki+'", "'+source+'", -1 , 0 )\'>X&nbsp;</span>';
		//--corps
		html+='</tr><tr>';
	
		//affichage des jours DLMMJVS
		for(x=0; x<7; x++)
		{
			html+='<td style="font-size:10px; font-family:Tahoma;"><b>'+JourM[(x+startWeek)%7]+'</b></td>';
		}
		html+='</tr>';
		
		if(window.back_off)
		{
			var val_html='innerHTML';
		}
		else
		{
			var val_html='value';
		}

		//------------------------
		for(y=0;y<=ymaxi;y++)
		{
			html+='<tr>';
			for(x=0;x<7;x++)
			{
				idxP=y*7+x-Dstart+1; //numero du jour
				aa=axS;
				xx=(x+startWeek)%7;
					
				var upd_nuit = "";
				// je modifie cette partie pour etre compatible avec option évasion
				if(document.resa_moteur && document.resa_moteur.nb_nuit.value > 0)
				{
					var upd_nuit = "UpdateNbNuits(); joursem('Date_Deb'); joursem('date_Fin'); LimiteDate(); PeriodeDispoMoteur(); ";
				}
				else if(document.option_evasion && document.option_evasion.nbjour.value > 0)
				{
					//alert('microcal option evasion');
					var upd_nuit = "Verif_parc();";
				}
	
				//jour du mois précedent
	
				if(idxP<=0)
				{
					jj = idxP + jmaxiAvant;
					mm = mxS-1;
					var gris = false;
	
					if( mm == 0 )
					{
						mm = 12;
						aa--;
					}
				}
				else if( idxP > jmaxi ) //jour du mois suivant
				{
					jj = idxP - jmaxi;
					mm = mxS+1;
					var gris = false;
	
					if( mm == 13 )
					{
						mm = 1;
						aa++;
					}
				}
				//jour du mois en cours
				else
				{
					jj = idxP;
					mm = mxS;
					var gris = true;
				}
	
				html += "<td style='"+ testTravail( gris,xx,jj,mm,aa)+"' ";
				html += "onmouseover='choix(this,true)' onmouseout='choix(this,false)' ";
				html += "onclick=\"document.getElementById('"+ ki+"')."+ val_html +" = date_pays( "+ jj +", "+ mm +", "+aa+", 0, '/' );";
				html += "document.getElementById('"+ ki +"').style.color='black';"+upd_nuit+";";
				
				if( window.back_off )
				{
					if( ki == 'date_deb' )
					{
						html += "verif_date( "+ jj +", "+ mm +", "+aa+", 1 ); view_microcal( false, '"+ki+"','"+source+"', -1 , 0 );";
					}
					else
					{
						html += "if( verif_date( "+ jj +", "+ mm +", "+aa+", 2 )) view_microcal( false, '"+ki+"','"+source+"', -1 , 0 );";
					}
				}
				else
				{
					html += "view_microcal( false, '"+ki+"','"+source+"', -1 , 0 )";
				}
	
				html += "\"";
				
				// je modifie cette partie pour etre compatible avec option évasion
				if (typeof(PeriodeDispoMoteur)=='function' && document.resa_moteur)
				{
					//alert('defaut');
					html += "onchange=\"PeriodeDispoMoteur();\"";
				}
				else if (typeof(PeriodeDispoMoteur)=='function' && document.option_evasion)
				{
					html += "onchange=\"Verif_parc();\"";
				}
						
				html +=">"+ jj + "</td>";
			}
	
			html+="</tr>"
		}//-------------------------
	
		html+="</table>"
	
		//affiche le tableau
		document.getElementById( source ).innerHTML=html;
		document.getElementById( source ).style.display='block';
			
		//if( document.getElementById( 'chambre' )){document.getElementById( 'chambre' ).style.display = "none";}
		//else if( document.getElementById( 'nb_chbr' )){document.getElementById( 'nb_chbr' ).style.display = "none";}
	
		if( window.back_off ){select_aff( '', 0 );}
		else
		{
			if( document.getElementById( 'chambres_sel' ) ){select_aff( 'chambres_sel', 0 );}
			
			select_aff( 'rempliss', 0 );
		}
	}
	else
	{
		//ferme le calendrier
		if( fermable_microcal )
		{
			cc = setTimeout( "document.getElementById('"+source+"').style.display='none'", 500 );
			
			if(document.getElementById('moteurNb_nuit')){setTimeout("document.getElementById('moteurNb_nuit').style.display='block'", 500 );}
			if(document.getElementById('moteurChambre')){setTimeout("document.getElementById('moteurChambre').style.display='block'", 500 );}
			if(document.getElementById('moteurNb_chbr')){setTimeout("document.getElementById('moteurNb_chbr').style.display='block'", 500 );}
			if(document.getElementById('moteurNb_app')){setTimeout("document.getElementById('moteurNb_app').style.display='block'", 500 );}
			if(document.getElementById('moteurNb_appchbr')){setTimeout("document.getElementById('moteurNb_appchbr').style.display='block'", 500 );}
			if(document.getElementById('moteurRempliss_chbr')){setTimeout("document.getElementById('moteurRempliss_chbr').style.display='block'", 500 );}
			if(document.getElementById('moteurRempliss_app')){setTimeout("document.getElementById('moteurRempliss_app').style.display='block'", 500 );}
			if(document.getElementById('moteurRempliss_appchbr')){setTimeout("document.getElementById('moteurRempliss_appchbr').style.display='block'", 500 );}
			if(document.getElementById('moteurMealPlan')){setTimeout("document.getElementById('moteurMealPlan').style.display='block'", 500 );}			
			if(document.getElementById('frameNb_nuit')){setTimeout("document.getElementById('frameNb_nuit').style.display='block'", 500 );}
			if(document.getElementById('frameChambre')){setTimeout("document.getElementById('frameChambre').style.display='block'", 500 );}
			if(document.getElementById('frameNb_chbr')){setTimeout("document.getElementById('frameNb_chbr').style.display='block'", 500 );}
			if(document.getElementById('frameNb_app')){setTimeout("document.getElementById('frameNb_app').style.display='block'", 500 );}
			if(document.getElementById('frameNb_appchbr')){setTimeout("document.getElementById('frameNb_appchbr').style.display='block'", 500 );}
			if(document.getElementById('frameRempliss_chbr')){setTimeout("document.getElementById('frameRempliss_chbr').style.display='block'", 500 );}
			if(document.getElementById('frameRempliss_app')){setTimeout("document.getElementById('frameRempliss_app').style.display='block'", 500 );}
			if(document.getElementById('frameRempliss_appchbr')){setTimeout("document.getElementById('frameRempliss_appchbr').style.display='block'", 500 );}
			//else if( document.getElementById( 'nb_chbr' )){document.getElementById( 'nb_chbr' ).style.display = "block";}
	
			if( window.back_off ){select_aff( '', 1 );}
			else
			{
				if( document.getElementById( 'chambres_sel' ) ){select_aff( 'chambres_sel', 1 );}
				select_aff( 'rempliss', 1 );
			}
		}
	}
}
	
	
	
	
//retourne le ieme 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());
}

function testTravail(oldX,xx,jj,mm,aa)
{
	var dnow= strucDate(new Date());//date actuelle
	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":"ascencion","1-11":"armistice","11-11":"toussain","25-12":"noel"};
	
	styleX  = "font-family:Tahoma;font-size:10px;text-align:center;";
	styleX += (oldX)?"":"color:#bbb;";
	styleX += "cursor:pointer; border-right:1px #e0e0e0 solid;border-bottom:1px #e0e0e0 solid;";

	if (jourPause[xx]||jourFeriee[jj+"-"+mm]!=null)		styleX+="background:#e0e0e0;";

	if (jj==dnow.jour&&mm==dnow.mois&&aa==dnow.annee)
	{
		styleX+="border:2px red solid;";
	}

	return styleX;
}

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

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

function verif_date( jour, mois, annee, opt ) 
{
	v_d[ opt ] = Array( jour, mois, annee );
	
	if( v_d.length == 3 && opt == 2 )
	{
		/*if (v_d[ 1 ][ 2 ] < v_d[ 2 ][ 2 ] || ( v_d[ 1 ][ 2 ] == v_d[ 2 ][ 2 ] 
		&& (( v_d[ 1 ][ 1 ] < v_d[ 2 ][ 1 ] ) || ( v_d[ 1 ][ 1 ] == v_d[ 2 ][ 1 ] 
		&& v_d[ 1 ][ 0 ] < v_d[ 2 ][ 0 ] ))))
			{*/
			document.getElementById('periode').value = date_pays(v_d[1][0], v_d[1][1], v_d[1][2], 1, '-' ) + '/' + date_pays(v_d[2][0], v_d[2][1], v_d[2][2], 1, '-');
			return 1;
			/*}
		else
			{
			document.getElementById( 'periode' ).value = '';
			document.getElementById( 'date_fin' ).innerHTML = '<span style="color:red">Date de fin incorrect</span>';
			}*/
	}
	else
	{
		view_microcal( true, 'date_fin', 'cal_fin', mois, annee );
	}
}
