/*  Aggiorna il carrello via ajax, nelle pagine di lista prodotti. */
jQuery(function($){
	(function(){
		var alertMsgs = ['Prodotto aggiunto al&nbsp;carrello','Carrello aggiornato']
		var alertBox = $('<div id="alertAddedToCart" class="alert2"> <span>'+alertMsgs[1]+'</span> </div>')
			.css({position:'absolute'}).hide()
			.appendTo('body')
			.append($('<div><a href="Carrello.jsp">procedi all\'acquisto</a></div>'));
		var alertAddedToCart1 = function(e,a){ // tooltip a scomparsa autom. temporizz.
			var $a=$(a)||$(this); var $o=$a.find('img:eq(0)'); var p=$o.offset(); p.left+=($o.width()-alertBox.outerWidth())/2; p.top+=($o.height()-alertBox.outerHeight())/2; var tm=setTimeout(function(){alertBox.fadeOut('slow'); if(tm)clearTimeout(tm);}, 1200); alertBox.css({left:p.left+'px',top:p.top+'px'}).fadeIn('fast'); e.preventDefault();
		};
		var alertAddedToCart2 = function(e,a){ // tooltip con link, a scomparsa cliccando fuori
			var $a=$(a)||$(this); var $o=$a.closest('li,td'); var p=$o.offset(); p.left+=($o.outerWidth()-alertBox.outerWidth());
			e.preventDefault();
			alertBox.css({left:p.left+1+'px',top:p.top+'px'}).fadeIn('fast')
				.click(function(e){e.stopImmediatePropagation()})
				.bind('chiudi',function(e){ alertBox.fadeOut('slow'); $('body').unbind('click.chiudialert'); });
			$('body').bind('click.chiudialert',function(e){alertBox.trigger('chiudi');});
		};
		var alertAddedToCart3 = function(e,a){ // tooltip con link, a scomparsa cliccando "chiudi"
			var $a=$(a)||$(this); var $o=$a.closest('li,td'); var p=$o.offset(); p.left+=($o.outerWidth()-alertBox.outerWidth());
			e.preventDefault();
			alertBox.css({left:p.left+1+'px',top:p.top+'px'}).fadeIn('fast')
				.click(function(e){e.stopImmediatePropagation()})
				.bind('chiudi',function(e){ alertBox.fadeOut('slow'); })
		};
		alertBox.append('<a class="close btn">&times;</a>').append('<a class="close">chiudi</a>')
			.find('a.close').bind('click.chiudialert',function(e){alertBox.trigger('chiudi');});

		var emarkLogAddedToCart = function(_productid,_trackingCode){
			var emark = new Emark(true);
			if (_trackingCode!= null){ emark.logAddedToCart(_productid, _trackingCode); }
			else { emark.logAddedToCart(_productid); }
			emark.commit();	
		};
		var emarkSaveSearch  = function(_SearchTxt,_productid){
			var emark = new Emark(true);
			if (_SearchTxt!= null){ 
			emark.saveSearch(_SearchTxt,_productid);			
			emark.commit();			
			}				
		};
		var updateCartBox = function(data){
			$('#login-carrello .box-carrello, #login-carrello .box-carrello-full')
			.removeClass('box-carrello').addClass('box-carrello-full')
			.html('CARRELLO ('+data.qTot+') | &#8364; '+data.cTot+' ' + '<div><a title="" href="Carrello.jsp">modifica/concludi</a></div>');
		};
		var updateBtnIcon = function($a){
			var $o=$a.find('img:eq(0)');
			if ( !$o.length ) return;
			//var icons = [ ['img/carrello_lista.png' , 'img/modifica_scritta.png'], ['img/carrello_lista_promozione.png' , 'img/modifica_scritta_promozione.png'] , ['image/carrello_promozione.png', 'image/carrello_ricalcola_promozione.png']];
			var src = ($o.get()[0]).src;
			if ( src.indexOf('carrello_promozione')>-1 )
				src = src.replace(/carrello_promozione/,'carrello_ricalcola_promozione');
			else
				src = src.replace(/carrello_lista/,'modifica_scritta');
			$o.attr('src', src);
			$o.attr('alt','modifica');
			$a.attr('title','modifica');
		};
		var addLoadingIcon = function($a) {
			var $o=$a.find('img:eq(0)');
			var p = $o.length? $o.position() : $a.position();
			var $i2 = $('<div class="loading"><img src="img/ajax-loader.gif" alt="Loading..." width="24" height="24" /></div>').fadeOut(0).css({position:'absolute'}).insertAfter($a).css({left:p.left,top:p.top});
			$a.fadeOut(200);
			$i2.fadeIn(100);
		};
		var removeLoadingIcon = function($a) {
			$a.fadeIn();
			$a.siblings('.loading').remove();
		}
		var addToCart = function(e){
			e.preventDefault();
			var $t=$(this);var f=$t.parents('form');
			var fn=''+(f.attr('name')||f.attr('id'));var id=f.find('input[name=idProdotto]').val();
			var idSearchTxt=f.find('input[name=searchTxt]').val();
			var ajaxSuccess = function(data,status,xhr){
				if ( !data.pId ) return false;
				updateCartBox(data);
				alertBox.find('span').html(alertMsgs[data.doTrk?0:1]);
				alertAddedToCart3(e,$t);
				if (idSearchTxt){
				   emarkSaveSearch(idSearchTxt,id);
				}
				
				if ( data.doTrk ) {
					emarkLogAddedToCart(data.pId,data.availTC);
					updateBtnIcon($t);
				}
			};
			if ( fn && id && checkOrdine(fn,id) ) {
				$.ajax({
					 url:	'AJAXAggiungiOrdine.jsp'
					,data:	f.serialize()
					,dataType:	'json'
					,success:	ajaxSuccess
					,complete:	function(xhr,status){ removeLoadingIcon($t); }
					//,error:		function(xhr,status){ removeLoadingIcon($t); }
				});
				addLoadingIcon($t);
			}
		};
		var $btn = $('#prod_results .buylist a, #tabella_promo a.buy, #prodotto_scheda a.buy')
		//.attr('href','#')
		.click(addToCart);
	})();
});

