// Copyright 2000 . All rights reserved.
var oLogo = Class.create();
oLogo.prototype = {
	_oDiv : null,
	_imgPath : null,
	oHtml : null,
	_nationSet : null,
	_json : null,
	_evtId : null,
	_evtAct : null,
	_evtObj : new Array(),
	layerPop : null,

	initialize : function() {},
	set : function() {
		this.layerPop = cLayerPop.getInstance();

		this._nationSet = {"gb":["Global","Korean","English","Japanese","Chinese"], "ko":["글로벌","한국어","영어","일본어","중국어"],"en":["Global","Korean","English","Japanese","Chinese"],"jp":["グローバル","韓国語","英語","日本語","中国語"],"cn":["全世界","韩国语","英语","日语","中文"]};
		this._json = chInfoJson;

		this._oDiv = $('logoDiv');

		this._imgPath = variable.getChild('defaultImg').toString();
		this.viewLogo();
	},

	viewLogo : function () {
		if (chInfoJson["clientLang"] == "jp") 
			this._oDiv.className = "jp_bg";
		else
			this._oDiv.className = "logo";
//		this._oDiv.style.border = "1px solid red";
		this.oHtml = new pandora.util.StringBuffer();

		var videoOn		= "off";
		var channelOn	= "off";
		if (chInfoJson.currMenu == "PVIDEO") {
			var videoOn		= "on";
		} else if (chInfoJson.currMenu == "PCHANNEL") {
			var channelOn	= "on";
		}
/*
		this.oHtml.append("<div class=\"main_menu\">");
		this.oHtml.append("	<div class=\"menu\"><img src=\"" + this._imgPath + "/menu_" + videoOn + "_l.gif\"></div>");
		this.oHtml.append("	<div class=\"menu\" style=\"background-image:url(" + this._imgPath + "/menu_" + videoOn + "_bg.gif); background-repeat:repeat-x\"><a href=\"" + variable.getChild('mainHost') + "video.ptv\" class=\"menu_link\">Videos</a></div>");
		this.oHtml.append("	<div class=\"menu\"><img src=\"" + this._imgPath + "/menu_" + videoOn + "_r.gif\"></div>");
		this.oHtml.append("	<div class=\"menu\" style=\"width:5px; height:43px\"></div>");
		this.oHtml.append("	<div class=\"menu\"><img src=\"" + this._imgPath + "/menu_" + channelOn + "_l.gif\"></div>");
		this.oHtml.append("	<div class=\"menu\" style=\"background-image:url(" + this._imgPath + "/menu_" + channelOn + "_bg.gif); background-repeat:repeat-x\"><a href=\"" + variable.getChild('mainHost') + "channel.ptv\" class=\"menu_link\">Channel</a></div>");
		this.oHtml.append("	<div class=\"menu\"><img src=\"" + this._imgPath + "/menu_" + channelOn + "_r.gif\"></div>");
		this.oHtml.append("</div>");
*/
//		this.oHtml.append("<div id=\"topLogo\" class=\"logo2\"></div>");
if(this._json.currMenu == 'PSEARCH'){
		this.oHtml.append("<div style=\"float: left; cursor: pointer;\" class=\"logo2_1\" id=\"topLogo\">");
		this.oHtml.append("</div>");
}else{
		if(chInfoJson["clientLang"] == "jp"){
		this.oHtml.append("<div style=\"cursor: pointer;\" class=\"logo2_1_jp\" id=\"topLogo\">");
		this.oHtml.append("</div>");
		this.oHtml.append("<div class=\"hdlink\" id=\"hd_link\">");
		this.oHtml.append("</div>");
		}else{
		this.oHtml.append("<div style=\"float: left; cursor: pointer;\" class=\"logo2_1\" id=\"topLogo\">");
			if(chInfoJson["clientLang"] == "ko"&&this._json.currMenu != 'PSEARCH'){
				this.oHtml.append("<img src=\"http://imgcdn.pandora.tv/ptv_img/main/logo_090422.gif\">");
			}
		this.oHtml.append("</div>");
		}
}


		this.oHtml.append("<div class=\"top_gnb\" id=\"gnb\" style=\"padding-top:0;\">");
		this.oHtml.append("</div>");

		this._oDiv.innerHTML = this.oHtml.toString();

		Event.observe("topLogo", "click", function () {
				location.href = variable.getChild('mainHost');
			}
		);
		if(chInfoJson["clientLang"] == "jp"&&this._json.currMenu != 'PSEARCH'){	
		Event.observe("hd_link", "click", function () {
				location.href = "http://lab.pandora.tv/4hd/";
			}
		);
		}


		this.viewGnb();
	},
	

	viewGnb : function () {
		var evtArr = new Array();
		var kind = arguments[0];

		if (oCookie.get("glb_mem[userid]") != "" && oCookie.get("glb_mem[userid]") != null) {
			evtArr[0] = "TopLogout";
			if (chInfoJson["currMenu"] != "CUPI" && chInfoJson["currMenu"] != "BBS" && chInfoJson["currMenu"] != "EVENT" && chInfoJson["currMenu"] != "MOBILE") {
				evtArr[1] ="langSet";
			}
		} else {
			evtArr[0] = "TopLogin";
			if (chInfoJson["currMenu"] != "CUPI" && chInfoJson["currMenu"] != "BBS" && chInfoJson["currMenu"] != "EVENT" && chInfoJson["currMenu"] != "MOBILE") {
				evtArr[1] = "langSet";
			}
		}

		// pandora page top design
		var menuLang = oLang.get('chMenu');

		var keys = $H(this._nationSet).keys();

		for (i = 0; i < keys.length; i++) {
			if (this._json.clientLang == keys[i]) {
				break;
			}
		}

		var viewNation = this._nationSet[this._json.clientLang][i];

		var oHtml = new pandora.util.StringBuffer();

			oHtml.append("		<div style=\"float:right;\">");

			if (chInfoJson["clientLang"] == "ko") {
				oHtml.append('			<span style="padding-top:23px; float:left; display:block;">');			
				oHtml.append('			<a href="' + variable.getChild('mobileHost') + '"><img src="http://imgcdn.pandora.tv/static/blank.gif" class="icon_phone3" alt="" ></a><a href="' + variable.getChild('mobileHost') + '">폰꾸미기</a>');				// 모바일
				//oHtml.append('			<span class="top_bar">l</span> <a href="' + variable.getChild('songHost') + '">' + menuLang[8] + '</a>');			// 노래방 2009.01.15 서승덕 대리 요청으로 빠짐
				oHtml.append('			<span class="top_bar">l</span> <a href="' + variable.getChild('groupsHost') + '">' + menuLang[10] + '</a>');		// 게시판
				oHtml.append('			<span class="top_bar">l</span> <a href="' + variable.getChild('eventHost') + '">' + menuLang[11] + '</a>');		// 이벤트
//				oHtml.append('			<span class="top_bar">l</span> <a href="' + variable.getChild('liveHost') + '">' + menuLang[9] + '</a>');			// 라이브
				oHtml.append('			<span class="top_bar">l</span> </span>');
				oHtml.append('			<span style="background:url(http://imgcdn.pandora.tv/ptv_img/icon_hot.gif) 20px 10px no-repeat;padding-top:27px;float:left; display:block;"><a href="' + variable.getChild('cupiHost') + '"><b>' + menuLang[12] + '</b></a>');	// 큐피플레이
				oHtml.append('			 <span class="top_bar">l</span></span>');
				
			}

			oHtml.append('			 <span style="padding-top:27px;float:left; display:block;"> ');
			if (chInfoJson["clientLang"] == "jp") {
				oHtml.append('			<a href="http://info.pandora.tv/?m=faq">よくある質問</a> '); // 	help			
			} else {
				oHtml.append('			 <a href="' + variable.getChild('downloadHost') + '">' + menuLang[13] + '</a> ');	// 다운로드 센터				
			}
			oHtml.append('			<span class="top_bar">l</span> ');
			oHtml.append("			<a href=\"" + variable.getChild('infoHost') + "?m=faq\">" + menuLang[5] + "</a> "); // help
			oHtml.append('			<span class="top_bar">l</span> ');

			if (oCookie.get("glb_mem[userid]") && oCookie.get("glb_mem[userid]") != null) {
				oHtml.append("	<a id=\"TopLogout\" class=\" bold\">" + menuLang[0] + "</a> <span class=\"top_bar\">l</span> <a href=\"" + variable.getChild('infoHost') + "myinfo/?m=myinfo\">" + menuLang[4] + "</a>"); // sign out , 내 정보
			} else {
				oHtml.append("			<a id=\"TopLogin\" class=\"bold\">" + menuLang[1] + "</a> "); // login
			}
/*
			if (oCookie.get("glb_mem[userid]") && oCookie.get("glb_mem[userid]") != null) {
			} else {
				oHtml.append("			<span class=\"top_bar\">l</span> <a href=\"" + variable.getChild('mainHost') + "sign/signup.ptv\">" + menuLang[3] + "</a> "); // Join
			}
*/
			oHtml.append("		<span class=\"top_bar\">l</span> <img src=\"http://imgcdn.pandora.tv/static/blank.gif\" class=\"flag_" + this._json.clientLang + "\"  alt=\"\"><span> <a class=\"boldlink_none\" id=\"langSet\">" + viewNation + "</a></span>");

			oHtml.append('			 </span>');
			oHtml.append("		</div>");


//		new Insertion.Bottom('gnb', oHtml.toString());
		$('gnb').innerHTML = oHtml.toString();


		for(var i=0; i<evtArr.length; i++) {
			Event.observe(evtArr[i].toString(), 'click', function(evt){
				var el = Event.element(evt);

				if(el.id=="TopLogin"){
					this.memActive("login");
				} else if (el.id == "TopLogout") {
					this.memActive('logout');
				} else if (el.id == "jumpChannel") {
					this.memActive('jump');
				} else if (el.id == "langSet") {
					this.memActive('langSet', evt);
				}
			}.bind(this));
		}
	},

	memActive : function(act, _evt) {
		switch (act) {
			case "login" :
				location.href = variable.getChild('mainHost') + "sign/signup.ptv?retUrl=" + escape(location.href);
				/* Login layer change
				var oLoginDiv = null;
				var loginLang = oLang.get('chLogin');
				oLoginDiv = new pandora.util.StringBuffer();
				oLoginDiv.append("<form id=\"login_frm\" method=\"post\" style=\"margin:0px;\" onsubmit=\"javascript:return false\">");
				oLoginDiv.append("<input type=\"hidden\" name=\"retUrl\" value=\""+document.location.href+"\">");
				oLoginDiv.append("<table border=0 cellpadding=2 cellspacing=2 align=center>");
				oLoginDiv.append("<tr>");
				oLoginDiv.append("	<td>" + loginLang[0] + "</td>"); // 아이디
				oLoginDiv.append("	<td><input type=\"text\" id=\"loginUserid\" name=\"loginUserid\" tabindex=1></td>");
				oLoginDiv.append("	<td><input type=\"checkbox\" name=\"auto\" id=\"auto\" value=\"y\" tabindex=4> " + loginLang[1] + "</td>"); // 자동로그인
				oLoginDiv.append("</tr>");
				oLoginDiv.append("<tr>");
				oLoginDiv.append("	<td>" + loginLang[2] + "</td>"); // 패스워드
				oLoginDiv.append("	<td><input type=\"password\" id=\"loginPasswd\" name=\"loginPasswd\" tabindex=2></td>");
				oLoginDiv.append("	<td><input type=\"button\"  id=\"loginSubmit\" value=\"" + loginLang[3] + "\" tabindex=3></td>"); // 로그인
				oLoginDiv.append("</tr>");
				oLoginDiv.append("</table>");
				oLoginDiv.append("<div id=\"resComment\" style=\"display:none; position:absolute; text-align:center; color:blue; width:100%\"></div>");
				oLoginDiv.append("</form>");

				this._evtId = new Array('loginUserid', 'loginPasswd', 'loginSubmit');
				this._evtAct = new Array('keydown', 'keydown', 'click');
				this.layerPop.set(oLoginDiv, this.popRemoveEventListener.bind(this), this, 1, loginLang[3], 330, 125, 30, parseInt(document.body.clientWidth/2)+154); // 로그인
				this.popEventListener();

				$("loginUserid").focus();
				*/

				break;
			case "logout" :
				location.href = "http://member.pandora.tv/global_member/login.ptv?work=logout";
/*
				new Ajax.Request(variable.getChild('mainHost') + "login/login.ptv",{
					method : 'post',
					parameters : {'work':'logout'},
					onSuccess : function(res) {
						location.replace('/');
					}.bind(this),
					onException : function(res){
						throw new Error("Exception : logout ptv fail");
					}
				});
*/
				break;
			case "jump" :
				if (this._isJumpList == false) {
					if (oCookie.get("glb_mem[userid]")) {
						var jumpLang = oLang.get('chJump');
						new Ajax.Request(variable.getChild('mainHost') + "login/login.ptv",{
							method : 'post',
							parameters : {'work':'jumpList'},
							onSuccess : function(res){
								this._isJumpList = true;
								var ajax = res.responseText.evalJSON();

								var stringV = "";
								stringV = "<select id=\"jumpChannel\"><option>" + jumpLang[0] + "</option>"; //가입채널 바로가기

								var len = ajax.ch_name.length;
								for(var i = 0; i < len; i++) {
									stringV += "<option value=\"" + ajax.userid[i] + "\">"+ajax.ch_name[i] + " </option>";
								}
								stringV += "</select>";
								$('jumpChannel').replace(stringV);

								Event.observe('jumpChannel', 'change', function () {
									if ($F('jumpChannel')) {
										var sUrl = variable.getChild('chHost') + "channel/video.ptv?ch_userid=" + $F('jumpChannel');
										location.replace(sUrl);
									}
								});
							}.bind(this),
							onException : function(res){
								throw new Error("Exception : channelJump fail");
							}
						});
					}
				}
				break;
			case "langSet" :
				/* channel / page top language setting */
				/*
				$('nationLayer').style.left = parseInt(document.body.clientWidth/2)+390 + "px";
				$('bodyLayer').show();
				$('nationLayer').show();
				*/
				var keys = $H(this._nationSet).keys();


				var langCnt = this._nationSet[this._json.clientLang].length;
				var oHtml = new pandora.util.StringBuffer();

					/* nation list layer */
					oHtml.append("<div>");
					oHtml.append("<table cellspacing=\"0\" cellpadding=\"0\" width=\"110\" style=\"height:125px\">");
					oHtml.append("<tr>");
					oHtml.append("	<td height=\"9px\" class=\"flag_top\"></td>");
					oHtml.append("</tr>");
					oHtml.append("<tr>");
					oHtml.append("	<td style=\"border-left:4px solid #9d9d9d;border-bottom:4px solid #9d9d9d;border-right:4px solid #9d9d9d; background:#ffffff; padding:5px\">");

					this._evtId = new Array();
					this._evtAct = new Array();
					var ai = 0;
					for (i = 0; i < langCnt; i++) {
//						oHtml.append("	<div class=\"flag_div\" onmouseover=\"this.className='flag_div';\" onmouseon=\"this.className='flag_div_on'\"><img src=\"" + this._imgPath + "/flag/" + keys[i] + ".gif\" align=\"absmiddle\"> <a id=\"nation_" + keys[i] + "\">" + this._nationSet[this._json.clientLang][i] + "</a></div>");
//						oHtml.append("	<div class=\"flag_div\" id=\"flagDiv" + keys[i] + "\"><span class=\"flag_" + keys[i] + "\"></span> <span><a id=\"nation_" + keys[i] + "\">" + this._nationSet[this._json.clientLang][i] + "</a></span></div>");
						oHtml.append("	<div class=\"flag_div\" id=\"flagDiv" + keys[i] + "\" style=\"cursor:pointer\"><img src=\"http://imgcdn.pandora.tv/gimg/img/blank.gif\" class=\"flag_" + keys[i] + "\"> " + this._nationSet[this._json.clientLang][i] + "</div>");

						this._evtId[ai] = "flagDiv" + keys[i];
						this._evtAct[ai] = "click";
						ai++;

						this._evtId[ai] = "flagDiv" + keys[i];
						this._evtAct[ai] = "mouseover";
						ai++;
						this._evtId[ai] = "flagDiv" + keys[i];
						this._evtAct[ai] = "mouseout";
						ai++;
					}

					oHtml.append("	</td>");
					oHtml.append("</tr>");
					oHtml.append("</table>");
					oHtml.append("</div>");

//				this._evtId = new Array('nation_gb', 'nation_ko', 'nation_en', 'nation_jp', 'nation_cn'+addEvtId);
//				this._evtAct = new Array('click', 'click', 'click', 'click', 'click'+addEvtAct);

				var cx = Event.pointerX(_evt);

				var layerW = "";
				var layerH = 40;

				if(this._json.currMenu == 'PSEARCH') {
					layerW = document.body.scrollWidth - 122 ;
					layerH = 25;
				} else {
					if (document.body.scrollWidth > 974) {
						layerW = 974 + parseInt((document.body.scrollWidth-974) / 2, 10) - 122 ;
					} else {
						layerW = document.body.scrollWidth - 122 ;
					}
				}
				this.layerPop.set(oHtml, this.popRemoveEventListener.bind(this), this, 3, '', 110, 125, layerH, layerW); // 국가 선택
				this.popEventListener();

				break;
			case "channelJoin" :
				var joinLang = oLang.get('chJoin');

				if (oCookie.get("glb_mem[userid]") != "" && oCookie.get("glb_mem[userid]") != null) {
					var htmlText = null;
					htmlText = new pandora.util.StringBuffer();
					htmlText.append("<div style=\"padding:5px; text-align:center\">");
					htmlText.append("\t<div class=\"pop_bg\" style=\"padding:5px\"><strong>" + this._json.ch_userid + "</strong>" + joinLang[0] + "</div>"); //님의 채널입니다
					htmlText.append("\t<div style=\"font-weight:bold; padding:5px; border-bottom:1px solid #c3c3c3; line-height:150%\">CH : " + this._json.chno + " VJ : " + this._json.nickname + "<br> " + joinLang[1] + "</div>"); // 위 채널에 가입 하시겠습니까?
					htmlText.append("</div>");
					htmlText.append("<div  style=\"padding:5px; text-align:center\"><input type=\"button\" name=\"joinSubmit\" id=\"joinSubmit\" value=\"" + joinLang[3] + "\"></div>"); // 확인

					this._evtId = new Array('joinSubmit');
					this._evtAct = new Array('click');
					this.layerPop.set(htmlText, this.popRemoveEventListener.bind(this), this, 1, joinLang[3], 270, 155, 30, parseInt(document.body.clientWidth/2)+215); // 채널에 가입하기
					this.popEventListener();
				} else {
					alert(joinLang[4]);//'먼저 로그인을 하셔야 합니다.'
					this.memActive('login');
				}
				break;
			case "channelOut" :
				var outLang = oLang.get('chOut');
				if (confirm(outLang[0])) this.chOut(); // '채널을 탈퇴 하시겠습니까?'
				break;
		}
	},

	popEventListener : function () {
		if (this._evtId[0].indexOf("flagDiv") > -1) {
			for(var i=0; i < this._evtId.length; i++) {
				if (this._evtAct[i] == "click") {
					this._evtObj[i] = this.setNation.bindAsEventListener(this, i);
//					Event.observe(this._evtId[i], this._evtAct[i], this.setNation.bindAsEventListener(this, i));
				} else {
					this._evtObj[i] = this.nationEvtReg.bindAsEventListener(this, this._evtAct[i]);
//					Event.observe(this._evtId[i], this._evtAct[i], this.nationEvtReg.bindAsEventListener(this, this._evtAct[i]));
				}
				Event.observe(this._evtId[i], this._evtAct[i], this._evtObj[i]);
			}

			if (this._nationEvt == null) {
				this._nationEvt = true;
			}
		}
	},

	popRemoveEventListener : function()	{
		/*
		if (this._evtId[0] == "loginUserid") {
			var evtPop = this.formSubmit.bindAsEventListener(this);
		} else if (this._evtId[0] == "joinSubmit") {
			var evtPop = this.chJoin.bindAsEventListener(this);
		} else if (this._evtId[0] == "nation_gb") {
			var evtPop = this.setNation.bindAsEventListener(this);
		}
		*/
		for (var i = 0; i < this._evtId.length; i++) {
//			Event.stopObserving(this._evtId[i], this._evtAct[i], evtPop);
			Event.stopObserving(this._evtId[i], this._evtAct[i], this._evtObj[i]);
		}
	},

	setNation : function (obj, i) {
		var el = Event.element(obj);
		if (i == 5) {
//			this.layerPop.closePopup();
		} else {
			if (!el.id) {
				el = el.up();
			}
			this.popRemoveEventListener();
			var id = el.id.substring(el.id.length-2, el.id.length);
			oCookie.set("clientLang", id, 30*60*60*60);
			oCookie.set("v_listlang", id, 86400);
			location.reload();
		}
	},

	nationEvtReg : function (obj, act) {
		var el = Event.element(obj);
		if (!el.id) {
			el = el.up();
		}
		if (act == "mouseover") {
			$(el.id).className = "flag_div_on";
		} else {
			$(el.id).className = "flag_div";
		}
	}

}

var oLogo = new oLogo();
//Event.observe(window, "load", oLogo.set.bindAsEventListener(oLogo));
//--------------- LOCALIZEABLE GLOBALS ---------------

//---------------   GLOBAL VARIABLES   ---------------

//---------------     API FUNCTIONS    ---------------

//---------------    LOCAL FUNCTIONS   ---------------
