/***************************************************************************************************/
/** mticker effect (무브티커)
* amender : myshin
* date : 2008.04.11
* desc : 마우스오버시멈춤기능추가, 스피드오차개선, 컨텐츠2번렌더링수정, 이전다음제어추가(순번1부터시작), 줄별너비가달라도됨(li를x배수로맞출필요없음),
* guide : Safari만offsetHeight다른값해결 : js이전에css가와야함.
<link rel="stylesheet" type="text/css" href="/share/css/main.css">
#banner-scroll { position: absolute; left: 0; top: 30px; width: 240px; height: 15px; overflow: hidden; }
#banner-content { position: absolute; left: 0; top: 0; }
<script type="text/javascript" src="/share/js/mticker.js"></script>
* 개선과제 : initmTicker함수전체호출수 자동설정.
* ex) initmTicker(document.getElementById("banner-scroll"), document.getElementById("banner-content"), 3000);
prevmTicker(1);//이전버튼 (1)은 initmTicker()호출순번
nextmTicker(1);//다음버튼
*/

var mtickerEl = new Array();//전역변수
var stopCtrl = "true";
var mtickerElsum = 1; //initmTicker함수전체호출수-추가할때마다수정요함 - 전역변수로 수정함.

/**
 *
 * mticketContainer :  해당 받은 객체의 높이
 * 
 * @param mtickerContainer
 * @param mtickerContent
 * @param delay		: 시간
 * @return
 */
function initmTicker(mtickerContainer, mtickerContent, delay)
{
	
	// 배너부분 전체 Object
	mtickerEl[mtickerEl.length] = mtickerContainer;
	
	//alert(mtickerEl[mtickerEl.length]);
	
	var speed = 20; //스크롤속도-작을수록빠름
							 
	// 250 =  5000/(20/1)
	mtickerContainer.delay = delay/(speed/mtickerElsum); //mtickerEl.length를mtickerElsum로수정
	
	// mticketContainer Move Offset(한번에 움직이는 크기)
	mtickerContainer.moveOffset = mtickerContainer.offsetHeight - 0;//Safari만다른값.가끔될때도있음.

	// 카운트는 0
	mtickerContainer.count = 0;
	
	// 배너부분 오브젝트 마우스로 오버했을 경우 현재는 false(올려져 있지 않은 상태)
	mtickerContainer.mtickerOver = false;
	
	// 배너부분 전체 내용물 -> One Object
	mtickerContainer.cont = mtickerContent;
	
	// 내용물 현재 높이
	mtickerContainer.cont.currentHeight = 0;
	
	// movemTicket 5초마다 호출함.
	mtickerContainer.move = setInterval("movemTicker()", speed);
	
	for (i=0; i<mtickerEl.length; i++)
	{
		mtickerEl[i].onmouseover = function()
		{
			this.mtickerOver=true; 
		}
		
		mtickerEl[i].onmouseout = function()
		{
			this.mtickerOver=false;
		}
	}
}

/**
 * moveOffset : 해당 객체의 Height
 * currentHeight : 해당 객체의 현재 높이
 * @return
 */
function movemTicker()
{

	if(this.stopCtrl == "false") return;
	// 
	for (i=0; i<mtickerEl.length; i++)
	{
		
		/*********************************************************
		 *    조건(현재로는 그냥 시간지연을 이렇게 처리한듯 왜?????)
		 * *******************************************************
		 * 1. 현재 위치의 높이 초기값은 0 % 한번에 이동하는 거리이 38
		 * 2. 카운트보다  0 < 250 
		 *********************************************************
		 */
		if( 
			
			mtickerEl[i].cont.currentHeight % mtickerEl[i].moveOffset == 0
			
			
			&& mtickerEl[i].count < mtickerEl[i].delay
		)
		{
			/****************************************************
			 *    조건
			 ****************************************************
			 * 1. 마우스가 티커 위에 올라가 있지 않을 경우에 처리
			 ****************************************************
			 */
			if(!mtickerEl[i].mtickerOver)
			{
				// 0++ ~ 250
				mtickerEl[i].count++;//mtickerOver가 false 일때 카운트증가시킨다
			}
		}
		// 보통정인 프로세스 흐름
		else
		{
			// 카운트
			mtickerEl[i].count = 0;
			
			//스크롤안하고한줄씩로테이션
			mtickerEl[i].cont.currentHeight -= mtickerEl[i].moveOffset;
			
			// 2010.03.12 raincode 공백부분 제어하기 위해서 추가된 부분
			if( mtickerEl[i].cont.currentHeight - mtickerEl[i].cont.offsetHeight == 0)
					mtickerEl[i].cont.currentHeight = 0;
			
			//현재 높이 % 증가높이 0과 같으면
			if (mtickerEl[i].cont.currentHeight % (mtickerEl[i].cont.offsetHeight) == 0)
			{
				// 현재 높이는 0
				mtickerEl[i].cont.currentHeight = 0;
			}
			
			mtickerEl[i].cont.style.top = mtickerEl[i].cont.currentHeight + "px";
		}
	}
}

//이전한줄보기
function prevmTicker(mtickerElnum)
{
	var mtickerElnum = mtickerElnum-1;
	mtickerEl[mtickerElnum].count = 0;
	mtickerEl[mtickerElnum].cont.currentHeight+= mtickerEl[mtickerElnum].moveOffset;
	
	if (-mtickerEl[mtickerElnum].cont.currentHeight < 0)
	{
		mtickerEl[mtickerElnum].cont.currentHeight = mtickerEl[mtickerElnum].moveOffset-mtickerEl[mtickerElnum].cont.offsetHeight;
	}
	
	mtickerEl[mtickerElnum].cont.style.top = mtickerEl[mtickerElnum].cont.currentHeight + "px";
}


function stopTicket()
{
	if(this.stopCtrl == "true")
		this.stopCtrl = "false";
	else
		this.stopCtrl = "true";
}


//다음한줄보기
function nextmTicker(mtickerElnum)
{
	var mtickerElnum = mtickerElnum-1;
	mtickerEl[mtickerElnum].count = 0;
	mtickerEl[mtickerElnum].cont.currentHeight-= mtickerEl[mtickerElnum].moveOffset;
	
	if (-mtickerEl[mtickerElnum].cont.currentHeight >= mtickerEl[mtickerElnum].cont.offsetHeight)
	{
		mtickerEl[mtickerElnum].cont.currentHeight = 0;
	}
	
	mtickerEl[mtickerElnum].cont.style.top = mtickerEl[mtickerElnum].cont.currentHeight + "px";
}

