$ = $.noConflict();

function Cart()
{
	me = this;
	me.phpUrl = '/cart/';
	me.add = function(id, session_id, name, price, type, venue_id, age, quantity)
	{
		if(age == undefined) age = 'Under 7\'s';
		name = name + ' <span class="info" title="'+age+'">i</span>';
		if(quantity == undefined) quantity = 1;
		if(id != undefined && session_id != undefined && price != undefined && type != undefined)
		{
			switch(type)
			{
				case 'ticket':
					if($('div.sefaCart ul.tickets li.cartItem[itemId='+id+'][sessionId='+session_id+']').length == 0)
					{
						var cartItem = '<li class="cartItem" itemId="'+id+'" sessionId="'+session_id+'" venueId="'+venue_id+'"><div class="name"><p>'+name+'</p></div><div class="controls" style="display:none;"><div class="minus" onclick="$(this).parent().find(\'p\').html($(this).parent().find(\'p\').html()-1);sefaCart.totalCartPrice();" style="display: block; opacity: 1; "></div><p style="margin-left: 6px; ">1</p><div class="plus" onclick="$(this).parent().find(\'p\').html($(this).parent().find(\'p\').html()+1);sefaCart.totalCartPrice();" style="display: block; opacity: 1; "></div></div><div class="price"><p>£'+price+'</p><div class="delete" onclick="$(this).parents(\'li\').remove();sefaCart.totalCartPrice();" style="display: block; opacity: 1; "></div></div><div class="itemData" style="display:none;"><span class="id">'+id+'</span><span class="session_id">'+session_id+'</span><span class="venue_id">'+venue_id+'</span>'
						
						if(age=='true')
						{
							cartItem += '<span class="discount">'+quantity+'</span>';
						}
						
						cartItem += '</div></li>';
						
						
						$('div.sefaCart ul.tickets li.cartPlaceholder').before(cartItem);
					}
					else
					{
						//$('div.sefaCart ul.tickets li.cartItem[itemId='+id+',sessionId='+session_id+']').find('div.controls .plus').click();
					}
				break;
				case 'gallery':
					if($('div.sefaCart ul.tickets li.cartItem[itemId='+id+'][sessionId='+session_id+']').length == 0)
					{
						$('div.sefaCart ul.gallery li.cartPlaceholder').before('<li class="cartItem tooltipsy" title="'+(age.toUpperCase())+'" itemId="'+id+'"><div class="delete" onclick="$(this).parents(\'li\').remove();sefaCart.totalCartPrice();"></div><div class="border"></div><img src="'+venue_id+'" /><div class="itemData" style="display:none;"><span class="id">'+id+'</span><span class="type">'+age+'</span><span class="price">'+price+'</span></div></li>');
					}
				break;
				
			}
			if(!$('div.cartMessage').is(':animated'))
			{
				$('div.cartMessage').animate({
					left: -10
				}, 200).delay(1750).animate({
					left: -166
				}, 200);
			}
		}
		me.totalCartPrice();
	}
	me.totalCartPrice = function()
	{
		var totalPrice = 0;
		$('div.sefaCart ul.tickets li.cartItem').each(function(){
			var itemPrice = parseFloat($(this).find('div.price p:first').html().replace('£', ''));
			var amount = $(this).find('div.controls p').html();
			if(amount<=0)
			{
				$(this).find('div.delete').click();
			}
			var price = itemPrice * amount;
			totalPrice = totalPrice + price;
		});
		$('div.sefaCart ul.gallery li.cartItem').each(function(){
			var price = parseFloat($(this).find('div.itemData span.price').html());
			totalPrice = totalPrice + price;
		});
		$('span.cartTotal').html('&pound;'+(totalPrice));
		me.sessionCart();
	}
	me.sessionCart = function()
	{
		var cartContents = new Array();
		$('div.sefaCart ul.tickets li.cartItem').each(function(){
			var itemId = $(this).find('div.itemData span.id').html();
			var itemSessionId = $(this).find('div.itemData span.session_id').html();
			var itemAmount = $(this).find('div.controls p').html();
			cartContents.push('ticket:'+itemId+':'+itemSessionId+':'+itemAmount);
		});
		$('div.sefaCart ul.gallery li.cartItem').each(function(){
			var item = new Object();
			var itemId = $(this).find('div.itemData span.id').html();
			var itemType = $(this).find('div.itemData span.type').html();
			switch($(this).find('div.itemData span.type').html())
			{
				case 'thumb':
					var itemPrice = 1.50;
				break;
				case 'download':
					var itemPrice = 6.95;
				break;
			}
			
			cartContents.push('gallery:'+itemId+':'+itemType);
		});
		$.ajax({
			url: me.phpUrl,
			data: 'cartContents='+cartContents,
			method: 'POST',
			success: function(data)
			{
				if($('span.cartTotal').length!=0 && $('div.sefaCart li.cartDiscount').length!=0 && $('span.cartTotal').html()!='&pound;'+data)
				{
					$('span.cartDiscount').empty();
					//$('span.cartTotal').html('&pound;'+data);
					var cartDiscount = 0;
					var cartTotal = 0;
					$('div.sefaCart ul.tickets li.cartItem').each(function(){
						if($(this).attr('sessionid')=='full')
						{
							console.log($(this).find('span.discount').html()+' '+$(this).find('span.discount').length);
							if($(this).find('span.discount').html()!=undefined)
							{
								cartDiscount = cartDiscount + (parseFloat($(this).find('span.discount').html().replace('£', ''))*10);
								cartTotal = cartTotal + parseFloat($(this).find('div.price p').html().replace('£', '')-parseFloat($(this).find('span.discount').html().replace('£', '')));
							}
							else
							{
								cartDiscount = cartDiscount + parseFloat($(this).find('div.price p').html().replace(/[^0-9.]/, ''));
								cartTotal = cartTotal + parseFloat($(this).find('div.price p').html().replace('£', '')*0.9);
							}
						}
						else
						{
							cartTotal = cartTotal + parseFloat($(this).find('div.price p').html().replace('£', ''));
						}
					});
					$('div.sefaCart ul.gallery li.cartItem').each(function(){
						cartTotal = cartTotal + parseFloat($(this).find('span.price').html().replace('£', ''));
					});
					$('span.cartDiscount').html('-&pound;'+(cartDiscount*0.1));
					$('span.cartTotal').html('&pound;'+(cartTotal.toFixed(2)));
				}
			}
		});
	}
	me.checkout = function()
	{
		var cartItems = 0;
		$('div.sefaCart li.cartItem').each(function(){
			cartItems++;
		});
		if(cartItems>0)
			window.location = me.phpUrl+'?checkout';
		else
			alert("Your cart is empty!");
	}
}

var sefaCart = new Cart();
