
function ajaxPostUpdate(action, params, callback) {
	 callback = typeof(callback) != 'undefined' ? callback : false;
	new Ajax.Request(action, {
				method: 'post',
				parameters: params,
  				onSuccess: function(transport) {
					if (transport.responseText == '1') {
						if (callback != false) {
							callback(params);
						}
					} else {
						alert('fail');
					}
  				}
	});
}
function ajaxUpdate(action, elem, params) {
	params = typeof(params) != 'undefined' ? params : {};
	new Ajax.Updater(elem, action, params);

}

	function addItemToCart(id) {
		$('atc_submit_'+id).src = '/images/buttons/addtocart_loading.gif';
		$('atc_loader_'+id).appear({duration:0.5});
		ajaxPostUpdate('/shop/addtocart/', {item:id, quantity:$('atc_quantity_'+id).value}, refreshCart);
	}

	function refreshCart(item) {
		item = typeof(item) != 'undefined' ? item : false;
		$('cartloading').appear({duration:0.5, delay:0.25});

		if ($('cart').style.display != 'none') {
			$('cart').slideUp({duration:0.5});
		}

		new Ajax.Request('/shop/getcart', {
  				onSuccess: function(transport) {
					$('cart').innerHTML = transport.responseText;
					$('cartloading').fade({duration:0.5});
					$('cart').slideDown({duration:0.5, delay:0.25});
  				}
		});
		if (item != false)  {
			var id = item.item;
			$('atc_submit_'+id).src = '/images/buttons/addtocart.gif';
			$('atc_quantity_'+id).value = '';
			$('atc_loader_'+id).fade({duration:0.5});
		}
	}

	function showCart() {
		if ($('cartmenu').style.display == 'none') {
			$('cartmenu').slideDown({duration:0.5});
			$('cartbutton').src = '/images/buttons/cart_up.png';
		} else {
			$('cartmenu').slideUp({duration:0.5});
			$('cartbutton').src = '/images/buttons/cart.png';
		}
	}

	function removeFromCart(item) {
		if ($('cart').style.display != 'none') {
			$('cart').slideUp({duration:0.5});
		}
		$('cartloading').appear({duration:0.5, delay:0.25});
		new Ajax.Request('/shop/removefromcart/'+item, {
  				onSuccess: function(transport) {
					if (transport.responseText == '1') {
						$('cart_item_'+item).fade({duration:0.5});
					}
					showCart.delay(0.5);
					refreshCart.delay(0.75);
					showCart.delay(1.5);
  				}
		});
	}


	function showUpdateLink() {
		if ($('updatecart').style.display == 'none') {
			$('proceed').dropOut({duration:0.5});
			$('updatecart').grow({duration:0.5, delay:0.5});
		}
	}

	function cancelShop() {
		if (confirm('Are you sure you want to cancel this order?')) {
			return true;
		} else {
			return false;
		}
	}

	function checkBilling() {
		if ($('billingdetails').style.display == 'none') {
			$('billingdetails').appear({duration:0.5});
		} else {
			$('billingdetails').fade({duration:0.5});
		}
	}

	function changePaymentMethod(method) {
		if (method == 'banktransfer') {
			var del = 0;
			if ($('pm_creditcard').style.display != 'none') {
				$('pm_creditcard').fade({duration:0.5});
				$('pm_continue').fade({duration:0.5});
				del = 0.6;
			}
			$('pm_banktransfer').innerHTML = '<p>Please wait... &nbsp;&nbsp;<img src="/images/addtocart_loader.gif" alt="" /></p>';
			$('pm_banktransfer').appear({duration:0.5, delay:del});
			new Ajax.Request('/shop/banktransfer', {
  				onSuccess: function(transport) {
  					$('pm_banktransfer').fade({duration:0.5, delay:0.5});
					updateElement.delay(1.1, 'pm_banktransfer', transport.responseText);
					$('pm_banktransfer').appear({duration:0.5, delay:1.7});
					$('pm_continue').appear({duration:0.5, delay:1.7});
  				},
  				onFailure: function() {
  					$('pm_banktransfer').fade({duration:0.5, delay:0.5});
					updateElement.delay(1.1, 'pm_banktransfer','<p class="error">Woops! There was a communiction error, please refresh you page and try again.</p>');
					$('pm_banktransfer').appear({duration:0.5, delay:1.7});
  				}
			});
		}

		if (method == 'creditcard') {
			var del = 0;
			if ($('pm_banktransfer').style.display != 'none') {
				$('pm_banktransfer').fade({duration:0.5});
				$('pm_continue').fade({duration:0.5});
				del = 0.6;
			}
			$('pm_creditcard').appear({duration:0.5, delay:del});
			$('pm_continue').appear({duration:0.5, delay:del});
		}

		if (method == 0) {
			if ($('pm_continue').style.display != 'none') {
				$('pm_continue').fade({duration:0.5});
			}
			if ($('pm_banktransfer').style.display != 'none') {
				$('pm_banktransfer').fade({duration:0.5});
			}
			if ($('pm_creditcard').style.display != 'none') {
				$('pm_creditcard').fade({duration:0.5});
			}
		}
	}

	function updateElement(elem, content) {
		$(elem).innerHTML = content;
	}