	var nbConnectes = 0;
	var tabConnectes = new Array();
	var firstTime = true;
	var idConfGlobal = '';
	var complet = false;
	var firstTime2 = true;
	var request1 = '';
	var request2 = '';
	var imageHpOn 		= ROOT_PATH + DOSSIER_IMAGES + "hp_on.png";
	var imageHpOff 		= ROOT_PATH + DOSSIER_IMAGES + "hp_off.png";
	var imageRaccroche 	= ROOT_PATH + DOSSIER_IMAGES + "raccroche.png";
	
	function getModeParticipant(mode) {
		if (mode=="0") return 'Participant';
		if (mode=="1") return 'Organisateur';
		if (mode=="2") return 'Ecoute seule';
	}
	
	function majParticipants(idConf) {
		if (idConfGlobal == '') {
			idConfGlobal = idConf;
		}
		
		var request = new Request.JSON({
			url: fichierPilotageConnectesPHP, 
			onFailure : function (){
				request.cancel()
			},
			onComplete: function(jsonObj) {
				complet = true;
				var divPilot = $('pilote');
				divPilot.set('text', '');
				
				if ($('participants') != null) {
					$('participants').destroy();
				}
				
				var uneLigne = '';
				var connectingP = jsonObj.connectes;
				var table = new Element('table', {'id':'participants', 'cellspacing':'0'});
				var tbody = new Element('tbody');
				
				if (connectingP.length > 0) {
					var pNbConnecte = new Element('p', {'class': 'nb_part'}).set('text', 'Il y a ' + connectingP.length + ' participants à la conférence en ce moment.').inject(divPilot);
					new Element('br').inject(divPilot);
					
					var aCouperMicroTous = new Element('a',{'href':'#'}).set('text', 'Couper le micro de tous les participants').inject(divPilot);
					var urlCouperAll = fichierPilotageCommandesPHP + '?action=couperAll&lineNo=' + idConfGlobal;
					aCouperMicroTous.addEvent('click',function(e){
						e = new Event(e).stop();
						new Request.HTML({
							url: urlCouperAll,
							method: 'get',
							onComplete: function(){
								$('lastAct').innerHTML += getHeureString() + ' - On coupe le micro de tous les participants<br/>>> ';
							}
						}).get();
					});
					new Element('br').inject(divPilot);
					
					var aReactiverMicroTous = new Element('a',{'href':'#'}).set('text', 'Réactiver le micro de tous les participants').inject(divPilot);
					var urlfullDuplexAll = fichierPilotageCommandesPHP + '?action=fullDuplexAll&lineNo=' + idConfGlobal;
					aReactiverMicroTous.addEvent('click',function(e){
						e = new Event(e).stop();
							new Request.HTML({
								url: urlfullDuplexAll, 
								method: 'get',
								onComplete: function(){
									$('lastAct').innerHTML += getHeureString() + ' - On reactive le micro de tous les participants<br/>>> ';
								}
						}).get();
					});
					new Element('br').inject(divPilot);
					
					var aRaccrocheTous = new Element('a',{'href':'#'}).set('text', 'Raccrocher tous les participants').inject(divPilot);
					var urlRaccrocheAll = fichierPilotageCommandesPHP + '?action=raccrocheAll&lineNo=' + idConfGlobal;
					aRaccrocheTous.addEvent('click',function(e) {
						e = new Event(e).stop();
							new Request.HTML({
								url: urlRaccrocheAll, 
								method: 'get',
								onComplete: function(){
									$('lastAct').innerHTML += getHeureString() + ' - On raccroche tous les participants<br/>>> ';
								}
						}).get();
					});
					new Element('br').inject(divPilot);
					new Element('br').inject(divPilot);
					
					var tr2 = new Element('tr').inject(tbody);
					var th3 = new Element('th',{'colspan':'2', 'class':'commandes'}).set('text', 'Commandes / Etat').inject(tr2);
					var th4 = new Element('th').set('text', 'Durée').inject(tr2);
					var th5 = new Element('th').set('text', 'Mode').inject(tr2);
					var th6 = new Element('th').set('text', 'Participants').inject(tr2);
					
					connectingP.each(function(unCon) {
						var callerId = "";
						if (unCon.callerId == '') {
							callerId = 'Numéro caché';
						}
						else if (unCon.callerId.charAt(0) == "0" || unCon.callerId.charAt(0) == "+" || unCon.callerId.length >= 10) {
							callerId = unCon.callerId;
						}
						else {
							callerId = '0' + unCon.callerId;
						}
						
						if (firstTime) {
							tabConnectes[unCon.lineNo] = unCon.callerId;
							nbConnectes++;
						}
						else {
							if (!tabConnectes.contains(unCon.callerId)) {
								tabConnectes[unCon.lineNo] = unCon.callerId;
								nbConnectes++;
								$('lastAct').innerHTML += getHeureString() + ' - Le participant ' + callerId + ' vient de se connecter.<br/>>> ';
							}
						}
						
						var tr7 = new Element('tr').inject(tbody);
						
						var td8 = new Element('td', {'class':'lien_micro'}).inject(tr7);
						if (unCon.etat == 1) {
							 var urlHP = fichierPilotageCommandesPHP + '?action=hp_off&lineNo=' + unCon.lineNo;
						}
						if (unCon.etat == 2) {
							var urlHP = fichierPilotageCommandesPHP + '?action=hp_on&lineNo=' + unCon.lineNo;
						}
						var a1 = new Element('a',{'href':urlHP}).inject(td8);
						a1.addEvent('click',function(e){
							e = new Event(e).stop();
							if (unCon.mode != 1) { // le participant n'est pas master
								new Request.HTML({
									url: urlHP,
									method: 'get',
									onComplete: function() {
										if (unCon.etat != 1) {
											$('lastAct').innerHTML += getHeureString() + ' - Le participant ' + callerId + 
											' peut écouter et parler.<br/>>> ';
										}
										else {
											$('lastAct').innerHTML += getHeureString() + ' - Le particpant ' + callerId + 
											' peut seulement écouter.<br/>>> ';
										}
									}
								}).get();
							}
							else {
								$('lastAct').innerHTML += getHeureString() + ' - Action impossible sur l\'organisateur.<br/>>> ';
							}
						});
						if(unCon.etat == 1){
							 var img = new Element('img',{'src': imageHpOn}).inject(a1);
						}
						else {
							var img = new Element('img',{'src': imageHpOff}).inject(a1);
						}
						
						var td9 = new Element('td', {'class':'lien_raccroche'}).inject(tr7);
						var urlRacc = fichierPilotageCommandesPHP + '?action=raccroche&lineNo=' + unCon.lineNo;
						var a4 = new Element('a',{'href':urlRacc}).inject(td9);
						var img2 = new Element('img',{'src': imageRaccroche}).inject(a4);
						a4.addEvent('click',function(e){
							e = new Event(e).stop();
							new Request.HTML({
								url: urlRacc,
								method: 'get',
								onComplete:function(){
									$('lastAct').innerHTML += getHeureString() + ' - On raccroche le participant ' + callerId + '.<br/>>> ';
								}
							}).get();
						});
						
						var dateLocale = new Date();
						var indice = unCon.callStart.indexOf(' ',0);
						var heure = unCon.callStart.substr(indice,9);
						var date = unCon.callStart.substring(0,indice);
						var y = date.substring(0,4);
						var m = date.substring(5,7);
						var d = date.substring(8,10);
						var h = heure.substring(1,3)
						var i = heure.substring(4,6)
						var s = heure.substring(7,9);
						
						var dateConf = new Date(y,m-1,d,h,i,s);
						var diff = dateLocale.getTime() - dateConf.getTime();
						var tps = convertTime(Math.floor(diff/1000));
						
						var td10 = new Element('td', {'class':'duree'}).set('text', tps).inject(tr7);
						var td11 = new Element('td', {'class':'statut'}).set('text', getModeParticipant(unCon.mode)).inject(tr7);
						var td12 = new Element('td', {'class':'num_tel'}).set('text', callerId).inject(tr7);
					});
					
					if ($('participants')) {
						$('participants').destroy();
					}
					
					var br1 = new Element('br').inject(divPilot);
				}
				else {
					var tr1 = new Element('tr').inject(tbody);
					var td2 = new Element('td', {'colspan':'4', 'class': 'no_part'}).set('text', 
						'Aucun participant pour le moment.').inject(tr1);
				}
				
				firstTime = false;
				
				tbody.inject(table);
				table.inject(divPilot);
				
				tabConnectes.each(function(item,index){
					var encoreLa = false;
					connectingP.each(function(unCon) {
						fin:
						if(item == unCon.callerId) {
							encoreLa = true;
							break fin;
						}
					})
						
					if (!encoreLa && item && tabConnectes.length != connectingP.length) {
						if (item.charAt(0) == "0" || item.charAt(0) == "+") {
							caller = item;
						}
						else {
							caller = '0'+item;
						}
						$('lastAct').innerHTML += getHeureString() + ' - Le participant ' + caller + ' a quitté la conférence.<br/>>> ';
						tabConnectes[index] = "";
					}
				});
			}
		});
		
		if (firstTime2) {
			firstTime2 = false;
			request1 = request;
			request.send();
		}
		else {
			if (request1.running) {
				request1.cancel();
			}
			else {
				request.send();
				request1 = request;
			}
		}
		
		majDate();
	}
	