$(document).ready(function(){
  $(".schools").each(function(i,schools){
    $(".padding",schools).each(function(j,padding){
      var schoolsHeight = $(schools).innerHeight();
      var paddingHeight = $(padding).innerHeight();
      var diff = paddingHeight - schoolsHeight;
      var perc = schoolsHeight / paddingHeight;

      var scrollbarHeight = $(".scrollbar").innerHeight();
      var scrollerHeight = Math.round(scrollbarHeight*perc);
      var scrollerDiff = scrollbarHeight - scrollerHeight;
      var scrollTop = 0;
      var scrollPercent = 0;
      $("a.scroller").css("height", scrollerHeight + "px");
      var mouseIsDown = false;
      $(document).mouseup(function(){
        mouseIsDown = false;
      });
      $(window).mousewheel(function(event, delta){
        scrollPercent += .05 * -1 * delta;
        if( scrollPercent > 1 ) {
          scrollPercent = 1;
        } else if( scrollPercent < 0 ) {
          scrollPercent = 0;
        }
        scrollTop = scrollerDiff*scrollPercent;
        $("a.scroller").css("top",scrollTop+"px");
        var newpadx = diff * scrollPercent;
        $(padding).css("top",(0-newpadx)+"px");
      });
      var scroller = $("a.scroller").get(0);
      $(scroller).mousedown(function(event, handler){
        mouseIsDown = true;
        $(scroller).addClass("scroller_over");
        $(scroller).removeClass("scroller");
        if( event.preventDefault ){
          event.preventDefault();
        }
        var ey = event.pageY;
        var oy = $(scroller).offset().top;
        var ay = ey - oy;
        $(document).mousemove(function(event, handler){
          if( !mouseIsDown ) {
            $(document).mousemove(function(event, handler){});
            $(scroller).addClass("scroller");
            $(scroller).removeClass("scroller_over");
            return;
          }
          var eny = event.pageY;
          var by = $(".scrollbar").offset().top;
          var any = eny - by - ay;
          scrollPercent = any / scrollerDiff;
          if( scrollPercent < 0 ) {
            scrollPercent = 0;
          } else if( scrollPercent > 1 ) {
            scrollPercent = 1;
          }

          scrollTop = scrollerDiff*scrollPercent;
          $(scroller).css("top",scrollTop+"px");
          var newpadx = diff * scrollPercent;
          $(padding).css("top",(0-newpadx)+"px");
        });
      });
    });
  });
});
