function getXHR() {
	var xhr = null;
  
	if(window.XMLHttpRequest || window.ActiveXObject) {
		if(window.ActiveXObject) {
			try {
				xhr = new ActiveXObject('Msxml2.XMLHTTP');
			} catch(e) {
				xhr = new ActiveXObject('Microsoft.XMLHTTP');
			}
		} else {
			xhr = new XMLHttpRequest();
		}
 
	} else {
		return null;
	}

	return xhr;
}

function verifUpload() {
	xhr = getXHR();

	if(xhr && xhr.readyState != 0) {
		xhr.abort();
	}
  
	var keyFile = document.getElementById('keyFile').value;
  
	xhr.open('POST', 'verif_telechargement.php', true);
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xhr.send('keyFile='+ keyFile);
  
	xhr.onreadystatechange = function(){
		if(xhr.readyState == 4) {
			if(xhr.responseText != 'false') {
				var response = eval('('+xhr.responseText+')');
        
				document.getElementById('fileName').innerHTML = response.filename;
				document.getElementById('progress').innerHTML = Math.round(response.current / response.total * 100) + ' %';
				document.getElementById('progress').style.display = 'block';
				document.getElementById('progress').style.width = (response.current / response.total * 100) + '%';
				document.getElementById('current').innerHTML = response.current;
				document.getElementById('total').innerHTML = response.total;
      
				if(response.done != 1) {
					verifUpload();
				}
			} else {
				verifUpload();
			}
		}
	};
}

function verifUpload2() {
  
	var url = "verif_telechargement.php";
	var keyFile = $('#keyFile').val();
	var data = { keyFile: keyFile };
 	
	$.post( url, data, function(data, textStatus )  {
		if( textStatus == "success" ) {
			if( data != 'false') {

				$('#fileName').html( data.filename );
				$('#progress').html( Math.round(data.current / data.total * 100) + '%' );

				if(data.done != 1) {
					verifUpload();
				}
			} else {
				verifUpload();
			}
		} else {
			verifUpload();
		}
	}, "json" ); 
}

function setupDocumentAndForm( form_elt ) {
	var doc = null;
	if( form_elt ) {
		doc = $("body");
		if( doc ) {
			doc.append('<iframe id="uploadFrame" name="uploadFrame" style="display:none"></iframe>');
			$("#uploadFrame").load( printPage );
		}
		$( form_elt ).attr( "target", "uploadFrame" );
		$( form_elt ).prepend('<input type="hidden" name="output_format" value="JSON" />');
	}
	return true;
}

// Cf : http://xkr.us/articles/dom/iframe-document/
function iframeContent( frame_name ) {
    var oIframe = document.getElementById( frame_name );
    var oDoc = oIframe.contentWindow || oIframe.contentDocument;
    if (oDoc.document) {
        oDoc = oDoc.document;
    }
    return oDoc;
}

function printPage() {
	var elt_uploadFrame = null, dest=null, node=null, error=true;;

	elt_uploadFrame = iframeContent("uploadFrame");
	if( elt_uploadFrame ) {

			var json_output = $( elt_uploadFrame ).text();
			if( (json_output.indexOf( "{" ) <= 5 ) && (json_output.lastIndexOf( "}" ) == json_output.indexOf( "}" ) ) ) {
				var arr = eval( "(" + json_output + ")" );
				error = false;
				if( (arr.location != null) && (arr.location != "") ) {
					window.location.replace( arr.location );
				} else {
					$("#btn_ajouter").css( "display", null );
					$("#pic_wait").css( "display", "none" );
					$("#btn_ajouter").attr( "disabled", false );
					alert( arr.message );
				}
			} else {
				alert( json_output );
			}
	} else {
		alert("uploadFrame not found !");
	}

	if( error ) {
		alert( "Une erreur est survenue..." );
	}
}

function initUpload( form_elt ) {
	setupDocumentAndForm( form_elt );
	$("#btn_ajouter").attr( "disabled", true );
	$("#btn_ajouter").css( "display", "none" );
	$("#pic_wait").css( "display", "block" );
	$("#progression_telechargement").show();
	verifUpload();
}
