var scroll;
  function scroll_stop() {
    scroll=false;
  }

  function scrollDir(step,interval) {
    var o = document.getElementById("subscroller");
    var c = document.getElementById("scroller");
    var off = 17;
    

      function go_scroll2() {
        var off = 0;

        o.style.left = (o.offsetLeft+step)+'px';

/*
        document.getElementById("log").innerHTML = Math.abs(o.offsetLeft)+c.offsetWidth+step;
        document.getElementById("log").innerHTML += '\n';
        document.getElementById("log").innerHTML += o.offsetWidth;
        document.getElementById("log").innerHTML += '\n';
        document.getElementById("log").innerHTML += step;
*/
        if (scroll && step>0 && scroll && (o.offsetLeft+step)<0 )
          setTimeout(go_scroll2,interval);

        if (scroll && step <0 && (Math.abs(o.offsetLeft)+c.offsetWidth+step) < (o.offsetWidth-off) )
          setTimeout(go_scroll2,interval);
      }

    scroll = true;
    if (step>0 && scroll && (o.offsetLeft+step)<0 ) {
      o.style.left = (o.offsetLeft+step)+'px';
      setTimeout(go_scroll2,interval);
    }
    if (step <0 && (Math.abs(o.offsetLeft)+c.offsetWidth+step) < o.offsetWidth-off) {
      o.style.left = (o.offsetLeft+step)+'px';
      setTimeout(go_scroll2,interval);
    }



  }

  function scroll_to(left, dur, func) {

//    left = left;

    var o = document.getElementById("subscroller");
    var offset = o.offsetLeft;
    var l = offset * (-1);

    var sStart = (new Date()).getTime();
    var x = o.offsetLeft;


    var d = left-l;

    if (d > 0)
      step_mod = -1;
    else
      step_mod = 1;

    d = Math.abs(d);

    function go_scroll() {
      var offset = o.offsetLeft;
      var l = offset * (-1);

      var el = (new Date()).getTime() - sStart;

      if (el < dur) {

        step = Math.floor(  d*(Math.sin( (Math.PI/(dur*2))*el ))) ;

        //document.getElementById("slog").innerHTML = step;

        o.style.left = (x+(step*step_mod))+'px';

        setTimeout(go_scroll,10);
      } else {
        o.style.left = (x+(d*step_mod))+'px';
      }

    }

    setTimeout(go_scroll,1);

  }

