/* ---------------------------- */
/*  (c) 2008 NCsoft UIDev Team
/* ---------------------------- */

/* 리니지 오늘
--------------------------------------------------*/
function NewsSort(selectedNum)
{
	for (i=0; i<document.getElementById("news_list").getElementsByTagName('ul').length; i++)
	{
		document.getElementById("news_tab").getElementsByTagName('li')[i].className = ""
		document.getElementById("news_list").getElementsByTagName('ul')[i].style.display = "none";
	}
	document.getElementById("news_tab").getElementsByTagName('li')[selectedNum-1].className += "on"
	document.getElementById("news_list").getElementsByTagName('ul')[selectedNum-1].style.display = "block";
}

/* item show
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
var itemShow = function(prntObj, chldTag, initCnst) {
	this.prntObj = prntObj;
	this.chldTag = chldTag;
	this.itemTotalCnt = 0; // 전체 아이템 갯수
	this.activeCnst = 0; // 활성화되는 아이템 상수
	this.activeNodeCnst; // 활성화되는 노드 상수
	this.itemReArray = new Array(); // 아이템 재배열 - 같은 태그, WhiteSpace를 모두 만족시키기 위해...

	for (i=0; i<this.prntObj.childNodes.length; i++)
	{
		if (this.prntObj.childNodes[i].nodeName.toUpperCase() == this.chldTag.toUpperCase())
		{
			this.itemReArray[this.itemTotalCnt] = i;
			this.itemTotalCnt += 1;
			this.prntObj.childNodes[i].style.display = "none";
		}
	}

	if (typeof(initCnst) == "number" && initCnst >= 0 && initCnst < this.itemTotalCnt)
	{
		this.activeCnst = initCnst;
	}
	else
	{
		this.activeCnst = parseInt(Math.random() * this.itemTotalCnt); // 배열에 입력할 랜더상수 생성
	}
	this.activeNodeCnst = parseInt(this.itemReArray[this.activeCnst]); // 랜덤상수를 배열에 입력해서 실제 노드 값 추출
	this.prntObj.childNodes[this.activeNodeCnst].style.display = ""; // 실제 노드에 적용하여 디스플레이
}

var itemShowRotationBtn = function(interval_ms, pauseObjId, btnPrev, btnNext) {
	var itemReArray = this.itemReArray;
	var prntObj = this.prntObj;
	var chldTag = this.chldTag;
	var itemTotalCnt = this.itemTotalCnt;
	var activeCnst = this.activeCnst;
	var activeNodeCnst = this.activeNodeCnst;
	var obj = this;

	prntObj.repeat = function() {
		activeNodeCnst = parseInt(itemReArray[activeCnst]);
		prntObj.childNodes[activeNodeCnst].style.display = "none";
		activeCnst += 1;
		if (activeCnst >= itemTotalCnt)
		{
			activeCnst = 0;
		}
		activeNodeCnst = parseInt(itemReArray[activeCnst]);
		prntObj.childNodes[activeNodeCnst].style.display = "";

		if (pauseObjId)
		{
			obj.pauseObjId = setTimeout(function(){prntObj.repeat()}, interval_ms);
		}
		else
		{
			setTimeout(function(){prntObj.repeat()}, interval_ms);
		}
	}

	if (itemTotalCnt > 1)
	{
		obj.pauseObjId = setTimeout(function(){prntObj.repeat()}, interval_ms);
	}

	if (pauseObjId)
	{
		var pauseObj = document.getElementById(pauseObjId);
		pauseObj.onmouseover = function() {clearTimeout(obj.pauseObjId);}
		pauseObj.onmouseout = function() {obj.pauseObjId = setTimeout(function(){prntObj.repeat()}, interval_ms);}
	}

	prntObj.btnF = function(orderFlag) {
		activeNodeCnst = parseInt(itemReArray[activeCnst]);
		prntObj.childNodes[activeNodeCnst].style.display = "none";
		if (orderFlag == "next")
		{
			activeCnst += 1;
			if (activeCnst >= itemTotalCnt) activeCnst = 0;
		}
		else if (orderFlag == "prev")
		{
			activeCnst -= 1;
			if (activeCnst < 0) activeCnst = itemTotalCnt - 1;
		}
		activeNodeCnst = parseInt(itemReArray[activeCnst]);
		prntObj.childNodes[activeNodeCnst].style.display = "";
	}

	// user action
	btnPrev.onclick = function() {prntObj.btnF("prev");}
	btnNext.onclick = function() {prntObj.btnF("next");}
}
itemShow.prototype.rotationBtn = itemShowRotationBtn;

/* 탭contents */
function tabContents(eventArea, tabArea, contArea){
	var tabs = tabArea.select("dfn");
	for(i=0; i<tabs.length ; i++){
		tabs[i].onclick = setTabContents;
		if(tabs[i].className=="on") eventArea.down(contArea, i).style.display = "block";
		else eventArea.down(contArea, i).style.display = "none";
	}

	function setTabContents(){
		for(i=0; i<tabs.length ; i++){
			if(tabs[i]==this) {
				tabs[i].className="on";
				eventArea.down(contArea, i).style.display = "block";
			} else {
				tabs[i].className="";
				eventArea.down(contArea, i).style.display = "none";
			}
		}
	}
}


/* (s) 메인 롤링 프로모션 */
var rollingBanner_hslide = {
	currentPage:0, //현재 페이지
	rollingState:true, //롤링 상태
	bannerWidth:0, //배너 가로 사이즈
	eff:0,
	load:function(){
		this.banners = $('rolling_promotion_banner').select('li');
		/* href,src값 없을 경우 li삭제*/
		for(i=0 ; i<this.banners.length ; i++){
			if(!this.banners[i].select('a')[0].readAttribute('href') || !this.banners[i].select('img')[0].readAttribute('src'))
				this.banners[i].remove();
		}
		this.banners = $('rolling_promotion_banner').select('li');
		//배너 가로 사이즈 입력
		this.bannerWidth = parseInt(this.banners[0].getStyle('width'));
		//pager 이미지 입력
		$('rolling_promotion_paging').innerHTML='<img src="http://static.plaync.co.kr/dragon/forum/common/blank.gif" alt="이전 이벤트" id="promotion_paging_prev" />';
		for(i=0 ; i<this.banners.length ; i++) $('rolling_promotion_paging').innerHTML+='<img src="http://static.plaync.co.kr/dragon/forum/common/blank.gif" alt="" name=' + i + ' />';
		$('rolling_promotion_paging').innerHTML+='<img src="http://static.plaync.co.kr/dragon/forum/common/blank.gif" alt="다음 이벤트" id="promotion_paging_next" />';
		if(this.banners.length<2) {
			$('promotion_paging_prev').style.display="none";
			$('promotion_paging_next').style.display="none";
		}

		this.pages = $('rolling_promotion_paging').select('img');
		this.pages[1].className = "on";

		for(i=0 ; i<this.banners.length ; i++) {
			$('promotion_paging_prev').onmouseover = function(){ rollingBanner_hslide.rollingState=false; }
			$('promotion_paging_prev').onmouseout = function(){ rollingBanner_hslide.rollingState=true; }
			$('promotion_paging_prev').onclick = function(){ rollingBanner_hslide._rollingBanner_hslide_move(rollingBanner_hslide.currentPage-1); }

			$('promotion_paging_next').onmouseover = function(){ rollingBanner_hslide.rollingState=false; }
			$('promotion_paging_next').onmouseout = function(){ rollingBanner_hslide.rollingState=true; }
			$('promotion_paging_next').onclick = function(){ rollingBanner_hslide._rollingBanner_hslide_move(rollingBanner_hslide.currentPage+1); }

			this.banners[i].onmouseover = function(){ rollingBanner_hslide.rollingState=false; }
			this.banners[i].onmouseout = function(){ rollingBanner_hslide.rollingState=true; }

			this.pages[i+1].onmouseover = function(){
				rollingBanner_hslide.rollingState=false;
				rollingBanner_hslide._rollingBanner_hslide_move(this.name);
			}
			this.pages[i+1].onmouseout = function(){ rollingBanner_hslide.rollingState=true; }
		}

		if(1<this.banners.length) setInterval( function _rolling(){
			if(rollingBanner_hslide.rollingState==true) { rollingBanner_hslide._rollingBanner_hslide_move(rollingBanner_hslide.currentPage+1); }
		},4000);
	},
	_rollingBanner_hslide_move:function(selectBanner){
		if(this.banners.length<=selectBanner) rollingBanner_hslide.currentPage=0;
		else if(selectBanner<0) rollingBanner_hslide.currentPage=this.banners.length-1;
		else rollingBanner_hslide.currentPage=parseInt(selectBanner);

		var banner = $('rolling_promotion_banner');
		var selectBannerLeft = (banner.getStyle('left')==null) ? 0 : parseInt(banner.getStyle('left'));
		for(j=0 ; j<this.banners.length ; j++) {
			if(j==rollingBanner_hslide.currentPage) {
				this.pages[j+1].className = "on";
				if (rollingBanner_hslide.eff) rollingBanner_hslide.eff.cancel();
				rollingBanner_hslide.eff = new Effect.MoveBy(banner, 0, -(this.bannerWidth*rollingBanner_hslide.currentPage)-selectBannerLeft, {duration:0.4});
			} else {
				this.pages[j+1].className = "";
			}
		}
	}
};
/* (e) 메인 롤링 프로모션 */

/* (s) 파워검색 */
function print_livekeyword(title, query, where){
	var default_action = "http://search.plaync.co.kr/lineage/index.jsp";
	var where = encodeURIComponent("l1web^tsearch");
	var wrap_rank = document.getElementById("wrap_live");
	h2 = document.createElement("h2");
	h2.innerHTML = title;
	wrap_rank.appendChild(h2);
	ol = document.createElement("ol");
	ol.id = "liveTopList";
	wrap_rank.appendChild(ol);
	for(i = 0; i < live_keywords.count; i++) {
		name = live_keywords.item[i].name;
		url = default_action + "?where=" + where + "&query=" + encodeURIComponent(name)+ "&pos=livekwd&site=lineage1";
		rank = live_keywords.item[i].rank;
		if(live_keywords.item[i].updown == "new" || live_keywords.item[i].updown == "same")
			rank = "";
		rank_index = i + 1;
		li = document.createElement("li");
		li.className = "num num" + (i+1);
		div2 = document.createElement("span");
		div2.className = "word";
		a = document.createElement("a");
		a.href = url;
		a.title = name;
		resize_name = name.cut(16);
		if(name == query) {
			strong  = document.createElement("strong");
			strong.appendChild(document.createTextNode(resize_name));
			a.appendChild(strong);
		}else {
			a.appendChild(document.createTextNode(resize_name));
		}
		div2.appendChild(a);
		div3 = document.createElement("span");
		div3.className = "rank";
		div3.className = "rank " + live_keywords.item[i].updown;
		div3.appendChild(document.createTextNode(rank))
		li.appendChild(div2);
		li.appendChild(div3);
		ol.appendChild(li);
	}
}

String.prototype.cut = function(len) {
	var str = this;
	var l = 0;
	for (var i=0; i<str.length; i++) {
			l += (str.charCodeAt(i) > 128) ? 2 : 1;
			if (l > len) return str.substring(0,i) + "...";
	}
	return str;
}


var scrollFunc = function(targetEle, isVertical, sumMargin, movePx, startNum, interval, isInverse, stopDuration) {
	if (!document.getElementById) { return false; }
	if (!document.getElementsByTagName) { return false; }
	if (!document.getElementById(targetEle)) { return false; }

	var targetEle = document.getElementById(targetEle);
	var isVertical = (typeof isVertical != "undefined")? isVertical : true;
	var sumMargin = (typeof sumMargin != "undefined")? sumMargin : 0;
	var movePx = (typeof movePx != "undefined")? movePx : 2;
	var startNum = (typeof startNum != "undefined")? startNum : 2;

	this.interval = (typeof interval != "undefined")? interval : 25;
	this.isInverse = (typeof isInverse != "undefined")? isInverse : false;
	this.stopDuration = (typeof stopDuration != "undefined")? stopDuration : 2000;
	this.isStop = false;

	if(!targetEle.getElementsByTagName("li")) { return false; }
	var liArray = targetEle.getElementsByTagName("li");
	if (liArray.length < startNum || startNum < 2) { return false; }
	for (var i = 0; i < startNum - 1; i++)	{
		targetEle.insertBefore(liArray[liArray.length - 1], liArray[0]);
	}
	var currentPos = 0;
	for (var j = 0; j < startNum - 1; j++)	{
		currentPos -= (isVertical)? (liArray[j].offsetHeight + sumMargin) : (liArray[j].offsetWidth + sumMargin);
	}
	var scrollOn = function (sender, timerInterval) {
		var newThis = sender;
		window.setTimeout(function () { newThis.scrollStart() }, timerInterval);
	}

	var stopDistance = 0;

	this.scrollStart = function () {
		if (!this.isStop) {
			var moveDistance = (this.isInverse)? movePx : -movePx;
			currentPos = parseInt(currentPos) + moveDistance;
			stopDistance += moveDistance;
			var indexEle = (this.isInverse)? liArray[startNum - 2] : liArray[startNum - 1];
			var stopEleDim = (isVertical)? indexEle.offsetHeight + sumMargin : indexEle.offsetWidth + sumMargin;
			var moveInterval = this.interval;
			if (Math.abs(stopDistance) >= stopEleDim)
			{
				var lastEleDim = (isVertical)? liArray[liArray.length - 1].offsetHeight + sumMargin : liArray[liArray.length - 1].offsetWidth + sumMargin;
				var firstEleDim = (isVertical)? liArray[0].offsetHeight + sumMargin : liArray[0].offsetWidth + sumMargin;
				if (this.isInverse && stopDistance > 0)
				{
					currentPos  -= lastEleDim;
					currentPos -= (stopDistance - stopEleDim)
					targetEle.insertBefore(liArray[liArray.length - 1], liArray[0]);
					stopDistance = 0;
					moveInterval = this.stopDuration;
				} else if (!this.isInverse && stopDistance < 0) {
					currentPos += firstEleDim;
					currentPos -= (stopDistance + stopEleDim)
					targetEle.appendChild(liArray[0]);
					stopDistance = 0;
					moveInterval = this.stopDuration;
				}
			}
			currentPos += "px";
			if (isVertical)	{
				targetEle.style.top = currentPos;
			} else {
				targetEle.style.left = currentPos;
			}
		}
		scrollOn(this, moveInterval);
	}
	this.scrollStart();
}
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function')	{
		window.onload = func;
	}
	else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}
function showRanking() {
	$('scrollRanking').observe('mouseover',function(e) {
		lin2Ranking.isStop=true; //롤링정지
		var el=e.element();
		if (el.tagName!='LI') el=el.up('li');
		//if ($('rankList').select('li.over')[0]) $('rankList').select('li.over')[0].className = 'out';
		$('rankList').style.display = 'block';
		for(var i=1;i<$('rankList').select('li').length+1; i+=1) {
			//if(parseInt(el.value)===i) $('rankList').select('li')[i-1].className = 'over';
		}
	});
	$('rankList').observe('mouseover',function(e) {
		$('rankList').style.display = 'block';
	});
	$('rankList').observe('mouseout',function(e) {
		Event.stop(e);
		lin2Ranking.isStop=false;//롤링시작
		var el=e.element();
		$('rankList').style.display = 'none';
	});
}
/* (e) 파워검색  */

/* (s) 아이템 view */
function _Banner_hslide_move(dirction){
if(1<this.items.length){
	new Effect.Parallel([
		new Effect.Move(this.items[this.currentBanner], {sync:true, x:-27*dirction, y:0}),
		new Effect.Fade(this.items[this.currentBanner])
	], {duration:0.5});

	this.currentBanner+=dirction;
	if(this.currentBanner==this.items.length) this.currentBanner=0;
	else if(this.currentBanner<0) this.currentBanner=this.items.length-1;

	if(dirction==1) this.items[this.currentBanner].setStyle({left:'40px'});
	else if(dirction==-1) this.items[this.currentBanner].setStyle({left:'-14px'});
	new Effect.Parallel([
		new Effect.Move(this.items[this.currentBanner], {sync:true, x:-27*dirction, y:0}),
		new Effect.Appear(this.items[this.currentBanner])
	], {duration:0.5});
}
}
function Banner_hslide(){
	this.items = $('wrap_item').select('li');
	/* href,src값 없을 경우 li삭제*/
	for(i=0 ; i<this.items.length ; i++){
		if(!this.items[i].select('a')[0].readAttribute('href') || !this.items[i].select('img')[0].readAttribute('src'))
			this.items[i].remove();
	}
	this.items = $('wrap_item').select('li');
	this.currentBanner=parseInt(Math.random()*100%this.items.length); //현재 페이지

	//최초로 보여지는 배너 랜덤
	this.items[this.currentBanner].setStyle({display:'block'});
}
/* (e) 아이템 view */

/* (s) 서버현황배너 view */
function changeBanner(bannerArea){
	var serverBanners = bannerArea.select('div');
	if(1 < serverBanners.length)
		bannerArea.innerHTML += '<p class="btn" onclick="$(\'serverbanner1\').toggle(); $(\'serverbanner2\').toggle();"></p>';
}
/* (e) 서버현황배너 view */

/* (s) 토론&톡톡 */
var itemShow=function(prntObj,chldTag,initCnst){
this.prntObj=prntObj;
this.chldTag=chldTag;
this.itemTotalCnt=0;
this.activeCnst=0;
this.activeNodeCnst;
this.itemReArray=new Array();
for(i=0;i<this.prntObj.childNodes.length;i++) {
if(this.prntObj.childNodes[i].nodeName.toUpperCase()==this.chldTag.toUpperCase())
{
this.itemReArray[this.itemTotalCnt]=i;
this.itemTotalCnt+=1;
this.prntObj.childNodes[i].style.display="none";
}
}
if(typeof(initCnst)=="number"&&initCnst>=0&&initCnst<this.itemTotalCnt) this.activeCnst=initCnst;
else this.activeCnst=parseInt(Math.random()*this.itemTotalCnt);
this.activeNodeCnst=parseInt(this.itemReArray[this.activeCnst]);
if(this.prntObj.childNodes[this.activeNodeCnst] != null){
	this.prntObj.childNodes[this.activeNodeCnst].style.display="";
}
}
var itemShowRotation = function(interval_ms, pauseObjId) {
	var itemReArray = this.itemReArray;
	var prntObj = this.prntObj;
	var chldTag = this.chldTag;
	var itemTotalCnt = this.itemTotalCnt;
	var activeCnst = this.activeCnst;
	var activeNodeCnst = this.activeNodeCnst;
	var obj = this;

	prntObj.repeat = function() {
		activeNodeCnst = parseInt(itemReArray[activeCnst]);
		prntObj.childNodes[activeNodeCnst].style.display = "none";
		activeCnst += 1;
		if (activeCnst >= itemTotalCnt)
		{
			activeCnst = 0;
		}
		activeNodeCnst = parseInt(itemReArray[activeCnst]);
		prntObj.childNodes[activeNodeCnst].style.display = "";

		if (pauseObjId)
		{
			obj.pauseObjId = setTimeout(function(){prntObj.repeat()}, interval_ms);
		}
		else
		{
			setTimeout(function(){prntObj.repeat()}, interval_ms);
		}
	}

	if (itemTotalCnt > 1)
	{
		obj.pauseObjId = setTimeout(function(){prntObj.repeat()}, interval_ms);
	}

	if (pauseObjId)
	{
		var pauseObj = document.getElementById(pauseObjId);
		pauseObj.onmouseover = function() {clearTimeout(obj.pauseObjId);}
		pauseObj.onmouseout = function() {obj.pauseObjId = setTimeout(function(){prntObj.repeat()}, interval_ms);}
	}
}
itemShow.prototype.rotation = itemShowRotation;
itemShow.prototype.btn=function(btnPrev,btnNext){
var itemReArray=this.itemReArray;
var prntObj=this.prntObj;
var chldTag=this.chldTag;
var itemTotalCnt=this.itemTotalCnt;
var activeCnst=this.activeCnst;
var activeNodeCnst=this.activeNodeCnst;
prntObj.btnF=function(orderFlag){
activeNodeCnst=parseInt(itemReArray[activeCnst]);
prntObj.childNodes[activeNodeCnst].style.display="none";
if(orderFlag=="next") {
activeCnst+=1;
if(activeCnst>=itemTotalCnt)activeCnst=0;
}
else if(orderFlag=="prev")
{
activeCnst-=1;
if(activeCnst<0)activeCnst=itemTotalCnt-1;
}
activeNodeCnst=parseInt(itemReArray[activeCnst]);
prntObj.childNodes[activeNodeCnst].style.display="";
}
btnPrev.onclick=function(){prntObj.btnF("prev");}
btnNext.onclick=function(){prntObj.btnF("next");}
}
itemShow.prototype.rotationBtn=function(interval_ms,pauseObjId,btnPrev,btnNext){
var itemReArray=this.itemReArray;
var prntObj=this.prntObj;
var chldTag=this.chldTag;
var itemTotalCnt=this.itemTotalCnt;
var activeCnst=this.activeCnst;
var activeNodeCnst=this.activeNodeCnst;
var obj=this;
prntObj.repeat=function(){
activeNodeCnst=parseInt(itemReArray[activeCnst]);
prntObj.childNodes[activeNodeCnst].style.display="none";
activeCnst+=1;
if(activeCnst>=itemTotalCnt) activeCnst=0;
activeNodeCnst=parseInt(itemReArray[activeCnst]);
prntObj.childNodes[activeNodeCnst].style.display="";
if(pauseObjId) {
obj.pauseObjId=setTimeout(function(){prntObj.repeat()},interval_ms);
}
else {
setTimeout(function(){prntObj.repeat()},interval_ms);
}
}
if(itemTotalCnt>1) {
obj.pauseObjId=setTimeout(function(){prntObj.repeat()},interval_ms);
}
if(pauseObjId) {
var pauseObj=$(pauseObjId);
pauseObj.onmouseover=function(){clearTimeout(obj.pauseObjId);}
pauseObj.onmouseout=function(){obj.pauseObjId=setTimeout(function(){prntObj.repeat()},interval_ms);}
}
prntObj.btnF=function(orderFlag){
activeNodeCnst=parseInt(itemReArray[activeCnst]);
prntObj.childNodes[activeNodeCnst].style.display="none";
if(orderFlag=="next")
{
activeCnst+=1;
if(activeCnst>=itemTotalCnt)activeCnst=0;
}
else if(orderFlag=="prev") {
activeCnst-=1;
if(activeCnst<0)activeCnst=itemTotalCnt-1;
}
activeNodeCnst=parseInt(itemReArray[activeCnst]);
prntObj.childNodes[activeNodeCnst].style.display="";
}
btnPrev.onclick=function(){prntObj.btnF("prev");}
btnNext.onclick=function(){prntObj.btnF("next");}
}
/* (e) 토론&톡톡 */

/* tbanner롤링 */
var random_banner = function(id) {
	this.obj = jQuery('#'+id).children();
	for (var i=0;i<this.obj.length;i++) { if (this.obj[i].className!='on') jQuery(this.obj[i]).remove(); }
	this.obj = jQuery('#'+id).children();
	this.bannerIdx = Math.floor(Math.random()*this.obj.length);
	for (var i=0;i<this.obj.length;i++) { if(i!=this.bannerIdx) jQuery(this.obj[i]).css('display','none'); }
}
jQuery(document).ready(function(){
	if (screen.width<=1280 && jQuery('#rwing_banner').css('display')=='block') jQuery('#rwing_banner').children().remove();
});
