function ec_deleteItemFromList(url, hash, form, parentNode) {
	deleteItemFromList(url, hash, form, parentNode, ec_displayDeleteItemFromList);
}

function ec_displayDeleteItemFromList(args) {

	var parent = document.getElementById(args['parentNode']);

	parent.className = parent.className.replace("selected", "");
	parent.className = parent.className.replace(" selected", "");

	displayDeleteItemFromList(args);
}

function ec_addItemToTrolley(url, id, form, parentNode, aggregate) {
	addItemToTrolley(url, id, form, parentNode, aggregate, ec_displayAddItem);
}

function updateTrolleyTotals()
{
	updateTrolleySummary();
	updateTrolleyTotal();
}

function updateTrolleySummary()
{
	var url = getBaseURL() + "shop/trolley-summary/";
	var args = Array();

	retrieveURL(url, false, showUpdateTrolleySummary, args);
}

function updateTrolleyTotal() {
	var url = getBaseURL() + "/Shop/get-trolley-total";
	jQuery.getJSON(getBaseURL() + "/Shop/get-trolley-total/", null, function(data) {
		$('#trolley_total').html(data.symbol + data.total);
	});
}

function showUpdateTrolleySummary(args)
{
	var response = args['response'];
	if(response)
	{
		var message = parseResponse(response, "message");
	
		if(message)
		{
			var element = document.getElementById("trolleySummary");
			if(element)
			{
				element.innerHTML = Base64Utils.prototype.decode(message);
			}
		}
	}
}

function ec_displayAddItem(args) {

	var parent = document.getElementById(args['parentNode']);

	if(parent.className.indexOf("selected") <= -1)
	{
		parent.className = parent.className += " selected";
	}

	displayAddItem(args);

	updateTrolleySummary();
}

function updatePayableWithPoints(url, id, symbol)
{
	var select = document.getElementById(id);

	if(select.options[select.selectedIndex])
	{
		var value = select.options[select.selectedIndex].value;
	}	
	else
	{
		var value = 0;
	}

	var args = new Array();

	url += value + "/";

	args['points'] = value;
	args['symbol'] = symbol;

	retrieveURL(url, false, displayUpdatePayableWithPoints, args, false);
}

function displayUpdatePayableWithPoints(args)
{
	var response = args['response'];
	var payableValue = 0;

	payableValue = parseResponse(response, "message");

	var pointsTotal = document.getElementById("pointsTotal");
	var pointsPayable = document.getElementById("pointsPayable");

	if(pointsTotal && pointsPayable)
	{
		if((payableValue >= 0) && (args['points'] >= 0))
		{
			pointsPayable.innerHTML = args['symbol'] + parseFloat(payableValue).toFixed(2);

			pointsTotal.className = pointsTotal.className.replace(" hiddenPoints", "");
			pointsTotal.className = pointsTotal.className.replace("hiddenPoints", "");
		}
		else
		{
			pointsPayable.innerHTML = "";
			if(pointsTotal.className.indexOf("hiddenPoints") <= -1)
			{
				pointsTotal.className += " hiddenPoints";
			}

		}
	}
}		

function updatePayableWithPromotionalCode(url, id, symbol) {
	var input = document.getElementById(id);

	if(input) {

		var value = input.value;

		url += value + "/";

		var args = new Array();
		args['points'] = value;
		args['symbol'] = symbol;

		retrieveURL(url, false, displayUpdatePayableWithPromotionalCode, args, false);
	}
}

function displayUpdatePayableWithPromotionalCode(args) {
	var response = args['response'];
	var payableValue = 0;

	payableValue = parseResponse(response, "message");

	var promotionalCode = document.getElementById("promotionalCodeDescription");

	if(promotionalCode) {
		promotionalCode.innerHTML = Base64Utils.prototype.decode(parseResponse(response, "extraStatus"));
	}

	var discount = document.getElementById("promotionalCodeDiscount");

	if(discount) {
		discount.innerHTML = "<label class='wide'>Code discount</label><span class='text'>" + args['symbol'] + parseResponse(response, "extraMessage") + "</span>";
	}

	var payable = document.getElementById("payable");

	if(payable) {
		payable.innerHTML = args['symbol'] + parseResponse(response, "message");
	}

	var payableWithPoints = document.getElementById("pointsPayable");

	if(payableWithPoints) {
		payableWithPoints.innerHTML = args['symbol'] + parseResponse(response, "extra2Status");
	}
}

function buttonRollover(id)
{
	var button = document.getElementById(id);

	if(button)
	{
		var src = button.src;

		if(src)
		{
			button.onmouseover = function()
			{
				var over = this.src.indexOf("_over.");

				if(over == -1)
				{
					var base = this.src.substring(0, this.src.length-4);
					var extension = this.src.substring(this.src.length-4);
					var overSrc = base + "_over" + extension;
					this.src = overSrc;
				}
			}

			button.onmouseout = function()
			{
				var over = this.src.indexOf("_over.");

				if(over > -1)
				{
					var base = this.src.substring(0, this.src.length-9);
					var extension = this.src.substring(this.src.length-4);
					this.src = base + extension;
				}
			}
		}
	}
}
