var lioCart = null;
var lioProductSID = '';

function lioProduct_registerCart(selector)
{
	lioCart = $(selector);
}

function lioProduct_setSessionId(sid)
{
	lioProductSID = '?'+sid;
}


function lioProduct_addToCart(item, callback, morphSource)
{	
	var title = item.find('.title').html();
	var id = item.find('.id').val();
	var quantity = item.find('.quantity').val();
	var price = item.find('.price').val();


	$.post('orchestra/modules/Orchestra/ajax/cart.ajax.php'+lioProductSID,{ 
			'func': 'add', 
			'data':{
				'id': id,
				'title': title, 
				'quantity': quantity,
				'price': price}
		  },
		  function(data){
			  if (lioCart != null && lioCart.size() > 0)
			  {
				  lioCart.html(data.data);
				  
				  if (morphSource != null && morphSource.size() > 0)
				  {
					  lioProduct_morph(morphSource, lioCart);
				  }
			  }
			  
			  lioProduct_setSessionId(data.sid);
			   
			  if (callback)
				  callback();
		  }, 'json');	
}

function lioProduct_refreshCart()
{
	$.post('orchestra/modules/Orchestra/ajax/cart.ajax.php'+lioProductSID,
			{'func': 'refresh'},
			   function(data){
				   if (lioCart != null && lioCart.size() > 0)
				   {
					   lioCart.html(data.data);
				   }
				   
				   lioProduct_setSessionId(data.sid);
				   
			   }, 'json');
}

function lioProduct_removeFromCart(id)
{	
	$.post('orchestra/modules/Orchestra/ajax/cart.ajax.php'+lioProductSID,
			{'func': 'remove', 
			 'data': {'id': id}
			},
			   function(data){
				   if (lioCart != null && lioCart.size() > 0)
				   {
					   lioCart.html(data.data);
				   }				   	 
				   
				   lioProduct_setSessionId(data.sid);
				   
			   }, 'json');
}

function lioProduct_morph(from, to, callback)
{
	if (from.size() == 0 || to.size() == 0)
		return;
	
	var clone = from.clone();
	
	clone.css('position', 'absolute');
	clone.css('top', from.offset().top);
	clone.css('left', from.offset().left);
	$('body').append(clone);
	
	clone.animate({'top': to.offset().top, 'left' : to.offset().left, opacity: 0, width: 10, height: 10}, 650, function(){
		$(this).remove();

		if (callback)
			callback();
	});
}

function lioProduct_order()
{
	$.fancybox({
		hideOnOverlayClick: false, 
		href:"orchestra/modules/Orchestra/ajax/checkout.ajax.php"+lioProductSID,
		enableEscapeButton: true,
		showCloseButton: true
	});
}

function lioProduct_resizeWindow()
{
//	$.fancybox.resize();
}

function lioProduct_empty(id)
{	
	$.post('orchestra/modules/Orchestra/ajax/cart.ajax.php'+lioProductSID,
			{'func': 'clear'},
			   function(data){
				   if (lioCart != null && lioCart.size() > 0)
				   {
					   lioCart.html(data.data);
				   }				   	 
				   
				   lioProduct_setSessionId(data.sid);
				   
			   }, 'json');
}

$(function(){
	/*
	$('body').ajaxError(function() {
		  alert('lioProduct: Triggered ajaxError handler.');
	});
	*/
	
	lioProduct_refreshCart();
});


