// Appel une page et evalue le retour comme étant du javascript
function ajax_GET2(page_php, args) {
	var xhr_object = null;	
	
	if(window.XMLHttpRequest) {// Firefox 
		xhr_object = new XMLHttpRequest();
	} else if(window.ActiveXObject) {// Internet Explorer 
		try {
			xhr_object = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
		}
	} else { // XMLHttpRequest non supporté par le navigateur 		
		return false;
	}	
	
	xhr_object.onreadystatechange = function () {
		//alert (xhr_object.readyState);
		
		if(xhr_object.readyState == 4) {
			//alert ("#5");
			eval(xhr_object.responseText);
		}
	}
	
	//xhr_object.open("POST", page_php, true);		
	xhr_object.open("POST", page_php, true);
	xhr_object.setRequestHeader("Pragma","no-cache");
	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	//if(!document.all) xhr_object.overrideMimeType('text/html; charset=ISO-8859-15');//fonctionne mal avec IE7 
	//alert(args);
	xhr_object.send(args);
	
	
	return true;
}

//Démarre l'upload
upload_start = function(form) {
	IDProgress = Math.floor(Math.random()*1000000);
	form.APC_UPLOAD_PROGRESS.value = IDProgress;
	
	form.submit();
	
	form.style.display='none';
	document.getElementById('upload_progression').style.display='block';
	
	upload_progress(IDProgress, true);
	
	time = new Date();
	timeStart = time.getTime();
}


// Fonction appelée toutes les secondes
upload_progress = function(IDProgress, upload_just_started) {
	load_TPL('toolzikweb/include/upload_state', 'eval', false, 'IDProgress='+IDProgress+'&upload_just_started='+upload_just_started);	
}
 
// Fonction permettant la mise à jour de la barre de progression. Appelée par upload_state.php
// percent : pourcentage d'upload
// current : nb d'octects uploadé
// total : nb d'octets total
// IDProgress : id unique d'upload utilisé par le module APC
upload_progress_aux = function(percent, current, total, IDProgress) {
	if(percent < 99){
		//
		// Calcul de la vitesse moyenne de transfers depuis le début de l'upload
		//
		time = new Date();
		timeSinceStart = time.getTime() - timeStart;	//Ms écoulées depuis le début de l'upload
		speed = (current / 1024) / (timeSinceStart / 1000); //Nb moyen de Ko par seconde depuis le début de l'upload
		document.getElementById('upload_speed').innerHTML = Math.round(speed)+"Ko/s";
		
		//
		// Calcul du temps restant estimé
		//
		timeUntilEnd = (timeSinceStart / current) * total;
		timeUntilEnd-= timeSinceStart;
		document.getElementById('upload_timeUntilEnd').innerHTML = "Temps restant estimé : " + upload_time_transform(timeUntilEnd);
		
		//
		// Fait avancé la progress bar
		//
		document.getElementById('upload_progression_percent').innerHTML = "Envoi en cours..."+ percent+"%";
		document.getElementById('upload_progression_bar').style.paddingRight = (Math.floor(220-(percent*2.2)) < 1) ? 0 : (220-(percent*2.2))+"px";
		document.getElementById('upload_progression_bar').style.width = Math.floor(220-( 220-(percent*2.2)))+"px";
		if (total) {
			setTimeout("upload_progress("+IDProgress+",false)",1000);
		} else {
			setTimeout("upload_progress("+IDProgress+",true)",1000);
		}
	} else {
		if(document.getElementById("upload_progression_percent")){
			document.getElementById('upload_progression_percent').innerHTML = "Finalisation...";
		}
	}
}

// Transforme un nombre de millisecondes en texte du type DDjHHhMMmSSs
upload_time_transform = function(nb_ms) {
	nb_s = nb_ms / 1000;
	Days = Math.floor(nb_s/3600/24);
	
	nb_s = nb_s % (3600*24);
	Hours = Math.floor(nb_s / 3600);
	
	nb_s = nb_s % 3600;
	Mins = Math.floor(nb_s/60);
	
	nb_s = nb_s % 60
	Secs = Math.floor(nb_s);
	
	Mins = Mins < 10 ? "0"+Mins : Mins;
	Secs = Secs < 10 ? "0"+Secs : Secs;

	return ((Days ? Days + 'j' : '') +
			(Hours ? Hours + 'h': '') +
			(Mins ? Mins + 'mn' : '') +
			(Secs ? Secs + 's' : ''));
}