var ProgressBar=new Class({
  Implements: [Events,Options],
  Options: {
    'id': '',
    'initPos': 0 //0-100
  },
  initialize: function(o){
    this.id=(o.id?o.id:'pBar');
    this.initPos=(o.initPos?o.initPos:0);
    this.pbOuter=$(this.id);
    if(this.pbOuter){
      this.pbInner=new Element('div',{'class':'pbInner'}).setStyles({
        'width': this.pbOuter.offsetWidth/100*this.initPos,
        'height':'100%'
      });      
    } else {
      this.pbOuter=new Element('div',{'id':'pBar','class':'pbOuter'});
    }
    this.pos=this.initPos;
    this.addEvents({
      'ready': function(){console.log('Progress finished');},
      'refresh': function(){ this.pbInner.setStyle('width',this.pbOuter.offsetWidth/100*this.pos)}
    });
    
    this.pbOuter.adopt(this.pbInner);
  },
  Ready: function(){return this.id!=""&&$(this.id)&&this.initPos>-1;},
  Step: function(dir,val){
    if(val<1)val=1;
    if((dir==true&&this.pos==100)||(dir==false&&this.pos==0)){this.fireEvent('ready');return false;}
    else {
      this.pos+=(dir?val:val*-1);
      this.fireEvent('refresh');
    }
  },
  setPos: function(val){this.pos=val; this.fireEvent('refresh');}
});
