var NS4 = (document.layers) ? true : false;
var IE4 = (document.all) ? true : false;


var interval;
var increment;
var increment_save
var pause;
var scrollerColor;
var leftPadding;
var topPadding;
var direction;
var scrollerSpace;

var scrollerLeft;
var scrollerTop;
var scrollerWidth;
var scrollerHeight;

var tgrTop;



var arrItems = new Array();


//function initScroller(interval, increment, pause, scrollerColor, leftPadding, topPadding, direction, scrollerSpace) {
//
//	this.interval = interval;								// Scroller Speed(Å¬¼ö·Ï ´À¸³´Ï´Ù)
//	this.increment = increment;						// Scroller Move Unit(½ºÅ©·Ñ·¯ ÀÌµ¿ ´ÜÀ§, Å¬¼ö·Ï ¼Óµµ°¡ ºü¸¨´Ï´Ù.)
//	this.increment_save = increment;			// Scroller Move Unit(¸ØÃè´Ù°¡ ´Ù½Ã ¿òÁ÷ÀÏ ¶§¸¦ À§ÇÏ¿© increment¸¦ º¸°ü)
//	this.pause = pause;									// Scroller Stop Time(1/1000)
//	this.scrollerColor = scrollerColor;				// Scroller Space Background Color(½ºÅ©·Ñ·¯ ¹è°æ »ö»ó)
//	this.leftPadding = leftPadding;					// Scroller Left Space(½ºÅ©·Ñ·¯ ¿ÞÂÊ ¿©¹é)
//	this.topPadding = topPadding;				// Scroller Top Space(½ºÅ©·Ñ·¯ »ó´Ü ¿©¹é)
//	this.direction = direction; 						// Scroll Direction (1:UP, 2:Down, 3:Left, 4:Right)
//	this.scrollerSpace = scrollerSpace;			// Scroller Space(½ºÅ©·Ñ·¯°¡ À§Ä¡ÇÒ °ø°£)
//
//	this.scrollerLeft = (NS4) ? eval("document.images."+this.scrollerSpace+".x") :  eval(this.scrollerSpace+".offsetLeft");
//	this.scrollerTop = (NS4) ? eval("document.images."+this.scrollerSpace+".y") :  eval(this.scrollerSpace+".offsetTop");
//	this.scrollerWidth = (NS4) ? eval("document.images."+this.scrollerSpace+".width") :  eval(this.scrollerSpace+".width");
//	this.scrollerHeight = (NS4) ? eval("document.images."+this.scrollerSpace+".height") :  eval(this.scrollerSpace+".height");
//
//}

function initScroller(interval, increment, pause, scrollerColor, leftPadding, topPadding, direction, scrollerSpace) {

	this.interval = interval;								// Scroller Speed(Å¬¼ö·Ï ´À¸³´Ï´Ù)
	this.increment = increment;						// Scroller Move Unit(½ºÅ©·Ñ·¯ ÀÌµ¿ ´ÜÀ§, Å¬¼ö·Ï ¼Óµµ°¡ ºü¸¨´Ï´Ù.)
	this.increment_save = increment;			// Scroller Move Unit(¸ØÃè´Ù°¡ ´Ù½Ã ¿òÁ÷ÀÏ ¶§¸¦ À§ÇÏ¿© increment¸¦ º¸°ü)
	this.pause = pause;									// Scroller Stop Time(1/1000)
	this.scrollerColor = scrollerColor;				// Scroller Space Background Color(½ºÅ©·Ñ·¯ ¹è°æ »ö»ó)
	this.leftPadding = leftPadding;					// Scroller Left Space(½ºÅ©·Ñ·¯ ¿ÞÂÊ ¿©¹é)
	this.topPadding = topPadding;				// Scroller Top Space(½ºÅ©·Ñ·¯ »ó´Ü ¿©¹é)
	this.direction = direction; 						// Scroll Direction (1:UP, 2:Down, 3:Left, 4:Right)
	this.scrollerSpace = scrollerSpace;			// Scroller Space(½ºÅ©·Ñ·¯°¡ À§Ä¡ÇÒ °ø°£)

	this.scrollerLeft = (NS4) ? eval("document.images."+this.scrollerSpace+".x") :  eval(this.scrollerSpace+".offsetLeft");
	this.scrollerTop = (NS4) ? eval("document.images."+this.scrollerSpace+".y") :  eval(this.scrollerSpace+".offsetTop");
	this.scrollerWidth = (NS4) ? eval("document.images."+this.scrollerSpace+".width") :  eval(this.scrollerSpace+".width");
	this.scrollerHeight = (NS4) ? eval("document.images."+this.scrollerSpace+".height") :  eval(this.scrollerSpace+".height");

}


// scrollerSpace ¸¦ Ã£Áö ¸øÇÏ´Â °æ¿ì ¾Æ·¡ÀÇ ÇÔ¼ö ÀÌ¿ë
function initScroller2(interval, increment, pause, scrollerColor, leftPadding, topPadding, direction, scrollerLeft, scrollerTop, scrollerWidth, scrollerHeight) {

	this.interval = interval;								// Scroller Speed(Å¬¼ö·Ï ´À¸³´Ï´Ù)
	this.increment = increment;						// Scroller Move Unit(½ºÅ©·Ñ·¯ ÀÌµ¿ ´ÜÀ§)
	this.increment_save = increment;				// Scroller Move Unit(¸ØÃè´Ù°¡ ´Ù½Ã ¿òÁ÷ÀÏ ¶§¸¦ À§ÇÏ¿© increment¸¦ º¸°ü)
	this.pause = pause;									// Scroller Stop Time(1/1000)
	this.scrollerColor = scrollerColor;				// Scroller Space Background Color(½ºÅ©·Ñ·¯ ¹è°æ »ö»ó)
	this.leftPadding = leftPadding;					// Scroller Left Space(½ºÅ©·Ñ·¯ ¿ÞÂÊ ¿©¹é)
	this.topPadding = topPadding;					// Scroller Top Space(½ºÅ©·Ñ·¯ »ó´Ü ¿©¹é)
	this.direction = direction; 							// Scroll Direction (1:UP, 2:Down, 3:Left, 4:Right)
	this.scrollerSpace = scrollerSpace;			// Scroller Space(½ºÅ©·Ñ·¯°¡ À§Ä¡ÇÒ °ø°£)

	this.scrollerLeft = scrollerLeft;
	this.scrollerTop = scrollerTop;
	this.scrollerWidth = scrollerWidth;
	this.scrollerHeight = scrollerHeight;

}

function showMessage(n, show) {
  var whichEl = (NS4) ? eval("message" + n) :
                        eval("message" + n + ".style");
  whichEl.visibility = (show) ? ((NS4) ? "show" : "visible") :
                                ((NS4) ? "hide" : "hidden");
}

function nextMessage() {
  var fromInd = current;
	if (fromInd==arrItems.length-1) {
		current=0;
	}
	else {
		current=fromInd+1;
	}

	if(direction == 1)
		scrollScrollerUp(fromInd, current);
	else if(direction == 2)
		scrollScrollerDown(fromInd, current);
	else if(direction == 3)
		scrollScrollerLeft(fromInd, current);
	else
		scrollScrollerRight(fromInd, current);
}

function moveUp() {
  if (NS4) {
    fromEl.top -= increment;
    if (toEl.top - increment <= toElTargetTop) {
      toEl.top = toElTargetTop;
      clearInterval(intervalID);
      fromEl.visibility = "hide";
      //timeoutID = setTimeout("nextMessage()", pause);
    } else {
      toEl.top -= increment;
    }
  } else {
    fromEl.pixelTop -= increment;
    if (toEl.pixelTop - increment <= toElTargetTop) {
      toEl.pixelTop = toElTargetTop;
      clearInterval(intervalID);
      fromEl.visibility = "hidden";
      //timeoutID = setTimeout("nextMessage()", pause);
    } else {
      toEl.pixelTop -= increment;
    }
  }
}

function moveDown() {
  if (NS4) {
    fromEl.top += increment;
    if (toEl.top + increment >= toElTargetTop) {
      toEl.top = toElTargetTop;
      clearInterval(intervalID);
      fromEl.visibility = "hide";
      //timeoutID = setTimeout("nextMessage()", pause); ½Ã°£¿¡ µû¶ó ½ºÅ©·Ñ
    } else {
      toEl.top += increment;
    }
  } else {
    fromEl.pixelTop += increment;
    if (toEl.pixelTop + increment >= toElTargetTop) {
      toEl.pixelTop = toElTargetTop;
      clearInterval(intervalID);
      fromEl.visibility = "hidden";
      //timeoutID = setTimeout("nextMessage()", pause); ½Ã°£¿¡ µû¶ó ½ºÅ©·Ñ
    } else {
      toEl.pixelTop += increment;
    }
  }
}

function moveLeft() {
  if (NS4) {
    fromEl.left -= increment;
    if (toEl.left - increment <= toElTargetLeft) {
      toEl.left = toElTargetLeft;
      clearInterval(intervalID);
      fromEl.visibility = "hide";
      timeoutID = setTimeout("nextMessage()", pause);
    } else {
      toEl.left -= increment;
    }
  } else {
    fromEl.pixelLeft -= increment;
    if (toEl.pixelLeft - increment <= toElTargetLeft) {
      toEl.pixelLeft = toElTargetLeft;
      clearInterval(intervalID);
      fromEl.visibility = "hidden";
      timeoutID = setTimeout("nextMessage()", pause);
    } else {
      toEl.pixelLeft -= increment;
    }
  }
}

function moveRight() {
  if (NS4) {
    fromEl.left += increment;
    if (toEl.left + increment >= toElTargetLeft) {
      toEl.left = toElTargetLeft;
      clearInterval(intervalID);
      fromEl.visibility = "hide";
      timeoutID = setTimeout("nextMessage()", pause);
    } else {
      toEl.left += increment;
    }
  } else {
    fromEl.pixelLeft += increment;
    if (toEl.pixelLeft + increment >= toElTargetLeft) {
      toEl.pixelLeft = toElTargetLeft;
      clearInterval(intervalID);
      fromEl.visibility = "hidden";
      timeoutID = setTimeout("nextMessage()", pause);
    } else {
      toEl.pixelLeft += increment;
    }
  }
}

function scrollScrollerUp(from, to) {
  if (NS4) {
    fromEl = eval("message" + from);
    toEl = eval("message" + to);
    toEl.top = fromEl.top + scrollerHeight;
    toElTargetTop = fromEl.top;
  } else {
    fromEl = eval("message" + from + ".style");
    toEl = eval("message" + to + ".style");
    toEl.pixelTop = fromEl.pixelTop + scrollerHeight;
//    toElTargetTop = fromEl.pixelTop;
    toElTargetTop = tgrTop;
  }
  showMessage(to, true);
  intervalID = setInterval("moveUp()", interval);
}

function scrollScrollerDown(from, to) {
  if (NS4) {
    fromEl = eval("message" + from);
    toEl = eval("message" + to);
    toEl.top = fromEl.top - scrollerHeight;
    toElTargetTop = fromEl.top;
  } else {
    fromEl = eval("message" + from + ".style");
    toEl = eval("message" + to + ".style");
    toEl.pixelTop = fromEl.pixelTop - scrollerHeight;
    //toElTargetTop = fromEl.pixelTop;
    toElTargetTop = tgrTop;
  }
  showMessage(to, true);
  intervalID = setInterval("moveDown()", interval);
}

function scrollScrollerLeft(from, to) {
  if (NS4) {
    fromEl = eval("message" + from);
    toEl = eval("message" + to);
    toEl.left = fromEl.left + scrollerWidth;
    toElTargetLeft = fromEl.left;
  } else {
    fromEl = eval("message" + from + ".style");
    toEl = eval("message" + to + ".style");
	toEl.pixelLeft = fromEl.pixelLeft + scrollerWidth;
    toElTargetLeft = fromEl.pixelLeft;
  }
  showMessage(to, true);
  intervalID = setInterval("moveLeft()", interval);
}

function scrollScrollerRight(from, to) {
  if (NS4) {
    fromEl = eval("message" + from);
    toEl = eval("message" + to);
    toEl.left = fromEl.left - scrollerWidth;
    toElTargetLeft = fromEl.left;
  } else {
    fromEl = eval("message" + from + ".style");
    toEl = eval("message" + to + ".style");
	toEl.pixelLeft = fromEl.pixelLeft - scrollerWidth;
    toElTargetLeft = fromEl.pixelLeft;
  }
  showMessage(to, true);
  intervalID = setInterval("moveRight()", interval);
}

function makeIE() {
  var text = '<DIV ID="scroller" STYLE="position:absolute">';
  for (var i = arrItems.length - 1; i >= 0; i--) {
    text += '<DIV ID="message' + i +
            '" STYLE="position:absolute"></DIV>';
  }
  text += '</DIV>';

  document.body.insertAdjacentHTML("BeforeEnd", text);

  if(scroller) {
  with (scroller.style) {
    width = scrollerWidth;
    height = scrollerHeight;
    clip = "rect(0 " + scrollerWidth + " " + scrollerHeight + " 0)";
    backgroundColor = scrollerColor;
    pixelLeft = scrollerLeft;
    pixelTop = scrollerTop;
  }

  for (i = 0; i < arrItems.length; i++) {
    with (eval("message" + i + ".style")) {
      visibility = "hidden";
      pixelLeft = leftPadding;
      pixelTop = topPadding;
      width = scrollerWidth - leftPadding;
      backgroundColor = scrollerColor;
    }
  }
  }
}

function makeNS() {
  scroller = new Layer(scrollerWidth);

  with (scroller) {
    clip.right = scrollerWidth;
    clip.bottom = scrollerHeight;
    document.bgColor = scrollerColor;
    left = scrollerLeft;
    top = scrollerTop;
    visibility = "show";
  }

  for (var i = 0; i < arrItems.length; i++) {
    eval("message" + i + " = " +
         "new Layer(scrollerWidth - leftPadding, scroller)");
    with(eval("message" + i)) {
      visibility = "hide";
      left = leftPadding;
      top = topPadding;
      document.bgColor = scrollerColor;
    }
  }
}

function fillScroller() {
  var whichEl;
  if (NS4) {
    for (var i = 0; i < arrItems.length; i++) {
      whichEl = eval("message" + i);
      whichEl.document.write(arrItems[i]);
      whichEl.document.close();
    }
  } else {
    for (var i = 0; i < arrItems.length; i++) {
      whichEl = eval("message" + i);
      whichEl.innerHTML = arrItems[i];
    }
  }
}

function pauseScroller(){
	increment = 0;
}
function restartScroller(){
	increment = increment_save;
}
function startScroller() {
  if (NS4)
    makeNS()
  else
    makeIE();
  fillScroller();
  showMessage(0, true);
  tgrTop = (NS4) ? message0.top : message0.style.pixelTop;
  current = 0;
  timeoutID = setTimeout("nextMessage()", pause);
}

function startScroller2() {
  if (NS4)
    makeNS()
  else
    makeIE();
  fillScroller();
  showMessage(0, true);
  tgrTop = (NS4) ? message0.top : message0.style.pixelTop;
  current = 0;
}


// ½ºÅ©·ÑÇÒ Ç×¸ñÀ» Ãß°¡ÇÕ´Ï´Ù. ÇÏ³ª¾¿ Ãß°¡
function addItem(item) {
	arrItems[arrItems.length] = item;
}


// ½ºÅ©·ÑÁß¿¡ ¹æÇâÀ» ¹Ù²ß´Ï´Ù.
function changeDirection(direction) {
	
	try {
		this.direction = direction;
	
		// ÇöÀç ÁøÇàÁßÀÎ ½ºÅ©·ÑÀ» ¸ØÃä´Ï´Ù.
		clearInterval(intervalID);
		fromEl.visibility = "hidden";
		clearTimeout(timeoutID);
	
		// »õ·ÎÀÌ ¹Ù·Î ½ÃÀÛÇÕ´Ï´Ù.
		nextMessage();
	}
	catch(e) {}
}
