
// WHEN THE DOCUMENT IS READY
$(function(){


	/**********************************************************************
	Tooltips based on Wayfarer Tooltip 1.0.2
	(c) 2006-2009 Abel Mohler
	http://www.wayfarerweb.com/wtooltip.php
	**********************************************************************/

	( function( $ ) {
		$.fn.jcartTooltip = function( o, callback ) {
			o = $.extend( {
				content: null,
				follow: true,
				auto: true,
				fadeIn: 0,
				fadeOut: 0,
				appendTip: document.body,
				offsetY: 25,
				offsetX: -10,
				style: {},
				id: 'jcart-tooltip'
			}, o || {});

			if ( !o.style && typeof o.style != "object" )
				{
				o.style = {}; o.style.zIndex = "1000";
				}
			else
				{
				o.style = $.extend( {}, o.style || {});
			}

			o.style.display = "none";
			o.style.position = "absolute";

			var over = {};
			var maxed = false;
			var tooltip = document.createElement( 'div' );

            tooltip.id = o.id;

			for ( var p in o.style ) { tooltip.style[p] = o.style[p]; }

			function fillTooltip( condition ) { if ( condition ) { $( tooltip ).html( o.content ); }}

			fillTooltip( o.content && !o.ajax );
			$( tooltip ).appendTo( o.appendTip );

			return this.each( function() {
				this.onclick = function( ev ) {
					function _execute() {
						var display;
						if ( o.content )
							{
							display = "block";
							}
						else
							{
							display = "none";
							}
						if ( display == "block" && o.fadeIn )
							{
							$( tooltip ).fadeIn( o.fadeIn );

							setTimeout(function(){
								$( tooltip ).fadeOut( o.fadeOut,callback );
								}, 1000);
							}
						}
					//Efecte de cistella (nomes si la cistella esta visible)
					if ($("#jcart-header-trigger").offset().top-20 > $("#overlay").offset().top) {
						var itemTrigger = $(this);
						var fila = itemTrigger.parent().parent().parent();
						fila.effect('transfer',{ to: "#jcart-header-trigger", className: 'ui-effects-transfer'},500,_execute);
					} else {
						_execute();
					}
					
					};

				this.onmousemove = function( ev ) {
					var e = ( ev ) ? ev : window.event;
					over = this;
					if ( o.follow ) {
						var scrollY = $( window ).scrollTop();
						var scrollX = $( window ).scrollLeft();
						var top = e.clientY + scrollY + o.offsetY;
						var left = e.clientX + scrollX + o.offsetX;
						var maxLeft = $( window ).width() + scrollX - $( tooltip ).outerWidth();
						var maxTop = $( window ).height() + scrollY - $( tooltip ).outerHeight();
						maxed = ( top > maxTop || left > maxLeft ) ? true : false;

						if ( left - scrollX <= 0 && o.offsetX < 0 )
							{
							left = scrollX;
							}
						else if ( left > maxLeft )
							{
							left = maxLeft;
							}
						if ( top - scrollY <= 0 && o.offsetY < 0 )
							{
							top = scrollY;
							}
						else if ( top > maxTop )
							{
							top = maxTop;
							}

						tooltip.style.top = top + "px";
						tooltip.style.left = left + "px";
						}
					};

				this.onmouseout = function() {
					$( tooltip ).css('display', 'none');
				};



			});
		};
	})( jQuery );
	
	// CHECK IF THERE ARE ANY ITEMS IN THE CART
	var cartHasItems = $('td.jcart-item-qty').html();
	if(cartHasItems === null) {
		// DISABLE THE PAYPAL CHECKOUT BUTTON
		$('#jcart-paypal-checkout').attr('disabled', 'disabled');
	}

	// DETERMINE IF THIS IS THE CHECKOUT PAGE BY CHECKING FOR HIDDEN INPUT VALUE
	// SENT VIA AJAX REQUEST TO jcart.php WHICH DECIDES WHETHER TO DISPLAY THE CART CHECKOUT BUTTON OR THE PAYPAL CHECKOUT BUTTON BASED ON ITS VALUE
	// WE NORMALLY CHECK AGAINST REQUEST URI BUT AJAX UPDATE SETS VALUE TO jcart-relay.php
	var isCheckout = getIsCheckout();


	//Comentem el refresc per que ja ho fa la pàgina que mostra el llistat
	//refreshCartFormEvents();
	cartEvents(isCheckout);

	// END THE DOCUMENT READY FUNCTION
});


function refreshCartFormEvents() {

	// SHOW A TOOLTIP AFTER VISITOR CLICKS THE ADD-TO-CART
	// IN CASE THE CART IS OFF SCREEN
	$('.jcart button[name="my-add-button"],.jcart input[name="my-add-button"] ').jcartTooltip({content: 'Video afegit', fadeIn: 500, fadeOut: 800 },null);
	
	// WHEN AN ADD-TO-CART FORM IS SUBMITTED
	$('form.jcart').submit(function(){

		// GET INPUT VALUES FOR USE IN AJAX POST
		var itemId = $(this).find('input[name=my-item-id]').val();
		var itemPrice = $(this).find('input[name=my-item-price]').val();
		var itemName = $(this).find('input[name=my-item-name]').val();
		var itemQty = $(this).find('input[name=my-item-qty]').val();
		var itemAdd = $(this).find('input[name=my-add-button]').val();

		
		// SEND ITEM INFO VIA POST TO INTERMEDIATE SCRIPT WHICH CALLS jcart.php AND RETURNS UPDATED CART HTML
		$.post('/lib/jcart-1.1/jcart/jcart-relay.php', { "my-item-id": itemId, "my-item-price": itemPrice, "my-item-name": itemName, "my-item-qty": itemQty, "my-add-button" : itemAdd }, function(data) {


			refreshCart(data);
			
		});

		// PREVENT DEFAULT FORM ACTION
		return false;

		});
		
	var isCheckout = $('#jcart-is-checkout').val();
	if (isCheckout !== 'true') { isCheckout = 'false'; }
	if (isCheckout == 'true') $('#table_wrapper').show();
}
function cartEvents(isCheckout) {

	// WHEN A REMOVE LINK IS CLICKED
	$('#jcart a').live('click', function(){

		// GET THE QUERY STRING OF THE LINK THAT WAS CLICKED
		var queryString = $(this).attr('href');
		queryString = queryString.split('=');

		// THE ID OF THE ITEM TO REMOVE
		var removeId = queryString[1];

		// SEND ITEM ID VIA GET TO INTERMEDIATE SCRIPT WHICH CALLS jcart.php AND RETURNS UPDATED CART HTML
		$.get('/lib/jcart-1.1/jcart/jcart-relay.php', { "jcart_remove": removeId, "jcart_is_checkout":  isCheckout },
			function(data) {

			// REPLACE EXISTING CART HTML WITH UPDATED CART HTML
			refreshCart(data);
	
			
			});

		// PREVENT DEFAULT LINK ACTION
		return false;
	});
	
	$('#jcart_empty').live('click', function(){
		$.post('/lib/jcart-1.1/jcart/jcart-relay.php', { "jcart_empty": '1', "jcart_is_checkout":  isCheckout },
			function(data) {

			// REPLACE EXISTING CART HTML WITH UPDATED CART HTML
			refreshCart(data);

			});

		// PREVENT DEFAULT LINK ACTION
		return false;
	});
	
	//jcart-paypal-checkout
	$('#jcart-paypal-checkout').live('click', function(){
		//$("#jcart form").attr("action",'/lib/jcart-1.1/jcart/jcart-gateway.php');
		loadOverlay("comanda-pas1.htm","&jcart_is_checkout=true");
		return false;
	});
		

	$('#jcart-header-trigger').live('click', function(){
		$('#table_wrapper').slideToggle();
		return false;
	});
} //fi onready


//no podem fer aquest event live perque jquery no ho permet per a ie
function canviSelectorQty() {
	var isCheckout = getIsCheckout();
	var numItems = $('#jcart select').length;
	var numItemsUpdated = 0;

	$('#jcart select').each(function(){
		// GET ITEM ID FROM THE ITEM QTY INPUT ID VALUE, FORMATTED AS jcart-item-id-n
		var updateId = $(this).attr('id');
		updateId = updateId.split('-');

		// THE ID OF THE ITEM TO UPDATE
		updateId = updateId[3];

		// GET THE NEW QTY
		var updateQty = $(this).val();
		
		// AS LONG AS THE VISITOR HAS ENTERED A QTY
		if (updateQty !== '') {
			$.post('/lib/jcart-1.1/jcart/jcart-relay.php', { "item_id": updateId, "item_qty": updateQty, "jcart_update_item": 'Actualitza', "jcart_is_checkout": isCheckout }, function(data) {

					// REPLACE EXISTING CART HTML WITH UPDATED CART HTML
					numItemsUpdated++;
					//Si es l'ultim actualitzem
					if (numItemsUpdated == numItems) {
						actualitzaCistella(isCheckout);
					}
					
			});
		}
	});
}

function actualitzaCistella(isCheckout) {
	// Actualitza
	$.post('/lib/jcart-1.1/jcart/jcart-relay.php', { "jcart_update_cart": '1', "jcart_is_checkout": isCheckout }, function(data) {
		refreshCart(data);
	});
}

function actualitzaEnvio(val) {
	$.post('/lib/jcart-1.1/jcart/jcart-relay.php', { "jcart_envio": val, "jcart_is_checkout":  'true' }, function(data) {
		$('#jcart').remove();
		$('#cistella').prepend(data);
		$('#table_wrapper').show();
	});
}

// REPLACE EXISTING CART HTML WITH UPDATED CART HTML
function refreshCart(data) {

	var isVisible = false;
	if ($('#table_wrapper').is(':visible')) {
		isVisible = true;
	}

	$('#jcart').remove();
	$('#cistella').prepend(data);
	if (isVisible) $('#table_wrapper').show();
}

function getIsCheckout() {
	var isCheckout = $('#jcart-is-checkout').val();

	// IF THIS IS NOT THE CHECKOUT THE HIDDEN INPUT DOESN'T EXIST AND NO VALUE IS SET
	if (isCheckout !== 'true') { isCheckout = 'false'; }
	return isCheckout;
}
