var a1 = {};

a1.catalogue = {};

/** 
 * When stock changes i.e. gets loaded
 * @param {Object} aListner
 */
a1.catalogue.addStockChangeListner = function(aListner) {
	ak.listners.add('_stockChangeListenrs', aListner);
}

a1.catalogue._stockChanged = function(prodObjectId) {
	ak.listners.fire('_stockChangeListenrs', prodObjectId);
}

/**
 * Listners for basket change i.e. when a product is added or removed from the basket
 * @param {Object} aListner
 */
a1.catalogue.addBasketChangeListner = function(aListner){
	ak.listners.add('_basketChangeListenrs', aListner);
}

a1.catalogue._basketChanged = function(prodObjectId) {
	ak.listners.fire('_basketChangeListenrs', prodObjectId);
}


a1.catalogue.setProductStock = function (productStock) {
	//add sold to title if stock dicontinued
	if (productStock.stock_discontinued) {
		var prodHeading = $('#product_detail h1')[0];
		if (!prodHeading.innerHTML.match(/sold/)) {
			prodHeading.innerHTML = prodHeading.innerHTML + '&nbsp;<span class="sold">Sold</span>';
		}
	}
	
	//show stock details
	var stockH = $('#stock_h')[0];
	var stockM = $('#stock_m')[0];
	if ( productStock.stock_type == 'Regular' ) {
		stockH.innerHTML = 'In Stock';
		stockM.innerHTML = 'This is a regular item and usually in stock. You may call us to check the current availability before making the payment. This product will be despatched within 5 working days after payment is cleared.';
	} else if ( productStock.stock_level == null || !productStock.stock_level  ) {
		stockH.innerHTML = 'Stock Unknow - (Unique Item)';
		stockM.innerHTML = 'This is a unique item. Please contact us to check the availability before making the payment. This product will be despatched within 1 working day.';
	} else if ( productStock.stock_level > 0 && !productStock.stock_discontinued ) {
		stockH.innerHTML = 'In Stock - (Unique Item)';
		stockM.innerHTML = 'Our records indicate that this item is currently in stock, however it may have been sold in store recently therefore we do not guarantee that it will be available for you. If on receiving the payment the item is no longer in stock you will be eligible for a full refund. You may call us to check the availability before making the payment. This product will be despatched within 3 working day after payment is cleared.';
	} else {
		stockH.innerHTML = 'SOLD';
		stockM.innerHTML = 'This is a unique item and it is now sold, however we may be able to find a matching/similar product. Please use our online catalogue to find matching products or call us for assistance.';	
	}
}

a1.catalogue.loadProductStock = function (prodObjectId) {
	if (!$('#product #buy').length) { //not on product page
		return;
	}
	
	function _ajaxLoadProductStockReturn(data) {
		var productStock = data;
		if (typeof productStock != 'object') {
			ak.logger.error(['Unknown stock format', data]);
			return;
		} else {
			if (!a1.catalogue.stock) {
				a1.catalogue.stock = {};
			}
			a1.catalogue.stock[prodObjectId] = productStock;
			a1.catalogue.setProductStock(productStock);
			a1.catalogue._stockChanged(prodObjectId);
		}
	}
	
	if (a1.catalogue.stock && a1.catalogue.stock[prodObjectId]) {
		_ajaxLoadProductStockReturn(a1.catalogue.stock[prodObjectId]);
		return;
	}
	
	$.ajax({
		type:'GET',
		success:_ajaxLoadProductStockReturn,
		url:a1.servicesURL + '?site=a1jewellers&name=catalogue.productStock&prodObjectId=' + prodObjectId,
		dataType:'json',
		error: function() { ak.logger.error('there was an error loading the stock'); }
	});
}

a1.catalogue.setProductBasketOptions = function ( prodInBasket, productStock ) {	
	var addOpt = $('#add_to_basket_opt')[0];
	var viewOpt = $('#view_basket_opt')[0];
	var checkoutOpt = $('#checkout_opt')[0];
	var removeOpt = $('#remove_from_basket_opt')[0];
	
	if (productStock.stock_discontinued) {
		addOpt.style.display = viewOpt.style.display = checkoutOpt.style.display = removeOpt.style.display = 'none';
	} else if (prodInBasket) {
		addOpt.style.display = 'none';
		viewOpt.style.display = checkoutOpt.style.display = removeOpt.style.display = '';
	} else {
		addOpt.style.display = '';
		viewOpt.style.display = checkoutOpt.style.display = removeOpt.style.display = 'none';
	}		
}

a1.catalogue.loadProductBasketOptions = function (prodObjectId) {
	if (!$('#product #buy').length) { //not on product page
		return;
	}
	if (!a1.catalogue.stock || !a1.catalogue.stock[prodObjectId]) {
		return a1.catalogue.loadProductStock(prodObjectId);
	}
	
	function _ajaxLoadProductBasketOptionsReturn(data) {
		try {
			var inBasket = parseInt(data);
		} catch (ex) {
			ak.logger.error(['Unable to check if product is in basket', data]);
			return;
		}
		a1.catalogue.setProductBasketOptions(inBasket, a1.catalogue.stock[prodObjectId])
	}
	
	if (a1.catalogue.basket && a1.catalogue.basket.items) {
		a1.catalogue.setProductBasketOptions(
				a1.catalogue.basket.items[prodObjectId], 
				a1.catalogue.stock[prodObjectId]
			);
	} else {
		ak.logger.info(a1.servicesURL + '?site=a1jewellers&name=catalogue.inBasket&prodObjectId=' + prodObjectId + '&u_sid=' + ak.sessionId + '&t=' + ak.utils.unixTimeStamp());
		$.ajax({
				type:'GET',
				success:_ajaxLoadProductBasketOptionsReturn,
				url:a1.servicesURL + '?site=a1jewellers&name=catalogue.inBasket&prodObjectId=' + prodObjectId + '&u_sid=' + ak.sessionId + '&t=' + ak.utils.unixTimeStamp(),
				dataType:'text',
				error: function() { ak.logger.error('there was an error loading item in basket status'); }
			});
	}
}

a1.catalogue.addProductToBasket = function(prodObjectId) {
	function _ajaxAddProductToBasketReturn(data) {
		if (data.trim() == '1') {
			a1.catalogue.cart = null;
			a1.catalogue._basketChanged(prodObjectId);
		} else {
			ak.logger.error(['Failed to add product to cart', data]);
		}
	}
	ak.logger.info(a1.servicesURL + '?site=a1jewellers&name=catalogue.add2cart&prodObjectId=' + prodObjectId + '&u_sid=' + ak.sessionId + '&t=' + ak.utils.unixTimeStamp());
	$.ajax({
			type:'GET',
			success:_ajaxAddProductToBasketReturn,
			url:a1.servicesURL + '?site=a1jewellers&name=catalogue.add2cart&prodObjectId=' + prodObjectId + '&u_sid=' + ak.sessionId + '&t=' + ak.utils.unixTimeStamp(),
			dataType:'text',
			error: function() { ak.logger.error('there was an error adding object to basket'); }
		});
}

a1.catalogue.removeProductFromBasket = function(prodObjectId) {
	function _ajaxRemoveProductFromBasketReturn(data) {
		if (data.trim() == '1') {
			a1.catalogue.cart = null;
			a1.catalogue._basketChanged(prodObjectId);
		} else {
			ak.logger.error(['Failed to remove product from cart', data]);
		}
	}
	ak.logger.info(a1.servicesURL + '?site=a1jewellers&name=catalogue.removeFromCart&prodObjectId=' + prodObjectId + '&u_sid=' + ak.sessionId + '&t=' + ak.utils.unixTimeStamp());
	$.ajax({
			type:'GET',
			success:_ajaxRemoveProductFromBasketReturn,
			url:a1.servicesURL + '?site=a1jewellers&name=catalogue.removeFromCart&prodObjectId=' + prodObjectId + '&u_sid=' + ak.sessionId + '&t=' + ak.utils.unixTimeStamp(),
			dataType:'text',
			error: function() { ak.logger.error('there was an error removing object from cart'); }
		});
}

a1.catalogue.hasMiniBasket = function(){
	return $('#mini_basket').length != 0;
}

a1.catalogue.hasMainBasket = function(){
	return $('#basket').length != 0;
}

a1.catalogue.hasBasket = function () {
	return $('#mcItemsContainer').length || $('#b_items').length;
}

a1.catalogue.loadMiniBasketItems = function() {
	if (!a1.catalogue.hasMiniBasket()) {
		return;
	}
	
	function _ajaxLoadMiniBasketItemsReturn(data) {
		$('#mcItemsContainer .loading').css('display', 'none');
		$('#mcItemsContainer').css('background-color', '#FFE2C5');
		var noItemsMsg = $('#mcItemsContainer .no-items');
		if (typeof data == 'object' ) {
			if (data.items && data.items.length) {
				var mcItems = $('#mcItemsContainer .items');
				var mcTotals = $('#mc_totals');
				var basketHTML = '';
				
				//items
				for (var i = 0; i < data.items.length; i++) {
					basketHTML += '<div class="item">';
					basketHTML += '<input type="text" name="quantity[' + data.items[i].cart_item_id + ']" value="' + 
							data.items[i].prod_quantity + '" '+ (data.frozen ? 'disabled style="background:#ddd;"' : '') +'/>';
					basketHTML += '<p><a class="mcItemName" href="' + ak.siteHomeHREF + 'products/search.php?q=A1' + data.items[i].prod_id + '">' + data.items[i].prod_name + ' ' + ' (A1' + data.items[i].prod_id + '):</a>&nbsp;<span class="mcItemDiscription">' + data.items[i].prod_description.replace(/<[^>]+>/g, '') + '</span></p>';
					if (!data.frozen) {
						basketHTML += '<input name="A1' + data.items[i].prod_id + '" type="image" ' +
						'onclick="a1.catalogue.removeProductFromBasket(' +
						data.items[i].object_id +
						'); return false;" ' +
						'src="' +
						ak.graphicsPath +
						'collections/images/a1_general/trash.gif" alt="Remove this product from basket" ' +
						'title="Remove this product from basket"/>';
					}
					basketHTML += '</div>';
				}
				mcItems.html(basketHTML);
				
				//totals
				mcTotals.html('<span class="mcHeadings">Total Inc VAT</span>' +
				'<span class="mcTotalPriceIncVAT">&pound;' +
				data.totals.amount_inc_vat +
				'</span>');
				
				noItemsMsg.css('display', 'none');
				mcItems.css('display', '');
				mcTotals.css('display', '');
				$('#basket_opts').css('display', '');
				if (data.frozen) {
					$('#basket_opts').html('<p>Above items are being processed<br/>You may <a href="JavaScript:' +
							'document.location.href=document.location.href + ' + 
							'(document.location.search.match(/\\?/) ? \'&\' : \'?\') + ' + 
							'\'srset=1\'"><b>start another order</b></a></p>');
				}
				if (!a1.catalogue.cart) {
					a1.catalogue.cart = data;
				}
			} else {
				$('#basket_opts').css('display', 'none');
				$('#mcItemsContainer .items').css('display', 'none');
				$('#mc_totals').css('display', 'none');
				noItemsMsg.css('display', '');
				noItemsMsg.html('<p>There are no items in your basket!</p>');
				a1.catalogue.cart = null;
			}
		} else {
			$('#basket_opts').css('display', 'none');
			$('#mcItemsContainer .items').css('display', 'none');
			$('#mc_totals').css('display', 'none');
			noItemsMsg.css('display', '');
			noItemsMsg.html('<p>There was an error loading your shopping basket! Please <a href="/contact/">contact us</a> or try again later</p>');
			a1.catalogue.cart = null;
		}
	}
	
	if (a1.catalogue.cart) {
		_ajaxLoadMiniBasketItemsReturn(a1.catalogue.cart);
	} else {
		$.ajax({
			type: 'GET',
			success: _ajaxLoadMiniBasketItemsReturn,
			url: a1.servicesURL + '?site=a1jewellers&name=catalogue.getBasketItems&u_sid=' + ak.sessionId + '&t=' + ak.utils.unixTimeStamp(),
			dataType: 'json',
			error: function(){
				ak.logger.error('there was an error loading mini basket items');
			}
		});
	}
}

a1.catalogue.updateBasketItems = function(aForm) {
	if (!a1.catalogue.hasBasket()) {
		return;
	}	
	
	function _ajaxUpdateBasketItemsReturn() {
		a1.catalogue.cart = null; //clear previous data
		//if on product page then use product id
		var prodOpt = $('#add_to_basket_opt a');
		var bits = prodOpt.length ? prodOpt[0].href.match(/\(([0-9]+)\)/) : [];
		if (bits.length == 2) {
			a1.catalogue._basketChanged(bits[1]);
		} else {
			a1.catalogue._basketChanged();
		}
	}
	
	var basketInputs = aForm.elements;
	var postData = {};
	
	for (var i=0; i<basketInputs.length; i++) {
		if (basketInputs[i].type == 'text') {
			postData[basketInputs[i].name] = basketInputs[i].value; 
		}
	}
	
	$.ajax({
			type:'POST',
			success:_ajaxUpdateBasketItemsReturn,
			url:a1.servicesURL + '?site=a1jewellers&name=catalogue.updateCart&u_sid=' + ak.sessionId + '&t=' + ak.utils.unixTimeStamp(),
			data:postData,
			dataType:'text',
			error: function() { ak.logger.error('there was an error updating mini basket items'); }
		});
}

a1.catalogue.loadBasketItems = function() {
	if (!a1.catalogue.hasMainBasket()) {
		return;
	}
	
	function _ajaxLoadBasketItemsReturn(data) {
		var loadingEl = $('#b_items .loading');
		loadingEl.css('display', 'none');
		loadingEl.css('background-color', '#FFE2C5');
		var noItemsMsg = $('#b_items .no-items');
		if (typeof data == 'object' ) {
			if (data.items && data.items.length) {
				var mcItems = $('#b_items table')[0];
				var basketHTML = '';
				var aRow = null;
				var aCell = null;
				
				//delete existing items
				$('#b_items tr.item').remove();
				
				//items
				for (var i = 0; i < data.items.length; i++) {
					aRow = mcItems.insertRow(mcItems.rows.length); //add a row to table
					aRow.className = 'item';
					//quantity					
					aCell = aRow.insertCell(0);
					aCell.innerHTML = '<input type="text" name="quantity[' + data.items[i].cart_item_id + ']" value="' + 
							data.items[i].prod_quantity + '"  ' + 
							(data.frozen ? 'disabled style="background:#ddd;"' : '') +'/>';
					
					//description
					aCell = aRow.insertCell(1);
					aCell.innerHTML = data.items[i].html;
					
					//stock hint
					aCell = aRow.insertCell(2);
					basketHTML += '<td>'+data.items[i].stock_hint+'</td>';
					
					//price
					aCell = aRow.insertCell(3);
					aCell.innerHTML = '&pound;'+data.items[i].prod_price;
					
					//total price
					aCell = aRow.insertCell(4);
					aCell.innerHTML = '&pound;'+(data.items[i].prod_quantity * data.items[i].prod_price);
					if (!data.frozen) {
						//remove button
						aCell = aRow.insertCell(5);
						aCell.innerHTML = '<input name="A1' + data.items[i].prod_id + '" type="image" ' +
						'onclick="a1.catalogue.removeProductFromBasket(' +
						data.items[i].object_id +
						'); return false;" ' +
						'src="' +
						ak.graphicsPath +
						'collections/images/a1_general/trash.gif" alt="Remove this product from basket" ' +
						'title="Remove this product from basket"/>';
					}
				}
				
				//totals
				$('.sbDeliveryCharge').html('&pound;' + data.totals.delivery_charge.numFormat(2));
				$('.sbTotalPriceIncVAT').html('&pound;' + data.totals.amount_inc_vat.numFormat(2));
				$('.sbVAT').html('&pound;' + data.totals.amount_vat.numFormat(2));
				
				
				noItemsMsg.css('display', 'none');
				$('#b_totals').css('display', '');
				$('#b_opts').css('display', '');
				if (data.frozen) {
					$('#b_opts').html('<p>Above items are being processed<br/>You may <a href="JavaScript:' +
							'document.location.href=document.location.href + ' + 
							'(document.location.search.match(/\\?/) ? \'&\' : \'?\') + ' + 
							'\'srset=1\'"><b>start another order</b></a></p>');
				}
				
				a1.catalogue.cart = data;
			} else {
				$('#b_opts').css('display', 'none');
				$('#b_items .items').css('display', 'none');
				$('#mc_totals').css('display', 'none');
				noItemsMsg.css('display', '');
				noItemsMsg.html('<p>There are no items in your basket!</p>');
				a1.catalogue.cart = null;
			}
		} else {
			$('#b_opts').css('display', 'none');
			$('#b_items .items').css('display', 'none');
			$('#mc_totals').css('display', 'none');
			noItemsMsg.css('display', '');
			noItemsMsg.html('<p>There was an error loading your shopping basket! Please <a href="/contact/">contact us</a> or try again later</p>');
			a1.catalogue.cart = null;
		}
	}
	
	$.ajax({
			type:'GET',
			success:_ajaxLoadBasketItemsReturn,
			url:a1.servicesURL + '?site=a1jewellers&name=catalogue.getBasketItems&getHTML=1&u_sid=' + ak.sessionId + '&t=' + ak.utils.unixTimeStamp(),
			dataType:'json',
			error: function() { ak.logger.error('there was an error loading mini basket items'); }
		});
}

a1.catalogue.loadPayPalCheckout = function(data){
	
	if (data.items.length) {
		var gcHTML = '<h1>Checkout</h1><p>please click on the PayPal checkout link below to continue; You will be taken to the PayPal checkout system where you can make a secure payment for this order.</p>'; 
		if (document.location.host.match(/cms\.|\.dev/) && 1==0) { //development so use sandbox
			gcHTML += '<form method="POST" action="https://www.sandbox.paypal.com/uk/cgi-bin/webscr">';
		} else {
			gcHTML += '<form method="POST" action="https://www.paypal.com/cgi-bin/webscr">';
		}
				
		for (var i=0; i<data.items.length; i++) {
			gcHTML += '<input type="hidden" name="item_name_'+(i+1)+'" value="'+data.items[i].prod_name+' A1'+data.items[i].prod_id+'">';
			gcHTML += '<input type="hidden" name="item_price_'+(i+1)+'" value="'+(parseFloat(data.items[i].prod_price) / (parseFloat(data.tax_rate) + 1))+'">';			
		}
		gcHTML += '<input type="hidden" name="cmd" value="_cart">';
		gcHTML += '<input type="hidden" name="upload" value="1">'; 
		gcHTML += '<input type="hidden" name="business" value="amanank@yahoo.com">';
		
		gcHTML += '<div class="gc-image"><input type="image" name="PayPal Checkout" alt="Fast checkout through PayPal" src="http://images.paypal.com/images/x-click-but5.gif" height="52" width="150"/></div>';
		gcHTML += '</form>';
	
		$('#g_checkout').html(gcHTML);
	} else {
		$('#g_checkout').html('<h1>Checkout</h1><p>There are no items in your basket; Please add some items to your basket before begining the checkout process.</p>');
	}
}

a1.catalogue.loadGoogleCheckout = function(){
	function _ajaxLoadGoogleCheckoutReturn(data) {
		a1.catalogue.loadPayPalCheckout(data);
		return;
		if (data.items.length) {
			var gcHTML = '<h1>Checkout</h1><p>Please click on the google checkout link below to continue; You will be taken to the google checkout system where you can make a secure payment for this order.</p>'; 
			if (document.location.host.match(/cms\.|\.dev/)) { //development so use sandbox
				gcHTML += '<form method="POST" action="https://sandbox.google.com/checkout/cws/v2/Merchant/' + data.sandbox_merchant_id + '/checkoutForm" accept-charset="utf-8">';
			} else {
				gcHTML += '<form method="POST" action="https://checkout.google.com/api/checkout/v2/checkoutForm/Merchant/' + data.merchant_id + '" accept-charset="utf-8">';
			}
					
			for (var i=0; i<data.items.length; i++) {
				gcHTML += '<input type="hidden" name="item_merchant_id_'+(i+1)+'" value="A1'+data.items[i].prod_id+'">';
				gcHTML += '<input type="hidden" name="item_name_'+(i+1)+'" value="'+data.items[i].prod_name+' A1'+data.items[i].prod_id+'">';
				gcHTML += '<input type="hidden" name="item_description_'+(i+1)+'" value="'+data.items[i].prod_description+'">';
				gcHTML += '<input type="hidden" name="item_price_'+(i+1)+'" value="'+(parseFloat(data.items[i].prod_price) / (parseFloat(data.tax_rate) + 1))+'">';
				gcHTML += '<input type="hidden" name="item_quantity_'+(i+1)+'" value="'+data.items[i].prod_quantity+'">';
				gcHTML += '<input type="hidden" name="item_currency_'+(i+1)+'" value="GBP">';
			}
			gcHTML += '<input type="hidden" name="checkout-flow-support.merchant-checkout-flow-support.edit-cart-url" value="' + document.location.href.replace(/checkout.*$/, '') + '"/>'; 
			gcHTML += '<input type="hidden" name="checkout-flow-support.merchant-checkout-flow-support.tax-tables.default-tax-table.tax-rules.default-tax-rule-1.tax-area.world-area"/>';
			gcHTML += '<input type="hidden" name="checkout-flow-support.merchant-checkout-flow-support.tax-tables.default-tax-table.tax-rules.default-tax-rule-1.rate" value="'+data.tax_rate+'"/>'; 
			gcHTML += '<input type="hidden" name="checkout-flow-support.merchant-checkout-flow-support.shipping-methods.flat-rate-shipping-1.name" value="Royal Mail Registered UK Only"/>';
			gcHTML += '<input type="hidden" name="checkout-flow-support.merchant-checkout-flow-support.shipping-methods.flat-rate-shipping-1.price" value="'+data.totals.delivery_charge+'"/>';
			gcHTML += '<input type="hidden" name="checkout-flow-support.merchant-checkout-flow-support.shipping-methods.flat-rate-shipping-1.price.currency" value="GBP"/>';
			
			gcHTML += '<div class="gc-image"><input type="image" name="Google Checkout" alt="Fast checkout through Google" src="http://checkout.google.com/buttons/checkout.gif?merchant_id='+data.merchant_id+'&w=180&h=46&style=white&variant=text&loc=en_US" height="46" width="180"/></div>';
			gcHTML += '</form>';

			$('#g_checkout').html(gcHTML);
		} else {
			$('#g_checkout').html('<h1>Checkout</h1><p>There are no items in your basket; Please add some items to your basket before begining the checkout process.</p>');
		}
	}
	
	if (a1.catalogue.cart) {
		_ajaxLoadGoogleCheckoutReturn(a1.catalogue.cart);
	} else {
		$.ajax({
			type: 'GET',
			success: _ajaxLoadGoogleCheckoutReturn,
			url: a1.servicesURL + '?site=a1jewellers&name=catalogue.getBasketItems&u_sid=' + ak.sessionId + '&t=' + ak.utils.unixTimeStamp(),
			dataType: 'json',
			error: function(){
				ak.logger.error('there was an error loading mini basket items');
			}
		});
	}	
}

a1.catalogue.loadSecureTradingCheckout = function(){


$('#g_checkout').html('<h1>Sorry</h1><p>Currently we are only accepting payment via bank transfer. Please phone us on 0161 721 4924 <a href="http://www.a1jewellers.com/contact/"></a> to place your order over the phone.</p>');
return;


	function _ajaxLoadCheckoutReturn(data) {
		if (data.items.length) {
			var gcHTML = '<h1>Checkout</h1><p>Please click on the Secure Trading link below to make a secure payment for youyr oredr; Deliver will be made to you billing address.</p>'; 
			
			gcHTML += '<form method="POST" action="https://securetrading.net/authorize/form.cgi" onsubmit="return a1.catalogue.freezeCart(this);">';
			gcHTML += '<input type="hidden" name="currency" value="gbp">';
			gcHTML += '<input type="hidden" name="orderref" value="'+data.sc.order_ref+'">';
			gcHTML += '<input type="hidden" name="orderinfo" value="'+data.sc.order_info+'">';
			gcHTML += '<input type="hidden" name="requiredfields" value="name,email,address,town,postcode,country,email">';
			gcHTML += '<input type="hidden" name="merchant" value="'+data.sc.merchant+'">';
			gcHTML += '<input type="hidden" name="merchantemail" value="sc.checkout@a1jewellers.com">';
			gcHTML += '<input type="hidden" name="amount" value="'+data.sc.b_amount+'">';
			gcHTML += '<input type="hidden" name="st_sitesecurity" value="'+data.sc.st_sitesecurity+'"/>';
			gcHTML += '<div class="gc-image"><input type="image" title="Continue to payment" alt="Continue to payment" src="http://www.securetrading.com/images/logo_clip_image001.jpg" height="87" width="150"/></div>';
			gcHTML += '<div id="c_ldr" class="gc-image" style="display:none;"><img src="'+ak.graphicsPath+'collections/images/a1_general/loading.gif" /><p>Processing Please Wait...</p></div>';
			gcHTML += '</form>';

			$('#g_checkout').html(gcHTML);
		} else {
			$('#g_checkout').html('<h1>Checkout</h1><p>There are no items in your basket; Please add some items to your basket before begining the checkout process.</p>');
		}
	}
	
	if (a1.catalogue.cart) {
		_ajaxLoadCheckoutReturn(a1.catalogue.cart);
	} else {
		$.ajax({
			type: 'GET',
			success: _ajaxLoadCheckoutReturn,
			url: a1.servicesURL + '?site=a1jewellers&name=catalogue.getBasketItems&u_sid=' + ak.sessionId + '&t=' + ak.utils.unixTimeStamp(),
			dataType: 'json',
			error: function(){
				ak.logger.error('there was an error loading mini basket items');
			}
		});
	}	
}  

a1.catalogue.freezeCart = function (cForm) {
	function _showError() {
		$('#c_ldr p').html('There was an error processing your order. Please try again later');
		$('#c_ldr IMG').css({'display':'none'});
	}
	
	
	function _ajaxReturn(data) {
		if (data == 1) {
			this.context.submit();
		} else {
			_showError();
		}
	}
	
	$('#c_ldr').css({'display':'block'});
	$.ajax({
			type: 'GET',
			success: _ajaxReturn,
			url: a1.servicesURL + '?site=a1jewellers&name=catalogue.freezeCart&u_sid=' + ak.sessionId + '&t=' + ak.utils.unixTimeStamp(),
			dataType: 'json',
			context: cForm,
			error: function(){
				ak.logger.error('there was an error freezing cart');
				_showError();
			}
		});
	return false;
}
