var upload_url  = '';
var upload_pars = '';
var upload_id   = '';
// record last time and last amount to help record upload rate
var last_time = 0;
var last_amt = 0;
var upload_fin_js = '';
var fails_in_a_row = 0;
function init_progress_bar(server, id, success_js)
{
	upload_fin_js = success_js;
	
	upload_url  = site_url + '/scripts/retrieve_upload_progress.php';
	upload_pars = 'id=' + id + '&server=' + server;

	setTimeout("click_progress_bar()", 250);
}

function click_progress_bar()
{
	var pars = upload_pars + '&last_time=' + last_time + '&last_amt=' + last_amt;
	new Ajax.Request(
		upload_url,
		{
			method: 'post',
			parameters: pars,
			onComplete: update_progress_bar
		});
}

function update_progress_bar(transport)
{
//	alert('tp: '+transport.responseText);
	if(transport == null)
	{
		post_new_event('error', 'Could not create progress meter.');
		return;
	}
	var response = transport.responseText.replace("while(1);", "").evalJSON();
	var amount_uploaded  = response.amount_uploaded;
	var size             = response.size;
	var percent_uploaded = response.percent_uploaded;
	var speed            = response.speed;
	var eta              = response.eta;
	// helps record download rate
	last_time            = response.last_time;
	last_amt             = response.last_amt;

	if(last_time < 0)
	{
		last_time = 0;
	}

	if(amount_uploaded == 'no_stat')
	{
		amount_uploaded = 0;
		fails_in_a_row++;
	}
	else
	{
		fails_in_a_row = 0;
	}
	if(fails_in_a_row >= 3)
	{
		$('upload_progress').style.height = '25px';
		$('upload_progress').style.textAlign = 'center';
		$('upload_progress').innerHTML = 'Upload failed: File exceeds maximum size.';
		$('cancel_upload').style.display = 'none';
		$('upload_again').style.display = '';
		location.href=location.href;
	}

	if(amount_uploaded == 'fin')
	{
		$('upload_progress').style.height = '25px';
		$('upload_progress').style.textAlign = 'center';
		$('upload_progress').innerHTML = 'Upload Complete!';
		$('cancel_upload').style.display = 'none';
		$('upload_again').style.display = '';
		eval(upload_fin_js);
	}
	else if(amount_uploaded == 'too_big')
	{
		$('upload_progress').style.height = '25px';
		$('upload_progress').style.textAlign = 'center';
		$('upload_progress').innerHTML = 'Upload failed: File exceeds maximum size.';
		$('cancel_upload').style.display = 'none';
		$('upload_again').style.display = '';
	}
	else if(amount_uploaded == 'no_file')
	{
		$('upload_progress').style.height = '25px';
		$('upload_progress').style.textAlign = 'center';
		$('upload_progress').innerHTML = 'Upload failed: No file uploaded.';
		$('cancel_upload').style.display = 'none';
		$('upload_again').style.display = '';
	}
	else if(amount_uploaded == 'no_space')
	{
		$('upload_progress').style.height = '25px';
		$('upload_progress').style.textAlign = 'center';
		$('upload_progress').innerHTML = 'Upload failed: File too large. Not enough space available.';
		$('cancel_upload').style.display = 'none';
		$('upload_again').style.display = '';
	}
	else if(amount_uploaded == 'not_image')
	{
		$('upload_progress').style.height = '25px';
		$('upload_progress').style.textAlign = 'center';
		$('upload_progress').innerHTML = 'Upload failed: File was not an image file.';
		$('cancel_upload').style.display = 'none';
		$('upload_again').style.display = '';
	}
	else
	{
		$('upload_progress').style.height    = '50px';
		$('upload_progress').style.textAlign = 'left';
		if(parseFloat(size) > 0 || $('upload_progress').innerHTML == '')
		{
			var margin = 10;
			var width = $('prompt_window').getWidth()-20-4-margin;
			var block_width = 1;
			var total_blocks = width/block_width;
			var bar = '<div style="margin-top: 5px; margin-left: '+(margin/2)+'px; padding: 1px; border: 1px solid #000000; background: #FFFFFF; overflow: hidden; height: 14px; width: '+width+'px;">';
			var num_blocks = parseInt(percent_uploaded/(100/total_blocks));
			if(!num_blocks || num_blocks == null || num_blocks < 1)
			{
				num_blocks = 1;
			}
			for(var i = 0; i < num_blocks; i++)
			{
				bar += '<div style="float: left; width: '+block_width+'px; height: 14px; background: #4d83ad;"></div>';
			}
			bar += '<div class="spacer">&nbsp;</div></div><div style="margin-left: '+(margin/2)+'px; overflow: hidden; width: '+width+'px; font-size: 10px;">';
			bar += amount_uploaded + '/' + size + '(' + percent_uploaded + '%) @ ' + speed + ' ETA: ' + eta;
			bar += '</div>';

			$('upload_progress').innerHTML = bar;
		}
		setTimeout("click_progress_bar()", 250);
	}
}