﻿
/*  Ntreev Global Navigation Bar [ 2009-08-14 ]
*   Copyright (c) 2009, ALL right reserved.
*   Script by Su-hyung, park
*/

var NGNB =
{
	css : '<link rel="stylesheet" href="$path/ngnb.css" type="text/css" />',
	html : [
		'<div style="text-align:left"><div id="ngnb">',
		'	<div class="ngnb-wrap">',
		'		<a href="javascript:Ns.Content.home()" class="ngnb-logo"><img src="$path/img/logo.gif" alt="gametree" /></a>',
		'		<a class="ngnb-game" onmouseover="NGNB.showGames()" onmouseout="NGNB.hideGames()"><img src="$path/img/txt1.gif" onmouseover="this.src=\'$path/img/txt1o.gif\'" onmouseout="this.src=\'$path/img/txt1.gif\'" alt="게임" /></a>',
		'		<a href="$home/Event/" class="ngnb-txt"><img src="$path/img/txt2.gif" onmouseover="this.src=\'$path/img/txt2o.gif\'" onmouseout="this.src=\'$path/img/txt2.gif\'" alt="이벤트" /></a>',
		'		<a href="$home/Customer/" class="ngnb-txt"><img src="$path/img/txt3.gif" onmouseover="this.src=\'$path/img/txt3o.gif\'" onmouseout="this.src=\'$path/img/txt3.gif\'" alt="고객센터" /></a>',
		( Ns.Login.is()
			? '<a href="javascript:Ns.Content.info()" class="ngnb-member"><img src="$path/img/btn_mypage.gif" alt="마이페이지" /></a>'+
				'<a href="javascript:Ns.Login.out()" class="ngnb-member"><img src="$path/img/btn_logout.gif" alt="로그아웃" /></a>'
			: '<a href="javascript:Ns.Content.join()" class="ngnb-member"><img src="$path/img/btn_join.gif" alt="회원가입" /></a>'+
				'<a href="javascript:Ns.Login.go()" class="ngnb-member"><img src="$path/img/btn_login.gif" alt="로그인" /></a>'
		),
		'		<p class="ngnb-banner" id="ngnb-promotions"></p>',
		'	</div>',
		'</div>',
		'<div id="ngnb-games" onmouseover="NGNB.showGames()" onmouseout="NGNB.hideGames()">',
		'	<dl class="ngnb-online" id="ngnb-games-div">',
		'		<dt><img src="$path/img/game_tit1.gif" alt="온라인게임" /></dt>',
		'	</dl>',
		'	<dl class="ngnb-etc">',
		'		<dt><img src="$path/img/game_tit2.gif" alt="플래시게임" /></dt>',
		'		<dd><a href="http://vvvic.gametree.co.kr/" title="간편하게 즐기는 플래시게임 비비빅"><img src="$path/img/game_ic11xl.gif" width="145" height="163" alt="간편하게 즐기는 플래시게임 비비빅" /></a></dd>',
		'	</dl>',
		'	<dl class="ngnb-etc">',
		'		<dt><img src="$path/img/game_tit3.gif" alt="모바일게임" /></dt>',
		'		<dd><a href="http://www.whitedaymobile.com/" title="죽음보다 무서운 저주의 흐느낌 화이트데이"><img src="$path/img/game_ic21xl02.gif" width="145" height="82" alt="죽음보다 무서운 저주의 흐느낌 화이트데이" /></a></dd>',
		'		<dd><a href="http://www.djmaxmobile.com/" title="원조 리듬게임의 귀환"><img src="$path/img/game_ic23.gif" width="145" height="80" alt="원조 리듬게임의 귀환" /></a></dd>',
		'	</dl>',
		'	<div class="ngnb-bg-right"></div>',
        '	<div class="ngnb-bg-bottom"></div>',
		'</div></div>'
	].join('\n'),

	http : Ns.isSecure() ? 'https://' : 'http://',
	service : Ns.getServiceDomain(),

	showGames : function() { document.getElementById('ngnb-games').style.display = 'block' },
	hideGames : function() { document.getElementById('ngnb-games').style.display = 'none' },

	Write : function()
	{
		var home =  'http://' + this.service + 'www.gametree.co.kr';
		var path = this.http + this.service + 'common.gametree.co.kr/NGNB';
		var gamelist = this.http + this.service + 'www.gametree.co.kr/NGNB/GameList.aspx';
		var promotions = this.http + this.service + 'www.gametree.co.kr/NGNB/PromotionList.aspx';
		//gamelist = 'http://qa.www.gametree.co.kr/NGNB/GameList.aspx';
		//promotions = 'http://qa.www.gametree.co.kr/NGNB/PromotionList.aspx';

		// init ngnb html
		var doc = document;
		doc.write( this.css.replace(/\$path/gm, path) );
		doc.write( this.html.replace(/\$path/gm, path).replace(/\$home/gm, home) );

		// init Game banners
		Ns.Ajax.request(gamelist, {
			method : 'get',
			onSuccess : function(res) {
				try {
					NGNB.initGames(res.getElementsByTagName('Item'));
				}
				catch (e) {}
			},
			onFailed : function() {
			}
		});

		// init Promotion banners
		Ns.Ajax.request(promotions, {
			method : 'get',
			onSuccess : function(res) {
				try {
					NGNB.initPromotions(res.getElementsByTagName('Item'));
				}
				catch (e) {}
			},
			onFailed : function() {
			}
		});

		// min-width fix for ie ( 998px )
		if (doc.all) {
			var ngnb = doc.getElementById('ngnb');
			var body = !doc.compatMode || doc.compatMode.indexOf('CSS1') == -1 ? doc.body : doc.documentElement || doc.body;
			Ns.Event.add(window, 'resize', function() { ngnb.style.width = Math.max(998, body.clientWidth) + 'px' });
			ngnb.style.width = Math.max(998, body.clientWidth) + 'px';
		}
	},

	clearXML : function(nodes)
	{
		for (var i = 0, n; n = nodes[i]; i++) if (n.nodeType != 1) n.parentNode.removeChild(n);
		return nodes;
	},

	initGames : function(items)
	{
		NGNB.clearXML(items);
		var len = items.length;
		var target = document.getElementById('ngnb-games-div');

		for (var i = 0; i < len; i++) {
			var infos = NGNB.clearXML(items[i].childNodes);
			var titKr = infos[1].firstChild.nodeValue;
			var img = infos[2].firstChild.nodeValue.replace('http://', NGNB.http);
			var url = infos[3].firstChild.nodeValue;
			var tgt = infos[4].firstChild.nodeValue;
			var dd = document.createElement('dd');
			dd.innerHTML = '<a href="'+url+'" target="'+tgt+'" title="'+titKr+' 웹사이트 바로가기"><img src="'+img+'" width="145" height="40" alt="'+titKr+'" /></a>';
			target.appendChild(dd);
			dd = null;
		}

		// 게임목록수가 홀수일시 빈 게임목록 영역 추가
		if ( len % 2 == 1 ) {
			var dummy = document.createElement('dd');
			with (dummy.style) {
				width = "144px";
				height = "40px";
				background = "#ffffff";
			}
			target.appendChild(dummy);
		}

	},

	initPromotions : function(items)
	{
		NGNB.clearXML(items);
		var len = items.length;
		var target = document.getElementById('ngnb-promotions');
		var add = function(item) {
			var infos = NGNB.clearXML(item.childNodes);
			var img = infos[0].firstChild.nodeValue.replace('http://', NGNB.http);
			var url = infos[1].firstChild.nodeValue;
			var desc = infos[2].firstChild.nodeValue;
			var method = infos[3] ? infos[3].firstChild.nodeValue : '';
			var span = document.createElement('span');
			span.innerHTML = '<a href="'+url+'" target="'+method+'"><img src="'+img+'" width="170" height="47" alt="" title="'+desc+'" /></a>';
			target.appendChild(span);
			span = null;
		}

		if (len == 1) {
			// 배너가 1개면 롤링 중지
			add(items[0]);
			return;
		} else {
			// 배너가 여러개일경우 자연스러운 롤링을 위해 첫번째 배너를 복사하여 마지막에 추가로 삽입
			for (var i = 0; i < len; i++) {
				add(items[i]);
			}
			add(items[0]);
		}

		var count = Math.ceil(target.scrollWidth / 170) , now = 1, sp, ep, loop;
		setInterval(function()
		{
			if (now == count) target.scrollLeft = 0, now = 1;
			ep = 170 * now++;
			loop = setInterval(function() {
				sp = target.scrollLeft;
				if (sp == ep) clearInterval(loop);
				target.scrollLeft += Math[sp < ep ? 'ceil' : 'floor']((ep-sp)/7);
			}, 15);
		}, 4000);

	}
};

NGNB.Write();