/*
 * @see updateLocalArticle()
 */
function getArticle(form, panier) {
	var numLigne = form.numLigne.value;
	for (var i=0; i < panier.listArticles.length; i++) {
		var article = panier.listArticles[i];
		if (article.numLignePanier == numLigne) {
			return article;
		}
	}
	return undefined;
}

/*
 * @see updateLocalArticle()
 */
function deleteDuplicatedArticle(form, panier) {
	var numLigne = form.numLigne.value;
	var numArticle = form.numArticle.value;
	var numCouleur = form.numCouleur.value;
	var formArticleList = jQuery('#panier form[id^=article_]');
	for (var i=0; i < formArticleList.length; i++) {
		var formArticle = formArticleList[i];
		if (formArticle.numArticle.value == numArticle && formArticle.numCouleur.value == numCouleur && formArticle.numLigne.value != numLigne) {
			formArticle.parentNode.parentNode.removeChild (formArticle.parentNode);
		}
	}
	return undefined;
}

/*
 * @see checkEnterUpdateArticle(), suppressionArticle(), gsell/bagages jsp-springweb commande panier.jsp/paiement.jsp
 */
function updateArticle(form, method) {
	form.method.value = method;
	if (method == 'supprimer') {
		form.method.value = 'changeQte';
		form.quantite.value = 0;
	}
	jQuery.post(
		"/cmdPanier.do",
		jQuery(form).serialize(),
		function(data) {
			if (data.erreurMessage != undefined) {
				afficheAlert(data.erreurMessage);
			}
			updateLocalArticle(form, data.panier);
			updatePanier(data.panier);
			updateArticlePromoCadeau(form, data.panier);
		}
	);
}	

/*
 * @see updateArticle()
 */
function updateLocalArticle (form, panier) {
	var article = getArticle (form, panier);
	if (article == undefined) {
		form.parentNode.parentNode.removeChild (form.parentNode); // jQuery(form).parent().remove() || jQuery(form.parentNode).remove()
	} else {
		var numArticle = form.numArticle.value;
		var numCouleur = form.numCouleur.value;
		var numLigne = form.numLigne.value;
		form.cadeau.checked = article.papierCadeau;
		
		form.quantite.value = article.quantite;
		
		var prixPapierCadeau = (article.papierCadeau)?article.prixPapierCadeau:0;
				
		if (article.avoirEconomieArticle) {
			jQuery('#article_' + numLigne + ' .prix_barr').html(formatCurrency (article.prixPublic + prixPapierCadeau));			
		} else {
			jQuery('#article_' + numLigne + ' .prix_barr').html('');			
		}
		jQuery('#article_' + numLigne + ' .prix_unitaire_applicable').html(formatCurrency (article.prixApplicable + prixPapierCadeau));
		jQuery('#article_' + numLigne + ' .prix_totale').html(formatCurrency (article.montantLigne + (prixPapierCadeau * article.quantite)));

		if (form.method.value == 'changeCouleur') {
			form.numCouleur.value = article.numCouleur;
			//$$('#article_' +numLigne + ' span.ref')[0].update (article.reference + " - " + article.libelleCouleur);
			jQuery('#article_' +numLigne + ' #image_' + numLigne)[0].src = "images/imftp/article/petite/" + article.imagePetite ;
			jQuery('#article_' +numLigne + ' #nouveauNumCouleur')[0].style.background = "url('images/imftp/couleur/" + article.codeCouleur + ".jpg') no-repeat";
			jQuery('#article_' +numLigne + ' #nouveauNumCouleur')[0].value = article.numCouleur;
			deleteDuplicatedArticle (form, panier);
		}
	}	
}

/*
 * @see updateArticle(), setCodePromo()
 */
function updatePanier(panier) {
	refreshLayerPanier();
	
	if (panier.listArticles.length == 0) {
		jQuery("#panier_noarticles").show();
		jQuery("#panier").hide();
		jQuery(".commande a").eq(2).hide();
	} else {
		jQuery("#panier_noarticles").hide();
		jQuery("#panier").show();
		var prixTotal = jQuery(".prixt").eq(0);
		var oldPrixTotal = prixTotal.html();
		prixTotal.html(formatCurrency (panier.montantFinal));
		if (oldPrixTotal != prixTotal.innerHTML) {
			jQuery(".totaltexte").effect("pulsate");
		}
		if ((panier.typeReduction == "code promo" || panier.typeReduction == "promo article") && panier.montantReduction > 0 ) {
			jQuery('#codepromo .prix').eq(0).html('- ' + formatCurrency (panier.montantReduction));
			jQuery('#codepromo .message').eq(0).html(panier.messageReduction);
			var reductionClient = jQuery("#reduction_client");
			if (reductionClient != undefined) {
				reductionClient.hide();
			}
		} else {
			jQuery('#codepromo .prix').eq(0).html('');
			jQuery('#codepromo .message').eq(0).html('');
		}	
		
		jQuery('#livraison_colissimo').html(panier.messageLivraison);
      	
		if (panier.alerte != undefined) {
      		jQuery('#livraison_colissimo').html(panier.alerte);  	
      	}
		jQuery('#prixLivraison').html(formatCurrency (panier.montantTTCFraisPort));
		jQuery('#typeRelais').val(panier.typeLivraison);
	}	
}

/*
 * @see updateArticle()
 */
function updateArticlePromoCadeau (form,panier){
	for (var i=0; i < panier.listArticles.length; i++) {
		var article = panier.listArticles[i];
		var numLigne = article.numLignePanier;
			var prixPapierCadeau = (article.papierCadeau)?article.prixPapierCadeau:0;
			jQuery('#article_' + numLigne + ' .prix_unitaire_applicable').html(formatCurrency (article.prixApplicable + prixPapierCadeau));
			jQuery('#article_' + numLigne + ' .prix_totale').html(formatCurrency (article.montantLigne + (prixPapierCadeau * article.quantite)));
		if (article.isPromotionCadeau == true){
			jQuery('#class_' + numLigne)[0].className="articlepanier promos";
			jQuery('#img_promo_' + numLigne).show();
			jQuery('{img_promo_' + numLigne).attr("src", article.imgPanier);
		}else{
			jQuery('#class_' + numLigne)[0].className="articlepanier";
			jQuery('#img_promo_' + numLigne).hide();
			jQuery('#img_promo_' + numLigne).removeAttr();
		}
	}
}

/*
 * @see gsell jsp-springweb commande panier.jsp
 * TODO evol: déporter dans gsell modele.js et remplacer par un écouteur pour se passer du code navigateur
 */
function checkEnterUpdateArticle (e, form, method) {
	var character;
	if (e.which){ //supporter NN4
		characterCode = e.which;
	} else if (e.keyCode){
		characterCode = e.keyCode; //supporter IE
	}

	if(characterCode == 13){ 
		updateArticle (form, method)
	}
}

/*
 * @see gsell/bagages jsp-springweb commande panier.jsp
 */
function setCodePromo(form) {
	jQuery.post(
		"/cmdPanier.do",
		jQuery(form).serialize(),
		function(data) {
			if (data.erreurMessage != undefined) {
				afficheAlert(data.erreurMessage);
			}
			updatePanier(data.panier);
		}
	);
}

/*
 * Commande, panier: changement de pays
 * @see gsell/bagages jsp-springweb commande panier.jsp
 * TODO evol: fusionner avec /js/paiement.js utilisé dans jsp-springweb commande layer_adresse.jsp
 */
function changePays() {
	jQuery.get(
		"/cmdPanier.do",
		"method=changePays&codePays=" + jQuery("#codePays").val(),
		function(data) {
			jQuery("#prixLivraison").html(formatCurrency(data.panier.montantTTCFraisPort));
			var prixTotal = jQuery(".prixt");
			var oldPrixTotal = prixTotal.html();
			prixTotal.html(formatCurrency (data.panier.montantFinal));
			if (oldPrixTotal != prixTotal.html()) {
				jQuery(".totaltexte").effect("pulsate");
			}
		}
	);
}

/*
 * Commande, panier : suppression d'un article
 */
var articleSuppressionFormId;
function confirmeSuppression(formId) { 
	articleSuppressionFormId = formId;
	if (jQuery('#confirmation_suppression').size() > 0) {
		successLayer(jQuery('#confirmation_suppression').html(), "confirmation_suppression");
	} else {	
		showElement('layer_confirmation');
	}
}

function annuleSuppressionArticle() {
	jQuery("#layer, #layer_confirmation").hide();
}

function suppressionArticle () {
	// la variable articleSuppressionFormId est renseignée lors de l'ouverture du layer par confirmeSuppression()
	updateArticle(jQuery("#" + articleSuppressionFormId)[0], 'supprimer');
	annuleSuppressionArticle();
}







function validPanier() {
	var panier_form = jQuery('#panier_form')[0];
	if (jQuery('#checkFacture').size() > 0) {
		var check = jQuery('#checkFacture')[0].checked;
		if (check == false) {
			panier_form.factureSeparee.value = false;
		}else{
			panier_form.factureSeparee.value = true;
		}
	}
	panier_form.submit();
}
