<!--
/****************************************************************************************************
* Boutique - Traitements JavaScript
****************************************************************************************************/

/* Messages d'information / confirmation sucesptibles d'être affichés
*/
var t_confirm_ajout_article1 = '';
var t_confirm_ajout_article2 = '';
var t_confirm_annule_article = '';
var t_confirm_annule_panier = '';

/* Messages d'erreurs sucesptibles d'être affichés
*/

// Catalogue
var t_erreur_taille = '';
var t_erreur_couleur = '';
var t_erreur_quantite = '';
var t_erreur_quantite_minimum = '';

// Panier
var t_erreur_quantite_panier = '';

// Coordonnées du client
var t_erreur_conditions_vente = '';
var t_erreur_nom_client = '';
var t_erreur_prenom_client = '';
var t_erreur_adresse_client = '';
var t_erreur_code_postal_client = '';
var t_erreur_ville_client = '';
var t_erreur_pays_client = '';
var t_erreur_pays_client_france = '';
var t_erreur_pays_client_livraison = '';
var t_erreur_email_client = '';
var t_erreur_telephone_client = '';
var t_erreur_code_client = '';
var t_erreur_code_client_confirm = '';

// Adresse de livraison
var t_erreur_livraison = '';
var t_erreur_nom_livraison = '';
var t_erreur_prenom_livraison = '';
var t_erreur_adresse_livraison = '';
var t_erreur_code_postal_livraison = '';
var t_erreur_ville_livraison = '';
var t_erreur_pays_livraison = '';

// Erreurs sur la validité d'un code postal / numéro de téléphone
var t_erreur_code_postal_forme = '';
var t_erreur_telephone_forme = '';

// Erreurs sur la validité d'une adrese e-mail
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 = '';

// Modalité de paiement
var t_erreur_mode_paiement = '';

/* Initialise les messages d'information / confirmation suivant la langue à utiliser
*
* Paramètre
*	lang : langue à utiliser pour les messages d'information / confirmation
*/
function initTexteInfo(lang){
	if(lang == 'fr'){
		t_confirm_ajout_article1 = 'L\'article ';
		t_confirm_ajout_article2 = ' a bien été ajouté dans le panier.';
		t_confirm_ajout_article2 += '\nLorsque vous avez terminé votre sélection, cliquez sur "Mon panier", en rouge sous le logo Intersport, pour enregistrer votre commande.';
		t_confirm_annule_article = 'Confirmez l\'annulation de cet article';
		t_confirm_annule_panier = 'Confirmer l\'annulation de votre panier.';
	}
	else{
		t_confirm_ajout_article1 = 'The article ';
		t_confirm_ajout_article2 = ' has been added in your flightcase.';
		t_confirm_ajout_article2 += '\nWhen you have selected all you need, click on "My flightcase", under Intersport logo, to proceed to the check-out.';
		t_confirm_annule_article = 'Please confirm article deletion.';
		t_confirm_annule_panier = 'Please confirm flightcase deletion.';
	}
}

/* Initialise les messages d'erreurs suivant la langue à utiliser
*
* Paramètre
*	lang : langue à utiliser pour les messages d'erreur
*/
function initTexteErreur(lang){
	if(lang == 'fr'){
		// Catalogue
		t_erreur_taille = 'Veuillez sélectionner une taille.';
		t_erreur_couleur = 'Veuillez sélectionner une couleur.';
		t_erreur_quantite = 'Veuillez sélectionner une quantité correcte (que des chiffres).';
		t_erreur_quantite_minimum = 'Veuillez sélectionner au moins X articles.';
		
		// Panier
		t_erreur_quantite_panier = 'Vous ne pouvez commandez que par lot de 6.';
		
		// Coordonnées client
		t_erreur_conditions_vente = 'Merci de bien vouloir accepter les conditions générales de vente avant de continuer.';
		t_erreur_nom_client = 'Veuillez saisir votre nom avant de valider la commande.';
		t_erreur_prenom_client = 'Veuillez saisir votre prénom avant de valider la commande.';
		t_erreur_adresse_client = 'Veuillez saisir votre adresse avant de valider la commande.';
		t_erreur_code_postal_client = 'Veuillez saisir votre code postal avant de valider la commande.';
		t_erreur_ville_client = 'Veuillez saisir votre ville avant de valider la commande.';
		//t_erreur_pays_client = 'Veuillez sélectionner votre pays avant de valider la commande.';
		t_erreur_pays_client = 'Veuillez saisir votre pays avant de valider la commande.';
		t_erreur_pays_client_france = 'La commande n\'est valable que pour la France métropolitaine';
		t_erreur_pays_client_livraison = 'Votre pays doit être le même que celui sélectionné pour les frais de port.';
		t_erreur_email_client = 'Veuillez saisir votre adresse e-mail pour que nous puissions vous recontacter.';
		t_erreur_telephone_client = 'Veuillez saisir votre numéro de téléphone pour que nous puissions vous recontacter.';
		t_erreur_code_client = 'Veuillez saisir un mot de passe correct (5 lettres et chiffres au minimum).';
		t_erreur_code_client_confirm = 'Veuillez confirmez votre mot de passe.';
		
		// Adresse de livraison
		t_erreur_livraison = 'Veuillez choisir un moyen de livraison';
		t_erreur_nom_livraison = 'Veuillez saisir le nom du destinataire avant de valider la commande.';
		t_erreur_prenom_livraison = 'Veuillez saisir le prénom du destinataire avant de valider la commande.';
		t_erreur_adresse_livraison = 'Veuillez saisir l\'adresse du destinataire avant de valider la commande.';
		t_erreur_code_postal_livraison = 'Veuillez saisir le code postal du destinataire avant de valider la commande.';
		t_erreur_ville_livraison = 'Veuillez saisir la ville du destinataire avant de valider la commande.';
		t_erreur_pays_livraison = 'Veuillez sélectionner le pays de livraison avant de valider la commande.';
		
		// Code postal / téléphone
		t_erreur_code_postal_forme = 'n\'est pas la forme d\'un code postal (5 chiffres attachés).';
		t_erreur_telephone_forme = 'n\'est pas la forme d\'un numéro de téléphone (10 chiffres attachés).';
		
		// E-mail
		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.';
		
		// Modalité de paiement
		t_erreur_mode_paiement = 'Veuillez choisir votre mode de paiement.';
	}
	else{
		// Catalogue
		t_erreur_taille = 'Please select a size.';
		t_erreur_couleur = 'Please select a color.';
		t_erreur_quantite = 'Please select a valid quantity (digits only).';
		t_erreur_quantite_minimum = 'Please select X articles at least.';
		
		// Panier
		t_erreur_quantite_panier = ' You must order articles 6 by 6.';
		
		// Coordonnées client
		t_erreur_conditions_vente = 'Thanks for accepting general terms before continuing.';
		t_erreur_nom_client = 'Please enter your last name before submitting the order.';
		t_erreur_prenom_client = 'Please enter your first name before submitting the order.';
		t_erreur_adresse_client = 'Please enter your adress before submitting the order';
		t_erreur_code_postal_client = 'Please enter your zip code before submitting the order';
		t_erreur_ville_client = 'Please enter your city before submitting the order';
		t_erreur_pays_client = 'Please enter your country before submitting the order';
		t_erreur_pays_client_france = 'The order is possible only since France';
		t_erreur_pays_client_livraison = 'Your country must be the same as the selected one for postage and packing.';
		t_erreur_email_client = 'Please enter your e-mail adress.';
		t_erreur_telephone_client = 'Please enter a phone number.';
		t_erreur_code_client = 'Please enter a valid password (5 letters and digits at least).';
		t_erreur_code_client_confirm = 'Please confirm your password.';
		
		// Adresse de livraison
		t_erreur_livraison = 'Please choose how to deliver the order.';
		t_erreur_nom_livraison = 'Please enter the receiver last name before submitting the order.';
		t_erreur_prenom_livraison = 'Please enter the receiver first name before submitting the order.';
		t_erreur_adresse_livraison = 'Please enter the receiver adress before submitting the order';
		t_erreur_code_postal_livraison = 'Please enter the receiver zip code before submitting the order';
		t_erreur_ville_livraison = 'Please enter the receiver city before submitting the order';
		t_erreur_pays_livraison = 'Please enter the delivery country before submitting the order';
		
		// Code postal / téléphone
		t_erreur_code_postal_forme = 'is not an postcode (5 digits).';
		t_erreur_telephone_forme = 'is not a phone number (10 digits).';
		
		// E-mail
		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.';
		
		// Modalité de paiement
		t_erreur_mode_paiement = 'Please choose your payment mode.';
	}
}

/* Vérifie la validité d'une adresse e-mail
*
* Paramètre
*	email : adresse e-mail à tester
*
* Retour
*	true : si l'adresse e-mail est bonne
*	false : sinon. Le message adéquat est aussi affiché, suivant le type d'erreur
*/
function verifEmail(email){
	if(email.length < 6){
		alert(email + " : " + t_erreur_email_trop_court);
		return false;
	}
	if(email.length > 255){
		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;
}

/* Vérifie la validité d'un champs radio / case à cocher
*
* Retour
*	true : si au moins une case est cochée
*	false : sinon.
*/
function verifRadio(champs_radio){
	radioOk = false;
	for(i = 0; i < champs_radio.length; i++){
		if(champs_radio[i].checked){
			radioOk = true;
			break;
		}
	}
	
	return radioOk;
}

/* Vérifie la validité d'un élément de formulaire nommé comme tableau
*
* Paramètres
*	formulaire : formulaire contenant l'élément
*	nom_tableau : nom de l'élément
*   message_erreur : message si erreur
*
* Retour
*	true : si un élément de l'un deutableau n'est pas sélectionné
*	false : sinon.
*/
function verifTableau(formulaire, nom_tableau, message_erreur){
	for(i = 0; i < formulaire.elements.length; i++){
		if(formulaire.elements[i].name == nom_tableau + '[]'){
			if(formulaire.elements[i].selectedIndex == 0){
				alert(message_erreur);
				formulaire.elements[i].focus();
				return false;
			}
		}
	}
	
	return true;
}

/* Vérifie la validité d'un code postal
*/
function verifCodePostal(code_postal){
	if (isNaN(code_postal) || (!code_postal.match(/([0-9]{5})/i))){
		alert(code_postal + " " + t_erreur_code_postal_forme);
		return false;
	}
	
	return true;
}

/* Vérifie la validité d'un numéro de téléphone
*/
function verifTelephone(telephone){
	if (isNaN(telephone) || (!telephone.match(/([0-9]{5})/i))){
		alert(telephone + " " + t_erreur_telephone_forme);
		return false;
	}
	
	return true;
}

/* Vérifie la validité du code client
*/
function verifCode(code){
	if(code.length < 5 || !code.match(/^([0-9|a-z|A-Z|_|-]+)$/i)){
		alert(t_erreur_code_client);
		return false;
	}
	
	return true;
}

/*************************************** PANIER ********************************************************/

/* Calcule la quantite totale d'articles ajoutés au panier.
*
* Retour
*	Quantite totale d'articles ajoutés au panier.
*/
function calculerQuantiteTotale(){
	quantite_totale = 0;
	for(i = 0; i < document.forms.length; i++){
		if(document.forms[i].name == 'formArticle'){
			quantite_totale += parseInt(document.forms[i].quantite.value);
		}
	}
	
	return quantite_totale;
}

/* Vérifie si la quantité totale d'articles est correcte
*
* Paramètre
*  lang : langue à utiliser pour les messages d'erreurs
*/
function verifQuantiteTotale(valeur_mini, valeur_lot, lang){
	initTexteErreur(lang);
	quantite_totale = calculerQuantiteTotale();
	
	if(!(quantite_totale >= valeur_mini && (quantite_totale%valeur_lot == 0))){
		alert(t_erreur_quantite_panier);
		return false;
	}
	
	return true;
}

/* Vérifie si l'internaute a bien sélectionné un pays de livraison
*
* Paramètres
*	pays_livraison : champs SELECT correspondant au pays de livraison
*  lang : langue à utiliser pour les messages d'erreurs
*/
function verifPaysLivraison(pays_livraison, lang){
	initTexteErreur(lang);
	
	if(pays_livraison.selectedIndex == 0){
		alert(t_erreur_pays_livraison);
		return false;
	}
	
	return true;
}

/* Vérifie si on cherche à supprimer un article du panier
*
* Paramètres
*	quantite : quantité à attribuer à l'article
*   lang : langue à utiliser pour le message
*
* Retour
*	true : si on confirme l'annulation de l'article (quantite nulle)
*	false : sinon
*/
function verifQuantite(quantite, lang){
	if (!quantite.value.match(/^([0-9])+$/i) || quantite.value == ""){
		initTexteErreur(lang);
		window.alert(t_erreur_quantite);
		quantite.focus();
		return false;
	}
	//else if (quantite.options[quantite.selectedIndex].value == 0){
	else if (quantite.value == 0){
		initTexteInfo(lang);
		return window.confirm(t_confirm_annule_article);
	}
	
	return true;
}

/* Effectue l'ajout d'un article
*
* Paramètres
*	formulaire : formulaire ajoutant l'article
*   lang : langue à utiliser pour le message
*/
function verifFormAjout(formulaire, lang){
	initTexteErreur(lang);
	
	if(formulaire.taille_choisie != undefined){
		if(formulaire.taille_choisie.selectedIndex == 0){
			alert(t_erreur_taille);
			formulaire.taille_choisie.focus();
			return false;
		}
	}
	
	for(i = 0; i < formulaire.elements.length; i++){
		if(formulaire.elements[i].name == 'couleur_choisie[]'){
			if(formulaire.elements[i].selectedIndex == 0){
				alert(t_erreur_couleur);
				formulaire.elements[i].focus();
				return false;
			}
		}
	}
	
	if (!formulaire.quantite_choisie.value.match(/^([0-9])+$/i) || formulaire.quantite_choisie.value == 0 || formulaire.quantite_choisie.value == ""){
		alert(t_erreur_quantite);
		formulaire.quantite_choisie.focus();
		return false;
	}
	else if (parseInt(formulaire.quantite_choisie.value) < parseInt(formulaire.quantite_minimum.value)){
		alert(t_erreur_quantite_minimum.replace(/X/, formulaire.quantite_minimum.value));
		formulaire.quantite_choisie.focus();
		return false;
	}
	
	return true;
}

/* Effectue l'ajout d'un article
*
* Paramètres
*   lang : langue à utiliser pour le message
*/
function ajouterPanier(formulaire, lang){
	if(verifFormAjout(formulaire, lang)){
		formulaire.submit();
	}
}

/* Effectue la suppression d'un article
*
* Paramètres
*  lien : lien vers le script php qui effectue la suppression
*  lang : langue à utiliser pour le message
*/
function supprimerArticle(lien, lang){
	initTexteInfo(lang);
	if(window.confirm(t_confirm_annule_article)){
		location.replace(lien);
	}
	else{
		location.reload();
		return true;
	}
}

/* Demande la confirmation pour vider le panier
*
* Paramètre
*  lang : langue à utiliser pour le message
*/
function confirmVider(lang){
	initTexteInfo(lang);
	return window.confirm(t_confirm_annule_panier);
}

/* Affiche le message confirmant l'ajout d'un article
*
* Paramètres
*	nom_article : nom de l'article que l'on vient de mettre dans le panier
*  lang : langue à utiliser pour le message
*/
function confirmAjout(nom_article, lang){
	initTexteInfo(lang);
	alert(t_confirm_ajout_article1 + '"' + nom_article + '"' + t_confirm_ajout_article2);
}

/* Cache le lien vers le panier
*
* Paramètre
*   idCalque : identifiant du calquedans lequel est inséré le lien
*/
function cacherLienPanier(idCalque){
	  var calque = document.getElementById(idCalque);
	  calque.style.display = 'none';
}

/*************************************** CLIENT ********************************************************/

/* Cette fonction vérifie le choix sur la modalité de livraison
*
* On peut ainsi :
* - soit venir chercher les articles en magasin,
* - soit se les faire livrer à sa propre adresse,
* - soit se les faire livrer à une autre adresse (les 2 cases doivent être décochées)
* 
* Il peut n'y avoir qu'une seule case cochée à la fois, mais les 2 peuvent être décochées en même temps.
*/
function verifLivraison(livraison_meme_adresse, venir_au_masagin, pays_livraison){	
	if(livraison_meme_adresse.checked){
		if(venir_au_masagin != null && venir_au_masagin.checked){
			venir_au_masagin.checked = false;
		}
		
		if(pays_livraison == undefined || pays_livraison == 0){
			return;
		}
		
		with(document.formClient){
			for(i = 0; i < pays_client.length; i++){
				if(pays_client.options[i].value == pays_livraison){
					pays_client.options[i].selected = true;
					return;
				}
			}
		}
	}
}

/* Vérifie la validité du formulaire envoyant la commande
*
* Paramètres
*	formulaire : formulaire envoyant la commande
*   lang : langue à utiliser pour les messages d'erreurs
*	num_autre_livraison : indice du champs indiquant le mode de livraison à une autre adresse
*/
function verifFormCommande(formulaire, lang, num_autre_livraison){
	initTexteErreur(lang);
	formOK = false;
	
	if (verifFormClient(formulaire)){
		formOK = true;
		//if (!formulaire.livraison.checked && !formulaire.livraison_meme_adresse.checked){
		if (formulaire.livraison[num_autre_livraison].checked){
			if(verifFormLivraison(formulaire)){
				formOK = true;
			}
			else{
				formOK = false;
			}
		}
		/*else if (formulaire.livraison.checked && formulaire.livraison_meme_adresse.checked){
			alert(t_erreur_livraison);
			return false;
		}*/
	}
	
	return formOK;
}

/* Vérifie la validité du formulaire, partie coordonnées du client
*
* Paramètres
*	formulaire : formulaire envoyant la commande
*/
function verifFormClient(formulaire){
	if(!formulaire.conditions_vente.checked){
		alert(t_erreur_conditions_vente);
		return(false);
	}
	
	if(formulaire.nom_client.value == ""){
		alert(t_erreur_nom_client);
		formulaire.nom_client.focus();
		return false;
	}
	if(formulaire.prenom_client.value == ""){
		alert(t_erreur_prenom_client);
		formulaire.prenom_client.focus();
		return false;
	}
	if(formulaire.adresse_client.value == ""){
		alert(t_erreur_adresse_client);
		formulaire.adresse_client.focus();
		return false;
	}
	if(formulaire.code_postal_client.value == ""){
		alert(t_erreur_code_postal_client);
		formulaire.code_postal_client.focus();
		return false;
	}
	if(formulaire.ville_client.value == ""){
		alert(t_erreur_ville_client);
		formulaire.ville_client.focus();
		return false;
	}
	//if(formulaire.pays_client.selectedIndex == 0){
	if(formulaire.pays_client.value == ""){
		alert(t_erreur_pays_client);
		formulaire.pays_client.focus();
		return false;
	}
	if(formulaire.telephone_client.value == ""){
		alert(t_erreur_telephone_client);
		formulaire.telephone_client.focus();
		return false;
	}
	if(formulaire.email_client.value == ""){
		alert(t_erreur_email_client);
		formulaire.email_client.focus();
		return false;
	}
	if(!verifEmail(formulaire.email_client.value)){
		formulaire.email_client.focus();
		return false;
	}
	
	if(!verifCode(formulaire.code_client.value)){
		formulaire.code_client.focus();
		return false;
	}
	if(formulaire.code_client.value != formulaire.code_client_confirm.value) {
		alert(t_erreur_code_client_confirm);
		formulaire.code_client_confirm.focus();
		return false;
	}
	
	if(!verifRadio(formulaire.livraison)){
		alert(t_erreur_livraison);
		return false;
	}
	
	return true;
}

/* Vérifie la validité du formulaire, partie adresse de livraison
*
* Paramètres
*	formulaire : formulaire envoyant la commande
*/
function verifFormLivraison(formulaire){
	if(formulaire.nom_livraison.value == ""){
		alert(t_erreur_nom_livraison);
		formulaire.nom_livraison.focus();
		return false;
	}
	if(formulaire.prenom_livraison.value == ""){
		alert(t_erreur_prenom_livraison);
		formulaire.prenom_livraison.focus();
		return false;
	}
	if(formulaire.adresse_livraison.value == ""){
		alert(t_erreur_adresse_livraison);
		formulaire.adresse_livraison.focus();
		return false;
	}
	if(formulaire.code_postal_livraison.value == ""){
		alert(t_erreur_code_postal_livraison);
		formulaire.code_postal_livraison.focus();
		return false;
	}
	if(formulaire.ville_livraison.value == ""){
		alert(t_erreur_ville_livraison);
		formulaire.ville_livraison.focus();
		return false;
	}
	//if(formulaire.pays_livraison.selectedIndex == 0){
	if(formulaire.pays_livraison.value == ""){
		alert(t_erreur_pays_livraison);
		formulaire.pays_livraison.focus();
		return false;
	}
	/*if(formulaire.pays_livraison.value != 6){
		alert(t_erreur_pays_client_france);
		formulaire.pays_livraison.focus();
		return false;
	}*/
	
	return true;
}

/* Vérifie la validité du formulaire de paiement
*
* Paramètres
*	formulaire : formulaire de paiement
*  lang : langue à utiliser pour les messages d'erreurs
*/
function verifFormPaiement(formulaire, lang){
	initTexteErreur(lang);
	
	if(formulaire.modalite_paiement.selectedIndex == 0){
		alert(t_erreur_mode_paiement);
		return false;
	}
	
	return true;
}
-->
