/* mticker effect (무브티커)
= amender : myshin
= date : 2009.10.13
= desc : 키보드포커스제어전에 a가 존재하는지 확인
= 로테이션 지연 시간 보정. 제어 함수 인수로 호출순번 혹은 객체 중 선택 사용.
= 키보드포커스시 멈춤 기능 추가. 멈춤,시작 함수 추가.
= 함수 호출수 지정 없이 지연시간 보정.
= 마우스오버시멈춤기능추가, 스피드오차개선, 컨텐츠2번렌더링수정, 이전다음제어추가(순번1부터시작), 줄별너비가달라도됨(li를x배수로맞출필요없음),
= Safari만offsetHeight다른값해결 : js이전에css가와야함.
== usage ==
#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>
== ex ==
initmTicker(document.getElementById("banner-scroll"),document.getElementById("banner-content"),3000);
= 이전,다음,멈춤,시작
prevmTicker(1);nextmTicker(1);stopmTicker(1);playmTicker(1);//호출순번
prevmTicker(document.getElementById("banner-scroll"));//initmTicker()호출후사용가능
prevmTicker(document.getElementById(mtickerEl.length);//마지막initmTicker()만사용
== 과제 = 포커스a보이기,
*/
var mtickerEl = new Array();
function initmTicker(mtickerContainer,mtickerContent,delay) {
	mtickerEl[mtickerEl.length] = mtickerContainer;//컨테이너
	var speed = 20;//스크롤속도-작을수록빠름
	mtickerContainer.delay = delay;//로테이션속도
	mtickerContainer.n = mtickerEl.length;//순번
	mtickerContainer.moveOffset = mtickerContainer.offsetHeight;//세로움직임값=컨테이너높이
	mtickerContainer.count = 0;//시간계산
	mtickerContainer.mtickerOver = false;//true일때멈춤
	mtickerContainer.cont = mtickerContent;//콘텐츠
	mtickerContainer.cont.currentTop = 0;//콘텐츠현재위치
	//mtickerContainer.cont.innerHTML += mtickerContainer.cont.innerHTML;//컨텐츠복제해서2번렌더링..스크롤시만필요
	//var aa="";
	for (i=0; i<mtickerEl.length; i++){
		mtickerEl[i].delayOffset = mtickerEl[i].delay/(speed/mtickerEl.length);//로테이션속도보정
		//var aa=aa+"  "+(mtickerEl[i].delayOffset*speed)/mtickerEl.length;//모든delay값확인
	}
	//alert(aa);
//	mtickerContainer.move = setInterval("movemTicker()",speed);
	mtickerContainer.onmouseover = function(){ this.mtickerOver=true; }
	mtickerContainer.onmouseout = function(){ this.mtickerOver=false; }
	mtickerContainer.anchor = mtickerContainer.getElementsByTagName("a");
	if(mtickerContainer.anchor.length){//a가존재하면
		for(var i=0;i<mtickerContainer.anchor.length;i++){//키보드포커스제어
			mtickerContainer.anchor[i].onfocus = function(){ mtickerContainer.mtickerOver=true; }
			mtickerContainer.anchor[i].onblur = function(){ mtickerContainer.mtickerOver=false; }
		}
		//포커스시 위치 보정은 브라우저별 다른 동작인한 보류
		mtickerContainer.anchor[0].onfocus = function(){//첫앵커포커스
			mtickerContainer.mtickerOver=true;
			//mtickerContainer.cont.style.top = mtickerContainer.cont.currentTop = 0;
		}
		mtickerContainer.anchor[mtickerContainer.anchor.length-1].onfocus = function(){//끝앵커포커스
			mtickerContainer.mtickerOver=true;
			//mtickerContainer.cont.style.top = mtickerContainer.offsetHeight - mtickerContainer.cont.offsetHeight + "px";
		}
	}
}
function movemTicker() {//위로이동
	for (var i=0; i<mtickerEl.length; i++){
		if (mtickerEl[i].cont.currentTop % mtickerEl[i].moveOffset == 0 && mtickerEl[i].count < mtickerEl[i].delayOffset) {
			if(!mtickerEl[i].mtickerOver) mtickerEl[i].count++;//mtickerOver가 false 일때 카운트증가
		} else {
			mtickerEl[i].count = 0;
			//mtickerEl[i].cont.currentTop--;//한줄씩위로스크롤
			mtickerEl[i].cont.currentTop -= mtickerEl[i].moveOffset;//스크롤안하고한줄씩로테이션
			if (mtickerEl[i].cont.currentTop % (mtickerEl[i].cont.offsetHeight) == 0) {
				mtickerEl[i].cont.currentTop = 0;
			}
			mtickerEl[i].cont.style.top = mtickerEl[i].cont.currentTop + "px";
		}
	}
}
//시간제어: a=순번or컨테이너객체
function prevmTicker(a){//이전한줄보기
	var n=(isNaN(a))? a.n-1: a-1;
	if(!mtickerEl[n]) return false;
	mtickerEl[n].count = 0;
	mtickerEl[n].cont.currentTop+= mtickerEl[n].moveOffset;
	if (-mtickerEl[n].cont.currentTop < 0) {
		mtickerEl[n].cont.currentTop = mtickerEl[n].moveOffset-mtickerEl[n].cont.offsetHeight;
	}
	mtickerEl[n].cont.style.top = mtickerEl[n].cont.currentTop + "px";
}
function nextmTicker(a){//다음한줄보기
	var n=(isNaN(a))? a.n-1: a-1;
	if(!mtickerEl[n]) return false;
	mtickerEl[n].count = 0;
	mtickerEl[n].cont.currentTop-= mtickerEl[n].moveOffset;
	if (-mtickerEl[n].cont.currentTop >= mtickerEl[n].cont.offsetHeight) {
		mtickerEl[n].cont.currentTop = 0;
	}
	mtickerEl[n].cont.style.top = mtickerEl[n].cont.currentTop + "px";
}
function stopmTicker(a){//멈춤
	var n=(isNaN(a))? a.n-1: a-1;
	if(!mtickerEl[n]) return false;
	mtickerEl[n].mtickerOver = true;
}
function playmTicker(a){//시작
	var n=(isNaN(a))? a.n-1: a-1;
	if(!mtickerEl[n]) return false;
	mtickerEl[n].mtickerOver = false;
}