/*
*/

function positionneSelect(idSelect,valeur){
	var longueur=document.getElementById(idSelect).length;
	var i;
	for(i=longueur-1;i>=0;i--){
		if(document.getElementById(idSelect).options[i].value==valeur){
			document.getElementById(idSelect).selectedIndex=i;
			return;
		}
	}
}
/**
	Gestion des cookies
*/

function EcrireCookie(nom, valeur)
{
	var argv=EcrireCookie.arguments;
	var argc=EcrireCookie.arguments.length;
	var expires=(argc > 2) ? argv[2] : null;
	var path=(argc > 3) ? argv[3] : null;
	var domain=(argc > 4) ? argv[4] : null;
	var secure=(argc > 5) ? argv[5] : false;
	document.cookie=nom+"="+escape(valeur)+
	((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
	((path==null) ? "" : ("; path="+path))+
	((domain==null) ? "" : ("; domain="+domain))+
	((secure==true) ? "; secure" : "");
}

function getCookieVal(offset)
{
	var endstr=document.cookie.indexOf (";", offset);
	if (endstr==-1) endstr=document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}

function LireCookie(nom)
{
	var arg=nom+"=";
	var alen=arg.length;
	var clen=document.cookie.length;
	var i=0;
	while (i<clen)
	{
		var j=i+alen;
		if (document.cookie.substring(i, j)==arg) return getCookieVal(j);
		i=document.cookie.indexOf(" ",i)+1;
		if (i==0) break;
	}
	return "";
}

function EffaceCookie(nom)
{
	date=new Date;
	date.setFullYear(date.getFullYear()-1);
	EcrireCookie(nom,null,date);
}

function checkValid(lien){
	var leForm=$(lien).parents("form");
	var idArticle=leForm.children("[name='YAPBout_idArticle']").val();
	var qte=$("#qte_" + idArticle).val();
	var idP=leForm.children("[name='idP']").val();
	var nomForm=leForm.attr("id");

	// On vérifie que l'on a bien un article à ajouter :
	if(!idArticle){
		alert("Merci de choisir un article.");
		return false;
	}else{
		//On efface le cookie
		EffaceCookie("artToAdd");
		// On crée le cookie pour l'article en question :
		var date=new Date;
		date.setFullYear(date.getFullYear()+1);
		EcrireCookie("artToAdd", idArticle,date,"/");
		// On ajoute dans le panier
		$.get("/produits/ajoutePanier.ajax.php", { YAPBout_todo: "ajoutePanier", YAPBout_idArticle: idArticle, qte: qte, idP: idP },
		  function(data){
//		    alert("Data Loaded: " + data);
				if($('#resumePanier').size()){
					var cible="#resumePanier";
				}else{
					var cible="#lienPanierMenu";
				}
			$('.lienAjoutPanier').effect("transfer", { to: cible }, 1000);
			$.scrollTo("0",500);
			if($('#resumePanier').size()){
				$("#resumePanier").fadeOut("slow",function(){
					$("#resumePanier").remove();
					$("#droite").prepend(data);
					$("#resumePanier").show("fast");
				});
			}else{
				$("#droite").prepend(data);
				$("#resumePanier").show("fast");
			}
		  }
		);
//		leForm.submit();
	}
}
function checkValidPanier(leForm){
	var leForm=$(leForm);
	var idArticle=leForm.children("[name='YAPBout_idArticle']").val();
	var qte=leForm.children("[name='qte']").val();
	var idP=leForm.children("[name='idP']").val();
	var nomForm=leForm.attr("id");

	// On vérifie que l'on a bien un article à ajouter :
	if(!idArticle){
		alert("Merci de choisir un article.");
		return false;
	}else{
		//On efface le cookie
		EffaceCookie("artToAdd");
		// On crée le cookie pour l'article en question :
		var date=new Date;
		date.setFullYear(date.getFullYear()+1);
		$("#panier").addClass('charge');
		EcrireCookie("artToAdd", idArticle,date,"/");
		if($('.mode_paiement').size()){
			var blocPaiement=1;
		}else{
			var blocPaiement=0;
		}
		// On ajoute dans le panier
		$.get("/produits/setPanier.ajax.php", { YAPBout_todo: "setPanier", YAPBout_idArticle: idArticle, qte: qte, idP: idP, paiement: blocPaiement},
			function(data){
				var cible="#panierConteneur";
				$(cible).html(data);
				// On met à jour le bloc du choix du paiement
				if($('.mode_paiement').size()){
					$('.mode_paiement').html($('#mode_paiement').html());
					$('#mode_paiement').remove();
				}
				// On met à jour le mini-panier
				$.get("/produits/ajoutePanier.ajax.php", { YAPBout_todo: "rin", YAPBout_idArticle: idArticle, qte: qte, idP: idP },
				  function(data){
					if($('#resumePanier').size()){
						$("#resumePanier").remove();
						$("#droite").prepend(data);
						$("#resumePanier").show();
					}else{
						$("#droite").prepend(data);
						$("#resumePanier").show();
					}
				  }
				);
			}
		);
	}
}

function composeRef(leSelect){
	// On efface éléments suivants pour réinitialiser :
	$(leSelect).nextAll().remove();
	if(!$(leSelect).val()){
		if($(leSelect).attr('id')=='selectComposeRef'){
			$(".grilleRefs tbody tr").show();
		}
		if($(leSelect).prev('select').size()){
			composeRef($(leSelect).prev('select'));
		}
		return;
	}
	$(".grilleRefs tbody tr").hide();
	var lesArticles=new Array();
	var lesAttributs=new Array();
	var idAttribut=$(leSelect).find('option:selected').parent().attr('rel');
	var idValeur=$(leSelect).val();
	$(leSelect).attr("rel",idAttribut);
	// On ajoute des champs hidden pour savoir ce qui a été sélectionné plus facilement
	if(!$("#formComposeRef :input[name='attributs\[\]'][value='" + idAttribut + "']").size()){
		$("#formComposeRef").append('<input type="hidden" name="attributs[]" value="' + idAttribut + '">');
	}
	if(!$("#formComposeRef :input[name='valeur\[" + idAttribut + "\]']").size()){
		$("#formComposeRef").append('<input type="hidden" name="valeur[' + idAttribut + ']" value="' + idValeur + '">');
	}else{
		$("#formComposeRef :input[name='valeur\[" + idAttribut + "\]']").val(idValeur);
	}
	// On ajoute un champ select pour choisir une valeur dans les attributs restants
	$("#formComposeRef").append('<select><option value="">Affinez encore...</option></select>');
	// Pour chaque attribut défini pour le produit...
	for(idValeurCourante in attributsParValeurs){
		var idAttributCourant=attributsParValeurs[idValeurCourante][0];
		// ...Qui n'est pas l'attribut que l'on vient de selectionner
		if(idValeurCourante!=idValeur && attributsParValeurs[idValeur][0]!=idAttributCourant){

			// ni un des attributs déjà utilisés
			if(!$("#formComposeRef select[rel='" + idAttributCourant + "']").size()){
				// On vérifie que cet attribut n'est pas déjà présent :
				if(!$("#formComposeRef > :last").children("[rel='" + idAttributCourant + "']").size()){
					// Et on ajoute son intitulé comme optgroup
					$("#formComposeRef > :last").append("<optgroup label=\"" + attributsParValeurs[idValeurCourante][3] + "\" rel=\"" + idAttributCourant + "\"></optgroup>");
					lesAttributs.push(idAttribut);
				}
				// Puis on ajoute les valeurs d'attributs dans les optgroups, sous
				// forme de balise option
				bouclearticles :
				for(i=0;i<valeursArticles[idValeur].length;i++){
					var idArticle=valeursArticles[idValeur][i];
					var laValeur=valeursAttributsParArticles[idArticle][idAttributCourant];
					// pour chaque article il faut que pour chaque attribut déjà
					// existant, la valeur soit celle déjà selectionnée
					for(idAttribut2 in valeursAttributsParArticles[idArticle]){
						laValeur2=valeursAttributsParArticles[idArticle][idAttribut2];
						if($("#formComposeRef select[rel='" + idAttribut2 + "']").size() && laValeur2[1]!=$("#formComposeRef select[rel='" + idAttribut2 + "']").val()){
							continue bouclearticles;
						}
					}
					$(".grilleRefs tr[rel='" + idArticle + "']").show();
					// Il ne faut pas que la valeur soit déjà présente :
					if(!$("#formComposeRef > :last").children("[rel='" + attributsParValeurs[idValeurCourante][0] + "']").children("option[value='" + laValeur[1] + "']").size()){
						// Il ne faut pas que l'article ait une valeur pour un
						// attribut déjà utilisé qui ne
						// soit pas celle sélectionnée
						var toAppend='<option value="' + laValeur[1] + '">' + attributsParValeurs[idValeurCourante][3] + ' : ' + laValeur[0] + '</option>';
						$("#formComposeRef > :last").children("[rel='" + attributsParValeurs[idValeurCourante][0] + "']").append(toAppend);
						if(jQuery.inArray(idArticle,lesArticles)==-1){
							lesArticles.push(idArticle);
						}
					}
				}
			}else{
				// On utilisé tous les attributs...
				// Il faut connaitre l'article :
				bouclearticles :
				for(i=0;i<valeursArticles[idValeur].length;i++){
					var idArticle=valeursArticles[idValeur][i];
					var laValeur=valeursAttributsParArticles[idArticle][idAttributCourant];
					// pour chaque article il faut que pour chaque attribut déjà
					// existant, la valeur soit celle déjà selectionnée
					for(idAttribut2 in valeursAttributsParArticles[idArticle]){
						laValeur2=valeursAttributsParArticles[idArticle][idAttribut2];
						if($("#formComposeRef select[rel='" + idAttribut2 + "']").size() && laValeur2[1]!=$("#formComposeRef select[rel='" + idAttribut2 + "']").val()){
							continue bouclearticles;
						}
					}
					if(!$("#formComposeRef select > :last").children("[rel='" + attributsParValeurs[idValeurCourante][0] + "']").children("option[value='" + laValeur[1] + "']").size()){
						// Il ne faut pas que l'article ait une valeur pour un
						// attribut déjà utilisé qui ne
						// soit pas celle sélectionnée
						if(jQuery.inArray(idArticle,lesArticles)==-1){
							$(".grilleRefs tr[rel='" + idArticle + "']").show();
							lesArticles.push(idArticle);
						}
					}
				}
			}
		}else{//C'est l'attribut que l'on vient d'utiliser

			for(i=0;i<valeursArticles[idValeur].length;i++){
					var idArticle=valeursArticles[idValeur][i];
					$(".grilleRefs tr[rel='" + idArticle + "']").show();
			}
		}
	}
	if(lesArticles.length<=1){
		$("#formComposeRef > :last").hide();
		if(lesArticles.length==1){
			// On va chercher en ajax.
			chargeReference(lesArticles.pop());
		}
	}else{
		$("#formComposeRef > :last").change(function(){composeRef(this)});
	}
	if(lesAttributs.length<1){
		$("#formComposeRef > :last").hide();
	}
/*
	lesAttributs.push(idAttribut);
	lesValeurs.push('titi');
	lesAttributs.push('tutu');
	lesAttributs.push('tata');
	$.get("/produits/composeRef.ajax.php", {'lesAttributs[]':lesAttributs},
		function(data){
			alert("Data Loaded: " + data);
		}
	);
*/
	$("#formComposeRef select:last").sortSelect();

}

// ---------------------------------------------------------------
// formate un nombre comme la fonction php number_format
// exemple pour transformer un nombre en prix => numberFormat(global_totalAvecFraisDePort,2,","," ")
// ---------------------------------------------------------------
function numberFormat(number, decimals, dec_point, thousands_sep)
{
var exponent = "";
var numberstr = number.toString ();
var eindex = numberstr.indexOf ("e");
if (eindex > -1)
{
exponent = numberstr.substring (eindex);
number = parseFloat (numberstr.substring (0, eindex));
}
if (decimals != null)
{
var temp = Math.pow (10, decimals);
number = Math.round (number * temp) / temp;
}
var sign = number < 0 ? "-" : "";
var integer = (number > 0 ?
Math.floor (number) : Math.abs (Math.ceil (number))).toString ();

var fractional = number.toString ().substring (integer.length + sign.length);
dec_point = dec_point != null ? dec_point : ".";
fractional = decimals != null && decimals > 0 || fractional.length > 1 ?
(dec_point + fractional.substring (1)) : "";
if (decimals != null && decimals > 0)
{
for (i = fractional.length - 1, z = decimals; i < z; ++i)
fractional += "0";
}
thousands_sep = (thousands_sep != dec_point || fractional.length == 0) ?
thousands_sep : null;
if (thousands_sep != null && thousands_sep != "")
{
for (i = integer.length - 3; i > 0; i -= 3)
integer = integer.substring (0 , i) + thousands_sep + integer.substring (i);
}
return sign + integer + fractional + exponent;
}


function calcule_total(sous_total, frais_port){
	var total = parseFloat(sous_total) + parseFloat(frais_port);
	if (parseFloat(frais_port) == 0) {
		$('#divFraisDePortPrix').html('inclus');
		$('#tdTotalPrix').html(numberFormat(total,2,",","&nbsp;")+'&nbsp;&euro;');
	}
	else if(parseFloat(frais_port) > 0){
		$('#divFraisDePortPrix').html(numberFormat(frais_port,2,",","&nbsp;")+'&nbsp;&euro;');
		$('#tdTotalPrix').html(numberFormat(total,2,",","&nbsp;")+' &euro;');

	}else{
		$('#divFraisDePortPrix').html('selon adresse livraison');
		$('#tdTotalPrix').html(numberFormat(parseFloat(sous_total),2,",","&nbsp;")+'&nbsp;&euro;');
	}

/*		if (parseFloat(sous_total) < 50) {
		$('#boutons_paiement').hide();
		alert('pas de paiement possible!');
	}else{
		alert('paiement ok');
	}
*/
}

function Ouvrir_Spplus(urlspplus){
	// On affiche un message pour signifier que l'on se connecte au panier
	$('.divEspacePersonnel').html('<p>Connexion au serveur de paiement</p><br /><p>> <a href="#validation" onClick="openPopup(\''+urlspplus+'\')">Poursuivre le paiement</a></p>');
	
	$('.divEspacePersonnel').html('<div style="text-align:center;"><h2 style="margin-bottom:10px;">Connexion au serveur de paiement</h2><br /><p><a class="lienAjoutPanier" href="#validation" style="display:inline;width:200px;margin-right:0px;" onClick="openPopup(\''+urlspplus+'\')">Poursuivre le paiement</a></p></div>');
	/*$('.divEspacePersonnel').html('<iframe width="750px" height="560px" scrolling="no" frameborder="0" border="0" src="'+urlspplus+'"></iframe>');*/
	
	$.scrollTo($('#conteneur'), 500);
	// Ouverture du popup SPLUS avec barre état uniquement et focus sur la fenêtre
	/*var win = window.open(urlspplus, "SPPLUS","status=yes,top="+PopupSpplus_top+",left="+PopupSpplus_left+",width="+PopupSpplus_largeur+",height="+PopupSpplus_hauteur);
	win.focus();*/
}

function openPopup(urlspplus)
{
	// Largeur et hauteur préconisées de la fenêtre SPPLUS
	var PopupSpplus_largeur	= 750;
	var PopupSpplus_hauteur	= 560;

	// Position haut et gauche de la fenêtre SPPLUS pour affichage centré dans l'écran
	var PopupSpplus_top	=((parent.screen.height-PopupSpplus_hauteur)/2);
	var PopupSpplus_left =((parent.screen.width-PopupSpplus_largeur)/2);
	
	var win = window.open(urlspplus, "SPPLUS","status=yes,top="+PopupSpplus_top+",left="+PopupSpplus_left+",width="+PopupSpplus_largeur+",height="+PopupSpplus_hauteur);
	win.focus();
}

function abonneNewsletter(){
	var email = $("#newsletter [name='abonne']").val();
	alert(email);
	$.ajax({
	   type: "GET",
	   url: "/newsletter/stockerEmail.php",
	   data: "email="+email,
	   success: function(msg){
			eval(msg);
			if(reponse=="emailPasValide"){
				alert("Veuillez saisir un e-mail valide.");
			}
			if(reponse=="ok"){
				alert("Merci !\n\nVotre inscription à bien été prise en compte.\n\nVous recevrez notre newsletter prochainement.\n\nA bientôt...");
				$("#newsletter [name='abonne']").val("");
			}
	   }
	 });
}




String.prototype.trim = function()
{
    return this.replace(/(?:^\s+|\s+$)/g, "");
}

String.prototype.isEmail = function(){
		var email=/^[A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*@[A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*\.([A-Za-z]){2,4}$/i;
		return(email.test(this));
}



ancPrix=new Array();
