
var lastCart = false;

var simplecart = {
	
	show_tax: true,
	show_shipping: true,
	show_total: true,
	show_empty_button: true,
	show_checkout_button: true,
	shipping_carrier: 'UPS',
	
	print_cart: function(cart)
	{
		var div = document.createElement('div');
		div.id = 'simplecart_cart';
		
		var h2 = document.createElement('h2');
		h2.innerHTML = 'Shopping Cart';
		div.appendChild(h2);
		
		if (cart.lineItems.length == 0)
		{
			var p = document.createElement('p');
			p.id = 'simplecart_cart';
			p.innerHTML = 'Your cart is empty.';
			div.appendChild(p);
			jQuery('#simplecart_cart').replaceWith(div);
			return;
		}
		
		var table = document.createElement('table');
		table.id = 'simplecart_cart';
		var tbody = document.createElement('tbody');
		var td;
		var tr;
		
		for (var i in cart.lineItems)
		{
			var li = cart.lineItems[i];
			
			tr = document.createElement('tr');
			
			td = document.createElement('td');
			td.innerHTML = li.product.name;
			tr.appendChild(td);
			
			td = document.createElement('td');
			td.align = 'right';
			td.innerHTML = li.product.unitPrice.toFixed(2);
			tr.appendChild(td);
			
			td = document.createElement('td');
			input = document.createElement('input');
			input.id = 'cart_qty' + li.product.id;
			input.className = 'qty';
			input.width = 20;
			input.value = parseInt(li.quantity);
			td.appendChild(input);
			tr.appendChild(td);
			
			td = document.createElement('td');
			td.align = 'right';
			td.innerHTML = li.total.toFixed(2);
			tr.appendChild(td);
			
			tbody.appendChild(tr);
		}
		
		tr = document.createElement('tr');
		td = document.createElement('td');
		td.colSpan = 3;
		td.align = 'right';
		td.innerHTML = 'Subtotal';
		tr.appendChild(td);
		tbody.appendChild(tr);
		td = document.createElement('td');
		td.align = 'right';
		td.innerHTML = cart.subtotal.toFixed(2);
		tr.appendChild(td);
		tbody.appendChild(tr);
		table.appendChild(tbody);
		
		if (this.show_tax && cart.taxRate > 0)
		{
			tr = document.createElement('tr');
			td = document.createElement('td');
			td.colSpan = 3;
			td.align = 'right';
			td.innerHTML = 'Tax';
			tr.appendChild(td);
			tbody.appendChild(tr);
			td = document.createElement('td');
			td.align = 'right';
			td.innerHTML = cart.tax.toFixed(2);
			tr.appendChild(td);
			tbody.appendChild(tr);
			table.appendChild(tbody);
		}
		if (this.show_shipping && cart.shipping)
		{
			tr = document.createElement('tr');
			td = document.createElement('td');
			td.colSpan = 3;
			td.align = 'right';
			td.innerHTML = 'Shipping';
			tr.appendChild(td);
			tbody.appendChild(tr);
			td = document.createElement('td');
			td.align = 'right';
			td.innerHTML = parseFloat(cart.shipping).toFixed(2);
			tr.appendChild(td);
			tbody.appendChild(tr);
			table.appendChild(tbody);
		}
		if (this.show_total && cart.shipping)
		{
			tr = document.createElement('tr');
			td = document.createElement('td');
			td.colSpan = 3;
			td.align = 'right';
			td.innerHTML = 'Total';
			tr.appendChild(td);
			tbody.appendChild(tr);
			td = document.createElement('td');
			td.align = 'right';
			td.innerHTML = cart.total.toFixed(2);
			tr.appendChild(td);
			tbody.appendChild(tr);
			table.appendChild(tbody);
		}
		div.appendChild(table);
				
		if (this.shipping_carrier == 'UPS')
		{
			p = document.createElement('p');
			p.id = 'simplecart_shipping';
			span = document.createElement('span');
			span.innerHTML = 'Shipping zip: ';
			p.appendChild(span);
			
			input = document.createElement('input');
			input.type = 'text';
			input.id = 'shipping_zip';
			input.maxLength = 5;
			input.value = cart.zip ? cart.zip : '';
			p.appendChild(input);
			
			div.appendChild(p);
		}
		
		p = document.createElement('p');
		p.id = 'simplecart_buttons';
		
		input = document.createElement('input');
		input.className = 'update';
		input.type = 'button';
		input.value = 'Update';
		input.onclick = function() { simplecart.update_cart(); };
		p.appendChild(input);
		
		if (this.show_empty_button)
		{
			input = document.createElement('input');
			input.className = 'empty';
			input.type = 'button';
			input.value = 'Empty';
			input.onclick = function() { simplecart.empty_cart(); };
			p.appendChild(input);
		}
		if (this.show_checkout_button)
		{
			input = document.createElement('input');
			input.className = 'checkout';
			input.type = 'button';
			input.value = 'Checkout';
			input.onclick = function() { window.location = '/checkout'; };
			p.appendChild(input);
		}
		
		div.appendChild(p);
		
		jQuery('#simplecart_cart').replaceWith(div);
		lastCart = cart;
	},
	
	add: function(pID) 
	{                                      
		var qty = jQuery('#qty' + pID).val();
	
		jQuery.ajax({
			url: '/wp-content/plugins/simplecart/simplecart.php',
			type: 'POST',
			data: 'action=add&pID=' + pID + '&qty=' + qty,
			dataType: 'json',
			success: function(cart) { simplecart.print_cart(cart); }
		});
	},
	
	update_cart: function()
	{
		var params = {
			action: 'update',
			zip: jQuery('#shipping_zip').val()
		};
		for (var i in lastCart.lineItems)
		{
			var li = lastCart.lineItems[i];
			params['qty'+li.product.id] = jQuery('#cart_qty' + li.product.id).val();
			params['qty'+li.product.id] = jQuery('#cart_qty' + li.product.id).val();
		}
		
		jQuery.ajax({
			url: '/wp-content/plugins/simplecart/simplecart.php',
			type: 'POST',
			data: params,
			dataType: 'json',
			success: function(cart) { simplecart.print_cart(cart); }
		});		
	},
	
	empty_cart: function()
	{
		jQuery.ajax({
			url: '/wp-content/plugins/simplecart/simplecart.php',
			type: 'POST',
			data: 'action=empty',
			dataType: 'json',
			success: function(cart) { simplecart.print_cart(cart); }
		});		
	},
	
	init_cart: function()
	{
		jQuery.ajax({
			url: '/wp-content/plugins/simplecart/simplecart.php',
			type: 'GET',
			data: 'action=get',
			dataType: 'json',
			success: function(cart) { simplecart.print_cart(cart); }
		});
	}
};

// Print out the cart on page load
jQuery(document).ready(function() {	simplecart.init_cart(); });
