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){
		//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,
			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);
									});
								});
							});
						});
						if (confirm('L\'article a bien été ajouté au panier\n\rCliquez sur "Ok" pour accéder à votre panier ou sur "Annuler" pour poursuivre votre commande.'))
						{
							window.location = '/panier.php';
						}
					}
				});
			},
			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){
		//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,
			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();

});
