//<script language="JavaScript">
//<!--
// copyright bonKado(r), a registered mark of TeamHook SARL
// All functions for the caddie of bonKado


/*
Si submit ailleurs que caddie avoir toutes les infos liés au caddie et aux items
à voir pour faire uniquement 1 formulaire pour la page complète et 1 au clic les bonnes infos sont envoyées 
et on change uniquement la valeur du paramètre <hidden name="cat" value=""> ou 2 cat_to et cat_from.
*/


var caddie = new Caddie();

function Caddie() {
	this.subtotal = 0;
	//this.rabais = 0;
	this.solde = 0;
	this.n_items = 0;
	this.items = new Array(0);
	this.refresh_caddie = refresh_caddie;
	this.empty_caddie = empty_caddie;
	this.new_item = new_item;
	this.add_item = add_item;
	this.add_item2 = add_item2;
	this.less_item = less_item;
	this.del_item = del_item;
	this.update = update;
	this.search_item = search_item;
	this.gen_total = gen_total;
}

function write_hidden() {
	// pour les hidden
	var strcaddie_hidden = "";
	strcaddie_hidden += '<input type="hidden" name="subtotal" value="'+caddie.subtotal+'">';
	//strcaddie_hidden += '<input type="hidden" name="rabais" value="'+caddie.rabais+'">';
	strcaddie_hidden += '<input type="hidden" name="solde" value="'+caddie.solde+'">';
	strcaddie_hidden += '<input type="hidden" name="n_items" value="'+caddie.n_items+'">';
	return strcaddie_hidden;
}

function gen_total() {
	this.subtotal=0;
	// rechercher le solde
	for (n=0;n<this.n_items;++n) {
		this.subtotal += (this.items[n+1].qty*this.items[n+1].pricetot);
	}
	//si rabais, solde, etc., contrôler...
	this.subtotal -= this.solde;
	//this.subtotal -= this.rabais;
}

function Item(id_bon,descr_short,price,added_text,pack,deliver,exchange,qty) {
	this.id_bon = id_bon;
	this.descr_short = descr_short;
	this.price = price;
	this.added_text = added_text;
	this.pack = pack;
	this.deliver = deliver;
	this.exchange = exchange;
	this.qty = qty;
	this.pricetot = 0;
	this.set_pricetot = set_pricetot;
}

function set_pricetot() {
	this.pricetot = this.price;
	//if (this.deliver) {this.pricetot += 3;}
	//if (this.exchange) {this.pricetot += (this.price*0.25);}
	switch (this.pack) {
		case (1):
			break;
		case (2):
			this.pricetot += 6;
			break;
		case (3):
			this.pricetot += 6;
			break;
		case (4):
			this.pricetot += 9;
			break;
		case (5):
			this.pricetot += 12;
			break;
	}
	this.pricetot = Math.floor(this.pricetot);
}

function new_item(id_bon,descr_short,price,added_text,pack,deliver,exchange,qty) {
	this.n_items+=1;
	this.items[this.n_items]=new Item(id_bon,descr_short,price,added_text,pack,deliver,exchange,qty);
	this.items[this.n_items].set_pricetot();	
}

function less_item(n,loops) {
	if (this.items[n].qty-loops==0) {this.del_item(n);}
	else {
		this.items[n].qty-=loops;
		this.refresh_caddie();
	}
}

function del_item(n) {
	this.items[n]=this.items[this.n_items];
	this.n_items-=1;
	this.refresh_caddie();
}

function add_item2(n,loops) {
	this.items[n].qty=eval(this.items[n].qty)+eval(loops);
	this.refresh_caddie();
}

function add_item(id_bon,descr_short,price,added_text,pack,deliver,exchange,qty) {
	//alert(id_bon+' - '+descr_short+' - '+price+' - '+added_text+' - '+pack+' - '+deliver+' - '+exchange+' - '+qty); 
	if (n=this.search_item(id_bon,price,added_text,pack,deliver,exchange,qty)) {this.items[n].qty=eval(this.items[n].qty)+eval(qty);}
	else {this.new_item(id_bon,descr_short,price,added_text,pack,deliver,exchange,qty);}
	this.refresh_caddie();
}

function search_item(id_bon,price,added_text,pack,deliver,exchange,qty){
	for (n=0;n<this.n_items;++n) {
		if (this.items[n+1].id_bon==id_bon && this.items[n+1].price==price && this.items[n+1].added_text==added_text && this.items[n+1].pack==pack && this.items[n+1].deliver==deliver && this.items[n+1].exchange==exchange) {
			return eval(n+1);
		}
	}
	return false;
}

function getreadyto_add(id_bon,descr_short,price) {
	// get added_text
	added_text = document.bonkado.added_text.value;
	while (added_text.indexOf("\"")!=-1) {added_text = added_text.replace("\"","\'\'");}
	// get pack
	if(document.bonkado.pack.value){pack=document.bonkado.pack.value;}
	else{for (var i=0;i<document.bonkado.pack.length;i++) {if (document.bonkado.pack[i].checked) {pack=document.bonkado.pack[i].value;}}}
	// get deliver
	if (document.bonkado.deliver.checked) {deliver=1;}
	else {deliver=0;}
	// get exchange
	//if (document.bonkado.exchange.checked) {exchange = 1;}
	//else {exchange=2;}
	exchange=2;
	// get qty
	qty = document.bonkado.qty.value;

	caddie.add_item(id_bon,descr_short,price,added_text,pack,deliver,exchange,qty);
}

function getreadyto_update(n,price) {
	// get added_text
	added_text = document.bonkado.added_text.value;
	while (added_text.indexOf("\"")!=-1) {added_text = added_text.replace("\"","\'\'");}
	// get pack
	for (var i=0;i<document.bonkado.pack.length;i++) {if (document.bonkado.pack[i].checked) {pack=document.bonkado.pack[i].value;}}
	// get deliver
	if (document.bonkado.deliver.checked) {deliver=1;}
	else {deliver=0;}
	// get exchange
	//if (document.bonkado.exchange.checked) {exchange = 1;}
	//else {exchange=0;}
	exchange=2;
	// get qty
	qty = document.bonkado.qty.value;

	caddie.update(n,price,added_text,pack,deliver,exchange,qty);
}

function update(n,price,added_text,pack,deliver,exchange,qty) {
	this.items[n].added_text = added_text;
	this.items[n].pack = pack;
	this.items[n].deliver = deliver;
	this.items[n].exchange = exchange;
	this.items[n].qty = qty;
	this.items[n].price = price;
	this.items[n].set_pricetot();	
	this.refresh_caddie();
}

function change_qty(n,qty) {
	if (isNaN(qty) || qty=='' || qty.indexOf('.')==true || qty.indexOf(',')==true) {
		// get back old value
		alert('La quantité rentrée ne correspond pas à un nombre');
		//document.caddieform.b2_n_qty.value='1';
		eval('document.bonkado.b'+n+'_n_qty.value='+caddie.items[n].qty);
		eval('document.bonkado.b'+n+'_n_qty.focus()');
	}
	else {
		if (qty<caddie.items[n].qty) {
			loops=caddie.items[n].qty-qty;
			caddie.less_item(n,loops);
		}
		else {
			loops=qty-caddie.items[n].qty;
			caddie.add_item2(n,loops);
		}
	}
}

function change_qty2() {
	var qty=document.bonkado.qty.value;
	if (isNaN(qty) || qty=='' || qty.indexOf('.')==true || qty.indexOf(',')==true || qty==0) {
		alert('La quantité rentrée n\'est pas valide, veuillez rentrer un nombre entier > 0');
		document.bonkado.qty.value=1;
		document.bonkado.qty.focus();
	}
}

function empty_caddie() {
	if (confirm("Désirez-vous vraiment vider définitivement tous les éléments de votre panier?")) {
		this.n_items=0;
		this.refresh_caddie();
		switch (document.bonkado.cat.value) {
			case ('bon'):
				document.bonkado.param.value='bon='+document.bonkado.current_bon.value;
				break;
			case ('partner'):
				document.bonkado.param.value='partner='+document.bonkado.current_partner.value;
				break;
		}
		document.bonkado.submit();
	}
}

function refresh_caddie() {
	var strcaddie="";
	var strcaddie_end="";
	strcaddie+='<table border="0" cellpadding="0" cellspacing="0">';
	if (this.n_items<1) {
		strcaddie+='<tr><td colspan="5"><img href="image/transp.gif" width="1" height="5"></td></tr>';
		strcaddie+='<tr><td colspan="5"><img href="image/transp.gif" width="50" height="1">Panier vide</td></tr>';
		strcaddie+='<tr><td colspan="5"><img href="image/transp.gif" width="1" height="5"></td></tr>';
	}
	else {
		for (n=0;n<this.n_items;++n) {
			strcaddie+='<tr>';
			strcaddie+='<td align="left" valign="bottom">';
			strcaddie+='<input class="incaddie" size="1" type="text" maxlength="2" name="b'+eval(n+1)+'_n_qty" value="'+this.items[n+1].qty+'" onblur="change_qty('+(n+1)+',this.value);">';
			strcaddie+='</td>';
			strcaddie+='<td rowspan="2"><img src="images/trans.gif" width="1"></td>';
			strcaddie+='<td align="center" valign="middle" rowspan="2">';
			strcaddie+='<a href="javascript:caddie.add_item2('+eval(n+1)+',1);"><img src="images/caddie_plus.gif" border="0" alt="Ajoutez 1 bon"></a><br>';
			strcaddie+='<a href="javascript:caddie.less_item('+eval(n+1)+',1);"><img src="images/caddie_moins.gif" border="0" alt="Effacer ou Enlever 1 bon"></a><br>';
			strcaddie+='</td>';
			strcaddie+='<td rowspan="2"><img src="images/trans.gif" width="1"></td>';
			strcaddie+='<td align="left" valign="middle" rowspan="2">';
			strcaddie+='<a href="javascript:document.bonkado.cat.value=\'bon\';document.bonkado.param.value=\'item='+eval(n+1)+'\';document.bonkado.submit();" class="acaddie" alt="'+this.items[n+1].added_text+'">'+this.items[n+1].descr_short+' ('+this.items[n+1].price+'.-) <img border="0" src="images/fleche_droite.gif"';
			if (this.items[n+1].added_text=='') {strcaddie+=' alt="Aucun message personnel"></a>';}
			else {strcaddie+=' alt="Message personnel: '+this.items[n+1].added_text+'"></a>';}
			strcaddie+='</td>';
			strcaddie+='</tr>';
			strcaddie+='<tr>';
			strcaddie+='<td align="left" valign="top">';
			strcaddie+='<font class="caddie">'+this.items[n+1].pricetot+'.-</font>';
			strcaddie+='</td>';
			strcaddie+='</tr>';

			// ligne de séparation
			if (n+1!=this.n_items) {
				strcaddie+='<tr><td colspan="5" bgcolor="#FFE600"><img src="images/trans.gif" height="1"></td></tr>';
			}

			// pour les hidden
			bon = 'b'+eval(n+1);
			strcaddie+='<input type="hidden" name="'+bon+'_id_bon" value="'+this.items[n+1].id_bon+'">';
			strcaddie+='<input type="hidden" name="'+bon+'_descr_short" value="'+this.items[n+1].descr_short+'">';
			strcaddie+='<input type="hidden" name="'+bon+'_price" value="'+this.items[n+1].price+'">';
			strcaddie+='<input type="hidden" name="'+bon+'_added_text" value="'+this.items[n+1].added_text+'">';
			strcaddie+='<input type="hidden" name="'+bon+'_pack" value="'+this.items[n+1].pack+'">';
			strcaddie+='<input type="hidden" name="'+bon+'_deliver" value="'+this.items[n+1].deliver+'">';
			strcaddie+='<input type="hidden" name="'+bon+'_exchange" value="'+this.items[n+1].exchange+'">';
			strcaddie+='<input type="hidden" name="'+bon+'_qty" value="'+this.items[n+1].qty+'">';
			strcaddie+='<input type="hidden" name="'+bon+'_pricetot" value="'+this.items[n+1].pricetot+'">';
		}
	}
	strcaddie+='<table border="0" cellpadding="0" cellspacing="0">';
	setLayer('caddie_main','',strcaddie);
	
	this.gen_total();
	strcaddie_end+='<table border="0" cellpadding="0" cellspacing="0">';
	strcaddie_end+='<tr>';
	strcaddie_end+='<td align="right" valign="middle">';
	//strcaddie_end+='<a href="javascript:open_popup('+"'"+'popup.php?doc=prices#rabais'+"'"+');" class="acaddie2">Rabais</a> : '+this.rabais+'.-&nbsp;&nbsp;&nbsp;<br>';
	strcaddie_end+='Sous-total : <b>'+this.subtotal+'.-</b>&nbsp;&nbsp;&nbsp;';
	strcaddie_end+='</td>';
	strcaddie_end+='<td align="right" valign="middle"><a href="javascript:caddie.empty_caddie();"><img src="images/caddie_croix.jpg" border="0" alt="vider mon panier"><br></td>';
	strcaddie_end+='</tr>';
	strcaddie_end+='</table>';

	// pour les hidden
	strcaddie_hidden=write_hidden();

	setLayer('caddie_end','',strcaddie_end+strcaddie_hidden);
	//alert(strcaddie+strcaddie_end+strcaddie_hidden);
}

function test() {
}

//-->
//</script>

