+/* progress bar */
+
+var _pbar_width = null;
+var _pbar_warn = 10; // change color in last 10%
+
+function pbar_reset() {
+ element_id("mask").style.left = "0px";
+ _pbar_width = element_id("mContainer").offsetWidth - 2;
+ element_id("mask").style.width = _pbar_width + "px";
+ element_id("mask").style.display = "block";
+ element_id("progressIndicator").style.zIndex = 10;
+ element_id("progressIndicator").innerHTML = "0";
+}
+
+function dec2hex(d) {
+ var hch = '0123456789ABCDEF';
+ var a = d % 16;
+ var q = (d - a) / 16;
+ return hch.charAt(q) + hch.charAt(a);
+}
+
+function pbar_set(amount, max) {
+ debug('pbar_set('+amount+', '+max+')');
+
+ if (_pbar_width == null) {
+ var _mc = element_id("mContainer");
+ if (_pbar_width == null) _pbar_width = parseInt(_mc.offsetWidth ? (_mc.offsetWidth - 2) : 0) || null;
+ if (_pbar_width == null) _pbar_width = parseInt(_mc.clientWidth ? (_mc.clientWidth + 2) : 0) || null;
+ if (_pbar_width == null) _pbar_width = 0;
+ }
+
+ var pcnt = Math.floor(amount * 100 / max);
+ var p90 = 100 - _pbar_warn;
+ var pcol = pcnt - p90;
+ if (Math.round(pcnt) <= 100) {
+ if (pcol < 0) pcol = 0;
+ var e = element_id("submitBurner");
+ debug('enable_button');
+ e.disabled = false;
+ var a = e.getAttributeNode('disabled') || null;
+ if (a) e.removeAttributeNode(a);
+ } else {
+ debug('disable button');
+ pcol = _pbar_warn;
+ var e = element_id("submitBurner");
+ if (!e.disabled) e.disabled = true;
+ }
+ var col_g = Math.floor((_pbar_warn - pcol) * 255 / _pbar_warn);
+ var col = '#FF' + dec2hex(col_g) + '00';
+
+ //debug('pcol: '+pcol+' g:'+col_g+' _pbar_warn:'+ _pbar_warn + ' color: '+col);
+ element_id("gradient").style.backgroundColor = col;
+
+ element_id("progressIndicator").innerHTML = pcnt + '%';
+ //element_id("progressIndicator").innerHTML = amount;
+
+ element_id("mask").style.clip = 'rect(' + Array(
+ '0px',
+ element_id("mask").offsetWidth + 'px',
+ element_id("mask").offsetHeight + 'px',
+ Math.round(_pbar_width * amount / max) + 'px'
+ ).join(' ') + ')';
+}
+