// 슬라이드 효과 시작
TextSlider = function(className) {
  document.write("<div id='TextSliderPLayer_"+ className +"'><div id='TextSliderLayer_"+ className +"'></div></div>");
  this.slide_item = [];
  this.width = this.height = this.speed = this.pixel = this.interval =
  this.size = this.moveCount = this.X = this.Y = 0;
  this.direction = "";
  this.pLayer = document.getElementById("TextSliderPLayer_"+ className);
  this.layer = document.getElementById("TextSliderLayer_"+ className);
  this.align = "left";
  this.intervalId = null;
  this.className = className;
  this.isPause = false;
}

TextSlider.prototype.init = function() {
  with (this.pLayer.style) {
    width = this.width+"px";
    height = this.height+"px";
    overflow = "hidden";
    this.pLayer.style.width = width;
    this.pLayer.style.height = height;
    this.pLayer.style.overflow = overflow;
    this.pLayer.style.top = 0;
    this.pLayer.style.left = 0;
    this.pLayer.style.position = "relative";
  }
  with (this.layer.style) {
    width = this.direction=='up' || this.direction=='down' ? this.width+"px" : this.size*(this.slide_item.length+1)+"px";
    height = this.direction=='up' || this.direction=='down' ? this.size*(this.slide_item.length+1)+"px" : this.height+"px";
    this.layer.style.width = width;
    this.layer.style.height = height;
    this.layer.style.top = 0;
    this.layer.style.left = 0;
    this.layer.style.position = "relative";
  }
  if(this.direction=="up" || this.direction=="down"){
    for (var i=0; i<parseInt(this.height / this.size, 10)+1; i++)
      this.slide_item[this.slide_item.length] = this.slide_item[i];
  }else{
    for (var i=0; i<parseInt(this.width / this.size, 10); i++)
      this.slide_item[this.slide_item.length] = this.slide_item[i];
  }
  this.layer.style.width = this.size * this.slide_item.length + "px";
  
  switch (this.direction) {
    case "up": this.X = this.Y = 0; break;
    case "down": this.X = 0; this.layer.style.top = this.Y = -this.size*(this.slide_item.length-1); break;
    case "left": this.X = this.Y = 0; break;
    case "right": this.Y = 0;
      this.X = -this.size*(this.slide_item.length - parseInt(this.width / this.size, 10));
      this.layer.style.left = this.X + "px" ; break;
  }
  
  var __html = "<div onmouseover='"+this.className+".pause()' onmouseout='"+this.className+".unpause()'>";
  if (this.direction=='up' || this.direction=='down') {
    __html += "<table width='"+ this.layer.style.width +"' cellspacing='0' cellpadding='0' border='0'>";
    //for (var i in this.slide_item)
    for(var i=0; i<this.slide_item.length; i++)
      __html += "<tr><td height='"+this.size+"' style='overflow:hidden' align='"+this.align+"' valign='top'>"+this.slide_item[i]+"</td></tr>";
    __html += "</table>";
  } else {
    __html += "<table cellspacing='0' cellpadding='0' border='0'><tr>";
    //for (var i in this.slide_item)
    for(var i=0; i<this.slide_item.length; i++)
      __html += "<td width='"+this.size+"' height='"+ this.layer.style.height +"' align='"+this.align+"' valign='top' style='overflow:hidden;'>"+this.slide_item[i]+"</td>";
    __html += "</tr></table>";
  }
  __html += "</div>";
  this.layer.innerHTML = __html;
  this.start();
}

TextSlider.prototype.start = function() {
  this.intervalId = setInterval(this.className+".move()", this.speed);
}

TextSlider.prototype.move = function() {
  if (this.isPause) return;
  switch (this.direction) {
    case "up": this.Y -= this.pixel; break;
    case "down": this.Y += this.pixel; break;
    case "left": this.X -= this.pixel; break;
    case "right": this.X += this.pixel; break;
  }
  if (this.direction=='up' || this.direction=='down') {
    if (Math.abs(this.Y)%this.size==0) this.stop();
    this.layer.style.top = this.Y+"px";
  } else {
    if (Math.abs(this.X)%this.size==0) this.stop();
    this.layer.style.left = this.X+"px";
  }
}

TextSlider.prototype.stop = function() {
  clearInterval(this.intervalId);
  switch (this.direction) {
  case "up":
    if (Math.abs(this.Y) >= parseInt(this.layer.style.height,10)-this.size) this.Y = this.layer.style.top = 0;
    break;

  case "down":
    if (Math.abs(this.Y) <= 0) this.Y = this.layer.style.top = -this.size*(this.slide_item.length-1);
    break;

  case "left":
    if (Math.abs(this.X) >= parseInt(this.layer.style.width,10)-this.size) this.X = this.layer.style.left = 0;
    break;

  case "right":
    if (Math.abs(this.X) <= 0) {
      this.X = -this.size*(this.slide_item.length - parseInt(this.width / this.size, 10));
      this.layer.style.left = this.X + "px" ; break;
    }
    break;
  }
  setTimeout(this.className+".start()", this.interval);
}

TextSlider.prototype.pause = function() {this.isPause = true;}
TextSlider.prototype.unpause = function() {this.isPause = false;}
// 슬라이드 효과 끝
