var ScrollID = new Array();
var ScrollNo = new Array();
var ScrollSet = new Array();
var ScrollDivRange = new Array();

function scrollStart() {
  for(var j = 0; j < ScrollID.length; j ++) {
    ScrollDivRange[j] = new Array();

    for(var i = 1; i < ScrollNo[j] + 1; i ++) {
      $(ScrollID[j]+i).style.display = 'block';
      $(ScrollID[j]+i).style.position = 'absolute';
      //$(ScrollID[j]+i).style.overflow = 'hidden';
      var dimen = $(ScrollID[j]+i).getDimensions();
      ScrollDivRange[j][i] = new Array(dimen.width, dimen.height);
    }

    $(ScrollID[j]).style.position = 'relative';
    $(ScrollID[j]).style.overflow = 'hidden';
    $(ScrollID[j]).style.width = ScrollSet[j][1]+(parseInt(ScrollSet[j][1])==ScrollSet[j][1]?'px':'');
    $(ScrollID[j]).style.height = ScrollSet[j][2]+(parseInt(ScrollSet[j][2])==ScrollSet[j][2]?'px':'');

	var adimen = $(ScrollID[j]).getDimensions();
	$(ScrollID[j]).style.width = adimen.width+'px';
	$(ScrollID[j]).style.height = adimen.height+'px';
	ScrollSet[j][1] = adimen.width;
	ScrollSet[j][2] = adimen.height;

    var dr = 0;
    if(ScrollSet[j][0].search(/top/i) !== -1) dr += 1;
    else if(ScrollSet[j][0].search(/bottom/i) !== -1) dr += 2;
    if(ScrollSet[j][0].search(/right/i) !== -1) dr += 4;
    else if(ScrollSet[j][0].search(/left/i) !== -1) dr += 8;

    var tDim = new Array(0,0);
    if((dr & 1) || (dr & 8)) {
      for(var i = 1; i < ScrollNo[j] + 1; i ++) {
        if(dr & 1)
          $(ScrollID[j]+i).style.top = (ScrollSet[j][8]?0:ScrollSet[j][2])+tDim[1]+((i-1) * ScrollSet[j][4])+'px';
        if(dr & 8)
          $(ScrollID[j]+i).style.left = (ScrollSet[j][8]?0:ScrollSet[j][1])+tDim[0]+((i-1) * ScrollSet[j][3])+'px';
        tDim[0] += ScrollDivRange[j][i][0];
        tDim[1] += ScrollDivRange[j][i][1];
      }
    }
    tDim = new Array(0,0);
    if((dr & 2) || (dr & 4)) {
      for(var i = ScrollNo[j]; i >= 1; i --) {
        tDim[0] += ScrollDivRange[j][i][0];
        tDim[1] += ScrollDivRange[j][i][1];
        if(dr & 2)
          $(ScrollID[j]+i).style.top = (ScrollSet[j][8]?ScrollSet[j][2]:0)-(tDim[1] + (ScrollNo[j]-i) * ScrollSet[j][4])+'px';
        if(dr & 4)
          $(ScrollID[j]+i).style.left = (ScrollSet[j][8]?ScrollSet[j][1]:0)-(tDim[0] + (ScrollNo[j]-i) * ScrollSet[j][3])+'px';
      }
    }
    setTimeout('scrollRun('+dr+','+j+')', ScrollSet[j][5]+(ScrollSet[j][7]?ScrollSet[j][7]:0));
  }
}

if(window.FastInit) {
	FastInit.addOnLoad(function() {scrollStart();});
} else {
	Event.observe(window, 'load', function() {scrollStart();});
}

var scrollPause = new Array();
function scrollRun(dr, j, pausing) {
  if(pausing == 1) {scrollPause[j] = true;return;}
  if(pausing == -1) {scrollPause[j] = false;return;}
  var bExtraPause = false;
  if(!scrollPause[ScrollID[j]]) {
    for(var i = 1; i < ScrollNo[j] + 1; i ++) {
      // move to up
      if(dr & 1) {
        if(parseInt($(ScrollID[j]+i).style.top) > -(ScrollSet[j][4]+ScrollDivRange[j][i][1])) {
          $(ScrollID[j]+i).style.top = (parseInt($(ScrollID[j]+i).style.top)-ScrollSet[j][6])+'px';
        } else {
          $(ScrollID[j]+i).style.top = (parseInt($(ScrollID[j]+((i-1)?i-1:ScrollNo[j])).style.top) + ScrollSet[j][4] + ScrollDivRange[j][((i-1)?i-1:ScrollNo[j])][1])+'px';
        }
        if(ScrollSet[j][7] && parseInt($(ScrollID[j]+i).style.top) >= 0 && parseInt($(ScrollID[j]+i).style.top) < ScrollSet[j][6]) bExtraPause = true;
      }
      // move to bottom
      if(dr & 2) {
        if(parseInt($(ScrollID[j]+i).style.top) < ScrollSet[j][2]) {
          $(ScrollID[j]+i).style.top = (parseInt($(ScrollID[j]+i).style.top)+ScrollSet[j][6])+'px';
        } else {
          $(ScrollID[j]+i).style.top = (parseInt($(ScrollID[j]+(i+1<=ScrollNo[j]?i+1:1)).style.top) - ScrollSet[j][4] - ScrollDivRange[j][i][1])+'px';
        }
        if(ScrollSet[j][7] && parseInt($(ScrollID[j]+i).style.top) > 0 && parseInt($(ScrollID[j]+i).style.top) <= ScrollSet[j][6]) bExtraPause = true;
      }
      // move to right
      if(dr & 4) {
        if(parseInt($(ScrollID[j]+i).style.left) < ScrollSet[j][1]) {
          $(ScrollID[j]+i).style.left = (parseInt($(ScrollID[j]+i).style.left)+ScrollSet[j][6])+'px';
        } else {
          $(ScrollID[j]+i).style.left = (parseInt($(ScrollID[j]+(i+1<=ScrollNo[j]?i+1:1)).style.left) - ScrollSet[j][3] - ScrollDivRange[j][i][0])+'px';
        }
        if(ScrollSet[j][7] && parseInt($(ScrollID[j]+i).style.left) > 0 && parseInt($(ScrollID[j]+i).style.left) <= ScrollSet[j][6]) bExtraPause = true;
      }
      // move to left
      if(dr & 8) {
        if(parseInt($(ScrollID[j]+i).style.left) > -ScrollDivRange[j][i][0]) {
          $(ScrollID[j]+i).style.left = (parseInt($(ScrollID[j]+i).style.left)-ScrollSet[j][6])+'px';
        } else {
          $(ScrollID[j]+i).style.left = (parseInt($(ScrollID[j]+((i-1)?i-1:ScrollNo[j])).style.left) + ScrollSet[j][3] + ScrollDivRange[j][((i-1)?i-1:ScrollNo[j])][0])+'px';
        }
        if(ScrollSet[j][7] && parseInt($(ScrollID[j]+i).style.left) >= 0 && parseInt($(ScrollID[j]+i).style.left) < ScrollSet[j][6]) bExtraPause = true;
      }
    }
  }
  setTimeout('scrollRun('+dr+','+j+')', ScrollSet[j][5]+(bExtraPause?ScrollSet[j][7]:0));
}
