// CADDIE VIRTUEL - Tous droits réservés (c)
// Copyright : Olivier Hondermarck  webmaster@toutjavascript.com  
// http://www.ToutJavaScript.com
// http://www.aquitaine33.com

var kd_cde="commande.html"; var kd_paiement="paiement.html"
var kd_adresse="adresse.html"; var kd_adresse_f="adressef.html"
var kd_remise=0;  kd_txRemise=0.05 //(le taux de remise vaut 5%)
var kd_port=0;
var kd_taille=0;
var kd_couleur=1;	
var kd_facturation=0;
var kd_info=0;var kd_info_cols=40; var kd_info_rows=5;
var kd_tel=0;var kd_fax=0;

var kd_voir=0;

var pathname=location.pathname;
var myDomain=pathname.substring(0,pathname.lastIndexOf('/'))+'/';
var dateExp=new Date();
var dateOld=new Date();
dateOld.setTime(dateExp.getTime()-1);
dateExp.setTime(dateExp.getTime()+(365*24*3600*1000));
var montantF=0;var totalF=0; var totalE=0; var masseT=0; var portF=0; var caddieOK=0; var adresseOK=0; var cdePays=""; var remiseF=0;
var taux=6.55957
function getCookieVal(offset) {
	var endstr=document.cookie.indexOf (";", offset);
	if (endstr==-1) {endstr=document.cookie.length;}
	return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie(name) {
	var arg=name+"=";
	var alen=arg.length;
	var clen=document.cookie.length;
	var i=0;
	while (i<clen) {
		var j=i+alen;
		if (document.cookie.substring(i, j)==arg)
			return getCookieVal (j);
		i=document.cookie.indexOf(" ",i)+1;
        if (i==0) break;
	}
	return null;
}
function SetCookie(name,value) {
	var argv=SetCookie.arguments;
	var argc=SetCookie.arguments.length;
	var expires=(argc > 2) ? argv[2] : null;
	var path=(argc > 3) ? argv[3] : null;
	var domain=(argc > 4) ? argv[4] : null;
	var secure=(argc > 5) ? argv[5] : false;
	document.cookie=name+"="+escape(value)+
		((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
		((path==null) ? "" : ("; path="+path))+
		((domain==null) ? "" : ("; domain="+domain))+
		((secure==true) ? "; secure" : "");
}

function format(valeur) {
	var decimal=2;
	var deci=Math.floor(parseFloat(valeur)*Math.pow(10,decimal)) -Math.floor(parseFloat(valeur))*Math.pow(10,decimal)
	var val=Math.floor(parseFloat(valeur))
	var val_format=val+"";
	var nb=val_format.length;
	for (var i=1;i<3;i++) {
		if (val>=Math.pow(10,(3*i))) {
			val_format=val_format.substring(0,nb-(3*i))+" "+val_format.substring(nb-(3*i));
		}
	}
	if (deci>=0) {if (deci<10){deci="0"+deci} val_format=val_format+"."+deci;}
	return val_format;
}
function GetNbItem() {
	var NbS=GetCookie("nbitem");
	var Nb=0
	if (NbS!=null) {Nb=parseInt(NbS);}
	return Nb;
}
function SetNbItem(nb) {
	SetCookie("nbitem",nb,dateExp,myDomain)
}
function CreerLien(ref,des,qte,prixU,masse,taille,couleur) {
	var aff="<FORM>"+des+" ";
	aff+='<INPUT name="ref" type="hidden" value="'+ref+'">';
	aff+='<INPUT name="des" type="hidden" value="'+des+'">';
	aff+="<INPUT name='qte' type='text' value='"+qte+"' size=2> ";
	if (kd_taille=0){
		aff+=" <SELECT name='taille' size=1>";
		for (var i=0;i<taille.length;i++){ 
			aff+="<OPTION value='"+taille[i]+"'>"+taille[i]+"</OPTION>";
		}
		aff+="</SELECT>"
	}
	if (kd_couleur=1){
		aff+=" <SELECT name='couleur' size=1>";
		for (var i=0;i<couleur.length;i++){ 
			aff+="<OPTION value='"+couleur[i]+"'>"+couleur[i]+"</OPTION>";
		}
		aff+="</SELECT>"
	}
	aff+="<INPUT name='masse' type='hidden' value='"+masse+"'>";
	aff+="<INPUT name='prixU' type='hidden' value='"+prixU+"'>";
	aff+=" <INPUT type='button' value='Ajouter' onClick='AddItem(this.form)'>";
	aff+="</FORM><BR>";
	document.write(aff);
}
function AddItem(form) {
	var NoItem=parseInt(GetNbItem())+1;
	var ref=form.ref.value;
	var des=form.des.value;
	var prixU=form.prixU.value;
	var qte=form.qte.value;
	var taille="";
	if (kd_taille=0)
	{taille=form.taille.options[form.taille.selectedIndex].value;}
	var couleur="";
	if (kd_couleur=1)
	{couleur=form.couleur.options[form.couleur.selectedIndex].value;}
	var masse=form.masse.value;
	var	ligne=ref+"¤"+des+"¤"+taille+"¤"+couleur+"¤"+prixU+"¤"+qte+"¤"+masse+"¤";
	SetCookie("itemno"+NoItem,ligne,dateExp,myDomain);
	SetNbItem(NoItem);
	if (kd_voir){MajVoir()}
}

function AddItemSpe(form) {
	if (isNaN(parseFloat(form.prixU.value)))	{
		alert("Entrez un prix valide"); form.prixU.focus();
	} else {
		var NoItem=parseInt(GetNbItem())+1;
		var ref=form.ref.value;
		var des=form.des.value;
		var prixU=form.prixU.value;
		var qte=form.qte.value;
		var taille="";
		var couleur="";
		var masse=form.masse.value;
		var	ligne=ref+"¤"+des+"¤"+taille+"¤"+couleur+"¤"+prixU+"¤"+qte+"¤"+masse+"¤";
		SetCookie("itemno"+NoItem,ligne,dateExp,myDomain);
		SetNbItem(NoItem);
		if (kd_voir){MajVoir()}
	}
}

function SupItem(no) {
	var ligne=GetCookie("itemno"+no);
	var dateAvant=new Date();
	var nb=GetNbItem();
	dateAvant.setTime(dateAvant.getTime() - 1);
	if (ligne!=null) {
		if (confirm("Cet article va être enlevé de votre panier\nEtes-vous d'accord ?")){
			for(var i=no+1;i<=nb;i++) {
				ligne=GetCookie("itemno"+i);
				SetCookie("itemno"+(i-1),ligne,dateExp,myDomain);
			}
			SetNbItem(nb-1);
			if (kd_voir){MajVoir()}
		}
	}
}
function ChangeQte(no) {
	var item=new GetItem(no);
	var new_qte=prompt("Nouvelle quantité pour "+item.des+" ?",item.qte);
	new_qte=Math.round(parseInt(new_qte));
	if (new_qte>0){
		var ligne=item.ref+"¤"+item.des+"¤"+item.taille+"¤"+item.couleur+"¤"+item.pxU+"¤"+new_qte+"¤"+item.masse+"¤";
		SetCookie("itemno"+no,ligne,dateExp,myDomain);
		window.location.reload();
		return false;
	} else {SupItem(no); return true;}
}
function SauveAdresseL(f){SauveAdresse(f,"leclient")}
function SauveAdresseF(f){SauveAdresse(f,"lafacture")}
function SauveAdresse(f,type) {
	var nom=f.f_nom.value; var prenom=f.f_prenom.value; var mail="";
	var ad1=f.f_ad1.value; var ad2=f.f_ad2.value; var cp=f.f_cp.value; var ville=f.f_ville.value; 
	var pays=f.f_pays.options[f.f_pays.selectedIndex].value;
	var tel=""; if (kd_tel==1){tel=f.f_tel.value;}
	var fax=""; if (kd_fax==1){fax=f.f_fax.value;}
	var msg=""; var c="";
	if (nom==""){msg="Saisissez votre nom"; c="f_nom"}
	if (prenom==""){msg="Saisissez votre prénom"; c="f_prenom"}
	if (type=="leclient"){
		mail=f.f_mail.value;
		if (mail.indexOf('@',0)==-1){msg="L'adresse mail est invalide"; c="f_mail"}
	}
	if (ad1==""){msg="Saisissez votre adresse"; c="f_ad1"}
	if (cp==""){msg="N'oubliez pas le code postal"; c="f_cp"}
	if (ville==""){msg="Saisissez votre ville"; c="f_ville"}
	if (pays==""){msg="Sélectionnez un pays"; c="f_pays"}
	if (msg==""){
		var adresse=nom+"¤"+prenom+"¤"+mail+"¤"+ad1+"¤"+ad2+"¤"+cp+"¤"+ville+"¤"+pays+"¤"+tel+"¤"+fax+"¤ ";
		SetCookie(type,adresse,dateExp,myDomain)
		if (type=="leclient"){SetCookie("lafacture",adresse,dateExp,myDomain)}
		SetCookie("kd","OK",dateExp,myDomain);
		window.location=kd_cde;
		return true;
	} else {
		alert(msg); f.elements[c].focus();
		SetCookie("kd","KO",dateExp,myDomain);
		return false;
	}
}
function GetAdresse(type) {
	var ad=GetCookie(type); var i=0; var j=0;
	if ((ad!="")&&(ad!=null)){
		j=ad.indexOf("¤",i);this.nom=ad.substring(i,j); i=j+1;
		j=ad.indexOf("¤",i);this.prenom=ad.substring(i,j); i=j+1;
		j=ad.indexOf("¤",i);this.mail=ad.substring(i,j); i=j+1;
		j=ad.indexOf("¤",i);this.ad1=ad.substring(i,j); i=j+1;
		j=ad.indexOf("¤",i);this.ad2=ad.substring(i,j); i=j+1;
		j=ad.indexOf("¤",i);this.cp=ad.substring(i,j); i=j+1;
		j=ad.indexOf("¤",i);this.ville=ad.substring(i,j); i=j+1;
		j=ad.indexOf("¤",i);this.pays=ad.substring(i,j); i=j+1;
		j=ad.indexOf("¤",i);this.tel=ad.substring(i,j); i=j+1;
		j=ad.indexOf("¤",i);this.fax=ad.substring(i,j); i=j+1;
		this.exist="YES"
	} else {this.pays="";this.exist="NO"}
}
function InitAdresseL(f){InitAdresse(f,"leclient")}
function InitAdresseF(f){InitAdresse(f,"lafacture")}
function InitAdresse(form,type) {
	var ad=new GetAdresse(type)
	if (ad.exist!="NO")	
	with (form) {
		elements["f_nom"].value=ad.nom;
		elements["f_prenom"].value=ad.prenom;
		if (type=="leclient"){elements["f_mail"].value=ad.mail}
		elements["f_ad1"].value=ad.ad1;
		elements["f_ad2"].value=ad.ad2;
		elements["f_ville"].value=ad.ville;
		elements["f_cp"].value=ad.cp;
		elements["f_pays"].value=ad.pays;
		if (kd_tel==1){elements["f_tel"].value=ad.tel}
		if (kd_fax==1){elements["f_fax"].value=ad.fax}
	}
}
function DispAdresse(type) {
	var ad=new GetAdresse(type);
	if (type=="leclient"){var aff="<B>ADRESSE DE LIVRAISON :</B>&nbsp;&nbsp;<A href='"+kd_adresse+"'>MODIFIER</A><BR>";}
	else {var aff="<B>ADRESSE DE FACTURATION :</B>&nbsp;&nbsp;<A href='"+kd_adresse_f+"'>MODIFIER</A><BR>";}
	var i1=0; var i2=0;
	if (ad.exist!="NO"){
		aff+="<TABLE><TR><TD width=15></TD><TD>";
		var adr=ad.ad1;if (ad.ad2!=""){adr=ad.ad1+"<BR>"+ad.ad2;}
		aff+=ad.prenom+" "+ad.nom
		aff+="<BR>"+adr+"<BR>"+ad.cp+" "+ad.ville+"<BR>"+ad.pays+"<BR>"
		if (type=="leclient"){
			aff+="(Mail : "+ad.mail+")<BR>"
			var suf=""
		} else {var suf="F"}
		if (kd_tel==1){aff+="Tel : "+ad.tel+"<BR>"}
		if (kd_fax==1){aff+="Fax : "+ad.fax+"<BR>"}
		aff+="<BR></TD></TR></TABLE><BR>";
		cdePays=ad.pays;
		aff+='<INPUT type="hidden" name="nom'+suf+'" value="'+ad.prenom+' '+ad.nom+'">'
		aff+='<INPUT type="hidden" name="adresse1'+suf+'" value="'+ad.ad1+'">'
		aff+='<INPUT type="hidden" name="adresse2'+suf+'" value="'+ad.ad2+'">'
		aff+='<INPUT type="hidden" name="ville'+suf+'" value="'+ad.cp+' '+ad.ville+' '+ad.pays+'">'
		aff+='<INPUT type="hidden" name="mail'+suf+'" value="'+ad.mail+'">'
		if (kd_tel==1){aff+='<INPUT type="hidden" name="tel'+suf+'" value="'+ad.tel+'">'}
		if (kd_fax==1){aff+='<INPUT type="hidden" name="fax'+suf+'" value="'+ad.fax+'">'}
	} else {
		aff+="Aucune information saisie.<BR><BR>"
	}
	document.write(aff);
}
function GetItem(no) {
	var l=GetCookie("itemno"+no); var i=0; var j=0
	j=l.indexOf("¤",i); this.ref=l.substring(i,j);i=j+1;
	j=l.indexOf("¤",i); this.des=l.substring(i,j);i=j+1;
	j=l.indexOf("¤",i); this.taille=l.substring(i,j);i=j+1;
	j=l.indexOf("¤",i); this.couleur=l.substring(i,j);i=j+1;
	j=l.indexOf("¤",i); this.pxU=l.substring(i,j);i=j+1;
	j=l.indexOf("¤",i); this.qte=l.substring(i,j);i=j+1;
	j=l.indexOf("¤",i); this.masse=l.substring(i,j);	
}
function CalcPort() {
	var p="?"; var m=masseT;
	if ((kd_port==0)&&(cdePays!="")) {
		if (cdePays=="frais de port 1")
		{p=3.2}
		if (cdePays=="frais de port 2")
		{p=6}
		if (cdePays=="frais de port 3")
		{p=13}

	}
	if (m==0){p=0;}
	if (p!="?"){portF=p}
}
function CalcRemise(){
	if (kd_remise==1) {remiseF=Math.ceil(parseFloat(kd_txRemise*montantF));}
	if (kd_remise==0) {remiseF=0;}
}
var textlim="Version de démonstration limitée à 2 articles dans le caddie";
function DispCaddie(fond,trait,color) {
	var mtF="";var aff="";
	var NbItem=parseInt(GetNbItem());
	if (NbItem>0) {
		aff+="<B>Votre bon de commande : </B><BR>"
		aff+="<TABLE border=0 cellpadding=2 cellspacing=1 bgcolor='"+trait+"'><TR align='center' bgcolor='"+color+"'>"
		aff+="<TD><B>Qtité</B></TD><TD><B>Désignation</B></TD><TD><B>Prix unitaire</B></TD><TD><B>Montant (Euros)</B></TD><TD><B>Modifications</B></TD></TR>";
		for(var i=1;i<=NbItem;i++) {
			i1=0; i2=0;
			var item=new GetItem(i);
			item.pxU=parseFloat(item.pxU,2);
			mtF=parseFloat(parseInt(item.qte)*parseFloat(item.pxU),2);
			montantF+=mtF; masseT+=item.qte*item.masse;

			if ((kd_taille)&&(item.taille!="")){item.des+=" &nbsp;T"+item.taille+" ";}
			if (kd_couleur){item.des+=" &nbsp;"+item.couleur+" ";}
			aff+="<TR>"
			aff+="<TD bgcolor='"+fond+"' align='right'>"+item.qte+"</TD>";
			aff+="<TD bgcolor='"+fond+"'>"+item.des+"</TD>";
			aff+="<TD bgcolor='"+fond+"' align='right'>"+format(item.pxU)+"</TD>";
			aff+="<TD bgcolor='"+fond+"' align='right'>"+format(mtF)+"</TD>";
			aff+="<TD bgcolor='"+fond+"' align='right'><A href='' onClick='SupItem("+i+"); window.location.reload(); return false'>Supprimer</A>";
			aff+=" <A href='' onClick='ChangeQte("+i+");window.location.reload();return false'>Quantités</A>"
			aff+='<INPUT type="hidden" name="article'+i+'" value="'+item.ref+' '+item.des+' quantite='+item.qte+' montant='+format(mtF)+'"></TD>';
			aff+="</TR>"
		}
		CalcPort(); CalcRemise();
		aff+="<TR><TD colspan=3 align='right' bgcolor='"+fond+"'><B>Montant de la commande</B></TD>";
		aff+="<TD align='right' bgcolor='"+fond+"'>"+format(montantF)+"</TD>";
		aff+="<TR><TD colspan=3 align='right' bgcolor='"+fond+"'><B>Participation au transport </B></TD>";
		aff+="<TD align='right' bgcolor='"+fond+"'>"+format(portF)+"</TD>";
		aff+="<TD align='right' bgcolor='"+fond+"'>&nbsp;</TD></TR>";
		totalF=montantF-remiseF+portF;
		aff+="<TR><TD colspan=3 align='right' bgcolor='"+color+"'><B>TOTAL A PAYER</B></TD>";
		aff+="<TD align='right' bgcolor='"+color+"'>"+format(totalF)+"</TD>";
		aff+="<TD align='left' bgcolor='"+color+"'> Soit "+format(parseFloat(totalF*taux,2))+" FF</TD>";
		aff+="</TR></TABLE>";

		aff+="<INPUT type='hidden' name='remise' value='"+format(remiseF)+"'>"
		aff+="<INPUT type='hidden' name='port' value='"+format(portF)+"'>"
		aff+="<INPUT type='hidden' name='total' value='"+format(totalF)+"'>"

		if (kd_info) {
			aff+="<BR>Vos commentaires <BR><TEXTAREA name='info' rows="+kd_info_rows+" cols="+kd_info_cols+"></TEXTAREA><BR>"
		}

		SetCookie("kd_total",totalF,dateExp,myDomain);
	} else {
		aff="<BR><BR>Le caddie est vide !<BR><BR>";
	}
	document.write(aff);
}
function ViderCaddie() {
	for (var i=0;i<=20;i++){SetCookie("itemno"+i,"",dateOld,myDomain)}
	SetNbItem(0)
}
function ViderTout() {
	ViderCaddie()
	SetCookie("leclient","",dateOld,myDomain)
	SetCookie("lafacture","",dateOld,myDomain)
	SetCookie("kd","",dateOld,myDomain)
}
function DispCommande(fond,trait,color) {
	document.write("<TABLE><TR><TD width=300 valign='top'>");
	DispAdresse("leclient");
	if (kd_facturation==1){
		document.write("</TD><TD valign='top'>")
		DispAdresse("lafacture")	
	}
	document.write("</TD></TR></TABLE>");
	DispCaddie(fond,trait,color);
}
function GetTotal() {return GetCookie("kd_total")}
function CreerNoCommande() {
	var d=new Date()
	var y=d.getYear(); if (y<1900) {y=y+1900}
	var m=d.getMonth(); if (m<10) {m="0"+m}
	var j=d.getDate(); if (j<10) {j="0"+j}
	var h=d.getHours(); if (h<10) {h="0"+h}
	var r=Math.random()*99; if (r<10){r="0"+r;}
	r=r+""; r=r.substring(0,2)
	var no=y+""+m+""+j+""+h+""+r
	return no;
}
function Envoyer(f) {
	if (GetNbItem()==0){alert("Le caddie est vide.\nVous ne pouvez pas commander.")}
	if (GetCookie("kd")!="OK"){alert("Vos coordonnées ne sont pas correctes.\nMerci de les compléter.")}
	if ((GetNbItem()>0)&&(GetCookie("kd")=="OK")){
		if(confirm("La commande va être envoyée.\nEtes-vous d'accord ?")){
			f.submit();
//			window.location=kd_paiement;
		}
	}
}

var KD=new Object;
function InitVoir(ColTexte,ColFond,ColContour,NbPixel,x,y) {
	if (kd_voir) {
		KD.ColTexte=ColTexte;KD.ColFond=ColFond;KD.ColContour=ColContour;KD.NbPixel=NbPixel;
		if (document.layers) {
			document.write("<LAYER name='bulle' top="+y+" left="+x+" visibility='show' z-index=1></LAYER>");
		}
		if (document.all) {
			document.write("<DIV id='bulle' style='position:absolute;top:"+y+";left:"+x+";visibility:visible'></DIV>");
		}
	}
}

function MajVoir() {
	var total=CalcTotal();
	var nb=GetNbItem(); var pluriel="&nbsp;"; if (nb>1) {pluriel="s"}
	var texte="Total : "+total+" F<BR>Caddie : "+nb+" article"+pluriel+"&nbsp;&nbsp;";
	var contenu="<TABLE border=0 cellspacing=0 cellpadding="+KD.NbPixel+"><TR bgcolor='"+KD.ColContour+"'><TD align=center><FONT face='arial' size='-1' color='"+KD.ColFond+"'>Votre commande</FONT><BR>"
	contenu=contenu+"<TABLE border=0 cellpadding=2 cellspacing=0 bgcolor='"+KD.ColFond+"'><TR><TD>"
	contenu=contenu+"<FONT size='-1' face='arial' color='"+KD.ColTexte+"'>"+texte+"</FONT></TD></TR></TABLE></TD></TR></TABLE>";
	if (document.layers) {
		document.layers["bulle"].document.write(contenu);
		document.layers["bulle"].document.close();
		document.layers["bulle"].visibility="show";}
	if (document.all) {
		bulle.innerHTML=contenu;
		document.all["bulle"].style.visibility="visible";
	}
}

function CalcTotal() {
	var NbItem=parseInt(GetNbItem()); var mtF=""; montantF=0; masseT=0; var ad=new GetAdresse("leclient");
	if (NbItem>0) {
		for(var i=1;i<=NbItem;i++) {
			var item=new GetItem(i);
			item.pxU=parseFloat(item.pxU,2);
			mtF=parseFloat(parseInt(item.qte)*parseFloat(item.pxU),2);
			montantF+=mtF; masseT+=item.qte*item.masse;
			cdePays=ad.pays;
		}
		CalcPort(); CalcRemise();
		totalF=montantF-remiseF+portF;
	} else {totalF=0}
	return format(totalF);
}