var shoppingCart = new Class(
{
	initialize: function(shopCart)
	{
		this.overlay = $('shoppingCartBg');
		this.cartInfo = $('shoppingCart');
		this.cartLayer = $('shoppingCartLayer');
		this.closeButtons = [];
		
		this.eventPosition = this.position.bind(this);
/*		
		$$('.endShopping').each (
			function(elem)
			{
				this.closeButtons.push($(elem)); 
			}.bind(this)
		);

		this.closeButtons.each (
  			function(button)
  			{ 
  				button.addEvent('click',this.hideShoppingCart.bindAsEventListener(this));
  			}.bind(this)
  		);
*/
		
		if ( this.cartInfo.hasClass('goToCart') )
		{
			this.cartInfo.addEvent('click',this.showShoppingCart.bindAsEventListener(this));
		}
	},
	


	// kosar bekapcsolas
	showShoppingCart: function(layer)
	{
		$('shoppingCartLayer').setHTML('');

		// itt toltjuk ki a kosarat jol
		new Ajax('/ajaxz/cart.php',
		{
			method: 'post',
			data: 'mode=showFull',
			update: $('shoppingCartLayer'),
			evalScripts: true
		}).request();

		var displayOverlay = this.overlay.effects({duration: 300, transition: Fx.Transitions.sineInOut});
		displayOverlay.start({'opacity': [0, 0.8]});
		
		var displayCart = this.cartLayer.effects({duration: 300, transition: Fx.Transitions.sineInOut});
		displayCart.start({'opacity': [0, 1]});
		
		$$('select').setOpacity(0);
			
		this.open();
	},
   			


	// gombok hozzarendelese a nagy kosarhoz
	// kirakas utan az ajaxbol visszaadott file-ban levo javascript hivja meg, mert akkor van meg a tartalom
	bindButtons: function()
	{
		// az item mennyisegeket tartalmazo divek tombje
		this.itemQuants = new Array(2);
		this.itemQuants['t'] = new Array();
		this.itemQuants['c'] = new Array();

		// az item subtotalokat tartalmazo divek tombje
		this.itemSubTotalContainers = new Array(2);
		this.itemSubTotalContainers['t'] = new Array();
		this.itemSubTotalContainers['c'] = new Array();

		this.termekTables = $$('.shopCartTable');
		this.termekTables.each
		(
			// az item adatok a tablazatokban levo hidden divekben vannak
			function(tTable)
			{
				// item adatok (type, id, name) felszedese a hidden divekbol
				var iType = tTable.getElement('div[name=itemType]').getText();
				var iId = tTable.getElement('div[name=itemId]').getText();

				// felszedjuk a kosarban levo valtozo container elemeket
				this.itemQuants[iType][iId] = tTable.getElement('div[class=showQuantityBigCart]');
				this.itemSubTotalContainers[iType][iId] = tTable.getElement('td[class=subTotal]');
					
				//  hoozarendeljuk a +, -, torles gombokhoz az ajaxhivo tetelszamvaltoztato fuggvenyt
				tTable.getElement('a[name=incTetel]').addEvent( 'click', this.setProduct.bindAsEventListener( this, Array(iId, iType, 'inc') ) );
				tTable.getElement('a[name=descTetel]').addEvent( 'click', this.setProduct.bindAsEventListener( this, Array(iId, iType, 'desc') ) );
				tTable.getElement('td[class=del]').getElement('a').addEvent( 'click', this.setProduct.bindAsEventListener( this, Array(iId, iType, 'remove') ) );

			}.bind(this)
		);

	},



	// itemszam novelo-csokkento ajaxhivo cucc
	setProduct: function(fuk, iId, iType, mode)
	{
		new Ajax('/ajaxz/cart.php',
		{
			method: 'post',
			data: 'cart=big&&item_type=' + iType + '&item_id=' + iId + '&mode=' + mode,
			onComplete: function(response)
			{
				//alert(response);
				var text = '';

				// a resonst szijjelvagjuk lesz belole splitted
				var splitted = response.split('|');

				// splitted[0]: az adott item mennyisege a kosarban:  ha nulla, akkor eltunik a sor
				if (splitted[0]==0)
				{
					var itemContainerName = 'cartItem' +iType + iId;
					$(itemContainerName).setHTML('');
					$(itemContainerName).setStyle('display', 'none');
					//var tblName = 'cartItemTable' +iType + iId;
					//$('shoppingCartLayer').getElement('table[name='+tblName+']').setStyle('display', 'none');
				}
				else
				{
					// mennyiseg beiras
					fullCart.itemQuants[iType][iId].setHTML(splitted[0]);

					// response 3 es 4 az adott item brutto es netto fullja (ha nulla, akkor nem kell beirni, mar ugysem latszik)
					if (splitted[3]!=0)
					{
						var itemfull = '<span class="important">' + splitted[3] + ' Ft</span><br/>';
						if (splitted[4]!='0')
							itemfull+= '(' + splitted[4] + ' Ft + áfa)';
						fullCart.itemSubTotalContainers[iType][iId].setHTML(itemfull);
					}
				}


				// full elemszam a kosarban: splitted[1]
				if (splitted[1]>0)
				{
					// full tetelszam a kosarban: splitted[5]
					$$('#shoppingCartLayer .itemNo').setHTML('<span>' + splitted[5] + '</span> termék van a kosárban');

					// splitted[2]: full brutto a kosarban - beirjuk a nagy kosarba
					$('shoppingCartLayer').getElement('div[class=total]').setHTML('Rendelés összege: <span class="grossPrice">' + splitted[2] + ' Ft</span>');

					// jobb oldali kosarikont bekapcsoljuk, ha kell
					if ( addCart.cartIcon.hasClass('goToCartEmptyCart') )
					{
						addCart.cartIcon.addEvent('click', fullCart.showShoppingCart.bindAsEventListener(fullCart));
						addCart.cartIcon.addClass('goToCart');
						addCart.cartIcon.removeClass('goToCartEmptyCart');
					}

					// jobb oldali kosarikonba a teremk es brutto summak
					addCart.cartIcon.setHTML(splitted[1]+' termék<br/>' + splitted[2] + ' Ft');
				}
				// ha nincs tetel
				else
				{
					/*
					// tetelszam nagy kosarban
					$$('#shoppingCartLayer .itemNo').setHTML('<span>&nbsp;</span>az ön kosara üres');
					// fullosszeg nagykosar
					$('shoppingCartLayer').getElement('div[class=total]').setHTML('Rendelés összege: <span class="grossPrice">-</span>');
					//
					text = '<span>&nbsp;</span>az ön kosara üres';
					*/

					// kosarikont kikapcsoljuk, ha kell
					if ( addCart.cartIcon.hasClass('goToCart') )
					{
						addCart.cartIcon.removeEvents();
						addCart.cartIcon.addClass('goToCartEmptyCart');
						addCart.cartIcon.removeClass('goToCart');
					}

					// summa kiskosarban
					addCart.cartIcon.setHTML('az ön kosara üres');

					// be is zarjuk jol
					fullCart.hideShoppingCart();
				}
			}
		}).request();
	},



	// kosar dunamikus urites
	emptyCart: function(fuk, iId, iType, mode)
	{
		new Ajax('/ajaxz/cart.php',
		{
			method: 'post',
			data: 'cart=big&mode=empty'/*,
			onComplete: function(response)
			{
				alert(response);
			}*/

		}).request();

		// kosarikont kikapcsoljuk
		if ( addCart.cartIcon.hasClass('goToCart') )
		{
			addCart.cartIcon.removeEvents();
			addCart.cartIcon.addClass('goToCartEmptyCart');
			addCart.cartIcon.removeClass('goToCart');
		}

		// summa kiskosarban
		addCart.cartIcon.setHTML('az ön kosara üres');

		// be is zarjuk jol
		fullCart.hideShoppingCart();
	},



	position: function()
	{
		this.overlay.setStyles({top: window.getScrollTop()+'px', height: window.getHeight()+'px'});
	},
		


	open: function()
	{
		this.position();
		this.setup(true);
	},
		


	setup: function(open)
	{
		var fn = open ? 'addEvent' : 'removeEvent';
		window[fn]('scroll', this.eventPosition)[fn]('resize', this.eventPosition);
	},
	


	hideShoppingCart : function() 
	{
		var hideOverlay = this.overlay.effects({duration: 300, transition: Fx.Transitions.sineInOut});
		hideOverlay.start({'opacity': [0]});
		
		var hideTheCart = this.cartLayer.effects({duration: 300, transition: Fx.Transitions.sineInOut});
		hideTheCart.start({'opacity': [0]});
		
		function delaySelect() {
			$$('select').setOpacity(1);
		}
		var myTimer = delaySelect.delay(500); 
		//myTimer = $clear(myTimer); //nevermind
	}
	
});

window.addEvent('domready', function(){
	fullCart = new shoppingCart($('shoppingCart'));
});