
var Cart = {
	selector: '#ddcart',
	mode: 'widget', // widget (always visible), dropdown base view
	shown: false,

	init: function(selector, mode)
	{
		Cart.selector = selector;
		Cart.mode = mode;

		$(document).ready(function(){
			$('form[name="product_form"] select').change(Cart.get_price);
		})
	},

	add: function(product_id, quantity)
	{
		if(quantity === undefined)
		{
			quantity = 1;
		}
		
		$.get(Vega.site_url('shop/cart/ajax_add_product/'+product_id+'/'+quantity), null, function()
		{
			Cart.load_view();
			if(Cart.mode == 'dropdown')
			{
				Cart.show_dropdown(true);
			}
		}, 'html');
	},

	addForm: function()
	{
		var data = $('form[name="product_form"]').serialize();

		$.post(Vega.site_url('shop/cart/ajax_add_product_form'), data, function(reply){
			Cart.load_view();
			if(Cart.mode == 'dropdown')
			{
				Cart.show_dropdown(true);
			}
		});
	},

	remove: function(rowid)
	{
		$.get(Vega.site_url('shop/cart/ajax_remove/'+rowid), null, function()
		{
			Cart.load_view();
		}, 'html');
	},

	clear: function()
	{
		$.get(Vega.site_url('shop/cart/ajax_clear_cart'), null, function()
		{
			Cart.load_view();
		}, 'html');
	},

	load_view: function()
	{
		if(Cart.mode == 'widget')
		{
			$(Cart.selector).load(Vega.site_url('shop/cart/ajax_refresh_widget')+' .box_widget');
		}
		else if(Cart.mode == 'dropdown')
		{
			$(Cart.selector).load(Vega.site_url('shop/cart/ajax_refresh_widget')+' .ddcart_contents');
		}
		else
		{
			$(Cart.selector).load(Vega.site_url('shop/cart/ajax_refresh')+' #base_cart');
		}
	},

	show_dropdown: function(scroll_to_top)
	{
		if(scroll_to_top === undefined)
		{
			scroll_to_top = false;
		}

		if(Cart.shown == false && Cart.mode == 'dropdown')
		{
			if(scroll_to_top)
			{
				$('html, body').animate({scrollTop: 0},500, function(){
					$(Cart.selector).slideDown();
				})
			}
			else
			{
				$(Cart.selector).slideDown();
			}

			Cart.shown = true;
		}
	},

	hide_dropdown: function()
	{
		if(Cart.shown == true && Cart.mode == 'dropdown')
		{
			$(Cart.selector).slideUp();
			Cart.shown = false;
		}
	},

	toggle_dropdown: function()
	{
		if(Cart.shown)
		{
			Cart.hide_dropdown();
		}
		else
		{
			Cart.show_dropdown();
		}
	},

	change_quantities: function()
	{
		var data = $('form[name="cart"]').serialize();

		$.post(Vega.site_url('shop/cart/ajax_refresh'), data, function(reply){
			$(Cart.selector).html(reply);
		});
	},

	get_price: function()
	{
		var data = $('form[name="product_form"]').serialize();

		$.post(Vega.site_url('shop/cart/ajax_get_price'), data, function(reply){
			// Parse these in order to compare for any changes
			old_price = parseInt($('#final_price').html().replace(/[,\.]/g, ''));
			new_price = parseInt(reply['price'].replace(/[,\.]/g, ''));
			old_net_price = parseInt($('#net_price').html().replace(/[,\.]/g, ''));
			new_net_price = parseInt(reply['net_price'].replace(/[,\.]/g, ''));

			if(new_price > 0 && new_price != old_price && new_net_price > 0 && new_net_price != old_net_price)
			{
				$('#net_price').html(reply['net_price']).animate({color: '#FF0000'}, 1000, function(){
					$('#final_price').html(reply['price']).animate({color: '#FF0000'}, 1000);
				});
			}
		}, 'json');
	}
}
