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.5, 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.5, 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(params)
	{
		if($('detailPreloader') )
		{
			$('detailPreloader').show(); 
			$('detailPreloader').setStyle({backgroundImage: 'url(/images/loading-universal.gif)'});
		}
		if($('listPreloader') )
		{
			$('listPreloader').show(); 
			$('listPreloader').setStyle({backgroundImage: 'url(/images/loading-universal.gif)'});
		}
		this.runProcessing();
		ajax("/catalog/basket/add-item", params, "post", this.onSuccessUpdate.bind(this, params));
	},
	deleteItem:function(itemId)
	{
		this.runProcessing();
		var params = new Object();	
		params['itemId'] = itemId;	
		ajax("/catalog/basket/delete-item", params, "get", this.onSuccessUpdate.bind(this, false)); 
	},
	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, false));
	},
	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, false));
	},
	recalculate: function()
	{
		this.runProcessing();
		var params = $('basketForm').serialize(true); 
		ajax("/catalog/basket/recalculate", params, "post",  this.onSuccessUpdate.bind(this, false));
	},
	onSuccessUpdate:function(params, transport)
	{
		
		if($('detailPreloader') ) 
		{
			$('detailPreloader').hide(); 
			$('detailPreloader').setStyle({backgroundImage: 'none'});
		}
		if($('listPreloader') ) 
		{
			$('listPreloader').hide(); 
			$('listPreloader').setStyle({backgroundImage: 'none'});
		}
		
		if($('addedItemToBasker'))
		{
			Effect.Fade('addedItemToBasker');
		}
		
		
		var data = transport.responseJSON; 
		if($('basketLayer'))
		{
			$('basketLayer').update(data['basketLayer']);	
		}
		if($('menuBasketCount'))
		{
			$('menuBasketCount').update(data['count']);	
		}
		if($('menuBasketTotal'))
		{
			$('menuBasketTotal').update(data['total'] + " &#8364;");	
		}
		
		
		if (data['count'] > 0 )
		{
			Effect.Appear('menuBasketCount',{ duration: 0.2});
		}
		else
		{
			Effect.Fade('menuBasketCount',{ duration: 0.3});
		}
		this.stopProcessing();		
		runAutoFunctions();
		
		if(params)
		{
			if(params.configurator)
			{
				if($('configuratorBottomBasketConfirmation' + params['productId']))
				{
					Effect.Appear('configuratorBottomBasketConfirmation' + params['productId'], {duration: 0.4, afterFinish: this.hideConfirmation.bind(this, 'configuratorBottomBasketConfirmation' + params['productId'])});
				}
				if($('configuratorTopBasketConfirmation' + params['productId']))
				{
					Effect.Appear('configuratorTopBasketConfirmation' + params['productId'], {duration: 0.4, afterFinish: this.hideConfirmation.bind(this, 'configuratorTopBasketConfirmation' + params['productId'])});
				}
			}
			else if($('basketConfirmation' + params['productId']))
			{
				Effect.Appear('basketConfirmation' + params['productId'], {duration: 0.4, afterFinish: this.hideConfirmation.bind(this, 'basketConfirmation' + params['productId'])});
			}
		}
		
	},
	
	hideConfirmation: function(id)
	{
		Effect.Fade(id, {duration: 0.4, delay: 1.5});
	},
	
	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();
	}
);
