// 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); }