		var xhr_object=null;
		var xhr_url='test_mobi_ini.aspx';
		var xhr_url1='test_mobi.aspx';
		var nb_mobi;
		var num_mobi;
		var typ_mobi;
		var col_mobi;
		var tail_mobi;
		var etiq_mobi;
		var tra_mobi;
		var X_prec;
		var Y_prec;
		var numapp;
		var tem_rejouer;
		var temps_rappel;
		var tem_trajectoire;
		var date_rejouer;
		var par_etiq;
		var par_noupos;
		var par_trace;
		var ind_trace;
		var tem_grise;
		var tem_stop;
		
		function test_req() {
			var wboite;
			init_controles();
			xhr_object=new ActiveXObject('Microsoft.XMLHTTP');
			tem_stop=false;
			wboite=document.getElementById("Txt_Numobi");
			numapp=wboite.value;
			if (numapp=="") return;
			wboite=document.getElementById("Txt_rejouer");
			tem_rejouer=wboite.value;
			wboite=document.getElementById("Chk_trajectoire");
			tem_trajectoire=wboite.checked;
			temps_rappel=30000;
			if (tem_rejouer=="1") {
				affiche_infos_ini();
				temps_rappel=2000;
				}
			xhr_url=xhr_url;
			xhr_url1=xhr_url1;
			xhr_object.open('GET',xhr_url+'?mobi=1',false);
			xhr_object.setRequestHeader("Cache-Control","no-cache");		
			xhr_object.onreadystatechange = CallBackRequest;
			xhr_object.send(null);
		}

		function lance_appel_retour_infos()
		{
			xhr_object.open('GET',xhr_url+'?mobi=0',false);
			xhr_object.setRequestHeader("Cache-Control","no-cache");
			xhr_object.onreadystatechange = test_retour_infos;
			xhr_object.send(null);
		}
		
		function test_retour_infos()
		{
			if (xhr_object.readyState==4) 
			{
				//alert(xhr_object.responseText);
				if (xhr_object.responseText=="1")	return;
				if (xhr_object.responseText=="0")
				{
					setTimeout('lance_appel_retour_infos()',1000);
					return;
				}
				alert(xhr_object.responseText);
			}
		}
			
		function init_controles()
		{
			var rbtreel;
			var welem;
			welem=document.getElementById("Txt_Numobi");
			welem.style.visibility="hidden";
			welem=document.getElementById("Txt_rejouer");
			welem.style.visibility="hidden";
			rbtreel=document.getElementById("Rbt_treel");
			if (rbtreel.checked==true) {
				welem=document.getElementById("Tbx_Date_outer");
				welem.style.visibility="hidden";
				welem=document.getElementById("Tbx_Heure");
				welem.style.visibility="hidden";
				welem=document.getElementById("Btn_infos");
				welem.style.visibility="hidden";
				welem=document.getElementById("Label1");
				welem.style.visibility="hidden";
				welem=document.getElementById("Label2");
				welem.style.visibility="hidden";
				}
			else {
				welem=document.getElementById("Tbx_Date_outer");
				welem.style.visibility="visible";
				welem=document.getElementById("Tbx_Heure");
				welem.style.visibility="visible";
				welem=document.getElementById("Btn_infos");
				if (welem) 
				{
					if (donne_nb_mobsel()==1)  welem.style.visibility="visible";
					else		welem.style.visibility="hidden";
				}
				welem=document.getElementById("Label1");
				welem.style.visibility="visible";
				welem=document.getElementById("Label2");
				welem.style.visibility="visible";
				}
		}

		function affiche_infos_ini()
		{
			var lib1;
			var wtxt;
			var imag;
			var wstyl;
			lib1="<v:rect style='position:absolute; width: 100; height: 30'>";
			wtxt=document.createElement(lib1);
			wstyl=document.createElement("div");
			wstyl.appendChild(document.createTextNode(date_rejouer));
			imag=document.getElementById("Image1");
			wtxt.style.zIndex=imag.style.zIndex+200; 
			wtxt.style.posLeft=donne_x_local(200);
			wtxt.style.posTop=donne_y_local(-30);
			wtxt.style.visibility='hidden';
			document.body.appendChild(wtxt);
			wstyl.style.position='absolute';
			wstyl.style.zIndex=imag.style.zIndex+201; 
			wstyl.style.posLeft=donne_x_local(205);
			wstyl.style.posTop=donne_y_local(-20);
			wstyl.style.fontFamily='Arial';
			wstyl.style.fontSize="12px";
			wstyl.id="date_rej";
			document.body.appendChild(wstyl);
		}
		
		function affiche_infos()
		{
			var wstyl;
			wstyl=document.getElementById("date_rej");
			wstyl.innerText=date_rejouer;
		}
		
		function CallBackRequest()
		{
			if (xhr_object.readyState==4) 
			{
				creer_mobiles(xhr_object.responseText);
				if (par_trace>0) {
					ind_trace=0;
					setTimeout('appelle_trace()',100);
					}
				else	setTimeout('appelle_position()',500);
			}
		}

		function appelle_trace() {
		ind_trace++;
		if (ind_trace>nb_mobi)	{
			setTimeout('appelle_position()',500);
			return;
			}	
		xhr_object.open('GET',xhr_url1+'?trace='+ind_trace,false);
		xhr_object.setRequestHeader("Cache-Control","no-cache");
		xhr_object.onreadystatechange = RetourTrace;
		xhr_object.send(null);
		}

		function RetourTrace()
		{
		if (xhr_object.readyState==4) 
			{
			creer_debut_trace(xhr_object.responseText);
			setTimeout('appelle_trace()',100);
			}
		}
		
		function creer_debut_trace(wrep)
		{
			var nb_tra;
			var i;
			var wx;
			var wy;
			//alert(wrep);
			nb_tra=wrep.substring(0,2);
			for (i=0;i<nb_tra;i++) {
				wx=wrep.substring(2+i*8,6+i*8);
				wy=wrep.substring(6+i*8,10+i*8);
				if ((wx=="9999")||(wy=="9999")) {
					X_prec[ind_trace-1]=0;
					Y_prec[ind_trace-1]=0;
					}
				else creer_trace(ind_trace,wx,wy);
				}
		}

		function appelle_position() {
		//alert('appelle position');
		xhr_object.open('GET',xhr_url1+'?trace=0',false);
		xhr_object.setRequestHeader("Cache-Control","no-cache");
		xhr_object.onreadystatechange = RetourPosition;
		xhr_object.send(null);
		}
		
		function RetourPosition()
		{
		if (xhr_object.readyState==4) 
			{
			if (tem_stop==true) return;
			positionner_mobiles(xhr_object.responseText);
			setTimeout('appelle_position()',temps_rappel);
			}
		}
		
		function positionner_mobiles(wrep)
		{
			var i;
			var wschaine;
			var wnum;
			var wx;
			var wy;
			var mobile;
			var etimobi;
			var wid;
			var wvit;
			//alert(wrep);
			if (tem_rejouer=="1") {
				date_rejouer=wrep.substring(0,19);
				affiche_infos();
				wrep=wrep.substring(19);
				}
			for (i=0;i<nb_mobi;i++) 
			{
				wschaine=wrep.substring(i*16,(i+1)*16);
				wnum=wschaine.substring(0,2);
				wx=wschaine.substring(2,6);
				wy=wschaine.substring(6,10);
				tem_grise=wschaine.substring(10,11);
				wvit=wschaine.substring(11,15);
				if ((wx=="9999")||(wy=="9999")) 
				{
					wid="Mobile"+wnum;
					mobile=document.getElementById(wid);
					mobile.style.visibility='hidden';
					wid="Etimobi"+wnum;
					etimobi=document.getElementById(wid);
					etimobi.style.visibility='hidden';
					X_prec[wnum]=0;
					Y_prec[wnum]=0;
				}
				else
				{
					if ((wx!="9998")&&(wy!="9998")) 
					{
						positionne_un_mobile(wnum,wx,wy,wvit);
						if (tem_trajectoire==true) creer_trace(wnum,wx,wy);
					}
				}
			}
		}
		
		function creer_trace(wnum,wx,wy)
		{
			var tracre;
			var wtrace;
			var imag;
			var wfrom;
			var wto;
			var ind;
			var i;
			var id_tra;
			var wid;
			
			for (i=0;i<nb_mobi;i++) {
				if (num_mobi[i]==wnum){
					ind=i;
					break;
					}
				}
			if ((X_prec[ind]==0)&&(Y_prec[ind]==0))	{
				X_prec[ind]=wx;
				Y_prec[ind]=wy;
				return;
				}
			wfrom="'" + donne_x_local(X_prec[ind]) + " " + donne_y_local(Y_prec[ind])+ "'";
			wto="'" + donne_x_local(wx) + " " + donne_y_local(wy)+ "'";
			tracre="<v:line from=" + wfrom + " to=" + wto + " ";
			tracre=tracre+"strokeweight='2' strokecolor='#" + col_mobi[ind] + "'/>";
			//alert(tracre);
			wtrace=document.createElement(tracre);
			wtrace.style.position='absolute';
			wtrace.style.posTop=0;
			wtrace.style.posLeft=0;
			imag=document.getElementById("Image1");
			wtrace.style.zIndex=imag.style.zIndex+199;
			if (par_trace>0) {
				if (tra_mobi[ind].length==0) id_tra=0;
				else 	id_tra=tra_mobi[ind][tra_mobi[ind].length-1];
				id_tra++;
				tra_mobi[ind].push(id_tra);
				wtrace.id="MPJtra"+ind+"_"+id_tra;
				//alert("créer "+wtrace.id);
				}				
			document.body.appendChild(wtrace);
			X_prec[ind]=wx;
			Y_prec[ind]=wy;
			if (par_trace>0) {
				if (tra_mobi[ind].length>par_trace) {
					id_tra=tra_mobi[ind].shift();
					wid="MPJtra"+ind+"_"+id_tra;
					//alert("sup "+wid);
					wtrace=document.getElementById(wid);
					document.body.removeChild(wtrace);
					}
				}
		}
		
		function rtrim(stringToTrim) {
			return stringToTrim.replace(/\s+$/,"");
		}

		
		function positionne_un_mobile(wnum,wx,wy,wvit)
		{
			var mobile;
			var etimobi;
			var wid;
			var i;
			var ind;
			
			for (i=0;i<nb_mobi;i++) {
				if (num_mobi[i]==wnum){
					ind=i;
					break;
					}
				}
			wid="Mobile"+wnum;
			mobile=document.getElementById(wid);
			if (tem_grise=="0") 	mobile.style.visibility='visible';
			else	mobile.style.visibility='hidden';
			mobile.style.posLeft=donne_x_local(wx);
			mobile.style.posTop=donne_y_local(wy);
			wid="Mobile"+wnum+"G";
			mobile=document.getElementById(wid);
			if (tem_grise=="1") 	mobile.style.visibility='visible';
			else	mobile.style.visibility='hidden';
			mobile.style.posLeft=donne_x_local(wx);
			mobile.style.posTop=donne_y_local(wy);
			wid="Etimobi"+wnum;
			etimobi=document.getElementById(wid);
			etimobi.style.visibility='visible';
			if (par_etiq=='0') etimobi.style.visibility='hidden';
			etimobi.style.posLeft=donne_x_local(wx)+25;
			etimobi.style.posTop=donne_y_local(wy);
			etimobi.innerText="  "+rtrim(etiq_mobi[ind]);
			if (par_etiq=='2') etimobi.innerText="  "+rtrim(etiq_mobi[ind])+' ('+parseInt(wvit)+'Km/h)';
		}
		
		function donne_x_local(wx)
		{
			var imag;
			var x_local;
			imag=document.getElementById("MapControl1");
			x_local=parseInt(wx,10)+imag.style.posLeft;
			//alert(x_local);
			return(x_local);
		}
		
		function donne_y_local(wy)
		{
			var imag;
			var y_local;
			imag=document.getElementById("MapControl1");
			y_local=parseInt(wy,10)+imag.style.posTop;
			//alert(y_local);
			return(y_local);
		}
						
		function creer_mobiles(wrep) 
		{
			var i;
			var wschaine;
			//alert(wrep);
			par_etiq=wrep.substring(0,1);
			par_noupos=wrep.substring(1,3);
			if (tem_rejouer=="1") {
				temps_rappel=par_noupos*1000;
				}			
			par_trace=wrep.substring(3,5);
			wrep=wrep.substring(5);
			nb_mobi=wrep.length/31;
			num_mobi=new Array(nb_mobi);
			typ_mobi=new Array(nb_mobi);
			col_mobi=new Array(nb_mobi);
			tail_mobi=new Array(nb_mobi);
			etiq_mobi=new Array(nb_mobi);
			X_prec=new Array(nb_mobi);
			Y_prec=new Array(nb_mobi);
			if (par_trace>0)	{
				tra_mobi = new Array(nb_mobi);
				for (i=0;i<nb_mobi;i++) {
					tra_mobi[i]=new Array();
					}
				}
			for (i=0;i<nb_mobi;i++) 
			{
				wschaine=wrep.substring(i*31,(i+1)*31);
				num_mobi[i]=wschaine.substring(0,2);
				typ_mobi[i]=wschaine.substring(2,3);
				col_mobi[i]=wschaine.substring(3,9);
				tail_mobi[i]=wschaine.substring(9,11);
				etiq_mobi[i]=wschaine.substring(11,31);
				X_prec[i]=0;
				Y_prec[i]=0;
			}
			EnableVML();
			for (i=0;i<nb_mobi;i++) 
			{
				creer_un_mobile(i);
			}
		}
		
		function creer_un_mobile(imob)
		{
			creer_cercle(imob);
		}				
		
		function EnableVML()
		{
			document.namespaces.add("v", "urn:schemas-microsoft-com:vml");
			if(document.styleSheets.length < 1)
			{
				var oStyleEl = document.createElement("style");
				document.body.appendChild(oStyleEl);
			}
			document.styleSheets.item(0).addRule("v\\:*", "behavior:url(#default#VML)");
		}
		
		function creer_cercle(imob)
		{
		var circle;
		var imag;
		var chcre;
		var eticre;
		var txtcre;
		var etimobi;
		imag=document.getElementById("Image1");
		//chcre="<v:oval fillcolor='#" + col_mobi[imob] + "'/>";
		chcre="<v:image src='./mobiles/mobi_" + typ_mobi[imob] + "_" + col_mobi[imob] +".bmp' />";
		//alert(chcre);
		circle=document.createElement(chcre);
		circle.style.position='absolute';
		circle.style.visibility='hidden';
		circle.style.width=tail_mobi[imob];
		circle.style.height=tail_mobi[imob];
		circle.style.zIndex=imag.style.zIndex+200;
		circle.id="Mobile" + num_mobi[imob];
		circle.chromakey='white';
		document.body.appendChild(circle);
		chcre="<v:image src='./mobiles/mobi_" + typ_mobi[imob] + "_grise.bmp' />";
		circle=document.createElement(chcre);
		circle.style.position='absolute';
		circle.style.visibility='hidden';
		circle.style.width=tail_mobi[imob];
		circle.style.height=tail_mobi[imob];
		circle.style.zIndex=imag.style.zIndex+200;
		circle.id="Mobile" + num_mobi[imob] +"G";
		circle.chromakey='white';
		document.body.appendChild(circle);
		eticre="<v:rect fill='false' />";
		etimobi=document.createElement(eticre);
		etimobi.style.position='absolute';
		etimobi.style.visibility='hidden';
		etimobi.style.width=tail_mobi[imob]*6;
		if (par_etiq=='2') etimobi.style.width=tail_mobi[imob]*8;
		etimobi.style.height=12;
		etimobi.style.zIndex=imag.style.zIndex+200;
		etimobi.id="Etimobi"+num_mobi[imob];
		etimobi.style.fontFamily='Arial narrow';
		etimobi.style.fontSize='10px';
		document.body.appendChild(etimobi);
		}
		
		function stop_appel()
		{
		tem_stop=true;
		//alert("stop");
		}
		
		var oldOnLoad;
		oldOnLoad = window.onload;
		if (typeof window.onload != 'function') 
		{
			window.onload = function() 
			{
				test_req();
			};
		} 
		else 
		{
			window.onload = function() 
			{
				oldOnLoad();
				test_req();
			};
		}
		

		