function valider(formulaire) {

if (formulaire.name.value == "")
{
formulaire.name.focus();
alert("Please enter your name.");
return(false);
}

if (formulaire.address.value == "")
{
formulaire.address.focus();
alert("Please enter your address.");
return(false);
}

Pattern0 = /[^0-9]/
Pattern1 = /[^--z]/
Pattern2 = /[^ -9]/
Pattern3 = /[@]/
Pattern4 = /[.]/

if (Pattern1.test(document.formulaire.email.value) || Pattern3.test(document.formulaire.email.value) == false || Pattern4.test(document.formulaire.email.value) == false)
{
        alert("Please enter your email.");
        formulaire.email.focus();
	return false;
}


if (formulaire.phone.value == "")
{
formulaire.phone.focus();
alert("Please enter your phone number.");
return(false);
}
else
{
	if (Pattern2.test(formulaire.phone.value))
	{
		formulaire.phone.focus();
		alert("Please enter a valid phone number.");
		return(false);
	}
}

if (Pattern1.test(document.formulaire.email.value) || Pattern3.test(document.formulaire.email.value) == false || Pattern4.test(document.formulaire.email.value) == false)
{
        alert("Please enter a valid Email address.");
        formulaire.email.focus();
	return false;
}

	var jourNow = 29;
	var moisNow = 6;
	
	var anNow = 2004;
	var jourDebut = 30;
	var moisDebut = 12;
	var anDebut = 99;
	var jourFin = 30;
	var moisFin = 12;
	var anFin = 99;
	var anArrive = formulaire.arriverAnnee.value;
	var moisArrive = formulaire.arriverMois[formulaire.arriverMois.selectedIndex].value;
	var jourArrive = formulaire.arriverJour[formulaire.arriverJour.selectedIndex].value;

	var anDepart = formulaire.departAnnee.value;
	var moisDepart = formulaire.departMois[formulaire.departMois.selectedIndex].value;
	var jourDepart = formulaire.departJour[formulaire.departJour.selectedIndex].value;
	if ((anArrive == "0") || (anArrive == "") || (Pattern0.test(anArrive)))
	{
		alert("Please enter your arrival date.");
		formulaire.arriverAnnee.focus();
		return false;
	}
	if ((anDepart == "0") || (anDepart == "") || (Pattern0.test(anDepart)))
	{
		alert("Please enter your departure date.");
		formulaire.departAnnee.focus();
		return false;
	}
	if ((((eval(anArrive) + 2000) * 10000) + (eval(moisArrive) * 100) + eval(jourArrive)) < ((anNow * 10000) + (moisNow * 100) +jourNow))
	{
		alert("Please enter an arrival date equal or greater than now."); 		
		formulaire.arriverAnnee.focus();
		return false;
	}
	if ((((eval(anDepart) + 2000) * 10000) + (eval(moisDepart) * 100) + eval(jourDepart)) < (((eval(anArrive) + 2000) * 10000) + (eval(moisArrive) * 100) + eval(jourArrive)))
	{
		alert("Please enter a departure date greater than your arrival date."); 		
		formulaire.departAnnee.focus();
		return false;
	}
	if (((moisArrive == "04") || (moisArrive == "06") || (moisArrive == "09") || (moisArrive == "11")) && (eval(jourArrive) > 30))
	{
		alert("There is only 30 days in the month that you select for your arrival date.");
		formulaire.arriverJour.value = "30";
		formulaire.arriverJour.focus();
		return false;	
	}
	if (((moisDepart == "04") || (moisDepart == "06") || (moisDepart == "09") || (moisDepart == "11")) && (eval(jourDepart) > 30))
	{
		alert("There is only 30 days in the month that you select for your departure date.");
		formulaire.departJour.value = "30";
		formulaire.departJour.focus();
		return false;	
	}	
	if ((moisArrive == "02") && (eval(jourArrive) > 28))
	{
		if (eval(anArrive)%4 == 0)
		{
			if (eval(jourArrive) > 29)
			{
				alert("There is only 29 days in the month that you select for your arrival date.");
				formulaire.arriverJour.value = "29";
				formulaire.arriverJour.focus();
				return false;	
			}
		}
		else
		{
			alert("There is only 28 days in the month that you select for your arrival date");
			formulaire.arriverJour.value = "28";
			formulaire.arriverJour.focus();
			return false;				
		}
	}
	if ((moisDepart == "02") && (eval(jourDepart) > 28))
	{
		if (eval(anDepart)%4 == 0)
		{
			if (eval(jourDepart) > 29)
			{
				alert("There is only 29 days in the month that you select for your departure date.");
				formulaire.departJour.value = "29";
				formulaire.departJour.focus();
				return false;	
			}
		}
		else
		{
			alert("There is only 28 days in the month that you select for your departure date");
			formulaire.departJour.value = "28";
			formulaire.departJour.focus();
			return false;
		}
	}
	testLongeur = new String(anArrive);
	if (testLongeur.length == 1)
		formulaire.arriverAnnee.value = "0" + formulaire.arriverAnnee.value;
	testLongeur = anDepart;
	if (testLongeur.length == 1)
		formulaire.departAnnee.value = "0" + formulaire.departAnnee.value;	


	formulaire.txtDateArrivee.value = moisArrive +"/"+ jourArrive +"/"+ "20" + formulaire.arriverAnnee.value +"";
	formulaire.txtDateDepart.value = moisDepart +"/"+ jourDepart +"/"+ "20" + formulaire.departAnnee.value +"";


	if (formulaire.txtDateArrivee.value == formulaire.txtDateDepart.value)
	{
		alert("Your arrival date must be different from your departure date.");
		formulaire.departAnnee.focus();
		return false;
	}

if (formulaire.n_pers.value == "")
{
formulaire.n_pers.focus();
alert("Please enter the number of persons.");
return(false);
}
else
{
	if (Pattern0.test(formulaire.n_pers.value))
	{
		formulaire.n_pers.focus();
		alert("Please enter digits for number of persons.");
		return(false);
	}
}

if (formulaire.n_ch.value == "")
{
formulaire.n_ch.focus();
alert("Please enter the number of rooms.");
return(false);
}
else
{
	if (Pattern0.test(formulaire.n_ch.value))
	{
		formulaire.n_ch.focus();
		alert("Please enter digits for number of rooms.");
		return(false);
	}
}

if (formulaire.n_lits.value == "")
{
formulaire.n_lits.focus();
alert("Please enter the number of beds.");
return(false);
}
else
{
	if (Pattern0.test(formulaire.n_lits.value))
	{
		formulaire.n_lits.focus();
		alert("Please enter digits for number of beds.");
		return(false);
	}
}

if ((!formulaire.fumeur[0].checked) && (!formulaire.fumeur[1].checked))
{
formulaire.fumeur[0].focus();
alert("Please choose a room type.");
return(false);
}

return(true);

}
