var ajaxPanier = {
	
	//remplace tous les boutons en relation avec le panier dans la page
	remplaceBoutons : function(){
		//Pour tous les boutons ajout au panier
		$('.bouton_ajax_ajout_panier').unbind('click').click(function(){
			var idProduct =  $(this).attr('rel').replace('ajax_idproduit_', '');
			ajaxPanier.add(idProduct, false, this);
			return false;
		});
		
		//Page produit, bouton ajouter
		$('.ajax_prod_ajout_panier input').unbind('click').click(function(){
			ajaxPanier.add( $('#idproduit').val(), true, null, $('#quantite').val());
			return false;
		});
	
		//Bouton supprimer du panier
		$('.ajax_panier_supprimer').unbind('click').click(function(){
			// on recupere l'id produit du panier
			var firstCut =  $(this).attr('id').replace('panier_produit_', '');
			var ids = firstCut.split('_');
			//if product has attributes
			if(firstCut[1])
				ajaxPanier.remove(ids[0], ids[1]);
			else
				ajaxPanier.remove(ids[0]);
			return false;
		});
	},
	
	//add a product in the cart via ajax
	add : function(idProduct, addedFromProductPage, callerElement, quantity, idmultiCondi){
		
		//send the ajax request to the server
		$.ajax({
			type: 'GET',
			url: 'ajax_panier.php',
			async: true,
			cache: false,
			dataType : "html",
			data: 'ajout=1&ajax=true&qte=' + ( (quantity && quantity != null) ? quantity : '1') + '&id=' + idProduct + '&idmulticondi='+idmultiCondi ,
			success: function(jsonData)
			{
				//apply 'transfert' effect
				var elementToTransfert = null;
				
				if (callerElement && callerElement != null) 
					$(callerElement).parents().each(function()
					{
						if ($(this).is('.ajax_produit')) 
							elementToTransfert = $(this);
					});
				else 
				{
					elementToTransfert = $(addedFromProductPage ? 'div#imageProduit' : ('.ajax_id_produit_' + idProduct));
					//elementToTransfert = 'div#imageProduit';
				}
				elementToTransfert.TransferTo({
					to: $('#pod_panier').get(0),
					className:'transfertProduit',
					duration: 800,
					complete: function () {
						//alert('test5');
						ajaxPanier.updateCart(jsonData);
						$('#qteProd'+idProduct).fadeTo('fast', 1, function(){
							$('#qteProd'+idProduct).fadeTo('fast', 0, function(){
								$('#qteProd'+idProduct).fadeTo('fast', 1, function(){
									$('#qteProd'+idProduct).fadeTo('fast', 0, function(){
										$('#qteProd'+idProduct).fadeTo('fast', 1);
									});
								});
							});
						});
					}
				});
			},
			error: function(XMLHttpRequest, textStatus, errorThrown) 
			{
				alert("ERROR: unable to add the product.\n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);
			}
		});
	},
	
	//remove a product from the cart via ajax
	remove : function(idProduct, idCombination, idMultiCondi){
		//send the ajax request to the server
		$.ajax({
			type: 'GET',
			url: 'ajax_panier.php',
			async: true,
			cache: false,
			dataType : "html",
			data: 'suppression=1&ajax=true&qte=1&id=' + idProduct+'&idmulticondi='+idmultiCondi,
			success: function(jsonData)	{
				$('#Produit'+idProduct).fadeTo('slow', 0, function(){
					$(this).slideUp('slow', function(){
						$(this).remove();
						ajaxPanier.updateCart(jsonData);
					});
				});
			},
			error: function() 
			{
				alert('ERROR : unable to delete the product');
			}
		});
	},
	
	//Met � jour le panier
	updateCart : function(jsonData) {
		$('#pod_panier').html(jsonData);
		// Remplace les actions sur les boutons ajout�s
		ajaxPanier.remplaceBoutons();
	}
}

/*
//quand la page est charg�e
$(document).ready(function(){

	/*$('#pod_panier_replier').click(function(){
			ajaxPanier.collapse();
	});
	$('#pod_panier_deplier').click(function(){
			ajaxPanier.expand();		
	});
	ajaxPanier.remplaceBoutons();
	
});*/

