var MINYEAR = 2008;
var MAXYEAR = 2009;
var BASEDELTA = 5;
var MINDAYS = 1;
var MAXDAYS = 14;
var HOLIDAYRANGE = [['22/12/2007', '07/01/2008'],['09/02/2008', '10/03/2008'],['05/04/2008', '05/05/2008']];


function getMagDate(value) {
	fields = value.split('-');
	if( fields.length < 3){
		return null;
	}
	return fields[2] + '/' + fields[1] + '/' + fields[0];
}


/**
 * retourne une date formatŽe 
 * apres avoir ajoutŽ un nb de jours defini
 */
function findNextDate(dateStr, amount){
	var debut = getDate(dateStr);
	var finms = debut.getTime() + (amount * 1000 * 60 * 60 * 24);
	var fin   = new Date();
	fin.setTime(finms);
	return formatDate(fin);
}


//defini le nb de jours entre debut et fin
function setNbJours(targetId)
{
	var debut = getDate($('#c1').val()).getTime();
	var fin   = getDate($('#c2').val()).getTime();       
	var intdelta = Math.round((fin - debut) / (1000 * 60 * 60 * 24));
	
	var res   = 1 +  parseInt(intdelta, 10);
	$('#' + targetId).html(res);
}


/**
 * met a jour la date de fin (selecteur et hidden)
 */
function updateStartDate(ddeb){
	$('#c1').val(ddeb);
	var fparts = ddeb.split('/');
	$('#selDay1').selectOptions(parseInt(fparts[0],10));
	$('#selMonth1').selectOptions(fparts[2] + "-" + fparts[1]);
	//setNbJours('dureeSejour');
}


/**
 * met a jour la date de fin (selecteur et hidden)
 */
function updateEndDate(dfin){
	$('#c2').val(dfin);
	var fparts = dfin.split('/');
	$('#selDay2').selectOptions(parseInt(fparts[0],10));
	$('#selMonth2').selectOptions(fparts[2] + "-" + fparts[1]);
	setNbJours('dureeSejour');
}


/**
 * remet a jour la limite du calendrier de fin
 */
function updateEndLimits(){
	var start= $('#c1').val();
	var mini = getDate(findNextDate(start,MINDAYS));
	var maxi = getDate(findNextDate(start,MAXDAYS));
	popUpCal.reconfigureFor($('#c2')[0], {minDate: mini, maxDate: maxi});
}

/**
 * callback utilisé pour flager les dates de vacances
 * @param {Object} d
 */
function isHoliday(d){
	for(i in HOLIDAYRANGE){
		if (d.getTime() >= getDate(HOLIDAYRANGE[i][0]).getTime() && d.getTime() < getDate(HOLIDAYRANGE[i][1]).getTime()){
			return [true, 'on_holiday'];
		}
	}
	return [true,''];
}

