/*Appelé par : index.cfm - input_date1.cfm - promos_vols2.cfm - promos_vols3.cfm - promotions.cfm - promotions_speciales.cfm - promotions_speciales_frm_moteurVol.cfm - spvol2.cfm - tourismania_promotions.cfm */
/*le formulaire de saisie d'une date est parametrable
	Ainsi on pourra utiliser la fonction saisie_date() pour avoir 
	des formulaires de saisies 	d'une date sans meme repeter les codes.
	Il suffit juste d'appeler la fonction mais seules les variables 
	sont différentes.
	
	La syntaxe est comme suit :
	function saisie_date(var_day0,var_month0,var_year0,form_result0,default_value,evt)	
	var_day0=la variable jour;
	var_month0=la variable month;
	var_year0=la variable mois;
	form_result0=la variable qui contiendra la date complete 
				c-a-d le resultat; en principe un champ de saisie
	default_value=la date par défaut.De format "mm/dd/yyyy"
	evt=chaine des événements ou autre ex:"disabled","OnClick='....'"
*/
	
	var min_day0=01;
	var max_day0=31;
	var month0=new Array();
	
	month0[0]='Janvier ';
	month0[1]='Fevrier ';
	month0[2]='Mars ';
	month0[3]='Avril ';
	month0[4]='Mai ';
	month0[5]='Juin ';
	month0[6]='Juillet ';
	month0[7]='Ao&ucirc;t ';
	month0[8]='Septembre ';
	month0[9]='Octobre ';
	month0[10]='Novembre ';
	month0[11]='D&eacute;cembre ';
		
	var min_year0=2000;
	var max_year0=min_year0+50;
	var nbJours0= 7;
	
	
	/* Fonction qui donnera comme le mois + l'annee */
	function leMois0(i0,mois0,dateDuJour0) {
	var an0,res0;
		if (i0<dateDuJour0.getMonth())
			an0=dateDuJour0.getFullYear()+1
		else
			an0=dateDuJour0.getFullYear();
		if (an0<1900) // sur netscape 4.5 ou ulterieur
			an0=an0+1900
		res0=mois0+an0;
		return res0;
	}
	
		
	/*fonction qui donnera la date complete en fonction 
		des variables jours,mois,et annee
		Le resultat sera affecté à "form_result0"
	*/
	function verifier_date0(form_day0,form_month0,form_year0,form_result0)
	{
		var indice_day0=form_day0.selectedIndex;
		var day0=indice_day0+1;
		var indice_month0=form_month0.options[form_month0.selectedIndex].value;
		var text_month0=form_month0.options[form_month0.selectedIndex].text;
		var positionEspace0=text_month0.indexOf(' ');
		var year0=text_month0.substring(positionEspace0,text_month0.length);
		var month0=indice_month0;
		var indice_year0=form_year0.selectedIndex;
		
		//var year=min_year+indice_year;
		//var year=min_year;
		if(month0==2)
		{
			// si on est Fevrier 
			if(year0%4==0)
			{
				if(day0>29) form_day0.selectedIndex=28;
			}
			else 
				if (day0>28) form_day0.selectedIndex=27;
		}
		else
		{
			if(month0<7)	var reste0=0;
			else 
				if(month0>8) var reste0=1;
				
			if((month0<7)||(month0>8))
			{
				if(month0%2==reste0)//dernier jour =30
					if(day0>29) form_day0.selectedIndex=29;
			}
		}
		form_year0.value=year0;
		form_result0.value=form_day0.options[form_day0.selectedIndex].value+"/"+form_month0.options[form_month0.selectedIndex].value+"/"+year0;
		
		var date1_sav0 = form_month0.options[form_month0.selectedIndex].value+"/"+form_day0.options[form_day0.selectedIndex].value+"/"+year0;
		var an0='';		
		// Selection automatique du date de retour...
		if ( form_day0.name == 'DEPART_DD' && form_month0.name == 'DEPART_MM' ) 
		{
			var d_day0	= form_day0.selectedIndex+1;
			var d_month0	= form_month0.options[form_month0.selectedIndex].value-1;
			var d_year0	= form_year0.value;
			var secondDate0 = Ajout_date0S(d_day0,d_month0,d_year0,nbJours0);
			document.frm_moteurVol.RETOUR_DD.selectedIndex = secondDate0.getDate()-1;
			for (var ii = 0;ii<=11;ii++) 
			{
				if (document.frm_moteurVol.RETOUR_MM.options[ii].value == secondDate0.getMonth() + 1 ) 
					var currentCible0 = ii;
			}
			
			document.frm_moteurVol.RETOUR_MM.selectedIndex = currentCible0;
			//document.frm_moteurVol.RETOUR_YYYY.value = form_year0.value;
			an0 = secondDate0.getFullYear();
			if (an0 < 1900) an0 = an0 +1900;
			document.frm_moteurVol.RETOUR_YYYY.value = an0;

		}
		
		//code qui récupère le jour "Lundi", "Mardi", ...
		sjour0 = GetTodayName0(date1_sav0);
		//document.frm_moteurVol.jour_ttl.options.selectedIndex=null; //efface la valeur déjà existante
		//alert("jour_ttl" + jour_ttl.options[0].value);	


	}
	//fin fonction verifier
	
	//Ajoute date de n (jours) jours
	function Ajout_date0S(d_day0,d_month0,d_year0,jours0) {
	
		var DaysOfMonth0s = Array(); //Nombre de jours par mois
		
		for (var i=0;i<=6;i++) {
			DaysOfMonth0s[i] = i%2 ? 30 : 31;
		}
		for (var i=7;i<=11;i++) {
			DaysOfMonth0s[i] = i%2 ? 31 : 30;
		}
		DaysOfMonth0s[1] = d_year0%4 ? 28 : 29; // For fevrier only
		
		var C_Day0 	= d_day0 + jours0;
		var C_Month0 = d_month0;
		var C_Year0  = d_year0;
		
		while ( C_Day0 > DaysOfMonth0s[C_Month0] ) {
			C_Day0	= C_Day0 - DaysOfMonth0s[C_Month0];	
			C_Month0++;
			if (C_Month0 == 12) break;
		}

		if (C_Month0 == 12) {
			C_Month0 = 0;
			C_Year0++;
			C_Day0--;
			var outputDate0S = Ajout_date0S(1,0,C_Year0,C_Day0);
		}
		else var outputDate0S = new Date(C_Year0,C_Month0,C_Day0);
		
		return outputDate0S;	
	}
	
	
	//fonction saisie_date
	function saisie_date(var_day0,var_month0,var_year0,form_result0,dateJour0,default_value0)
	{	
		var date_default0=new Date(default_value0);
		var now0=new Date(dateJour0);
		document.write("<select name='"+var_day0+"' class='select1' OnChange='verifier_date0(form."+var_day0+",form."+var_month0+",form."+var_year0+","+form_result0+");'>");
			for(i=min_day0;i<=max_day0;i++)
			{
				if(date_default0.getDate()==i)
					document.write("<option value='" +i+"' selected>"+((i<10)?'0'+i:i));
				else
					document.write("<option value='" +i+"'>"+((i<10)?'0'+i:i));				
			}	
		document.write("</select>");
		
		//saisie mois
		document.write(	"<select name='"+var_month0+"' class='select2' OnChange='verifier_date0(form."+var_day0+",this,form."+var_year0+","+form_result0+");'>");		
			for(i=now0.getMonth();i<month0.length;i++)
			{
				if(date_default0.getMonth()==i)		
					document.write("<option value='" +(i+1)+"' selected>"+leMois0(i,month0[i],now0));
				else
					document.write("<option value='" +(i+1)+"'>"+leMois0(i,month0[i],now0));
			}
			for(i=0;i<now0.getMonth();i++)
			{
				if(date_default0.getMonth()==i)		
					document.write("<option value='" +(i+1)+"' selected>"+leMois0(i,month0[i],now0));
				else
					document.write("<option value='" +(i+1)+"'>"+leMois0(i,month0[i],now0));
			}
		document.write("</select>");
		//saisie année
		if (date_default0.getFullYear()<1900)
			annee0=date_default0.getFullYear()+1900
		else
			annee0=date_default0.getFullYear();
			document.write("<input type='hidden' name='"+var_year0+"' value='"+annee0+"'>");	
			
		//Rafraîchir l'affichage des jours de la semaine - 03/05/2001 - Maher
		//if (evt == 'D')	Afficher_Jour_Aller(date_default0.getDate(),date_default0.getMonth(),date_default0.getFullYear());
		//if (evt == 'R')	Afficher_Jour_Retour(date_default0.getDate(),date_default0.getMonth(),date_default0.getFullYear());
	}
	//fin sisie_date
	
	// Fonction qui retourne le prochain samedi <13 jours
function GetSaturday0(maintenant0,n0)	//ajoute n jours au résultat final
{
	var Aujourdhui0 = new Date(maintenant0);
	var jour0 = Aujourdhui0.getDate();
	var mois0 = Aujourdhui0.getMonth();
	var annee0 = Aujourdhui0.getFullYear();
	var day0 = Aujourdhui0.getDay();
	var date0;date02="";
	if (annee0<1900) //sur Netscape 4.5 ou ultérieur
		annee0=annee0+1900;
		
	if (day0==0)
	{
		//case 0 : //dimanche
			date02=( ((jour0<10) ? '0' + jour0:jour0) + '/' + ((mois0<10) ? '0' + mois0:mois0) + '/' + annee0);
			date02=Ajout_date0S(jour0,mois0,annee0,6+n0);
			return date02;
	}
		
		if (day0== 1) //lundi
		{
			date02= (((jour0<10) ? '0' + jour0:jour0) + '/' + ((mois0<10) ? '0' + mois0:mois0) + '/' + annee0);
			date02=Ajout_date0S(jour0,mois0,annee0,12+n0);
			return date02;
		}
		
		if (day0== 2) //mardi
		{
			date02=(((jour0<10) ? '0' + jour0:jour0) + '/' + ((mois0<10) ? '0' + mois0:mois0) + '/' + annee0);
			date02=Ajout_date0S(jour0,mois0,annee0,11+n0); 
			return date02;
		}
		
		if (day0 == 3) //mercredi
		{
			date02=(((jour0<10) ? '0' + jour0:jour0) + '/' + ((mois0<10) ? '0' + mois0:mois0) + '/' + annee0);
			date02=Ajout_date0S(jour0,mois0,annee0,10+n0); 
			return date02;
		}
		
		if (day0 == 4)  //jeudi
		{
			date02=(((jour0<10) ? '0' + jour0:jour0) + '/' + ((mois0<10) ? '0' + mois0:mois0) + '/' + annee0);
			date02=Ajout_date0S(jour0,mois0,annee0,9+n0); 
			return date02;
		}
		
		if (day0== 5) //vendredi
		{
			date02=(((jour0<10) ? '0' + jour0:jour0) + '/' + ((mois0<10) ? '0' + mois0:mois0) + '/' + annee0);
			date02=Ajout_date0S(jour0,mois0,annee0,8+n0); 
			return date02;
		}
		
		if (day0== 6) //samedi
		{
			date02=(((jour0<10) ? '0' + jour0:jour0) + '/' + ((mois0<10) ? '0' + mois0:mois0) + '/' + annee0);
			date02=Ajout_date0S(jour0,mois0,annee0,7+n0); 
			return date02;
		}
		
}
	
	// Fonction qui renvoie la date du jour
	
	function GetTodayDate0(dateJour0)
	{
		Aoujourdhui0 = new Date(dateJour0);
		jour0 = Aoujourdhui0.getDate();
		mois0 = Aoujourdhui0.getMonth()+1;
		annee0 = Aoujourdhui0.getFullYear();
		
		date0=((mois0<10)?'0'+mois0:mois0)+'/'+((jour0<10)?'0'+jour0:jour0)+'/'+annee0
		return date0;
	}

	// Fonction qui renvoi le libellé du jour "Lundi", "Mardi", ...  
	// Le 27/02/2001 - Maher
	
	function GetTodayName0(dateJour0)
	{
		Aoujourdhui0 = new Date(dateJour0);
		jour0 = Aoujourdhui0.getDay();
		//alert("xx dateJour0 = " + dateJour0);
		//alert("jour = " + jour);
				
		if (jour0 == 0)
			return "Dim";
		if (jour0 == 1)
			return "Lun";
		if (jour0 == 2)
			return "Mar";
		if (jour0 == 3)
			return "Mer";
		if (jour0 == 4)
			return "Jeu";
		if (jour0 == 5)
			return "Ven";
		if (jour0 == 6)
			return "Sam";
	}	

	
