var WINDOW_HEIGHT = 300;
var SCROLL_HEIGHT = 232;
var SCROLL_SPEED = 4;

var gclname = '';
var gclh = 0;

$(document).ready(function() {
  if ($('.first_img').length > 0) {

    var ti = $('.first_img img').eq(0);
    var tp = $('.first_img p').eq(0);

    $('.images_sel li').mouseover(function() {
      var ci = $(this).find('img').eq(0);
      ti.attr('src', ci.attr('src').replace(/-s/, '-b'));
      ti.attr('alt', ci.attr('alt'));
      tp.html(ci.attr('alt'));
    });
  }

  if ($('.first_img').length > 0 && $('#article_box').height() > WINDOW_HEIGHT) {
//    var h = $('#article_box').height();
    $('#article_box').css({ height: '300px', overflow: 'auto' });
//    $('#scrollbar').show();
//    scrollbar.init(h, 'small');
//    $(document).mousemove(function(e) { scrollbar.track(e); });
//    $(document).mouseup(function() { scrollbar.finish(); });
//    window.setInterval(function() { scrollbar.trackArrow(); }, 100);
  }
//
  if ($('.first_img').length == 0 && $('#article_box').height() > 2 * WINDOW_HEIGHT) {
//    var h = $('#article_box').height();
    $('#article_box').css({ height: '600px', overflow: 'auto' });
//    $('#scrollbar').show();
//    scrollbar.init(h, 'big');
//    $(document).mousemove(function(e) { scrollbar.track(e); });
//    $(document).mouseup(function() { scrollbar.finish(); });
//    window.setInterval(function() { scrollbar.trackArrow(); }, 100);
  }

  $('#c0').css({height: ($('#c1').height()-35)+'px'});
  var c0h = $('#sidenav').height() + $('#c0 .info').height() + 16;
  if ($('#c0').height() < c0h) $('#c0').css({height: c0h+'px'});
});

var scrollbar = {
  is_down: false,
  sy: 0,
  th: 0,
  py: 0,
  wh: 0.0,
  mv: 0,
  ry: 0,
  hh: 0,
  hold: false,

  init: function(h, clname) {
    scrollbar.hh = clname == 'small' ? SCROLL_HEIGHT : SCROLL_HEIGHT + 300;

    $('#scrollbar').addClass(clname);

    $('#scrollbg').append('<div id="scrollbgtop"></div><div id="scrollbgmid"></div><div id="scrollbgbot"></div>');
    $('#scrollobj').append('<div id="scrollobjtop"></div><div id="scrollobjmid"></div><div id="scrollobjbot"></div>');

    var pct = Math.floor((WINDOW_HEIGHT / h) * scrollbar.hh);

    $('#scrollobjmid').css({ height: pct + 'px' });

    scrollbar.th = pct;
    scrollbar.py = 0;
    scrollbar.wh = h;

    $('#scrollobj').mousedown(function(e) {
      scrollbar.is_down = true;
      scrollbar.sy = e.pageY;
      scrollbar.ry = scrollbar.py;
    });

    $('#scrollobj').mouseup(function() { scrollbar.finish; });

    $('#scrollup').mousedown(function() { scrollbar.hold = true; scrollbar.mv = -1; });
    $('#scrolldown').mousedown(function() { scrollbar.hold = true; scrollbar.mv = 1; });

    $('#scrollup, #scrolldown').mouseup(function() { scrollbar.hold = false; scrollbar.mv = 0; });
    $('#scrollup, #scrolldown').mouseout(function() { scrollbar.hold = false; scrollbar.mv = 0; });

    $('#article_box').mousewheel(function(e) {
      scrollbar.mv = e.detail;
      e.stopPropagation();
      return false;
    });
    gclname = clname;
    gclh = h;
    window.setTimeout(function() {
      var h = $('#article_box .artbody').height();
      if (h != gclh) {
        gclh = h;
        scrollbar.wh = h;
        scrollbar.hh = gclname == 'small' ? SCROLL_HEIGHT : SCROLL_HEIGHT + 300;
        var pct = Math.floor((WINDOW_HEIGHT / h) * scrollbar.hh);
        $('#scrollobjmid').css({ height: pct + 'px' });
      }
    }, 100);
  },

  track: function(e) {
    if (!scrollbar.is_down) return;
    var mov = e.pageY - scrollbar.sy;
    scrollbar.move(mov);
  },

  trackArrow: function() {
    if (scrollbar.mv != 0) {
      scrollbar.ry = scrollbar.py;
      scrollbar.move(scrollbar.mv * SCROLL_SPEED);
      if (!scrollbar.hold) scrollbar.mv = 0;
    }
  },

  move: function(mov) {
    mov += scrollbar.ry;
    if (mov < 0) mov = 0;
    if (mov >= scrollbar.hh - scrollbar.th) mov = scrollbar.hh - scrollbar.th - 1;
    scrollbar.py = mov;
    $('#article_box').scrollTop(Math.round((mov / scrollbar.hh) * scrollbar.wh));
    $('#scrollobj').css({ top: mov + 'px' });
    $('#scrollbg').focus();
  },

  finish: function() {
    if (!scrollbar.is_down) return;
    scrollbar.is_down = false;
    $('#scrollbg').focus();
  }
};
