g_var_progress_bar = -1; g_status_text = [null]; g_status_timer = [-1.0]; //------------------------------------------------------------------------- // PROGRESS BAR STATUS FUNCTIONS //------------------------------------------------------------------------- //Update the actual progress bar function UpdateProgressBarValue(new_status, new_value, new_max) { var progress_bar = GetProgressBar(); if (progress_bar) { if (new_value != undefined && new_max != undefined) { if (progress_bar.value < 0) g_var_progress_bar = -1; var loading_text = new_status + '[' + (Math.min(1.0, new_value / new_max) * 100.0).toFixed(0) + '%]'; //update the progress status progress_bar.max = new_max; progress_bar.value = new_value; g_var_progress_bar = AddTextStatus(loading_text, g_var_progress_bar); } //Load length is not usable else { if (progress_bar.value > 0) g_var_progress_bar = -1; progress_bar.value = -1; g_var_progress_bar = AddTextStatus(new_status, g_var_progress_bar); } //Force Status text update for coherency UpdateTextStatus(0.0); } } //Add text status to the stack function GetMaxStatusTime(min_value) { var higher_time = (min_value) ? (min_value) : (0.0); for (var i = 0; i < g_status_timer.length; i++) if (g_status_timer[i]) higher_time = Math.max(higher_time, g_status_timer[i]); } //Update progress bar status function UpdateTextStatus(seconds) { var div_progress_status = GetDivProgressStatus(); if (div_progress_status) { div_progress_status.innerHTML = ''; for (var i = 0; i < g_status_text.length; i++) { if (g_status_timer[i] == undefined || g_status_timer[i] < 0.0) { g_status_timer[i] = -1.0; g_status_text[i] = undefined; } else { g_status_timer[i] -= seconds; div_progress_status.innerHTML += g_status_text[i]; //div_progress_status.innerHTML += '[' + g_status_timer[i].toFixed(2) + ']'; if (i < g_status_text.length - 1) div_progress_status.innerHTML += '
'; } } window.setTimeout("UpdateTextStatus(0.1)", 100); } } //Add text status to the stack function AddTextStatus(message, message_id) { var msg_timer = 2.0; if (message_id == undefined || message_id < 0) { g_status_text[g_status_text.length] = message; g_status_timer[g_status_timer.length] = GetMaxStatusTime(msg_timer) + 0.5; return g_status_timer.length - 1; } else { g_status_text[message_id] = message; g_status_timer[message_id] = msg_timer; return message_id; } } //Hide Progress Status and empty status texts function HideProgressStatus(should_hide) { var progress_bar = GetProgressBar(); var div_progress = GetDivProgress(); if (div_progress && progress_bar) { if (should_hide == true) { div_progress.style.visibility = "hidden"; div_progress.style.zIndex = "-999"; g_status_text.splice(0, g_status_text.length); g_status_timer.splice(0, g_status_timer.length); progress_bar.value = -1; UpdateTextStatus(1.0); } else { div_progress.style.visibility = "visible"; div_progress.style.zIndex = "999"; progress_bar.value = -1; AddTextStatus('Please wait for module loading'); UpdateTextStatus(1.0); } } }