var max_upload_size = 1024*1024*1024 * 2;

var starttime=new Date();
var start_upload = 0;
var http_request;
var progress_bar_width = 0;

var host, session, random;

var async = FF = /a/[-1] == 'a'; // If browser - Mozilla Firefox

function startUpload (localHost, localSession, localRandom, formObj) {



   for (var i=0;i<document.simpleUploadForm.length;i++)
    {
		 current = document.simpleUploadForm.elements[i];
		 if (current.type == 'file' && current.value == '')
		 {
			showMessage ("Выберите файл :)", "err");
			return false;
		 }
    }
	
	showMessage ("Идет закачка...", "ok");

	starttime = new Date();
	host = localHost;
	session = localSession;
	random = localRandom;

	setTimeout('makeRequest()', 1000);

	return true;
}

function makeRequest () {
	var params = 'act=progress&host='+host+'&session='+session+'&rnd='+random;
	$.ajax({type: 'POST', url: '/ajax/upload', async: async, data: params, success:
		function (result) {
			requestc(result);
		}
	});
}

function requestc (result) {
	var arr=result.split(':');

	if (arr[1] != 0) {
		if (start_upload == 0) {
		    if(parseInt(arr[1])>max_upload_size) {
                window.location.href = '?m=max_file_size_error';
                return false;
		    } else {
    			$('#uploading_wait').hide();
    			$('#uploading_progress').show();

    			progress_bar_width = parseInt($('.progress_bar_outer').width());
		    }
		}

		var percent = Math.floor(100*arr[0]/arr[1]);

		$('#pbar').css('width', Math.round(progress_bar_width*arr[0]/arr[1])+'px');
		start_upload = 1;
	} else {
		var percent = 0;
	}
	
	var Mb = (Math.round(arr[0] / 1024 / 10.24) / 100) + ' MB';
	var MbTotal = (Math.round(arr[1] / 1024 / 10.24) / 100) + ' MB';
	

	
	var ctime = new Date();

	var seconds = ctime.getTime() - starttime.getTime();
	var sec = seconds;
	
	seconds = Math.floor(seconds/1000);
	var speed, speedbytes, speedKbytes, speedMbytes;
	speedbytes = arr[0] / seconds;
	
	var hours = Math.floor(seconds/(60*60));
	hours = (hours < 10) ? '0' + hours : hours;
	
	seconds = seconds - hours*60*60;
	
	var minutes = Math.floor(seconds/60);
	minutes = (minutes < 10) ? '0' + minutes : minutes;
	
	seconds = seconds - minutes*60;
	
	seconds = (seconds < 10) ? '0' + seconds : seconds;
	time = hours+':'+minutes+':'+seconds;
	
	
	
	if (speedbytes > 1024) {
		speedKbytes = Math.round(speedbytes/1024);
	}
	if (speedKbytes > 1024) {
		speedMbytes = Math.round(speedKbytes/10.24)/100;
	}
	if (speedMbytes > 0) {
		speed = speedMbytes + ' MB/s';
	} else if (speedKbytes > 0) {
		speed = speedKbytes + ' KB/s';
	} else {
		speed = speedbytes + ' B/s';
	}
	
	
	
	var remseconds = Math.round((arr[1] - arr[0])/speedbytes);
	var remhours = Math.floor(remseconds/(60*60));
	remhours = (remhours < 10) ? '0' + remhours : remhours;
	
	remseconds = remseconds - remhours*60*60;
	
	var remminutes = Math.floor(remseconds/60);
	remminutes = (remminutes < 10) ? '0' + remminutes : remminutes;
	
	remseconds = remseconds - remminutes*60;
	
	remseconds = (remseconds < 10) ? '0' + remseconds : remseconds;
	remtime = remhours+':'+remminutes+':'+remseconds;
	
	if ((ctime.getTime() - starttime.getTime() < 5000) && percent < 5) {
		speed = '&nbsp;';
		remtime = '&nbsp;';
	}
	
	if (arr[1] != 0 || start_upload != 1) {
		$('#percent').html(percent+'%');
		$('#temp_space').html(Mb);
		$('#total_space').html(MbTotal);
		$('#elapsed').html(time);
		$('#speed').html(speed);
		$('#left').html(remtime);
		
		setTimeout('makeRequest()', 500);
	}
}

function showMessage (text, type)
{
	$("#messageBox").remove();
	var top = $(window).scrollTop()+"px"
	$("body").append('<div id="messageBox" style="top: '+($(window).scrollTop()+10)+'px" class="' + type + '">' + text + '</div>');
	
	setTimeout(function() 
	{ 
		$('#messageBox').animate({opacity: 0}, 1000, null, function() 
		{ 
			$("#messageBox").remove();
		}); 
	}, 5000);
}

/*function clearOptions () {
	$('.options .textInp').val('');
	$('.options :checked').attr('checked','');
} */
