function removeItemFromTrolley(pageURL, index, itemId)
{
	var url = getBaseURL() + pageURL + "/remove-item-from-trolley/" + index + "/?ajax=true";
	var callbackArgs = new Array();
	callbackArgs['index'] = index;
	callbackArgs['url'] = getBaseURL() + pageURL + "/get-trolley-summary/";
	if(itemId)
	{
		callbackArgs['productUnitId'] = itemId;
	}

	var ajax = new AJAX(showRemoveItemFromTrolley, callbackArgs);	
	ajax.setResponseFormat("JSON");
	ajax.request(url);
	return false;
}


function showRemoveItemFromTrolley(args)
{
	hideRemoveItemPopup('removeItemPopup_' + args['index']);

	var response = JSON.parse(args['response']);
	if(response && response['success'] == true)
	{
		$('#trolleyItem_' + args['index']).slideUp();
		$('#itemsTotalDollars').html(response['itemsTotalDollars']);
		$('#itemsTotalCents').html('.' + response['itemsTotalCents']);

		$('#itemsMinimumMonthlyDollars').html(response['minimumMonthlySpendDollars']);
		$('#itemsMinimumMonthlyCents').html('.' + response['minimumMonthlySpendCents']);
		updateTrolleySummary(args['url']);
	}
}


function updateTrolleyItem(pageURL, index)
{
	var url = getBaseURL() + pageURL + "/update-item-in-trolley/" + index + "/?ajax=true";

	var callbackArgs = new Array();
	callbackArgs['index'] = index;
	callbackArgs['url'] = getBaseURL() + pageURL + "/get-trolley-summary/";

	var quantity = document.getElementById("quantity_" + index);
	if(quantity)
	{
		url += "&quantity=" + quantity.value;
	}

	var ajax = new AJAX(showUpdateTrolleyItem, callbackArgs);	
	ajax.setResponseFormat("JSON");
	ajax.request(url);
	return false;
}


function showUpdateTrolleyItem(args)
{
	var response = JSON.parse(args['response']);
	if(response && response['updated'] == true)
	{
		$('#itemTotal_' + args['index']).html('<sup>$</sup><span>' + 
			response['itemTotalDollars'] + 
			'</span><sup><span>.' + response['itemTotalCents'] + '</span></sup>');

		$('#itemMinimumMonthlySpend_' + args['index']).html('<sup>$</sup><span>' + 
			response['itemMinimumMonthlySpendDollars'] + 
			'</span><sup><span>.' + response['itemMinimumMonthlySpendCents'] + '</span></sup>');

		$('#twinMinimumMonthlySpend_' + args['index']).html('<sup>$</sup><span>' + 
			response['twinMinimumMonthlySpendDollars'] + 
			'</span><sup><span>.' + response['twinMinimumMonthlySpendCents'] + '</span></sup>');

		if(response['itemPlanCost'])
		{
			$('#itemMonthlyCost_' + args['index']).html('<sup>$</sup><span>' + 
				response['itemPlanCostDollars'] + 
				'</span><sup><span>.' + response['itemPlanCostCents'] + '</span></sup>');
		}
		else
		{
			$('#itemMonthlyCost_' + args['index']).html('<sup>$</sup><span>' + 
				response['itemMonthlyCostDollars'] + 
				'</span><sup><span>.' + response['itemMonthlyCostCents'] + '</span></sup>');
		}

		$('#itemDataPackCost_' + args['index']).html('<sup>$</sup><span>' + 
			response['itemDataPackCostDollars'] + 
			'</span><sup><span>.' + response['itemDataPackCostCents'] + '</span></sup>');

		$('#itemTextPackCost_' + args['index']).html('<sup>$</sup><span>' + 
			response['itemTextPackCostDollars'] + 
			'</span><sup><span>.' + response['itemTextPackCostCents'] + '</span></sup>');

		$('#itemsTotalDollars').html(response['itemsTotalDollars']);
		$('#itemsTotalCents').html('.' + response['itemsTotalCents']);

		$('#itemsMinimumMonthlyDollars').html(response['minimumMonthlySpendDollars']);
		$('#itemsMinimumMonthlyCents').html('.' + response['minimumMonthlySpendCents']);
		updateTrolleySummary(args['url']);
	}
}


function updateTrolleySummary(url)
{
	asyncRequest(url, updateTrolleySummaryCallback);
}


function updateTrolleySummaryCallback(callbackArgs)
{
	var trolleySummary = JSON.parse(callbackArgs['response']);
	for(var key in trolleySummary)
	{
		var element = document.getElementById("crazyJohnsTrolleySummary" + key.capitalise());
		if(element)
		{
			element.innerHTML = trolleySummary[key]; 
		}
	}
}


String.prototype.capitalise = function() {
	return this.toLowerCase().replace(/\b\S/g, function(x) { 
		return x.toUpperCase(); 
	});
}

function hideTwinPopup()
{
	$('.addNewItemPopup').remove();
	return false;
}

function showTwinPopup(element)
{
	$('#addTwinHandsetItemPopup_' + $(element).attr('rel')).remove();
	$('.addNewItemPopup').remove();
	$('.removeItemPopup').css({visibility: 'hidden'});
	$('#shoppingCartUnavailableTwin').css({visibility: 'hidden'});

	$(element).after(
		'<div id="addTwinHandsetItemPopup_' + $(element).attr('rel') + '" class="removeItemPopup addNewItemPopup">' + 
			'<div class="top">&nbsp;</div>' + 
			'<div class="middle">' + 
				'<p>Twin Value Plans require you to select 2 handsets.<br /><br />You can either add one more of the same handset, or add a different handset from the same plan level. Use the buttons below to select your choice.<br /><br />Your bonus option applies for the first handset you selected.</p>' + 
				'<p class="buttons">' + 
					'<a href="#" class="yes"><img src="' + getBaseURL() + 'core/images/public/products/popupSame.png" height="22px" width="179px" alt="Choose the same handset" title="Choose the same handset" /></a>' + 
					'<a href="#" class="no"><img src="' + getBaseURL() + 'core/images/public/products/popupDifferent.png" height="22px" width="179px" alt="Choose a different handset" title="Choose a different handset" /></a>' + 
				'</p>' + 
			'</div>' + 
			'<p class="buttonRight"><a href="#" onClick="return hideTwinPopup();"><img src="' + getBaseURL() + 'core/images/public/shop/close.png" height="22px" width=52px" /></a></p>' + 
			'<div class="bottom">&nbsp;</div>' + 
		'</div>'
	);

	$('#addTwinHandsetItemPopup_' + $(element).attr('rel') + ' a.yes').click(function()
	{
		$.ajax({
			url: $(element).attr('href'),
			type: 'GET',
			dataType: 'json',
			success: function(response, responseText)
				{
					$('#trolleyItem_' + $(element).attr('rel')).html(response['message']);
					$('#addTwinHandsetItemPopup_' + $(element).attr('rel')).remove();

					$('#itemsTotalDollars').html(response['itemsTotalDollars']);
					$('#itemsTotalCents').html('.' + response['itemsTotalCents']);

					$('#itemsMinimumMonthlyDollars').html(response['minimumMonthlySpendDollars']);
					$('#itemsMinimumMonthlyCents').html('.' + response['minimumMonthlySpendCents']);
				}
		});

		return false;
	});

	$('#addTwinHandsetItemPopup_' + $(element).attr('rel') + ' a.no').click(function()
	{
		$(element).attr('href', $(element).attr('href')  + '&forwardToFinder=true');
		window.location = $(element).attr('href');
		return false;
	});

	$('#addTwinHandsetItemPopup_' + $(element).attr('rel')).css({visibility: 'visible'});

	return false;
}


function showRemoveItemPopup(id)
{
	hideTwinPopup();
	var element = document.getElementById(id);
	if(!element)
	{
		return false;
	}
	$('#shoppingCartUnavailableTwin').css({visibility: 'hidden'});
	element.style.visibility = 'visible';
	return false;
}


function hideRemoveItemPopup(id)	
{
	var element = document.getElementById(id);
	if(!element)
	{
		return false;
	}

	element.style.visibility = 'hidden';

	return false;
}


function toggleShoppingCartUnavailablePopup(type)
{
	var element = document.getElementById('shoppingCartUnavailable' + type);
	if(element)
	{
		if(element.style.visibility == 'visible')
		{
			element.style.visibility = 'hidden';
		}
		else
		{
			element.style.visibility = 'visible';
		}
	}
}


function hideShoppingCartUnavailablePopup(type)
{
	var element = document.getElementById('shoppingCartUnavailable' + type);
	if(element)
	{
		element.style.visibility = 'hidden';
	}
}

