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("/basket/add-item/", params, "post", this.onSuccessUpdate.bind(this));
	},
	addItemClean:function(form)
	{
		
		this.runProcessing();
		var params = form.serialize(true);	
		$("addedItemToBasker").show();
		ajax("/basket/add-item/", params, "post", this.onSuccessUpdate.bind(this));
	},
	deleteItem:function(itemId)
	{
		this.runProcessing();
		var params = new Object();	
		params["itemId"] = itemId;	
		ajax("/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("/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("/basket/decrement-item/", params, "get", this.onSuccessUpdate.bind(this));
	},
	recalculate: function()
	{
		this.runProcessing();
		var params = $("basketForm").serialize(true); 
		ajax("/basket/recalculate/", params, "post",  this.onSuccessUpdate.bind(this));
	},
	onSuccessUpdate:function(transport)
	{
		
		if($("addedItemToBasker"))
		{
			Effect.Fade("addedItemToBasker");
		}
		
		var data = transport.responseJSON;
		if($("pricelistBasketCount"))
		{
			$("pricelistBasketCount").updater(data["count"]);
		} 
		if($("menuBasketCount"))
		{
			$("menuBasketCount").updater(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();
	}
);
