counter++;
}
}
- var bytes_slope = ((counter * bytes_xy) - (time * bytes)) / (counter * x2 - Math.pow(time, 2));
- var files_slope = ((counter * files_xy) - (time * files)) / (counter * x2 - Math.pow(time, 2));
- var bytes_intercept = (bytes / counter) - (bytes_slope * (time / counter));
- var files_intercept = (files / counter) - (files_slope * (time / counter));
- var est_bytes = bytes_intercept + (bytes_slope * parseInt((new Date).getTime() / 1000, 10));
- var est_files = files_intercept + (files_slope * parseInt((new Date).getTime() / 1000, 10));
- return {
- est_bytes: est_bytes,
- est_files: est_files
- };
+ var est;
+ if (counter < 2) {
+ est = {
+ est_bytes: bytes,
+ est_files: files
+ };
+ } else if (counter === 2) {
+ est = {
+ est_bytes: (bytes / 2),
+ est_files: (files / 2)
+ }
+ } else {
+ var divisor = (counter * x2 - Math.pow(time, 2));
+ var bytes_slope = ((counter * bytes_xy) - (time * bytes)) / divisor;
+ var files_slope = ((counter * files_xy) - (time * files)) / divisor;
+ var bytes_intercept = (bytes / counter) - (bytes_slope * (time / counter));
+ var files_intercept = (files / counter) - (files_slope * (time / counter));
+ var est_bytes = bytes_intercept + (bytes_slope * parseInt((new Date).getTime() / 1000, 10));
+ var est_files = files_intercept + (files_slope * parseInt((new Date).getTime() / 1000, 10));
+ est = {
+ est_bytes: est_bytes,
+ est_files: est_files
+ };
+ }
+ return est;
};
function get_url_param (name) {
bytes_progress.title = '<%[ Progress bar displays estimated values ]%>';
var bytes_label = document.createElement('DIV');
bytes_label.className = 'progressbar-label';
- bytes_label.textContent = Units.get_formatted_size(bytes) + ' / <%[ est. ]%> ' + Units.get_formatted_size(est.est_bytes) + ' (' + ((100 * bytes) / est.est_bytes).toFixed(1) + '%' + ')';
+ var bytes_perc = ((100 * bytes) / est.est_bytes);
+ if (bytes_perc > 100) {
+ bytes_perc = 100;
+ }
+ bytes_label.textContent = Units.get_formatted_size(bytes) + ' / <%[ est. ]%> ' + Units.get_formatted_size(est.est_bytes) + ' (' + bytes_perc.toFixed(1) + '%' + ')';
bytes_progress.style.width = '70%';
bytes_progress.appendChild(bytes_label);
var bytes_bar = $(bytes_progress);
files_progress.title = '<%[ Progress bar displays estimated values ]%>';
var files_label = document.createElement('DIV');
files_label.className = 'progressbar-label';
- files_label.textContent = files + ' / <%[ est. ]%> ' + parseInt(est.est_files, 10) + ' (' + ((100 * files) / est.est_files).toFixed(1) + '%' + ')';
+ var files_perc = ((100 * files) / est.est_files);
+ if (files_perc > 100) {
+ files_perc = 100;
+ }
+ files_label.textContent = files + ' / <%[ est. ]%> ' + parseInt(est.est_files, 10) + ' (' + files_perc.toFixed(1) + '%' + ')';
files_progress.style.width = '70%';
files_progress.appendChild(files_label);
var files_bar = $(files_progress);
bytes_progress.title = '<%[ Progress bar displays estimated values ]%>';
var bytes_label = document.createElement('DIV');
bytes_label.className = 'progressbar-label';
- bytes_label.textContent = Units.get_formatted_size(bytes) + ' / <%[ est. ]%> ' + Units.get_formatted_size(est.est_bytes) + ' (' + ((100 * bytes) / est.est_bytes).toFixed(1) + '%' + ')';
+ var bytes_perc = ((100 * bytes) / est.est_bytes);
+ if (bytes_perc > 100) {
+ bytes_perc = 100;
+ }
+ bytes_label.textContent = Units.get_formatted_size(bytes) + ' / <%[ est. ]%> ' + Units.get_formatted_size(est.est_bytes) + ' (' + bytes_perc.toFixed(1) + '%' + ')';
bytes_progress.style.width = '70%';
bytes_progress.appendChild(bytes_label);
var bytes_bar = $(bytes_progress);
files_progress.title = '<%[ Progress bar displays estimated values ]%>';
var files_label = document.createElement('DIV');
files_label.className = 'progressbar-label';
- files_label.textContent = files + ' / <%[ est. ]%> ' + parseInt(est.est_files, 10) + ' (' + ((100 * files) / est.est_files).toFixed(1) + '%' + ')';
+ var files_perc = ((100 * files) / est.est_files);
+ if (files_perc > 100) {
+ files_perc = 100;
+ }
+ files_label.textContent = files + ' / <%[ est. ]%> ' + parseInt(est.est_files, 10) + ' (' + files_perc.toFixed(1) + '%' + ')';
files_progress.style.width = '70%';
files_progress.appendChild(files_label);
var files_bar = $(files_progress);