var addToCart = new Class({
	
	initialize: function(cartElement)
	{
		this.overlay = $('shoppingCartBg');
		this.eventPosition = this.position.bind(this);

		// az oldalso kosar ikon
		this.cartIcon = $('shoppingCart');

		// az egy elemes kis kosar layer
		this.buyLayer = $('buyLayer');


		// a kosarba rako cuccokhoz rendeljuk az actionoket
		//this.cartButtons = $A($$('.buy'));
		this.cartButtons = $A($$('.putCart'));
		this.cartButtons.each
		(
			// atpasszoljuk az item adatait a megjelenito/beallito fuggvenynek
			function(button)
			{
				var s = button.getProperty('name').split('|')

				// item adatok (type, id, name) felszedese a hidden divekbol
				var iType = s[0];//button.getElement('div[name=itemType]').getText();
				var iId = s[1];//button.getElement('div[name=itemId]').getText();
				var iName = s[2];//button.getElement('div[name=itemName]').getText();

				// gomb + hozzarendeles
				//var cartIcon = button.getElement('a[class=putCart]');
				button.addEvent( 'click', this.showBuyLayer.bindAsEventListener( this, Array(iType, iName, iId) ) );

			}.bind(this)
		);


		// fuggveny hozzarendeles a kis kosar +, -, es torles gombokhoz
		$$('#buyLayer .setIncQ').addEvent('click', this.setProduct.bindAsEventListener(this, 'inc') );
		$$('#buyLayer .setDescQ').addEvent('click', this.setProduct.bindAsEventListener(this, 'desc') );
		$$('#buyLayer .removeItem').addEvent('click', this.setProduct.bindAsEventListener(this, 'remove') );

		// hide hozzarendeles a gombokhoz
		/*
		this.closeButtons = $A($$('.endConfirm'));
		this.closeButtons.each
		(
			function(button)
			{ 
				button.addEvent('click',this.hideBuyLayer.bindAsEventListener(this));
			}.bind(this)
		);
		*/
		$('buyLayerClose').addEvent('click',this.hideBuyLayer.bindAsEventListener(this));
		$$('#buyLayer .removeItem').addEvent('click', this.hideBuyLayer.bindAsEventListener(this));

	},


	// kosarba rako gombok hozzarendelese a csomagokhoz (ajaxos csomagkirakasnal hivja ezt a fuggvenyt)
	packageCartButtons: function(cartElement)
	{
		//alert('aa');

		//var packageCartButtons = $$('#packageContainerDynamicTab .putCart');
		var packageCartButtons = $$('#termekPageTabContainer .putCart');
		packageCartButtons.each
		(
			// atpasszoljuk az item adatait a megjelenito/beallito fuggvenynek
			function(button)
			{
				var s = button.getProperty('name').split('|')

				// item adatok (type, id, name) felszedese a hidden divekbol
				var iType = s[0];//button.getElement('div[name=itemType]').getText();
				var iId = s[1];//button.getElement('div[name=itemId]').getText();
				var iName = s[2];//button.getElement('div[name=itemName]').getText();

				// gomb + hozzarendeles
				//var cartIcon = button.getElement('a[class=putCart]');
				button.addEvent( 'click', this.showBuyLayer.bindAsEventListener( this, Array(iType, iName, iId) ) );

			}.bind(this)
		);

	},




	// megjeleniti a kosarat + beallitja az adott item(termek/csomag) adatait a tovabbi feldolgozasokhoz
	showBuyLayer: function(layer, iType, iNev, iId)
	{
		// item(termek,csomag) adatok class valtozoba
		this.itemType = iType;
		this.itemId = iId;
		this.itemNev = iNev;

		// takaro
		var displayOverlay = this.overlay.effects({duration: 300, transition: Fx.Transitions.sineInOut});
		displayOverlay.start({'opacity': [0,0.8]});

		// item eggyel novel (az item type es id itt mar megvan a classban, nem kell passzolgatni)
		this.setProduct(this, 'inc');

		// item nev beallitas a kosar layerben
		//$$('#buyLayer .prodName').setHTML(this.itemNev+' ('+this.itemId+')');
		$$('#buyLayer .prodName').setHTML(this.itemNev);

		// kiskosar positio
		var topposka = window.getScrollTop() + (window.getHeight()*0.3);
		this.buyLayer.setStyle('top', topposka);

		// megjelenik a kosar bizgeto layer a kocsog effekttel
		var displayBuyLayer = this.buyLayer.effects({duration: 200, transition: Fx.Transitions.sineInOut});
		displayBuyLayer.start({'opacity': [1]});

		// selectek hide-olasa a buzi explorernek
		$$('select').setOpacity(0);
		
		this.open();
	},
	

	// itemszam novelo-csokkento ajaxhivo cucc
	setProduct: function(fuk, mode)
	{
		new Ajax('/ajaxz/cart.php',
		{
			method: 'post',
			data: 'cart_type=item&item_type=' + this.itemType + '&item_id=' + this.itemId + '&mode=' + mode,
			//update: $('cartQuantity')//,
			onComplete: function(response)
			{
				// a resonst feldogozzuk
				var text = '';
				var splitted = response.split('|');

				// 0. resz az adott tetel mennyisege a kosarban
				text = (splitted[0]==0) ? '-' : splitted[0] + ' db';
				$('cartQuantity').setHTML(text);


				// 1, 2 resz: full tetelnum/tetel summa  a kosarban
				if (splitted[1]==0)
				{
					// beallitjuk a kosarlayer textet
					var text = 'az ön kosara üres';
					// kikapcsoljuk, ha kell (classvizsgalattal koll eldonteni, hogy ki-e van kapcsolva)
					if ( addCart.cartIcon.hasClass('goToCart') )
					{
						addCart.cartIcon.removeEvents();
						addCart.cartIcon.addClass('goToCartEmptyCart');
						addCart.cartIcon.removeClass('goToCart');
					}
				}
				else
				{
					// beallitjuk a kosarlayer textet
					var text = splitted[1] + ' termék<br/>' + splitted[2] + ' Ft';
					// bekapcsoljuk, ha kell
					if ( addCart.cartIcon.hasClass('goToCartEmptyCart') )
					{
						addCart.cartIcon.addEvent('click', fullCart.showShoppingCart.bindAsEventListener(fullCart));
						addCart.cartIcon.addClass('goToCart');
						addCart.cartIcon.removeClass('goToCartEmptyCart');
					}
				}
				//
				addCart.cartIcon.setHTML(text);
			}
		}).request();
	},


	position: function()
	{
		this.overlay.setStyles({top: window.getScrollTop()+'px', height: window.getHeight()+'px'});
	},
		

	open: function()
	{
		this.overlay.setStyles({top: '0px', height: window.getHeight()+window.getScrollTop()+'px'});
		//this.position();
		//this.setup(true);
	},
		

	setup: function(open)
	{
		var fn = open ? 'addEvent' : 'removeEvent';
		window[fn]('scroll', this.eventPosition)[fn]('resize', this.eventPosition);
	},


	// gui@
	// kosarpakolo elrejtes
	hideBuyLayer: function(layer)
	{
		var hideOverlay = this.overlay.effects({duration: 500, transition: Fx.Transitions.sineInOut});
		hideOverlay.start({'opacity': [0]});
		
		var hideTheLayer = this.buyLayer.effects({duration: 500, transition: Fx.Transitions.sineInOut});
		hideTheLayer.start({'opacity': [0]});
		
		function delaySelect() {
			$$('select').setOpacity(1);
		}
		var myTimer = delaySelect.delay(500); 
		//myTimer = $clear(myTimer); //nevermind
	}

});


window.addEvent('domready', function()
{
	if ($$('.putCart'))
	{
		addCart = new addToCart($$('.putCart'));
	}
}
);
