function removeFromCart(num) {
	var remove = false;
	var conf_str = "Really delete?";
	if (num=='all') {conf_str = "Really remove all items from the Shopping Cart?";}
	if (confirm(conf_str)) {
		if (num=='all') {
			emptyCart()
			document.location.href="clear.asp"
		} else {
			$.post("cartjax.asp?a=delete&n="+num, function(){updateRHCCartBox();});
			// store product total
			var original_total = deformatCurrency($("tr#cart-row-"+num+" td.product-total").text());
			
			// set cart total
			var cart_total = deformatCurrency($("tr#cart-total-row td.cart-total").text());
			cart_total = cart_total - original_total;
			$("tr#cart-total-row td.cart-total").text(formatCurrency((cart_total).toString()));
			
			$("tr#cart-row-"+num).fadeOut('slow', function(){
				$(this).remove();
				var rows = 0;
				$("table.cart-table tbody tr").each(function(){rows++;});
				if (rows <= 1) {
					emptyCart();
				}
				hasPOA();
			});
		}
	}
}

function emptyCart() {
	$("table.cart-table").replaceWith("<p>There are no items in your shopping cart.</p>");
	$("#cart-buttons-clear,#cart-buttons-proceed").attr("disabled", "disabled");
}

function hasPOA() {
	$("#POA").text("");
	$(".cart-table td.product-price").each(function(){
		if ($(this).text().toLowerCase().replace(/\s/g,'') == "poa") {
			$("#POA").text(" + POA");
		}
	});
}

function updateCart(num, field, value, isPOA, someAreFree) { //isPOA Hyjacked for LastMin as well
	$('#cart-buttons-proceed').attr('disabled','disable');
	$.post("cartjax.asp?a=update&n="+num+"&f="+field+"&v="+value, function(){updateRHCCartBox();});

	if (field == "quantity") {
		var quantity = value;
		if (quantity == 0) {quantity = 1;}

		if (isPOA.substr(0,2) == "LM") {
			var lmid = 0;
			lmid = isPOA.replace("LM", "");
			var lmqty = getSeatsLeft(lmid);
			if (parseInt(quantity) > parseInt(lmqty)) {
				if (lmqty == '1') {
					alert('Sorry, there is only '+lmqty+' place available.')
				} else if (lmqty == '0') {
					alert('Sorry, all available places have been sold.')
				} else {
					alert('Sorry, there are only '+lmqty+' places available.')
				}
				quantity = lmqty;
				$.post("cartjax.asp?a=update&n="+num+"&f="+field+"&v="+quantity, function(){updateRHCCartBox();});
			}
		}

		if (isPOA == "POA") {
				//
		} else {
			// store product total
			var original_total = deformatCurrency($("tr#cart-row-"+num+" td.product-total").text());
			
			// calc product total
			var price = deformatCurrency($("tr#cart-row-"+num+" td.product-price").text());
			quantity = Math.floor(Number(quantity)+0.50000000001);
			$("tr#cart-row-"+num+" td.product-total").text(formatCurrency((price*(quantity-someAreFree)).toString()));
			
			// set cart total
			var cart_total = deformatCurrency($("tr#cart-total-row td.cart-total:first").text().replace(" AUD","").replace(" GBP","").replace(" USD","").replace(" EUR",""));
			cart_total = ((price*(quantity-someAreFree)) - original_total) + cart_total;
			$("tr#cart-total-row td.cart-total:first").text(formatCurrency((cart_total).toString()));
		}
		$('#cart-buttons-proceed').attr('disabled','');
		return quantity;
	}
	if (field == "option") {
		// nothing much to do here
		$('#cart-buttons-proceed').attr('disabled','');
		return true;
	}
	if (field == "departureLocation") {
		$('#cart-buttons-proceed').attr('disabled','');
		return true;
	}
	$('#cart-buttons-proceed').attr('disabled','');
}

function updateRHCCartBox(){
	var cartData;

	$.ajax({
		type: "POST",
		url: "../cart/ajaxcartbox.asp",
		data: "",
		success: function(msg){
			cartData = msg;
		},
		async: false
	});
	$('#headercart').html(cartData);
}

function getSeatsLeft(limd){
	var formData='-2';
	$.ajax({
		type: "POST",
		url: "getSeats.asp",
		data: "limd="+limd,
		success: function(msg){
			formData = msg;
		},
		error: function(XMLHttpRequest, textStatus, errorThrown){
			//alert(XMLHttpRequest); alert(textStatus); alert(errorThrown);
			formData = '-1';
		},
		async: false
	});
	return formData;
}