/*
*******************************************dateresa.js
*/
			
			
d_maxStay	= 6
var today	= new Date();
var d_maxPeriod = 250;					// fin max du séjour / aujourd'hui
var maxDateOut       = addDays(today,d_maxPeriod);	// fin max du séjour
			
var annee_deb=today.getFullYear();
var annee_fin=addDays(today,d_maxPeriod).getFullYear();
//alert(annee_deb + "\n" + annee_fin);
			

			
function checkDates(_form,_field) 
{
	// remise a zero

	if ((_field=='j' && _form.jour_arrivee.selectedIndex==0) ||
		(_field=='m' && _form.mois_arrivee.selectedIndex==0) ||
		(_field=='a' && _form.annee_arrivee.selectedIndex==0)||
		(_field=='n' && _form.nb_nuit.selectedIndex==0)  ) 
	{
		unsetForm(_form);
		return;
	}
	else if ( _form.jour_arrivee.selectedIndex==0  ||
		_form.mois_arrivee.selectedIndex==0  ||
		_form.annee_arrivee.selectedIndex==0 ||
		_form.nb_nuit.selectedIndex==0) 
	{ // initialisation d'un champ
		switch(_field)
		{
			case 'j' :
				if ( _form.jour_arrivee.selectedIndex < today.getDate()  ) 
				{
//					alert("jour <");
					var mois_sup=today.getMonth()+2;
					if(mois_sup>12)
					{
						_form.mois_arrivee.selectedIndex = 1;
						_form.annee_arrivee.selectedIndex = _form.annee_arrivee.selectedIndex+2;
					}
					else
					{
						_form.mois_arrivee.selectedIndex = mois_sup;
						_form.annee_arrivee.selectedIndex = today.getFullYear() - annee_deb + 1;
					}
				}
				else
				{
//					alert("jour >");
					_form.mois_arrivee.selectedIndex  = today.getMonth()+1;
					_form.annee_arrivee.selectedIndex = today.getFullYear() - annee_deb + 1;
				}
				_form.nb_nuit.selectedIndex=1;
			break;
	
			case 'm' :
				_form.jour_arrivee.selectedIndex  = today.getDate();
				_form.annee_arrivee.selectedIndex = today.getFullYear() - annee_deb + 1;
				_form.nb_nuit.selectedIndex=1;
			break;
	
			case 'a' :
				_form.jour_arrivee.selectedIndex  = today.getDate();
				_form.mois_arrivee.selectedIndex  = today.getMonth()+1;
				_form.nb_nuit.selectedIndex=1;
			break;
	
			case 'n' :
				setCurrentDate(_form,today);
		}
	}
	else
	{
	//	var jour=_form.jour_arrivee.selectedIndex;
	//	var mois=_form.mois_arrivee.selectedIndex-1;
	//	var annee=annee_deb + _form.annee_arrivee.selectedIndex-1;

		switch (_field)
		{
			case 'n' : 
				adjustNights(_form);
			break;

			case "j" : 
				if ( ( getCurrentDate(_form).getDate() < today.getDate() )&& 
					( getCurrentDate(_form).getMonth() == today.getMonth() ) )
				{
					var mois_sup=today.getMonth()+2;
					if(mois_sup>12)
					{
						_form.mois_arrivee.selectedIndex = 1;
						_form.annee_arrivee.selectedIndex = _form.annee_arrivee.selectedIndex+1;
					}
					else
					{
						_form.mois_arrivee.selectedIndex = mois_sup;
						_form.annee_arrivee.selectedIndex = today.getFullYear() - annee_deb + 1;
					}

				} 
			break;

			case "m" :
				if ( ( getCurrentDate(_form).getMonth()< today.getMonth() )&& 
					( getCurrentDate(_form).getFullYear() == today.getFullYear() ) ) 
				{
					try 
					{
						_form.annee_arrivee.selectedIndex=_form.annee_arrivee.selectedIndex+1;
					} 
					catch (e) 
					{
						setCurrentDate(_form,removeDays(maxDateOut,1));
					}
				}
			break;
			
			case "y" :
				if ( ( getCurrentDate(_form).getMonth()< today.getMonth() )&& 
					( getCurrentDate(_form).getFullYear() == today.getFullYear() ) )
				{
					try 
					{
						_form.annee_arrivee.selectedIndex=_form.annee_arrivee.selectedIndex+1;
					} 
					catch(e) 
					{
						setCurrentDate(_form,removeDays(maxDateOut,1));
					}
				}
			break;
		} 

	} 

	setCurrentDate(_form,getCurrentDate(_form)); // trnasforme le 31 avril en 1er mai par exemple

	if (getCurrentDate(_form)> maxDateOut)
		setCurrentDate(_form,removeDays(maxDateOut,1));

	if (getCurrentDate(_form)< today)
		setCurrentDate(_form,today);

	adjustNights(_form);
}
			
			
			function lastDayInMonth(_date){
			    var ret = new Date(_date.getFullYear(),getNbDaysMonth(_date.getMonth(),_date.getFullYear()),_date.getDate);
			    return ret;
			}
			
function adjustNights(_form)
{
	if (addDays(getCurrentDate(_form),_form.nb_nuit.selectedIndex) > maxDateOut)
		_form.nb_nuit.selectedIndex = nbDays(getCurrentDate(_form),maxDateOut);
}
			
			
			
function setCurrentDate(_form,_date)
{
	var yearOptions = _form.annee_arrivee.options;	
	if(yearOptions)
	{
		for(var i=0; i<yearOptions.length; i++)
			if(yearOptions[i].value==_date.getFullYear())
				yearOptions[i].selected=true;	
	}

	var monthOptions = _form.mois_arrivee.options;
	if(monthOptions)
	{
		for(var i=0; i<monthOptions.length; i++)
			if(monthOptions[i].value==_date.getMonth()+1)
				monthOptions[i].selected=true;	
	}

	var dayOptions = _form.jour_arrivee.options;
	if(dayOptions)
	{
		for(var i=0; i<dayOptions.length; i++)
			if(dayOptions[i].value==_date.getDate())
				dayOptions[i].selected=true;	
	}
}
			
function getCurrentDate(_form)
{
	try {
		return new Date(_form.annee_arrivee.value, _form.mois_arrivee.selectedIndex-1, _form.jour_arrivee.selectedIndex);
	} 
	catch (e)
	{
		return null;
	}
}
			
			
//Remet les champs jour, mois, annÃ©e d'arrivÃ©e et nbNuits Ã  '-'
function unsetForm(_form) 
{
  	_form.jour_arrivee.selectedIndex=0;
	_form.mois_arrivee.selectedIndex=0;
	_form.annee_arrivee.selectedIndex=0;
	_form.nb_nuit.selectedIndex=0;
}
			
			
			
			
			
function bissextile(annee)
{
	return (annee%4==0 && annee %100!=0 || annee%400==0);
}

//Recuperer le nombre de jours d'un mois
function getNbDaysMonth(_m,_y) 
{
	//Nombre de jours par mois
	var DaysOfMonths = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	// For fevrier only - annee bisextile
	if (bissextile(_y))
		DaysOfMonths[1] =  29;
	else
		DaysOfMonths[1] =  28;
	return DaysOfMonths[_m];
}
			
//Trouver la date date1 + jours
function addDays(_date,jours)
{
	var C_Day 	= _date.getDate() + jours;
	var C_Month = _date.getMonth();
	var C_Year  = _date.getFullYear();
	while ( C_Day > getNbDaysMonth(C_Month,C_Year) ) 
	{
		C_Day	= C_Day - getNbDaysMonth(C_Month,C_Year);
		C_Month++;
		if (C_Month == 12) 
		{
			C_Month = 0;
			C_Year++;
		}
	}
	var outputDate = new Date(C_Year,C_Month,C_Day);
	return outputDate;
}


//Trouver la date date1 - jours
function removeDays(_date,_nbdays)
{
	var C_Day 	= _date.getDate() - _nbdays;
	var C_Month 	= _date.getMonth();
	var C_Year  	= _date.getFullYear();
	while ( C_Day > getNbDaysMonth(C_Month,C_Year) )
	{
		C_Day	= C_Day + getNbDaysMonth(C_Month,C_Year);
		C_Month--;
		if (C_Month == -1)
		{
			C_Month = 11;
			C_Year--;
		}
	}
	var outputDate = new Date(C_Year,C_Month,C_Day);
	return outputDate;
}


//Le nombre de jours entre deux annÃ©es a1 et a2
function nb_jour_annee(a1,a2)
{
	n=0;
	if (a2>a1)
		for (i=a1; i<a2; i++)
		{
			n += 365;
			if (bissextile(i))
				n++;
		}
	return n;
}
//le nombre de jours entre 01/01 et date1 de la meme annÃ©e
function nb_01_01(date1)
{
	nb_mois=new Array(12);
	nb_mois=[0,31,59,90,120,151,181,212,243,273,304,334];
	j=date1.getDate();
	m=date1.getMonth();
	a=date1.getFullYear();
	nb=nb_mois[m]+j-1;
	if (bissextile(a) && m>1)
		nb++;
	return nb;
}
//le nombre de jours entre deux date date1 et date2
function nbDays(date1,date2)
{
	nb=nb_jour_annee(date1.getFullYear(),date2.getFullYear()) - nb_01_01(date1) + nb_01_01(date2);
	return nb;
}
			
/* dateDuJour 
	appelée lors du FOCUS sur le champ de code avantage
*/
function dateDuJour()
{
	if(document.getElementById('jour_arrivee').value== '-' || document.getElementById('mois_arrivee').value== '-' || document.getElementById('annee_arrivee').value== '-')
	{	
		var datedujour, date, mois, an;
		datedujour = new Date();
		date = datedujour.getDate();
		mois = datedujour.getMonth()+1;
		an = datedujour.getFullYear();

		parcoursSelect('jour_arrivee',date);
		parcoursSelect('mois_arrivee',mois);
		parcoursSelect('annee_arrivee',an);
	}    
	if(document.getElementById('nb_nuit').value== '-' ){    
		parcoursSelect('nb_nuit',1);
	}
}
			
function parcoursSelect(nomSelect,val)
{
	var select = document.getElementById(nomSelect);
	for (var i=0;i<select.options.length;i++ )
	{            
		var tmp = select.options[i].value;
		if(tmp == val) 
		{
			select.selectedIndex = i; 
		}           
	}
}





/*
*******************************************home/home.js
*********************************************************** VALIDATION DU FORULAIRE
*/
			
function checkville()
{
	if (document.bookingEngine.nom_ville.value=="" 
		|| document.bookingEngine.nom_ville.value==null 
		|| document.bookingEngine.nom_ville.value=="Ville de destination")
	{
		alert("Veuillez saisir une destination.");
		return;
	}

	if(document.bookingEngine.code_avantage.value=='' 
		|| document.bookingEngine.code_avantage.value==null 
		|| document.bookingEngine.code_avantage.value=="N° de code")
		
	{
		alert('Vous devez saisir votre code avantage.');
		return;
	}

	if(document.bookingEngine.jour_arrivee.selectedIndex == 0 
		|| document.bookingEngine.mois_arrivee.selectedIndex == 0 
		|| document.bookingEngine.annee_arrivee.selectedIndex == 0 
		|| document.bookingEngine.nb_nuit.selectedIndex == 0 
	)
	{
		alert('Vous devez saisir votre date d\'arrivée et la durée de votre séjour.');
		return;
	}
	document.bookingEngine.submit();
}
			 

