function scroll_v(element, step)
{
 if (element)
 {
  var s = parseInt(element.scrollTop);
  var m = parseInt(element.scrollHeigth) - parseInt(element.clientHeight);
  s += step;
  if (s < 0) s = 0; else
  if (s > m) s = m;
  element.scrollTop = s;
 }
}

function scroll_h(element, step)
{
 if (element)
 {
  var s = parseInt(element.scrollLeft);
  var m = parseInt(element.scrollWidth) - parseInt(element.clientWidth);
  s += step;
  if (s < 0) s = 0; else
  if (s > m) s = m;
  element.scrollLeft = s;
 }
}

var scroll_timer = false;

function start_scroll_v(element, step)
{
 if (scroll_timer) clearInterval(scroll_timer);
 var date = new Date();
 var time = date.getTime();
 scroll_timer = setInterval(function() {
  date = new Date();
  scroll_v(element, Math.round(step * (date.getTime() - time) / 25));
  time = date.getTime();
 }, 25);
}

function start_scroll_h(element, step)
{
 if (scroll_timer) clearInterval(scroll_timer);
 var date = new Date();
 var time = date.getTime();
 scroll_timer = setInterval(function() {
  date = new Date();
  scroll_h(element, Math.round(step * (date.getTime() - time) / 25));
  time = date.getTime();
 }, 25);
}

function stop_scroll()
{
 if (scroll_timer)
 {
  clearInterval(scroll_timer);
  scroll_timer = false;
 }
}
