// Global Variables
var ProgressBar_Responsiveness = 1000; // Refresh Progress-Bar every 0.5 sec
var ProgressBar_State = 0; // 0 = Stopped, 1 = Running
var ProgressBar_request = createXMLHttpRequest()
/**********************************************************************************************
* UpdateProgressBar() *
* *
* *
**********************************************************************************************/
function UpdateProgressBar(strPercentage)
{
var str = "";
var Width_Factor = 3;
var Percentage = Number(strPercentage);
if ((Percentage >= 0) && (Percentage <= 100))
{
str = str + "\n";
str = str + "\n";
str = str + " " + Percentage + "%";
}
else
{
str = "";
}
if (document.getElementById('ProgressBar') != null)
{
document.getElementById('ProgressBar').innerHTML = str;
}
}
/**********************************************************************************************
* ProcessProgressBar() *
* *
* *
**********************************************************************************************/
function ProcessProgressBar()
{
if (ProgressBar_State == 1)
{
ProgressBar_request = new createXMLHttpRequest();
ProgressBar_request.open('GET', '/index.cgi?script=cms_cgi&action=GetProgressBar', true);
ProgressBar_request.onreadystatechange = ProcessProgressBar_handle;
ProgressBar_request.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
ProgressBar_request.send(null);
}
}
/**********************************************************************************************
* ProcessProgressBar_handle() *
* *
**********************************************************************************************/
function ProcessProgressBar_handle()
{
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// In case GetProgress fails
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
if (ProgressBar_request.readyState != 4)
{
return;
}
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
var response = ProgressBar_request.responseText;
lines = response.split('\n');
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// In case GetProgress fails
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
if (response.indexOf("ERROR") != -1)
{
UpdateProgressBar(-1);
return;
}
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
var percentage = Number(lines[0]);
//alert(percentage);
if (ProgressBar_State == 1)
{
UpdateProgressBar(percentage);
setTimeout("ProcessProgressBar()", ProgressBar_Responsiveness);
}
}
/**********************************************************************************************
* SetProgressBar() *
* *
* Save the percentage into the "progress.txt" file *
* *
**********************************************************************************************/
function SetProgressBar(percentage)
{
var oRequest = new createXMLHttpRequest();
// Reflect the change immediately on screen
UpdateProgressBar(percentage);
oRequest.open('GET', '/index.cgi?script=cms_cgi&action=SetProgressBar&Percentage='+ percentage,false);
oRequest.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
oRequest.send(null);
// Error Reading the file
if (oRequest.status!=200)
{
return;
}
}
/**********************************************************************************************
* StartProgressBar() *
* *
* *
**********************************************************************************************/
function StartProgressBar(percentage)
{
ProgressBar_State = 1;
SetProgressBar(percentage);
ProcessProgressBar();
}
/**********************************************************************************************
* StopProgressBar() *
* *
* *
**********************************************************************************************/
function StopProgressBar()
{
ProgressBar_State = 0;
UpdateProgressBar(-1);
}