/*
 *	MODULE FORMULAIRE
 */			

/* Controle que le champ est bien renseigne */ 
function Formulaire_conforme(pSValeur, pSMsg) {

	if(pSValeur.value == 0) {
		pSValeur.focus();					
		alert(pSMsg);
		return false;
	}
	return true;		
}

/* Controle qu'au moins une case est cochee */
function Case_cocher_conforme(pSValeur, pSMsg) {

	if(pSValeur[0].checked == false && pSValeur[1].checked == false) {	
		alert(pSMsg);
		return false;
	}
	return true;		
}

/* Controle que la case est cochee */
function Case_cocher_unique_conforme(pSValeur) {

	if(pSValeur.checked == false) {	
		return false;
	}
	return true;		
}

function Entier_conforme(pSValeur, pSMsg) {

	if (pSValeur.value != "") {
	
		if (isNaN(pSValeur.value) == true) {
			alert("Veuillez entrer " + pSMsg + " conforme");
			return false;
		}	
		return true; 	
	}
}

/* teste la validité d'une adresse e-mail */
function Mail_conforme(pSMail){

	if(pSMail.value.length == 0)
		return true;

   // l'adresse minimum est xx@yy.zz
   var point=pSMail.value.lastIndexOf('.');

   // La position du dernier point de l'adresse email
   var arob=pSMail.value.lastIndexOf('@');

   // La position du dernier @ de l'adresse email
   var longu=pSMail.value.length;

 // La longueur de l'adresse
 if((longu-point < 3) || (longu-arob) < 6 || arob > point || point == -1 || arob == -1) {
   // Si le point se trouve a moins de 2 caractères de la fin
   // ou si l'arobase se trouve a moins de 5 caractères de la fin
   // ou si il n'y a pas de point après @
   // ou si il n'y a pas de point ou pas de @
   pSMail.focus();
   alert('Veuillez entrer une adresse email valide');
   return false;
 }
 else
   return true;
}

/*
 *	MODULE NEWSLETTER
 */
 
function Verif_newsletter() {

	if (Formulaire_conforme(document.formulaire_newsletter.ins_email, "Veuillez entrer un eMail !"))
		return (Mail_conforme(document.formulaire_newsletter.ins_email))	

	return false;
}	

function Verif_newsletter_2() {	

	if (!Case_cocher_unique_conforme(document.formulaire.ins_particulier) && !Case_cocher_unique_conforme(document.formulaire.ins_professionnel)) {
		alert("Veuillez sélectionner une catégorie");
		return false;
	}		
	return true;	
}

/*
 *	MODULE CONTACTEZ NOUS
 */
 
function Verif_contactez() {

	if (Formulaire_conforme(document.formulaire.con_nom, "Veuillez entrer un nom !"))
		if (Formulaire_conforme(document.formulaire.con_prenom, "Veuillez entrer un prénom !"))
			if (Formulaire_conforme(document.formulaire.con_adresse, "Veuillez entrer une adresse !"))
				if (Formulaire_conforme(document.formulaire.con_codepostal, "Veuillez entrer un code postal !"))
					if(Entier_conforme(document.formulaire.con_codepostal, "un code postal"))								
						if (Formulaire_conforme(document.formulaire.con_ville, "Veuillez entrer une ville !"))
							if (Formulaire_conforme(document.formulaire.con_email, "Veuillez entrer un eMail !"))
								if (Mail_conforme(document.formulaire.con_email))
									return (Formulaire_conforme(document.formulaire.con_remarques, "Veuillez entrer des remarques !"))
	return false;
}

/*
 *	MODULE RESERVER
 */
 
function Verif_reserver() {

	if (Formulaire_conforme(document.formulaire.res_nom, "Veuillez entrer un nom !"))
		if (Formulaire_conforme(document.formulaire.res_prenom, "Veuillez entrer un prénom !"))
			if (Formulaire_conforme(document.formulaire.res_adresse, "Veuillez entrer une adresse !"))
				if (Formulaire_conforme(document.formulaire.res_codepostal, "Veuillez entrer un code postal !"))
					if(Entier_conforme(document.formulaire.res_codepostal, "un code postal"))
						if (Formulaire_conforme(document.formulaire.res_ville, "Veuillez entrer une ville !"))
							if (Formulaire_conforme(document.formulaire.res_telephone, "Veuillez entrer un n° de téléphone !"))					
								if(Mail_conforme(document.formulaire.res_email))
									if (Formulaire_conforme(document.formulaire.res_pays, "Veuillez entrer un pays !"))
										if (Formulaire_conforme(document.formulaire.res_jour_fin, "Veuillez entrer un jour de début de réservation !"))
											if (Formulaire_conforme(document.formulaire.res_mois_fin, "Veuillez entrer un mois de début de réservation !"))
												if (Formulaire_conforme(document.formulaire.res_annee_fin, "Veuillez entrer une année de début de réservation !"))											
													if(Date_conforme(document.formulaire.res_jour_deb, document.formulaire.res_mois_deb, document.formulaire.res_annee_deb, "Date de début de réservation "))																						
														if(Date_coherente(document.formulaire.res_jour_deb, document.formulaire.res_mois_deb, document.formulaire.res_annee_deb, "La date de début de réservation "))																										
															if (Formulaire_conforme(document.formulaire.res_jour_fin, "Veuillez entrer un jour de fin de réservation !"))
																if (Formulaire_conforme(document.formulaire.res_mois_fin, "Veuillez entrer un mois de fin de réservation !"))
																	if (Formulaire_conforme(document.formulaire.res_annee_fin, "Veuillez entrer une année de fin de réservation !"))																																
																		if(Date_conforme(document.formulaire.res_jour_fin, document.formulaire.res_mois_fin, document.formulaire.res_annee_fin, "Date de fin de réservation "))																	
																			if(Date_coherente(document.formulaire.res_jour_fin, document.formulaire.res_mois_fin, document.formulaire.res_annee_fin, "La date de fin de réservation "))
																				if(Date_comparee(document.formulaire.res_jour_deb, document.formulaire.res_mois_deb, document.formulaire.res_annee_deb, document.formulaire.res_jour_fin, document.formulaire.res_mois_fin, document.formulaire.res_annee_fin, "La date de fin de réservation ne peut être inférieure à celle de début de réservation !"))																	
																					if (Formulaire_conforme(document.formulaire.res_personnes, "Veuillez entrer un nombre de personnes !"))										
																						if(Entier_conforme(document.formulaire.res_personnes, "un nombre de personnes"))
																							if (Case_cocher_conforme(document.formulaire.res_hotel, "Veuillez faire un choix concernant la réservation de chambres d'hôtel !"))									
																								return (Case_cocher_conforme(document.formulaire.res_restauration, "Veuillez faire un choix concernant la restauration !"))											
	return false;
}

/*
 *	MODULE ADMINISTRATION
 */

function Verif_admin_accueil() {

	if (Formulaire_conforme(document.formulaire.aut_identifiant, "Veuillez entrer un identifiant !"))
		return(Formulaire_conforme(document.formulaire.aut_mot_passe, "Veuillez entrer un mot de passe !"))
	
	return false;
}

function Verif_admin_recherche_contact() {

	if (Formulaire_conforme(document.formulaire.res_jour_deb, "Veuillez entrer un jour pour la date minimale !"))
		if (Formulaire_conforme(document.formulaire.res_mois_deb, "Veuillez entrer un mois pour la date minimale !"))
			if (Formulaire_conforme(document.formulaire.res_annee_deb, "Veuillez entrer une année pour la date minimale !"))
				if (Formulaire_conforme(document.formulaire.res_jour_fin, "Veuillez entrer un jour pour la date maximale !"))
					if (Formulaire_conforme(document.formulaire.res_mois_fin, "Veuillez entrer un mois pour la date maximale !"))
						if (Formulaire_conforme(document.formulaire.res_annee_fin, "Veuillez entrer une année pour la date maximale !"))												
							return(Date_comparee(document.formulaire.res_jour_deb, document.formulaire.res_mois_deb, document.formulaire.res_annee_deb, document.formulaire.res_jour_fin, document.formulaire.res_mois_fin, document.formulaire.res_annee_fin, "La date maximale ne peut être inférieure à la date minimale !"))																							

	return false;
}

/*
 *	MODULE DATES
 */	
	
	function Date_conforme(pSJour, pSMois, pSAnnee, pSMsg) {
		
		//--- verification des longueurs des chaines de la date
		if(pSJour.value.length != 2 || pSMois.value.length != 2 || pSAnnee.value.length != 4) {
			alert(pSMsg + " non conforme...format : [jj/mm/aaaa]");
			return false;
		}
			
		//--- verification des valeurs des chaines de la date		
		if(pSJour < 01 || pSJour > 31) {
			alert(pSMsg + " incohérente...Le jour est erroné...!"); 
			return false;
		}		
		if(pSMois < 01 || pSMois > 12) {
			alert(pSMsg + " incohérente...Le mois est erroné...!"); 
			return false;
		}
		if(pSAnnee < 2006 || pSAnnee > 2051) {
			alert(pSMsg + " incohérente...L'année est erronée...!"); 
			return false;
		}							
		return true;	
	}
	
	function Date_coherente (pSJour, pSMois, pSAnnee, pSMsg) {
	
		//--- la date doit être valide
		d1 = new Date(); 
		d2 = new Date();

		d2.setDate(pSJour.value); 
		d2.setMonth(parseInt(pSMois.value-1));	//--- /!\ mois de 0 a 11
		d2.setYear(pSAnnee.value);

		if(d2 <= d1) {
			alert(pSMsg + " doit être supérieure à la date du jour...!"); 
			return false;
		}
		return true;	
	}
	
	function Date_comparee (pSJourD, pSMoisD, pSAnneeD, pSJourF, pSMoisF, pSAnneeF, pSMsg) {
	
		d2 = new Date();
		d3 = new Date();

		d2.setDate(pSJourD.value); 
		d2.setMonth(parseInt(pSMoisD.value-1));	//--- /!\ mois de 0 a 11
		d2.setYear(pSAnneeD.value);
		
		d3.setDate(pSJourF.value); 
		d3.setMonth(parseInt(pSMoisF.value-1));	//--- /!\ mois de 0 a 11
		d3.setYear(pSAnneeF.value);		

		if(d3 < d2) {
			alert(pSMsg); 
			return false;
		}
		return true;	
	}