Pro3000.Shop = new Class
({
    initialize: function(element)
    {
		this.typeForms = $$('form.shopTypesForm');
		this.basket = $$('div#basket div#basketInner')[0];
		this.basketLoader = $$('div#basket div#basketLoader')[0];
		
		this.addDeleteLinkEvents();
		this.addFormEvents();
	},
	
	addFormEvents: function()
	{
		this.typeForms.each(function(form){
			form.addEvent('submit',function(e)
			{
				e.stop();
				
				this.basketLoader.setStyle('display', "block");
				
				var request = new Request.JSON(
				{
					url: form.get('action'),
					onComplete: function(e)
					{
						this.updateBasket();
					}.bind(this)
				});
				
				request.post(form);
			
			}.bind(this));
		}.bind(this));
	},
	
	addDeleteLinkEvents: function()
	{
		$$('div#basket a.delete').each(function(element)
		{
			element.addEvent('click', function(e)
			{
				e.stop();
				
				var request = new Request(
				{
					method: 'get',
					url: "/shop/basket/action/delete/",
					onComplete: function()
					{
						this.updateBasket();
					}.bind(this)
				});
				
				request.send("id="+element.get('id'));
			}.bind(this));
		}.bind(this));
	},
	
	updateBasket: function()
	{
		var myFx = new Fx.Scroll(window).toTop();
		
		var request = new Request(
		{
			url: "/shop/basket/",
			onComplete: function(response)
			{
				this.basket.innerHTML = response;
				this.basketLoader.setStyle('display', "none");
				this.addDeleteLinkEvents();
			}.bind(this)
		});
		
		request.get();
	}
});
