/**
*	@charset "euc-kr"
*	@author	jaNg.
**/

/**
*	°øÅë ¼±¾ð
**/

// ÀÍ½º ÀÌ¹ÌÁö Ä³½Ã
try {
	document.execCommand('BackgroundImageCache', false, true);
} catch(e) {}


$(document).ready(function() {
	/* ·Î±×ÀÎ Æû */
	$("input#login-id, input#login-pw, input#comment-write-id, input#comment-write-pw").focus(function() { $(this).css("background-image", "none"); });

	/* ÆÄÀÏ¼±ÅÃ ¹Ú½º*/
	$("input:file.file").change(function() {
		$(this).next().children().attr({"value": $(this).attr("value"), "readonly": "readonly"});
	});

	/* ·¹ÇÁÆ® ¸Þ´º È°¼ºÈ­ */
	var flashAttr = "&main=&sub=&";
	var subFlash = getFlashMovieObject("subNavi");
	var curhref = window.location.href.replace("http://lastchaos.barunsongames.com", "");

	if(curhref.match("(event.asp|faq_list.asp|server.asp|zone_monster.asp|character_skill.asp|fame_hall.asp)")) {
		curhref = curhref.replace(/\?idx\=[0-9]+/, "?live=ing");
		if(curhref.match(/\&[a-zA-Z]+\=[a-zA-Z0-9]+/)) curhref = curhref.replace(/\&[a-zA-Z]+\=[a-zA-Z0-9]+/, "");
	} else if(curhref.match("enjoy_")) {
		curhref = curhref.replace(window.location.search, "").replace(/(\_[0-9]+)\_[0-9]+\.asp/, "$1_01.asp");
	} else if(!curhref.match("(interface_|basic_|item_convert_|character_|npc_|idea.asp)")) {
		curhref = curhref.replace(window.location.search, "").replace(/\_[0-9]+\.asp/, "_01.asp");
	}

	if(!curhref.match("guild_")) curhref = curhref.replace(/\_(view|write|View|Write)\.asp/, "_list.asp");

	//alert(curhref);
	//$("#log").html(curhref);

	if(subFlash) {
		$.ajax({
			type: "GET",
			url: "/Flash/leftmenu.xml",
			dataType: "text",
			error: function (XMLHttpRequest, textStatus, errorThrown) {
				alert("xml Data load error.");
			},
			success: function(xml) {
				json = xml2json.parser(xml);
				result = xml2json.searchx(curhref, json, "");
				var curpos = {};

				if(result) {
					tmp = 0;
					result = result.split(".");
					for(var node in result) {
						if(result[node].match("[0-9]+")) {
							curpos[tmp] = result[node];
							tmp ++;
						}
					}

					//$("#log").text($("#log").text() + curpos[0] + " | ");
					//$("#log").text($("#log").text() + i + " " + curpos[0] + " | ");
					//subFlash.SetVariable("/:main", curpos[0]);
					//subFlash.SetVariable("/:sub", curpos[1]);
					//$("#log").text($("#log").text() + i + " " + subFlash.GetVariable("/:main") + " | ");

					$("#info-section").animate({opacity: 1}, 1300, function() {
						subFlash.SetVariable("/:main", curpos[0]);
						subFlash.SetVariable("/:sub", curpos[1]);
					});
				}
			}
		});
	}
});

/**
*	mainpage notice / press tab.
**/
var NoticeTab = function(mEl, lEl) {
	this.init(mEl, lEl);
}

NoticeTab.prototype = {
	tItems: 0,
	lArray: {},

	init: function(mEl, lEl) {
		this.mEl = $(mEl);
		this.lEl = $(lEl);
		this.tItems = this.mEl.length;

		for(var i = 0; i < this.tItems; i ++) {
			if(i != 0) this.lEl.eq(i).hide();
			this.lArray[i] = this.mEl.eq(i).attr("href");

			This = this; /* fake this */
			this.mEl.eq(i).click(function() {
				href = $(this).attr("href");
				$(".notice-section > a.more").attr("href", (href == "#notice-list") ? "/News/news_list.asp" : "/News/press_list.asp");
				This.setToShow(href);

				return false;
			});
		}
	},

	setToShow: function(href) {
		for(var i = 0; i < this.tItems; i ++) {
			tabElement = this.mEl.parent().children().eq(i).children();

			if(href == this.lArray[i]) {
				tabElement_src = (tabElement.attr("src").match("On")) ? tabElement.attr("src") : tabElement.attr("src").replace(".gif", "On.gif");
				tabElement.attr("src", tabElement_src);

				this.lEl.eq(i).show();
			} else {
				tabElement_src = tabElement.attr("src").replace("On.gif", ".gif");
				tabElement.attr("src", tabElement_src);

				this.lEl.eq(i).hide();
			}
		}
	}
}

/**
*	¸ÞÀÎÆäÀÌÁö ·©Å·
**/
var rankingScrolling = {
	serverList: [ "ºí¸®½º", "¾ÆÇÁ·Ð", "¼ºÀÎPK·©Å· (Ä«¿À)", "¼ºÀÎPK·©Å· (ÇåÅÍ)" ],
	serverIdx: 0,
	server: null,
	obj: null,
	child: null,
	current: null,

	init: function(ctrl, obj) {
		this.server = $("#ranking-server");
		this.obj = $(obj);
		this.child = this.obj.children();
		this.current = this.child.eq(0);

		/* init control */
		$(ctrl + "> a.next").click(this.toNext.bind(this))
		$(ctrl + "> a.prev").click(this.toPrev.bind(this))

		this.child.css("left", 167);
		this.current.css("left", 0);
		this.server.text(this.serverList[this.serverIdx]);
	},

	toNext: function() {
		if(this.current.is(":last-child")) return false;

		this.current.animate({
			"left": -167
		}, 600);
		this.current.next().animate({
			"left": 0
		}, 600);

		this.current = this.current.next();
		this.serverIdx ++;
		this.server.text(this.serverList[this.serverIdx]);
	},

	toPrev: function() {
		if(this.current.is(":first-child")) return false;

		this.current.animate({
			"left": 167
		}, 600);
		this.current.prev().animate({
			"left": 0
		}, 600);

		this.current = this.current.prev();
		this.serverIdx --;
		this.server.text(this.serverList[this.serverIdx]);
	}
}

/**
*	°ÔÀÓ µî±Þ ÀÌ¹ÌÁö rollover
**/
function setGameGrade(grade) {
	var gameGrade = document.getElementById("game-grade");
	var gradeImg = gameGrade.getElementsByTagName("img")[0];

	gradeImg.src = gradeImg.src.replace(/[0-9]{2}/, grade);
}

/**
*	define event bind
**/
Function.prototype.bind = function() {
	var method = this
	var object = arguments[0]

	return function(event) {
		method.apply(object, [event || window.event])
	}
}


// flashWrite(Å¸°Ù ¿ÀºêÁ§Æ®, ÆÄÀÏ°æ·Î, °¡·Î, ¼¼·Î, ¾ÆÀÌµð, ¹è°æ»ö, º¯¼ö, À©µµ¿ì¸ðµå)
function flashWrite(url, w, h, id, bg, vars, win) {

	// ÇÃ·¡½Ã ÄÚµå Á¤ÀÇ
	var flashStr=
	"<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0' width='"+w+"' height='"+h+"' id='"+id+"' align='middle'>"+
	"<param name='allowScriptAccess' value='always' />"+
	"<param name='movie' value='"+url+"' />"+
	"<param name='FlashVars' value='"+vars+"' />"+
	"<param name='wmode' value='"+win+"' />"+
	"<param name='menu' value='false' />"+
	"<param name='quality' value='high' />"+
	"<param name='bgcolor' value='"+bg+"' />"+
	"<embed src='"+url+"' FlashVars='"+vars+"' wmode='"+win+"' menu='false' quality='high' bgcolor='"+bg+"' width='"+w+"' height='"+h+"' name='"+id+"' align='middle' allowScriptAccess='always' scale='showall' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' />"+
	"</object>";

	// ÇÃ·¡½Ã ÄÚµå Ãâ·Â
	document.write(flashStr);
}


/**
*	xml2json v 1.1
*	copyright 2005-2007 Thomas Frank
*
*	This program is free software under the terms of the
*	GNU General Public License version 2 as published by the Free
*	Software Foundation. It is distributed without any warranty.
**/

xml2json = {
	parser:function(xmlcode,ignoretags,debug) {
		if(!ignoretags){ignoretags=""};
		xmlcode=xmlcode.replace(/\s*\/>/g,'/>');
		xmlcode=xmlcode.replace(/<\?[^>]*>/g,"").replace(/<\![^>]*>/g,"");
		if (!ignoretags.sort){ignoretags=ignoretags.split(",")};
		var x=this.no_fast_endings(xmlcode);
		x=this.attris_to_tags(x);
		x=escape(x);
		x=x.split("%3C").join("<").split("%3E").join(">").split("%3D").join("=").split("%22").join("\"");
		for (var i=0;i<ignoretags.length;i++){
			x=x.replace(new RegExp("<"+ignoretags[i]+">","g"),"*$**"+ignoretags[i]+"**$*");
			x=x.replace(new RegExp("</"+ignoretags[i]+">","g"),"*$***"+ignoretags[i]+"**$*")
		};
		x='<JSONTAGWRAPPER>'+x+'</JSONTAGWRAPPER>';
		this.xmlobject={};
		var y=this.xml_to_object(x).jsontagwrapper;
		if(debug){y=this.show_json_structure(y,debug)};
		return y
	},
	xml_to_object:function(xmlcode) {
		var x=xmlcode.replace(/<\//g,"|");
		x=x.split("<");
		var y=[];
		var level=0;
		var opentags=[];
		for (var i=1;i<x.length;i++){
			var tagname=x[i].split(">")[0];
			opentags.push(tagname);
			level++
			y.push(level+"<"+x[i].split("|")[0]);
			while(x[i].indexOf("|"+opentags[opentags.length-1]+">")>=0){level--;opentags.pop()}
		};
		var oldniva=-1;
		var objname="this.xmlobject";
		for (var i=0;i<y.length;i++){
			var preeval="";
			var niva=y[i].split("<")[0];
			var tagnamn=y[i].split("<")[1].split(">")[0];
			tagnamn=tagnamn.toLowerCase();
			var rest=y[i].split(">")[1];
			if(niva<=oldniva){
				var tabort=oldniva-niva+1;
				for (var j=0;j<tabort;j++){objname=objname.substring(0,objname.lastIndexOf("."))}
			};
			objname+="."+tagnamn;
			var pobject=objname.substring(0,objname.lastIndexOf("."));
			if (eval("typeof "+pobject) != "object"){preeval+=pobject+"={value:"+pobject+"};\n"};
			var objlast=objname.substring(objname.lastIndexOf(".")+1);
			var already=false;
			for (k in eval(pobject)){if(k==objlast){already=true}};
			var onlywhites=true;
			for(var s=0;s<rest.length;s+=3){
				if(rest.charAt(s)!="%"){onlywhites=false}
			};
			if (rest!="" && !onlywhites){
				if(rest/1!=rest){
					rest="'"+rest.replace(/\'/g,"\\'")+"'";
					rest=rest.replace(/\*\$\*\*\*/g,"</");
					rest=rest.replace(/\*\$\*\*/g,"<");
					rest=rest.replace(/\*\*\$\*/g,">")
				}
			}
			else {rest="{}"};
			if(rest.charAt(0)=="'"){rest='unescape('+rest+')'};
			if (already && !eval(objname+".sort")){preeval+=objname+"=["+objname+"];\n"};
			var before="=";after="";
			if (already){before=".push(";after=")"};
			var toeval=preeval+objname+before+rest+after;
			eval(toeval);
			if(eval(objname+".sort")){objname+="["+eval(objname+".length-1")+"]"};
			oldniva=niva
		};
		return this.xmlobject
	},
	show_json_structure:function(obj,debug,l) {
		var x='';
		if (obj.sort){x+="[\n"} else {x+="{\n"};
		for (var i in obj){
			if (!obj.sort){x+=i+":"};
			if (typeof obj[i] == "object"){
				x+=this.show_json_structure(obj[i],false,1)
			}
			else {
				if(typeof obj[i]=="function"){
					var v=obj[i]+"";
					//v=v.replace(/\t/g,"");
					x+=v
				}
				else if(typeof obj[i]!="string"){x+=obj[i]+",\n"}
				else {x+="'"+obj[i].replace(/\'/g,"\\'").replace(/\n/g,"\\n").replace(/\t/g,"\\t").replace(/\r/g,"\\r")+"',\n"}
			}
		};
		if (obj.sort){x+="],\n"} else {x+="},\n"};
		if (!l){
			x=x.substring(0,x.lastIndexOf(","));
			x=x.replace(new RegExp(",\n}","g"),"\n}");
			x=x.replace(new RegExp(",\n]","g"),"\n]");
			var y=x.split("\n");x="";
			var lvl=0;
			for (var i=0;i<y.length;i++){
				if(y[i].indexOf("}")>=0 || y[i].indexOf("]")>=0){lvl--};
				tabs="";for(var j=0;j<lvl;j++){tabs+="\t"};
				x+=tabs+y[i]+"\n";
				if(y[i].indexOf("{")>=0 || y[i].indexOf("[")>=0){lvl++}
			};
			if(debug=="html"){
				x=x.replace(/</g,"&lt;").replace(/>/g,"&gt;");
				x=x.replace(/\n/g,"<BR>").replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;")
			};
			if(debug=="compact"){x=x.replace(/\n/g,"").replace(/\t/g,"")}
		};
		return x
	},
	no_fast_endings:function(x) {
		x=x.split("/>");
		for (var i=1;i<x.length;i++){
			var t=x[i-1].substring(x[i-1].lastIndexOf("<")+1).split(" ")[0];
			x[i]="></"+t+">"+x[i]
		}	;
		x=x.join("");
		return x
	},
	attris_to_tags: function(x) {
		var d=' ="\''.split("");
		x=x.split(">");
		for (var i=0;i<x.length;i++){
			var temp=x[i].split("<");
			for (var r=0;r<4;r++){temp[0]=temp[0].replace(new RegExp(d[r],"g"),"_jsonconvtemp"+r+"_")};
			if(temp[1]){
				temp[1]=temp[1].replace(/'/g,'"');
				temp[1]=temp[1].split('"');
				for (var j=1;j<temp[1].length;j+=2){
					for (var r=0;r<4;r++){temp[1][j]=temp[1][j].replace(new RegExp(d[r],"g"),"_jsonconvtemp"+r+"_")}
				};
				temp[1]=temp[1].join('"')
			};
			x[i]=temp.join("<")
		};
		x=x.join(">");
		x=x.replace(/ ([^=]*)=([^ |>]*)/g,"><$1>$2</$1");
		x=x.replace(/>"/g,">").replace(/"</g,"<");
		for (var r=0;r<4;r++){x=x.replace(new RegExp("_jsonconvtemp"+r+"_","g"),d[r])}	;
		return x
	},
	searchx: function(link, json, temp) {
		var result = "";
		var isSearched = false;
		s(link.toLowerCase(), json, temp);

		function s(link, json, temp) {
			for(var i in json) {
				if(json[i] instanceof Object) {
					s(link, json[i], temp + i + ".")
				}
				else {
					if(!isSearched && json[i].toLowerCase().replace("?", "").match(link.replace("?", ""))) {
						result = temp + i;
						isSearched = true;
					}
				}
			}
		}

		//$("#log").text(result);
		return result;
	}
};


if(!Array.prototype.push){
	Array.prototype.push=function(x){
		this[this.length]=x;
		return true
	}
};

if (!Array.prototype.pop){
	Array.prototype.pop=function(){
  		var response = this[this.length-1];
  		this.length--;
  		return response
	}
};

/**
*	get flash object name
**/
function getFlashMovieObject(movieName) {
    if(navigator.appName.indexOf("Microsoft") != -1 || window.document[movieName]) {
		if(window.document[movieName]) return window.document[movieName];
    } else {
		if(!window.document[movieName]) return document.getElementById(movieName);
		if(document[movieName].length != undefined)	return document[movieName][1];
    }
}

/* 20100202popup */
function setcookie( name, value, expirehours ) {
	var todayDate = new Date();
	todayDate.setHours( todayDate.getHours() + expirehours );
	document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";"
	}

	function closeWin() {
		if ( document.getElementById('notice_formF').chkbox.checked ){
 			setcookie( "maindiv", "done" , 24 );
		}

	document.getElementById('divPOP').style.display = "none";

	}

	function setcookie( name, value, expirehours ) {
	var todayDate = new Date();
	todayDate.setHours( todayDate.getHours() + expirehours );
	document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";"
	}

	function closeWin2() {
	if ( document.getElementById('notice_formF2').chkbox2.checked ){
	setcookie( "maindiv2", "done" , 24 );
}

document.getElementById('divPOP2').style.display = "none";

}


	function closeWin3() {
	if ( document.notice_form3.chkbox.checked ){
	setcookie( "maindiv3", "done" , 24 );
	}

	document.getElementById('divPOP3').style.display = "none";

	}

	function closeWin4() {
	if ( document.getElementById('notice_form4').chkbox4.checked ){
		setcookie( "maindiv4", "done" , 24 );
	}

	document.getElementById('divPOP4').style.display = "none";

	}

	/*¾ÆÀÌ¸®½º´ëÀåÁ¤¼øÀ§*/
function show(c) {
 if (document.getElementById && document.getElementById(c)!= null)
 node = document.getElementById(c).style.display='';
 else if (document.layers && document.layers[c]!= null)
 document.layers[c].display = '';
 else if (document.all)
 document.getElementById(c).style.display = '';
}

function hide(c) {
 if (document.getElementById && document.getElementById(c)!= null)
 node = document.getElementById(c).style.display='none';
 else if (document.layers && document.layers[c]!= null)
 document.layers[c].display = 'none';
 else if (document.all)
 document.getElementById(c).style.display = 'none';
}


function guildR_tab01() {
 show('guildR01');
 hide('guildR02');
}

function guildR_tab02() {
 show('guildR02');
 hide('guildR01');
}
/*20110624_¸ÞÀÎ¼­ °¡Á®¿À±â */
function initMoving(target, topPosition, topLimit, btmLimit) {
	if (!target)
		return false;

	var obj = target;
	obj.initTop = topPosition;
	obj.topLimit = topLimit;
	obj.bottomLimit = document.documentElement.scrollHeight - btmLimit;

	obj.style.position = "absolute";
	obj.top = obj.initTop;
	obj.left = obj.initLeft;
	obj.style.top = obj.top + "px";

	obj.getTop = function() {
		if (document.documentElement.scrollTop) {
			return document.documentElement.scrollTop;
		} else if (window.pageYOffset) {
			return window.pageYOffset;
		} else {
			return 0;
		}
	}
	obj.getHeight = function() {
		if (self.innerHeight) {
			return self.innerHeight;
		} else if(document.documentElement.clientHeight) {
			return document.documentElement.clientHeight;
		} else {
			return 620;
		}
	}
	obj.move = setInterval(function() {
		//pos = obj.getTop() + obj.getHeight() / 2 - 15;
		pos = obj.getTop() + topPosition;

		if (pos > obj.bottomLimit)
			pos = obj.bottomLimit
		if (pos < obj.topLimit)
			pos = obj.topLimit

		interval = obj.top - pos;
		obj.top = obj.top - interval / 4;
		obj.style.top = obj.top + "px";
	}, 30)
	}

function view_pop(layer){
	document.getElementById(layer).style.display = "block";
}

function close_pop(layer){
	document.getElementById(layer).style.display = "none";
}

