encours=0;

urls_a_precharger = new Array;
etat_traitement = new Array;

haut_pile=0;
max_threads_charge=3;
max_essai=2;

function ajoute_url_pile(url)
{
	urls_a_precharger[haut_pile]=url;
	etat_traitement[haut_pile]='pasfait';
	haut_pile++;
	if (encours<max_threads_charge) precharge_video(cherche_pasfait(), 0);
}

function cherche_pasfait()
{
	var compteur=0;
	
	while (compteur<haut_pile)
	{
		if (etat_traitement[compteur]=='pasfait') return compteur;
		compteur++;
	}

	return (-1);
}


function compte_nonfini()
{
	var compteur=0;
	var retour=0;

	while (compteur<haut_pile)
	{
		if (etat_traitement[compteur]!='fait') retour++;
		//console.log(compteur+";"+etat_traitement[compteur]);
		compteur++;
	}

	return retour;
}

function precharge_video(id, essai)
{
	var xhr;
	try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
	catch (e)
	{
		try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
			  catch (e2)
			  {
			    try {  xhr = new XMLHttpRequest();     }
			    catch (e3) {  xhr = false;   }
			  }
		      }
		      
		      xhr.onreadystatechange  = function()
		      {
			  if(xhr.readyState  == 4)
			  {
				encours--;
				prochain_id=cherche_pasfait();
				//console.log(xhr.status);
				if(xhr.status  == 200)
				    {
					etat_traitement[id]='fait';
					if (prochain_id!=-1)
						 precharge_video(prochain_id, 0); 
				    }
				else
					if (essai<max_essai) 
						precharge_video(id, essai+1);
					else
					    {
						etat_traitement[id]='fait';
						if (prochain_id!=-1)
							 precharge_video(prochain_id, 0); 
					    }
				if (compte_nonfini()>0) 
				{
					msgpcent='chargement mini vid&eacute;os LSF: '+Math.round((((haut_pile-1)-compte_nonfini())*100)/(haut_pile-1))+'%';
					if (document.getElementById('compte_charge_vid')!=null) document.getElementById('compte_charge_vid').innerHTML=msgpcent;
					if (document.getElementById('compte_charge_vid_survol')!=null) document.getElementById('compte_charge_vid_survol').innerHTML=msgpcent;
				}
				else 
				{
					if (document.getElementById('compte_charge_vid')!=null) document.getElementById('compte_charge_vid').innerHTML='';
					if (document.getElementById('compte_charge_vid_survol')!=null) document.getElementById('compte_charge_vid_survol').innerHTML='';
				}
			  }
		      };
	

		    encours++;
		    etat_traitement[id]='encours';
		    //console.log('th_actifs='+encours+'; essai='+essai+'; url='+urls_a_precharger[id]+'; id='+id+'; haut_pile='+haut_pile+'; nf='+compte_nonfini());
		    xhr.open( "GET", urls_a_precharger[id],  true); 

		    xhr.send(null);
		  }


