// #####################
// Script montrer-cacher
// #####################
function Montrer(Tableau) {
document.getElementById(Tableau).style.display = 'block';
}
function Cacher(Tableau) {
document.getElementById(Tableau).style.display = 'none';
}


// ###################################################
// Monter div alerte pendant 3 secondes puis la cacher
// ###################################################
function MessagePrixTCC() {
Montrer('MessagePrixTCC');
window.setTimeout("Cacher('MessagePrixTCC')",3000);
}


// #############################################################
// Affichage alerte + date actuelle lors du clic sur la checkbox
// #############################################################
function CocherCondition() {
var Titre = document.Formulaire.clienttitre.value;
alert('Je sousigné ' + document.Formulaire.clienttitre.value + ' ' + document.Formulaire.clientnom.value + ', ' + document.Formulaire.clientprenom.value + ' déclare être d\’accord sur les termes du contrat, après avoir pris connaissance de la fiche descriptive jointe et des conditions générales.');
Montrer('Date');
}


// #####################################################
// Conditions de validation d'une adresse email correcte
// #####################################################
function emailCheck(emailStr) {

	var myEMailIsValid = true;
	var myAtSymbolAt = emailStr.indexOf('@');
	var myLastDotAt = emailStr.lastIndexOf('.');
	var mySpaceAt = emailStr.indexOf(' ');
	var myLength = emailStr.length;
	
	// Au moins un @ doit être présent, et pas avant la position 2
	// @yellow.com : Invalide
	// x@yellow.com : VALIDE
	if (myAtSymbolAt < 1 ) {
		myEMailIsValid = false;
	}
	// Au moins un . (point) après @ es requis
	// x@yellow : Invalide
	// x.y@yellow : Invalide
	// x@yellow.org : VALIDE
	if (myLastDotAt < myAtSymbolAt) {
		myEMailIsValid = false;
	}
	// Au moins 2 caractères [com, uk, fr, ...] après le dernier . (point)
	// x.y@yellow. : Invalide
	// x.y@yellow.a : Invalide
	// x.y@yellow.ca : VALIDE
	if (myLength - myLastDotAt <= 2) {
		myEMailIsValid = false;
	}
	// Jamais d'espace " "
	// x.y@yell ow.com : Invalide
	if (mySpaceAt != -1) {
		myEMailIsValid = false
	}
	if (myEMailIsValid == true) {
		return true;
	}
	else {
		return false;
	}
}


// ##########################################################
// Formattage des dates pour accéder au calcul de comparaison
// ##########################################################
function getDate(stripedDate)
{
day = stripedDate.substring(0,2);
month = stripedDate.substring(3,5);
year = stripedDate.substring(6,10);
date = new Date();
date.setDate(day);
date.setMonth(month);
date.setFullYear(year);
return date;
}


// ######################################
// Conditions de validation du formulaire
// ######################################
function ValideForm()
{


// #####
// titre
// #####
// Méthode :
// 1-Savoir quel bouton radio est coché
// 2-Attribuer la valeur de l'input hidden selon le bouton radio coché.
if(document.Formulaire.clienttitreradio[0].checked == true) {
document.Formulaire.clienttitre.value = document.Formulaire.clienttitreradio[0].value;
}
if(document.Formulaire.clienttitreradio[1].checked == true) {
document.Formulaire.clienttitre.value = document.Formulaire.clienttitreradio[1].value;
}
if(document.Formulaire.clienttitreradio[2].checked == true) {
document.Formulaire.clienttitre.value = document.Formulaire.clienttitreradio[2].value;
}
if (document.Formulaire.clienttitre.value == "") {
alert('Veuillez saisir votre titre !');
exit;
}


// ###
// nom
// ###
if(document.Formulaire.clientnom.value.length==0)
{
alert('Veuillez saisir votre nom !');
document.Formulaire.clientnom.focus();
document.Formulaire.clientnom.select();
exit;
}


// ######
// prenom
// ######
if(document.Formulaire.clientprenom.value.length==0)
{
alert('Veuillez saisir votre prénom !');
document.Formulaire.clientprenom.focus();
document.Formulaire.clientprenom.select();
exit;
}


// #######
// adresse
// #######
if(document.Formulaire.clientadressepostale.value.length==0)
{
alert('Veuillez saisir votre adresse !');
document.Formulaire.clientadressepostale.focus();
document.Formulaire.clientadressepostale.select();
exit;
}


// ###########
// code postal
// ###########
if(document.Formulaire.clientcodepostal.value.length==0)
{
alert('Veuillez saisir votre code postal !');
document.Formulaire.clientcodepostal.focus();
document.Formulaire.clientcodepostal.select();
exit;
}
if(isNaN(document.Formulaire.clientcodepostal.value) == true)
{
alert('Le code postal doit être un nombre !');
document.Formulaire.clientcodepostal.focus();
document.Formulaire.clientcodepostal.select();
exit;
}


// #####
// ville
// #####
if(document.Formulaire.clientville.value.length==0)
{
alert('Veuillez indiquer le nom de votre ville !');
document.Formulaire.clientville.focus();
document.Formulaire.clientville.select();
exit;
}


// ####
// pays
// ####
if(document.Formulaire.clientpays.value.length==0)
{
alert('Veuillez indiquer le nom de votre pays !');
document.Formulaire.clientpays.focus();
document.Formulaire.clientpays.select();
exit;
}


// #########
// telephone
// #########
if(document.Formulaire.clienttel.value.length==0)
{
alert('Veuillez saisir votre numéro de téléphone !');
document.Formulaire.clienttel.focus();
document.Formulaire.clienttel.select();
exit;
}


// ###
// fax
// ###
if(document.Formulaire.clientfax.value.length==0)
{
document.Formulaire.clientfax.value='Non renseign\351';
}


// #####
// email
// #####
if(document.Formulaire.clientmail.value.length==0)
{
alert('Veuillez saisir votre adresse mail !');
document.Formulaire.clientmail.focus();
document.Formulaire.clientmail.select();
exit;
}
if (!emailCheck(document.Formulaire.clientmail.value))
{
alert('Votre adresse mail n\'est pas une adresse valide !\nVeuillez revérifier votre adresse mail.');
document.Formulaire.clientmail.focus();
document.Formulaire.clientmail.select();
exit;
}


// ################
// Nombre d'adultes
// ################
if(document.Formulaire.nombreadultes.value.length==0)
{
alert('Le nombre d\'adulte n\'est pas saisi !\nSi il n\'y a pas d\'adulte, saisissez \'0\'');
document.Formulaire.nombreadultes.focus();
document.Formulaire.nombreadultes.select();
exit;
}
if(isNaN(document.Formulaire.nombreadultes.value) == true)
{
alert('Le nombre d\'adulte doit être un entier...\nVeuillez ne rentrer dans ce champ que des chiffres.');
document.Formulaire.nombreadultes.focus();
document.Formulaire.nombreadultes.select();
exit;
}
if ( parseInt(document.Formulaire.nombreadultes.value) != (document.Formulaire.nombreadultes.value) )
{
alert('Le nombre d\'adulte doit être un entier...');
document.Formulaire.nombreadultes.focus();
document.Formulaire.nombreadultes.select();
exit;
}
if (document.Formulaire.nombreadultes.value < 0 ) {
alert('Le nombre d\'adulte doit être un entier positif...');
document.Formulaire.nombreadultes.focus();
document.Formulaire.nombreadultes.select();
exit;
}


// ################
// Nombre d'enfants de plus de 3ans
// ################
if(document.Formulaire.nombreenfants.value.length==0)
{
alert('Le nombre d\'enfant de plus de 3 ans n\'est pas saisi !\nSi il n\'y a pas d\'enfant de plus de 3 ans, saisissez \'0\'');
document.Formulaire.nombreenfants.focus();
document.Formulaire.nombreenfants.select();
exit;
}
if(isNaN(document.Formulaire.nombreenfants.value) == true)
{
alert('Le nombre d\'enfant de plus de 3 ans doit être un entier...\nVeuillez ne rentrer dans ce champ que des chiffres.');
document.Formulaire.nombreenfants.focus();
document.Formulaire.nombreenfants.select();
exit;
}
if ( parseInt(document.Formulaire.nombreenfants.value) != (document.Formulaire.nombreenfants.value) )
{
alert('Le nombre d\'enfant de plus de 3 ans doit être un entier...');
document.Formulaire.nombreenfants.focus();
document.Formulaire.nombreenfants.select();
exit;
}
if (document.Formulaire.nombreenfants.value < 0 ) {
alert('Le nombre d\'enfant de plus de 3 ans doit être un entier positif...');
document.Formulaire.nombreenfants.focus();
document.Formulaire.nombreenfants.select();
exit;
}


// ##################################
// Nombre d'enfants de moins de 3 ans
// ##################################
if(document.Formulaire.nombrebb.value.length==0)
{
alert('Le nombre d\'enfant de moins de 3 ans n\'est pas saisi !\nSi il n\'y a pas d\'enfant de moins de 3 ans, saisissez \'0\'');
document.Formulaire.nombrebb.focus();
document.Formulaire.nombrebb.select();
exit;
}
if(isNaN(document.Formulaire.nombrebb.value) == true)
{
alert('Le nombre d\'enfant de moins de 3 ans doit être un entier...\nVeuillez ne rentrer dans ce champ que des chiffres.');
document.Formulaire.nombrebb.focus();
document.Formulaire.nombrebb.select();
exit;
}
if ( parseInt(document.Formulaire.nombrebb.value) != (document.Formulaire.nombrebb.value) )
{
alert('Le nombre d\'enfant de moins de 3 ans doit être un entier...');
document.Formulaire.nombrebb.focus();
document.Formulaire.nombrebb.select();
exit;
}
if (document.Formulaire.nombrebb.value < 0 ) {
alert('Le nombre d\'enfant de moins de 3 ans doit être un entier positif...');
document.Formulaire.nombrebb.focus();
document.Formulaire.nombrebb.select();
exit;
}

if (document.Formulaire.totalnombrepersonnes.value == 0) {
alert('Il doit y avoir au moins une personne. Veuillez indiquer le nombre de personnes à séjourner.');
document.Formulaire.totalnombrepersonnes.focus();
}

// ##############
// Date d'arrivée
// ##############
if(document.Formulaire.datedebut.value.length==0)
{
alert('Veuillez indiquer la date d\'arrivée souhaitée');
document.Formulaire.datedebut.focus();
document.Formulaire.datedebut.select();
exit;
}


// ##############
// Date de départ
// ##############
if(document.Formulaire.datefin.value.length==0)
{
alert('Veuillez indiquer la date de départ souhaitée');
document.Formulaire.datefin.focus();
document.Formulaire.datefin.select();
exit;
}


// #####################
// Comparaison des dates
// #####################
diff = getDate(document.Formulaire.datedebut.value).getTime() - getDate(document.Formulaire.datefin.value).getTime();
var dateresult = (diff==0 ? diff : diff/Math.abs(diff));
//Valeurs retournées :
//   0 si datedebut=datefin
//   1 si datedebut>datefin
//  -1 si datedebut<datefin
var dateresultstr = dateresult.toString();
switch(dateresultstr)
{
case "-1":	break;
case "1":	alert('La date du départ ne peut pas être antérieure à la date d\'arrivée... vous savez remonter le temps ?');
			document.Formulaire.datedebut.focus();
			document.Formulaire.datedebut.select();
			break;
case "0": 	alert('Vous comptez repartir le jour même de votre arrivée? ça ne vous plaît pas?');
			document.Formulaire.datedebut.focus();
			document.Formulaire.datedebut.select();
			break;
default :	alert('Une erreur est survenue lors de la vérification des dates.\nVérification annulée.');
			break;
break;
}


// ########
// Prix TCC
// ########
if(document.Formulaire.prixtcc.value.length==0)
{
alert('Le prix du séjour TCC n\'est pas précisé !\nVous devez inscrire le montant que vous avez calculé.');
document.Formulaire.prixtcc.focus();
document.Formulaire.prixtcc.select()
exit;
}
if(isNaN(document.Formulaire.prixtcc.value) == true)
{
alert('Le prix du séjour TCC doit être un entier...\nVeuillez ne rentrer dans ce champ que des chiffres.');
document.Formulaire.prixtcc.focus();
document.Formulaire.prixtcc.select()
exit;
}
if ( parseInt(document.Formulaire.prixtcc.value) != (document.Formulaire.prixtcc.value) )
{
alert('Le prix du séjour TCC doit être un entier...');
document.Formulaire.prixtcc.focus();
document.Formulaire.prixtcc.select()
exit;
}
if (document.Formulaire.prixtcc.value <= 0 ) {
alert('Le prix du séjour TCC doit être supérieur à zéro...');
document.Formulaire.prixtcc.focus();
document.Formulaire.prixtcc.select()
exit;
}


// ###############
// Nombre de draps
// ###############
if(document.Formulaire.nombredraps.value.length==0)
{
alert('Le nombre de draps n\'est pas précisé !\nSi vous ne voulez pas louer de draps, saisissez \'0\'');
document.Formulaire.nombredraps.focus();
document.Formulaire.nombredraps.select();
exit;
}
if(isNaN(document.Formulaire.nombredraps.value) == true)
{
alert('Le nombre de draps doit être un entier...\nVeuillez ne rentrer dans ce champ que des chiffres.');
document.Formulaire.nombredraps.focus();
document.Formulaire.nombredraps.select();
exit;
}
if ( parseInt(document.Formulaire.nombredraps.value) != (document.Formulaire.nombredraps.value) )
{
alert('Le nombre de draps doit être un entier...');
document.Formulaire.nombredraps.focus();
document.Formulaire.nombredraps.select();
exit;
}
if (document.Formulaire.nombredraps.value < 0 ) {
alert('Le nombre de draps doit être un entier positif...');
document.Formulaire.nombredraps.focus();
document.Formulaire.nombredraps.select();
exit;
}


// ###########################
// Nombre de linge de toilette
// ###########################
if(document.Formulaire.nombrelinge.value.length==0)
{
alert('Le nombre de linge de toilette n\'est pas précisé !\nSi vous ne voulez pas louer de linge de toilette, saisissez \'0\'');
document.Formulaire.nombrelinge.focus();
document.Formulaire.nombrelinge.select()
exit;
}
if(isNaN(document.Formulaire.nombrelinge.value) == true)
{
alert('Le nombre de linge de toilette doit être un entier...\nVeuillez ne rentrer dans ce champ que des chiffres.');
document.Formulaire.nombrelinge.focus();
document.Formulaire.nombrelinge.select()
exit;
}
if ( parseInt(document.Formulaire.nombrelinge.value) != (document.Formulaire.nombrelinge.value) )
{
alert('Le nombre de linge de toilette doit être un entier...');
document.Formulaire.nombrelinge.focus();
document.Formulaire.nombrelinge.select()
exit;
}
if (document.Formulaire.nombrelinge.value < 0 ) {
alert('Le nombre de linge de toilette doit être un entier positif...');
document.Formulaire.nombrelinge.focus();
document.Formulaire.nombrelinge.select()
exit;
}


// #######################
// Nombre de vélos a louer
// #######################
if(document.Formulaire.nombrevelo.value.length==0)
{
alert('Le nombre de vélo n\'est pas précisé !\nSi vous ne voulez pas louer de vélo, saisissez \'0\'');
document.Formulaire.nombrevelo.focus();
document.Formulaire.nombrevelo.select()
exit;
}
if(isNaN(document.Formulaire.nombrevelo.value) == true)
{
alert('Le nombre de vélo doit être un entier...\nVeuillez ne rentrer dans ce champ que des chiffres.');
document.Formulaire.nombrevelo.focus();
document.Formulaire.nombrevelo.select()
exit;
}
if ( parseInt(document.Formulaire.nombrevelo.value) != (document.Formulaire.nombrevelo.value) )
{
alert('Le nombre de vélo doit être un entier...');
document.Formulaire.nombrevelo.focus();
document.Formulaire.nombrevelo.select()
exit;
}
if (document.Formulaire.nombrevelo.value < 0 ) {
alert('Le nombre de vélo doit être un entier positif...');
document.Formulaire.nombrevelo.focus();
document.Formulaire.nombrevelo.select()
exit;
}


// ############################
// Nombre de prestations ménage
// ############################
if(document.Formulaire.nombreprestationmenage.value.length==0)
{
alert('Le nombre de prestation ménage n\'est pas précisé !\nSi vous ne voulez pas de prestation ménage, saisissez \'0\'');
document.Formulaire.nombreprestationmenage.focus();
document.Formulaire.nombreprestationmenage.select()
exit;
}
if(isNaN(document.Formulaire.nombreprestationmenage.value) == true)
{
alert('Le nombre de prestation ménage doit être un entier...\nVeuillez ne rentrer dans ce champ que des chiffres.');
document.Formulaire.nombreprestationmenage.focus();
document.Formulaire.nombreprestationmenage.select()
exit;
}
if ( parseInt(document.Formulaire.nombreprestationmenage.value) != (document.Formulaire.nombreprestationmenage.value) )
{
alert('Le nombre de prestation ménage doit être un entier...');
document.Formulaire.nombreprestationmenage.focus();
document.Formulaire.nombreprestationmenage.select()
exit;
}
if (document.Formulaire.nombreprestationmenage.value < 0 ) {
alert('Le nombre de prestation ménage doit être un entier positif...');
document.Formulaire.nombreprestationmenage.focus();
document.Formulaire.nombreprestationmenage.select()
exit;
}


// ########################
// Validation Case à cocher
// ########################
if(document.Formulaire.condition.checked == false) {
alert('Vous devez accepeter les termes du contrat pour valider votre réservation');
exit
}

document.Formulaire.method = "POST";
document.Formulaire.action = ("recapitulatif.html?clienttitre=" + document.Formulaire.clienttitre.value + "&clientnom=" + document.Formulaire.clientnom.value + "&clientprenom=" + document.Formulaire.clientprenom.value + "&clientadressepostale=" + document.Formulaire.clientadressepostale.value + "&clientcodepostal=" + document.Formulaire.clientcodepostal.value + "&clientville=" + document.Formulaire.clientville.value + "&clientpays=" + document.Formulaire.clientpays.value + "&clienttel=" + document.Formulaire.clienttel.value + "&clientfax=" + document.Formulaire.clientfax.value + "&clientmail=" + document.Formulaire.clientmail.value + "&nombreadultes=" + document.Formulaire.nombreadultes.value + "&nombreenfants=" + document.Formulaire.nombreenfants.value + "&nombrebb=" + document.Formulaire.nombrebb.value + "&totalnombrepersonnes=" + document.Formulaire.totalnombrepersonnes.value + "&datedebut=" + document.Formulaire.datedebut.value + "&datefin=" + document.Formulaire.datefin.value + "&prixtcc=" + document.Formulaire.prixtcc.value + "&nombredraps=" + document.Formulaire.nombredraps.value + "&nombrelinge=" + document.Formulaire.nombrelinge.value + "&nombrevelo=" + document.Formulaire.nombrevelo.value + "&nombreprestationmenage=" + document.Formulaire.nombreprestationmenage.value + "&sommedraps=" + document.Formulaire.sommedraps.value + "&sommelinge=" + document.Formulaire.sommelinge.value + "&sommevelo=" + document.Formulaire.sommevelo.value + "&sommeprestationmenage=" + document.Formulaire.sommeprestationmenage.value + "&somme=" + document.Formulaire.somme.value + "&remarque=" + document.Formulaire.remarque.value + "&dateform=" + document.Formulaire.dateform.value);
document.Formulaire.submit();

}





// #####################################
// Remplissage continu des champs grisés
// #####################################
function realtimecalc()
{


// Copie du code de vérification du titre pour que le titre de l'alert de la case à cocher
// fonctionne encore si l'utilisateur change de titre après avoir validé une fois
// et qu'il ait mal rempli un champ.
// Action qui arrivera probablement moins d'une fois sur 1 million, mais "on ne sait jamais..."
if(document.Formulaire.clienttitreradio[0].checked == true) {
document.Formulaire.clienttitre.value = document.Formulaire.clienttitreradio[0].value;
}
if(document.Formulaire.clienttitreradio[1].checked == true) {
document.Formulaire.clienttitre.value = document.Formulaire.clienttitreradio[1].value;
}
if(document.Formulaire.clienttitreradio[2].checked == true) {
document.Formulaire.clienttitre.value = document.Formulaire.clienttitreradio[2].value;
}







// #######################################
// Remplissage du champ Total de personnes
// #######################################
var NbreAdultes = document.Formulaire.nombreadultes.value;
var NbreEnfants = document.Formulaire.nombreenfants.value;
var NbreBB = document.Formulaire.nombrebb.value;
// Si rien n'est entré, considérer un zéro pour ne pas inhiber la fonction de calcul qui retournerais NaN
if (NbreAdultes == "") NbreAdultes = 0;
if (NbreEnfants == "") NbreEnfants = 0;
if (NbreBB == "") NbreBB = 0;
// Force la conversion des chaînes en nombres
NbreAdultes = parseInt(NbreAdultes);
NbreEnfants = parseInt(NbreEnfants);
NbreBB = parseInt(NbreBB);
document.Formulaire.totalnombrepersonnes.value = (NbreAdultes + NbreEnfants + NbreBB);
if (document.Formulaire.totalnombrepersonnes.value == "NaN") document.Formulaire.totalnombrepersonnes.value="";


// ############################################
// Remplissage des 6 champs de calcul des prix
// ############################################
var PrixTCC = document.Formulaire.prixtcc.value;
var NbreDraps = document.Formulaire.nombredraps.value;
var NbreLinge = document.Formulaire.nombrelinge.value;
var NbreVelo = document.Formulaire.nombrevelo.value;
var NbrePrestaMenage = document.Formulaire.nombreprestationmenage.value;
// Si rien n'est entré, considérer un zéro pour ne pas inhiber la fonction de calcul qui retournerais NaN
if (PrixTCC == "") PrixTCC = 0;
if (NbreDraps == "") NbreDraps = 0;
if (NbreLinge == "") NbreLinge = 0;
if (NbreVelo == "") NbreVelo = 0;
if (NbrePrestaMenage == "") NbrePrestaMenage = 0;
// Force la conversion des chaînes en nombres
PrixTCC = parseInt(PrixTCC);
NbreDraps = parseInt(NbreDraps);
NbreLinge = parseInt(NbreLinge);
NbreVelo = parseInt(NbreVelo);
NbrePrestaMenage = parseInt(NbrePrestaMenage);

document.Formulaire.sommedraps.value = (parseInt(Tarif_Option_Draps)*NbreDraps);
if (document.Formulaire.sommedraps.value == "NaN") document.Formulaire.sommedraps.value="";

document.Formulaire.sommelinge.value = (parseInt(Tarif_Option_Linge_de_Toilette)*NbreLinge);
if (document.Formulaire.sommelinge.value == "NaN") document.Formulaire.sommelinge.value="";

document.Formulaire.sommevelo.value = (parseInt(Tarif_Option_Velo)*NbreVelo);
if (document.Formulaire.sommevelo.value == "NaN") document.Formulaire.sommevelo.value="";

document.Formulaire.sommeprestationmenage.value = (parseInt(Tarif_Option_Menage)*NbrePrestaMenage);
if (document.Formulaire.sommeprestationmenage.value == "NaN") document.Formulaire.sommeprestationmenage.value="";

// On récupère les 4 valeurs dans 4 variables pour la clareté
var SommeDraps = parseInt(document.Formulaire.sommedraps.value);
var SommeLinge = parseInt(document.Formulaire.sommelinge.value);
var SommeVelo = parseInt(document.Formulaire.sommevelo.value);
var SommePrestaMenage = parseInt(document.Formulaire.sommeprestationmenage.value);

document.Formulaire.somme.value = (PrixTCC + SommeDraps + SommeLinge + SommeVelo + SommePrestaMenage);
if (document.Formulaire.somme.value == "NaN") document.Formulaire.somme.value="";

// Répéter les calculs toutes les 100 ms, pour l'effet temps réel
window.setTimeout("realtimecalc()",100);
}