/*
* Author : jfparis@softvoyage.com
* Last Modif :
*  - Prend en charge des drop down pour les annees.
*/

//
// Declaration de variables
//
var nbDay = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var arrBi = new Array(2004, 2008, 2012, 2016);

var oneMinute = 60 * 1000  // milliseconds in a minute
var oneHour = oneMinute * 60
var oneDay = oneHour * 24
var oneWeek = oneDay * 7
var oneYear = oneDay * 365

/*
* Fonction pour les drops down
* Comprend
*  - modifyDateDropDown
*  - afficheDropDown
*  - setValideDateDropDown
*/


function modifyDateDropDown(maform, flagAnnee)
{

/* removed by SS - Nov 06,2006
	var datems;
*/

	var dep_day   = maform.departure_day.value;
	var dep_month = maform.departure_month.value - 1;
	var dep_year  = maform.departure_year.value;

	var curdate = new Date();
	var year_ahead = new Date(curdate.getTime() + oneYear)

	var dep_date = new Date(dep_year,dep_month,dep_day);
	if( dep_date.getTime() <= curdate.getTime() ) {
		dep_date.setTime( dep_date.getTime() + oneYear );
	}	else if( dep_date.getTime() > year_ahead.getTime() ) {
		dep_date.setTime( dep_date.getTime() - oneYear );
	}
	maform.departure_year.value = dep_date.getFullYear();

/* removed by SS - Nov 06,2006
	if(flagAnnee != undefined)
	{
		//alert(flagAnnee);
		var dep_year  = maform.departure_year.value;
		var date1 = new Date(dep_year,dep_month,dep_day);
	} 
	else
	{
		var date1 = new Date(new Date().getFullYear(),dep_month,dep_day);
	}

	datems = date1.getTime();
	// Modif pour le changement dheure. 29 juillet jfparis
	datems = datems + 604800000 + 3600000;
	var date2 = new Date(datems);
*/

	if( maform.return_month != undefined ) {
		var date2 = new Date()
		date2.setTime(dep_date.getTime() + oneDay*8)
	
		var date2Day = date2.getDate();
		var date2Month = date2.getMonth();
		var date2Year = date2.getFullYear();

		maform.return_month.selectedIndex = date2Month+1;
		maform.return_day.selectedIndex = date2Day - 1;
		maform.return_year.value = date2Year;
	}
}


/**
* Function pour les changements de dates avec textBox
* Comprend
*  - modifyDateTextBox
*  - validateDateTextBox
*  - afficheTextBox
*/
function modifyDateTextBox(maForm) {
	var arrDate = maForm.date_dep.value.split("/");

	var year = arrDate[0];
	var month = arrDate[1];
	var day = arrDate[2];
	
	if(day.indexOf(0) == "0")
		day = day.substr(1,2);

	if(month.indexOf(0) == "0")
		month = month.substr(1,2);


	var array = validateDateTextBox(maForm, year, month, day);
	day = array[0];
	month = array[1];
	year = array[2];


	if ((parseInt(day) + 7) > nbDay[parseInt(month)-1]) {
		var temp = parseInt(day) + 7;
		dayRetour = temp - nbDay[parseInt(month)-1];
		monthRetour = parseInt(month)+1;
	} else {
		dayRetour = parseInt(day) + 7;
		monthRetour = parseInt(month);
	}

	if(monthRetour > 12) {
		monthRetour = 1;
		yearRetour = parseInt(year) + 1;
		//alert(yearRetour);
	} else
		yearRetour = year;
	maForm.date_ret.value = afficheTextBox(dayRetour, monthRetour, yearRetour);
}

function afficheTextBox(day, month, year) {
	year = parseInt(year);
	month = parseInt(month);
	day = parseInt(day);

	var str = year + "/";
	
	if(month < 10)
		str += "0";
	str += month;
	str += "/";

	if(day < 10)
		str += "0";
	str += day;
	return str;
}

function validateDateTextBox(maForm, year, month, day) {
	var currentDate = new Date();

	if(year == "" || month == "" || day == "") {
		maForm.date_dep.value = currentDate.getFullYear() + "/" + (currentDate.getMonth()+1) + "/" + currentDate.getDate();
		return;
	}

	if(isNaN(day) || isNaN(month) || isNaN(year)) {
		maForm.date_dep.value = currentDate.getFullYear() + "/" + (currentDate.getMonth()+1) + "/" + currentDate.getDate();
		return;
	}

	if(day > nbDay[month-1])
		day = setValideDateDropDown(month, day);

	if(month > 12 || month < 1)
		month = currentDate.getMonth() + 1;

	if(year > (currentDate.getFullYear()+1) || year < currentDate.getFullYear()) {
		year = currentDate.getFullYear();
	}

	var tab = new Array(day, month, year);
	return tab;	
}
