	var CartUser='';
	var CartData=new Array();
	var LastCartOperation=new Object();
	var CartItemCount2=0;
	var NoCartView=0;
	LastCartOperation.id=0;
	LastCartOperation.q=0;
	LastCartOperation.o='p';
	LastCartOperation.tl='?';
	LastCartOperation.uts='';

	if(pageTrackerEvents==undefined){
		var pageTrackerEvents=new Array();
	}

	function clearLocalCart(){
		CartUser='';
		CartData=new Array();
		NoCartView=0;
		Cookie.del('CartUser');
		Cookie.del('CartData');
	}

	function displayCart(ErrorCode){
		if($O('shopping-cart-box')==undefined){
			return;
		}
		var CartHTML='';
		var CartItemCount;
		if(ErrorCode<0){
			switch(ErrorCode){
				case -1: //user logged out
					$O('shopping-cart-box').style.display='none';
					CartHTML='';
					break;
				case -2: //communication error
					break;
					$O('shopping-cart-box').style.display='block';
					CartHTML='Kommunikációs<br />hiba!';
					break;
				default:
					$O('shopping-cart-box').style.display='block';
					CartHTML='Ismeretlen<br />hiba! ('+ErrorCode+')';
			}
		}else{
			if(!CartUser){
				$O('shopping-cart-box').style.display='none';
				CartHTML="";
			}else{
				$O('shopping-cart-box').style.display='block';
				CartItemCount=CartData.length;
				if(CartItemCount==0){
					CartHTML="<a href=\"/checkout/checkout.php\">Az Ön kosara még üres.</a>";
				}else{
					CartHTML="<a href=\"/checkout/checkout.php\">Kosárban van: <strong>"+CartItemCount+"</strong> féle termék</a>";
				}
			}
		}
		$O('shopping-cart').innerHTML=CartHTML;
	}

	function showState(ProductID, DesiredQuantity){
		var ProductFound=false;
		for(var i=0; i<CartData.length; i++){
			if(CartData[i]['id']==ProductID){
				message="";
				if(DesiredQuantity && DesiredQuantity==parseInt(CartData[i]['q'])){
					message=message+"<p>A termékből jelenleg <strong>"+CartData[i]['q']+" db</strong> van <strong>"+CartData[i]['p']+" Ft</strong>-os (<strong>fix- vagy villám-</strong>) áron a <a href=\"/checkout/checkout.php\">kosárban</a>.<br />";
					if(parseInt(CartData[i]['mq'])>parseInt(CartData[i]['q'])){
						message=message+"(még további "+(CartData[i]['mq']-CartData[i]['q'])+" db vásárolható belőle)";
					}else{
						message=message+"(További megvásárolható mennyiség nem áll rendelkezésre)";
					}
					message=message+"</p>";
				}else{
					if(parseInt(CartData[i]['mq'])>parseInt(CartData[i]['q'])){
						message=message+"<p class=\"color-warning\">A kért módosítás végrehajtása nem, vagy csak részben sikerült!</p>";
						message=message+"<p>A termékből jelenleg <strong>"+CartData[i]['q']+" db</strong> van <strong>"+CartData[i]['p']+" Ft</strong>-os (<strong>fix- vagy villám-</strong>) áron a <a href=\"/checkout/checkout.php\">kosárban.</a><br />";
						message=message+"(Még további "+(CartData[i]['mq']-CartData[i]['q'])+" db vásárolható belőle)</p>";
					}else{
						message=message+"<p class=\"color-warning\">A termékből a teljes rendelkezésre álló mennyiség (<strong>"+CartData[i]['mq']+" db</strong>) a <a href=\"/checkout/checkout.php\">kosarában</a> van már! </p>";
					}
				}
				if(CartData.length!=CartItemCount2){
					message=message+"<p>Az Ön <a href=\"/checkout/checkout.php\">kosarában</a> jelenleg <strong>"+CartData.length+" féle</strong> (összesen "+CartItemCount2+" db) termék található.</p>";
				}else{
					message=message+"<p>Az Ön <a href=\"/checkout/checkout.php\">kosarában</a> jelenleg <strong>"+CartData.length+"</strong> termék található.</p>";
				}
				ProductFound=true;
			}
		}
		if(ProductID && !ProductFound){
			if(DesiredQuantity==0){
				message="A termék kikerült a <a href=\"/checkout/checkout.php\">kosarából</a>!";
			}else{
				message="<p class=\"color-warning\">Az aukció pillanatnyilag nem aktív, ezért a terméket nem sikerült a <a href=\"/checkout/checkout.php\">kosárba</a> helyezni!</p>";
				//disableCartControl(ProductID);
			}
		}
		if(NoCartView){
			message= "<p class=\"color-warning strong\">Ellenőrizetlen felhasználóként Ön helyezhet termékeket kosarába, de a további kosár funkciók használata csak <a href=\"/user/validation/index.php\">ellenőrzött felhasználóként</a> lehetséges. A kosárba helyezés művelet nem jár semmilyen vásárlási kötelezettséggel.</p>" + message;
		}
		showCartModal(message);
	}

	function calculateCartItemCount2(CartData){
		CartItemCount2=0;
		for(var i=0; i<CartData.length; i++){
			CartItemCount2=CartItemCount2+parseInt(CartData[i].q);
		}
		Cookie.set('CartItemCount2',CartItemCount2,0);
	}

	function unserializeCartData(serialized){
		var Retval=new Array();
		var Rows=serialized.split('.');
		if(Rows.length==1){
			if(Rows==''){
				return Retval;
			}
			Rows=new Array(Rows);
		}
		for(var i=0; i<Rows.length; i++){
			var Fields=Rows[i].toString().split('_');
			if(Fields.length<5){
				return new Array();
			}
			var Item=new Object();
			Item.id=Fields[0];
			Item.p=Fields[1];
			Item.ap=Fields[2];
			Item.q=Fields[3];
			Item.mq=Fields[4];
			Retval.push(Item);
		}
		calculateCartItemCount2(Retval);
		return Retval;
	}
	
	function loadCartSuccess2(ResponseText){
		Infos=ResponseText.split("\n");
		if(Infos.length<5){
			displayCart(-2);
		}else{
			if(Infos[0]){
				CartUser=Infos[0];
				Cookie.set('CartUser',Infos[0],0);
				if(Infos[1]){
					//eval("CartData=new Array("+Infos[1]+")");
					CartData=unserializeCartData(Infos[1]);
					Cookie.set('CartData',Infos[1],0);
				}else{
					CartData=new Array();
					Cookie.del('CartData');
				}
				displayCart(0);
				updateCartControls();
				if(parseInt(Infos[3])>0){
					showState(Infos[3], Infos[2]);
					if(Infos[4]<1){
						Infos[4]=null;
					}
					if(Infos[5]){
						trackBuyButton('', Infos[5] , Infos[4]);
					}else{
						//todo default to 'lent'
						trackBuyButton('', '?' , Infos[4]);
					}
					if(Infos[6]==1){
						NoCartView=1;
					}else{
						NoCartView=0;
					}
				}
			}else{
				//user logged out
				clearLocalCart();
				displayCart(-1);
				if(LastCartOperation.id){
					document.location='/checkout/cart_login.php?id='+LastCartOperation.id+'&q='+LastCartOperation.q+'&o='+LastCartOperation.o+'&tl='+LastCartOperation.tl+'&uts='+escape(LastCartOperation.uts)+'&ref='+escape(document.location);
				}
				//clearCartControls();
			}
		}
		LastCartOperation.id=0;
		LastCartOperation.q=0;
		LastCartOperation.o='p';
		LastCartOperation.tl='?';
		LastCartOperation.uts='';
		document.close();

	}

	function loadCartSuccess(Caller){
		loadCartSuccess2(Caller.http.responseText);
	}

	function loadCartFailure(Caller){
		displayCart(-2);
		LastCartOperation.id=0;
		LastCartOperation.q=0;
		LastCartOperation.o='p';
		LastCartOperation.tl='?';
		LastCartOperation.uts='';
		document.close();
	}

	function loadCart(Caller, ProductID, Operation, Quantity, TrackingLabel, UTSource){
		if(isNaN(Quantity)){
			QuantityField=$O(Quantity);
			if(QuantityField){
				Quantity=parseInt(QuantityField.value);
				if(isNaN(Quantity) || Quantity<1){
					window.alert("Kérjük, adja meg a mennyiséget!");
					return;
				}
			}else{
				Quantity=1;
			}
		}
		LastCartOperation.id=ProductID;
		LastCartOperation.q=Quantity;
		LastCartOperation.o=Operation;
		LastCartOperation.tl=TrackingLabel;
		LastCartOperation.uts=UTSource;
		var cart_ajax=new Utils.Ajax(Caller, VirtualRootUrl+'checkout/cart.php', '?id='+ProductID+'&q='+Quantity+'&o='+Operation+'&tl='+TrackingLabel+'&uts='+UTSource, loadCartSuccess, loadCartFailure);
		cart_ajax.withOverlay=0;
		cart_ajax.call();
	}

	function trackBuyButton(TrackingPageOverride, TrackingLabel, Price){
		if(TrackingPageOverride){
			TrackingPage=TrackingPageOverride;
		}else{
			try{
				if(CartTrackingPage!=undefined){
					TrackingPage=CartTrackingPage;
				}else{
					TrackingPage='ismeretlen_oldal';
				}
			}catch(err){
				TrackingPage='ismeretlen_oldal';
			}
		}
		if(pageTracker){
			setTimeout("pageTracker._trackEvent('Buy_button', '"+TrackingPage+"', '"+TrackingLabel+"', "+parseInt(Price)+");",0);
		}else{
			var tempEventObject=new Object();
			tempEventObject.category='Buy_button';
			tempEventObject.action=TrackingPage;
			tempEventObject.label=TrackingLabel;
			tempEventObject.value=Price;
			pageTrackerEvents.push(tempEventObject);		
		}
	}

	function getCartControls(){
		var retnode=new Array();
		var elements=document.getElementsByTagName('span');
		for (var i=0;i<elements.length;i++){
			var classes=elements[i].className;
			if (classes.indexOf('cart-control')>=0){
				retnode.push(elements[i]);
			}
		}
		return retnode;
	}

	function updateCartControls(){
		var RefreshedProducts=new Array();
		var CartPrefixes=new Array('cart_', 'dcrt_');
		for(var z=0; z<CartPrefixes.length; z++){
			if(CartPrefixes[z]=='cart_'){
				var TrackingLabel='fent';
			}else{
				var TrackingLabel='lent';
			}
			for(var i=0; i<CartData.length; i++){
				CartControl=$O(CartPrefixes[z]+CartData[i]['id']);
				if(CartControl){
					DefaultQuantity=CartControl.getAttribute('default_quantity');
					UTSource=CartControl.getAttribute('uts');
					if(!DefaultQuantity){
						DefaultQuantity=1;
					}
					if(parseInt(CartData[i]['q'])<parseInt(CartData[i]['mq'])){
						PlusLink='<a href="javascript:loadCart(this,'+CartData[i]['id']+',\'p\',\''+DefaultQuantity+'\',\''+TrackingLabel+'\',\''+UTSource+'\');"><img alt=\"\" title=\"Gyűjtse kosarába a megvásárolni kívánt termékeket fix- vagy villámáron és rendelje meg őket egyszerre\" src=\"'+ImageUrl+'v2/images/item/view/button_cart_active.gif\" border=\"0\" style=\"padding:2px;\"/></a>';
					}else{
						PlusLink='<a href="javascript:showState('+CartData[i]['id']+');"><img alt=\"\" title=\"Gyűjtse kosarába a megvásárolni kívánt termékeket fix- vagy villámáron és rendelje meg őket egyszerre\" src=\"'+ImageUrl+'v2/images/item/view/button_cart_active.gif\" border=\"0\" style=\"padding:2px;\"/></a>';
					}
					CartControl.innerHTML=PlusLink;
					RefreshedProducts['p'+CartData[i]['id']]=1;
				}
			}
		}
		CartableProducts=getCartControls();
		for(var i=0; i<CartableProducts.length; i++){
			ControlPrefix=CartableProducts[i].id.substr(0,5);
			if(ControlPrefix=='cart_'){
				var TrackingLabel='fent';
			}else{
				var TrackingLabel='lent';
			}
			ProductID=CartableProducts[i].id.substr(5);
			if(RefreshedProducts['p'+ProductID]==1){
				;
			}else{
				if(!CartableProducts[i].NotAvailable){
					DefaultQuantity=CartableProducts[i].getAttribute('default_quantity');
					UTSource=CartableProducts[i].getAttribute('uts');
					if(!DefaultQuantity){
						DefaultQuantity=1;
					}
					CartableProducts[i].innerHTML='<a href=\"javascript:loadCart(this,'+ProductID+',\'p\',\''+DefaultQuantity+'\',\''+TrackingLabel+'\',\''+UTSource+'\');\"><img alt=\"\" title=\"Gyűjtse kosarába a megvásárolni kívánt termékeket fix- vagy villámáron és rendelje meg őket egyszerre\" src=\"'+ImageUrl+'v2/images/item/view/button_cart_active.gif\" border=\"0\" style=\"padding:2px;\" /></a>';
				}
			}
		}
	}

	function disableCartControl(ProductID){
		var CartPrefixes=new Array('cart_', 'dcrt_');
		for(var z=0; z<CartPrefixes.length; z++){
			CartControl=$O(CartPrefixes[z]+ProductID);
			if(CartControl){
				CartControl.NotAvailable=1;
				CartControl.innerHTML='';
			}
		}
	}

	/*function clearCartControls(){
		CartableProducts=getCartControls();
		for(var i=0; i<CartableProducts.length; i++){
			CartableProducts[i].innerHTML='';
		}
	}*/

	function restoreCart(){
		var CurrentUser=Cookie.get('login_name');
		if(CurrentUser){
			CartUserCookie=Cookie.get('CartUser');
			CartItemCount2=Cookie.get('CartItemCount2');
			if(CurrentUser==CartUserCookie && CartUserCookie){
				CartDataCookie=Cookie.get('CartData');
				if(CartDataCookie==null){
					CartDataCookie='';
				}
				//eval("CartData=new Array("+CartDataCookie+")");
				CartData=unserializeCartData(CartDataCookie);
				CartUser=CartUserCookie;
				displayCart(0);
				updateCartControls();
			}else{
				clearLocalCart();
				loadCart(this, 0,'s',0,'?','');
			}
			var CartOpRetID=Cookie.get('CartOpRetID');
			if(CartOpRetID){
				var CartOpRetQ=Cookie.get('CartOpRetQ');
				var CartOpRetP=Cookie.get('CartOpRetP');
				var CartOpRetTL=Cookie.get('CartOpRetTL');
				NoCartView=Cookie.get('CartOpRetNCV');
				showState(CartOpRetID, CartOpRetQ);
				Cookie.del('CartOpRetID');
				Cookie.del('CartOpRetQ');
				Cookie.del('CartOpRetP');
				Cookie.del('CartOpRetTL');
				Cookie.del('CartOpRetNCV');
				if(CartOpRetP<1){
					CartOpRetP=null;
				}
				if(CartOpRetTL){
					trackBuyButton('', CartOpRetTL, CartOpRetP);
				}else{
					//todo default to 'lent'
					trackBuyButton('', '?', CartOpRetP);
				}
			}
		}else{
			clearLocalCart();
			displayCart(-1);
			//clearCartControls();
			//loadCart(this,0,'s',0,'?','');
		}
	}

	function hideCartModal(){
		var CartModal=$O('shopping-cart-modal');
		CartModal.style.display='none';
		window.clearInterval(CartModal.LocationTimer);
	}

	function placeCartModal(){
		var CartModal=$O('shopping-cart-modal');		
		var ScrollPosition=Utils.ViewPort.getScroll();
		var ClientArea=Utils.ViewPort.get();
		CartModal.style.left=(ScrollPosition[0]+Math.round(ClientArea[0]/2)-Math.round(CartModal.offsetWidth/2))+'px';
		CartModal.style.top=(ScrollPosition[1]+Math.round(ClientArea[1]/2)-Math.round(CartModal.offsetHeight/2))+'px';
	}	

	function showCartModal(text){
		var CartModal=$O('shopping-cart-modal');
		var CartModalText=$O('shopping-cart-modal-text');
		CartModalText.innerHTML=text;
		CartModal.LocationTimer=window.setInterval('placeCartModal()',300);
		CartModal.style.display='block';
		placeCartModal();
		$O('modal-close').focus();
	}

VateraEvent.add(window,'load',restoreCart,null,4);
