// JavaScript sur toutes les pages

// Nom d'espace anonyme
(function() {
	// Activateur/Désactivateur du gestionnaire du clic
	var enCours = false;
	
	
	/**
	* Améliorations progressives sur le panier vertical 
	*/
	
	// Ajout des images de suppression dans le panier vertical
	function ameliorPanierVert() {
		// Masquer le panier vertical
		Spry.$$("#panierVert").setStyle("visibility:hidden");
		
		// Masquer le bouton, remplacer les cases à cocher et gérer le clic
		Spry.$$("#panierVert #gaspaCart_Update_100").setStyle("display:none"); 
		Spry.$$('#panierVert form input[type="checkbox"]').forEach(function(n) {
			n.parentNode.innerHTML = '<img src="images/error.png" class="supprPnrVrt" alt="click to delete" name="' + n.name + '" value="' + this.value + '" />';
		})
			
		Spry.$$("img.supprPnrVrt").addEventListener('click', function() {
			// Envoyer le formulaire pour mettre à jour le panier vertical
			Spry.Utils.submitForm(Spry.$$("#panierVert form")[0], function(req){
				// A réception du panier vertical, le réécrire le panier vertical et réappliquer les améliorations progressives
				Spry.Utils.setInnerHTML('panierVert', req.xhRequest.responseText);
				ameliorPanierVert();
				// Envoyer le formulaire pour réécrire le panier sur la page panier.php
				if (Spry.$$("#pgPnr").length > 0) {
					Spry.Utils.submitForm(Spry.$$('#frmPanier')[0], function(req){
						// A réception du panier, le réécrire et réappliquer les améliorations progressives
						Spry.Utils.setInnerHTML('pnr', req.xhRequest.responseText);
						ameliorPanier();																																	
					}, {url:'panierAjax.php'});					
				}
				// Envoyer le formulaire pour réécrire le récapitulatif sur la page recapitulatif.php
				if (Spry.$$("#pgRecap").length > 0) {
					Spry.Utils.submitForm(Spry.$$('#frmPanier')[0], function(req){
						// A réception du récapitulatif, le réécrire et réappliquer les améliorations progressives
						Spry.Utils.setInnerHTML('pnr', req.xhRequest.responseText);
						ameliorRecap();							
					}, {url:'panierAjax.php'});					
				}
			}, {url:'panierVert.php', additionalData: '' + this.name + '=' + this.value + '&bMaj=true'});
		}, false);

		// Animer l'apparition du panier vertical
		var majPV = new Spry.Effect.Fade("panierVert", {from: "0%", to: "100%", duration: 700, finish: function(){
			enCours = false;
		}});
		majPV.start();
	}
	
	// Ajouter les améliorations progressives après le chargement du code HTML
	ameliorPanierVert();

	
	/**
	* Améliorations progressives sur le panier 
	*/
	
	function ameliorPanier() {
		// Masquer les boutons et les cases à coher
		Spry.$$("#frmPanier .eC_ButtonWrapper, #frmPanier .eC_DeleteItem").setStyle("display:none");
	
		// Modifier les textboxes et ajouter les boutons + et -
		Spry.$$('#frmPanier input[name^="gaspaCart_Quantity_"]').setStyle("border:none; text-align:right;")
																														.forEach(function(n) {
																															n.parentNode.innerHTML = n.parentNode.innerHTML + '<a href="#" class="inputPlus">+</a><a href="#" class="inputMoins">-</a>';
		});
	
		// Ajouter les gestionnaires d'événement des boutons + et -
		Spry.$$(".inputPlus").forEach(function(n) {
			Spry.Utils.addEventListener(n, 'click', function() {
				// Incrémenter la quantité, envoyer le formulaire pour mettre à jour le panier
				if (enCours == false) {
					enCours = true;
					Spry.$$('input[type="text"]', Spry.Utils.getAncestor(n))[0].value++; 
					Spry.Utils.submitForm(Spry.$$('#frmPanier')[0], function(req){
						// A réception du panier, le réécrire et réappliquer les améliorations progressives
						Spry.Utils.setInnerHTML('pnr', req.xhRequest.responseText);
						ameliorPanier();																														
						// Envoyer le formulaire pour réécrire le panier vertical
						Spry.Utils.submitForm(Spry.$$("#frmPanier")[0], function(req){
							// A réception du panier vertical, le réécrire et réappliquer les améliorations progressives
							Spry.Utils.setInnerHTML('panierVert', req.xhRequest.responseText);
							ameliorPanierVert();
						}, {url:'panierVert.php'});
					}, {url:'panierAjax.php', additionalData: 'bMaj=true'});
				}
			}, false);
		});

		Spry.$$(".inputMoins").forEach(function(n) {
			Spry.Utils.addEventListener(n, 'click', function() {
				// Décrémenter la quantité, envoyer le formulaire pour mettre à jour le panier
				if (enCours == false) {
					enCours = true;
					Spry.$$('input[type="text"]', Spry.Utils.getAncestor(n))[0].value--;
					Spry.Utils.submitForm(Spry.$$('#frmPanier')[0], function(req){
						// A réception du panier, le réécrire et réappliquer les améliorations progressives
						Spry.Utils.setInnerHTML('pnr', req.xhRequest.responseText);
						ameliorPanier();
						// Envoyer le formulaire pour réécrire le panier vertical
						Spry.Utils.submitForm(Spry.$$("#frmPanier")[0], function(req){
							// A réception du panier vertical, le réécrire et réappliquer les améliorations progressives
							Spry.Utils.setInnerHTML('panierVert', req.xhRequest.responseText);
							ameliorPanierVert();
						}, {url:'panierVert.php'});	
					}, {url:'panierAjax.php', additionalData: 'bMaj=true'});		
				}
			}, false);
		});
	}

	// Ajouter les améliorations progressives si on est sur la page panier.php
	if (Spry.$$("#pgPnr").length > 0) {
		ameliorPanier();
	}
	
	
	/**
	* Améliorations progressives sur le récapitulatif 
	*/
	
	function ameliorRecap() {
		// Masquer les boutons et les cases à coher
		Spry.$$("#frmPanier .eC_DeleteItem").setStyle("display:none");
	
		// Modifier les textboxes et ajouter les boutons + et -
		Spry.$$('#frmPanier input[name^="gaspaCart_Quantity_"]').setStyle("border:none; text-align:right;")
																														.forEach(function(n) {
																															n.parentNode.innerHTML = n.parentNode.innerHTML + '<a href="#" class="inputPlus">+</a><a href="#" class="inputMoins">-</a>';
		});
	
		// Ajouter les gestionnaires d'événement des boutons + et -
		Spry.$$(".inputPlus").forEach(function(n) {
			Spry.Utils.addEventListener(n, 'click', function() {
				// Incrémenter la quantité, envoyer le formulaire pour mettre à jour le récapitulatif
				if (enCours == false) {
					enCours = true;
					Spry.$$('input[type="text"]', Spry.Utils.getAncestor(n))[0].value++; 
					Spry.Utils.submitForm(Spry.$$('#frmPanier')[0], function(req){
						// A réception du récapitulatif, le réécrire et réappliquer les améliorations progressives
						Spry.Utils.setInnerHTML('pnr', req.xhRequest.responseText);
						ameliorRecap();
						// Envoyer le formulaire pour réécrire le panier vertical
						Spry.Utils.submitForm(Spry.$$("#frmPanier")[0], function(req){
							// A réception du panier vertical, le réécrire et réappliquer les améliorations progressives
							Spry.Utils.setInnerHTML('panierVert', req.xhRequest.responseText);
							ameliorPanierVert();
						}, {url:'panierVert.php'});
					}, {url:'recapitulatifAjax.php', additionalData: 'bMaj=true'});
				}
			}, false);
		});

		Spry.$$(".inputMoins").forEach(function(n) {
			Spry.Utils.addEventListener(n, 'click', function() {
				// Décrémenter la quantité, envoyer le formulaire et mettre à jour le récapitulatif et le panier vertical
				if (enCours == false) {
					enCours = true;
					Spry.$$('input[type="text"]', Spry.Utils.getAncestor(n))[0].value--;
					Spry.Utils.submitForm(Spry.$$('#frmPanier')[0], function(req){
						// A réception du récapitulatif, le réécrire et réappliquer les améliorations progressives
						Spry.Utils.setInnerHTML('pnr', req.xhRequest.responseText);
						ameliorRecap();
						// Envoyer le formulaire pour réécrire le panier vertical
						Spry.Utils.submitForm(Spry.$$("#frmPanier")[0], function(req){
							// A réception du panier vertical, le réécrire et réappliquer les améliorations progressives
							Spry.Utils.setInnerHTML('panierVert', req.xhRequest.responseText);
							ameliorPanierVert();
						}, {url:'panierVert.php'});
					}, {url:'recapitulatifAjax.php', additionalData: 'bMaj=true'});
				}
			}, false);
		});
	}

	// Ajouter les améliorations progressives si on est sur la page recapitulatif.php
	if (Spry.$$("#pgRecap").length > 0) {
		ameliorRecap();
	}
	
})();




