// JavaScript Document

// Fonction qui lance l'impression (IE compris)
function impression()
{
   // Affectation de la méthode print() au clic sur le lien
   window.print();
}


function envoiOrdre(idrubrique, url){
var serial=$.SortSerialize('liste-visible-rubrique2'); $.post('spip.php?page=action-articles&idrubrique='+idrubrique+'&f=rub',serial.hash,function(data){


	tb_show(document.getElementById('hiddenModalContent'), url, false);



 });
}


// **********   FORMULAIRE  **************

function $$(idobjet){
	return (document.getElementById(idobjet));
}



function verificationForm(numduform, listchamp, lang)
// numduform = nom du formulaire
// listchamp = chaine contenant les noms de champ obligatoires en majuscule
{
var compteur;
var formulaire;

var formulaire = document.forms[numduform];
var fo_compte;
var valeurtest;
var strLen;
var nomchamp; 
var vide=true;
var present=false;
message=eval("traduction.langues.vide."+lang);
		
var form_ok = true;
fo_compte=0;

	while (fo_compte < formulaire.elements.length)
	{
		if(formulaire.elements[fo_compte].nodeName!="FIELDSET")
		{
			valeurtest = formulaire.elements[fo_compte].value;
			
			//Gestion des checkbox des actualités
			if(formulaire.elements[fo_compte].type=="checkbox" && (formulaire.elements[fo_compte].name=="alert[]"||(formulaire.elements[fo_compte].name=="export[]"))){
				present=true;
				nomchamp = formulaire.elements[fo_compte].name;
				if(formulaire.elements[fo_compte].checked==true){
					vide=false;	
				}
				
			}else{

				strLen = valeurtest.length;
			
				if (strLen==0 || valeurtest==-1)
				{
					nomchamp = formulaire.elements[fo_compte].name;
					if(listchamp.search(nomchamp)!=-1)
					{
					
						var trad = eval("traduction.langues.formulaire."+nomchamp+"."+lang);
	;
						message = message + "- " + trad + "\n";
						form_ok = false;
					}
				}
			}
		}
		fo_compte ++;
	}
	if(vide && present) {
			
		nomchamp=nomchamp.substring(0,nomchamp.length-2);	
		var trad = eval("traduction.langues.formulaire."+nomchamp+"."+lang);
	;
		message = message + "- " + trad + "\n";
		form_ok = false;
			
	}
	if (form_ok==false) messtot=messtot+message;
	return form_ok;
}

// function $(idobjet)
// {
// 	return(document.getElementById(idobjet));
// }



function envoyer(nomform, champoblig, lang) 
// IL FAUT IMPERATIVEMENT QUE LE FORMULAIRE AIT LE MEME ID QUE SON NOM
// nomform = nom du formulaire
// champoblig = chaine contenant la liste de champ à saisie obligatoire en majuscule
{	
	messtot="";
	var envoi=true;
	var chainealerte;
	var chainealerte2;

	chainealerte=eval("traduction.langues.probleme.prob1."+lang);
	chainealerte2=eval("traduction.langues.probleme.prob2."+lang);
	


	for (var keyVar in tableau_message ) {
 					
		if(tableau_message[keyVar]!=undefined&&tableau_message[keyVar]!=""){
				envoi=false;
				chainealerte=chainealerte+" \n - "+eval("traduction.langues.formulaire."+keyVar+"."+lang);
				
					
			}
				
	}
	chainealerte=chainealerte+chainealerte2;


	if(!envoi){
		messtot= messtot+chainealerte;
	}
	if(envoi){
		if (verificationForm(nomform, champoblig, lang))
		{
			document.getElementById(nomform).submit();
		}else{
			
			alert(messtot);	

		}	
	}else{
		//reccuperation du message
		verificationForm(nomform, champoblig, lang);
		alert(messtot);	
	}
}
//**********************************

// Fonction qui verifie pour le formulaire de contact
function valideContact(nomform, champoblig, champmultiple, lang){
	var radios=$("input[@type=checkbox][@checked]");
	var valeuremail=$("#adresmail")[0].value;
	if(radios.length>0 && valeuremail==""){
		alert('Merci de renseigner votre courriel pour être averti des nouveautés produits.');
	}else{
		envoyerChampMultiple(nomform, champoblig, champmultiple, lang);
	}
}

//Fonction identique à la précèdente mais avec la possibilité d'avoir une liste de champ dans laquelle au moins un doit être rempli (Exemple: formulaire de contact Aérolor  Téléphone et/ou Mail)



function envoyerChampMultiple(nomform, champoblig, champmultiple, lang) 
// IL FAUT IMPERATIVEMENT QUE LE FORMULAIRE AIT LE MEME ID QUE SON NOM
// nomform = nom du formulaire
// champoblig = chaine contenant la liste de champ à saisie obligatoire en majuscule
// champmultiple = chaine contenant la liste de champ dans laquelle au moins un doit être saisi. Les noms des champs doivent être séparés par des virgules
{	

// 	Traitement des champs mal remplis
	messtot="";
	var envoi=true;
	var chainealerte;
	var chainealerte2;
	var champmal=false;
	chainealerte=eval("traduction.langues.probleme.prob1."+lang);
	chainealerte2=eval("traduction.langues.probleme.prob2."+lang);
	
	


	for (var keyVar in tableau_message ) {
 					
		if(tableau_message[keyVar]!=undefined&&tableau_message[keyVar]!=""){
				envoi=false;
				champmal=true;
				chainealerte=chainealerte+" \n - "+eval("traduction.langues.formulaire."+keyVar+"."+lang);
				
					
			}
				
	}
	chainealerte=chainealerte+chainealerte2;
	
	
// 	Verification pour les champs où ils doit y avoir au moins un de rempli
	var testchamps=false;
	var formulaire = document.forms[nomform];
	var start=0;
	var end=champmultiple.indexOf(",",0);
	var champ=champmultiple.substring(start,end);
	var nomchamps="";
	while(champ!=""){

		var compteur=0;

		while(formulaire.elements[compteur].name!=champ){
			compteur++;
		}
	
		nomchamps=nomchamps+"\n -"+eval("traduction.langues.formulaire."+champ+"."+lang);

		if(formulaire.elements[compteur].value!=""){
			testchamps=true;
			break;
		}else{
			champmultiple=champmultiple.substr(end,champmultiple.length);
			start=1;
			end=champmultiple.indexOf(",",start);
			if(end==-1 || end==0){
				end=champmultiple.length;
			}
			champ=champmultiple.substring(start,end);
		}


	}

	if(!testchamps){
		var chainealerte3=eval("traduction.langues.problememultiple.prob1."+lang)+nomchamps+"\n\n";
		envoi=false;
	}

	// Ecriture du message d'avertissement
	//Pour les rubriques à réctifiée
	if(champmal){
		messtot= messtot+chainealerte;
	}
	//Pour les rubriques qui n'ont pas été remplies
	if(!testchamps){
		messtot= messtot+chainealerte3;
	}
	if(envoi){
		if (verificationForm(nomform, champoblig, lang))
		{
			document.getElementById(nomform).submit();
		}else{
			
			alert(messtot);	

		}	
	}else{
	
		//reccuperation du message
		verificationForm(nomform, champoblig, lang);
		alert(messtot);	
	}
}
//**********************************



    // gestion de la touche entree
function handleKeyPress(evt) 
 {
  var nbr, chr;
  if (window.Event)
  	 var nbr = evt.which;
  else
  	var nbr = event.keyCode;
	
  if (nbr==13)
	  verif();   // ici on met ce qu'on doit doit faire le bouton submit
  return true;
 }
// document.onkeydown= handleKeyPress;
 

 // GetFormInputs 
 //radio
function getRadioVal(rb)
{var L=rb.length;var ret="";
 for (var i = 0 ; i< L ; i++)
 {if(rb[i].checked) {ret=rb[i].value;break;}}
 return(ret);
 }
  
 //text, password, hidden, textarea, file
 function getTextVal(tf)
 {var ret=tf.value;
 return(ret);
 }
  
 //checkbox
 function getCheckboxVal(cb)
 {var L=cb.length;var ret='';
 for (i = 0; i < L; i++)
 {if (cb[i].checked==true) {ret += cb[i].value + '\n';}}
 return(ret);
 }
  
 //select
 function getSelectVal(sel)
 {var ret='';
 ret=sel.options[sel.selectedIndex].text;
 return(ret);
 }
  
  
  
 //
 // Control 
 //

function isCodePostal(cpStr){
	var resultat=true;
	if(cpStr.length!=5){
		resultat=false;
	}else{
		if(!isNumberString(cpStr)){
			resultat=false;
		
		}
	}

	return resultat;
}

function isTelephone(telStr){
	var resultat=true;
	if(telStr.length!=10){
		resultat=false;
	}else{
		if(!isNumberString(telStr)){
			resultat=false;
		
		}
	}

	return resultat;
}



 function isDate(JJ, MM, AAAA){
	if(JJ<1||JJ>31||MM<1||MM>12) return false;
	if(MM==2){
		if(JJ==30||JJ==31) return false;
   		if(JJ==29) return ((AAAA%4==0&&AAAA%100!=0)||AAAA%400==0);
 	}
 	else if(JJ==31) return !(MM==4||MM==6||MM==9||MM==11);
 	return true;
 }
 

 function isEmail(emailStr)
{
// si la chaine est vide, on retourne true quand meme
 
	var validDomain=false;
	var AtPos = emailStr.lastIndexOf("@");
	var DotPos= emailStr.lastIndexOf(".");
	if((AtPos>0)&&(DotPos>0)&&(AtPos<DotPos))
	{var domainExtList='ac.ad.ae.af.ag.ai.al.am.an.ao.aq.ar.as.at.au.aw.az.ba.bb.bd.be.bf.bg.bh.bi.bj.bm.bn.bo.br.bs.bt.bv.bw.by.bz.ca.cc.cd.cf.cg.ch.ci.ck.cl.cm.cn.co.cr.cs.cu.cv.cx.cy.cz.de.dj.dk.dm.do.dz.ec.ee.eg.eh.er.es.et.fi.fj.fk.fm.fo.fr.fx.ga.gb.gd.ge.gf.gg.gh.gi.gl.gm.gn.gp.gq.gr.gs.gt.gu.gw.gy.hk.hm.hn.hr.ht.hu.id.ie.il.im.in.io.iq.ir.is.it.je.jm.jo.jp.ke.kg.kh.ki.km.kn.kp.kr.kw.ky.kz.la.lb.lc.li.lk.lr.ls.lt.lu.lv.ly.ma.mc.md.mg.mh.mk.ml.mm.mn.mo.mp.mq.mr.ms.mt.mu.mv.mw.mx.my.mz.na.nc.ne.nf.ng.ni.nl.no.np.nr.nt.nu.nz.om.pa.pe.pf.pg.ph.pk.pl.pm.pn.pr.ps.pt.pw.py.qa.re.ro.ru.rw.sa.sb.sc.sd.se.sg.sh.si.sj.sk.sl.sm.sn.so.sr.st.su.sv.sy.sz.tc.td.tf.tg.th.tj.tk.tm.tn.to.tp.tr.tt.tv.tw.tz.ua.ug.uk.um.us.uy.uz.va.vc.ve.vg.vi.vn.vu.wf.ws.ye.yt.yu.za.zm.zr.zw.com.edu.gov.int.mil.net.org.eu.biz.pro.info.aero.name.coop.arpa.nato.museum.EoF';
	var domainExt=domainExtList.split(".");
	var emailExt=emailStr.substr(DotPos+1);
	emailExt=emailExt.toLowerCase();
	for(i=0;domainExt.length;i++)
	{if (domainExt[i]=='EoF') break; //infinite loop else
	if (emailExt==domainExt[i]) {validDomain=true;break;}
	}
  
return(validDomain);
}
  
}

 function isUrl(urlStr)
{
// si la chaine est vide, on retourne true quand meme
 
	var res=false;
	var validDomain=false;
	var HttpPos = urlStr.substr(0,7);
	if(HttpPos=="http://")
	{
		
		var DotPos= urlStr.lastIndexOf(".");
	
		var domainExtList='ac.ad.ae.af.ag.ai.al.am.an.ao.aq.ar.as.at.au.aw.az.ba.bb.bd.be.bf.bg.bh.bi.bj.bm.bn.bo.br.bs.bt.bv.bw.by.bz.ca.cc.cd.cf.cg.ch.ci.ck.cl.cm.cn.co.cr.cs.cu.cv.cx.cy.cz.de.dj.dk.dm.do.dz.ec.ee.eg.eh.er.es.et.fi.fj.fk.fm.fo.fr.fx.ga.gb.gd.ge.gf.gg.gh.gi.gl.gm.gn.gp.gq.gr.gs.gt.gu.gw.gy.hk.hm.hn.hr.ht.hu.id.ie.il.im.in.io.iq.ir.is.it.je.jm.jo.jp.ke.kg.kh.ki.km.kn.kp.kr.kw.ky.kz.la.lb.lc.li.lk.lr.ls.lt.lu.lv.ly.ma.mc.md.mg.mh.mk.ml.mm.mn.mo.mp.mq.mr.ms.mt.mu.mv.mw.mx.my.mz.na.nc.ne.nf.ng.ni.nl.no.np.nr.nt.nu.nz.om.pa.pe.pf.pg.ph.pk.pl.pm.pn.pr.ps.pt.pw.py.qa.re.ro.ru.rw.sa.sb.sc.sd.se.sg.sh.si.sj.sk.sl.sm.sn.so.sr.st.su.sv.sy.sz.tc.td.tf.tg.th.tj.tk.tm.tn.to.tp.tr.tt.tv.tw.tz.ua.ug.uk.um.us.uy.uz.va.vc.ve.vg.vi.vn.vu.wf.ws.ye.yt.yu.za.zm.zr.zw.com.edu.gov.int.mil.net.org.eu.biz.pro.info.aero.name.coop.arpa.nato.museum.EoF';
		var domainExt=domainExtList.split(".");
		var urlExt=urlStr.substr(DotPos+1);
		urlExt=urlExt.toLowerCase();
		i=-1;
		
		while(i<domainExt.length && urlExt!=domainExt[i]){
			i++;
		
			if (urlExt==domainExt[i]) {
				validDomain=true;
				urlExt=domainExt[i];
				}
			
		}
		if(validDomain){
			
			urlStr=urlStr.substring(7, DotPos);
			var trois = urlStr.split(".");
			if((trois[trois.length-1]).length >= 3 ){

				res=true;
			}
		}
	
  }
  else {res=false};

return(res);
}

function isUrlavecrepertoire(urlStr)
{
// si la chaine est vide, on retourne true quand meme
 
	var res=false;
	var validDomain=false;
	var HttpPos = urlStr.substr(0,7);
	if(HttpPos=="http://")
	{

		var urlnue=urlStr.substr(7,urlStr.length);
		var SlashPos=urlnue.indexOf("/");
		
		if(SlashPos!=-1){
			//On enlève tout ce qu'il y a après le /
			urlnue=urlnue.substr(0,SlashPos);
		
			// La position du / est décalé de 7 place a cause du http://
			urlStr=urlStr.substr(0,SlashPos+7);
		}
		
		var DotPos= urlStr.lastIndexOf(".");
	
		var domainExtList='ac.ad.ae.af.ag.ai.al.am.an.ao.aq.ar.as.at.au.aw.az.ba.bb.bd.be.bf.bg.bh.bi.bj.bm.bn.bo.br.bs.bt.bv.bw.by.bz.ca.cc.cd.cf.cg.ch.ci.ck.cl.cm.cn.co.cr.cs.cu.cv.cx.cy.cz.de.dj.dk.dm.do.dz.ec.ee.eg.eh.er.es.et.fi.fj.fk.fm.fo.fr.fx.ga.gb.gd.ge.gf.gg.gh.gi.gl.gm.gn.gp.gq.gr.gs.gt.gu.gw.gy.hk.hm.hn.hr.ht.hu.id.ie.il.im.in.io.iq.ir.is.it.je.jm.jo.jp.ke.kg.kh.ki.km.kn.kp.kr.kw.ky.kz.la.lb.lc.li.lk.lr.ls.lt.lu.lv.ly.ma.mc.md.mg.mh.mk.ml.mm.mn.mo.mp.mq.mr.ms.mt.mu.mv.mw.mx.my.mz.na.nc.ne.nf.ng.ni.nl.no.np.nr.nt.nu.nz.om.pa.pe.pf.pg.ph.pk.pl.pm.pn.pr.ps.pt.pw.py.qa.re.ro.ru.rw.sa.sb.sc.sd.se.sg.sh.si.sj.sk.sl.sm.sn.so.sr.st.su.sv.sy.sz.tc.td.tf.tg.th.tj.tk.tm.tn.to.tp.tr.tt.tv.tw.tz.ua.ug.uk.um.us.uy.uz.va.vc.ve.vg.vi.vn.vu.wf.ws.ye.yt.yu.za.zm.zr.zw.com.edu.gov.int.mil.net.org.eu.biz.pro.info.aero.name.coop.arpa.nato.museum.EoF';
		var domainExt=domainExtList.split(".");
		var urlExt=urlStr.substr(DotPos+1);
		urlExt=urlExt.toLowerCase();
		i=-1;
		
		while(i<domainExt.length && urlExt!=domainExt[i]){
			i++;
		
			if (urlExt==domainExt[i]) {
				validDomain=true;
				urlExt=domainExt[i];
				}
			
		}
		if(validDomain){
			
			urlStr=urlStr.substring(7, DotPos);
			var trois = urlStr.split(".");
			if((trois[trois.length-1]).length >= 3 ){

				res=true;
			}
		}
	
  }
  else {res=false};

return(res);
}


  
 function isNumberString(NumStr)
 {var regEx=/^[0-9]+$/;
 var ret=false;
 if (regEx.test(NumStr)) ret=true;
 return ret;
 }
  
 function isAlphaNumString(NumStr)
 {var regEx=/^[A-Za-z0-9]+$/;
 var ret=false;
 if (regEx.test(NumStr)) ret=true;
 return ret;
 }
  
 function isAlphaString(NumStr)
 {var regEx=/^[A-Za-z]+$/;
 var ret=false;
 if (regEx.test(NumStr)) ret=true;
 return ret;
 }
  
//***************************** FONCTIONS ajoutées **************************************

function ConfirmSup(EnrASupprimer) {
if (confirm("Confirmez-vous la suppression ?")) {
	document.location = EnrASupprimer;
	}  
}

function formVide()
{
var cpt=0;
 // La première boucle parcourt les formulaires
   for(var i = 0; i < document.forms.length; i++)
     // La deuxième boucle parcourt les champs de formulaire
     for(var j = 0; j < document.forms[i].elements.length; j++)
       // compteur de champs non vides sauf pour les boutons radio
	   if(document.forms[i].elements[j].type!="radio" && document.forms[i].elements[j].type!="button" )
		   if(document.forms[i].elements[j].value!="") cpt++; 
	if(cpt==0) return true; else return false;
}

function verifAnnee(valeur) {
	if (valeur!="") {
		if(!IsNumberString(valeur)) alert("Saisissez une année sur 4 chiffres");
		else if (valeur.length!=4) alert("Saisissez une année sur 4 chiffres"); 
	}
}

function afficheTelAvecSep(numtel,sep) {
	if (numtel.length < 10) {
		alert("Numéro incorrect");
		return "";
	}
	else
		if(numtel.length == 10)  {
			var re = /^([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})$/;
			if(re.test(numtel)) {
				var tableau = re.exec(numtel);
				var tel = tableau.join(sep);
				return tel.substring(numtel.length+1,tel.length);
			}
			else
				return numtel;
		}
}

//Fonction qui remet à 0 le champ url si aucune adresse n'a été rentrée
function remiseChampUrl(elt){

	if(elt.value=="http://"){
		elt.value="";
	}

}

//Fonction qui met "http://" dans le champ de lien que si celui ci n'a pas encore été tapé
function miseChampUrl(elt){

	if(elt.value==""){
		elt.value="http://";
	}

}
//Fonction qui ajoute trois champs pour les destinataires (nom, prenom, mail)
var dest_nb_lignes = 0;
function ajouterDestinataire(idzoneajouter, avant, lang){
//idzoneajouter: id de la zone ou le champs doit être ajouter
//avant: nom de l'element qui se trouvera après l'insertion
	dest_nb_lignes++;
	var langue=eval("lang");
	if(dest_nb_lignes<10){
		
		var obj=$$(idzoneajouter);
		var retour=document.createElement('BR');
		var retour1=document.createElement('BR');
		var retour2=document.createElement('BR');
		var retour3=document.createElement('BR');
		var retour4=document.createElement('BR');
		var message=eval("traduction.langues.formulaire.desti."+langue);
		var texte=document.createTextNode("E-mail "+(dest_nb_lignes+1)+message);

		var message2=eval("traduction.langues.formulaire.nomdes."+langue);
		var textenom=document.createTextNode(message2+" ");

		var message3=eval("traduction.langues.formulaire.prenomdes."+langue);
		var texteprenom=document.createTextNode(message3+" ");

		
		


		//Nom
		var champnom=document.createElement('INPUT');
		champnom.type="text";
		champnom.name="nom"+(dest_nb_lignes+1);
		
		//Prénom
		var champprenom=document.createElement('INPUT');
		champprenom.type="text";
		champprenom.name="prenom"+(dest_nb_lignes+1);

		//Mail
		var champ=document.createElement('INPUT');
		champ.type="text";
		champ.name="maildestinataire"+(dest_nb_lignes+1);
		champ.id="maildestinataire"+(mail_nb_lignes+1);
		var actionclick="obj=new testChamp(this.name,'mail','formMessage','"+langue+"'); obj.verifType();";
		champ.setAttribute("onBlur",actionclick);


		//div

		var div1=document.createElement('div');
		div1.className="libelle";
		div1.appendChild(textenom);
		

		var div2=document.createElement('div');
		div2.className="libelle";
		div2.appendChild(texteprenom);
		

		var div3=document.createElement('div');
		div3.className="libelle";
		div3.appendChild(texte);
		

		//ajout

		obj.insertBefore(retour,document.getElementsByName(avant)[0]);
		obj.insertBefore(retour4,document.getElementsByName(avant)[0]);
		obj.insertBefore(div1,document.getElementsByName(avant)[0]);
		obj.insertBefore(champnom,document.getElementsByName(avant)[0]);
			

		obj.insertBefore(retour1,document.getElementsByName(avant)[0]);

		obj.insertBefore(div2,document.getElementsByName(avant)[0]);
		obj.insertBefore(champprenom,document.getElementsByName(avant)[0]);
		

		obj.insertBefore(retour2,document.getElementsByName(avant)[0]);

		obj.insertBefore(div3,document.getElementsByName(avant)[0]);
		obj.insertBefore(champ,document.getElementsByName(avant)[0]);
		

		obj.insertBefore(retour3,document.getElementsByName(avant)[0]);
		
		
	}else{
		var message_erreur=eval("traduction.langues.formulaire.tropdes."+langue);
		alert(message_erreur+"");
	}
	
	

}

//Fonction qui ajoute une ligne pour l'envoi à plusieurs destinataires
var mail_nb_lignes = 0;
function ajouterLigne(idzoneajouter, lang){
//idzoneajouter: id de la zone ou le champs doit être ajouter
	mail_nb_lignes++;
	if(mail_nb_lignes<10){
		var langue=eval("lang");
		var obj=$$(idzoneajouter);
		var retour=document.createElement('BR');
		
		var message=eval("traduction.langues.formulaire.desti."+langue);
		var texte=document.createTextNode(mail_nb_lignes+1+message);
		var champ=document.createElement('INPUT');
		champ.type="text";
		champ.name="maildestinataire"+(mail_nb_lignes+1);
		
		var actionclick="obj=new testChamp(this.name,'mail','formMessage','"+langue+"'); obj.verifType();";
		champ.setAttribute("onBlur",actionclick);
		champ.className="input-formulaire";
		champ.setAttribute("size","56");
		var div_libel=document.createElement('div');
		div_libel.appendChild(texte);
		div_libel.className="libelle";
	
// 		obj.appendChild(document.createElement('BR'));
 		obj.appendChild(retour);
		obj.appendChild(div_libel);
		obj.appendChild(champ);
		majpanthere();
	}
	

}

 function getURL_base(url)
 {
 //renvoie un URL sans les paramètres et le ?
 var S_url = url;
 stopIndex=S_url.indexOf("?");
 url_sans_param=S_url.substr(0,stopIndex);
 return url_sans_param
 } 
	
//Fonction qui retourne un tableau associatif représentant les différents paramètre passés par l'url et leur valeur
function getParametres()
{

 if (window.location.search != "") {
	var longueur = window.location.search.length - 1;
	var data = window.location.search.substr(1,longueur);
	var donnees = data.split("&");
	var urlvar = new Object();
	var urlvarnum = new Object();
		for (var i=0; i < donnees.length; i++) {
			position = donnees[i].indexOf("=");
			variable = donnees[i].substr(0,position);
			pos = position + 1;
			valeur = decodeURI(donnees[i].substr(pos,donnees[i].length));
			while (valeur.search(/\+/) != -1)
				valeur = valeur.replace(/\+/," ");
			urlvar[variable] = valeur;
			urlvarnum[i] = valeur;
			
		}
	} 

return urlvar;

} 



//<!--
//<!-- Modified By:  Steve Robison, Jr. (stevejr@ce.net) -->
//<!-- This script and many more are available free online at -->
//<!-- The JavaScript Source!! http://javascript.internet.com -->

function check(nomcase, nomselect) {

var tab=document.getElementsByName(nomcase);
var tabsel = document.getElementsByName(nomselect);
//nbcas = field.length -2; // attention comme on envoie tout le formulaire, on enleve 2 objets qui sont ?la fin : 1 bouton et (1 bouton ou la case tout selectionner)

if (tabsel[0].checked == false) {
	for (i = 0; i < tab.length; i++) {
		tab[i].checked = false;
	}
	
	return "Uncheck All"; 
}
else {
	for (i = 0; i < tab.length; i++) {
		tab[i].checked = true; 
	}
	
	return "Check All"; 
}
}
//  End -->



//***************************** FONCTIONS C-STAN **************************************

//****************************Classe testChamp**************************************

tableau_message=new Object();
function testChamp(nomchamp, typage, idzonemessage, lang)
/*
objet: objet représentant le formulaire
typage: type attendu dans le champ. Ex: mail, text, etc...
idzonemessage (optionel): id de la zone où apparaitra le message derreur
lang: langage des messages d'erreur: fr, en ou de


*/
{
	
		var obj=window.document.getElementsByName(nomchamp);
		
		this.nom = nomchamp;
		this.valeur=obj[0].value;
		this.typage=typage;
		this.langue=lang;
		if(idzonemessage!=undefined){
			this.idzonemessage=idzonemessage;
		}
		this.message="";
		res=true; // globale car utilisé dans la fonction de vérif avant envoi
		//Methode qui vérifie que le contenu du champ est correct
	
		this.verifType=function(){
		/*
		Fonction qui vérifie que la valeur entrée dans le champ correspond au type demandé
		valeur retournée : si pas d'idzonemessage, le message d'erreur est retourné
		*/
			if(this.valeur != ""){
			
				switch (this.typage)
				{
					case 'int':
						res=isNumberString(this.valeur);
						break;
					case 'mail':
						res=isEmail(this.valeur);
						break;
					case 'text':
						res=isAlphaString(this.valeur);
						break;
					case 'textnum':
						res=isAlphaNumString(this.valeur);
						break;
					case 'date':
						res=isDate(this.valeur);
						break;
					case 'url':	
						res=isUrlavecrepertoire(this.valeur);
						break;
					case 'cp':
						res=isCodePostal(this.valeur);
						break;
					case 'tel':
						res=isTelephone(this.valeur);
						break;
					default:
						res=false;
						break;
				}
				
			
				
								
				if(!res){

					var prempartie=eval("traduction.langues.div.alert1."+this.langue);
					
					var nomchamp = eval("traduction.langues.formulaire."+this.nom+"."+this.langue);
					this.message ="- "+prempartie+nomchamp;
					
					if(this.idzonemessage!=undefined)
					// si la zone d'affichage des messages est définie on la met a jour
					{
						var temp=false;
						for(var key in tableau_message){
							if(this.message==tableau_message[key]){
								
								temp=true;
								
							}
						}
						tableau_message[this.nom]=this.message;
							
						this.afficherMessages();
						
						
						if(!temp){
							$($$(this.idzonemessage)).hide(1);
							$($$(this.idzonemessage)).slideDown(1000);
						}
					}
					else
					// sinon on renvoie le message
					{
					
						return this.message;
					}
				}
				else
				{
					if(this.idzonemessage!=undefined)
					{
						// pas d'erreur donc on efface le message s'il y en avait un
						tableau_message[this.nom]="";
						this.afficherMessages();
					}
				}
			}else
			{
				if(this.idzonemessage!=undefined){
						// le champ est vide donc on efface le message s'il y en avai un
						tableau_message[this.nom]="";
						this.afficherMessages();
				}
			}
		}

		this.afficherMessages=function(){
		/*
		Fonction qui affiche les uns à la suite des autres les messages d'erreurs généré par la fonction verifType
		*/
			var obj1 = $$(this.idzonemessage);
			var totalMessage="";
			var testefface=true;
			
			for (var keyVar in tableau_message){
 				
					
				if(tableau_message[keyVar]!="")
				{	
					
					testefface=false;

 					
					$('#titre-erreur')[0].style.display="block";
					totalMessage += tableau_message[keyVar]+"<br/><br/>";
				}
				
			}
			
			if(testefface){
				obj1.style.display="none";
				$('#titre-erreur')[0].style.display="none";
			}
			
			obj1.innerHTML = totalMessage;
			
		}

}
// **************************************************************



//Controle du pseudonyme



// nomtemp nom entre par l'utilisateur. Cette fonction va verfier qu'il n'existe pas dans la BBD avant de l'ajouter

function pseudonyme(nomtemp,divmessage,lang){

	urltesnom="squelettes/test-pseudo.php?name="+nomtemp;

	var testnom = new $.ajax({

	url:urltesnom,
	method: "get",

	success:function(transport){

			var nboccurence=transport;

			
			if(nboccurence!='0'){
					
					var temptab=tableau_message['login'];

					var pseudomin = eval("traduction.langues.formulaire.pseudo."+lang);

					var pseudoutil = eval("traduction.langues.formulaire.pseudoutil."+lang);

					tableau_message['login']="- "+pseudoutil;

					var eprereguliere=new RegExp('^.{3,}$');

					if( nomtemp.match(eprereguliere)==null){

					

						tableau_message['login']=tableau_message['login']+' - '+pseudomin;

					}



					



					var obj1 = $('#'+divmessage)[0];

					var totalMessage='';

	

	

					for (var keyVar in tableau_message){

					

						

					if(tableau_message[keyVar]!='')

						{	
$('#titre-erreur')[0].style.display='block';
							totalMessage +=  tableau_message[keyVar]+"<br/><br/>";

						}

						

					}

					obj1.innerHTML = totalMessage;


					
					if(temptab!=tableau_message['login']){	obj1.style.display="inherit";
						$($$(divmessage)).hide(1);
						$($$(divmessage)).slideDown(1000);
					}

				

				

			}else{

				var temptab=tableau_message['login'];

				tableau_message['login']="";

				var eprereguliere=new RegExp('^.{3,}$');

				if( nomtemp.match(eprereguliere)==null){

						var pseudomin = eval("traduction.langues.formulaire.pseudo."+lang);

						tableau_message['login']=tableau_message['login']+' - '+pseudomin;

					}

				var obj1 = $('#'+divmessage)[0];

				var totalMessage='';



				var efface=1
				for (var keyVar in tableau_message){

 				

					

				if(tableau_message[keyVar]!='')

					{	
						$('#titre-erreur')[0].style.display='block';
						totalMessage += tableau_message[keyVar]+"<br/><br/>";

						efface=2;
					}

					

				}

				if(efface==1){
					$('#titre-erreur')[0].style.display='none';
					obj1.style.display="none";
				}
				obj1.innerHTML = totalMessage;

				if(temptab!=tableau_message['login']){

						obj1.style.display="inherit";
						$($$(divmessage)).hide(1);
						$($$(divmessage)).slideDown(1000);
				}

				

			}

	}

	

 });



}
// ***********************************************************************************************

// Calcul MD5

/*

 *  md5.jvs 1.0b 27/06/96

 * Javascript implementation of the RSA Data Security, Inc. MD5

 * Message-Digest Algorithm.

 * Copyright (c) 1996 Henri Torgemane. All Rights Reserved.

 * Permission to use, copy, modify, and distribute this software

 * and its documentation for any purposes and without

 * fee is hereby granted provided that this copyright notice

 * appears in all copies.

 * Of course, this soft is provided "as is" without express or implied

 * warranty of any kind.

 * -------------------------------------------------------------

 * Modified :

 * - 2003/06/09 by Antoine Pitrou (unicode compatibility)

 */



function array(n) {

  for(i=0;i<n;i++) this[i]=0;

  this.length=n;

}



/* Some basic logical functions had to be rewritten because of a bug in

 * Javascript.. Just try to compute 0xffffffff >> 4 with it..

 * Of course, these functions are slower than the original would be, but

 * at least, they work!

 */



function integer(n) { return n%(0xffffffff+1); }



function shr(a,b) {

  a=integer(a);

  b=integer(b);

  if (a-0x80000000>=0) {

    a=a%0x80000000;

    a>>=b;

    a+=0x40000000>>(b-1);

  } else

    a>>=b;

  return a;

}



function shl1(a) {

  a=a%0x80000000;

  if (a&0x40000000==0x40000000)

  {

    a-=0x40000000;

    a*=2;

    a+=0x80000000;

  } else

    a*=2;

  return a;

}



function shl(a,b) {

  a=integer(a);

  b=integer(b);

  for (var i=0;i<b;i++) a=shl1(a);

  return a;

}



function and(a,b) {

  a=integer(a);

  b=integer(b);

  var t1=(a-0x80000000);

  var t2=(b-0x80000000);

  if (t1>=0)

    if (t2>=0)

      return ((t1&t2)+0x80000000);

    else

      return (t1&b);

  else

    if (t2>=0)

      return (a&t2);

    else

      return (a&b);

}



function or(a,b) {

  a=integer(a);

  b=integer(b);

  var t1=(a-0x80000000);

  var t2=(b-0x80000000);

  if (t1>=0)

    if (t2>=0)

      return ((t1|t2)+0x80000000);

    else

      return ((t1|b)+0x80000000);

  else

    if (t2>=0)

      return ((a|t2)+0x80000000);

    else

      return (a|b);

}



function xor(a,b) {

  a=integer(a);

  b=integer(b);

  var t1=(a-0x80000000);

  var t2=(b-0x80000000);

  if (t1>=0) 

    if (t2>=0) 

      return (t1^t2);

    else

      return ((t1^b)+0x80000000);

  else

    if (t2>=0)

      return ((a^t2)+0x80000000);

    else

      return (a^b);  

}



function not(a) {

  a=integer(a);

  return (0xffffffff-a);

}



/* Here begin the real algorithm */



    var state = new array(4); 

    var count = new array(2);

	count[0] = 0;

	count[1] = 0;                     

    var buffer = new array(64); 

    var transformBuffer = new array(16);

    var digestBits = new array(16);



    var S11 = 7;

    var S12 = 12;

    var S13 = 17;

    var S14 = 22;

    var S21 = 5;

    var S22 = 9;

    var S23 = 14;

    var S24 = 20;

    var S31 = 4;

    var S32 = 11;

    var S33 = 16;

    var S34 = 23;

    var S41 = 6;

    var S42 = 10;

    var S43 = 15;

    var S44 = 21;



    function F(x,y,z) {

	return or(and(x,y),and(not(x),z));

    }



    function G(x,y,z) {

	return or(and(x,z),and(y,not(z)));

    }



    function H(x,y,z) {

	return xor(xor(x,y),z);

    }



    function I(x,y,z) {

	return xor(y ,or(x , not(z)));

    }



    function rotateLeft(a,n) {

	return or(shl(a, n),(shr(a,(32 - n))));

    }



    function FF(a,b,c,d,x,s,ac) {

        a = a+F(b, c, d) + x + ac;

	a = rotateLeft(a, s);

	a = a+b;

	return a;

    }



    function GG(a,b,c,d,x,s,ac) {

	a = a+G(b, c, d) +x + ac;

	a = rotateLeft(a, s);

	a = a+b;

	return a;

    }



    function HH(a,b,c,d,x,s,ac) {

	a = a+H(b, c, d) + x + ac;

	a = rotateLeft(a, s);

	a = a+b;

	return a;

    }



    function II(a,b,c,d,x,s,ac) {

	a = a+I(b, c, d) + x + ac;

	a = rotateLeft(a, s);

	a = a+b;

	return a;

    }



    function transform(buf,offset) { 

	var a=0, b=0, c=0, d=0; 

	var x = transformBuffer;

	

	a = state[0];

	b = state[1];

	c = state[2];

	d = state[3];



	for (i = 0; i < 16; i++) {

	    x[i] = and(buf[i*4+offset],0xff);

	    for (j = 1; j < 4; j++) {

		x[i]+=shl(and(buf[i*4+j+offset] ,0xff), j * 8);

	    }

	}



	/* Round 1 */

	a = FF ( a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */

	d = FF ( d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */

	c = FF ( c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */

	b = FF ( b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */

	a = FF ( a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */

	d = FF ( d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */

	c = FF ( c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */

	b = FF ( b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */

	a = FF ( a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */

	d = FF ( d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */

	c = FF ( c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */

	b = FF ( b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */

	a = FF ( a, b, c, d, x[12], S11, 0x6b901122); /* 13 */

	d = FF ( d, a, b, c, x[13], S12, 0xfd987193); /* 14 */

	c = FF ( c, d, a, b, x[14], S13, 0xa679438e); /* 15 */

	b = FF ( b, c, d, a, x[15], S14, 0x49b40821); /* 16 */



	/* Round 2 */

	a = GG ( a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */

	d = GG ( d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */

	c = GG ( c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */

	b = GG ( b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */

	a = GG ( a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */

	d = GG ( d, a, b, c, x[10], S22,  0x2441453); /* 22 */

	c = GG ( c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */

	b = GG ( b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */

	a = GG ( a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */

	d = GG ( d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */

	c = GG ( c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */

	b = GG ( b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */

	a = GG ( a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */

	d = GG ( d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */

	c = GG ( c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */

	b = GG ( b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */



	/* Round 3 */

	a = HH ( a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */

	d = HH ( d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */

	c = HH ( c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */

	b = HH ( b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */

	a = HH ( a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */

	d = HH ( d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */

	c = HH ( c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */

	b = HH ( b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */

	a = HH ( a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */

	d = HH ( d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */

	c = HH ( c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */

	b = HH ( b, c, d, a, x[ 6], S34,  0x4881d05); /* 44 */

	a = HH ( a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */

	d = HH ( d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */

	c = HH ( c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */

	b = HH ( b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */



	/* Round 4 */

	a = II ( a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */

	d = II ( d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */

	c = II ( c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */

	b = II ( b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */

	a = II ( a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */

	d = II ( d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */

	c = II ( c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */

	b = II ( b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */

	a = II ( a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */

	d = II ( d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */

	c = II ( c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */

	b = II ( b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */

	a = II ( a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */

	d = II ( d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */

	c = II ( c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */

	b = II ( b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */



	state[0] +=a;

	state[1] +=b;

	state[2] +=c;

	state[3] +=d;



    }



    function init() {

	count[0]=count[1] = 0;

	state[0] = 0x67452301;

	state[1] = 0xefcdab89;

	state[2] = 0x98badcfe;

	state[3] = 0x10325476;

	for (i = 0; i < digestBits.length; i++)

	    digestBits[i] = 0;

    }



    function update(b) {

	var index,i;



	index = and(shr(count[0],3) , 0x3f);

	if (count[0]<0xffffffff-7)

	  count[0] += 8;

        else {

	  count[1]++;

	  count[0]-=0xffffffff+1;

          count[0]+=8;

        }

	buffer[index] = and(b,0xff);

	if (index  >= 63) {

	    transform(buffer, 0);

	}

    }



    function finish() {

	var bits = new array(8);

	var	padding;

	var	i=0, index=0, padLen=0;



	for (i = 0; i < 4; i++) {

	    bits[i] = and(shr(count[0],(i * 8)), 0xff);

	}

        for (i = 0; i < 4; i++) {

	    bits[i+4]=and(shr(count[1],(i * 8)), 0xff);

	}

	index = and(shr(count[0], 3) ,0x3f);

	padLen = (index < 56) ? (56 - index) : (120 - index);

	padding = new array(64); 

	padding[0] = 0x80;

        for (i=0;i<padLen;i++)

	  update(padding[i]);

        for (i=0;i<8;i++)

	  update(bits[i]);



	for (i = 0; i < 4; i++) {

	    for (j = 0; j < 4; j++) {

		digestBits[i*4+j] = and(shr(state[i], (j * 8)) , 0xff);

	    }

	} 

    }



/* End of the MD5 algorithm */



function hexa(n) {

 var hexa_h = "0123456789abcdef";

 var hexa_c="";

 var hexa_m=n;

 for (hexa_i=0;hexa_i<8;hexa_i++) {

   hexa_c=hexa_h.charAt(Math.abs(hexa_m)%16)+hexa_c;

   hexa_m=Math.floor(hexa_m/16);

 }

 return hexa_c;

}





var ascii="01234567890123456789012345678901" +

          " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ"+

          "[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";



function calcMD5(entree)

{

 var l,s,k,ka,kb,kc,kd;



 init();

 /*for (k=0;k<entree.length;k++) {

   l=entree.charAt(k);

   update(ascii.lastIndexOf(l));

 }*/

 for (k=0;k<entree.length;k++) {

   l=entree.charCodeAt(k);

   update(l);

 }



 finish();

 ka=kb=kc=kd=0;

 for (i=0;i<4;i++) ka+=shl(digestBits[15-i], (i*8));

 for (i=4;i<8;i++) kb+=shl(digestBits[15-i], ((i-4)*8));

 for (i=8;i<12;i++) kc+=shl(digestBits[15-i], ((i-8)*8));

 for (i=12;i<16;i++) kd+=shl(digestBits[15-i], ((i-12)*8));

 s=hexa(kd)+hexa(kc)+hexa(kb)+hexa(ka);

 return s;
}


function verfiMDP(){
var temp=tableau_message['mdp'];

		if($('#mdp2')[0].value!='' && $('#mdp')[0].value!=''){

		
			if($('#mdp')[0].value!=$('#mdp2')[0].value){

				
				var pseudomin = eval('traduction.langues.formulaire.mdpcorrespond.fr');

				tableau_message['mdp']='- '+pseudomin+'<br/><br/>';

			}else{	

				tableau_message['mdp']='';

			}

			var eprereguliere=new RegExp('^[a-zA-Z0-9]{5,}$');

			if( ($('#mdp')[0].value).match(eprereguliere)==null || ($('#mdp2')[0].value).match(eprereguliere)==null){

				var mdpmin = eval('traduction.langues.formulaire.mdpforme.fr');

				tableau_message['mdp']=tableau_message['mdp']+'- '+mdpmin+'<br/><br/>';

			}

		}

			
				
				var obj1 = $('#formMessage')[0];

				var totalMessage='';

				for (var keyVar in tableau_message){

 				

				var efface=1;

				if(tableau_message[keyVar]!='')

					{	
						
						$('#titre-erreur')[0].style.display='block';
						totalMessage += tableau_message[keyVar]+'<br/><br/>';
						
						efface=2;
					}

					

				}

				if(efface==1){
					$('#titre-erreur')[0].style.display='none';
					obj1.style.display='none';
				}
				obj1.innerHTML = totalMessage;

				if(temp!=tableau_message['mdp'] ){
					
					obj1.style.display='block';
					$($$('formMessage')).hide(1);
					$($$('formMessage')).slideDown(1000);

				}

		

		
}

function enleverArticle(idarticle){

	if(confirm('Etes-vous sûr de vouloir dépublier ce produit ?')){
		var testnom = new $.ajax({
	
			url:"squelettes/enleverarticle.php?idarticle="+idarticle,
			method: "get",
		
			success:function(transport){
				window.location.href=document.URL+"&var_mode=calcul";
			}
	

		});
	}
}

function supprimerAbonne(idcont){
	if(confirm('Etes-vous sûr de vouloir supprimer cet abonnement ?')){
		var supprAb = new $.ajax({
	
			url:"squelettes/suppr-abo.php?idcontact="+idcont,
			type: "get",
		
			success:function(transport){
				$('#ligne-'+idcont)[0].style.display='none';
				majpanthere();
				alert('Abonnement supprimé');
			}
	

		});
	}
}

function modifLien(idcont){
		descrip=$('#contenudesc')[0].value;
		var supprAb = new $.ajax({
	
			url:"squelettes/modif-lien.php",
			type: "post",
			data:{idcontact:idcont , desc:descrip},
			success:function(transport){
				alert('Modifications enregistrées');
			}
	

		});

}

