	function validate(date1,date2) {
		
		var nbrNuitsMinimum = 1;
		var nbrNuitsMaximum = 720;
		
		/* nbrJoursDelaisReservation permet de préciser le nombre de jours minimum 
		qu'il faut entre la date du jour et la date d' arrivée de la résa (évite qu' on réserve pour la journée meme) */
		var nbrJoursDelaisReservation = 3;

		var difference = dateDifference(date1,date2);
		
		/* VERIFICATION validité de la date d' arrivé */
		if (isDateValid(date1) == false) {
			if(language == 'fr') {
				alert("la date d' arrivée n' est pas bonne, vérifiez la date d' arrivée (le format, jj/mm/aaaa, est important. Example : la date 25/12/2006 est correcte)");
			} else if (language == 'en') {
				alert("Arrival date is not correct, Please check it (the format, mm/dd/yyyy, is important. Exemple : the date 12/25/2006 is the right format)");
			}
			 else if (language == 'it') {
				alert("La data d'arrivo è inesatta. La preghiamo di ricontrollare (si ricorda di inserire la data secondo lo schema: gg/mm/aaaa. Esempio: la data 25/12/2006 è inserita correttamente).");
			}
			 else if (language == 'de') {
				alert("Arrival date is not correct, Please check it (the format, mm/dd/aaaa, is important. Exemple : the date 12/25/2006 is the right format)");
			}
			 else if (language == 'es') {
				alert("Arrival date is not correct, Please check it (the format, mm/dd/aaaa, is important. Exemple : the date 12/25/2006 is the right format)");
			}
			return false;
		}
		
		/* VERIFICATION validité de la date de départ */
		if (isDateValid(date2) == false) {
			if(language == 'fr') {
				alert("la date de départ n' est pas bonne, vérifiez la date d' arrivée (le format, jj/mm/aaaa, est important. Example : la date 25/12/2006 est correcte)");
			} else if (language == 'en') {
				alert("Departure date is not correct, Please check it (the format, mm/dd/yyyy, is important. Exemple : the date 12/25/2006 is the right format)");
			}
			 else if (language == 'it') {
				alert("La data della partenza è inesatta. La preghiamo di ricontrollare.)");
			}
			 else if (language == 'de') {
				alert("Departure date is not correct, Please check it (the format, mm/dd/aaaa, is important. Exemple : the date 12/25/2006 is the right format)");
			}
			 else if (language == 'es') {
				alert("Departure date is not correct, Please check it (the format, mm/dd/aaaa, is important. Exemple : the date 12/25/2006 is the right format)");
			}
			return false;
		}
		
		/* VERIFICATION : Le jour de départ doit etre supérieur ou égal au jour d' arrivée */
		if(difference <= 0) {
		   if(language == 'fr') {
				alert("Merci de vérifier vos dates de séjour");   
		   } else if (language == 'en'){
				alert("please check your departure and arrival dates");   
		   }
		    else if (language == 'it'){
				alert("La preghiamo di verificare le date d'arrivo e di partenza.");   
		   }		
		    else if (language == 'de'){
				alert("please check your departure and arrival dates");   
		   }		
		    else if (language == 'es'){
				alert("please check your departure and arrival dates");   
		   }
		   return false;
		}
		
		/* Le jour d' arrivée est inférieur au jour en cours */
		var dateDuJour = new Date ();
		dateDuJour = formatageDate(dateDuJour);
		
		// Il faut convertir l'année de 4 chiffres vers 2 chiffres pour que la vérification fonctionne (uniquement date2 car c'est la date de l'utilisateur)
		var ladate = (date1).split("/");
		var anneeSurDeuxChiffres = eval (ladate[2].substr (2,4));
		var mois = ladate[0];
		var jours = ladate[1];
		date1 = mois + "/" + jours + "/" + anneeSurDeuxChiffres;
		
		
		//alert("date du jour : " + dateDuJour);
		//alert("date d'arrivée : " + date1);
		var differenceArriveeAujourdhui = dateDifference (dateDuJour, date1);
		//alert ("différence entre les deux : " + differenceArriveeAujourdhui);
		if (differenceArriveeAujourdhui < nbrJoursDelaisReservation) {
		   if(language == 'fr') {
				alert("Pour une arrivée immédiate dans moins de 72 heures, \n merci de nous contacter au +33 1 56 89 31 00 - email info@rentapart.com ");   
		   } else if (language == 'en'){
				alert("For an immediate arrival in less than 72 hours,\n please call us at +33 1 56 89 31 00 or Email info@rentapart.com ");   
		   }
			else if (language == 'it'){
				alert("Per un arrivo immediato in più meno di 72 ore, \n chiama +33 1 56 89 31 00 - email info@rentapart.com ");   
		   }		
			else if (language == 'de'){
				alert("please check your departure and arrival dates");   
		   }		
			else if (language == 'es'){
				alert("please check your departure and arrival dates");   
		   }
		   return false;
		}
		/* FONCTIONALITE "MISE EN BERNE" le 01/11/2005
		Simplement décommenter ce bloque pour la réactiver. Celle ci permet de forcer un nombre de jours
		minimum entre la date d'arrivée et de départ.
		if (difference < nbrNuitsMinimum) {
			if(language == 'fr') {
				alert("Le nombre de nuits doit etre de " + nbrNuitsMinimum + " au minimum");   
		   } else if (language == 'en'){
				alert("Number of nights must be a minimum of " + nbrNuitsMinimum);
		   }	
		   else if (language == 'it'){
				alert("Il soggiorno minimo è di notti  " + nbrNuitsMinimum);
		   }		
		   else if (language == 'de'){
				alert("Number of nights must be a minimum of " + nbrNuitsMinimum);
		   }		
		   else if (language == 'es'){
				alert("Number of nights must be a minimum of " + nbrNuitsMinimum);
		   }		
			return false;
		} */ 
		else if (difference > nbrNuitsMaximum) {
			if(language == 'fr') {
				alert("Le nombre de nuits doit etre de " + nbrNuitsMaximum + " au maximum");   
		   } else if (language == 'en'){
				alert("Number of nights must be a maximum of " + nbrNuitsMaximum);
		   }	
		    else if (language == 'it'){
				alert("Il soggiorno massimo è di notti " + nbrNuitsMaximum);
		   }	
		    else if (language == 'de'){
				alert("Number of nights must be a maximum of " + nbrNuitsMaximum);
		   }	
		    else if (language == 'es'){
				alert("Number of nights must be a maximum of " + nbrNuitsMaximum);
		   }	
			return false;
		}

		return true;
	}
	
	/* fonctions date de javascript qui changent selon le navigateur ! impossible de leur faire "confiance", il faut vérifier la date sur le serveur ! */
	
	function formatageDate(dateDuJour) {
		/* print date as:  26/08/1900 
		*/

		 var hit = dateDuJour;   //  instantiation of the date() constructor 
		 var year = hit.getYear();           // year (2 or 4 digits)
		 
		 /* WARNING : internet explorer et firefox ne gèrent pas de la meme manière les années. Je choisis donc de ne conserver que les
		 2 derniers caractères.
		 donc : je transforme l' entier correspondant a l'année en string et je récupère les deux derniers chiffres */
		 year = year.toString();
	     var longueurDeChaineAnnee = year.length;
		 year = year.substr (longueurDeChaineAnnee - 2,longueurDeChaineAnnee);

		 month=hit.getMonth()+1;        // month (counted from 0) 
		 if (month<10) month="0"+month; // month=01 if month<10 
		 daym=hit.getDate();            // day in the month
		 if (daym<10) daym="0"+daym;    // daym=01 if day=1
		 
		 if (language == 'en') {
		 	maDate = month+"/"+ daym  +"/"+ year;
		 } else {
			maDate = daym +"/"+ month +"/"+ year;
		 }
		 
		 return maDate;
	}
	
	function dateDifference(date1,date2) {
		
		//var date1 = document.dateSejour.valeurDateArrivee.value;
		//var date2 = document.dateSejour.valeurDateDepart.value;
		if (language != 'en') {
			date1 = dateEn(date1);
			date2 = dateEn(date2);
		}
		
		var parsedDate1 = Date.parse(date1);
		var parsedDate2 = Date.parse(date2);
		
		//Set 1 day in milliseconds
		var one_day=1000*60*60*24

		//Calculate difference btw the two dates, and convert to days
		var difference = Math.ceil((parsedDate2 - parsedDate1)/(one_day));
		
		//alert ("difference = " + difference);
		return difference; 
	}
	
	function dateEn(date) {
		var dateSplited = date.split("/")
		var jour = dateSplited[0];
		var mois = dateSplited[1];
		var annee = dateSplited[2];
		return  mois + "/" + jour + "/" + annee;
	}
	
	/* A partir de la chaine saisie par l'utilisateur, vérifie que cette chaine contient bien une date en créant une date javascript */
	function isDateValid(chaineDate) {

		// verification chaine vide
		   if (chaineDate == "") return false;
		
		// Jattends bien sûr une date formatée en JJ/MM/AA pour tout les pays ou MM/JJ/AAAA pour l'anglais international
		   var ladate = (chaineDate).split("/");
		   
		// verification 3 elements dans tableau, et ces elements sont des entiers
		   if ((ladate.length != 3) || isNaN(parseInt(ladate[0])) || isNaN(parseInt(ladate[1])) || isNaN(parseInt(ladate[2]))){
				return false;   
		   }
		  
		  // Si l'on a pas 4 chiffres pour l'année, renvoyer false
		  if (ladate [2].length != 4) {
			 return false;
		  } 
				
		// creation de la nouvelle date qui va permettre la comparaison avec l ancienne.
		   if (language == "en") {
		   		
				// Sinon, ne conserver que les 2 derniers chiffres de l'année et créer une nouvelle date javascript
			  	var anneeSurDeuxChiffres = eval (ladate[2].substr (2,4));
				var unedate = new Date(anneeSurDeuxChiffres, eval(ladate[0]-1), eval(ladate[1])); //mm/jj/aa
				
				//alert(chaineDate);
				//var unedate = new Date(eval(ladate[2]),eval(ladate[1])-1,eval(ladate[0]));
				//alert("une date = " + unedate);
		   } else {
		  	    var anneeSurDeuxChiffres = eval (ladate[2].substr (2,4));
		   		var unedate = new Date(anneeSurDeuxChiffres,eval(ladate[1])-1,eval(ladate[0])); //jj/mm/aa
				//alert("une date = " + unedate);
		   }
		   

		// Bug de l an 2000 oblige, lorsque je récupère l'année, je n'ai pas toujours 4 chiffres selon les navigateurs, je rectifie donc ici le tir.
		   var annee = unedate.getYear();
		   /*if ((Math.abs(annee)+"").length < 4){
			   annee = annee + 2000;
			   alert("zarb" +  annee);
		   }*/
   		   

		// Il ne reste plus qu'à vérifier si le jour, le mois et l'année obtenus sont les mêmes que ceux saisis par l'utilisateur.
		   if (language == "en") {
	   		  		var anneeSurDeuxChiffres = eval (ladate[2].substr (2,4));
					/*alert("jour = " + unedate.getDate() + " est egal a " + eval(ladate[1]));
					alert("annee = " + annee + " == " + anneeSurDeuxChiffres);
					alert("mois = " + unedate.getMonth());
					alert("mois = " + eval(ladate[0]-1));*/
				return ((unedate.getDate() == eval(ladate[1])) && (unedate.getMonth() == eval(ladate[0])-1) && (annee == anneeSurDeuxChiffres));
		   } else {
		   		var anneeSurDeuxChiffres = eval (ladate[2].substr (2,4));
					/*alert(unedate.getDate() + " == " + eval(ladate[0]));
					alert(annee + " == " + anneeSurDeuxChiffres);
					alert(unedate.getMonth());
					alert(eval(ladate[1])-1);*/
			   	return ((unedate.getDate() == eval(ladate[0])) && (unedate.getMonth() == eval(ladate[1])-1) && (annee == anneeSurDeuxChiffres));
		   }
	}
