mirror of
https://github.com/rvtr/rmc_website.git
synced 2025-10-31 13:31:21 -04:00
222 lines
8.7 KiB
JavaScript
222 lines
8.7 KiB
JavaScript
//-------------------------------------------------------------------
|
|
//
|
|
// Progress Bar
|
|
//
|
|
// This is a javascript that simulates a progress bar on the page.
|
|
// The progress is based on the return value of an external functional call
|
|
//
|
|
// Usage: showProgressBar(ec,tbpFunction,doneFunction,divObj,
|
|
// timeInterval,message1, message2,
|
|
// color,height,width,style)
|
|
// ecVarName - ECommerceInterface object variable name string
|
|
// tbpFunction - returns progess text and bar %. see updateProgress()
|
|
// (tbp stands for text and bar per cent)
|
|
// doneFunction - javascript function to call upon completion
|
|
// divObj - id of the div object that act as a container of this progress bar
|
|
// timeInterval - time interval (milliseconds) to obtain the status and update the progress bar
|
|
// message1 - a msg string to display before the progress %
|
|
// message2 - a msg string to display after the progress %
|
|
// color - color for the bar/outer boundary of the box
|
|
// height - height of the box/bar
|
|
// width - total width of the box/bar
|
|
// style - style for the message string displayed above the progress bar
|
|
//
|
|
// Requirements: Following code must be included in the page
|
|
//
|
|
// var ec = new ECommerceObj; // global variable
|
|
//
|
|
// <DIV id="divObj"></DIV>
|
|
//
|
|
// Where the name used for ec and divObj are passed as args to showProgressBar.
|
|
//
|
|
//-------------------------------------------------------------------
|
|
|
|
function showProgressBar(ecVarName,tbpFunction,doneFunction,divObj,
|
|
timeInterval,message1,message2,
|
|
color,height,width,style)
|
|
{
|
|
var pbColor = (color!=null && color!='') ? color : "#006666";
|
|
var pbHeight = (height!=null && height!='') ? height : "20";
|
|
var pbWidth = (width!=null && width!='') ? width : "400";
|
|
var msgString1 = (message1!=null && message1!='') ? message1 : "";
|
|
var msgString2 = (message2!=null && message2!='') ? message2 : "";
|
|
var msgStyle = (style!=null && style!='') ? style : "font:bold; color:#FA8072;";
|
|
|
|
document.getElementById(divObj).innerHTML = ''
|
|
+ ' <table width="90%" border="0" cellspacing="0" cellpadding="0">'
|
|
+ ' <tr>'
|
|
+ ' <td width="7%" valign="top" align="right">'
|
|
+ ' <img src="ec_example/04.gif" width="26" height="57" border="0">'
|
|
+ ' </td>'
|
|
+ ' <td width="88%" background="ec_example/bg_26.gif" align="center">'
|
|
+ ' <table width="100%" border="0" cellspacing="0" cellpadding="0">'
|
|
+ ' <tr>'
|
|
+ ' <td height="19"> </td>'
|
|
+ ' </tr>'
|
|
+ ' <tr>'
|
|
+ ' <td>'
|
|
+ ' <DIV id="box" align="left" style="background-color:#FFFFFF; border:1 solid '
|
|
+ pbColor + '; height:' + pbHeight + 'px; width:' + pbWidth + '; visibility:visible;">'
|
|
+ ' <DIV id="bar" align="left" style="position:static; background-color:'
|
|
+ pbColor + '; height:' + pbHeight + 'px; width:0px; padding-top:5;"></DIV></DIV>'
|
|
+ ' </td>'
|
|
+ ' </tr>'
|
|
+ ' </table>'
|
|
+ ' <br>'
|
|
+ ' </td>'
|
|
+ ' <td width="5%" valign="top">'
|
|
+ ' <img src="ec_example/03.gif" width="26" height="57" border="0">'
|
|
+ ' </td>'
|
|
+ ' </tr>'
|
|
+ ' <tr>'
|
|
+ ' <td></td>'
|
|
+ ' <td align="left" height="40" valign="middle">'
|
|
+ ' <DIV id="msg" align="center" style="'+msgStyle+'">center</DIV>'
|
|
+ ' </td>'
|
|
+ ' <td></td>'
|
|
+ ' </tr>'
|
|
+ ' </table>';
|
|
|
|
updateProgress(ecVarName,tbpFunction,doneFunction,timeInterval,msgString1,msgString2,pbWidth);
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
//
|
|
// The progress bar will keep obtaining the status after every timeInterval milliseconds
|
|
//
|
|
//-------------------------------------------------------------------
|
|
|
|
function updateProgress(ecVarName,tbpFunction,doneFunction,timeInterval,
|
|
msgString1,msgString2,barSize)
|
|
{
|
|
var result;
|
|
var m;
|
|
var barPerCent = new Object;
|
|
eval("var progress = " +ecVarName+".getProgress();");
|
|
|
|
if (progress.status != EC_ERROR_NOT_DONE) {
|
|
document.getElementById('msg').innerText = "";
|
|
document.getElementById('box').style.visibility = 'hidden';
|
|
eval(doneFunction+"(progress)");
|
|
return;
|
|
}
|
|
|
|
eval("result = " +tbpFunction+"(barPerCent, progress);");
|
|
|
|
m = document.getElementById('msg');
|
|
|
|
if (msgString1 != null)
|
|
m.innerHTML = msgString1;
|
|
if (result != null)
|
|
m.innerHTML += " " + result;
|
|
if (msgString2 != null)
|
|
m.innerHTML += msgString2;
|
|
|
|
document.getElementById('bar').style.width = barPerCent.value + '%';
|
|
|
|
setTimeout("updateProgress(\""+ecVarName+"\",\""+
|
|
tbpFunction+"\",\""+doneFunction+"\",\""+timeInterval+"\",\""+
|
|
msgString1+"\",\""+msgString2+"\",\""+barSize+"\");", timeInterval);
|
|
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Trim functions
|
|
// Returns string with whitespace trimmed
|
|
//-------------------------------------------------------------------
|
|
|
|
function LTrim(str)
|
|
{
|
|
if (str==null)
|
|
{
|
|
return str;
|
|
}
|
|
|
|
for (var i=0; str.charAt(i)==" " || str.charAt(i)=="\n" || str.charAt(i)=="\t"; i++);
|
|
|
|
return str.substring(i,str.length);
|
|
}
|
|
|
|
function RTrim(str)
|
|
{
|
|
if (str==null)
|
|
{
|
|
return str;
|
|
}
|
|
|
|
for (var i=str.length-1; str.charAt(i)==" " || str.charAt(i)=="\n" || str.charAt(i)=="\t"; i--);
|
|
|
|
return str.substring(0,i+1);
|
|
}
|
|
|
|
function Trim(str)
|
|
{
|
|
return LTrim(RTrim(str));
|
|
}
|
|
|
|
|
|
|
|
|
|
function errString (errCode)
|
|
{
|
|
var a = new Array();
|
|
|
|
a[0] = "OK";
|
|
a[-(EC_ERROR_FAIL)] = "Generic error";
|
|
a[-(EC_ERROR_NOT_SUPPORTED)] = "Feature not implemented";
|
|
a[-(EC_ERROR_INSUFICIENT_RESOURCE)] = "Insufficient resource";
|
|
a[-(EC_ERROR_INVALID)] = "Invalid argument";
|
|
a[-(EC_ERROR_NOMEM)] = "Insufficient memory";
|
|
a[-(EC_ERROR_NOT_FOUND)] = "Not found";
|
|
a[-(EC_ERROR_NOT_BUSY)] = "No active async operation";
|
|
a[-(EC_ERROR_BUSY)] = "Busy";
|
|
a[-(EC_ERROR_NOT_DONE)] = "Not done";
|
|
|
|
a[-(EC_ERROR_NET_NA)] = "Internet access not available";
|
|
a[-(EC_ERROR_WS_REPORT)] = "Server reports a problem";
|
|
a[-(EC_ERROR_ECARD)] = "Invalid eCard";
|
|
|
|
a[-(EC_ERROR_NET_CONTENT)] = "Error downloading content";
|
|
a[-(EC_ERROR_CONTENT_SIZE)] = "Downloaded content size is not expected value";
|
|
|
|
a[-(EC_ERROR_WS_RESP)] = "invalid web service response";
|
|
a[-(EC_ERROR_TICKET)] = "problem importing ticket";
|
|
a[-(EC_ERROR_TITLE)] = "problem importing title";
|
|
a[-(EC_ERROR_TITLE_CONTENT)] = "problem importing title content";
|
|
a[-(EC_ERROR_CANCELED)] = "The operation was canceled.";
|
|
a[-(EC_ERROR_ALREADY)] = "one time only action was previously done";
|
|
|
|
a[-(EC_ERROR_INIT)] = "library has not been initialized";
|
|
a[-(EC_ERROR_REGISTER)] = "virtual console is not registered";
|
|
|
|
a[-(EC_ERROR_WS_RECV)] = "recv error on web service response";
|
|
a[-(EC_ERROR_NOT_ACTIVE)] = "expected operation is not active op";
|
|
|
|
a[-(EC_ERROR_FILE_READ)] = "Error reading a file";
|
|
a[-(EC_ERROR_FILE_WRITE)] = "Error writing a file";
|
|
|
|
a[-(EC_ERROR_NOT_OWNED)] = "Title is not owned";
|
|
a[-(EC_ERROR_BAD_HEAP)] = "An invalid heap was passed to eclib";
|
|
a[-(EC_ERROR_HTTP_HDR_PARSE)] = "Could not parse http header";
|
|
a[-(EC_ERROR_CONFIG)] = "Invlaid configuration (e.g. url is invalid)";
|
|
|
|
var msg = a[-errCode];
|
|
|
|
if (msg == null) {
|
|
msg = "Unrecognized Error Code: " + errCode;
|
|
}
|
|
|
|
return msg;
|
|
}
|
|
|
|
/* returns 0 if not in HTTPStatus ECError range */
|
|
function errCodeToHTTPStatus (errCode)
|
|
{
|
|
if (errCode > EC_HTTP_STATUS_RANGE_START || errCode < EC_HTTP_STATUS_RANGE_END) {
|
|
return 0;
|
|
} else {
|
|
return (-(errCode - EC_ERROR_RANGE_START)) + 100;
|
|
}
|
|
}
|
|
|