﻿/* Loïc Pennamen pour Magnana.com */


// jquery
$(document).ready(function() {
	// menu1
	$(".menu1 li:not(.up)").mouseenter(function(){	$(this).animate({ top:"10px", paddingBottom:"7px" }, { queue:false, duration:150 });	}); // hover des "non-up"
	$(".menu1 li:not(.up)").mouseleave(function(){	$(this).animate({ top:"16px", paddingBottom:"0px" }, { queue:false, duration:150 });	}); // hover des "non-up"
	$(".menu1 li:not(.up)").click(function(){	
		$(this).animate({ top:"0px" }, { duration:150 }).animate({ top:"0px" }, { duration:5000 });	// monter et rester en haut le temps de charger la page
		$(".menu1 li.up").animate({ top:"16px" }, { duration:150 });	// baisser l'actif
	}); 
	
	
	
	// onglet boutique
	$(".lienBoutique").mouseenter(function(){	$(this).animate({ bottom:"10px" }, { queue:false, duration:150 });	});
	$(".lienBoutique").mouseleave(function(){	$(this).animate({ bottom:"20px" }, { queue:false, duration:150 });	});
	
	// upimage
	if($.browser.msie){	userAgent = $.browser.version -0;	}
	else userAgent=false;
	if(!userAgent || userAgent>7){
		$(".upimage").mouseenter(function(){
			// alert('up');
			if(!$(this).attr("src").match("-up")){
				var strlen = $(this).attr("src").length; // debug IE
				var ext= $(this).attr("src").substr(strlen-3, strlen);
				var src = $(this).attr("src").match(/[^\.]+/) + "-up."+ext;
				$(this).attr("src", src);
			}
		});
		$(".upimage").mouseleave(function(){
			// alert('up');
			if($(this).attr("src").match("-up")){
				var src = $(this).attr("src").replace("-up", "");
				$(this).attr("src", src);
			}
		});
	}
});

// ********* Panier
// nom du panier : p1_orea           Forme : id*n*px*packs|id*n*px*packs   soit : 2*14*2,8*10:12-20:20  pour 14 produits identifiés par "n" coûtant 2.80€ avec tarifs dégressifs
function ajouterPanier(id, qte, prix, packages){
	// alert('ajouterPanier');
	qte = Number(qte);
	prix = Number(prix).toFixed(2);
	// packagesTab = packages.split('|');
	// lecture du cookie
	var panier=readCookie('p1_orea');
	// Création si not exists (4 jours)
	if(!panier) {
		createCookie('p1_orea', '', 4);
		panier='';
	}
	
	var existant=false;
	
	// récupération de chaque entrée du panier
	var panierTab = panier.split('|');
	var newPanierTab = new Array();
	for(var i=0; i < panierTab.length; i++) {
		// Important
		var effacer=false;
		// Pour chaque entrée, l'id du produit est séparé de la qté de produits
		var handle = panierTab[i].split('*');
		var idPdt= parseInt(handle[0]);
		var qtePdt= Number(handle[1]);
		var pxPdt= Number(handle[2]).toFixed(2);
		var pckPdt= parseInt(handle[3]);
		
		// debug : s'il n'y a rien :
		if(!idPdt || !qtePdt) effacer=true;
		// si le pdt est deja dans le panier : on incrémente son nombre (valeur négative possible)
		else if(idPdt==id){
			// produit existant deja dans le panier
			var existant=true;
			// modification du nombre de produits de cet ID
			// si la quantité est négative ou mène à zéro, alors on a un cas de suppression
			if(parseInt(qtePdt + qte) <= 0){
				effacer=true;
			}
			// sinon : ajout (même négatif)
			else panierTab[i] = idPdt+'*'+ (qtePdt + qte - 0 )+'*'+ pxPdt +'*'+packages;
		}
		
		// reconstruction du tableau
		if(!effacer) newPanierTab[newPanierTab.length] = panierTab[i];
		// dernier cas : id pas trouvé dans les existants, on ajoute simplement à la fin
		if(!existant && i==panierTab.length -1) newPanierTab[newPanierTab.length] = id+'*'+qte+'*'+prix +'*'+packages;
	}
	
	// VANNIER SAVOYARD : animation de la miniature
	if($('#movImage'+id).length > 0){
		$('#movImage'+id).css("visibility", 'visible');
		
		oriX=$('#movImage'+id).next('img').position().left -6;
		oriY=$('#movImage'+id).next('img').position().top -6;
		depX=$('#panier').position().left +100;
		depY=$('#panier').position().top +0;
		
		$('#movImage'+id).css("left", oriX+'px');
		$('#movImage'+id).css("top", oriY+'px');
		$('#movImage'+id).css("height", 'auto');
		$('#movImage'+id).css("opacity", '1');
		// $('#movImage'+id).css("z-index", '1520');
		
		$('#movImage'+id).animate({ left: depX+"px", top: depY+"px", height: '50px', opacity: '0'}, {queue:false, duration:800, easing:'easeOutQuad'});
	}
	// Réécriture du cookie panier
	createCookie('p1_orea', newPanierTab.join('|'), 4);
	// alert(newPanierTab.join('|'));
	majPanier();
	return true;
}
// met à jour l'affichage du panier
function majPanier(mouvement){
	// par défaut : mouvement activé
	if(typeof mouvement == "undefined") mouvement=true;
	// récupération du nombre d'éléments dans le panier
	// lecture du cookie
	var panier=readCookie('p1_orea');
	if(!panier) {		createCookie('p1_orea', '', 4);		panier='';	}
	// alert('panier = '+panier);
	
	// récupération de chaque entrée du panier
	var panierTab = panier.split('|');
	var totalPdts=0;
	var totalPrix=0;
	for(var i=0; i < panierTab.length; i++) {
		// Pour chaque entrée, l'id du produit est séparé de la qté de produits
		var handle = panierTab[i].split('*');
		var idPdt= parseInt(handle[0]);
		var qtePdt= parseInt(handle[1]);
		var pxPdt= Number(handle[2]).toFixed(2);
		var packPdt= (handle[3]);
		// debug : s'il n'y a rien :
		if(!idPdt || !qtePdt) effacer=true;
		// Si l'enregistrement est correct
		else{
			totalPdts += (qtePdt -0);
			// Le prix est défini simplement s'il n'y a pas de packaging particulier :
			if(!packPdt){
				// alert('On ajoute '+pxPdt+' fois '+qtePdt+' = '+(qtePdt*pxPdt -0)+' à '+totalPrix);
				totalPrix += (qtePdt*pxPdt -0);
			}
			// sinon, cas des packs moins chers
			else{
				// alert('Produit '+idPdt+' : pack');
				packs=packPdt.split('-');
				// pour chaque type de packs (croissants : géré par php lors de l'admin) 
				var prixEnModePack=0; // prix géré par pack ?
				for(var j=0; j < packs.length; j++){
					// alert('Produit '+idPdt+' : pack : '+packs[j]);
					// pour chaque pack, on extrait le prix
					infosPack=packs[j].split(':');
					qtePack=infosPack[0];
					prixPack=infosPack[1];
					// alert(qtePack);
					// on regarde si le stock dans le panier couvre ce pack :
					if(qtePdt >= qtePack){
						// alert('Produit '+idPdt+' : j\'ai '+qtePdt+' produits donc ca rentre dans ce pack : '+packs[j]);
						// dans ce cas le prix est fixé en fonction de ce stock
						// ca donne 
						nombreDePacksInclus = (Math.floor(qtePdt/qtePack)); // GROS CALCUL DE BATARD TRES IMPORTANT
						qteEnPlusDuPack = qtePdt-(nombreDePacksInclus*qtePack) -0; // GROS CALCUL DE BATARD TRES IMPORTANT
						// alert('Qte en plus des packs : '+qteEnPlusDuPack);
						prixEnModePack = nombreDePacksInclus*prixPack + qteEnPlusDuPack*pxPdt;
					}
				}
				
				// en fait, ca ne rentre dans aucun pack, on met le prix normal
				if(!prixEnModePack){
					// alert('On ajoute '+pxPdt+' fois '+qtePdt+' = '+(qtePdt*pxPdt -0)+' à '+totalPrix);
					totalPrix += (qtePdt*pxPdt -0);
				}
				// sinon un peix a bien été défini :
				else{
					// alert('pack');
					totalPrix += prixEnModePack -0;
				}
			}
		}
	}
	
	// mise à jour du nombre de pdts
	if(totalPdts){			$("#gomette").fadeIn(); $(".gometteContent").text(totalPdts);}
	else{					$("#gomette").hide(); }
	// mise à jour du prix total
	// debug affichage
	totalPrix=totalPrix.toFixed(2);
	// if(totalPrix)		$("#prixTotalPanier").html('Prix total : <br /><b>'+totalPrix+'</b> € HT');
	// else					$("#prixTotalPanier").html('Votre panier <br />est vide');
	
	$("#infosPanier").html('<p><b>'+totalPdts+'</b> articles</p>	<p>Prix total :<br /><b>'+totalPrix+'</b> € TTC</p>');
	
	// alert(totalPrix);
	
	if(mouvement){
		$("#panier").animate( { width:"206px"}, { queue:true, duration:300} ).animate( { width:"206px" }, { queue:true, duration:1000}).animate( { width:"115px" }, { queue:true, duration:300});
	}
	// alert(panier);
}

// ********* Cookies

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
	return true;
}


// ********* JQuery based functions

// gere l'ajout de nombre de pdts au formulaire. Minimum 1
function addPdt(n, idtemoin){
	var actval = parseInt($('#'+idtemoin).val() + '');
	if(!actval) actval=1;
	n = parseInt(n);
	newval=parseInt(actval + n);
	
	if(newval <= 0) newval=1;
	$('#'+idtemoin).val(newval);
}

// enroule toutes les liste, déroule la bonne
function mselect(idFam){
	// refermer tous les sous-menus sauf celui cliqué
	$('ul.niveau2:not(#menu2'+idFam+')').slideUp("fast");
	// Passer "off" les titres des sous-menus sauf celui cliqué
	$('li.niveau1:not(#niveau1'+idFam+')').removeClass("up");
	
	// Ouvrir le sous-menu cliqué
	$('#menu2'+idFam).slideDown("fast");
	// Passer "up" le titre du sous-menu
	$('#niveau1'+idFam).addClass("up");
	
	// gérer les ombres
	$('.shadower:visible').addClass("invisible"); // retire les ombres partout
	$('#niveau1'+idFam+' .shadower').removeClass("invisible");
	
}
// met le lien en "up" et sélectionne les bons produits dans la liste
function m2select(idFam, idSousFam){
	$('#menu2-'+idFam).slideDown("fast");
	$('.niveau2').removeClass("niveau2up");
	$('#smenu2'+idSousFam).addClass("niveau2up");
}

// dimensionn les iframes visées en fonction de leur contenu
function actu_iframe(){
	//alert('actu_iframe');
	$('iframe.resize').each(function(){
		if(this.contentDocument.body){
			if(this.style.display=='none') var none=true;
			else var none=false;
			
			if(none) this.style.display='block';
			this.style.height = this.contentDocument.body.offsetHeight  + 100 +"px";
			if(none) this.style.display='none';
		}
	});
}


// ********* MISC

/////////// Popups
var newWin = null;
function closeWin(){
	if (newWin != null){
		if(!newWin.closed)
		newWin.close();
	}
}
function popUp(strURL,strType,strHeight,strWidth) {
closeWin();
var strOptions="";
if (strType=="console") strOptions="resizable,height="+strHeight+",width="+strWidth;
if (strType=="fixed") strOptions="status,height="+strHeight+",width="+strWidth;
if (strType=="elastic") strOptions="toolbar,menubar,scrollbars,resizable,location,height="+strHeight+",width="+strWidth;
newWin = window.open(strURL, 'newWin', strOptions);
newWin.focus();
} 
