// Les fonctions sont rangées dans l'ordres alphabétique après les fonctions systeme
// *****************************************************************
// Variables communes et fonctions systeme

// Variables
// *********

var tab=unescape("%09"); // tabulation
var lf=unescape("%0A"); // Line feed
var cr=unescape("%0D"); // Carriage return
var TexteCB=""
var changtOK=false
var NbArt=0;
var TotalAchats = 0.00;
var TotalCommande = 0.00;
var PoidsCommande = 0.00; //16/03/2010 pour Intégration du Poids
var CoutDuPort = 0.00;	// Prix du transport
var frais_pp = 0.00;	// frais paypal à 0
var CommandeNum = 0;
var DerniereLigne = 0;
var n1=117926
var x1=7
var LePlus = ""
	
var LesArticles = new Array();	// 16/03/2010 pour Intégration du Poids

	//Ancien    0=Vide(pour simplifier pointage)  1=Référence 2=Descriptif 3=PrUnité 4=Quantité 5=Total
	//Nouveau   0=Vide(pour simplifier pointage)  1=Référence 2=Descriptif 3=PrUnité
	//          4=PoUnité  5=Quantité 6=PrLigne  7=PoLigne

		LesArticles[0] = new Array("","","",0.00,0.00,0,0.00,0.00);
		LesArticles[1] = new Array("","","",0.00,0.00,0,0.00,0.00);
		LesArticles[2] = new Array("","","",0.00,0.00,0,0.00,0.00);
		LesArticles[3] = new Array("","","",0.00,0.00,0,0.00,0.00);
		LesArticles[4] = new Array("","","",0.00,0.00,0,0.00,0.00);
		LesArticles[5] = new Array("","","",0.00,0.00,0,0.00,0.00);
		LesArticles[6] = new Array("","","",0.00,0.00,0,0.00,0.00);
		LesArticles[7] = new Array("","","",0.00,0.00,0,0.00,0.00);
		LesArticles[8] = new Array("","","",0.00,0.00,0,0.00,0.00);
		LesArticles[9] = new Array("","","",0.00,0.00,0,0.00,0.00);
		LesArticles[10] = new Array("","","",0.00,0.00,0,0.00,0.00);
		LesArticles[11] = new Array("","","",0.00,0.00,0,0.00,0.00);
		LesArticles[12] = new Array("","","",0.00,0.00,0,0.00,0.00);
		LesArticles[13] = new Array("","","",0.00,0.00,0,0.00,0.00);
		LesArticles[14] = new Array("","","",0.00,0.00,0,0.00,0.00);
		LesArticles[15] = new Array("","","",0.00,0.00,0,0.00,0.00);
		LesArticles[16] = new Array("","","",0.00,0.00,0,0.00,0.00);
		LesArticles[17] = new Array("","","",0.00,0.00,0,0.00,0.00); // sert pour la RAZ du dernier (le 16)
var DernierLigne=0;	// pour connaitre la ligne du règlement Paypal dans le tableau affiché

var C_origine = "";
var ID_origine = "";
// Tarif 01/05/2011
var TablePoids = new Array  (   0.01,   0.51,   1.01,   2.01,   3.01,   4.01,    5.01,    6.01,     7.01,    8.01,   9.01,    10.01,   15.01,   20.01,   25.01);// Limites de Poids
var TablePrix = new Array() // Tous les prix sont au taux R1
	TablePrix[0] = new Array(   7.85,   8.54,  10.10,  11.00,  11.90,  12.75,   13.70,   14.80,    15.50,   16.50,   17.50,   19.75,   26.30,   26.30,   26.30); // Prix Metropole R1
	TablePrix[1] = new Array(  12.30,  15.00,  20.20,  25.30,  30.40,  35.50,   40.65,   45.75,    50.85,   56.00,   61.00,   85.00,  110.60,  136.00,  161.75); // Prix Zone OM 1
	TablePrix[2] = new Array(  18.00,  22.00,  34.00,  46.00,  58.00,  70.00,   82.00,   94.00,    106.00, 118.00,  130.00,  190.00,  250.00,  310.00,  370.00); // Prix Zone OM 2
	TablePrix[3] = new Array(  14.00,  14.00,  14.80,  15.70,  16.50,  17.40,   18.20,   19.00,    19.80,   20.70,   21.60,   25.75,   30.00,   34.10,   38.30); // Prix Zone A BRUXELLE
	TablePrix[4] = new Array(  19.40,  19.40,  22.80,  26.50,  30.20,  33.90,   37.60,   41.30,    45.00,   48.70,   52.40,   68.40,   84.40,  104.80,  110.70); // Prix Zone B ALGERIE
	TablePrix[5] = new Array(  24.10,  24.10,  31.80,  39.50,  47.10,  54.75,   62.40,   70.10,    77.70,   85.40,   93.00,  125.00,  157.00,  189.00,  221.00); // Prix Zone C Canada
	TablePrix[6] = new Array(  26.80,  26.80,  36.90,  47.00,  57.00,  67.10,   77.30,   87.40,    97.50,  107.50,  117.70,  159.70,  201.70  ,243.70,  285.70); // Prix Zone D Hong Kong

function InfoPays(){
	alert("Info Select = " + document.Cmde.pays.value)     //selectedIndex)
	}
	
function Calcul_Port(){
var i=0	// variables propres
var zone = document.Cmde.pays.value	// valeur de la selection Pays. Initialisées de 0 à 6 dans les pages
	CoutDuPort = TablePrix[zone][14]	// Prix le plus Haut par défaut
	for (i=0;i<14;i++) {
		if((PoidsCommande>=TablePoids[i])&&(PoidsCommande<TablePoids[i+1])){
			CoutDuPort=TablePrix[zone][i]; // Indexé sur la table des prix
			}
		}
	if (PoidsCommande==0.00) CoutDuPort=0.00
	frais_pp = 0.00	// Raz frais paypal
	document.Cmde.encaissement.value = "0.00"
	if (document.Cmde.pp.value=="1"){	//
		frais_pp = (TotalAchats + CoutDuPort) * 0.034 + 0.25;	// pour total < 2500
		if (TotalCommande>255.00) {
			frais_pp = (TotalAchats + CoutDuPort) * 0.020 + 0.25; // au dessus
			}
		document.Cmde.encaissement.value = StringDecimale(frais_pp);
		if (DerniereLigne>0) {
			LesArticles[DerniereLigne][3] = StringDecimale(CoutDuPort + frais_pp)
			LesArticles[DerniereLigne][4] = " "
			LesArticles[DerniereLigne][5] = "1"
			LesArticles[DerniereLigne][6] = StringDecimale(CoutDuPort + frais_pp)
			WriteTableCaddie(DerniereLigne,3,LesArticles[DerniereLigne][3]);
			WriteTableCaddie(DerniereLigne,6,LesArticles[DerniereLigne][6]);
			}
		}
	TotalCommande = TotalAchats + CoutDuPort + frais_pp; // Recalculer
	document.Cmde.expedition.value = StringDecimale(CoutDuPort);
	document.Cmde.totgen.value = StringDecimale(TotalCommande);
	Set_Cookie("Tcmde",document.Cmde.totgen.value,12); // Total Commande
	} // Fin de la fonction Calcul_Port

function src_Change(Demande,CadreDestination) { // Le 27/03/2010
//*************************************************
// Fonction de Navigation appelée En cliquant sur un nom de produit.
// affichera dans un cadre (iFrame) dont id='CadreArticle'
// une page dont l'Url est passée dans la variable Demande
//	Testé : OK
	var cible=FP_getObjectByID(CadreDestination)
	cible.src=Demande
	}



function Change_Image(Demande,CadreDestination) { // Le 27/03/2010
//*************************************************
// Fonction de Navigation appelée En cliquant sur un nom de produit.
// affichera dans un cadre (iFrame) dont id='CadreArticle'
// une page dont l'Url est passée dans la variable Demande
//	Testé : OK
	document.getElementById(CadreDestination).src = Demande
	}

// Fonctions systeme
function LireLesCookies(nom) { // Créé uniquement pour la mise au point de programmation
	var C=""
	C = Get_Cookie(nom); alert(nom + " = "+ cr + C) // Test de Client

	}
function cache(idf) {
//*******************
	  if (document.getElementById) {
		  document.getElementById(idf).style.visibility="hidden";
		} else if (document.all) {
		  document.all[idf].style.visibility="hidden";
		} else if (document.layers) {
		  document.layers[idf].visibility="hidden";
		}
	}	

function sens(vers) {
// change le sens de défilement du marquee d' id = "defile"
defile.direction=vers
}

function Get_Cookie(name) {
//**********************
// Lire le cookie dénommé
    var start = document.cookie.indexOf(name+"="); // Trouver le nom du Cookie suivi de "="
    if (start == -1) return null;  // n'existe pas
    var len = start+name.length+1; // positionner le pointeur dans le Cookie intégral après le "="
    if ((!start) && (name != document.cookie.substring(0,name.length))) return null; // Le Cookie n'existe pas
    var end = document.cookie.indexOf(";",len); // Chercher la fin du cookie
    if (end == -1) end = document.cookie.length; // Cookie vide
    return unescape(document.cookie.substring(len,end)); // envoyer le contenu du cookie
	}

function InitCookie() {	// 16/03/2010 Intégration Poids
//*******************
	if(document.cookie.length==0) {
	// Créer les 7 champs du Cookie Validité : 12 Heure
		Set_Cookie("Client","",365*24); // Client 1 an
		Set_Cookie("REGLT","e",12); // Mode reglement "e" pour executé ou non initialisé
		Set_Cookie("VotreCaddie","",12); // VotreCaddie
		Set_Cookie("NB","",12); // Nombre d"articles
		Set_Cookie("Tcmde","",12); // Total Commande
		Set_Cookie("Tpoids","",12); // Poids Commande
		Set_Cookie("CmdeNum","",12); // Numéro de commande valide
		Set_Cookie("Compte","",1)
		} // fin du if
	Set_Cookie("OK","1",24*10); // Valide 10 jours Pour Tester si le système accepte les cookie
	} // fin de l'initialisation du Cookie chez le client		

function Set_Cookie(name,Content,heures) {
//*************************************
	var expdate = new Date () ; // crée un objet date indispensable 
	var Delais = heures*60*60*1000; // Validité : nbr Heures x millisecondes
	if (heures>0) {
		expdate.setTime(expdate.getTime() + Delais); // Fixer l'expiration en ajoutant le Delais
		document.cookie = name +"=" + Content + "; expires=" + expdate.toGMTString(); // Ecrire le cookie sur le disque
		}
	else document.cookie = name + "=" + Content; // Valable pour la session

	} // fin des Set_Cookie

function TestCookie() {	// 16/03/2010
//*******************
	var MessageCookie = "Votre Explorateur Internet n'accepte pas les Cookies." + cr + lf
	MessageCookie += "Votre Caddie restera vide." + cr + lf + lf
	MessageCookie += "Modifiez :" + cr + lf
	MessageCookie += "  [Options Internet ==> Confidentialité] de manière à les accepter" + cr + lf
	MessageCookie += "ou" + cr + lf +"  envoyez nous le détail de votre commande par Mail à ventes@jrcweb.fr"+ cr + lf
	MessageCookie += "Merci"
	var Accepte = "0";
	Accepte = Get_Cookie("OK"); // initialisé à "1" par InitCookie.
	if (Accepte=="0") alert(MessageCookie);
	} // fin du test cookie

function zoom(image,w,h)
//**********************
	{
	var FZ
	FZ = window.open (image,'FZ','top=0, left=0, resizable=yes, scrollbars=yes, width='+w+', height='+h);
	if (FZ.opener) {FZ.window.focus()}
	}
// fin de zoom

function new_windows(urlvar,l,h)
//******************************
	{
	var FC
	FC = window.open (urlvar,'FC','top=10, left=50, width='+l+', height='+h+', menubar=yes, status=yes, toolbar=yes, resizable=yes, scrollbars=yes');
	if (FC.opener) {FC.window.focus()}

	}  // fin de new_windows

function change_fond(xid,couleur)
//***********************
	{
	ID_origine = xid
	C_origine = document.getElementById(xid).style.backgroundColor;
	document.getElementById(xid).style.backgroundColor =couleur;
  	}

function restitue(idx)
//**********************
    {document.getElementById(idx).style.backgroundColor = C_origine;}

function on(pic) // visibilité d'un élément déterminé par id
//**************
{document.getElementById(pic).style.visibility='visible'}
	
function off(pic) // visibilité d'un élément déterminé par id
//***************
{document.getElementById(pic).style.visibility= 'hidden'}

// fin des fonctions systeme
//**************************

function Accueil() { // 22/09/2010 utilisation de la fonction split/2005
//*******************		détailler le Client
	var LeCookie = Get_Cookie("Client"); // Rechercher le Cookie du Client
	if (LeCookie==null) {
		LeClient="";
		return("Identifiez vous");
		}
	var Tmp = LeCookie.split("¤") 	// "¤" est le séparateur d'éléments
	return(Tmp[0]+";"+Tmp[1]+";"+Tmp[2]);	// nom prénom email

	}

function AfficheLesArticles() {	// 16/03/2010 intégration du poids
//***************************
var i, j;
// clear table
	for (i=1;i<NbArt+2;i++) {
		for (j=1;j<8;j++){
			WriteTableCaddie(i,j,LesArticles[16][j]); // copier article vide pour raz table
			}
		}
// remplir table		
	TotalAchats=0.00; // RAZ
	PoidsCommande=0.00; // RAZ
	CoutDuPort=0.00 ; // RAZ
	TotalCommande=0.00; // RAZ
	var Nb=Get_Cookie("NB")

	for (i = 1; i < NbArt+1; i++) {
		TotalAchats = TotalAchats + LesArticles[i][6];  // Totaliser les Achats			
		PoidsCommande = PoidsCommande + LesArticles[i][7];	// Totaliser Le Poids
		Calcul_Port(); // la procédure remplira la variable CoutDuPort
		TotalCommande = TotalAchats + CoutDuPort + frais_pp; // Port et frais Inclus
		for (j = 1;j < 8; j++) {
			WriteTableCaddie(i,j,LesArticles[i][j]);
			}
		}
	DerniereLigne=i	// Servira qà actualsier la dernier ligne affiché pour PayPal
	document.Cmde.totalachats.value = StringDecimale(TotalAchats); // Imprimer le total
	document.Cmde.totpoids.value = StringDecimale(PoidsCommande); // Imprimer le total
	document.Cmde.expedition.value =  StringDecimale(CoutDuPort); // Imprimer les frais expédition
	document.Cmde.encaissement.value =  StringDecimale(frais_pp); // Imprimer les frais paypal
	document.Cmde.totgen.value =  StringDecimale(TotalCommande); // Imprimer les frais expédition
	Set_Cookie("Tcmde",document.Cmde.totgen.value,12); // Total Commande
	Set_Cookie("Tpoids",document.Cmde.totpoids.value,12); // Total Poids
	if (document.Cmde.pp.value=="1") {	// Pour Paypal, ajouter le port dans le tableau
		LesArticles[DerniereLigne][1] = "DIVERS"
		LesArticles[DerniereLigne][2] = "ENVOI COLISSIMO (Recommandé) + FRAIS"
		LesArticles[DerniereLigne][3] = StringDecimale(CoutDuPort + frais_pp)
		LesArticles[DerniereLigne][4] = " "
		LesArticles[DerniereLigne][5] = "1"
		LesArticles[DerniereLigne][6] = StringDecimale(CoutDuPort + frais_pp)
		LesArticles[DerniereLigne][7] = " "
		for (j = 1;j < 8; j++) {
			WriteTableCaddie(DerniereLigne,j,LesArticles[i][j]);
			}
		}

	}	// Fin de la fonction AfficheArticles

function AjouterAuPannier(fabricant, reference, prix, brut) { // 02/12/2010 envoi des variables
//*************************
//	Le produit ajouté est envoyé par les variables
	var nbr= Get_Cookie("NB")-0; // Reprendre le nbr d'articles
	if (nbr>14) { // 15 articles par caddie
		alert("VOTRE CADDIE EST PLEIN !" + cr + cr
		    + "Validez votre commande" + cr
		    + "          OU" + cr
		    + "modifiez votre Caddie");
		return;
		}
	var Leplus =
			fabricant + "¤"
			+ reference + "¤"
			+ prix + "¤"
			+ brut + "¤"
			+ "1"; // J'ajoute d'office Qté=1
	var LaCommande= Get_Cookie("VotreCaddie"); // Reprendre la commande actuelle
	if (LaCommande==null) LaCommande="";

	LaCommande = LaCommande + Leplus+ "²"; // Ajouter la ligne avec fin d'article = "²"
	if (LaCommande=="²")  LaCommande="";    // Toujours rien dans le caddie
	Set_Cookie("VotreCaddie",LaCommande,12); // cookie valide 12 heures

	nbr = nbr+1;
	Set_Cookie("NB",nbr,12); // cookie valide 12 heure
	if(document.cookie.length==0) {  // vérifier si un cookie est placé sinon, prévenir
		alert("Votre navigateur n'accepte pas les cookies! Or, pour effectuer votre achat,"+cr+
		      "sur notre site, vous devez les accepter. Sinon votre commande restera vide."+cr+cr+
			  "Dans 'Options Internet'=>Confidentialité, les cookies doivent être acceptés.");
			  }
	}  // fin de la fontion AjouterAuPannier

function ChangeQuantité(ligne) {	// 06/12/2010 appelé avec n°ligne
//***********************
// Le cellules Qté ont pour id r1c1,r2c1,... comme sous excel
// Le numéro de ligne est donc entre "r" et "c"
	
	LesArticles[ligne][5] = ReadQte(ligne,5)-0; // Quantité
	LesArticles[ligne][6] = LesArticles[ligne][3] * LesArticles[ligne][5]; // Prix Ligne = PrU * Qté
	LesArticles[ligne][7] = LesArticles[ligne][4] * LesArticles[ligne][5]; // Poids Ligne = PoU * Qté
	AfficheLesArticles();
	MofifierPannier();

	NbArt= Get_Cookie("NB")-0; // Reprendre le nbr d'article
	nbr= Get_Cookie("NB")-0; // Reprendre le nbr d'article
	if(nbr==0) return;
	}	// fin de la fonction ChangeQuantité

function Hexa(chaine)
{
  var hextab = "0123456789ABCDEF";
  var strH = "";

  for (var i=0; i<chaine.length; i++) {
    strH += hextab.charAt((chaine.charCodeAt(i) >> 4) & 0xF)
    strH += hextab.charAt(chaine.charCodeAt(i) & 0xF)
  }
  return strH;
}


function convertion_HTML(Source) {
 var encoded = "";
 var RESERVED_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890._-'

 for (var i=0; i<Source.length; i++)
 {
   if (Source.charCodeAt(i)<=127)
   {
     if (RESERVED_CHARS.indexOf(Source.charAt(i))!=-1)
     {
       encoded += Source.charAt(i)
     }
     else
     {
       encoded += "%" + Hexa(String(Source.charAt(i)))
//       encoded += "&#x" + Hexa(String(Source.charAt(i))) + ";"
    }
   }
   else
   {
     encoded += Source.charAt(i)
   }
 }
 return encoded;
 }

function DessineCaddie(action) { //  02/12/2010 action = "m" ==> Caddie Modifiable
// ************************			06/12/2010 ajout des n° de ligne dans appel des fonctions
// Faire un tableau modifiable avec bordures
var content ='<div align="left">'
	content +='<tr><td><table bgcolor="#EEEEEE" border="1" width="100%" cellspacing="0" cellpadding="0">';
// entete du tableau
		content += '<tr>';
			content += '<td width="110" align="center" bgcolor="#DAD9D8"><b><font face="verdana" size="1" color="#000000">Référence</font></b></td>';
			content += '<td align="center" bgcolor="#DAD9D8"><b><font face="verdana" size="1" color="#000000">Descriptif</font></b></td>';
			content += '<td width=50 align="center" bgcolor="#DAD9D8"><b><font face="verdana" size="1" color="#000000">€ Unit</font></b></td>';
			content += '<td width=50 align="center" bgcolor="#DAD9D8"><b><font face="verdana" size="1" color="#000000">Kg Unit</font></b></td>';
			content += '<td width=30 align="center" bgcolor="#DAD9D8"><b><font face="verdana" size="1" color="#000000">Qté</font></b></td>';
			content += '<td width=65 align="center" bgcolor="#DAD9D8"><b><font face="verdana" size="1" color="#000000">€ Total</font></b></td>';
			content += '<td width=65 align="center" bgcolor="#DAD9D8"><b><font face="verdana" size="1" color="#000000">Kg Total</font></b></td>';
			if (action=="m") content += '<td width=40 align="center" bgcolor="#DAD9D8"></td>';
			content += '</tr>';
// Lignes d'objets du tableau
		var lg=1;  // compteur ligne article
		var i = " ";
		NbArt = Get_Cookie("NB")-0;	// nombre d'article
// les noms : item_name_X, amount_X, quantity_X appartiennent au site PayPal.
//**************************************************************************
		while (lg < NbArt+2) { // Faire une ligne de plus pour le décalage futur
			i=lg+""; // le "" est là pour que la variable i soit alphanumérque" name="item_name_'+i+'" name="amount_'+i+'"
			content += '<tr>';
				content += '<td align="center">'
					content += '<input id="r' +i+ 'c1" name="r' +i+ 'c1" readonly="readonly" size="14" style="font-size: 8pt">'; // référence
					content += '</td>';
					content += '<td align="center">'; 
					content += '<input id="r' +i+ 'c2" name="item_name_'+lg+'" readonly="readonly" size="75" style="font-size: 8pt">'; // descriptif
					content += '</td>';
				content += '<td align="center">';
					content += '<input id="r' +i+ 'c3" name="amount_'+lg+'" readonly="readonly" size="5" style="font-size: 8pt; text-align:right">'; // Prix unité
					content += '</td>';
				content += '<td align="center">';
					content += '<input id="r' +i+ 'c4" name="r' +i+ 'c4" readonly="readonly" size="5" style="font-size: 8pt; text-align:right">'; // Poids Unité
					content += '</td>';
				content += '<td align="center">';
					if (action=="m") content += '<input id="r' +i+ 'c5" name="quantity_'+lg+'" size="1" style="font-size: 8pt; text-align:right" onkeyup="ChangeQuantité('+lg+')">'; // Quantité
					else content += '<input id="r' +i+ 'c5" name="quantity_'+lg+'" readonly="readonly" size="1" style="font-size: 8pt; text-align:right">'; // Quantité

					content += '</td>';
				content += '<td align="center">';
					content += '<input id="r' +i+ 'c6" type="text" readonly="readonly" size="7" style="font-size: 8pt; text-align:right">'; // prix total ligne
					content += '</td>';
				content += '<td align=center>';
					content += '<input id="r' +i+ 'c7" type="text" readonly="readonly" size="7" style="font-size: 8pt; text-align:right">'; // poids total ligne
					content += '</td>';
				if (action=="m") {
					content += '<td align="center">';
					content += '<input id="M' + i + '" type="button" value="Effacer" name="moins'+lg+'" onclick="SupprimeArticle(' +lg+')" style="font-size: 10pt">';
					content += '</td>';
					}
				content += '</tr>'
			lg++;
			}  // du while

		content += '</table>';
		content += '</td></tr></div>'//</table>'  // refermer le tableau contenant
	document.write(content);
	}	// fin de CaddieModifiable


function EnregistrerClient() {	// 18/01/2005
//**************************
//	if (!TestValide()) {
//		alert("Vos Coordonnées sont incomplètes");
//		}
// les noms Anglais 'first_name, last_name...) appartiennent au site PayPal.
//**************************************************************************
 // chaque enregistrement de variable se termine par ¤
// le test es valide : C'est complet, Créer le Cookie
	LeClient = document.Cmde.first_name.value + "¤"; // prénom
	LeClient += document.Cmde.last_name.value + "¤"; // nom
	LeClient += document.Cmde.email.value + "¤"; // email
	LeClient += document.Cmde.address1.value + "¤"; // adresse 1
	LeClient += document.Cmde.address2.value + "¤"; // adresse 2
	LeClient += document.Cmde.zip.value + "¤"; // Code Postal
	LeClient += document.Cmde.city.value + "¤"; // Ville
	LeClient += document.Cmde.Region.value + "¤"; // Région
	LeClient += document.Cmde.pays.selectedIndex + "¤"; // Pays
	LeClient += document.Cmde.H_PhoneNumber.value; // Fin du cookie ²
	Set_Cookie("Client",LeClient,365*24);	// Nom du cookie, contenu du cookie, 1 an
	return;
	} //	fin de EnregistrerClient

function LitLesArticles() {	// 22/09/2010 : Utilisation de la fonction split
//**********************       Lit les articles présents dans le cookie VotreCaddie
	var nbr_lignes, Ligne_Article
	var i, i2, j, j2;
	for (i=1;i<16;i++) {  // Remise à zéro des 15 lignes du tableau
		LesArticles[i][1]="";	// Référence
		LesArticles[i][2]="";	// Description
		LesArticles[i][3]=0.00;	// Prix Unitaire
		LesArticles[i][4]=0.00;	// Poids Unitaire
		LesArticles[i][5]=0;	// Quantité
		LesArticles[i][6]=0.00;	// Prix Ligne
		LesArticles[i][7]=0.00;	// Poids Ligne
		}
	NbArt = Get_Cookie("NB")-0;	// nombre d'article
	var LaCommande = Get_Cookie("VotreCaddie"); // Rechercher le Cookie du Caddie
	if (LaCommande==null) {
		CommandeNum=0;
		document.Cmde.Numero.value="";
		LaCommande="";
		return;
		}
// Il y a quelque chose dans la commande
	var contenu = LaCommande.split("²") // mettre les lignes articles dans un tableau "contenu"
	for (nbr_lignes in contenu) // compter le nombre de lignes articles
		{
 			}
	for (i=0; i<nbr_lignes; i++)
		{
			Ligne_Article =contenu[i].split("¤") // prendre une ligne article dans le contenu
			for (j=0; j<7; j++)
				{
				LesArticles[i+1][j+1]=Ligne_Article[j]; // détailler l'article
				}
			// Prix de la ligne
			LesArticles[i+1][6] = (LesArticles[i+1][3] * LesArticles[i+1][5]);
			// Poids de la ligne
			LesArticles[i+1][7] = (LesArticles[i+1][4] * LesArticles[i+1][5]);
		}	

	}	// fin de la fonction LitLesArticles

function LireCase(ligne,col) {  // 05/12/2010 : Lecture en fonction du "name=" de la case
//***************************
	var nom_case
	if (col==1) nom_case= "r"+ligne+"c1"		// case reference
	if (col==2) nom_case= "item_name_" + ligne	// case descriptif
	if (col==3) nom_case= "amount_" + ligne		// case prix
	if (col==4) nom_case= "r"+ligne+"c4"		// case poids
	if (col==5) nom_case= "quantity_" + ligne	// case quté
	if (col==6) nom_case= "r"+ligne+"c6"		// total pri
	if (col==7) nom_case= "r"+ligne+"c7"		// total pri
    var retour = document.Cmde[nom_case].value

	return(retour);
	} // fin de LireCase

function LireClient() { // 22/09/2010 utilisation de la fonction split/2005
//*******************		détailler le Client
	var LeCookie = Get_Cookie("Client"); // Rechercher le Cookie du Client
	if (LeCookie==null) {
		LeClient="";
		return (null);
		}
	var Tmp = LeCookie.split("¤") 			// "¤" est le séparateur d'éléments
	document.Cmde.first_name.value=Tmp[0];		// Prenom avec un nom de variable PayPal
	document.Cmde.last_name.value=Tmp[1];		// Nom avec un nom de variable PayPal
	document.Cmde.email.value=Tmp[2];		// email avec un nom de variable PayPal
	document.Cmde.address1.value=Tmp[3];		// Adresse 1 avec un nom de variable PayPal
	document.Cmde.address2.value=Tmp[4];		// Adresse 2 avec un nom de variable PayPal
	document.Cmde.zip.value=Tmp[5];			// CP avec un nom de variable PayPal
	document.Cmde.city.value=Tmp[6];		// Ville avec un nom de variable PayPal
	document.Cmde.Region.value=Tmp[7];		// Region
	document.Cmde.pays.selectedIndex=Tmp[8]				// Index de la selection pays
	document.Cmde.H_PhoneNumber.value=Tmp[9];	// Telephone avec un nom de variable PayPal

// information pour le Formulaire CB
	var Te = "Client : " + Tmp[0] + " " + Tmp[1] + ", Mail : " + Tmp[2] // nom, prénom, mail
	Te += ", Adresse: " + Tmp[3] + ', ' + Tmp[4] + ", " + Tmp[5] + " - "+ Tmp[6]		// adresse1 + zip + ville
	return(Te);
	} // Fin de la fonction LireClient

function LireLigne(NBcol,row) {	// 106/12/2010 Travail sur LesArticles
//**************************
	var Fin=0;
	var col; // numéro de colonne
	var LaLigne; // pour stocker la lecture
	var Tampon;  // Aussi
//	je calcule row suivant l'élément "id" de la case que j'initialise à la conception de la page
//	l'élément id est initialisé à "I0", "I1", "I2", "I3" ....
//	pour connaître le numéro de ligne, il faut enlever le "I"

		LaLigne = "";	// maintenant, je peux lire la ligne
				// j'ai initialisé les id des cases a	r1c1, r1c2, r1c3 sur la ligne 1
				//	r2c1, r2c2, r2c3 sur la ligne 2 ...

		for (col=1; col<NBcol+1; col++) {
			Tampon = LesArticles[row][col]
			if(Tampon.length > 80) Tampon = Tampon.substring(0,79);  // limiter à 80 caractères
			LaLigne=LaLigne+Tampon +"¤"; // séparer les cases par "¤"
			}
		Fin = LaLigne.length - 1;  // Enlever le "¤" du bout

		LaLigne = LaLigne.substring(0,Fin);
		return unescape(LaLigne); // c'est fini, retourner le résultat de la lecture
	}  // fin de la fonction LireLigne

function LirePannier() {	// 16/03/2010 pas de changement pour intégration poids
//******************
	LitLesArticles(); // dans le Cookie VotrePannier
	AfficheLesArticles();
// je vais controler Affiche les articles	
	}  // Fin de la fonction LirePannier

function MofifierPannier() {	// 16/03/2010 intégration du poids 
//***********************
	var LaCommande=""; // Get_Cookie("VotreCaddie"); // Reprendre la commande actuelle
	var nbr = 0;
	for (var L=1; L<NbArt+1;L++) {
// Lecture de la ligne dans le Caddie
		LaCommande += LireLigne(5,L)+"²" ; // Ref + Descriptif + Pr Unit + Po Unit + Qté et "²" fin article
		nbr=nbr+1; // compter les articles
		}	
	Set_Cookie("VotreCaddie",LaCommande,12); // 1 heure sur le disque
	NbArt=nbr;
	Set_Cookie("NB",NbArt,12); // cookie valide 1 heure
	}  // fin de la fontion ModifierPannier


function RazPannier(Origine) {   // 18/01/2005 pour la page VtreCaddie
//*****************			16/03/2010 intégration du poids
// origine indique la provenance de l'appel :
// C = demande depuis le Caddie
// P = demande depuis le paiement OK

	Set_Cookie("VotreCaddie","",12); // 1 heure sur le disque
	Set_Cookie("NB","",12); // cookie valide 12 heure
	Set_Cookie("Tcmde","",12); // Total Commande
	Set_Cookie("Tpoids","",12); // Total poids
	Set_Cookie("CmdeNum","",12); // Numéro de commande valide 12 heure
	var i, j;
// clear table
	if (Origine=="C") { // demandé depuis le caddie : remettre l'affichage à zéro
			for (i=1;i<NbArt+2;i++) {
			for (j=1;j<8;j++){
				WriteTableCaddie(i,j,LesArticles[16][j]); // article vide pour raz table
				}
			}
		LirePannier();
		}	
	} // fin de la fonction RazCaddie

function ReadQte(ligne,col) {  // 05/12/2010 : Lecture en fonction du "name=" de la case
//***************************
// pour que cette fonction marche, à la création d'un tableau il faut
// initialiser toutes les "id=" des cellules avec les coordonnées sous
// la forme EXCEL : r1c1, r1c2, r1c3 ...puis r2c0,r2c1, r2c2, r2c3...
// Ce qui permet d'appeler cette fonction avec seulement les coordonnées
// sous Int pour la Ligne et la Colonne.
// Le retour est = au contenu de la cellule.
	var nom_case
	if (col==1) nom_case= "r"+ligne+"c1"		// case reference
	if (col==2) nom_case= "item_name_" + ligne	// case descriptif
	if (col==3) nom_case= "amount_" + ligne		// case prix
	if (col==4) nom_case= "r"+ligne+"c4"		// case poids
	if (col==5) nom_case= "quantity_" + ligne	// case quté
	if (col==6) nom_case= "r"+ligne+"c6"		// total pri
	if (col==7) nom_case= "r"+ligne+"c7"		// total pri
    var retour = document.Cmde[nom_case].value
	return(retour);
	} // fin de ReadQte

function ReferenceCommande(ordre) {
//***************************
	CommandeNum=Get_Cookie("CmdeNum"); // Numéro de commande
	if (ordre==1) {
		var dte = new Date () ; // crée un objet date indispensable 
		CommandeNum = dte.getTime()+""; // Le numéro de commande est le temps sur 13 chiffres
		if (CommandeNum.length >12){ CommandeNum=CommandeNum.substring(1,13)}
		}
	document.Cmde.Numero.value=CommandeNum;	// ecrire sur la feuille
	Set_Cookie("CmdeNum",document.Cmde.Numero.value,12); // Numéro de commande valide 12 heure
	}

function Start_Page_Client() { // 18/05/2005
//****************************
	LireClient();	// Initialiser le Client et afficher
	Calcul_Port()
	} // fin de la fonction StartPage


function Start_Page_Voir_Caddie() { // 23/09/2008
//***********************************************************
	InitCookie();  // Vérifier si cookie
	LirePannier(); // Initiaiser les articles et afficher le total
// je vais controler LirePannier  return
	if(TotalAchats==0) {
		CommandeNum=""
		document.Cmde.Numero.value=CommandeNum;	// ecrire sur la feuille
		Set_Cookie("CmdeNum",document.Cmde.Numero.value,12); // Numéro de commande valide 12 heure
		alert("Votre Caddie est vide");
		return;
		}
	} // fin de la fonction StartPage_Voir_Caddie

function StringDecimale(nombre) { // 18/01/2005: Oblige les deux décimales
//*****************************  par exemple pour 198.9 retourne 198.10
	var entier=0;
	var decimale = 0.00;
	var t="";
	entier = Math.floor(nombre); // partie entiere
	decimale = Math.round((nombre-entier)*100)+""; // trouver la décimale
	if (decimale.length <=1) decimale = "0" + decimale;	// deux zero en bout
	t= entier + "."+ decimale; // Texte = ####.##
	if (nombre==0) t="";	// ne pas afficher les nul
	return(t);
	} // fin de la fonction StringDecimale

function SupprimeArticle(ligne) { // 06/12/2010 Appelé avec n° ligne
//************************     le bouton Supprimer a été cliqué
	var row=0, col=0;
	var t = LesArticles[ligne][1];
	Supprime=true;
	NbArt= Get_Cookie("NB")-0; // Reprendre le nbr d'articles
	if (NbArt==0) return; // le panier est vide
	if (LesArticles[ligne][5]==0) return; // Quantité nulle, retour

	if (t.length !=0) {	// si la référence <> 0
		for (row=ligne;row<NbArt+2;row++) {
			LesArticles[row] = LesArticles[row+1];
			}
		}
	NbArt= Get_Cookie("NB")-0; // Reprendre le nbr d'article
	NbArt = NbArt-1
	AfficheLesArticles();
	MofifierPannier();
	Supprime=false;
	} // fin de la fonction SupprimeArticle

function TestNavigateur(){
	var navigateur = navigator.appName;
	var n = navigateur.substring(0,1)
	return(n)
	}

function TestValide() { // 18/01/2005
//*******************
	TexteCB=""
	var Test = true;	// pour retourner : vrai au départ 
	document.Cmde.Valider.disabled=false; // pour le moment, autoriser la commande
// vérifier les coordonnées
		if (document.Cmde.last_name.value.length==0) Test=false;
		if (document.Cmde.address1.value.length ==0) Test=false;
		if (document.Cmde.zip.value.length == 0) Test = false;
		if (document.Cmde.city.value.length ==0) Test=false;
		if (document.Cmde.email.value.length ==0) Test=false;
		if(!Test) document.Cmde.Valider.disabled=true; // coordonnées incomplètes : bloquer commande
		// quelques soient les coordonnées, si Total = 0, bloquer la commande
		if (TotalAchats==0) document.Cmde.Valider.disabled=true;
		return(Test);
	}	// fin de la fonction TestValide

function WriteTableCaddie(Ligne,Col,Contenu) {	// 05/12/2010 Lecture en fonction du "name=" de la case
//***********************************
// pour que cette fonction marche, à la création d'un tableau il faut
// initialiser toutes les "id=" des cellules avec les coordonnées sous
// la forme EXCEL : r1c1, r1c2, r1c3 ...puis r2c0,r2c1, r2c2, r2c3...
// Ce qui permet d'appeler cette fonction avec seulement les coordonnées
// sous Int pour la Ligne et la Colonne et le contenu.
	var nom_case
	if (Col==1) nom_case= "r"+Ligne+"c1"		// case reference
	if (Col==2) nom_case= "item_name_" + Ligne	// case descriptif
	if (Col==3) nom_case= "amount_" + Ligne		// case prix
	if (Col==4) nom_case= "r"+Ligne+"c4"		// case poids
	if (Col==5) nom_case= "quantity_" + Ligne	// case quté
	if (Col==6) nom_case= "r"+Ligne+"c6"		// total pri
	if (Col==7) nom_case= "r"+Ligne+"c7"		// total pri
	
	var nombre
	if((Col == 3)||(Col==4)||(Col==6)||(Col==7)){
		nombre=StringDecimale(Contenu)
        document.Cmde[nom_case].value = StringDecimale(Contenu)
		}
	else {
		if (Contenu=="0") Contenu="";
        document.Cmde[nom_case].value = Contenu
		}
	} // fin de WriteTableCaddie

