var Cart = new Class({
	
	initialize: function(options){
		
		this.setOptions(options);
		
		$ES('a[rel^=addCart]').each(function(el){
			this.initElements(el);
		}.bind(this));
		
	},
	
	initElements: function(el){
		
		if(!el) return;
		
		var id = el.getProperty('rel').substr(7);
		var form = el.getParent();
		
		form.addEvent('submit', function(e){
			new Event(e).stop();
			this.add(form, id);
		}.bind(this));
		
		el.addEvent('click', function(e){
				new Event(e).stop();
				this.add(form, id);
		}.bind(this));
		
	},
	
	add: function(form, id){
		var from = form.from.value;
		var postData = form.toQueryString();
		$('addCart'+id+'_'+from).setHTML('<img src="gfx/ajax-loading.gif" height="'+(from!='color' ? 24 : 15)+'" width="'+(from!='color' ? 24 : 15)+'"/>');
		new Ajax(site_url+'koszyk/ajax_dodaj', {
			postBody: postData,
			onComplete: function(res){
				var resObj = Json.evaluate(res);
				if(resObj.ans != 'OK') {
					var txt='';
					for(var s in resObj.err) {
						if(typeof resObj.err[s]=="string"){
							txt += "* "+resObj.err[s]+"\n";
						}
					}
					alert(txt);
				}
				if($defined(resObj.info.name)){
					this.showOverlayBox(resObj.info);
				}
				this.updateCart();
				this.updatePanel(id, from);
			}.bind(this)
		}).request();
	},
	
	overlayBoxHTML: '<div class="clearfix"><p class="title">Dodano do koszyka:</p><a class="close">ZAMKNIJ <span>X</span></a></div><div class="info"><div class="image">%IMG%</div><div class="name">%NAME%</div><div class="data">cena: <span>%PRICE% zł</span> &nbsp;|&nbsp; ilość: <span>%NUM% szt.</span> &nbsp;|&nbsp; wartość: <span>%SUM% zł</span></div></div><div class="btns"><a class="cont"><img src="'+site_url+'gfx/overlay_arr-r.png" align="absmiddle"> kontynuuj zakupy <img src="'+site_url+'gfx/overlay_arr-l.png" align="absmiddle"></a><a class="order" href="'+site_url+'koszyk">do kasy <img src="'+site_url+'gfx/overlay_arr-r.png" align="absmiddle"></a></div>',
	
	showOverlayBox: function(info){
		var w=530; var h=180;
		var l=(window.screen.width-w)/2;
		var t=(window.screen.height-h)/5;
		$('overlayBox').setStyles({top:t,left:l});
		$('overlayBox').setHTML(this.overlayBoxHTML.replace('%NAME%', info.name).replace('%PRICE%', info.price).replace('%NUM%', info.num).replace('%SUM%', info.sum).replace('%IMG%', info.img));
		$('overlay').setStyle('display','block');
		$('overlay').setOpacity(0.5);
		$('overlayBox').setStyle('display','block');
		$('overlay').addEvent('click',function(){
			this.setStyle('display','none');
			$('overlayBox').setStyle('display','none');
			$('overlayBox').empty();
		});
		$('overlayBox').getElements('a.close').addEvent('click',function(){
			$('overlay').fireEvent('click');
		});
		$('overlayBox').getElements('a.cont').addEvent('click',function(){
			$('overlay').fireEvent('click');
		});
	},
	
	updateCart: function(){
		new Ajax(site_url+'koszyk/ajax_info', {
			method: 'get',
			update: 'cartbox'
		}).request();
	},
	
	updatePanel: function(id, from){
		new Ajax(site_url+'katalog/ajax_cart_panel', {
			postBody: 'from='+from+'&id='+id,
			update: 'addCart'+id+'_'+from,
			onComplete: function(){
				this.initElements($E('a[rel^=addCart'+id+']'));
				if($('subProd')) {
					initProdSub();
				}
			}.bind(this)
		}).request();
	}

});
Cart.implement(new Options);

window.addEvent('domready', function(){
	oCart = new Cart();
});

