//
// autoscroll.js
//      author: taketin 2008/06/10
//      prototype.js依存
//

// 移動スピード
var spd = 0.03;

var moveID = false;
var pos = 0;

// 往復移動
function autoSlide() {
    var item = $('container');
    var target = Element.getDimensions(item); // div#containerのサイズを取得
    if (navigator.userAgent.match(/MSIE/)) {
        var n = target.width / 2;   // ieにてwidthが2倍になるバグ対応
    } else {
        var n = target.width;
    }
    if(!moveID) {
        var f ="slideMe_round_one(" + n + ")";
        moveID = setTimeout(f,0);
    }
}

// 往復スクロール（往）
function slideMe_round_one(n) {
  pos += Math.ceil((n-pos)*spd);
  self.scroll(pos,0);
  if ((n-pos) <= 1) {
    pos = n;
    self.scroll(n,0);
    n = 0;
    clearTimeout(moveID);
    var f ="slideMe_round_two(" + n + ")";
    moveID = setTimeout(f,0);
    return;
  }
  moveID = setTimeout("slideMe_round_one(" + n + ")",0);
}

// 往復スクロール（復）
function slideMe_round_two(n) {
  pos -= Math.ceil((pos-n)*spd);
  self.scroll(pos,0);
  if (Math.abs(n-pos) <= 1) {
    pos = n;
    self.scroll(n,0);
    clearTimeout(moveID);
    moveID = false;
    return;
  }
  moveID = setTimeout("slideMe_round_two(" + n + ")",0);
}

// 絶対移動（端まで）
function slidePageToEdge() {
  var item = $('container');
  var target = Element.getDimensions(item); // div#containerのサイズを取得
  if (navigator.userAgent.match(/MSIE/)) {
    var n = target.width / 2;   // ieにてwidthが2倍になるバグ対応
  } else {
    var n = target.width;
  }
  if(!moveID) {
    var d = (n>pos)? "left" : "right";
    var f ="slideMe_"+ d +"(" + n + ")";
    moveID = setTimeout(f,0);
  }
}

// 絶対移動
function slidePageTo(n) {
  if(!moveID) {
    var d = (n>pos)? "left" : "right";
    var f ="slideMe_"+ d +"(" + n + ")";
    moveID = setTimeout(f,0);
  }
}

// 相対移動
function slidePageBy(n) {
  if(!moveID) {
    var d = (n>0)? "left" : "right";
    var f ="slideMe_"+ d +"(" + (pos+n) + ")";
    moveID = setTimeout(f,0);
  }
}

// 右方向へスクロール
function slideMe_left(n) {
  pos += Math.ceil((n-pos)*spd);
  self.scroll(pos,0);
  if ((n-pos) <= 1) {
    pos = n;
    self.scroll(n,0);
    clearTimeout(moveID);
    moveID = false;
    return;
  }
  moveID = setTimeout("slideMe_left(" + n + ")",0);
}

// 左方向へスクロール
function slideMe_right(n) {
  pos -= Math.ceil((pos-n)*spd);
  self.scroll(pos,0);
  if (Math.abs(n-pos) <= 1) {
    pos = n;
    self.scroll(n,0);
    clearTimeout(moveID);
    moveID = false;
    return;
  }
  moveID = setTimeout("slideMe_right(" + n + ")",0);
}

// 停止
function stopSlide() {
    clearTimeout(moveID);
    moveID = false;
}