function validateVol(form){								
	var alerte = "";

	if ( isFieldEmpty(form.villeArrivee) )
		alerte += "Veuillez choisir une ville d'arrivée pour le vol aller.\n";

	cleanDate(form.departureDate);
	cleanDate(form.returnDate);

	if ( isFieldEmpty(form.departureDate) || !isGivenDateValid(form.departureDate.value) )
		alerte += "Merci de saisir votre date de départ en respectant le format suivant : jj/mm/aaaa, par exemple 11/07/2010.\n";

	if ( getRadioValue("onewayswitch") == 0 )
	{
		if ( isFieldEmpty(form.returnDate) || !isGivenDateValid(form.returnDate.value) )
			alerte += "Merci de saisir votre date de retour en respectant le format suivant : jj/mm/aaaa, par exemple 11/07/2010.\n";
	}

	if ( getSelectValue(form.pax) == 0 )
	{
		if ( getSelectValue(form.pax_inf) > 0 )
			alerte += "Vous n'êtes pas autorisé à faire voyager un bébé seul.\n";
		if ( getSelectValue(form.pax_chd) > 0 )
			alerte += "Vous n'êtes pas autorisé à faire voyager un enfant seul.\n";
	}
	else if ( getSelectValue(form.pax) < getSelectValue(form.pax_inf) )
		alerte += "Vous n'êtes pas autorisé à voyager avec plus d'un bébé par adulte.\n";

	var dateDepart = createDate(form.departureDate.value);
	var dateRetour = createDate(form.returnDate.value);
	var now = new Date();
	if ( !validateADate(dateDepart, now , null) )
		result = false;
	if( now > dateRetour )
		alerte += "Votre date de retour doit être postérieure à la date d'aujourd'hui\n";
	else if ( dateDepart > dateRetour )
		alerte += "La date de départ doit être inférieure à la date de retour.\n";
	document.getElementById("dayDepart").value = getDay(form.departureDate.value);
	document.getElementById("monthDepart").value = getMonthYear(form.departureDate.value);
	document.getElementById("dayReturn").value = getDay(form.returnDate.value);
	document.getElementById("monthReturn").value = getMonthYear(form.returnDate.value);
	
	if ( alerte != "")
		alert(alerte);
	return (alerte == "");
}
function getValue(field){
	// get field's value
    if (field.type == "select-one") {
        return getSelectedOption(field).value;
    }
    else if (field.type == "radio" || field.type == "checkbox" ) 
    {
    var valuesList = document.getElementsByName(field.name);
    	for ( i = 0;i < valuesList.length; i++ )
		{
		if(valuesList[i].checked)
			return valuesList[i].value;
		}
    }
    else {
        return field.value;
    }
}
function getRadioValue(name)
{
	var valuesList = document.getElementsByName(name);
    	for ( i = 0; i < valuesList.length; i++ )
		{
		if(valuesList[i].checked)
			return valuesList[i].value;
		}
	return null;
}
function getSelectedOption(select){
	return select.options[select.selectedIndex];
}
function getSelectValue(select){
	return getSelectedOption(select).value;
}
function isFieldEmpty(input){
	if(getValue(input) == null || getValue(input) == ""){
		return true;
	}
	return false;
}
function setBlank (obj) {
	cleanObject(obj, '(jj/mm/aaaa)');
}
function cleanDate(obj){
	cleanObject(obj, '(jj/mm/aaaa)');
}

function cleanObject(obj, value){
	setBlankWithValue(obj, value );
} 
function setBlankWithValue(obj, value ){
	if(obj.value == value){
		obj.value = '' ;
	}
}
function isGivenDateValid(str){
	if(str == null || str == ""){
		return true;
	}
	var dateRegexp = new RegExp("^(\\d{2})[/](\\d{2})[/](\\d{4})$");
	return (dateRegexp.exec(str) != null);
}
function getSelectedOption(select){
	return select.options[select.selectedIndex];
}
/*Get the dd/mm/yyyy day*/
function getDay(dateStr){
	return dateStr.substring(0, 2);
}
/*Get the dd/mm/yyyy MM-YYYY*/
function getMonthYear(dateStr){
	return dateStr.substring(3, 5) + "-" + dateStr.substring(6, 10);
}
function createDate(dateStr){
	var str = dateStr.split("/");
	var in_date = new Date(str[2],str[1]-1,str[0]);
	return in_date;
}
function validateADate(date, now, offset){
 	   	var l_offset = offset;
    	if(offset == null){
    		l_offset = 0;
    	}
	if(date < now){
		alert("La date de départ doit être supérieure à la date du jour.");
		return false;
	} else if(date < (now + l_offset)){
		alert("La date de départ doit être supérieure d'au moins 0 jours de la date du jour.");
		return false;
	}
	return true;
}
/* Met une date par défaut (date du jour + 4 jours) */
function setDefaultDateDepart (){
	var date = addDay(new Date(),4);
	$('vols_form').departureDate.value=formatDate(date);
}
/* Met une date par défaut (date depart + 7 jours) */
function setDefaultDateRetour () {
	var aller = $('vols_form').departureDate.value;
	var aller_date = createDate(aller);
	var date = addDay(aller_date,7);
	$('vols_form').returnDate.value=formatDate(date);
}
/** retourne un objet date */
function getDate () {
    return new Date();
}
										
/* ajoute un nombre de jour ? la date */
function addDay(date,dayToAdd) {
    var toAdd = date.getDate() + dayToAdd;																						
	date.setDate(toAdd);																														
	return date;											
}
/* format une date au format dd/MM/yyyy */
function formatDate(date) {
    var jour = date;
  	var annee = jour.getYear();
  	
  	/* depend du navigateur sur lequel on se trouve */
  	if(annee < 120)
	    annee+=1900;								
	    			
  	return complete(jour.getDate()) + "/" + complete(jour.getMonth()+1) + "/" + annee;
}
function createDate(dateStr){
	var str = dateStr.split("/");
	var in_date = new Date(str[2],str[1]-1,str[0]);
	return in_date;
}
/* met un "0" devant un nombre si inf?rieur ? 10 */
function complete(nombre) {
    return ((nombre <= 9) ? "0" : "") + nombre;
}
