// Funciones AJAX relacionadas con el carrito de la compra.
//TODO: Añadir números aleatorios para evitar la caché.

var cartCGI = 'lib/carrito/cart.php';	// CGI al que llamamos.

var cartOK = false;	 // Semáforo para sincronizar AJAX en Windows.
var quantity = 0;		 // Número de productos en el carrito.

function addProduct (form) {
	var pars = Form.serialize(form);	
	var req = new Ajax.Request(cartCGI,{method:'post',parameters:pars, onLoading:showCartLoad, onComplete: showCartResponse});
	cartOK = false;
	quantity += parseInt(form.quantity.value);
}

function clearCart () {
   var pars = 'clear=true';
   var req = new Ajax.Request(cartCGI,{method:'post',parameters:pars, onLoading: showCartLoad, onComplete:showCartResponse});
	cartOK = false;
	quantity = 0;
}

function clearProduct (key) {
   var pars   = 'clearProduct=true&key=' + key;
   var req = new Ajax.Request(cartCGI,{method:'post',parameters:pars, onLoading:showCartLoad, onComplete:showCartResponse});
	cartOK = false;
	quantity -= 1;
}

// Interesante usar onSuccess / onFailure en lugar de onComplete.

function showCartResponse (originalRequest) {
//TODO: Usar JSON aquí
	cartOK=true;
	var elem = document.getElementById('loading');
	if (elem)
		elem.style.display = "none";
   var cart = document.getElementById('cart');
	if (cart)
		cart.innerHTML = originalRequest.responseText;
	var elem = $('comprar_productos');
	if (elem)	
		elem.style.display = quantity > 0 ? "block" : "none";
}

function showCartLoad () {
	if ((elem = $('loading')) && !cartOK)
		elem.style.display = "block";
}
