Follow project coding style. Issue #2192.

This commit is contained in:
Gabriele 2014-11-30 14:14:09 +01:00
parent 3672363207
commit aab2c34257
6 changed files with 798 additions and 734 deletions

View file

@ -1,7 +1,7 @@
var ContextMenu = new Class({
//implements
Implements: [Options,Events],
Implements: [Options, Events],
//options
options: {
@ -10,7 +10,10 @@ var ContextMenu = new Class({
stopEvent: true,
targets: 'body',
trigger: 'contextmenu',
offsets: { x:0, y:0 },
offsets: {
x: 0,
y: 0
},
onShow: $empty,
onHide: $empty,
onClick: $empty,
@ -29,12 +32,13 @@ var ContextMenu = new Class({
//fx
this.fx = new Fx.Tween(this.menu, {
property: 'opacity',
duration:this.options.fadeSpeed,
duration: this.options.fadeSpeed,
onComplete: function() {
if(this.getStyle('opacity')){
this.setStyle('visibility','visible');
}else{
this.setStyle('visibility','hidden');
if (this.getStyle('opacity')) {
this.setStyle('visibility', 'visible');
}
else {
this.setStyle('visibility', 'hidden');
}
}.bind(this.menu)
});
@ -43,16 +47,22 @@ var ContextMenu = new Class({
this.hide().startListener();
//hide the menu
this.menu.setStyles({ 'position':'absolute','top':'-900000px', 'display':'block' });
this.menu.setStyles({
'position': 'absolute',
'top': '-900000px',
'display': 'block'
});
},
addTarget: function(t) {
this.targets[this.targets.length] = t;
t.addEvent(this.options.trigger,function(e) {
t.addEvent(this.options.trigger, function(e) {
//enabled?
if(!this.options.disabled) {
if (!this.options.disabled) {
//prevent default, if told to
if(this.options.stopEvent) { e.stop(); }
if (this.options.stopEvent) {
e.stop();
}
//record this as the trigger
this.options.element = $(t);
//position the menu
@ -66,7 +76,7 @@ var ContextMenu = new Class({
this.show();
}
}.bind(this));
t.addEvent('click',function(e) {
t.addEvent('click', function(e) {
this.hide();
}.bind(this));
},
@ -76,11 +86,13 @@ var ContextMenu = new Class({
/* all elements */
this.targets.each(function(el) {
/* show the menu */
el.addEvent(this.options.trigger,function(e) {
el.addEvent(this.options.trigger, function(e) {
//enabled?
if(!this.options.disabled) {
if (!this.options.disabled) {
//prevent default, if told to
if(this.options.stopEvent) { e.stop(); }
if (this.options.stopEvent) {
e.stop();
}
//record this as the trigger
this.options.element = $(el);
//position the menu
@ -94,20 +106,20 @@ var ContextMenu = new Class({
this.show();
}
}.bind(this));
el.addEvent('click',function(e) {
el.addEvent('click', function(e) {
this.hide();
}.bind(this));
},this);
}, this);
/* menu items */
this.menu.getElements('a').each(function(item) {
item.addEvent('click',function(e) {
if(!item.hasClass('disabled')) {
this.execute(item.get('href').split('#')[1],$(this.options.element));
this.fireEvent('click',[item,e]);
item.addEvent('click', function(e) {
if (!item.hasClass('disabled')) {
this.execute(item.get('href').split('#')[1], $(this.options.element));
this.fireEvent('click', [item, e]);
}
}.bind(this));
},this);
}, this);
//hide on body click
$(document.body).addEvent('click', function() {
@ -126,8 +138,7 @@ var ContextMenu = new Class({
//hide the menu
hide: function(trigger) {
if(this.shown)
{
if (this.shown) {
this.fx.start(0);
//this.menu.fade('out');
this.fireEvent('hide');
@ -161,9 +172,9 @@ var ContextMenu = new Class({
},
//execute an action
execute: function(action,element) {
if(this.options.actions[action]) {
this.options.actions[action](element,this);
execute: function(action, element) {
if (this.options.actions[action]) {
this.options.actions[action](element, this);
}
return this;
}

View file

@ -20,12 +20,16 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
window.addEvent('domready', function(){
window.addEvent('domready', function() {
$('urls').focus();
$('downButton').addEvent('click', function(e){
$('downButton').addEvent('click', function(e) {
new Event(e).stop();
new Request({url: 'command/download', method: 'post', data: {urls: $('urls').value},
new Request({
url: 'command/download',
method: 'post',
data: {
urls: $('urls').value
},
onComplete: function() {
window.parent.document.getElementById('downloadPage').parentNode.removeChild(window.parent.document.getElementById('downloadPage'));
}

View file

@ -37,7 +37,7 @@ function friendlyDuration(seconds) {
if (minutes < 60)
return "_(%1m)".replace("%1", parseInt(minutes));
var hours = minutes / 60;
minutes = minutes - hours*60;
minutes = minutes - hours * 60;
if (hours < 24)
return "_(%1h %2m)".replace("%1", parseInt(hours)).replace("%2", parseInt(minutes))
var days = hours / 24;

View file

@ -8,7 +8,6 @@
it in the onContentLoaded function of the new window.
----------------------------------------------------------------- */
/* Define localStorage object for older browsers */
if (typeof localStorage == 'undefined') {
window['localStorage'] = {
@ -16,28 +15,30 @@ if (typeof localStorage == 'undefined') {
return Cookie.read(name);
},
setItem: function(name, value) {
Cookie.write(name, value, {duration: 365 * 10});
Cookie.write(name, value, {
duration: 365 * 10
});
}
}
}
initializeWindows = function(){
initializeWindows = function() {
function addClickEvent(el, fn){
['Link','Button'].each(function(item) {
if ($(el+item)){
$(el+item).addEvent('click', fn);
function addClickEvent(el, fn) {
['Link', 'Button'].each(function(item) {
if ($(el + item)) {
$(el + item).addEvent('click', fn);
}
});
}
addClickEvent('download', function(e){
addClickEvent('download', function(e) {
new Event(e).stop();
new MochaUI.Window({
id: 'downloadPage',
title: "_(Download from urls)",
loadMethod: 'iframe',
contentURL:'download.html',
contentURL: 'download.html',
scrollbars: true,
resizable: false,
maximizable: false,
@ -71,13 +72,13 @@ initializeWindows = function(){
});
});
addClickEvent('upload', function(e){
addClickEvent('upload', function(e) {
new Event(e).stop();
new MochaUI.Window({
id: 'uploadPage',
title: "_(Download local torrent)",
loadMethod: 'iframe',
contentURL:'upload.html',
contentURL: 'upload.html',
scrollbars: true,
resizable: false,
maximizable: false,
@ -93,7 +94,7 @@ initializeWindows = function(){
id: 'uploadLimitPage',
title: "_(Global Upload Speed Limiting)",
loadMethod: 'iframe',
contentURL:'uploadlimit.html?hash=global',
contentURL: 'uploadlimit.html?hash=global',
scrollbars: false,
resizable: false,
maximizable: false,
@ -106,13 +107,13 @@ initializeWindows = function(){
uploadLimitFN = function() {
var h = myTable.selectedIds();
if(h.length){
if (h.length) {
var hash = h[0];
new MochaUI.Window({
id: 'uploadLimitPage',
title: "_(Torrent Upload Speed Limiting)",
loadMethod: 'iframe',
contentURL:'uploadlimit.html?hash='+hash,
contentURL: 'uploadlimit.html?hash=' + hash,
scrollbars: false,
resizable: false,
maximizable: false,
@ -129,7 +130,7 @@ initializeWindows = function(){
id: 'downloadLimitPage',
title: "_(Global Download Speed Limiting)",
loadMethod: 'iframe',
contentURL:'downloadlimit.html?hash=global',
contentURL: 'downloadlimit.html?hash=global',
scrollbars: false,
resizable: false,
maximizable: false,
@ -142,13 +143,13 @@ initializeWindows = function(){
downloadLimitFN = function() {
var h = myTable.selectedIds();
if(h.length){
if (h.length) {
var hash = h[0];
new MochaUI.Window({
id: 'downloadLimitPage',
title: "_(Torrent Download Speed Limiting)",
loadMethod: 'iframe',
contentURL:'downloadlimit.html?hash='+hash,
contentURL: 'downloadlimit.html?hash=' + hash,
scrollbars: false,
resizable: false,
maximizable: false,
@ -167,12 +168,12 @@ initializeWindows = function(){
new Request({url: 'command/delete', method: 'post', data: {hash: item}}).send();
});
}*/
if(h.length) {
if (h.length) {
new MochaUI.Window({
id: 'confirmDeletionPage',
title: "_(Deletion confirmation - qBittorrent)",
loadMethod: 'iframe',
contentURL:'confirmdeletion.html?hashes='+h.join(','),
contentURL: 'confirmdeletion.html?hashes=' + h.join(','),
scrollbars: false,
resizable: false,
maximizable: false,
@ -183,57 +184,83 @@ initializeWindows = function(){
}
};
addClickEvent('delete', function(e){
addClickEvent('delete', function(e) {
new Event(e).stop();
deleteFN();
});
pauseFN = function() {
var h = myTable.selectedIds();
if(h.length){
h.each(function(hash, index){
new Request({url: 'command/pause', method: 'post', data: {hash: hash}}).send();
if (h.length) {
h.each(function(hash, index) {
new Request({
url: 'command/pause',
method: 'post',
data: {
hash: hash
}
}).send();
});
}
};
startFN = function() {
var h = myTable.selectedIds();
if(h.length){
h.each(function(hash, index){
new Request({url: 'command/resume', method: 'post', data: {hash: hash}}).send();
if (h.length) {
h.each(function(hash, index) {
new Request({
url: 'command/resume',
method: 'post',
data: {
hash: hash
}
}).send();
});
}
};
recheckFN = function() {
var h = myTable.selectedIds();
if(h.length){
h.each(function(hash, index){
new Request({url: 'command/recheck', method: 'post', data: {hash: hash}}).send();
if (h.length) {
h.each(function(hash, index) {
new Request({
url: 'command/recheck',
method: 'post',
data: {
hash: hash
}
}).send();
});
}
};
['pause','resume', 'recheck'].each(function(item) {
addClickEvent(item, function(e){
['pause', 'resume', 'recheck'].each(function(item) {
addClickEvent(item, function(e) {
new Event(e).stop();
var h = myTable.selectedIds();
if(h.length){
h.each(function(hash, index){
new Request({url: 'command/'+item, method: 'post', data: {hash: hash}}).send();
if (h.length) {
h.each(function(hash, index) {
new Request({
url: 'command/' + item,
method: 'post',
data: {
hash: hash
}
}).send();
});
}
});
addClickEvent(item+'All', function(e){
addClickEvent(item + 'All', function(e) {
new Event(e).stop();
new Request({url: 'command/'+item+'all'}).send();
new Request({
url: 'command/' + item + 'all'
}).send();
});
});
['decreasePrio','increasePrio', 'topPrio', 'bottomPrio'].each(function(item) {
addClickEvent(item, function(e){
['decreasePrio', 'increasePrio', 'topPrio', 'bottomPrio'].each(function(item) {
addClickEvent(item, function(e) {
new Event(e).stop();
setPriorityFN(item);
});
@ -241,12 +268,18 @@ initializeWindows = function(){
setPriorityFN = function(cmd) {
var h = myTable.selectedIds();
if(h.length) {
new Request({url: 'command/'+cmd, method: 'post', data: {hashes: h.join("|")}}).send();
if (h.length) {
new Request({
url: 'command/' + cmd,
method: 'post',
data: {
hashes: h.join("|")
}
}).send();
}
}
addClickEvent('about', function(e){
addClickEvent('about', function(e) {
new Event(e).stop();
new MochaUI.Window({
id: 'aboutpage',
@ -259,7 +292,7 @@ initializeWindows = function(){
});
});
addClickEvent('logout', function(e){
addClickEvent('logout', function(e) {
new Event(e).stop();
new Request({
url: '/logout',
@ -270,7 +303,7 @@ initializeWindows = function(){
}).send();
});
addClickEvent('shutdown', function(e){
addClickEvent('shutdown', function(e) {
new Event(e).stop();
new Request({
url: 'command/shutdown',
@ -281,8 +314,7 @@ initializeWindows = function(){
}).send();
});
updateSpeedInBrowserTitleBarLinkCheckState = function()
{
updateSpeedInBrowserTitleBarLinkCheckState = function() {
if (localStorage.getItem('speed_in_browser_title_bar') == 'true')
$(speedInBrowserTitleBarLink).firstChild.style.opacity = '1';
else
@ -291,7 +323,7 @@ initializeWindows = function(){
updateSpeedInBrowserTitleBarLinkCheckState();
addClickEvent('speedInBrowserTitleBar', function(e){
addClickEvent('speedInBrowserTitleBar', function(e) {
new Event(e).stop();
var speed_in_browser_title_bar = localStorage.getItem('speed_in_browser_title_bar');
speed_in_browser_title_bar = speed_in_browser_title_bar == 'true' ? 'false' : 'true';
@ -300,8 +332,8 @@ initializeWindows = function(){
});
// Deactivate menu header links
$$('a.returnFalse').each(function(el){
el.addEvent('click', function(e){
$$('a.returnFalse').each(function(el) {
el.addEvent('click', function(e) {
new Event(e).stop();
});
});

View file

@ -13,9 +13,8 @@ Requires:
Core.js, Window.js
*/
MochaUI.extend({
addUpLimitSlider: function(hash){
addUpLimitSlider: function(hash) {
if ($('uplimitSliderarea')) {
var windowOptions = MochaUI.Windows.windowOptions;
var sliderFirst = true;
@ -26,71 +25,79 @@ MochaUI.extend({
method: 'post',
data: {},
onSuccess: function(data) {
if(data){
if (data) {
var tmp = data.toInt();
if(tmp > 0) {
if (tmp > 0) {
maximum = tmp / 1024.
} else {
}
else {
maximum = 1000
}
}
// Get torrent upload limit
// And create slider
if(hash == 'global') {
if (hash == 'global') {
var up_limit = maximum;
if(up_limit < 0) up_limit = 0;
if (up_limit < 0) up_limit = 0;
maximum = 1000;
var mochaSlide = new Slider($('uplimitSliderarea'), $('uplimitSliderknob'), {
steps: maximum,
offset: 0,
initialStep: up_limit.round(),
onChange: function(pos){
if(pos > 0) {
onChange: function(pos) {
if (pos > 0) {
$('uplimitUpdatevalue').set('html', pos);
$('upLimitUnit').set('html', "_(KiB/s)");
} else {
}
else {
$('uplimitUpdatevalue').set('html', '∞');
$('upLimitUnit').set('html', "");
}
}.bind(this)
});
// Set default value
if(up_limit == 0) {
if (up_limit == 0) {
$('uplimitUpdatevalue').set('html', '∞');
$('upLimitUnit').set('html', "");
} else {
}
else {
$('uplimitUpdatevalue').set('html', up_limit.round());
$('upLimitUnit').set('html', "_(KiB/s)");
}
} else {
}
else {
var req = new Request({
url: 'command/getTorrentUpLimit',
method: 'post',
data: {hash: hash},
data: {
hash: hash
},
onSuccess: function(data) {
if(data){
if (data) {
var up_limit = data.toInt();
if(up_limit < 0) up_limit = 0;
if (up_limit < 0) up_limit = 0;
var mochaSlide = new Slider($('uplimitSliderarea'), $('uplimitSliderknob'), {
steps: maximum,
offset: 0,
initialStep: (up_limit/1024.).round(),
onChange: function(pos){
if(pos > 0) {
initialStep: (up_limit / 1024.).round(),
onChange: function(pos) {
if (pos > 0) {
$('uplimitUpdatevalue').set('html', pos);
$('upLimitUnit').set('html', "_(KiB/s)");
} else {
}
else {
$('uplimitUpdatevalue').set('html', '∞');
$('upLimitUnit').set('html', "");
}
}.bind(this)
});
// Set default value
if(up_limit == 0) {
if (up_limit == 0) {
$('uplimitUpdatevalue').set('html', '∞');
$('upLimitUnit').set('html', "");
} else {
$('uplimitUpdatevalue').set('html', (up_limit/1024.).round());
}
else {
$('uplimitUpdatevalue').set('html', (up_limit / 1024.).round());
$('upLimitUnit').set('html', "_(KiB/s)");
}
}
@ -102,7 +109,7 @@ MochaUI.extend({
}
},
addDlLimitSlider: function(hash){
addDlLimitSlider: function(hash) {
if ($('dllimitSliderarea')) {
var windowOptions = MochaUI.Windows.windowOptions;
var sliderFirst = true;
@ -113,71 +120,79 @@ MochaUI.extend({
method: 'post',
data: {},
onSuccess: function(data) {
if(data){
if (data) {
var tmp = data.toInt();
if(tmp > 0) {
if (tmp > 0) {
maximum = tmp / 1024.
} else {
}
else {
maximum = 1000
}
}
// Get torrent download limit
// And create slider
if(hash == "global") {
if (hash == "global") {
var dl_limit = maximum;
if(dl_limit < 0) dl_limit = 0;
if (dl_limit < 0) dl_limit = 0;
maximum = 10000;
var mochaSlide = new Slider($('dllimitSliderarea'), $('dllimitSliderknob'), {
steps: maximum,
offset: 0,
initialStep: dl_limit.round(),
onChange: function(pos){
if(pos > 0) {
onChange: function(pos) {
if (pos > 0) {
$('dllimitUpdatevalue').set('html', pos);
$('dlLimitUnit').set('html', "_(KiB/s)");
} else {
}
else {
$('dllimitUpdatevalue').set('html', '∞');
$('dlLimitUnit').set('html', "");
}
}.bind(this)
});
// Set default value
if(dl_limit == 0) {
if (dl_limit == 0) {
$('dllimitUpdatevalue').set('html', '∞');
$('dlLimitUnit').set('html', "");
} else {
}
else {
$('dllimitUpdatevalue').set('html', dl_limit.round());
$('dlLimitUnit').set('html', "_(KiB/s)");
}
} else {
}
else {
var req = new Request({
url: 'command/getTorrentDlLimit',
method: 'post',
data: {hash: hash},
data: {
hash: hash
},
onSuccess: function(data) {
if(data){
if (data) {
var dl_limit = data.toInt();
if(dl_limit < 0) dl_limit = 0;
if (dl_limit < 0) dl_limit = 0;
var mochaSlide = new Slider($('dllimitSliderarea'), $('dllimitSliderknob'), {
steps: maximum,
offset: 0,
initialStep: (dl_limit/1024.).round(),
onChange: function(pos){
if(pos > 0) {
initialStep: (dl_limit / 1024.).round(),
onChange: function(pos) {
if (pos > 0) {
$('dllimitUpdatevalue').set('html', pos);
$('dlLimitUnit').set('html', "_(KiB/s)");
} else {
}
else {
$('dllimitUpdatevalue').set('html', '∞');
$('dlLimitUnit').set('html', "");
}
}.bind(this)
});
// Set default value
if(dl_limit == 0) {
if (dl_limit == 0) {
$('dllimitUpdatevalue').set('html', '∞');
$('dlLimitUnit').set('html', "");
} else {
$('dllimitUpdatevalue').set('html', (dl_limit/1024.).round());
}
else {
$('dllimitUpdatevalue').set('html', (dl_limit / 1024.).round());
$('dlLimitUnit').set('html', "_(KiB/s)");
}
}

View file

@ -1,96 +1,98 @@
var ProgressBar=new Class({
initialize:function(value,parameters){
var vals={
'id':'progressbar_'+(ProgressBars++),
'value':$pick(value,0),
'width':0,
'height':0,
'darkbg':'#006',
'darkfg':'#fff',
'lightbg':'#fff',
'lightfg':'#000'
var ProgressBar = new Class({
initialize: function(value, parameters) {
var vals = {
'id': 'progressbar_' + (ProgressBars++),
'value': $pick(value, 0),
'width': 0,
'height': 0,
'darkbg': '#006',
'darkfg': '#fff',
'lightbg': '#fff',
'lightfg': '#000'
};
if(parameters && $type(parameters)=='object')$extend(vals,parameters);
if(vals.height<12)vals.height=12;
var obj=new Element('div',{
'id':vals.id,
'class':'progressbar_wrapper',
'styles':{
'border':'1px solid #000',
'width':vals.width,
'height':vals.height,
'position':'relative'
if (parameters && $type(parameters) == 'object') $extend(vals, parameters);
if (vals.height < 12) vals.height = 12;
var obj = new Element('div', {
'id': vals.id,
'class': 'progressbar_wrapper',
'styles': {
'border': '1px solid #000',
'width': vals.width,
'height': vals.height,
'position': 'relative'
}
});
obj.vals=vals;
obj.vals = vals;
obj.vals.value = $pick(value, 0); // Fix by Chris
obj.vals.dark=new Element('div',{
'id':vals.id+'_dark',
'class':'progressbar_dark',
'styles':{
'width':vals.width,
'height':vals.height,
'background':vals.darkbg,
'color':vals.darkfg,
'position':'absolute',
'text-align':'center',
'left':0,
'top':0,
'line-height':vals.height-2
obj.vals.dark = new Element('div', {
'id': vals.id + '_dark',
'class': 'progressbar_dark',
'styles': {
'width': vals.width,
'height': vals.height,
'background': vals.darkbg,
'color': vals.darkfg,
'position': 'absolute',
'text-align': 'center',
'left': 0,
'top': 0,
'line-height': vals.height - 2
}
});
obj.vals.light=new Element('div',{
'id':vals.id+'_light',
'class':'progressbar_light',
'styles':{
'width':vals.width,
'height':vals.height,
'background':vals.lightbg,
'color':vals.lightfg,
'position':'absolute',
'text-align':'center',
'left':0,
'top':0,
'line-height':vals.height-2
obj.vals.light = new Element('div', {
'id': vals.id + '_light',
'class': 'progressbar_light',
'styles': {
'width': vals.width,
'height': vals.height,
'background': vals.lightbg,
'color': vals.lightfg,
'position': 'absolute',
'text-align': 'center',
'left': 0,
'top': 0,
'line-height': vals.height - 2
}
});
obj.appendChild(obj.vals.dark);
obj.appendChild(obj.vals.light);
obj.getValue=ProgressBar_getValue;
obj.setValue=ProgressBar_setValue;
if(vals.width)obj.setValue(vals.value);
else setTimeout('ProgressBar_checkForParent("'+obj.id+'")',1);
obj.getValue = ProgressBar_getValue;
obj.setValue = ProgressBar_setValue;
if (vals.width) obj.setValue(vals.value);
else setTimeout('ProgressBar_checkForParent("' + obj.id + '")', 1);
return obj;
}
});
function ProgressBar_getValue(){
function ProgressBar_getValue() {
return this.vals.value;
}
function ProgressBar_setValue(value){
value=parseFloat(value);
if(isNaN(value))value=0;
if(value>100)value=100;
if(value<0)value=0;
this.vals.value=value;
function ProgressBar_setValue(value) {
value = parseFloat(value);
if (isNaN(value)) value = 0;
if (value > 100) value = 100;
if (value < 0) value = 0;
this.vals.value = value;
this.vals.dark.empty();
this.vals.light.empty();
this.vals.dark.appendText(value+'%');
this.vals.light.appendText(value+'%');
var r=parseInt(this.vals.width*(value/100));
this.vals.dark.setStyle('clip','rect(0,'+r+'px,'+this.vals.height+'px,0)');
this.vals.light.setStyle('clip','rect(0,'+this.vals.width+'px,'+this.vals.height+'px,'+r+'px)');
this.vals.dark.appendText(value + '%');
this.vals.light.appendText(value + '%');
var r = parseInt(this.vals.width * (value / 100));
this.vals.dark.setStyle('clip', 'rect(0,' + r + 'px,' + this.vals.height + 'px,0)');
this.vals.light.setStyle('clip', 'rect(0,' + this.vals.width + 'px,' + this.vals.height + 'px,' + r + 'px)');
}
function ProgressBar_checkForParent(id){
var obj=$(id);
if(!obj)return;
if(!obj.parentNode)return setTimeout('ProgressBar_checkForParent("'+id+'")',1);
obj.setStyle('width','100%');
var w=obj.offsetWidth;
obj.vals.dark.setStyle('width',w);
obj.vals.light.setStyle('width',w);
obj.vals.width=w;
function ProgressBar_checkForParent(id) {
var obj = $(id);
if (!obj) return;
if (!obj.parentNode) return setTimeout('ProgressBar_checkForParent("' + id + '")', 1);
obj.setStyle('width', '100%');
var w = obj.offsetWidth;
obj.vals.dark.setStyle('width', w);
obj.vals.light.setStyle('width', w);
obj.vals.width = w;
obj.setValue(obj.vals.value);
}
var ProgressBars=0;
var ProgressBars = 0;