/*
function loadImages()
{
	btn_photo_off = new Image();
	btn_photo_off.src = '_image/btn_box_off.png';
	btn_photo_on = new Image();
	btn_photo_on.src = '_image/btn_box_on.png';
}

loadImages();
*/

function verifAddFact(obj)
{
	var codePays = obj.options[obj.selectedIndex].value;
	var chkLiv = document.getElementById('addLivraison');
	
	if(codePays != 6 && chkLiv.checked == false)
	{
		chkLiv.checked = true;
		PMP.dom.setElementProperty('blocLivraison', 'style.display', chkLiv.checked==true ? 'block' : 'none');
	}
}

function parcourrir_famille(ref)
{
	PMP.com.liste.showLoader('listephotos');
	PMP.com.liste.refresh('listephotos', {data:{famille:ref}}, 'produit', 'famille', 1);
	var familles = PMP.dom.getElementByMaskId('menu-%s', 'li');
	for(i=0;i<familles.length;i++)
	{
		if(familles[i].id == 'menu-'+ref)
			familles[i].className = 'active';
		else
			familles[i].className = '';
	}
}

function actualiser_nbarticles_ajax()
{
	var ajax = new PMP.util.pmpAjax("/_modules/boutique/commande/panier.ajax", "POST");
		
	if(!ajax)
	{
		var msgbox = new PMP.util.pmpMsgBox("L'instanciation de la classe AJAX a échouée", "erreur", titreBox);
		return;
	}

	ajax.appendData("action", "get_nb_items");

	ajax.send();
		
	document.getElementById('nbarticlespanier').innerHTML = ajax.reponse.message;
}

function ajouter_produit(ref, qte, code)
{
	var titreBox = "Ajout d'un produit";
		
	if( !PMP.common.isNumber(ref) || ref==0 )
	{
		pmpAlert("La référence du produit est invalide.", titreBox, "erreur");
		return;
	}
	
	if( !PMP.common.isNumber(qte) )
	{
		pmpAlert("La quantité est invalide.", titreBox, "erreur");
		return;
	}	
	
	// ajout du produit au panier
	var ajax = new PMP.util.pmpAjax("/_modules/boutique/commande/panier.ajax", "POST");
	
	if(!ajax)
	{
		var msgbox = new PMP.util.pmpMsgBox("L'instanciation de la classe AJAX a échouée", "erreur", titreBox);
		return;
	}
	
	ajax.appendData("action", "ajouter_produit");
	ajax.appendData("ref", ref);
	ajax.appendData("qte", qte);
	
	if( !PMP.common.isUndefined(code) )
		ajax.appendData("code_prix", code);
	
	ajax.send();
	
	if(!ajax.reponse.etat)
	{
		alert(ajax.reponse.message + " ok " + ajax.url);
		return false;
	}
	else{
		ajax.appendData("action", "get_nb_items");
	
		ajax.send();
		var msg = ajax.reponse.message.split('|');
		$('#nbarticlespanier').html(msg[0]+' article(s)');
		$('#prixsstotalpanier').html(msg[1]+' €');
		$('#prixlivrpanier').html(msg[2]+'&nbsp;€');
		$('#prixtotalpanier').html(msg[3]+'&nbsp;€');
		$('#panier_content').css('display', 'block');
		$('#panier_vide').css('display', 'none');
		
		var msgbox = new PMP.util.pmpMsgBox("L'article a bien été ajouté dans votre panier.", "confirmation", titreBox, {caption:'<a href="javascript:void(0);" class="bouton2011 rouge">Continuer mes achats</a>', action:'', keyCode:'C', close:true}, {caption:'<a href="#" class="bouton2011 vert">Terminer ma commande</a>', action:'window.location.href=\'http://www.lesjardinsaquatiques.fr/boutique/panier.php\'', keyCode:'T'});
	}
	
	return false;
}

function ajout_code(code)
{
	var titreBox = "Ajout d'un code remise";
	
	// ajout du produit au panier
	var ajax = new PMP.util.pmpAjax("/_modules/boutique/commande/panier.ajax", "POST");
	
	if(!ajax)
	{
		var msgbox = new PMP.util.pmpMsgBox("L'instanciation de la classe AJAX a échouée", "erreur", titreBox);
		return;
	}
	
	ajax.appendData("action", "ajouter_code_remise");
	ajax.appendData("code", code);
	
	ajax.send();
	
	if(!ajax.reponse.etat)
	{
		var msgbox = new PMP.util.pmpMsgBox(ajax.reponse.message, "erreur", titreBox, {caption:'<a href="javascript:void(0);" class="bouton fermer">Fermer</a>', action:'', keyCode:'F', close:true});
		return;
	}
	else{
		window.location.href = '';
	}
	
	return false;
}

function supprimer_code(ref)
{
	var titreBox = "Modification d'un produit";
		
	// ajout du produit au panier
	var ajax = new PMP.util.pmpAjax("/_modules/boutique/commande/panier.ajax", "POST");
	
	if(!ajax)
	{
		var msgbox = new PMP.util.pmpMsgBox("L'instanciation de la classe AJAX a échouée", "erreur", titreBox);
		return false;
	}
	
	ajax.appendData("action", "supprimer_code");
	ajax.appendData("ref", ref);
		
	ajax.send({context:true});
	
	if(!ajax.reponse.etat)
	{
		pmpAlert("La référence du produit est invalide.", titreBox, "erreur");
		return false;
	}
	else{
		window.location.href = '';
	}
}

function modifier_produit(ref, qte, ligne)
{
	var titreBox = "Modification d'un produit";
		
	if( PMP.common.isUndefined(ref) )
	{
		pmpAlert("La référence du produit est invalide.", titreBox, "erreur");
		return false;
	}
	
	if( !PMP.common.isNumber(qte) )
	{
		pmpAlert("La quantité est invalide.", titreBox, "erreur");
		return false;
	}
	
	
	// ajout du produit au panier
	var ajax = new PMP.util.pmpAjax("/_modules/boutique/commande/panier.ajax", "POST");
	
	if(!ajax)
	{
		var msgbox = new PMP.util.pmpMsgBox("L'instanciation de la classe AJAX a échouée", "erreur", titreBox);
		return false;
	}
	
	ajax.appendData("action", "modifier_quantite");
	ajax.appendData("ref", ref);
	ajax.appendData("qte", qte);
	
	if(!PMP.common.isUndefined(ligne))
		ajax.appendData("ligne", ligne);
	
	ajax.send({context:true});
	
	return ajax.reponse;
}

function modiPaysLiv(obj)
{
	if(obj.type == 'hidden')
		var codePays = obj.value;
	else{
	// recuperation du code pays selectionné dans la combo
		var codePays = obj.options[obj.selectedIndex].value;
	}
	
	// modif graphique du prix
	actualiser_fraisdeport(codePays);
}

function addQuantite(ref, qte, type)
{
	if( PMP.common.isUndefined(ref) )
		return false;
	
	if( !PMP.common.isNumber(qte) )
		return false;
	
	if( PMP.common.isUndefined(ref) )
		type  = 'i';
	
	var inputQte = document.getElementById("qte["+ref+"]");
	if(inputQte)
	{
		//qte	= ( PMP.common.isNumber(parseInt(inputQte.value)) ? parseInt(inputQte.value) : 0 )
		qte	= ( PMP.common.isNumber(inputQte.value) ? parseInt(inputQte.value) : 0 )	
			+ parseInt(qte);
		
		if( qte >= 1 )
			setQuantite(ref, qte, type);
	}
}

function supprimer_produit(ref)
{
	//setQuantite(ref, 0);
	var reponse = modifier_produit(ref, 0);
	/*if( !reponse.etat )
	{
		alert(reponse.message);
		//NotificationManager.notify({text:reponse.message, className:"erreur", visibleDuration:0, target:"panierTitre"});
		return;
	}
	else*/
		window.location.replace(window.location.href);
}

function setQuantite(ref, qte, type)
{
	if( PMP.common.isUndefined(ref) )
		return false;
	
	if( !PMP.common.isNumber(qte) )
		return false;
	
	qte = type == 'd' ?  Math.round(parseFloat(qte)*10) / 10 : parseInt(qte);
	if( qte < 0 )
		qte = 0;
		
	// mise à jour du panier
	var reponse = modifier_produit(ref, qte);
	if( !reponse.etat )
	{
		//NotificationManager.notify({text:reponse.message, className:"erreur", visibleDuration:0, target:"panierTitre"});
		return;
	}
		
	var inputQte = document.getElementById("qte["+ref+"]");
	if(inputQte)
		inputQte.value 	= parseFloat(qte);
	
	var inputPrix = document.getElementById("prix["+ref+"]");
	if(!inputPrix)
	{
		NotificationManager.notify({text:"Prix de l'article non défini", className:"erreur", visibleDuration:0, target:"panierTitre"});
		return;
	}
	
	var divMontant = document.getElementById("montant["+ref+"]");
	
	if(divMontant)
	{
		var montant = parseFloat(qte) * parseFloat(inputPrix.value);
		
		//vérifie que le montant soit positif
		if(montant < 0)
			montant = 0;
		
		divMontant.montant = montant;
		
		// formate le montant selon les paramètres de langue;
		montant = String.format(montant, "number");
		divMontant.innerHTML = montant;
		
		//refreshSousTotal();
		actualiser_fraisdeport();
		refreshSousTotal();
		actualiser_nbarticles();
		
		if($('#manque_plante').length > 0 && $('.is_plante').length > 0){
			var mt_plante = 0;
			$('.is_plante').each(function(){
				mt_plante += parseInt($(this).html().replace(',', '.'));
			});
			
			var reste = 80 - mt_plante;
			$('#manque_plante').html(String.format(reste, "number"));
			
			if(mt_plante == 0 || mt_plante >= 80){
				$('#msg_err_plante').hide();
				$('#btt_commander').show();
			}
			else{
				$('#msg_err_plante').show();
				$('#btt_commander').hide();
			}
		}
	}
}

function refreshSousTotal()
{
	var elements = PMP.dom.getElementsByMaskId("montant[%i]", "span");
	
	var sousTotal = 0;
	
	for(var i=0; i < elements.length; i++)
	{
		sousTotal += elements[i].montant ? parseFloat(elements[i].montant) : 0;
	}
	
	/*var elements = PMP.dom.getElementsByMaskId("montant_remise[%i]", "span");
	for(var i=0; i < elements.length; i++)
	{
		sousTotal += elements[i].montant ? parseFloat(elements[i].montant) : 0;
	}*/
	
	var divOperation = document.getElementById("montant_operation_livraison");
	if(divOperation)
	{
		sousTotal -= parseFloat(divOperation.montant);
	}
	
	var divSousTotal = document.getElementById("soustotal");
	if(divSousTotal)
	{
		divSousTotal.montant = sousTotal;
		
		// formate le montant selon les paramètres de langue;
		sousTotal = String.format(sousTotal, "number");
		
		divSousTotal.innerHTML = sousTotal;
		$('#prixsstotalpanier').html(sousTotal+'&nbsp;€');
	}
	
	refreshTotal();
}


function refreshTotal()
{
	var montant  = 0;
	
	var divSousTotal = document.getElementById("soustotal");
	
	if(divSousTotal)
	{
		if(!divSousTotal.montant)
			refreshSousTotal();
		
		montant += parseFloat(divSousTotal.montant);
	}
	
	var divRemise = document.getElementById("montant_remise");
	
	if(divRemise)
	{		
		montant += parseFloat(divRemise.montant);
	}

	var divLivraison = document.getElementById("livraison");
	if(divLivraison){
		montant += parseFloat(divLivraison.montant);
		
	}
	
	var divTotal = document.getElementById("total");
	if(divTotal)
	{
		divTotal.montant = montant;
				
		// formate le montant selon les paramètres de langue;
		montant = String.format(montant, "number");
		
		divTotal.innerHTML = montant;
		$('#prixtotalpanier').html(montant+'&nbsp;€');
	}
}

function actualiser_fraisdeport(pays)
{
	var livraison = document.getElementById("livraison");
	
	if(!livraison)
		return true;

	if(  PMP.common.isUndefined(pays) || !PMP.common.isNumber(pays) )
	{
		var paysCB = document.getElementById("choixPays");
		
		if(paysCB.type == 'hidden')
			var pays = paysCB ? paysCB.value : 0;
		else
			var pays = paysCB ? paysCB.options[paysCB.selectedIndex].value : 0;
	}
	
	// ajout du produit au panier
	var ajax = new PMP.util.pmpAjax("/_modules/boutique/commande/panier.ajax", "POST");
	
	if(!ajax)
		return false;
	
	ajax.appendData("action", "calculer_fraisdeport");
	ajax.appendData("pays", pays);
	
	ajax.send({context:true});
	
	if(ajax.reponse.etat)
	{
		var tmp = ajax.reponse.valeur.split('|');
		var montant = parseFloat(tmp[0]);
		operation = document.getElementById('montant_operation_livraison')
		if(tmp[1] && operation)
		{
			montantOperation = parseFloat(tmp[1]);
			
			operation.innerHTML = '-'+String.format(montantOperation, "number");
			operation.montant = montantOperation;
		}
		
		livraison.montant = montant;

		// formate le montant selon les paramètres de langue;
		montant = String.format(montant, "number");
		
		livraison.innerHTML = montant;
		$('#prixlivrpanier').html(montant+'&nbsp;€');
	}

	refreshTotal();
	
	return true;
}


function actualiser_nbarticles()
{
	var elements = PMP.dom.getElementsByMaskId("qte[%i]", "input");
	
	var qte = 0;
	for(var i=0; i < elements.length; i++)
	{
		qte += parseInt(elements[i].value);
	}
	
	var nbPanier = document.getElementById("nbarticlespanier");
	if(nbPanier)
		nbPanier.innerHTML = qte+' article(s)';
	
}

function changeModeLivraison(mode)
{
	var chkMagasin = document.getElementById('checkMagasin');
	var chkLivraison = document.getElementById('checkLivraison');
	if(mode == 'magasin')
	{
		//document.getElementById('livraisonPays').style.visibility = 'hidden';		
		document.getElementById('livraisonPays').style.display = 'none';
		if(document.getElementById('panier_operation'))
			document.getElementById('panier_operation').style.display = 'none';
		document.getElementById('venirMagasin').className = '';
		document.getElementById('fraisdeLivraison').className = 'desactive';
		actualiser_fraisdeport(0);
		refreshSousTotal();
		refreshTotal();
	}
	else if(mode == 'livraison')
	{
		if(document.all){
			document.getElementById('livraisonPays').style.display = 'block';
			if(document.getElementById('panier_operation'))
				document.getElementById('panier_operation').style.display = 'block';
		}
		else{
			document.getElementById('livraisonPays').style.display = 'table-row';
			if(document.getElementById('panier_operation'))
				document.getElementById('panier_operation').style.display = 'table-row';
		}
		//document.getElementById('livraisonPays').style.visibility = 'visible';
		document.getElementById('venirMagasin').className = 'desactive';
		document.getElementById('fraisdeLivraison').className = '';		
		
		modiPaysLiv(document.getElementById('choixPays'));
	}
}
