/* On crée une fonction qui recalcule la valeur du champttc = (champquantite.value * montantht * tauxtva) + champfraisexpedition */
function CalculSomme(champquantite, montantht, champttc, champfraisexpedition)
{
	var fltvaleur;
	fltvaleur = Math.round((champquantite.value * montantht * 1.196)*100)/100;
	champfraisexpeditionttc = Math.round((champfraisexpedition.value * 1 * 1.196)*100)/100;
	champttc.value = Math.round((fltvaleur + champfraisexpeditionttc)*100)/100; 
/*	champttc.value = Math.round((((champquantite.value * montantht)+ champfraisexpedition.value*1) * 1.196)*100)/100;*/
}
/*
Fonction qui met à jour le montant des frais postaux
Si checkedboxcourrier est cochée, alors on modifie la valeur de champfraisexpedition.
'en fonction de la champquantite.value et du nombre d'exemplaire par expédition (nbexpedition)
on calcule le montant des frais d'expédition pour l'article en cours
champfraisexpedition = (Partie entière (champquantite.value /nbexpedition) + 1) * montantfrais
Si checkedboxcourrier est décochée, alors on met champfraisexpedition = 0 et champquantite = 1.
Puis, on recalcule les frais postaux à ajouter et on met à jour "champquantitecache.value".
*/
function CalculFraisPostaux(checkedboxcourrier, champquantite, champfraisexpedition, nbexpedition ,montantfrais,montantConsult,checkedboxconsult, TypeArticle){
	var intvaleur;
	//on trouve le nombre de documents envoyés par courrier


	if (checkedboxcourrier.checked == true){
/*		intvaleur = Math.floor((champquantite.value*1 - 1)/ nbexpedition*1)
		intvaleur = intvaleur*1 + 1
		intvaleur = intvaleur * montantfrais*1*/
		intvaleur = eval(champquantite.value*1)*eval(montantfrais)

		if (checkedboxconsult.checked == true) {
			intvaleur = intvaleur + montantConsult
			
			/* /!\ Si KBIS et les 2 cases cochées (consult + expé), on ajoute 1.95.
			(Expe uniquement : 0.54 ; Consult uniquement : 0 ; les 2 : 2.49) */
			//if (TypeArticle == 'EXKBIS') {
			//	intvaleur = intvaleur + 1.95
			//}
			// fin modif
		}

		intvaleur = Math.round(intvaleur*100)
		intvaleur = intvaleur/100
		
		champfraisexpedition.value = Math.round(intvaleur*100)/100
		champquantite.disabled = 0
	}
	else {
		//on remet la quantité à 1 si elle était différente de 0
		if (champquantite.value > 0 ){
			champquantite.value = 1
		}
		intvaleur = 0
		if (checkedboxconsult.checked == true) {
			intvaleur = intvaleur + montantConsult
			//if (TypeArticle == 'EXKBIS') {
			//	intvaleur = intvaleur + 1.95
			//}

		}
		
		champfraisexpedition.value = Math.round(intvaleur*100)/100
		champquantite.disabled = 1
	}

}

/*
Le champquantite vient d'être modifié, 
Si checkedboxcourrier est cochée on calcule les frais postaux et on met à jour le total
Sinon, on met champquantite à 1
*/
function MajQuantite(checkedboxcourrier, champquantite, champfraisexpedition, nbexpedition ,montantfrais,montantconsult,checkedboxconsult,TypeArticle){

	if (checkedboxcourrier.checked == true){
		CalculFraisPostaux(checkedboxcourrier, champquantite, champfraisexpedition, nbexpedition , montantfrais,montantconsult,checkedboxconsult, TypeArticle);
	}
	else{
		champquantite.value = 1;
		champquantitecache.value = 0;
	}
}

function VerifQuantite(champquantite){
	var x=champquantite.value
	var anum=/(^\d+$)/
	if (anum.test(x))
		testresult=true
	else{
		alert("Vous devez saisir une quantité entière.")
		testresult=false
	}
	return (testresult)
}

/* On crée une fonction qui recalcule la valeur du total frais d'expédition et du total TTC en additionnant les nb champs correspondants*/
function CalculTotal(nb)
{
	nbTotalExp = 0;
	nbTotalTTC = 0;
	
	for (i = 0; i< nb ; i++){
		ttcname = "ttc" + i;
		nbTotalTTC = Math.round((nbTotalTTC + (formulaire[ttcname].value) * 1) * 100)/100;
	}

	for (i = 0; i< nb ; i++){
		expname = "expedition" + i;
		nbTotalExp = Math.round((nbTotalExp + (formulaire[expname].value) * 1) * 100)/100;
	}
	document.formulaire.totalExpedition.value = Math.round(nbTotalExp*100)/100;	
	document.formulaire.totalTTC.value = Math.round(nbTotalTTC*100)/100;
}

/*
Fonction qui vérifie si au moins un type d'envoi est sélectionné pour un article
si caseencours est cochée, on ajoute 1 à champnbcase et si la quantité est à 0 on la remet à 1
si caseencours est décochée, on retranche 1 à champnbcase
si champnbcase <=0 alors on met champquantite  à 0

Attention, il faut bien penser à appeler les fonctions MajQuantite MajFraisPostaux CalculTotal après appel de cette fonction
*/
function VerifCaseCoche(caseencours, champnbcase, champquantite){

	if (caseencours.checked){
		champnbcase.value = champnbcase.value*1 + 1;

		if (champquantite.value == "0"){
			champquantite.value = 1;
		}
	}
	else{
		champnbcase.value = champnbcase.value*1 - 1;
	}
	
	if (champnbcase.value <= 0 ){
		champnbcase.value = 0;
		champquantite.value = 0;
	}
}



function Calcul(paramZone)
	{
	var iLongueur, iLongueurRestante;
	iLongueur = paramZone.value.length;
	if (iLongueur>200) {
		paramZone.value = paramZone.value.substring(0,200);
	}
}


function VerifFormulaireNonAbonne(nb){
	if (DialogueArticleVide(nb)){
		if (document.formulaire.NomFacturation.value == "") {
			alert("Vous devez saisir un Nom.");
			}
		else{
			if (document.formulaire.PrenomFacturation.value == ""){
				alert("Vous devez saisir un Prénom.");
			}
			else{
				if (document.formulaire.AdresseFacturation.value == ""){
					alert("Vous devez saisir une adresse.");
				}
				else{
					if (document.formulaire.CodePostalFacturation.value == ""){
						alert("Vous devez saisir un code postal.");
					}
					else{
						if (document.formulaire.VilleFacturation.value == ""){
							alert("Vous devez saisir la ville.");
						} 
						else{
							if (!ValidEmail(document.formulaire.EmailFacturation.value)){
								alert("Vous devez saisir un Courriel valide. \n L'Email ne doit pas contenir ni d'accents, ni d'espaces.");
							} 
							else{
								if (document.formulaire.EmailFacturation.value!=document.formulaire.EmailFacturationConfirm.value) {
									alert("Le courriel et sa confirmation ne correspondent pas. \n Veuillez vérifier votre saisie.");
								} else {								
									document.formulaire.action = "scripts/validepanier.asp";
									document.formulaire.submit();
								}
							}
						}
					}
				}
			}
		}
	}
}


/*fonction qui informe l'internaute que les articles pour lesquels aucun envoi n est choisi ne seront pas insérés dans le panier*/
function DialogueArticleVide(nb){
	var envoivalide;
	envoivalide = true;
	
	if (nb==undefined) nb=1;

	for (i = 0; i< nb ; i++){
		if (eval("document.formulaire.nbcase" + i + ".value") == "0"){
			alert("Vous devez choisir au moins un type d'envoi.");
			envoivalide = false;
			i = nb;
		}
	}
	return envoivalide;
}

function VerifFormulairePro(nb){
	var result;
	result = DialogueArticleVide(nb);
	if(result == true){
	//on vérifie que les coordonnées d'envoi sont bien saisies
		if (document.formulaire.NomEnvoi.value == "") {
			alert("Vous devez saisir un Nom pour l'expédition.");
			}
		else{
			if (document.formulaire.AdresseEnvoi.value == ""){
				alert("Vous devez saisir une adresse d'expédition.");
			}
			else{
				if (document.formulaire.CodePostalEnvoi.value == ""){
					alert("Vous devez saisir un code postal d'expédition.");
				}
				else{
					if (document.formulaire.VilleEnvoi.value == ""){
						alert("Vous devez saisir la ville d'expédition.");
					} 
					else{
						if (document.formulaire.Reference.value == ""){
							alert("Vous devez saisir une référence.");
						} 
						else{
							if (document.formulaire.EmailAbonne.value == ""){
								alert("Vous devez saisir un Courriel valide. \n L'Email ne doit pas contenir ni d'accents, ni d'espaces.");
							} 
							else{
								document.formulaire.action = "scripts/validepanier.asp";
								document.formulaire.submit();
							}
						}
					}
				}
			}
		}
	}
}

function VerifFormulaireTribunal(nb){
	var result;
	result = DialogueArticleVide(nb);
	if(result == true){
		document.formulaire.action = "scripts/validepanier.asp";
		document.formulaire.submit();
	}
}

function ConfirmSup(ID, libelle){
	if (confirm("Confirmer la suppression de l'article : " + libelle)){
		document.formulaire.action = "scripts/supprime_article.asp?id=" + ID;
		document.formulaire.submit();
	}
}

//fonction de validation de l'email
function ValidEmail(mail){
	var nb_arobas = 0;
	var code;
	mail = mail.trim();
	document.formulaire.EmailFacturation.value = mail;
	if (! mail.length >= 5) return false;
	if (mail.indexOf('.',0) == -1) return false;
	if (mail.indexOf('@',0) == -1) return false;
	for (var cpt=0; cpt<mail.length; cpt++) {
		if (mail.substr(cpt, 1) == ' ') return false;
		if (cpt==(mail.length-1)) {
			code = mail.charCodeAt(cpt);
			if (code<65) return false;
			if (code>90) {
				if (code<97) return false;
				else {
					if (code > 122) return false;
				}
			}
		}
		if ((mail.substr(cpt, 1) != ".") && (mail.substr(cpt, 1) != "_") && (mail.substr(cpt, 1) != "-")) {
			if (mail.substr(cpt, 1) == "@") {
				if (nb_arobas>=1) return false
				else nb_arobas++;
			} else {
				code = mail.charCodeAt(cpt);
				if (code<48) return false;
				else {
					if (code>49) {
						if ((code > 57) && (code < 65)) return false;
						else {
							if (code > 90) {
								if (code<97) return false;
								else {
									if (code>122) return false;
								}
							}
						}
					}
				}
			}
		}
		
	}
	return true;
}

String.prototype.trim = function()
{
	return this.replace(/(?:^\s+|\s+$)/g, "");
} 

