////////////////////////////
//                        //
//         COMMUN         //
//                        //
////////////////////////////
// actions drapeaux.
function drapeaux(){
	$('#select-lang').toggle(function(){
		$('#lang-dispo').show();
	},function(){
		$('#lang-dispo').hide();
	});
}

// fonction pour lancer un téléchargement de pieces jointes.
function download(root,file,intitule){
	window.location.href = root+'download.php?file='+file+'&intitule='+intitule;
}

// fonction pour lancer les sliders partenaires officiels et médias.
function lanceSlider(larg){
	// bandeau top.
	var params = {menu:'false', flashvars:'xml=xml/illus.xml', allowfullscreen:'true', allowscriptaccess:'always', wmode: "transparent"};
	swfobject.embedSWF('zyvslider.swf?rnd='+Math.random(), 'illus-top', '728', '90', '9.0.0', 'expressInstall.swf', false, params, false);
	// partenaires officiels.
	var params = {menu:'false', flashvars:'xml=xml/partOff.xml', allowfullscreen:'true', allowscriptaccess:'always', wmode: "transparent"};
	swfobject.embedSWF('zyvslider.swf?rnd='+Math.random(), 'part-off', larg, '79', '9.0.0', 'expressInstall.swf', false, params, false);
	// partenaires médias.
	var params = {menu:'false', flashvars:'xml=xml/partMed.xml', allowfullscreen:'true', allowscriptaccess:'always', wmode: "transparent"};
	swfobject.embedSWF('zyvslider.swf?rnd='+Math.random(), 'part-med', larg, '79', '9.0.0', 'expressInstall.swf', false, params, false);
}

// fonction pour faire défiler les partenaires stations en bas de page.
function defilStations(){
	$('div.bandeau-stat').scrollable({size:6, vertical:false, items:'.items', interval:2000, loop:true, speed:600}); // carrousel stations.
}

// fonction pour bouger un élément par rapport à la souris.
function moveElement(e, id){
	// position de la sourie.
	var d = {}, x, y;
	if (self.innerHeight){
		d.pageYOffset = self.pageYOffset;
		d.pageXOffset = self.pageXOffset;
		d.innerHeight = self.innerHeight;
		d.innerWidth = self.innerWidth;
	} else if (document.documentElement && document.documentElement.clientHeight){
		d.pageYOffset = document.documentElement.scrollTop;
		d.pageXOffset = document.documentElement.scrollLeft;
		d.innerHeight = document.documentElement.clientHeight;
		d.innerWidth = document.documentElement.clientWidth;
	} else if (document.body){
		d.pageYOffset = document.body.scrollTop;
		d.pageXOffset = document.body.scrollLeft;
		d.innerHeight = document.body.clientHeight;
		d.innerWidth = document.body.clientWidth;
	}
	(e.pageX) ? x = e.pageX : x = e.clientX + d.scrollLeft;
	(e.pageY) ? y = e.pageY : x = e.clientY + d.scrollTop;
	// correction ie.
	if (document.all){
		x = event.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
		y = event.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
	}
	// traitement.
	// x
	x = x + 10 - ($('body').width()-974)/2; // décalage par rapport au site centré dans la page.
	// y
	var hr = $('body').height()-y;
	var hf = $(id).height();
	if (hr < hf){ y = y - (hf+35); }
	
	// on applique les positions au bloc.
	$(id).css({top: y, left: x});
}

// fonctions pour afficher ou cacher une fiche musher dans un article.
function showFicheMusher(e, id){
	$('.ficheMusher').css({display: 'none'});
	// on affiche celle suvolée.
	if ($('#fiche_'+id)){
		$('#fiche_'+id).fadeIn('fast');
		moveElement(e,'#fiche_'+id); // on lance la fonction de placement par rapport a la souris.
	}
}
function hideFicheMusher(id){
	if ($('#fiche_'+id)){
		$('#fiche_'+id).css({display: 'none'});
	}
}

// fonction pour raffrachir le block live.
function refreshLive(){
	$('#refresh-live').load('inc/blk-live.inc.php');
	setTimeout("refreshLive()",120000);
}

////////////////////////////
//                        //
//      ESPACE LOGIN      //
//                        //
////////////////////////////
// fonction pour cacher ou montrer des options sur l'espace de connexion.
function showLog(cible){
	$('#blk-login div').css({display:'none'});
	$('#log-'+cible).css({display:'block'});
}
// permet de changer l'intitulé du block login.
function titreLog(titre){
	$('#blk-login-titre').html(titre);
}
// fonction pour indiquer ce qu'il faut faire dans le champ de recherche de texte.
function onText(elmt,text){
	if($(elmt).val() == text){
		$(elmt).val('');
	}
}
function outText(elmt,text){
	if($(elmt).val() == ''){
		$(elmt).val(text);
	}
}
// validation du formulaire de connexion.
function validLog(){
	$('#form-login').validate({
		rules:{
			login:{ required:true, email:true },
			password:{ required:true }
		},
		messages:{
			login:'',
			password:''
		}
	});
}
// validation du formulaire de recupération de pot de passe.
function validRec(){
	$('#form-mdp').validate({
		rules:{
			login:{ required:true, email:true }
		},
		messages:{
			login:''
		}
	});
}


////////////////////////////
//                        //
//      FORMULAIRES       //
//                        //
////////////////////////////
// validation du formulaire de newsletter.
function validLetter(){
	$('#form-newsletter').validate({
		rules:{
			email:{ required:true, email:true }
		},
		messages:{
			email:''
		}
	});
}
// validation du formulaire de panier.
function validPanier(){
	$('#form-panier').validate({
		rules:{
			last_name:{ required:true },
			first_name:{ required:true },
			address1:{ required:true },
			zip:{ required:true },
			city:{ required:true },
			country:{ required:true },
			H_PhoneNumber:{ required:true }, //, number:true
			email:{ required:true, email:true }
		},
		messages:{
			last_name:'',
			first_name:'',
			address1:'',
			zip:'',
			city:'',
			country:'',
			H_PhoneNumber:'',
			email:''
		}
	});
}
// validation du formulaire d'accréditation journaliste.
function validAccredit(){
	$('#form-accredit').validate({
		rules:{
			nom:{ required:true },
			prenom:{ required:true },
			fonction:{ required:true },
			societe:{ required:true },
			//tel1:{ required:false, number:true },
			email:{ required:true, email:true }
		},
		messages:{
			nom:'',
			prenom:'',
			fonction:'',
			societe:'',
			//tel1:'',
			email:''
		}
	});
}
// validation du formulaire d'accréditation journaliste.
function validContact(){
	$('#form-contact').validate({
		rules:{
			etes:{ required:true },
			nom:{ required:true },
			prenom:{ required:true },
			email:{ required:true, email:true },
			demande:{ required:true }
		},
		messages:{
			etes:'',
			nom:'',
			prenom:'',
			email:'',
			demande:''
		}
	});
}
// validation du formulaire d'inscription insider.
function validInsider(){
	$('#form-insider').validate({
		rules:{
			civilite:{ required:true },
			nom:{ required:true },
			prenom:{ required:true },
			email:{ required:true, email:true },
			adresse:{ required:true },
			codepostal:{ required:true },
			ville:{ required:true },
			pays:{ required:true }
		},
		messages:{
			civilite:'',
			nom:'',
			prenom:'',
			email:'',
			adresse:'',
			codepostal:'',
			ville:'',
			pays:''
		}
	});
}


////////////////////////////
//                        //
//        BOUTIQUE        //
//                        //
////////////////////////////
// actions checkbox.
var timeout;
function selec(elmt,txt,price){
	if ($(elmt).attr('checked') == true){ // si la checkbox est coché.
		var id = $(elmt).val();
		if ($('#taille_'+id).is('select') && $('#taille_'+id).val() == ''){ var taille = false; } // si une liste de taille existe pour ce produit et qu'aucune n'a été sélectionnée.
		else { var taille = true; } // sinon il existe pas de taille a selectionner.
		// si on peut ajouter.
		if (taille == true){
			addProd(elmt,txt,price);
			$(elmt).parent().parent().parent().addClass('selected');
		} else {
			$(elmt).attr('checked',''); // si pas de taille de selectionnée on decoche la checkbox.
			$('#alert-taille_'+id).show(); // on affiche l'alert taille (fleche).
			timeout = setTimeout("arretFleche('"+id+"')",4000);
		}
	}
	else { // si on décoche la checkbox apres un ajout.
		removeProd(elmt,txt,price);
		$(elmt).parent().parent().parent().removeClass('selected');
	}
}
// fonction pour arreter la fleche.
function arretFleche(id){
	$('#alert-taille_'+id).hide();
	clearTimeout(timeout); // on arrete le timeout.
	timeout = null;
}
// fonction lors de l'ajout d'un produit.
function addProd(elmt,txt,price){
	var id = $(elmt).val();
	var produit = '<li id="prod_'+id+'">- '+txt+'</li>';
	$('#panier').append(produit); // on ajout le produit au panier.
	$('#blk-panier p span.nb').html(compteSelection()); // nb produit sélectionné.
	totalSelection('+'+price); // calcul du total selection.
}
// fonction lors de la suppresion d'un produit.
function removeProd(elmt,txt,price){
	var id = $(elmt).val();
	$('#prod_'+id).remove(); // on supprime le produit du panier.
	$('#blk-panier p span.nb').html(compteSelection()); // nb produit sélectionné.
	totalSelection('-'+price); // calcul du total selection.
}
// calcul du nombre de produit sélectionné pour affichage ou non du panier et du bouton valider.
function compteSelection(){
	// on compte le nombre de li.
	var nb = $('#panier li').length;
	if (nb == 0){
		$('#panier').hide();
		$('#valid-selec').css({display:'none'});
		nb = '0';
	} else {
		$('#panier').show();
		$('#valid-selec').css({display:'block'});
		nb = nb;
	}
	// si il y'a plus d'1 produit on rajoute un "s" pour le pluriel.
	if (nb > 1){ $('#blk-panier p span.s').html('s'); }
	else { $('#blk-panier p span.s').html(''); }
	// on retourne le résultat.
	return nb;
}
// calcul du total pour la sélection.
function totalSelection(price){
	var total = $('#blk-panier p span.tot').html();
	total = parseFloat(total) + parseFloat(price);
	$('#blk-panier p span.tot').html(format(total,2));
}
// fonction pour valider la sélection.
function validSelection(){
	$('#form-boutique').submit();
}
// fonction pour mettre un nombre de décimal apres une somme.
function format(valeur,decimal){
	// formate un chiffre avec 'decimal' chiffres après la virgule
	var deci = Math.round( Math.pow(10,decimal)*(Math.abs(valeur)-Math.floor(Math.abs(valeur))));
	var val = Math.floor(Math.abs(valeur));
	if ((decimal == 0) || (deci == Math.pow(10,decimal))){
		val = Math.floor(Math.abs(valeur));
		deci = 0;
	}
	var val_format = val+'';
	var nb = val_format.length;
	if (decimal > 0){
		var decim='';
		for (var j=0; j<(decimal-deci.toString().length); j++){ decim+='0'; }
		deci = decim + deci.toString();
		val_format = val_format+'.'+deci;
	}
	if (parseFloat(valeur)<0){
		val_format = '-'+val_format;
	}
	return val_format;
}
// fonction pour changer la quantité d'un produit.
function changeQte(root,id,lang){
	//alert(window.location.href);
	var qte = $('#quantity_'+id).val();
	window.location.href = root+'actions.php?action=add-qte&id_produit='+id+'&qte='+qte+'&retour='+lang+'/basket/';
}
// fonction pour changer la destination de l'expédition.
function changeExped(root,elmt,lang){
	var exped = $(elmt).val();
	window.location.href = root+'actions.php?action=exped&exped='+exped+'&retour='+lang+'/basket/';
}
