function commun_start(with_update_display) {
	AjaxFactory.url = "script\/basket.php";
	AjaxFactory.messages.set("Unknown", "Une erreur est survenue : ");
	AjaxFactory.messages.set("CookieSetFailed", "Vous devez autoriser les cookies pour continuer !");
	AjaxFactory.messages.set("EmptyReply", "Le serveur n\u0027a pas répondu dans les temps, merci de réessayer ultérieurement ! Si l\u0027erreur persiste, merci de nous contacter.");
	AjaxFactory.messages.set("MysqlConnection", "Le serveur est indisponible, merci de réessayer ultérieurement ! Si l\u0027erreur persiste, merci de nous contacter.");
	if (with_update_display)
		init_update_display();
	else
		try { $("loading").hide(); } catch(e) { }
}
function init_update_display() {
	try { var _hex2bin = $H(hex2bin); }
	catch(e) { var _hex2bin = {}; }
	AjaxFactory.UpdateDisplay = function(edit_id) {
		edit_id = edit_id || false;
		AjaxFactory.ItemList(function(data) {
			var items = $H(), total = 0;
			data.each(function(item) {
				total += item["Quantity"];
				items.set(item["IdItem"], item["Quantity"]);
			});
			var buffer = "<img src=\"~lbp\/image\/basket_white.png\" alt=\"\" \/>";
			buffer += "%d article(s)".replace("%d", total);
			try { $('basket_link').innerHTML = buffer; } catch(e) { }
			$$('.basket').each(function(obj) {
				var id_hex = obj.id.substr(obj.id.indexOf('_') + 1);
				var id_bin = _hex2bin.get(id_hex);
				var id_js = id_bin.escapeHTML().replace(/"/g, '&quot;').replace(/'/g, '\'');
				var quantity = items.get(id_bin), s = '';
				if (quantity > 0) {
					// s += '<img src="' + "~lbp\/image" + '/basket_drop.gif" alt="" />';
					s += "<span>" + "Annuler" + "</span>";
					s = "<a onclick=\"AjaxFactory.ItemDrop('" + id_js + "')\" title=\"" + "Annuler" + "\">" + s + "</a>";
					if (quantity > 1)
						s = '<span class="quantity_view">(' + quantity + ')</span>' + s;
					if (id_bin == edit_id) {
						s = ( '<span class="quantity_edit"><label for="quantity_' + id_hex + '">'
							+ "Quantité :"							+ '</label> <input type="text" id="quantity_' + id_hex + '" class="quantity" value="' + quantity + '" onkeypress="var k = event.which || event.keyCode || false; if(k != 13) return true; AjaxFactory.ItemNew(\'' + id_js + '\',this.value); return false" />'
							+ '<input class="submit" type="button" value="Ok" onclick="AjaxFactory.ItemNew(\'' + id_js + '\',$(\'quantity_' + id_hex + '\').value)" /></span>'
						);
					} else {
						s = ( '<span class="quantity_edit">'
							+ "Quantité :"							+ ' ' + quantity + ' (<a onclick="AjaxFactory.UpdateDisplay(\'' + id_js + '\')">'
							+ "Modifier"							+ '</a>)<br /><br /></span>' + s
						);
					}
					// try { $('main_' + id_hex).style.border = '2px solid #FF0099'; } catch(e) { }
				} else {
					// s += '<img src="' + "~lbp\/image" + '/basket_new.gif" alt="" />';
					s += "<strong>" + "Commander" + "</strong>";
					s = "<a onclick=\"AjaxFactory.ItemNew('" + id_js + "',1)\" title=\"" + "Commander" + "\">" + s + "</a>";
					// try { $('main_' + id_hex).style.border = '1px solid silver'; } catch(e) { }
				}
				obj.innerHTML = s;
			});
			try { $("loading").hide(); } catch(e) { }
			try { if (edit_id) $('quantity_' + _hex2bin.index(edit_id)).activate() } catch(e) { }
		});
	}
	AjaxFactory.UpdateDisplay();
}

var Addresses = {
	serialize: function(getHash) {
		var temp = Cookie.get("Addresses");
		return ((getHash && temp != false) ? temp.toQueryParams() : temp);
	},
	get: function(key) {
		return Addresses.serialize(true)[key];
	},
	set: function(hash) {
		Cookie.set("Addresses", $H(hash).toQueryString());
	},
	update: function(hash) {
		Addresses.set($H(Addresses.serialize(true)).update(hash));
	},
	del: function() {
		Cookie.del("Addresses");
	}
}
