[JS]
//les _mon sont au format yyyy-mm
//les _day sont au format dd
function fct_verif_date_form()
{
	//ce sont les champs de mon formulaire
	arrdate_mon = document.getElementById('arrdate_mon').value;
	arrdate_day = document.getElementById('arrdate_day').value;
	depdate_mon = document.getElementById('depdate_mon').value;
	depdate_day = document.getElementById('depdate_day').value;
	//mise au format correcte pour une date yyyy-mm-dd
	date1 = arrdate_mon+'-'+arrdate_day;
	date2 = depdate_mon+'-'+depdate_day;
	
	//si la comparaison dit date1<date2
	if (comparedate(getDate(date1),getDate(date2))==-1)
	{
		//calculer la difference en miliseconde
		diff = getDate(date1).getTime()-getDate(date2).getTime();
		//chercher le nombre de jour
		nombrejour = Math.abs(diff/(3600 * 24 * 1000));
		//si il est superieur ou egale a 20 jour
		if (nombrejour>=20)
		{
			//erreur
			alert ("le nombre de jour de réservation doit être inférieur à 20 jours")
			return false;
		}
		//sinon ok
		else
		{
			return true;
		}
	}
	//si la comparaison dit que date1>date2
	else if (comparedate(getDate(date1),getDate(date2))==1)
	{
		alert ("Les dates ne se suivent pas");
		return false;
	}
	//si la comparaison dit date1 == date2
	else
	{
		alert ("La date est la meme");
		return false;
	}
}

//On suppose que la date entrée a été validée auparavant
//au format yyyy-mm-dd
function getDate(strDate)
{
	//decoupage de la chaine
	year 	= 	strDate.substring(0,4);
	month 	= 	strDate.substring(5,7);
	day 	=	strDate.substring(8,10);
	//mise en forme pour un type date
	d = new Date();
	d.setDate(day);
	d.setMonth(month-1);
	d.setFullYear(year); 
	//retourne la variable
	return d;
}
	  
//Return:
//   0 si date_1=date_2
//   1 si date_1>date_2
//  -1 si date_1<date_2	  
function comparedate(date_1, date_2)
{
	//calcul la difference des date
	diff = date_1.getTime()-date_2.getTime();
	//retourne la valeur
	return (diff==0?diff:diff/Math.abs(diff));
}