/*Appelé par : index.cfm - input_date1.cfm - promos_cars2.cfm - promos_cars3.cfm - promotions.cfm - promotions_speciales.cfm - promotions_speciales_moteur.cfm - spvol2.cfm - tourismania_promotions.cfm */
/*le formulaire de saisie d'une date est parametrable
	Ainsi on pourra utiliser la fonction saisie_date_car() 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_car(var_day,var_month,var_year,form_result,default_value,evt)
	var_day=la variable jour;
	var_month=la variable month;
	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_day=01;
	var max_day=31;
	var month=new Array();

	if (lng == 'us')
	{
		month[0]='January ';
		month[1]='February ';
		month[2]='March ';
		month[3]='April ';
		month[4]='May ';
		month[5]='June ';
		month[6]='July ';
		month[7]='August ';
		month[8]='September ';
		month[9]='October ';
		month[10]='November ';
		month[11]='December ';
	}
	else
		if (lng == 'es')
		{
			month[0]='Enero ';
			month[1]='Febrero ';
			month[2]='Marzo ';
			month[3]='Abril ';
			month[4]='Mayo ';
			month[5]='Junio ';
			month[6]='Julio ';
			month[7]='Agosto ';
			month[8]='Septiembre ';
			month[9]='Octubre ';
			month[10]='Noviembre ';
			month[11]='Diciembre ';
		}

	else
		if (lng == 'nl')
		{
			month[0]='Januari ';
			month[1]='Februari ';
			month[2]='Maart ';
			month[3]='April ';
			month[4]='Mei ';
			month[5]='Juni ';
			month[6]='Juli ';
			month[7]='Augustus ';
			month[8]='September ';
			month[9]='Oktober ';
			month[10]='November ';
			month[11]='December ';
		}
	else
		if (lng == 'it')
		{
	month[0]='Gennaio ';
	month[1]='Febbraio ';
	month[2]='Marzo ';
	month[3]='Aprile ';
	month[4]='Maggio ';
	month[5]='Giugno ';
	month[6]='Luglio ';
	month[7]='Agosto ';
	month[8]='Settembre ';
	month[9]='Ottobre ';
	month[10]='Novembre ';
	month[11]='Dicembre ';
		}
	else
		if (lng == 'pt')
		{
	month[0]='Janeiro ';
	month[1]='Fevereiro ';
	month[2]='Marco ';
	month[3]='Abril ';
	month[4]='Maio ';
	month[5]='Junho ';
	month[6]='Julho ';
	month[7]='Agosto ';
	month[8]='Setembro ';
	month[9]='Outubro ';
	month[10]='Novembro ';
	month[11]='Dezembro ';
		}

		else
		{
			month[0]='Janvier ';
			month[1]='Fevrier ';
			month[2]='Mars ';
			month[3]='Avril ';
			month[4]='Mai ';
			month[5]='Juin ';
			month[6]='Juillet ';
			month[7]='Ao&ucirc;t ';
			month[8]='Septembre ';
			month[9]='Octobre ';
			month[10]='Novembre ';
			month[11]='D&eacute;cembre ';
		}
	var min_year=2000;
	var max_year=min_year+10;
	var nbJours_car= 7;


	/* Fonction qui donnera comme le mois + l'annee */
	function leMois_car(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_date_car(form_day,form_month,form_year,form_result,jour_ttl)
	{
		var indice_day=form_day.selectedIndex;
		var day=indice_day+1;
		var indice_month=form_month.options[form_month.selectedIndex].value;
		var text_month=form_month.options[form_month.selectedIndex].text;
		var positionEspace=text_month.indexOf(' ');
		var year=text_month.substring(positionEspace+1,text_month.length);
		var month=indice_month;
		var indice_year=form_year.selectedIndex;

		//var year=min_year+indice_year;
		//var year=min_year;
		if(month==2)
		{
			// si on est Fevrier
			if(year%4==0)
			{
				if(day>29) form_day.selectedIndex=28;
			}
			else
				if (day>28) form_day.selectedIndex=27;
		}
		else
		{
			if(month<7)	var reste=0;
			else
				if(month>8) var reste=1;

			if((month<7)||(month>8))
			{
				if(month%2==reste)//dernier jour =30
					if(day>29) form_day.selectedIndex=29;
			}
		}
		form_year.value=year;
		form_result.value=form_day.options[form_day.selectedIndex].value+"/"+form_month.options[form_month.selectedIndex].value+"/"+year;
		
		var search_day;
		var search_month;
		if (form_day.options[form_day.selectedIndex].value<10){
			search_day = '0'+form_day.options[form_day.selectedIndex].value;
		}else{
			search_day = form_day.options[form_day.selectedIndex].value;
		}
		if (form_month.options[form_month.selectedIndex].value<10){
			search_month = '0'+form_month.options[form_month.selectedIndex].value;
		}else{
			search_month = form_month.options[form_month.selectedIndex].value;
		}
		
		
		document.moteurcar.to_dates_of_departure.value = search_day+"/"+search_month+"/"+year;
		
		
		var date1_sav = form_month.options[form_month.selectedIndex].value+"/"+form_day.options[form_day.selectedIndex].value+"/"+year;
		var an='';
		// Selection automatique du date de retour...
		if ( form_day.name == 'DEPART_DD' && form_month.name == 'DEPART_MM' )
		{
			var d_day	= form_day.selectedIndex+1;
			var d_month	= form_month.options[form_month.selectedIndex].value-1;
			var d_year	= form_year.value;
			var secondDate = Ajout_date_car(d_day,d_month,d_year,nbJours_car);
			document.moteur.RETOUR_DD.selectedIndex = secondDate.getDate()-1;
			for (var ii = 0;ii<=11;ii++)
			{
				if (document.moteur.RETOUR_MM.options[ii].value == secondDate.getMonth() + 1 )
					var currentCible = ii;
			}
			Afficher_Jour_Aller_car(d_day,d_month,d_year);

			document.moteur.RETOUR_MM.selectedIndex = currentCible;
			//document.moteur.RETOUR_YYYY.value = form_year.value;
			an = secondDate.getFullYear();
			if (an < 1900) an = an +1900;
			document.moteur.RETOUR_YYYY.value = an;

			Afficher_Jour_Retour_car(secondDate.getDate(),secondDate.getMonth(),an);
		}
		else	//retour
		{
			var d_day	= form_day.selectedIndex+1;
			var d_month	= form_month.options[form_month.selectedIndex].value-1;
			var d_year	= form_year.value;
			Afficher_Jour_Retour_car(d_day,d_month,d_year);
		}

		//code qui récupère le jour "Lundi", "Mardi", ...
		sjour = GetTodayName_car(date1_sav);
		//document.moteur.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_date_car(d_day,d_month,d_year,jours) {

		var DaysOfMonths = Array(); //Nombre de jours par mois

		for (var i=0;i<=6;i++) {
			DaysOfMonths[i] = i%2 ? 30 : 31;
		}
		for (var i=7;i<=11;i++) {
			DaysOfMonths[i] = i%2 ? 31 : 30;
		}
		DaysOfMonths[1] = d_year%4 ? 28 : 29; // For fevrier only

		var C_Day 	= d_day + jours;
		var C_Month = d_month;
		var C_Year  = d_year;

		while ( C_Day > DaysOfMonths[C_Month] ) {
			C_Day	= C_Day - DaysOfMonths[C_Month];
			C_Month++;
			if (C_Month == 12) break;
		}

		if (C_Month == 12) {
			C_Month = 0;
			C_Year++;
			C_Day--;
			var outputDate = Ajout_date_car(1,0,C_Year,C_Day);
		}
		else var outputDate = new Date(C_Year,C_Month,C_Day);

		return outputDate;
	}


	//fonction saisie_date_car
	function saisie_date_car(var_day,var_month,var_year,form_result,dateJour,default_value,evt)
	{
		var date_default=new Date(default_value);
		var now=new Date(dateJour);
		var default_search_day;
		var default_search_month;
		var default_search_year;

		document.write("<select name='"+var_day+"' style='width:45px;height:19px' class='formular' OnChange='verifier_date_car(form."+var_day+",form."+var_month+",form."+var_year+","+form_result+")'"+evt+">");
			for(i=min_day;i<=max_day;i++)
			{
				if(date_default.getDate()==i){
					document.write("<option value='" +i+"' selected>"+((i<10)?'0'+i:i));
					default_search_day = 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_month+"' style='width:120px;height:19px' class='formular' OnChange='verifier_date_car(form."+var_day+",this,form."+var_year+","+form_result+");'"+evt+">");
			for(i=now.getMonth();i<month.length;i++)
			{
				if(date_default.getMonth()==i){
					document.write("<option value='" +(i+1)+"' selected>"+leMois_sejour(i,month[i],now));
					j=i+1;
					default_search_month = j<10?'0'+j:j;
				}else{
					document.write("<option value='" +(i+1)+"'>"+leMois_sejour(i,month[i],now));
				}
			}
			for(i=0;i<now.getMonth();i++)
			{
				if(date_default.getMonth()==i){
					document.write("<option value='" +(i+1)+"' selected>"+leMois_sejour(i,month[i],now));
					j=i+1;
					default_search_month = j<10?'0'+j:j;
				}else{
					document.write("<option value='" +(i+1)+"'>"+leMois_sejour(i,month[i],now));
				}
			}
		document.write("</select>");

		//saisie année
		if (date_default.getFullYear()<1900){
			annee=date_default.getFullYear()+1900;
			default_search_year = annee;			
		}else{
			annee=date_default.getFullYear();
			default_search_year = annee;
			document.write("<input type='hidden' name='"+var_year+"' value='"+annee+"'>");
		}
		
		document.moteurcar.to_dates_of_departure.value = default_search_day+"/"+default_search_month+"/"+default_search_year;
		
		
		//Rafraîchir l'affichage des jours de la semaine - 03/05/2001 - Maher
		if (evt == 'D')	Afficher_Jour_Aller_car(date_default.getDate(),date_default.getMonth(),date_default.getFullYear());
		if (evt == 'R')	Afficher_Jour_Retour_car(date_default.getDate(),date_default.getMonth(),date_default.getFullYear());
	}
	//fin sisie_date

	//élimination des blancs n'importe où dans le champ
	function Trim_car(val)
	{
		var res='';
		for(i=0;i<val.length;i++)
		{
			if(!(val.charAt(i)==" "))
				res=res+val.charAt(i);
		}
		return res;
	}

	//retourne vraie si la valeur est numerique fausse sinon
	function IsNumeric_car(val)
	{
		var test=true;
		for(i=0;i<val.length;i++)
		{
			temp=val.charAt(i);
			if( !((temp>=0) && (temp<=9) ||(temp=='.')) )
			{
				test=false;
				break;
			}
		}
		return test;
	}

	//teste un champ s'il est numerique au cours du saisie
	// si on specifie l'evenement OnChange
	function Test_Numeric_car(form)
	{
		form.value=Trim_car(form.value);
		if(!IsNumeric_car(form.value))
		{
			alert("La valeur doit être numerique");
			form.focus();
		}
	}

	//compte la valeur d'une chaine 'str' dans 'val'
	function Compter_Chaine_car(str,val)
	{
		var temp=val;
		var compteur=0;
		var indice=0;
		var pos=0;
		for(var i=0;i<temp.length;i++)
		{
			pos=temp.indexOf(str,0);
			if(pos!=-1)
			{
				compteur++;
				temp=temp.substring(pos+str.length,temp.length);
			}
		}
		return compteur;
	}

	function IsMail_car(val)
	{
		var test=false;
		if( (val.indexOf('@')!=-1) && (val.indexOf('@')!=val.length-1) &&  (val.indexOf('@')!=0))
		{
			if(Compter_Chaine_car('@',val)==1)
				test=true;
		}

		return test;
	}

	// Fonction qui retourne le prochain samedi <13 jours
function GetSaturday_car(maintenant,n)	//ajoute n jours au résultat final
{
	var Aujourdhui = new Date(maintenant);
	var jour = Aujourdhui.getDate();
	var mois = Aujourdhui.getMonth();
	var annee = Aujourdhui.getFullYear();
	var day = Aujourdhui.getDay();
	var date;date2="";

	if (annee<1900) //sur Netscape 4.5 ou ultérieur
		annee=annee+1900;

	if (day==0)
	{
		//case 0 : //dimanche
			date2=( ((jour<10) ? '0' + jour:jour) + '/' + ((mois<10) ? '0' + mois:mois) + '/' + annee);
			date2=Ajout_date_car(jour,mois,annee,6+n);
			return date2;
	}

		if (day== 1) //lundi
		{
			date2= (((jour<10) ? '0' + jour:jour) + '/' + ((mois<10) ? '0' + mois:mois) + '/' + annee);
			date2=Ajout_date_car(jour,mois,annee,12+n);
			return date2;
		}

		if (day== 2) //mardi
		{
			date2=(((jour<10) ? '0' + jour:jour) + '/' + ((mois<10) ? '0' + mois:mois) + '/' + annee);
			date2=Ajout_date_car(jour,mois,annee,11+n);
			return date2;
		}

		if (day == 3) //mercredi
		{
			date2=(((jour<10) ? '0' + jour:jour) + '/' + ((mois<10) ? '0' + mois:mois) + '/' + annee);
			date2=Ajout_date_car(jour,mois,annee,10+n);
			return date2;
		}

		if (day == 4)  //jeudi
		{
			date2=(((jour<10) ? '0' + jour:jour) + '/' + ((mois<10) ? '0' + mois:mois) + '/' + annee);
			date2=Ajout_date_car(jour,mois,annee,9+n);
			return date2;
		}

		if (day== 5) //vendredi
		{
			date2=(((jour<10) ? '0' + jour:jour) + '/' + ((mois<10) ? '0' + mois:mois) + '/' + annee);
			date2=Ajout_date_car(jour,mois,annee,8+n);
			return date2;
		}

		if (day== 6) //samedi
		{
			date2=(((jour<10) ? '0' + jour:jour) + '/' + ((mois<10) ? '0' + mois:mois) + '/' + annee);
			date2=Ajout_date_car(jour,mois,annee,7+n);
			return date2;
		}

}

	// Fonction qui renvoie la date du jour

	function GetTodayDate_car(datejour)
	{
		Aoujourdhui = new Date(datejour);
		jour = Aoujourdhui.getDate();
		mois = Aoujourdhui.getMonth()+1;
		annee = Aoujourdhui.getFullYear();

		date=((mois<10)?'0'+mois:mois)+'/'+((jour<10)?'0'+jour:jour)+'/'+annee
		return date;
	}

	// Fonction qui renvoi le libellé du jour "Lundi", "Mardi", ...
	// Le 27/02/2001 - Maher

	function GetTodayName_car(datejour)
	{
		Aoujourdhui = new Date(datejour);
		jour = Aoujourdhui.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";
	}

	//fonction qui réaffiche en toutes lettres le jour de la semaine - Maher 19/04/2001
	function Afficher_Jour_Aller_car(d_day,d_month,d_year) //départ
	{
    if (d_year<1900) // sur netscape 4.5 ou ulterieur
			d_year=d_year+1900;
		DateSaisie = new Date(d_year,d_month,d_day,0,0,0,0);
		jour = DateSaisie.getDay();
		image11 = document.getElementById('image11');
		if (jour == 0) image11.src=path+"dimanche.gif";
		if (jour == 1) image11.src=path+"lundi.gif";
		if (jour == 2) image11.src=path+"mardi.gif";
		if (jour == 3) image11.src=path+"mercredi.gif";
		if (jour == 4) image11.src=path+"jeudi.gif";
		if (jour == 5) image11.src=path+"vendredi.gif";
		if (jour == 6) image11.src=path+"samedi.gif";
	}

	function Afficher_Jour_Retour_car(d_day,d_month,d_year) //retour
	{
    if (d_year<1900) // sur netscape 4.5 ou ulterieur
			d_year=d_year+1900;
		DateSaisie = new Date(d_year,d_month,d_day,0,0,0,0);
		jour = DateSaisie.getDay();
		image12 = document.getElementById('image12');
		if (jour == 0) image12.src=path+"dimanche.gif";
		if (jour == 1) image12.src=path+"lundi.gif";
		if (jour == 2) image12.src=path+"mardi.gif";
		if (jour == 3) image12.src=path+"mercredi.gif";
		if (jour == 4) image12.src=path+"jeudi.gif";
		if (jour == 5) image12.src=path+"vendredi.gif";
		if (jour == 6) image12.src=path+"samedi.gif";
	}
