/*Appelé par : index.cfm - input_date1.cfm - promos_vols2.cfm - promos_vols3.cfm - promotions.cfm - promotions_speciales.cfm - promotions_speciales_frm_devis.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_day,var_month1,var_year,form_result,default_value,evt)	
	var_day=la variable jour;
	var_month1=la variable month1;
	var_year=la variable mois;
	form_result=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_day1=01;
	var max_day1=31;
	var month1=new Array();
	
	month1[0]='Janvier ';
	month1[1]='Fevrier ';
	month1[2]='Mars ';
	month1[3]='Avril ';
	month1[4]='Mai ';
	month1[5]='Juin ';
	month1[6]='Juillet ';
	month1[7]='Ao&ucirc;t ';
	month1[8]='Septembre ';
	month1[9]='Octobre ';
	month1[10]='Novembre ';
	month1[11]='D&eacute;cembre ';
		
	var min_year=2000;
	var max_year=min_year+50;
	var nbJours= 7;
	
	
	/* Fonction qui donnera comme le mois + l'annee */
	function leMois1(i,mois,dateDuJour) {
	var an,res;
		if (i<dateDuJour.getMonth())
			an=dateDuJour.getFullYear()+1
		else
			an=dateDuJour.getFullYear();
		if (an<1900) // sur netscape 4.5 ou ulterieur
			an=an+1900
		res=mois+an;
		return res;
	}
	
		
	/*fonction qui donnera la date complete en fonction 
		des variables jours,mois,et annee
		Le resultat sera affecté à "form_result"
	*/
	function verifier_date1(form_day1,form_month1,form_year,form_result)
	{
		var indice_day=form_day1.selectedIndex;
		var day=indice_day+1;
		var indice_month1=form_month1.options[form_month1.selectedIndex].value;
		var text_month1=form_month1.options[form_month1.selectedIndex].text;
		var positionEspace=text_month1.indexOf(' ');
		var year=text_month1.substring(positionEspace,text_month1.length);
		var month1=indice_month1;
		var indice_year=form_year.selectedIndex;
		
		//var year=min_year+indice_year;
		//var year=min_year;
		if(month1==2)
		{
			// si on est Fevrier 
			if(year%4==0)
			{
				if(day>29) form_day1.selectedIndex=28;
			}
			else 
				if (day>28) form_day1.selectedIndex=27;
		}
		else
		{
			if(month1<7)	var reste=0;
			else 
				if(month1>8) var reste=1;
				
			if((month1<7)||(month1>8))
			{
				if(month1%2==reste)//dernier jour =30
					if(day>29) form_day1.selectedIndex=29;
			}
		}
		form_year.value=year;
		form_result.value=form_day1.options[form_day1.selectedIndex].value+"/"+form_month1.options[form_month1.selectedIndex].value+"/"+year;
		
		var date1_sav = form_month1.options[form_month1.selectedIndex].value+"/"+form_day1.options[form_day1.selectedIndex].value+"/"+year;
		var an='';		
		// Selection automatique du date de retour...
		if ( form_day1.name == 'DEPART_D' && form_month1.name == 'DEPART_M' ) 
		{
			var d_day = form_day1.selectedIndex+1;
			var d_month1 = form_month1.options[form_month1.selectedIndex].value-1;
			var d_year= form_year.value;
			var secondDate = Ajout_date1(d_day,d_month1,d_year,nbJours);
			document.frm_devis.RETOUR_D.selectedIndex = secondDate.getDate()-1;
			for (var ii = 0;ii<=11;ii++) 
			{
				if (document.frm_devis.RETOUR_M.options[ii].value == secondDate.getMonth() + 1 ) 
					var currentCible = ii;
			}
			//Afficher_Jour_Aller(d_day,d_month1,d_year);			
			
			document.frm_devis.RETOUR_M.selectedIndex = currentCible;
			//document.frm_devis.RETOUR_YYYY.value = form_year.value;
			an = secondDate.getFullYear();
			if (an < 1900) an = an +1900;
			document.frm_devis.RETOUR_Y.value = an;

			//Afficher_Jour_Retour(secondDate.getDate(),secondDate.getmonth1(),an);
		}
		else	//retour
		{
			var d_day	= form_day1.selectedIndex+1;
			var d_month1	= form_month1.options[form_month1.selectedIndex].value-1;
			var d_year	= form_year.value;
			//Afficher_Jour_Retour(d_day,d_month1,d_year);			
		}
		
		//code qui récupère le jour "Lundi", "Mardi", ...
		sjour = GetTodayName1(date1_sav);
		//document.frm_devis.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_date1(d_day,d_month1,d_year,jours) {
	
		var DaysOfmonth1s = Array(); //Nombre de jours par mois
		
		for (var i=0;i<=6;i++) {
			DaysOfmonth1s[i] = i%2 ? 30 : 31;
		}
		for (var i=7;i<=11;i++) {
			DaysOfmonth1s[i] = i%2 ? 31 : 30;
		}
		DaysOfmonth1s[1] = d_year%4 ? 28 : 29; // For fevrier only
		
		var C_Day 	= d_day + jours;
		var C_month1 = d_month1;
		var C_Year  = d_year;
		
		while ( C_Day > DaysOfmonth1s[C_month1] ) {
			C_Day	= C_Day - DaysOfmonth1s[C_month1];	
			C_month1++;
			if (C_month1 == 12) break;
		}

		if (C_month1 == 12) {
			C_month1 = 0;
			C_Year++;
			C_Day--;
			var outputDate = Ajout_date1(1,0,C_Year,C_Day);
		}
		else var outputDate = new Date(C_Year,C_month1,C_Day);
		
		return outputDate;	
	}
	
	
	//fonction saisie_date
	function saisie_date1(var_day,var_month1,var_year,form_result,dateJour,default_value)
	{	
		var date_default=new Date(default_value);
		var now=new Date(dateJour);
		document.write("<select name='"+var_day+"' style='width:45px;height:19px' class='formular' OnChange='verifier_date1(form."+var_day+",form."+var_month1+",form."+var_year+","+form_result+");'>");
			for(i=min_day1;i<=max_day1;i++)
			{
				if(date_default.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_month1+"' style='width:120px;height:19px;font-size: 11' class='formular' OnChange='verifier_date1(form."+var_day+",this,form."+var_year+","+form_result+");'>");		
			for(i=now.getMonth();i<month1.length;i++)
			{
				if(date_default.getMonth()==i)		
					document.write("<option value='" +(i+1)+"' selected>"+leMois1(i,month1[i],now));
				else
					document.write("<option value='" +(i+1)+"'>"+leMois1(i,month1[i],now));
			}
			for(i=0;i<now.getMonth();i++)
			{
				if(date_default.getMonth()==i)		
					document.write("<option value='" +(i+1)+"' selected>"+leMois1(i,month1[i],now));
				else
					document.write("<option value='" +(i+1)+"'>"+leMois1(i,month1[i],now));
			}
		document.write("</select>");
		
		//saisie année
		if (date_default.getFullYear()<1900)
			annee=date_default.getFullYear()+1900
		else
			annee=date_default.getFullYear();
			document.write("<input type='hidden' name='"+var_year+"' value='"+annee+"'>");	
			
		//Rafraîchir l'affichage des jours de la semaine - 03/05/2001 - Maher
		//if (evt == 'D')	Afficher_Jour_Aller(date_default.getDate(),date_default.getmonth1(),date_default.getFullYear());
		//if (evt == 'R')	Afficher_Jour_Retour(date_default.getDate(),date_default.getmonth1(),date_default.getFullYear());
	}
	//fin sisie_date
	
	// Fonction qui retourne le prochain samedi <13 jours
function GetSaturday1(maintenant,n)	//ajoute n jours au résultat final
{
	var Aujourdhui1 = new Date(maintenant);
	var jour = Aujourdhui1.getDate();
	var mois = Aujourdhui1.getMonth();
	var annee = Aujourdhui1.getFullYear();
	var day = Aujourdhui1.getDay();
	var date1;date21="";
	if (annee<1900) //sur Netscape 4.5 ou ultérieur
		annee=annee+1900;
		
	if (day==0)
	{
		//case 0 : //dimanche
			date21=( ((jour<10) ? '0' + jour:jour) + '/' + ((mois<10) ? '0' + mois:mois) + '/' + annee);
			date21=Ajout_date1(jour,mois,annee,6+n);
			return date21;
	}
		
		if (day== 1) //lundi
		{
			date21= (((jour<10) ? '0' + jour:jour) + '/' + ((mois<10) ? '0' + mois:mois) + '/' + annee);
			date21=Ajout_date1(jour,mois,annee,12+n);
			return date21;
		}
		
		if (day== 2) //mardi
		{
			date21=(((jour<10) ? '0' + jour:jour) + '/' + ((mois<10) ? '0' + mois:mois) + '/' + annee);
			date21=Ajout_date1(jour,mois,annee,11+n); 
			return date21;
		}
		
		if (day == 3) //mercredi
		{
			date21=(((jour<10) ? '0' + jour:jour) + '/' + ((mois<10) ? '0' + mois:mois) + '/' + annee);
			date21=Ajout_date1(jour,mois,annee,10+n); 
			return date21;
		}
		
		if (day == 4)  //jeudi
		{
			date21=(((jour<10) ? '0' + jour:jour) + '/' + ((mois<10) ? '0' + mois:mois) + '/' + annee);
			date21=Ajout_date1(jour,mois,annee,9+n); 
			return date21;
		}
		
		if (day== 5) //vendredi
		{
			date21=(((jour<10) ? '0' + jour:jour) + '/' + ((mois<10) ? '0' + mois:mois) + '/' + annee);
			date21=Ajout_date1(jour,mois,annee,8+n); 
			return date21;
		}
		
		if (day== 6) //samedi
		{
			date21=(((jour<10) ? '0' + jour:jour) + '/' + ((mois<10) ? '0' + mois:mois) + '/' + annee);
			date21=Ajout_date1(jour,mois,annee,7+n); 
			return date21;
		}
		
}
	
	// Fonction qui renvoie la date du jour
	
	function GetTodayDate1(datejour)
	{
		Aoujourdhui1 = new Date(datejour);
		jour = Aoujourdhui1.getDate();
		mois = Aoujourdhui1.getMonth()+1;
		annee = Aoujourdhui1.getFullYear();
		
		date1=((mois<10)?'0'+mois:mois)+'/'+((jour<10)?'0'+jour:jour)+'/'+annee
		return date1;
	}

	// Fonction qui renvoi le libellé du jour "Lundi", "Mardi", ...  
	// Le 27/02/2001 - Maher
	
	function GetTodayName1(datejour)
	{
		Aoujourdhui1 = new Date(datejour);
		jour = Aoujourdhui1.getDay();
		//alert("xx datejour = " + datejour);
		//alert("jour = " + jour);
				
		if (jour == 0)
			return "Dim";
		if (jour == 1)
			return "Lun";
		if (jour == 2)
			return "Mar";
		if (jour == 3)
			return "Mer";
		if (jour == 4)
			return "Jeu";
		if (jour == 5)
			return "Ven";
		if (jour == 6)
			return "Sam";
	}	

