﻿var MD_ScrollBar = new Class(
{
  Implements: [Events, Options],
  options:
  {
    wheel: 10
  },
  initialize: function(name, options)
  {
    this.setOptions(options);
    this.name         = name;
    this.oContent     = $(name+'_Content');
    this.oZoneContent = $(name+'_ZoneCt');
    this.oCursor      = $(name+'_Thumb');
    this.oZoneScroll  = $(name+'_Track');
    this.update();
  },
  update:function()
  {
    if((this.oContent.getSize().y) > (this.oZoneContent.getSize().y))
    {
      this.oScroll = new Fx.Scroll(this.name+'_ZoneCt',{wait: false});
      var oThis=this;
      this.oSlider = new Slider(this.oZoneScroll, this.oCursor,
      {
        mode: 'vertical',
        steps: oThis.oContent.getSize().y-(oThis.oZoneContent.getSize().y),
        onChange: function(step)
        {
          oThis.oZoneContent.scrollTo(0,step);
        }
      }).set(0);
      oThis.oZoneContent.addEvent('mousewheel', function(e)
      {
        e = new Event(e).stop();
        var step = oThis.oSlider.step - e.wheel * oThis.options.wheel;
        oThis.oSlider.set(step);
      });
      oThis.oZoneScroll.addEvent('mousewheel', function(e)
      {
        e = new Event(e).stop();
        var step = oThis.oSlider.step - e.wheel * oThis.options.wheel;
        oThis.oSlider.set(step);
      });
      this.oZoneScroll.setStyle('visibility','visible');
    }
    else
    {this.oZoneScroll.setStyle('visibility','hidden');    }
  }
});