
	function onDecrement(button)
	{
		var input = $(button).parent().parent().find("input:text.number").get(0);
		input.value--;
		recalculate(input);
	}

	function onIncrement(button)
	{
		var input = $("input:text.number", button.parentNode.parentNode).get(0);
		input.value++;
		recalculate(input);
	}
	

	function recalculate(quantityNode)
	{
		var numberFormat = '#,###.##'
		var locale = $("html").attr("lang");
		var trNode = $(quantityNode).parents("tr").get(0);
		var tableNode = $(trNode).parents("table").get(0)

		$("[name='sum'] .number", trNode).text($("[name='price'] .number", trNode).parse({locale: locale}) * parseInt(quantityNode.value)).format({format: numberFormat, locale: locale});

		var sum = 0;
		$("tr:has(input.quantity) [name='sum'] .number", tableNode).each(function(){sum += parseFloat($(this).parse({locale: locale}));})
		$("tr.total [name='sum'] .number", tableNode).add(".order span.summary .price .number").text(sum).format({format: numberFormat, locale: locale});
		$("tr.discountedTotal [name='sum'] .number", tableNode).text(sum * (100 - $("tr.discountedTotal .number.discount").parse({locale: locale})) / 100).format({format: numberFormat, locale: locale});

		$(".order .save:submit").addClass("active").removeAttr("disabled");
	}

	function onConfirmationClick()
	{
		var forward = $(this).parents(".order:first").find("input.forward");
		if(this.checked) forward.removeAttr("disabled");
		else forward.attr("disabled", "disabled");
	}

	function onUserSelect()
	{
		$(this).parents(".order:first").find("input.forward").removeAttr('disabled');
	}
	

	$(".content .order .confirmed").live('click', onConfirmationClick);

	$(document).bind('update', function() {
		var content = $(".content");
		content.find(".order input.save").attr('disabled', 'disabled');
		content.find(".order:has(.pickable.list.user) input.forward").attr('disabled', 'disabled');
		content.find(".order .pickable.list.user :radio").click(onUserSelect);
		content.find(".order:has(.confirmed:not(:checked)) input.forward").attr('disabled', 'disabled');
	})

