var Basket = Class.create (
{
	moving:false,
	visible:false,
	basketLayerId:'basketLayer',
	initialize: function()
	{

	},
	show : function ()
	{
		if (this.visible) return;	

		this.visible = true;
		this.moving = true;

	$('basketMenuItem').addClassName('selected');
	/*
	//schovanie active-x komponentov v IE6, aby neboli stale zobrazene
	isIE6 = navigator.userAgent.toLowerCase().indexOf('msie 6') != -1;
	if (isIE6)
	{
		$$('#product_list_filter select').each(function(e) {e.style.visibility='hidden';});	
	}
	*/
	Effect.SlideDown(this.basketLayerId,{ duration: 0.7, afterFinish: function() {
				  this.moving = false;				
				  }.bind(this)});
	
	
	},
	hide : function ()
	{
		if (!this.visible) return;
		this.moving = true;
		$('basketMenuItem').removeClassName('selected');
		Effect.SlideUp(this.basketLayerId,{ duration: 0.7, afterFinish: function() {
					  this.visible = false;	
					  this.moving = false;	
						 /* //zobrazenie active-x komponentov v IE6, aby neboli stale zobrazene
						  isIE6 = navigator.userAgent.toLowerCase().indexOf('msie 6') != -1;
						  if (isIE6)
						  {
								$$('#product_list_filter select').each(function(e) {e.style.visibility='visible';});
						  }*/
					 this.callback();	  
					  }.bind(this)});
	
	
	},
	toogle :function ()
	{
		if (!this.moving && !this.visible)
		{
			this.show();
		}
		if (!this.moving && this.visible)
		{
			this.hide();
		}
	},
    overIncrementor: function(itemId,sign)
	{
	
		$('incrementor_'+itemId).addClassName(sign);
	},
	
	outIncrementor: function (itemId,sign)
	{
	
		$('incrementor_'+itemId).removeClassName(sign);
		//$('incrementor_'+itemId).removeClassName(sign + 'Down');
	},
	downIncrementor: function(itemId,sign)
	{
	
		
		$('incrementor_'+itemId).addClassName(sign + 'Down');
	},
	upIncrementor: function(itemId,sign)
	{
	
		$('incrementor_'+itemId).removeClassName(sign + 'Down');
	},
	callback: function()
	{
		
	},
	addItem:function(form)
	{
		
		this.runProcessing();
		var params = form.serialize(true);	
		$('addedItemToBasker').show();
		ajax("/catalog/basket/add-item", params, "post", this.onSuccessUpdate.bind(this));
	},
	addItemClean:function(form)
	{
		
		this.runProcessing();
		var params = form.serialize(true);	
		$('addedItemToBasker').show();
		ajax("/catalog/basket/add-item", params, "post", this.onSuccessUpdate.bind(this));
	},
	deleteItem:function(itemId)
	{
		this.runProcessing();
		var params = new Object();	
		params['itemId'] = itemId;	
		ajax("/catalog/basket/delete-item", params, "get", this.onSuccessUpdate.bind(this)); 
	},
	incrementItem: function(itemId)
	{
		this.runProcessing();
		var params = new Object();	
		params['itemId'] = itemId;
		params['amount'] = 1;
		ajax("/catalog/basket/increment-item", params, "get", this.onSuccessUpdate.bind(this));
	},
	decrementItem: function (itemId)
	{
		this.runProcessing();
		var params = new Object();	
		params['itemId'] = itemId;
		params['amount'] = 1;
		ajax("/catalog/basket/decrement-item", params, "get", this.onSuccessUpdate.bind(this));
	},
	recalculate: function()
	{
		this.runProcessing();
		var params = $('basketForm').serialize(true); 
		ajax("/catalog/basket/recalculate", params, "post",  this.onSuccessUpdate.bind(this));
	},
	onSuccessUpdate:function(transport)
	{
		
		if($('addedItemToBasker'))
		{
			Effect.Fade('addedItemToBasker');
		}
		
		
		var data = transport.responseJSON; 
		if($('basketLayer'))
		{
			$('basketLayer').update(data['basketLayer']);	
		}
		if($('pricelistBasketCount'))
		{
			$('pricelistBasketCount').update(data['count']);	
		} 
		if($('menuBasketCount'))
		{
			$('menuBasketCount').update(data['count']);	
		}
		
		if (data['count'] > 0 )
		{
			Effect.Appear('menuBasketCount',{ duration: 0.2});
			Effect.Appear('pricelistBasketCount',{ duration: 0.2});
		}
		else
		{
			Effect.Fade('menuBasketCount',{ duration: 0.3});
			Effect.Fade('pricelistBasketCount',{ duration: 0.3});
		}
		this.stopProcessing();		
		runAutoFunctions();
		
	},
	runProcessing:function()
	{
	  	var imageSrc = $('basketProccesingImage').src;  	
  		$('basketProccesingImage').src  = imageSrc.replace('-stopped\.','\.');
		
	 
	},
	stopProcessing:function()
	{
		
	//netreba menit src nakolko sa updatuje cele html a defaultne je stopped processing
	/*	var imageSrc = $('basketProccesingImage').src;
  		var extensionIndex = imageSrc.lastIndexOf('.');
		alert(imageSrc);
  		imageSrc  = imageSrc.substring(0,extensionIndex) + '-stopped' + imageSrc.substring(extensionIndex);	
		alert($('basketProccesingImage').src);*/
	}
});

var basket;
Event.observe(window, 'load', function() 
	{
		basket = new Basket();
	}
);
