/* 
 * Activer des calendrier javascript sur les combobox de sélection de date.
 * Comme le calendrier de jquery ne semble fonctionner qu'avec des input
 * il faut en ajouter un qui sera désactivé et caché par CSS
 * (mais sans cacher l'image du calendrier!)
 */

function getSearchDate(control){
	return new Date($("#"+control+"-year").val(),$("#"+control+"-month").val(),$("#"+control+"-day").val());
}

function setSearchDate(control,date){
	$("#"+control+"-year").val(date.getFullYear());
	$("#"+control+"-month").val(date.getMonth());
	$("#"+control+"-day").val(date.getDate());
}

function initSearchCalendar(basearrivee,basedepart){
	
	/*Nécessite la présence d'un input d'id datepicker-arrivee*/
	$("#datepicker-"+basearrivee).datepicker({
		showOn: "button",
		buttonImage: "/img/www/calendar.gif",
		buttonImageOnly: true ,
		minDate: +0,
		beforeShow: function(input){
			return {defaultDate: getSearchDate(basearrivee)};
		},
		onSelect: function(dateText){
			var arrivee=getSearchDate(basearrivee);
			var depart=getSearchDate(basedepart);
			var date=$("#datepicker-"+basearrivee).datepicker("getDate");
			setSearchDate(basearrivee,date);
			//pour garder le même interval de temps quand on change le départ
			setSearchDate(basedepart,new Date(date.getTime()+depart.getTime()-arrivee.getTime()));
			$("#datepicker-"+basearrivee).datepicker("hide");
			
			changeDateDepart();
		}
	});
	
	/*Nécessite la présence d'un input d'id datepicker-depart*/
	$("#datepicker-"+basedepart).datepicker({
		showOn: "button",
		buttonImage: "/img/www/calendar.gif",
		buttonImageOnly: true ,
		minDate: +0,
		beforeShow: function(input){
			return {defaultDate: getSearchDate(basedepart)};
		},
		onSelect: function(dateText){
			setSearchDate(basedepart,$("#datepicker-"+basedepart).datepicker("getDate"));
			$("#datepicker-"+basearrivee).datepicker("hide");
		}
	});
	
}

function formatDateToString(date){
	
	var day = date.getDate();
	if(day < 10){
		day = "0" + day;
	}
	var month = date.getMonth() + 1;
	if(month < 10){
		month = "0" + month;
	}
	var year = date.getFullYear();
	
	return day + "/" + month + "/" + year;
}

function setDateDepart(duree){
	
	var date_arrivee = getSearchDate("arrivee");
	var depart= new Date(date_arrivee.getTime()+(duree * 86400000));
	document.getElementById("date_depart").innerHTML=formatDateToString(depart);
}

function changeDateDepart(){
	
	var duree = document.getElementById("duree_sejour").value;
	var date_arrivee = getSearchDate("arrivee");
	var depart= new Date(date_arrivee.getTime()+(duree * 86400000));
	document.getElementById("date_depart").innerHTML=formatDateToString(depart);
}

