// vertical slider control

function initSlider()
{
  var slider = new Control.Slider('handle', 'track', {
        axis: 'vertical',
        onSlide: function(v) { scrollVertical(v, $('scrollable'), slider);  },
        onChange: function(v) { scrollVertical(v, $('scrollable'), slider); }
  });

  // disable vertical scrolling if text doesn't overflow the div
  if ($('scrollable').scrollHeight <= $('scrollable').offsetHeight && !modebody) 
  {
    slider.setDisabled();
    if ($('wrap')) $('wrap').hide();
    if ($('wrap1')) $('wrap1').hide();
  }
}

function initSlider2()
{
  var slider2 = new Control.Slider('handle2', 'track2', {
        axis: 'vertical',
        onSlide: function(v) { scrollVertical(v, $('scrollable2'), slider2);  },
        onChange: function(v) { scrollVertical(v, $('scrollable2'), slider2); }
  });

  // disable vertical scrolling if text doesn't overflow the div
  if ($('scrollable2').scrollHeight <= $('scrollable2').offsetHeight) 
  {
    slider2.setDisabled();
    $('wrap2').hide();
  }
}

function slide2(scr)
{
  var h = $('track2').getHeight() - $('handle2').getHeight(); 

  var sl = parseInt($('handle2').style.top) + scr;
  if (sl > h) sl = h;
  if (sl < 0) sl = 0;
  $('handle2').style.top = sl + 'px';
  $('scrollable2').scrollTop = sl / h * ( $('scrollable2').scrollHeight-$('scrollable2').offsetHeight);
}

function slide(scr)
{
  var h = $('track').getHeight() - $('handle').getHeight(); 

  var sl = parseInt($('handle').style.top) + scr;
  if (sl > h) sl = h;
  if (sl < 0) sl = 0;
  $('handle').style.top = sl + 'px';
  $('scrollable').scrollTop = sl / h * ( $('scrollable').scrollHeight-$('scrollable').offsetHeight);
}

// scroll the element vertically based on its width and the slider maximum value
function scrollVertical(value, element, slider) 
{
  element.scrollTop = Math.round(value/slider.maximum*(element.scrollHeight-element.offsetHeight));
}
