<!--

// Messages d'informations
var t_info_reservation_total = '';

// Etape 1
var t_erreur_conditions_vente = '';
var t_erreur_choix_mag = '';
var t_erreur_dateD = '';
var t_erreur_dateF = '';
var t_erreur_dateD_avant_aujourdhui = '';
var t_erreur_dateD_avant_aujourdhui = '';
var t_erreur_dateF_avant_dateD = '';

// Etape 2
var t_erreur_prenom_pers_d = '';
var t_erreur_prenom_pers_f = '';
var t_erreur_age_pers_d = '';
var t_erreur_age_pers_f = '';
var t_erreur_taille_pers_d = '';
var t_erreur_taille_pers_f = '';
var t_erreur_poids_pers_d = '';
var t_erreur_poids_pers_f = '';
var t_erreur_pointure_pers_d = '';
var t_erreur_pointure_pers_f = '';
var t_erreur_niveau_pers_d = '';
var t_erreur_niveau_pers_f = '';
var t_1ere = new Array(5);

// Etape 3
var t_erreur_nom = '';
var t_erreur_prenom = '';
var t_erreur_email = '';
var t_erreur_email_confirme = '';
var t_erreur_telephone = '';
var t_erreur_email_trop_court = '';
var t_erreur_email_trop_long = '';
var t_erreur_email_pas_d_arobase = '';
var t_erreur_email_caractere_interdit = '';
var t_erreur_email_forme = '';

/* Initialise les messages d'information d'après la langue
*/
function initTexteInfo(lang){
	if(lang == 'fr'){
		t_info_reservation_total = 'X jourS offertS !';
	}
	else {
		t_info_reservation_total = 'X dayS free !';
	}
}

/* Initialise les messages d'erreurs d'après la langue
*/
function initTexteErreur(lang){
	if(lang == 'fr'){
		// Etape 1
		t_erreur_conditions_vente = 'Merci de bien vouloir accepter les conditions générales de location avant de continuer.';
		t_erreur_choix_mag = 'Veuillez choisir un magasin.';
		t_erreur_dateD = 'Veuillez sélectionner la date de début de votre location.';
		t_erreur_dateF = 'Veuillez sélectionner la date de fin de votre location.';
		t_erreur_dateD_avant_aujourdhui = 'La date de début de votre location est dépassée.';
		t_erreur_dateF_avant_aujourdhui = 'La date de fin de votre location est dépassée.';
		t_erreur_dateF_avant_dateD = 'La date de fin de votre location est avant la date de début.';
		
		// Etape 2
		t_erreur_prenom_pers_d = 'Veuillez saisir un prénom pour la ';
		t_erreur_prenom_pers_f = ' personne.';
		t_erreur_age_pers_d = 'Veuillez indiquer l\'âge de la ';
		t_erreur_age_pers_f = ' personne afin que nous puissions sélectionner les bons skis.';
		t_erreur_taille_pers_d = 'Veuillez indiquer la taille de la ';
		t_erreur_taille_pers_f = ' personne afin que nous puissions sélectionner les bons skis.';
		t_erreur_poids_pers_d = 'Veuillez indiquer le poids de la ';
		t_erreur_poids_pers_f = ' personne afin que nous puissions sélectionner les bons skis.';
		t_erreur_pointure_pers_d = 'Veuillez indiquer la pointure de la ';
		t_erreur_pointure_pers_f = ' personne afin que nous puissions sélectionner les bonnes chaussures.';
		t_erreur_niveau_pers_d = 'Veuillez indiquer le niveau de la ';
		t_erreur_niveau_pers_f = ' personne afin que nous puissions sélectionner les bons skis.';
		t_1ere[0] = '';
		t_1ere[1] = 'ère';
		t_1ere[2] = 'ème';
		t_1ere[3] = 'ème';
		t_1ere[4] = 'ème';
		
		// Etape 3
		t_erreur_nom = 'Veuillez saisir votre nom avant de valider la réservation.';
		t_erreur_prenom = 'Veuillez saisir un prénom avant de valider la réservation.';
		t_erreur_email = 'Veuillez saisir une adresse e-mail pour que nous puissions vous recontacter.';
		t_erreur_email_confirme = 'Veuillez confirmer votre e-mail.';
		t_erreur_telephone = 'Veuillez saisir un numéro de téléphone pour que nous puissions vous recontacter.';
		t_erreur_email_trop_court = 'Cette adresse e-mail est trop courte.';
		t_erreur_email_trop_long = 'Cette adresse e-mail est trop longue.';
		t_erreur_email_pas_d_arobase = 'Cette adresse e-mail n\'a pas d\'arobase (@).';
		t_erreur_email_caractere_interdit = 'Cette adresse e-mail contient un caractère interdit';
		t_erreur_email_forme = 'n\'est pas la forme d\'une adresse email.';
	}
	else {
		// Etape 1
		t_erreur_conditions_vente = 'Thanks for accepting general terms before continuing.';
		t_erreur_choix_mag = 'Please select a shop.';
		t_erreur_dateD = 'Please select the first date.';
		t_erreur_dateF = 'Please select the last date.';
		t_erreur_dateD_avant_aujourdhui = 'The date of the beginning of your rental is expired.';
		t_erreur_dateF_avant_aujourdhui = 'The date of the end of your rental is expired.';
		t_erreur_dateF_avant_dateD = 'The date of the end of your rental is before the date of the beginning.';
		
		// Etape 2
		t_erreur_prenom_pers_d = 'Please enter the first name of the ';
		t_erreur_prenom_pers_f = ' person.';
		t_erreur_age_pers_d = 'Please select the age of the ';
		t_erreur_age_pers_f = ' person.';
		t_erreur_taille_pers_d = 'Please select the height of the ';
		t_erreur_taille_pers_f = ' person.';
		t_erreur_poids_pers_d = 'Please select the weight of the ';
		t_erreur_poids_pers_f = ' person.';
		t_erreur_pointure_pers_d = 'Please select the size of the ';
		t_erreur_pointure_pers_f = ' person.';
		t_erreur_niveau_pers_d = 'Please select the level of the ';
		t_erreur_niveau_pers_f = ' person.';
		t_1ere[0] = '';
		t_1ere[1] = 'st';
		t_1ere[2] = 'nd';
		t_1ere[3] = 'rd';
		t_1ere[4] = 'th';
		
		// Etape 3
		t_erreur_nom = 'Please enter your last name before submitting the reservation.';
		t_erreur_prenom = 'Please enter your first name before submitting the reservation.';
		t_erreur_email = 'Please enter an e-mail adress.';
		t_erreur_email_confirme = 'Please confirm your e-mail.';
		t_erreur_telephone = 'Please enter a phone number.';
		t_erreur_email_trop_court = 'This e-mail adress is too short.';
		t_erreur_email_trop_long = 'This e-mail adress is too long.';
		t_erreur_email_pas_d_arobase = 'This e-mail adress  has no @.';
		t_erreur_email_caractere_interdit = 'This e-mail adress  has a forbidden character';
		t_erreur_email_forme = 'is not an email adress.';
	}
}

/* Supprimer le 0 initial du mois ou du jour d'une date
*
* Paramètre
*	info_date : jour ou mois numérique (chaîne de caractères)
*
* Retour
*	Jour ou mois numérique sans le 0 initial
*/
function formatInfoDate(info_date) {
	if(info_date.length == 2 && info_date.charAt(0) == '0') {
		info_date = info_date.charAt(1);
	}

	return info_date;

}

// Vérification des saisies de l'étape 1
function verifForm1(formulaire, lang){
	initTexteErreur(lang);
	
	if(!formulaire.conditions_vente.checked){
		alert(t_erreur_conditions_vente);
		return(false);
	}
	
	if(formulaire.magasin != undefined){
		if(formulaire.magasin.value == 0){
			alert(t_erreur_choix_mag);
			formulaire.magasin.focus();
			return(false);
	 	}
	}
	
	// Vérification de la date (renvoyée par le Tigra Calendar)
	if(formulaire.dateD.value == ''){
		alert(t_erreur_dateD);
		return(false);
	}
	if(formulaire.dateF.value == ''){
		alert(t_erreur_dateF);
		return(false);
	}
	
	if(lang == 'fr') {
		expression = /([0-9]{2})-([0-9]{2})-([0-9]{4})/;
		expression.exec(formulaire.dateD.value);
		dateD = new Date(parseInt(RegExp.$3), parseInt(formatInfoDate(RegExp.$2))-1, parseInt(formatInfoDate(RegExp.$1))-1);
		expression.exec(formulaire.dateF.value);
		dateF = new Date(parseInt(RegExp.$3), parseInt(formatInfoDate(RegExp.$2))-1, parseInt(formatInfoDate(RegExp.$1))-1);
	}
	else {
		expression = /([0-9]{2})\/([0-9]{2})\/([0-9]{4})/;
		expression.exec(formulaire.dateD.value);
		dateD = new Date(parseInt(RegExp.$3), parseInt(formatInfoDate(RegExp.$1))-1, parseInt(formatInfoDate(RegExp.$2))-1);
		expression.exec(formulaire.dateF.value);
		dateF = new Date(parseInt(RegExp.$3), parseInt(formatInfoDate(RegExp.$1))-1, parseInt(formatInfoDate(RegExp.$2))-1);
	}
	
	aujourdhui = new Date();
	if(dateD.getTime() <= aujourdhui.getTime()){
		alert(t_erreur_dateD_avant_aujourdhui);
		return(false);
	}
	if(dateF.getTime() <= aujourdhui.getTime()){
		alert(t_erreur_dateF_avant_aujourdhui);
		return(false);
	}
	if(dateF.getTime() <= dateD.getTime()){
		alert(t_erreur_dateF_avant_dateD);
		return(false);
	}
	
	
	return true;
}

// Vérification des saisies de l'étape 2
function verifForm2(formulaire, lang){
	initTexteErreur(lang);
	
	for(i=1; i<=formulaire.nb_personnes.value; i++){
		var ordre = (i >=4) ? 4 : i; // pour afficher le mot ième personne correctement selon la langue
		
		taille = '';
		eval("taille = formulaire.taille_" + i + ".value");
		
		if(eval("formulaire.prenom_" + i + ".value") == ""){
			alert(t_erreur_prenom_pers_d + i + t_1ere[i] + t_erreur_prenom_pers_f);
			eval("formulaire.prenom_" + i + ".focus()");
			return false;
		}
		if(eval("formulaire.age_" + i + ".selectedIndex") == 0){
			alert(t_erreur_age_pers_d + i + t_1ere[i] + t_erreur_age_pers_f);
			eval("formulaire.age_" + i + ".focus()");
			return false;
		}
		if(taille == '' || (lang == 'fr' && !taille.match(/^([0-9])+$/i)) /*|| (lang == 'en' && !taille.match(/^([0-9])+\"([0-9])+$/i))*/){
			alert(t_erreur_taille_pers_d + i + t_1ere[i] + t_erreur_taille_pers_f);
			eval("formulaire.taille_" + i + ".focus()");
			return false;
		}
		/*if(eval("formulaire.taille_" + i + ".selectedIndex") == 0){
			alert(t_erreur_taille_pers_d + i + t_1ere[i] + t_erreur_taille_pers_f);
			eval("formulaire.taille_" + i + ".focus()");
			return false;
		}*/
		if(eval("formulaire.poids_" + i + ".selectedIndex") == 0){
			alert(t_erreur_poids_pers_d + i + t_1ere[i] + t_erreur_poids_pers_f);
			eval("formulaire.poids_" + i + ".focus()");
			return false;
		}
		if(eval("formulaire.pointure_" + i + ".selectedIndex") == 0){
			alert(t_erreur_pointure_pers_d + i + t_1ere[i] + t_erreur_pointure_pers_f);
			eval("formulaire.pointure_" + i + ".focus()");
			return false;
		}
		if(eval("formulaire.niveau_" + i + ".selectedIndex") == 0){
			alert(t_erreur_niveau_pers_d + i + t_1ere[i] + t_erreur_niveau_pers_f);
			eval("formulaire.niveau_" + i + ".focus()");
			return false;
		}
	}
	
	return true;
}

// Vérification des saisies de l'étape 3
function verifForm3(formulaire, lang){
	initTexteErreur(lang);
	
	if(formulaire.nom_client.value == ""){
		alert(t_erreur_nom);
		formulaire.nom_client.focus();
		return false;
	}
	if(formulaire.prenom_client.value == ""){
		alert(t_erreur_prenom);
		formulaire.prenom_client.focus();
		return false;
	}
	if(formulaire.telephone_client.value == ""){
		alert(t_erreur_telephone);
		formulaire.telephone_client.focus();
		return false;
	}
	if(formulaire.email_client.value == ""){
		alert(t_erreur_email);
		formulaire.email_client.focus();
		return false;
	}
	if(!verifEmail(formulaire.email_client.value)){
		formulaire.email_client.focus();
		return false;
	}
	if(formulaire.email_client.value != formulaire.email_client_confirme.value) {
		alert(t_erreur_email_confirme);
		formulaire.email_client_confirme.focus();
		return false;
	}
	
	return true;
}

// Vérifie la validité d'une adresse e-mail
function verifEmail(email){
	if(email.length < 6){
		alert(email + " : " + t_erreur_email_trop_court);
		return false;
	}
	if(email.length > 80){
		alert(email + " : " + t_erreur_email_trop_long);
		return false;
	}
	if(!email.match(/@/)){
		alert(email + " : " + t_erreur_email_pas_d_arobase);
		return false;
	}
	var caractere = '';
	if(caractere = email.match(/([^a-zA-Z0-9_\@\.\-])/i)){
		alert(email + " : " + t_erreur_email_caractere_interdit + " ("+caractere[0]+").");
		return false;
	}
	if(!email.match(/^([a-z0-9_\-\.])+@(([a-z0-9_\-])+\.)+[a-z]{2,4}$/i)){
		alert(email + " " + t_erreur_email_forme);
		return false;
	}
	
	return true;
}

// Replaces oldS with newS in the string fullS
// Exemple venant du site officiel sur JavaScript
function replaceString(oldS,newS,fullS) {   
	for (var i=0; i<fullS.length; i++) {      
		if (fullS.substring(i,i+oldS.length) == oldS) {      
			fullS = fullS.substring(0,i)+newS+fullS.substring(i+oldS.length,fullS.length)
		}   
	}   
	return fullS
}

// Formate l'affichage d'un prix
function formatPrix(valeur){
	var valeur_chaine = /*arrondir(valeur).*/valeur.toString();
	if(valeur_chaine.match(/(\.[0-9]{2})$/i)){
		return valeur_chaine;
	}
	if(valeur_chaine.match(/(\.[0-9])$/i)){
		return valeur_chaine + '0';
	}
	
	return valeur_chaine + '.00';
}

/* Arrondit un nombre
*
* Paramètres
*	valeur : valeur à arrondir
*	precision : nombre de chiffres après la virgule
*
* Retour
*	Valeur arrondie
*/
function arrondir(valeur, precision) {
	if(precision == undefined) {
		precision = 2;
	}
	
	if(typeof(precision) == "number" && precision > 1) {
		return parseFloat(Math.round(valeur * Math.pow(10, precision)) / Math.pow(10, precision));
	}

	return parseFloat(Math.round(valeur));
}

// Aligne un prix calculé à l'unité sur la quantité
function calculTotalBase(prix, base, quantite){
	//if(quantite % 7 == 0) {
	/*if(quantite >= 7 && quantite % 7 >= 0 && quantite % 7 <= 6) {
		//quantite = quantite - quantite / 7;
		quantite = quantite - Math.floor(quantite / 7, 0);
	}*/
	
	return quantite * prix / base;
}

// Calcule le montant total de la réservation et met à jour son affichage
//
// Paramètre
//		nb_jours : nombre de jours de location
function calculerTotal(){
	var i;
	var somme = 0;
	var prix = 0;
	for(i = 1; i <= document.formReservation.nb_personnes.value; i++){
		if(eval("document.formReservation.lot_" + i + "[0].checked")){
			prix = document.getElementById("complet_" + i).innerHTML;
		}
		else if(eval("document.formReservation.lot_" + i + "[1].checked")){
			prix = document.getElementById("seul_" + i).innerHTML;
		}
		eval("document.formReservation.prix_"+i+".value = " + prix);
		somme += parseFloat(prix);
	}
	return somme;
}

// Met à jour l'affichage des éléments associés au pack sélectionné pour chaque personne
// - icône
// - lien vers la page affichant les détails
function afficherLienPack(num_calque, id_pack, nom_pack, lang){
	nom_pack = replaceString(" ", "", nom_pack.toLowerCase()) + '.gif';
	nom_pack = replaceString("é", "e", nom_pack);
	nom_pack = replaceString("è", "e", nom_pack);
	nom_pack = replaceString("à", "a", nom_pack);
	//document.getElementById("lien_pack_"+num_calque).href = "index.php?lang=" + lang + "&rub=pack&lien=" + id_pack;
	document.getElementById("lien_pack_"+num_calque).href = "javascript:ouvrir('pack_popup.php?lang=" + lang + "&rub=pack&lien=" + id_pack + "','scrollbars=yes,width=535,height=500,toolbar=no,location=no,menubar=no,resizable=no,status=yes,dependent');";
	//document.getElementById("img_pack_"+num_calque).src = "images/picto/" + nom_pack;
}

// Met à jour l'affichage des prix pour un pack
function afficherPrix(num_pack, prix_complet, prix_seul){
	document.getElementById("complet_" + num_pack).innerHTML = formatPrix(prix_complet);
	// Certains packs n'ont pas de prix pour les skis seuls
	if(prix_seul != 0.00){
		document.getElementById("seul_" + num_pack).innerHTML = formatPrix(prix_seul);
		document.getElementById("affich_prix_seul_" + num_pack).style.visibility = 'visible';
	}
	else{
		document.getElementById("seul_" + num_pack).innerHTML = '0.00';
		document.getElementById("affich_prix_seul_" + num_pack).style.visibility = 'hidden';
		eval("document.formReservation.lot_" + num_pack + ".value = 0;");
		eval("document.formReservation.lot_" + num_pack + "[0].checked = true;");
	}
}

// Met à jour l'affichage du prix total
function afficherPrixTotal(base_jours, nb_jours, arrhes, lang, promo){
	var total = calculerTotal();
	document.formReservation.prix_reservation_base.value = total;
	document.getElementById("span_prix_reservation_base").innerHTML = formatPrix(arrondir(total));
	
	total = calculTotalBase(total, base_jours, nb_jours);
	var total_arrondi = arrondir(total);
	document.formReservation.prix_reservation_total.value = total;
	document.getElementById("span_prix_reservation_total").innerHTML = formatPrix(total_arrondi);
	initTexteInfo(lang);
	//if(nb_jours % 7 == 0) {
	/*if(nb_jours >= 7 && nb_jours % 7 >= 0 && nb_jours % 7 <= 6) {
		//nb_jour_offert = nb_jours / 7;
		nb_jour_offert = Math.floor(nb_jours / 7, 0);
		message = t_info_reservation_total.replace(/X/, nb_jour_offert);
		message = (nb_jour_offert == 1) ? message.replace(/(S)/, '') : message.replace(/S/, 's');
		message = (nb_jour_offert == 1) ? message.replace(/(S)/, '') : message.replace(/S/, 's');
		document.getElementById("span_commentaire_reservation_total").innerHTML = message;
	}*/
	
	if(document.getElementById("span_prix_reservation_promo") != undefined){
		total_arrondi = arrondir(total_arrondi * (1.00 - promo / 100.00));
		document.getElementById("span_prix_reservation_promo").innerHTML = formatPrix(total_arrondi);
	}
	
	if(document.getElementById("span_ahhres") != undefined){
		var arrhes_a_payer = total_arrondi * arrhes / 100.00;
		var arrhes_arrondi = arrondir(arrhes_a_payer);
		document.getElementById("span_ahhres").innerHTML = formatPrix(arrhes_arrondi);
		document.getElementById("span_reste_a_payer").innerHTML = formatPrix(arrondir(total_arrondi - arrhes_arrondi));
	}
}

// Effectue les mises à jour nécessaires d'après le pack sélectionné pour chaque personne
function majSelectionPack(num_calque, valeur_select, lang, base_jours, nb_jours, arrhes, promo){
	arrayOfStrings = valeur_select.split(";");
	var id_pack = arrayOfStrings[0];
	var nom_pack = arrayOfStrings[1];
	var prix_complet = arrayOfStrings[2];
	var prix_seul =  arrayOfStrings[3];
	
	afficherLienPack(num_calque, id_pack, nom_pack, lang);
	afficherPrix(num_calque, prix_complet, prix_seul);
	if(document.formReservation.prix_reservation_base != null){
		afficherPrixTotal(base_jours, nb_jours, arrhes, lang, promo);
	}
}

/* Remet à zéro la sélection de tous les packs
*/
function initSelectionPack(lang, base_jours, nb_jours, arrhes, promo){
	var i;
	for(i = 1; i <= document.formReservation.nb_personnes.value; i++){
		eval("document.formReservation.lot_" + i + "[0].checked = true");
		eval("document.formReservation.lot_" + i + "[1].checked = false");
		majSelectionPack(i, eval("document.formReservation.pack_"+i+".options[0].value"), lang, base_jours, nb_jours, arrhes, promo);
	}
}

// Effectue les mises à jour nécessaires d'après le lot sélectionné pour un pack donné
function majSelectionLot(num_calque){
		/*eval("document.formReservation.prix_"+num_calque+".value") = document.getElementById("complet_" + i).innerHTML;
		calculerTotal();*/
}
//-->

