var Roll = {
	Width : 0		// 최상 Div 넓이
	,Height : 0		// 최상 Div 높이
	,ScrollPause :1	// Scroll 여부
	,ScrollMove  : 1  // Scrolling 크기
	,ScrollSpeed : 0	// Scroll 속도
	,ScrollDelay : 0 // 멈추는 시간
	,s_pos : 0	// 현재 위치
	,s_amount : 0 // 1회스크롤사이즈
	,idCount : 0
	,topId : ""
	,allData : 0	//총갯수
	,removeId : 0
	,viewCount : 0
	,intVal : ""

	/** 최초 셋팅 ****************
	tid : 최상의 Div 이름
	data : 보여줄 데이타(배열)
	url : 클릭시 링크값(배열)
	w : 최상의 Div 넓이
	nh : 개당 높이
	speed : 변경할 속도
	delay : 멈출시간
	viewCount : 보여줄 갯수
	dir : 방향
	*****************************/
	,init : function(t) {
		this.ScrollPause =1;
		this.s_pos = 0;
		this.s_amount = 0;
		this.idCount = 0;
		this.removeId = 0;
		clearInterval(this.intVal);
		this.intVal = "";
		this.Width = 0;		
		this.allData = "";
		this.allUrl = "";
		this.ScrollSpeed = 0;
		this.ScrollDelay = 0;
		this.viewCount = 0;		

		document.getElementById(t).innerHTML = "";
	}

	,set : function(tid, data, url, w, nh, speed, delay, view) { 
		this.init(tid);	// 초기화

		this.Width = w;		
		this.topId = tid;
		this.allData = data;
		this.allUrl = url;
		this.ScrollSpeed = speed;
		this.ScrollDelay = delay;
		this.viewCount = view;		
		
		if(this.allData.length==1) {
			len = this.allData.length;
			this.Height = nh;	
		} else if(this.viewCount+1 > this.allData.length) {
			len = this.allData.length;
			this.Height = (len-1)*nh;
		} else {
			len = this.viewCount+1;
			this.Height = view*nh;
		}


		if(this.allData.length < 1) {
			document.getElementById(this.topId).innerHTML = "방송중인 채널이 없습니다.";
			return;	// 데이타 없으면 만들지 않음.
		}

		this.s_amount = (this.Height/(len-1))-1;

		
		tDiv = document.getElementById(tid).style;
		tDiv.width = this.Width+"px";
		tDiv.height = this.Height+"px";
		tDiv.paddingLeft = "0px";
		tDiv.overflow = "hidden";


		mDiv = document.createElement("DIV");
		mDiv.id = "mDiv";		
		mDiv.style.marginTop = "0px";
		mDiv.style.marginLeft = "0px";
		document.getElementById(this.topId).appendChild(mDiv);		

		if(this.allData.length > 1) {
			for(i=0; i < len; i++) {	// 최초 보여줄 갯수+1개를 생성
				
				subDiv = document.createElement("DIV");				
				subDiv.id = "sub_"+this.idCount;				
				mDiv.appendChild(subDiv);

				subDiv = document.getElementById("sub_"+this.idCount);	

				if(this.allUrl!="") {
					subDiv.innerHTML = "<a id='sid_"+this.idCount+"' href='"+this.allUrl[this.idCount]+"' target='_blank'>"+this.allData[this.idCount]+"</a>";
				} else {
					subDiv.innerHTML = "<div id='sid_"+this.idCount+"' style='text-decoration:none;'>"+this.allData[this.idCount]+"</div>";
				}

				sDiv = document.getElementById("sid_"+this.idCount);

				if(window.addEventListener) {
					sDiv.addEventListener("mouseout", this.rollstop, false);			
					sDiv.addEventListener("mouseover", this.rollstart, false);			
				} else {
					sDiv.attachEvent("onmouseover", this.rollstop);
					sDiv.attachEvent("onmouseout", this.rollstart);
				}
								
				this.idCount++;
			}

			setTimeout(this.setMove, this.ScrollDelay);
		} else {
			subDiv = document.createElement("DIV");
			//subDiv.style.cursor = "pointer";
			subDiv.id = "sub_"+this.idCount;
			mDiv.appendChild(subDiv);

			subDiv = document.getElementById("sub_"+this.idCount);
			if(this.allUrl!="") {
				subDiv.innerHTML = "<a href='"+this.allUrl[this.idCount]+"' target='_blank'>"+this.allData[this.idCount]+"</a>";
			} else {
				subDiv.innerHTML = this.allData[this.idCount];
			}			
		}		
	}

	,setDiv : function() {
		
		if(this.ScrollPause == 1 && document.getElementById("mDiv").childNodes.length < this.viewCount+1) {
			if(this.idCount >= this.allData.length) this.idCount=0;

			subDiv = document.createElement("DIV");
			//subDiv.style.cursor = "pointer";
			subDiv.id = "sub_"+this.idCount;
			document.getElementById("mDiv").appendChild(subDiv);
			
			subDiv = document.getElementById("sub_"+this.idCount);
			if(this.allUrl!="") {
				subDiv.innerHTML = "<a id='sid_"+this.idCount+"' href='"+this.allUrl[this.idCount]+"' target='_blank'>"+this.allData[this.idCount]+"</a>";
			} else {
				subDiv.innerHTML = "<div id='sid_"+this.idCount+"' style='text-decoration:none;'>"+this.allData[this.idCount]+"</div>";
			}

			sDiv = document.getElementById("sid_"+this.idCount);
			
			
			if(window.addEventListener) {
				sDiv.addEventListener("mouseout", this.rollstart, false);	
				sDiv.addEventListener("mouseover", this.rollstop, false);	
			} else {
				sDiv.attachEvent("onmouseover", this.rollstop);
				sDiv.attachEvent("onmouseout", this.rollstart);
			}

			this.idCount++;
						
			if(this.intVal=="") this.intVal = setInterval(this.setMove, this.ScrollDelay);
		}
	}

	,rollstart : function() {
		Roll.setStart();
	}

	,setStart : function() {
		
		this.ScrollPause = 1;
		if(this.s_pos > 0) this.rollMove();
		else this.intVal = setInterval(this.setMove, this.ScrollDelay);
		

	}

	,setMove : function() {
		Roll.rollMove();
	}

	,rollstop : function() {
		Roll.setStop();
	}

	,setStop : function() {	
		this.ScrollPause = 0;
		clearInterval(this.intVal);
		this.intVal = "";
		
	}

	,makeDiv : function() {
		
		Roll.setDiv();
	}


	,rollMove : function() {
		
		if(this.ScrollPause == 1) {
			if(this.s_pos < this.s_amount) {	// 다음 항목까지 이동
				tmp = document.getElementById('mDiv').style;
				if(parseInt(tmp.marginTop) > 0-this.Height) {
					tmp.marginTop = (parseInt(tmp.marginTop)-this.ScrollMove)+"px";
				}
				//alert(this.ScrollMove+"/"+tmp.marginTop);
				this.s_pos++;

				setTimeout(this.setMove, this.ScrollSpeed);
			} else {

				this.s_pos = 0;	
				this.removeDiv();
				//setTimeout(this.makeDiv, this.ScrollDelay);
			}
		}
	}

	

	,removeSet : function() {
		Roll.removeDiv();
	}

	,removeDiv : function() {	// 롤링된 Div삭제
		rId = document.getElementById("sub_"+this.removeId);
		mDiv.removeChild(rId);
		mDiv.style.marginTop = "0px";

		if(this.removeId < this.allData.length-1) this.removeId++;
		else this.removeId = 0;
		//setTimeout(this.makeDiv, this.ScrollDelay);
		this.setDiv();		
		
	}
}