
/*-----/js/commons.js / start -----*/

Function.prototype.bind = function(){
    // http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Functions:arguments
    var _$A = function(a){return Array.prototype.slice.call(a);};
    if(arguments.length < 2 && (typeof arguments[0] == "undefined")) return this;
    var __method = this, args = _$A(arguments), object = args.shift();
    return function() {
      return __method.apply(object, args.concat(_$A(arguments)));
    };
};

jQuery.fn.extend({
	getClasses : function() {
		var classes = [];

		jQuery(this).each(function() {
			classes = classes.concat(jQuery(this).attr("class").split(" "));
		});

		return classes;
	},

	eachClass : function(callback) {
		jQuery(this).each(function() {
			var _class = jQuery(this).attr("class");
			if(typeof _class != "undefined")
				jQuery.each(_class.split(" "), callback);
		});

		return this;
	},

	setTextField : function(e, maxLength) {
		jQuery(this).focus(function() {
			jQuery(this).removeClass("default").addClass("focus").unbind("focus");
		}).keyup(function() {
			if(!e || !maxLength) return;

			var bytes = bugs.utils.byteSize($(this).val());

			var html = "(" + bytes + " / " + maxLength + ")";
			if(bytes > maxLength) html = "<em>글자수가 초과되었습니다. 다시 입력해 주세요.</em>" + html;
			e.html(html);
		});

		return this;
	},

	openWindow : function(callback) {
		jQuery(this).click(function() {
			var href = jQuery(this).attr("href");
			window.open(href);

			if(typeof(callback) == "function") callback();

			return false;
		});
		return this;
	},

	popupWindow : function(option, callback) {
		var opt = bugs.overed({
			method		: "GET",
			objFrom		: null,
			url			: null,
			name		: null,
			width		: 500,
			height		: 500,
			top			: 0,
			left		: 0,
			center		: 0,
			location	: 0,
			menubar		: 0,
			toolbar		: 0,
			status		: 0,
			scrollbars	: 0,
			resizable	: 0
		}, option || {});

		var top, left;
		if (opt.center) {
			if ($.browser.msie) {
				top  = (window.screenTop - 120) + ((((document.documentElement.clientHeight + 120)/2) - (opt.height/2)));
				left = window.screenLeft + ((((document.body.offsetWidth + 20)/2) - (opt.width/2)));
			}
			else {
				top = window.screenY + (((window.outerHeight/2) - (opt.height/2)));
				left = window.screenX + (((window.outerWidth/2) - (opt.width/2)));
			}
		}
		else {
			top  = opt.top;
			left = opt.left;
		}

		var features =  "width=" 		+ opt.width +
						",height=" 		+ opt.height +
						",location=" 	+ opt.location +
						",menuBar=" 	+ opt.menubar +
						",toolbar=" 	+ opt.toolbar +
						",status=" 		+ opt.status +
						",scrollbars=" 	+ opt.scrollbars +
						",resizable=" 	+ opt.resizable;

		var objPopup = null;
		if (opt.method.toUpperCase() == "POST") {
			objPopup = window.open("", opt.name, features + ",top=" + top + ",left=" + left);

			$(opt.objFrom).attr("method", "post");
			$(opt.objFrom).attr("target", opt.name);
			$(opt.objFrom).attr("action", opt.url);
			$(opt.objFrom).submit();
		}
		else {
			objPopup = window.open(opt.url, opt.name, features + ",top=" + top + ",left=" + left);
		}

		if (objPopup == null) {
			alert("차단된 팝업창을 허용 후에 이용하실 수 있습니다.");
		}
		else {
			objPopup.focus();
		}

		return objPopup;
	},

	nextInput : function(nextElem, maxLength) {
		jQuery(this).keyup(function() {
			if(!nextElem || !maxLength) return;
			if ($(this).val().length >= maxLength) {
				jQuery(this).removeClass("focus").addClass("default");
				$(nextElem).focus();
			}
		});
		return this;
	}
});



bugs = {
	create : function() {
		return function() { this.initialize.apply(this, arguments); };
	},
	overed : function(destination, source) {
		for (var property in source) {destination[property] = source[property];}
		return destination;
	},
	extend : function(ext, sup) {
		var ext_prototype = ext.prototype; var sup_prototype = sup.prototype;
		for (var property in sup_prototype) { if(!ext_prototype[property]) ext_prototype[property] = sup_prototype[property]; }
	},
	clone : function(obj) {
		var newObj = {};
		for (var property in obj) newObj[property] = obj[property];
		return newObj;
	},
	log : {
		LEVEL : 2,
		levels: {
			DEBUG:0,
			INFO:1,
			ERROR:2
		},
		setLogLevel : function(lv) {
			if(lv == "DEBUG") bugs.log.LEVEL = bugs.log.levels.DEBUG;
			else if(lv == "INFO") bugs.log.LEVEL = bugs.log.levels.DEBUG;
			else if(lv == "ERROR") bugs.log.LEVEL = bugs.log.levels.DEBUG;
		},
		log : function(s) {
			try {
				if(typeof(console) != "undefined") console.log(s);
				//else alert(bugs.object.toString(s));
			} catch(e) {}
		},
		debug : function(s) {
			if(bugs.log.LEVEL <= bugs.log.levels.DEBUG) bugs.log.log(s);
		},
		info : function(s) {
			if(bugs.log.LEVEL <= bugs.log.levels.INFO) bugs.log.log(s);
		},
		error : function(s) {
			if(bugs.log.LEVEL <= bugs.log.levels.ERROR) bugs.log.log(s);
		},
		dump : function(s) {
			var newLog = "";
			switch((typeof s).toLowerCase()) {
				case "object" :
					$.each(s, function(key, value) {
						newLog += "[" + (typeof value) + "] " + key + " : " + value + "\n";
					});
					break;

				case "string" :
				default :
					newLog += "[" + (typeof s) + "] " + s;
			}
			bugs.log.log(newLog);
		}
	},
	date : {
		yyyyMMdd : function(d) {
			if(!d) d = new Date();
			return d.yyyyMMdd();
		}
	},
	math : {
		abs : function(x) {
			return Math.abs(x);
		},
		random : function(n) {
			if(typeof(n) == "undefined") return Math.random();
			else return bugs.math.floor(Math.random() * n, 0);
		},
		round : function(n, index) {
			return bugs.math._get(Math.round, n, index);
		},
		ceil : function(n, index) {
			return bugs.math._get(Math.ceil, n, index);
		},
		floor : function(n, index) {
			return bugs.math._get(Math.floor, n, index);
		},
		_get : function(type, n, index) {
			if(typeof(index) == "undefined" || index == null) {
				index = 0;
			}
			//if(index==0) return eval("Math."+type+"(n)");
			if(index==0) return type(n);
			else {
				var p = Math.pow(10, index);
//				return eval("Math."+type+"(n * p) / p");
				return type(n * p) / p;
			}
		}
	},
	cookie : {
		set : function(name, value) {
			var argc = arguments.length;
			var argv = arguments;
			var expires = ( argc > 2) ? argv[2]:null;
			var path = ( argc > 3) ? argv[3]:null;
			var domain = ( argc > 4) ? argv[4]:null;
			var secure = ( argc > 5) ? argv[5]:false;
			var encode = ( argc > 6) ? argv[6]:true;

			var expireDate = new Date();
			expireDate.setTime(expires);

			document.cookie = name + "=" + (encode ? escape(value) : value) +
				((expires == null) ? "" : ("; expires =" + expireDate.toGMTString())) +
				((path == null) ? "" : ("; path =" + path)) +
				((domain == null) ? "" : ("; domain =" + domain)) +
				((secure == true) ? "; secure" : "");
		},
		get : function(name) {
			var dcookie = document.cookie;
			var cname = name + "=";
			var clen = dcookie.length;
			var cbegin = 0;
			while (cbegin < clen) {
				var vbegin = cbegin + cname.length;
					if (dcookie.substring(cbegin, vbegin) == cname) {
						var vend = dcookie.indexOf (";", vbegin);
						if (vend == -1) vend = clen;
					return unescape(dcookie.substring(vbegin, vend));
				}
				cbegin = dcookie.indexOf(" ", cbegin) + 1;
				if (cbegin == 0) break;
			}
			return "";
		},
		del : function(name) {
			var expTime = new Date();
			expTime.setTime(expTime.getTime() - 1);

			var cookieVal = bugs.cookie.get(name);
			if(cookieVal != null) {
				bugs.cookie.set(name, cookieVal, expTime);
			}
		}
	},
	visible : function(e) {
		var _is_display = false;
		if(e) {
			return (e.get(0).style.display != "none");
		} else
			return false;
		
	},
	focusNblur : function(selector, focusClass, blurClass) {
		if(typeof focusClass == "undefined") focusClass = "focus";
		if(typeof blurClass == "undefined") blurClass = "default";
		$(selector).focus(function(e) {
			var ee = $(e.target);
			ee.removeClass(blurClass);
			ee.addClass(focusClass);
		}).blur(function(e) {
			var ee = $(e.target);
			ee.removeClass(focusClass);
			ee.addClass(blurClass);
		});
	},
	object : {
		toString : function(obj) {
			var str = "";
			if(typeof obj == "string") return obj;
			else {
				for (var property in obj) {
					str += property + ":" + "{" + bugs.object.toString(obj[property])+ "}";
				}
				return str;
			}
		},
		empty : function(obj) {
			if(typeof obj == "undefine" || obj == null) return true;
			if(typeof obj == "string") return bugs.valid.empty(obj);
			if(typeof obj == "object") {
				var _ret = true;
				for (var property in obj) {
					_ret = false; break;
				}
				return _ret;
			}
		}
	},
	utils : {
		stripTag : function(s) {
			s = s.replace(/&(lt|gt);/g, function (strMatch, p1){	return (p1 == "lt")? "<" : ">"; });
			return s.replace(/<\/?[^>]+(>|$)/g, "");
		},
		toTag : function(s) {
			s = s.replace(/&(lt|gt);/g, function (strMatch, p1){	return (p1 == "lt")? "<" : ">"; });
			return s;
		},
		cutstring : function(s, length, postfix) {
			if(!s) return "";
			if(!postfix) postfix = "";
			if(s.length <= length) return s;
//			if(bugs.utils.byteSize(s) <= length) return s;
			else return s.substring(0, length) + postfix;
		},
		cutstring1 : function(s, length) {
			return bugs.utils.cutstring(s, length, "...");
		},

		cutstring2 : function(s,length){
			if(s.length <= length){
				return s;
			}else{
				return bugs.utils.trim(s.substring(0, length))+"...";
			}
		},

		trim : function(str) {
			return str.replace(/(^\s*)|(\s*$)/g, "");
		},
		replaceAll : function(str, srchStr, toStr) {
			while( str.indexOf( srchStr ) != -1 )
				str = str.replace( srchStr, toStr );

			return str;
		},
		byteSize : function(str, twoByteWeight) {
			if(typeof twoByteWeight == "undefined") twoByteWeight = 2;
			if(!str ||  typeof str != 'string') return 0;
			var cnt = 0;
			for (var i = 0; i < str.length; i++) {
				if (str.charCodeAt(i) > 127)
					cnt += twoByteWeight;
				else
					cnt++;
			}

			return Math.ceil(cnt);
		},
		strlengthByByte : function(str, size, twoByteWeight) {
			if(typeof twoByteWeight == "undefined") twoByteWeight = 2;
			if(!str ||  typeof str != 'string') return 0;
			var cnt = 0, len = 0;

			for (var i = 0; i < str.length; i++) {
				if (str.charCodeAt(i) > 127)
					cnt += twoByteWeight;
				else
					cnt++;
				if(cnt > size) return len;
				len++;

			}
			return len;
		},
		strlen : function(str) {
			var len = 0;
			for ( var i = 0; i < str.length; i++) {
				if (str.charCodeAt(i) > 128)
					len += 2;
				else
					len++;
			}
			return len;
		},
		numToStr : function (num) {
	    	if (num.length < 4)	return num;

	    	while(num.indexOf(",") >= 0) {
	    		num = num.replace(",", "");
	    	}

	    	return num;
		},
		strToNum : function (str) {
	    	var num = "";
	    	var getString = ""+str;

	    	while(getString.length > 3) {
	    		num = ","+getString.substring(getString.length-3, getString.length)+num;
	    		getString = getString.substring(0, getString.length-3);
	    	}

	    	if (getString != "")	num = ""+getString+num;

	    	return num;
		},
		cutbytestring : function(s, size, postfix, twoByteWeight) {
			if(!s) return "";
			if(!postfix) postfix = "";
			if(bugs.utils.byteSize(s) <= size) return s;
			else return s.substring(0, bugs.utils.strlengthByByte(s, size, twoByteWeight)) + postfix;
		},
		cutbytestring1 : function(s, size, twoByteWeight) {
			return bugs.utils.cutbytestring(s, size, "...", twoByteWeight);
		},
		cut : function(str, size, postfix) {
			if(typeof(postfix) == 'undefined') postfix = '...';

			var bytes = bugs.utils.byteSize(str);
			if(bytes < size) return str;

			var cnt = 0, len = 0, t = -1;

			for(var i = 0; i < str.length; i++) {
				cnt += (str.charCodeAt(i) > 127) ? 2 : 1;

				if(t < 0 && (cnt + postfix.length > size)) t = len;

				if(cnt > size) break;
				len++;
			}

			if(cnt <= size) return str.substring(0, len);
			else return str.substring(0, t) + postfix;
		},
		cutline : function(str, size, line, postfix) {
			if(typeof(postfix) == 'undefined') postfix = '...';

			var cnt = 0, ln = 0, start = 0, end = 0;
			var result = '';

			for(var i = 0; i < str.length; i++) {
				cnt += (str.charCodeAt(i) > 127) ? 2 : 1;
				if(cnt > size) {
					var tmp = str.substring(start, end);
					ln++;

					if(ln < line) result += tmp + "\n";
					else {
						if(i <= str.length - 1) tmp = bugs.utils.cut(tmp + postfix, size, postfix);

						result += tmp;
						break;
					}

					start = end++;
					cnt = (str.charCodeAt(i) > 127) ? 2 : 1;
				}
				else end++;
			}

			if(ln < line && end > start) result += str.substring(start, end);

			return result;
		},
		countLine : function(str) {
			var line = 1;
			for(var i = 0; i < str.length; i++) {
				if(str.charCodeAt(i) == 10) line++;
			}

			return line;
		},
		addCommas : function(nStr) {
			nStr += '';
			x = nStr.split('.');
			x1 = x[0];
			x2 = x.length > 1 ? '.' + x[1] : '';
			var rgx = /(\d+)(\d{3})/;
			while (rgx.test(x1)) {
				x1 = x1.replace(rgx, '$1' + ',' + '$2');
			}
			return x1 + x2;
		},
		// img out over
		imgOver : function(obj) {
			obj.src = obj.src.replace("Off.gif", "Over.gif");
		},
		imgOut : function(obj) {
			obj.src = obj.src.replace("Over.gif", "Off.gif");
		},

		imgOver2 : function(obj){
			obj.attr("src",obj.attr("src").replace("Off.gif", "Over.gif"));
		},

		imgOut2 : function(obj){
			obj.attr("src",obj.attr("src").replace("Over.gif", "Off.gif"));
		},

		
		imgError : function(obj, defaultSize) {
			if(!obj) return;

			// defaultSize가 argument에 있다면 소스 이미지가 썸네일이 아닌 오리지날 이미지로
			// 해당 이미지가 없으면 바로 default 이미지를 보여줌. (썸네일 서버 부하 줄임)
			if(defaultSize) {
				obj.onerror = null;
				obj.src = bugs.url.defaultThumbnail(obj.src, defaultSize);
			}
			else {
				obj.onerror = null;
				obj.src = bugs.url.defaultThumbnail(obj.src);
			}
		},
		setImgError : function(selector) {
			return $(selector).one("error", function() {
					$(this).attr("src", bugs.url.defaultThumbnail($(this).attr("src")));
			});
		},

		bannerError : function(obj) {
			if(!obj) return;

			obj.onerror = null;
			obj.src = "//file.bugsm.co.kr/bugs/images/common/noalbumD.gif";
		},
		setBannerError : function(selector) {
			return $(selector).one("error", function() {
				$(this).attr("src", "//file.bugsm.co.kr/bugs/images/common/noalbumD.gif");
			});
		},
		moreView : function(anchor, obj, height) {
			if(typeof obj == "undefined") return;
			if(typeof obj == "string") obj = $(obj);
			if(typeof height == "undefined") height = 80;
			anchor = $(anchor);
			if(obj.css("overflow") == "hidden") {
				obj.css({"height":null, "overflow":"visible"});
				anchor.parent().addClass("close");
				anchor.html(anchor.html().replace("더보기", "닫기"));
			} else {
				bugs.log.log(obj.find("img"));
				obj.find("img").hide();

				obj.css({"height":height, "overflow":"hidden"});
				anchor.parent().removeClass("close");
				anchor.html(anchor.html().replace("닫기", "더보기"));
			}

		},
		toggleMoreView : function(anchor) {
			anchor = $(anchor);
			if(anchor.text() == "더보기") {
				anchor.parent().addClass("close");
				anchor.html(anchor.html().replace("더보기", "닫기"));
			} else {
				anchor.parent().removeClass("close");
				anchor.html(anchor.html().replace("닫기", "더보기"));
			}
		},
		parentOpenClose : function(obj, headSelector, listSelector) {
			var oo = $(headSelector);
			if(oo.hasClass("open")) {
				oo.removeClass("open").addClass("close");
				$(listSelector).hide();
			} else if(oo.hasClass("close")) {
				oo.removeClass("close").addClass("open");
				$(listSelector).show();
			}

		},
		focus : function(obj) {
			var oo = $(obj);
			if( typeof oo.get(0) != "undefined") oo.get(0).focus();
		},
		openWindow : function(obj) {
			window.open(obj.href);
			return false;
		},
		closeWindow : function() {
			if ($.browser.msie && $.browser.version >= 7) {
				window.open("about:blank", "_self").close();
			}
			else {
				window.opener = self;
				self.close();
			}
		},
		anchor : function(target, speed, callback) {
			if(arguments.length == 1) {
				speed = 1000;
				callback = function() {};
			} else if(arguments.length == 2) {
				if(typeof speed == "undefind") {
					speed = 1000;
					callback = function() {};
				} else if(typeof speed == "function") {
					callback = speed;
					speed = 1000;
				}
			}

			target = $(target);
			var targetOffset = target.offset().top;
			$('html,body').animate({scrollTop: targetOffset}, speed, callback);
		},
		urlParam : function(paramsName, url) {
			if(bugs.valid.empty(paramsName)) return null;
			if(typeof url == "undefined") url = document.location.href;

			var idx = url.indexOf("?");
			if(idx > 0) {
				var queryString = url.substring(idx + 1);
				if(!bugs.valid.empty(queryString)) {
					var params = queryString.split("&");
					if(typeof params != "undefined" && params.length > 0) {
						for(var i=0;i<params.length;i++) {
							var pStr = params[i].split("=");
							var pName = pStr[0];
							var pValue = pStr[1];
							if(paramsName == pName) return pValue;
						}
					}
				}
			}
			return null;
		},
		addUrlParam : function(url, params) {
            if(bugs.valid.empty(url)) return "";
			if(typeof params != "object") return url;

			var idx = url.indexOf("?");
			if(idx > -1) {
                var queryString = url.substring(idx + 1);
                if(!bugs.valid.empty(queryString)) {
                    var paramArray = queryString.split("&");
                    if(typeof paramArray != "undefined" && paramArray.length > 0) {
                        for(var i=0;i<paramArray.length;i++) {
                            var pStr = paramArray[i].split("=");
                            var pName = pStr[0];
                            var pValue = pStr[1];
                            if(typeof(params[pName]) == "undefined"){
                                params[pName] = pValue;
                            }
                        }
                    }
                }
				return url.substring(0, idx) + "?" + $.param(params);
			}else{
                return url + "?" + $.param(params);
            }
		},
		trListUp : function(c){
			var list = $(c).closest("table").find("tbody > tr");
			var tr = $(c).closest("tr");
			var idx = list.index(tr);
			if(idx <= 0) return;

			var before = list.eq(idx -1);
			before.before(tr);
		},

		trListDown : function(c){
			var list = $(c).closest("table").find("tbody > tr");
			var tr = $(c).closest("tr");
			var idx = list.index(tr);
			if(idx >=  list.length - 1) return;

			var after = list.eq(idx + 1);
			after.after(tr);
		},
		prettyJson : function(jsonStr) {
			var indent = "  ";
			var result = "";

			var indentDepth = 0;
			var targetStr = "";

			for(var i = 0; i < jsonStr.length; i++) {
				targetStr = jsonStr.substring(i, i + 1);
				if(targetStr == "{" || targetStr == "[") {
					result += targetStr + "\n";
					indentDepth++;
					for(var j = 0; j < indentDepth; j++) result += indent;
				}
				else if(targetStr == "}" || targetStr == "]") {
					result += "\n";
					indentDepth--;
					for(var j = 0; j < indentDepth; j++) result += indent;
					result += targetStr;
				}
				else if(targetStr == ",") {
					result += targetStr + "\n";
					for(var j = 0; j < indentDepth; j++) result += indent;
				}
				else result += targetStr;
			}
			return result;
		},
		parseJson : function(jsonStr) {
		    if ($.browser.msie && $.browser.version < 8) {
		        return eval('(' + jsonStr + ')');
		    }
		    else {
		        return JSON.parse(jsonStr);
		    }
		},
		getBannerRandomExtractByWeight : function(bannerList) {

			var totalWeight = 0;
			for(var i = 0; i < bannerList.length; i++){
				totalWeight += bannerList[i].weight || bannerList[i].random_rate;
			}

			var randomIndex = -1;
			var random = Math.random() * totalWeight;

			for(var i = 0; i < bannerList.length; i++){
				random -= bannerList[i].weight || bannerList[i].random_rate;
				if(random < 0){
					randomIndex = i;
					break;
				}
			}
			return bannerList[randomIndex];
		},
		debounce : function(fn, timer) {
			var debounceId;
			return function() {
				var ctx = this;
				var args = arguments;
				if (debounceId) { clearTimeout(debounceId); }
				debounceId = setTimeout(function() {
					fn.apply(ctx, args);
					debounceId = null;
				}, timer || 250);
			}
		}
	},
	valid : {
		isNull : function(obj) {
			return (obj == null || obj == "" || obj == "<undefined>" || obj == "undefined" || obj == "NaN") ? true : false;
		},
		empty : function(str) {
			if(typeof str == "string" && bugs.utils.trim(str).length > 0)
				return false;
			return true;
		},
		email : function(str) {
			return (/^[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[@]{1}[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[.]{1}[A-Za-z]{2,5}$/).test(str);
		},
		kor : function(str) {
			str = bugs.utils.trim(str);
			return (/^[가-힝]+$/).test(str);
		},
		bigeng : function(str) {
			str = bugs.utils.trim(str);
			return (/^[A-Z]+$/).test(str);
		},
		smalleng : function(str) {
			str = bugs.utils.trim(str);
			return (/^[a-z]+$/).test(str);
		},
		eng : function(str) {
			str = bugs.utils.trim(str);
			return (/^[a-zA-Z]+$/).test(str);
		},
		numbigeng : function(str) {
			str = bugs.utils.trim(str);
			return (/^[0-9A-Z]+$/).test(str);
		},
		numsmalleng : function(str) {
			str = bugs.utils.trim(str);
			return (/^[0-9a-z]+$/).test(str);
		},
		numeng : function(str) {
			str = bugs.utils.trim(str);
			return (/^[0-9a-zA-Z]+$/).test(str);
		},
		notnumeng : function(str) {
			str = bugs.utils.trim(str);
			return (/[^0-9a-zA-Z]+$/).test(str);
		},
		numengkor : function(str) {
			str = bugs.utils.trim(str);
			return (/^[가-힝0-9a-zA-Z]+$/).test(str);
		},
		numengkor4special : function(str) {
			str = bugs.utils.trim(str);
			return (/^[가-힝0-9a-zA-Z\+,\-,\.,\_]+$/).test(str);
		},
		notkor : function(str) {
			str = bugs.utils.trim(str);
			return (/[가-힝]+/).test(str);
		},
		numdash : function(str) {
			str = bugs.utils.trim(str);
			return (/^[0-9]{1}[0-9\-]+$/).test(str);
		},
		url : function(str) {
			str = bugs.utils.trim(str);
			return (/^http:\/\/([\w\-]+\.)+/).test(str);
		},
		num : function(str) {
			str = bugs.utils.trim(str);
			return (/^[0-9]+$/).test(str);
		},
		special : function(str) {
			str = bugs.utils.trim(str);
			return (/^[\!,\@,\#,\$,\%,\^,\&,\*,\?,\_,\~]+$/).test(str);
		},
		numspecial : function(str) {
			str = bugs.utils.trim(str);
			return (/^[0-9\!,\@,\#,\$,\%,\^,\&,\*,\?,\_,\~]+$/).test(str);
		},
		bigengspecial : function(str) {
			str = bugs.utils.trim(str);
			return (/^[A-Z\!,\@,\#,\$,\%,\^,\&,\*,\?,\_,\~]+$/).test(str);
		},
		smallengspecial : function(str) {
			str = bugs.utils.trim(str);
			return (/^[a-z\!,\@,\#,\$,\%,\^,\&,\*,\?,\_,\~]+$/).test(str);
		},
		engspecial : function(str) {
			str = bugs.utils.trim(str);
			return (/^[a-zA-Z\!,\@,\#,\$,\%,\^,\&,\*,\?,\_,\~]+$/).test(str);
		},
		numengspecial : function(str) {
			str = bugs.utils.trim(str);
			return (/^[0-9a-zA-Z\!,\@,\#,\$,\%,\^,\&,\*,\?,\_,\~]+$/).test(str);
		},
		phone : function(str) {
			str = bugs.utils.trim(str);
			return (/^[0-9]{1,3}-[0-9]{3,4}-[0-9]{4}$/).test(str);
		},
		dateYMD : function(str) {
			str = bugs.utils.trim(str);
			return (/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/).test(str);
		},
		dateYMDHS : function(str) {
			str = bugs.utils.trim(str);
			return (/^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$/).test(str);
		},
		include2byte : function(str) {
			if(!str ||  typeof str != 'string') return false;
			for (var i = 0; i < str.length; i++) {
				if (str.charCodeAt(i) > 127)
					return true;
			}
			return false;
		},
		isSsnCheck : function(strSsn) {
			strSsn = bugs.utils.trim(strSsn);
			if (strSsn.length != 13) return false;
			var isForeigner = false;
			switch (strSsn.substr(6,1)) {
				case '5'	:
				case '6'	:
				case '7'	:
				case '8'	: isForeigner = true;	break;
				default		: isForeigner = false;	break;
			}

			if (isForeigner) {
				return bugs.valid.isFgnSsnCheck(strSsn);
			}
			else {
				var strCheckKey = '234567892345';
				var nCheckNo = 0, nCheckVal= 0, rVal;

				for (var i=0;i<strCheckKey.length;i++) {
					nCheckNo += strSsn.charAt(i) * strCheckKey.charAt(i);
				}
				nCheckVal = strSsn.charAt(i);

				rVal = 11 - (nCheckNo % 11);
				if (rVal > 9) rVal = (rVal % 10);

				return (nCheckVal == rVal) ? true : false;
			}
		},
		isFgnSsnCheck : function(strSsn) {
			strSsn = bugs.utils.trim(strSsn);
			if (strSsn.length != 13) return false;
			var strCheckKey = '234567892345';
			var nCheckNo = 0, nCheckVal= 0, rVal;
			var nList = new Array(13);

			for (var i=0;i<13;i++) {
				nList[i] = strSsn.charAt(i);
			}

			if(nList[11] < 6) return false;
			if((nList[7]*10 + nList[8])&1) return false;

			for (var i=0;i<strCheckKey.length;i++) {
				nCheckVal += nList[i] * strCheckKey.charAt(i);
			}

			if ((nCheckVal  = 11 - (nCheckVal%11)) >= 10) nCheckVal -= 10;
			if ((nCheckVal += 2) >= 10) nCheckVal -= 10;

			return (nCheckVal != nList[12]) ? false : true;
		}
	},
	mainurl : function() {
		var url = document.location.href;
		//return url;
		if(url.indexOf("www.bugs.co.kr") > 0 || url.indexOf("music.bugs.co.kr") > 0) {
			return "https://music.bugs.co.kr";
		} else return _staticUrl;
	},
	url : {
		artistPage : function(artist_id) {
			if(typeof artist_id == "undefined") return;
			return g_urlMusic +  "/artist/"+artist_id;
		},
		albumPage : function(album_id) {
			if(typeof album_id == "undefined") return;
			return g_urlMusic +  "/album/"+album_id;
		},
		mvPage : function(mv_id) {
			if(typeof mv_id == "undefined") return;
			return g_urlMusic +  "/mv/"+ mv_id;
		},
		pvodPage : function(vod_id){
			if(typeof vod_id == "undefined") return;
			return g_urlMusic + "/streaming/pvod/watch/"+vod_id;
		},
		esAlbumPage : function(es_album_id){
			if(typeof es_album_id == "undefined") return;
			return g_urlMusic + "/musicpd/albumview/"+es_album_id;
		},
		musicPDPage : function(musicpd_id) {
			if(typeof musicpd_id == "undefined") return;
			return g_urlMusic + "/musicpd/pdlistdetail/"+musicpd_id;
		},
		specialPage : function(unicontent_id){
			if(typeof unicontent_id == "undefined") return;
			return g_urlMusic + "/specialview/"+unicontent_id;
		},
		specialPage2 : function(unicontent_id, corner_nm){
			if(typeof unicontent_id == "undefined") return;
			return g_urlMusic + "/specialView/"+ corner_nm + "/" + unicontent_id;
		},
		openAlbumPage : function(open_album_id){
			if(typeof open_album_id == "undefined") return;
			return g_urlMusic + "/musicpd/openalbum/"+open_album_id;
		},
		trackPage : function(track_id) {
			if(typeof track_id == "undefined") return;
			return g_urlMusic +  "/track/"+track_id;
		},
		memberPage : function(userId) {
			if(typeof userId == "undefined") return;
			return g_urlMe +  "/"+userId;
		},
		noticePage : function(srl) {
			if(typeof srl == "undefined") return;
			return g_urlMusic + "/board/notice?srl="+srl;
		},
		albumThumbnail : function(album_id, size, ext) {
			if(typeof album_id == "undefined") return;
			if(typeof ext == "undefined") ext = ".jpg";
			return g_urlClipimg + "/album/images/" + size + "/" + Math.floor(album_id / 100) + "/" + album_id + ext;
		},
		mvThumbnail : function(mv_id, size) {
			if(typeof mv_id == "undefined") return;
			return g_urlClipimg + "/mv/images/" + size + "/" + Math.floor(mv_id / 100) + "/" + mv_id + ".jpg";
		},
		mvhdThumbnail : function(mv_id, size) {
			if(typeof mv_id == "undefined") return;
			return g_urlClipimg + "/mvhd/images/" + size + "/" + Math.floor(mv_id / 100) + "/" + mv_id + ".jpg";
		},
		bsideFeedThumbnail : function(originalUrl, width, height) {
			return g_urlClipimg + "/thumb/fitin/" + width + "x" + height + "/bs/bside/" + originalUrl;
		},
		mvsqThumbnail : function(mv_id, size) {
			if(typeof mv_id == "undefined") return;
			return g_urlClipimg + "/mvsq/images/" + size + "/" + Math.floor(mv_id / 100) + "/" + mv_id + ".jpg";
		},
		artistThumbnail : function(artist_id, size, ext) {
			if(typeof artist_id == "undefined") return;
			if(typeof ext == "undefined") ext = ".jpg";
			return g_urlClipimg + "/artist/images/" + size + "/" + Math.floor(artist_id / 100) + "/" + artist_id + ext;
		},
		unicontentThumbnail : function(unicontent_id, type, size) {
			if(typeof unicontent_id == "undefined") return;
			if(typeof ext == "undefined") ext = ".jpg";
			return g_urlClipimg + "/uniContent/banner/" + Math.floor(unicontent_id / 100) + "/" + unicontent_id + "/" + type + "_" + size + "x" + size + ext;
		},
		unicontentThumbnail2 : function(nkey, img_type) {
			if(typeof nkey == "undefined") return;
			if(typeof ext == "undefined") ext = ".jpg";

			var image_name = "";
			if(typeof img_type != "undefined") {
				if(img_type == "TITLE_MOBILE")			image_name = "title_mobile_306";
				else if(img_type == "NOW_60")	image_name = "now_60x60";
			}
			return g_urlClipimg + "/uniContent/banner/" + nkey + "/" + image_name + ext;
		},
		uniContentImage : function(nkey, type) {
			ext = ".jpg";
			path = nkey;
			if(typeof(nkey) == "number")
				path = Math.floor(nkey / 100) + "/" + nkey;
			return g_urlClipimg + "/uniContent/banner/" + path + "/" + type + ext;
		},
		sectionImage : function(nkey, type) {
			ext = ".jpg";
			path = nkey;
			if(typeof(nkey) == "number")
				path = Math.floor(nkey / 100) + "/" + nkey;
			return g_urlClipimg + "/sectionItem/banner/" + path + "/" + type + ext;
		},
		esalbumThumbnail : function(esalbum_id) {
			if(typeof esalbum_id == "undefined") return;
			if(typeof ext == "undefined") ext = ".jpg";
			return g_urlClipimg + "/essential/images/original/" + Math.floor(esalbum_id / 100) + "/" + esalbum_id + ext;
		},
		ThemaThumbnail : function(thema_id, size, ext) {
			if(typeof thema_id == "undefined") return;
			if(typeof ext == "undefined") ext = ".png";
			return "//file.bugsm.co.kr/nbugs" + "/radioTheme/new/" + size + "/" + thema_id + ext;
		},
		SpecialErrorThumbnail : function(size) {
			var width = size;
			var height = "";
			if(size == "118") height = "70";
			if(size == "170") height = "100";
			if(size == "200") height = "113";
			if(size == "224") height = "126";
			if(size == "306") height = "182";

			return "//file.bugsm.co.kr/wbugs/common/i_default_" + width + "x" + height + ".png";
		},
		defaultThumbnail : function(src, defaultSize) {
			var index = src.indexOf("?");
			if(index > -1 && src.indexOf("version=") < -1){
				src = decodeURIComponent(src.substring(index + 5));
			}

			var tmp = src.split("/");
			var type = tmp[tmp.length - 7];
			var width, height;

			if(type == "member" || type == "playlist") {
				width = height = defaultSize ? defaultSize : tmp[tmp.length - 5];
				if(width != 50 && width != 200){
					width = 200;
					height = 200;
				}
				return "//file.bugsm.co.kr/wbugs/common/i_defaultMyAlbum_"+ width + "x" + height + ".png";
			}
			else {

				type = tmp[tmp.length - 5];
				width = defaultSize ? defaultSize : tmp[tmp.length - 3];
				height = width;

				if((type == "interview" || type == "review" || type == "mv" || type == "mvhd" || type == "uniContent" )  && width == "118") height = "70";
				if((type == "interview" || type == "review" || type == "mv" || type == "mvhd" || type == "uniContent" )  && width == "170") height = "100";
				if((type == "interview" || type == "review" || type == "mv" || type == "mvhd" || type == "uniContent" )  && width == "200") height = "113";
				if((type == "interview" || type == "review" || type == "mv" || type == "mvhd" || type == "uniContent" )  && width == "224") height = "126";
				if((type == "interview" || type == "review" || type == "mv" || type == "mvhd" || type == "uniContent" )  && width == "306") height = "182";

				if(isNaN(width)){
					width = "200"; height = "200";
				}
			}

			return "//file.bugsm.co.kr/wbugs/common/i_default_" + width + "x" + height + ".png";
		}
	},

	checkFlash : function(){
		if ($.browser.chrome || $.browser.safari){
			if(swfobject.getFlashPlayerVersion().major == 0) {

				var faqUrl = "";
				if($.browser.chrome)		faqUrl = "http://help.bugs.co.kr/sub?target=bugs/faq/list%3FfaqId%3D31058%26categoryNo%3D4622";
				else if($.browser.safari)	faqUrl = "http://help.bugs.co.kr/sub?target=bugs/faq/list%3FfaqId%3D31110%26categoryNo%3D4622";

				var html = "<p>Adobe Flash Player를<br/>사용할 수 있도록 설정을 바꿔 주세요.<br />" +
				"<span><a href=\"" + faqUrl + "\" onclick=\"return bugs.utils.openWindow(this);\">Flash 플레이어 설정법 보러가기</a></span></p>";

				var flashPopup = new bugs.ui.popup(html, {
					css : "layerDownDRM",
					title : bugs.ui.TITLE_LOGO
				});
				flashPopup.show();
				return;
			}
		}

		var flashInstalled = swfobject.hasFlashPlayerVersion("10");
		if(flashInstalled) {

		} else {
			var html = "<p>다운로드 매니저는 Adobe Flash Player 10<br/> 이상을 설치하셔야 사용 가능합니다.<br />" +
				"<span><a href=\"http://www.adobe.com/go/getflashplayer\" onclick=\"return bugs.utils.openWindow(this);\">Flash 플레이어 받기</a></span></p>";

			var flashPopup = new bugs.ui.popup(html, {
				css : "layerDownDRM",
				title : bugs.ui.TITLE_LOGO
			});

			flashPopup.show();
		}
	}
};

bugs.template = bugs.create();
bugs.template.prototype = {
	initialize : function(tmpl, json) {
		this.setTemplate(tmpl);
		this.setData(json);
	},
	setFile : function(src) {
		// TODO
	},
	setTemplate : function(tmpl) { if(tmpl) this._template = tmpl;},

	setData : function(data) {
		if(data && data != "") {
			this._data = bugs.overed(this._data||{}, data||{});
		} else {
			this._data = {};
		}
	},
	html : function() {
		var js = this._template.replace(/[\r\t\n]/g, " ")
			.replace(/'(?=[^%]*%>)/g, "\t")
			.split("'").join("\\'")
			.split("\t").join("'")
			.replace(/<%=(.+?)%>/g, "',$1,'")
			.split("<%").join("');")
			.split("%>").join("write.push('");
		var f = new Function('obj', "var write=[];with (obj){write.push('"+js+"');}return write.join('');");
		if (!this._data) return f;
		var r = f(this._data);
		return r;
	}

};


bugs.layermenu = {
	simpleDownObj : null,
	layerCaller : null,
	multiMvLayer : null,
	isComplete : true,
	isPlayer : location.href.indexOf("/newPlayer") > -1 || location.href.indexOf("/newRadio") > -1 || location.href.indexOf("/mvPlayer") > -1 ? true : false,
	showClickLayer : function(sel) {
		$(sel).toggle();
		$(sel).find('.content').css('width', $(sel).width() - 7);
		$(sel).find('.bgTR').css('height', $(sel).find('.content').outerHeight());
	},

	setShareSNSHtml : function(type){
		var html = "";
			html +="				<a href=\"javascript:;\"  onclick=\"try{var e= window.event; if(e.stopPropagation){e.stopPropagation();}else{e.cancelBubble=true;}}catch(e){} $('#layerSNS').toggle(); return false;\"  class=\"detailDisclosure\">공유하기</a>\n";
			html +="				<aside id=\"layerSNS\" class=\"layer layer-select share\" style=\"display:none;\">\n";
			html +="					<div class=\"box-shadow\"></div>\n";
			html +="					<h1>선택 레이어</h1>\n";
			html +="					<div class=\"innerScroll\">\n";
			html +="						<ul class=\"list-layer-select sns\">\n";
			//html +="							<li><a href=\"javascript:;\" class=\"ks\" onclick=\"javascript:RecommendClickLog.sendMoreActionLog('share');bugs.layermenu.shareSNS('"+type+"','ks');\" atype=\"share\"><span class=\"icon\"></span>카카오스토리 <span class=\"blind\">공유하기-새창</span></a></li>\n";
			html +="							<li><a href=\"javascript:;\" class=\"fb\" onclick=\"javascript:RecommendClickLog.sendMoreActionLog('share');bugs.layermenu.shareSNS('"+type+"','fb');\" atype=\"share\"><span class=\"icon\"></span>페이스북 <span class=\"blind\">공유하기-새창</span></a></li>\n";
			// html +="							<li><a href=\"javascript:;\" class=\"tw\" onclick=\"javascript:RecommendClickLog.sendMoreActionLog('share');bugs.layermenu.shareSNS('"+type+"','tw');\" atype=\"share\"><span class=\"icon\"></span>트위터 <span class=\"blind\">공유하기-새창</span></a></li>\n";
			html +="							<li><a href=\"javascript:;\" class=\"copyLink\" onclick=\"javascript:RecommendClickLog.sendMoreActionLog('share');bugs.layermenu.openShareUrlLayer('"+type+"',null,null,event);\" atype=\"share\"><span class=\"icon\"></span>링크복사 <span class=\"blind\">링크복사</span></a></li>\n";
			html +="						</ul>\n";
			html +="					</div>\n";
			html +="				</aside>\n";
		return html;

	},

	getAdultNoticeHtml : function(adultNoticeType,displayMsg){
		html="";
		if(adultNoticeType == "LIMIT"){
			html +="			<li><a href=\"javascript:bugs.ui.adult.limit();\">"+displayMsg+"</a></li>\n";
		}else if(adultNoticeType == "NOTICE"){
			html +="			<li><a href=\"javascript:bugs.ui.adult.notice();\">"+displayMsg+"</a></li>\n";
		}else{
			html +="			<li><a href=\"javascript:bugs.ui.showLoginLayer();\">"+displayMsg+"</a></li>\n";
		}

		return html;
	},
	makeMvMoreActionHtml : function(obj){
		var html ="";
			html +="<aside id=\"commonLayerMenu\" class=\"layer layer-select contextualMenu\" style=\"display:none;\">\n";
			html +="	<div class=\"box-shadow\"></div>\n";
			html +="	<h1>선택 레이어</h1>\n";
			html +="	<div class=\"innerScroll\">\n";
			html +="		<ul class=\"list-layer-select\">\n";


		if(obj.isBSide && obj.isMyBSideMv == "Y"){
			html +="			<li><a href=\"javascript:;\" onclick=\"bugs.layermenu.layerModifyBSideContent('"+obj.mv_id+"', 'mv');bugs.wiselog.area('list_mv_06"+ obj.logType +"');\">수정<span class=\"blind\">-새창</span></a></li>\n";
		}

        if(obj.isStat && !obj.isExist){ // connect
            html +="			<li><a href=\"javascript:;\" onclick=\"bugs.layermenu.layerGoBSideStatistics('"+obj.artist_id+"','"+obj.mv_id+"', 'mv');bugs.wiselog.area('list_mv_07"+ obj.logType +"');\">통계<span class=\"blind\">-새창</span></a></li>\n";
        }
        if(obj.isStat && obj.isExist){ // Exist
            html +="			<li><a href=\"javascript:;\" onclick=\"bugs.layermenu.layerGoBSideStatistics('"+obj.artist_id+"','"+obj.mv_id+"', 'mv',false);bugs.wiselog.area('list_mv_07"+ obj.logType +"');\">통계<span class=\"blind\">-새창</span></a></li>\n";
        }

		if(!obj.isBSide && !obj.isF ){
			if(obj.mvDownType != "NONE"){
				if(obj.adultNoticeType == "PASS"){
					html +="	<li><a href=\"javascript:;\" onclick=\"bugs.music.downloadMusicVideo("+obj.mv_id+",'"+obj.mvDownType+"');\" id=\"mvLayerDirectDownBtn\" data-restricted=\"hangame\"  atype=\"down\">다운로드<span class=\"blind\">-새창</span></a></li>\n";
				}else{
					html += this.getAdultNoticeHtml(obj.adultNoticeType, "다운로드");
				}
			}
		}

			html +="			<li onmouseover=\"$('#layerSNS').show();\" onmouseout=\"$('#layerSNS').hide();\">\n";
			html +=  			this.setShareSNSHtml("MV");
			html +="			</li>";

		if(obj.isLikeYN == "Y"){
			html +="			<li><a id=\"mvLike\" href=\"javascript:;\" onclick=\"bugs.layermenu.layerLikeAction(this,'"+obj.mv_id+"', likes.TYPE_MV);\"  atype=\"like\">좋아 취소</a></li>\n";
		}else{
			html +="			<li><a id=\"mvLike\" href=\"javascript:;\" onclick=\"bugs.layermenu.layerLikeAction(this,'"+obj.mv_id+"', likes.TYPE_MV);\"  atype=\"like\">좋아</a></li>\n";
		}




		if(obj.album_tp != "MF" && obj.album_tp != "SD" &&  obj.artist_type !="POD"){
			if(obj.trackStatus == "OK"){
				html +="			<li class=\"divider\"><a href=\""+bugs.url.trackPage(obj.track_id)+"\" atype=\"track\">곡 정보<span class=\"blind\">-페이지 이동</span></a></li>\n";
			}
			if (obj.albumStatus =="OK") {
                html += "			<li><a href=\"" + bugs.url.albumPage(obj.album_id) + "\" atype=\"album\">앨범 정보<span class=\"blind\">-페이지 이동</span></a></li>\n";
            }

		}

		if(obj.isBSide && obj.isMyBSideMv == ""){
			html +="			<li><a href=\"javascript:;\" onclick=\"bugs.layermenu.layerReportBSideContent(this, '"+obj.mv_id+"', 'mv');bugs.wiselog.area('list_mv_07"+ obj.logType +"');\">신고</a></li>\n";
		}

			html +="		</ul>\n";
			html +="	</div>\n";
			html +="</aside>";
			return html;
	},

	makeMvMoreActionDownOnlyHtml : function(obj){
		var html ="";
			html +="<aside id=\"commonLayerMenu\" class=\"layer layer-select contextualMenu\" style=\"display:none;\">\n";
			html +="	<div class=\"box-shadow\"></div>\n";
			html +="	<h1>선택 레이어</h1>\n";
			html +="	<div class=\"innerScroll\">\n";
			html +="		<ul class=\"list-layer-select\">\n";

		if(obj.mvDownType != "NONE"){
			html +="			<li><a href=\"javascript:;\" onclick=\"bugs.music.downloadMusicVideo("+obj.mv_id+",'"+obj.mvDownType+"');\"\" id=\"mvLayerDirectDownBtn\" data-restricted=\"hangame\">다운로드<span class=\"blind\">-새창</span></a></li>\n";
		}

			html +="		</ul>\n";
			html +="	</div>\n";
			html +="</aside>";
			return html;
	},

	makeAlbumMoreActionHtml : function(obj){
		var html ="";
			html +="<aside id=\"commonLayerMenu\" class=\"layer layer-select contextualMenu\" style=\"display:none;\">\n";
			html +="	<div class=\"box-shadow\"></div>\n";
			html +="	<h1>선택 레이어</h1>\n";
			html +="	<div class=\"innerScroll\">\n";
			html +="		<ul class=\"list-layer-select\">\n";
		if(obj.albumTrackStrYN == "Y"){
			html +="			<li><a href=\"javascript:bugs.music.listenAlbum('"+obj.album_id+"',false);RecommendClickLog.sendMoreActionLog('playlist');\" atype=\"playlist\">재생목록에 추가<span class=\"blind\">-새창</span></a></li>\n";
		}
			html +="			<li><a href=\"javascript:bugs.layermenu.addAlbumTrackToMyAlbum('"+obj.album_id+"');RecommendClickLog.sendMoreActionLog('my_album');\" atype=\"my_album\">내 앨범에 담기<span class=\"blind\">-새창</span></a></li>\n";
		if(obj.albumTrackDownYN == "Y" && !obj.isF){
			html +="			<li><a href=\"javascript:;\" onclick=\"bugs.music.downloadAlbum('"+obj.album_id+"');RecommendClickLog.sendMoreActionLog('download');\" data-restricted=\"hangame\" atype=\"down\">다운로드<span class=\"blind\">-새창</span></a></li>\n";
		}

		if(obj.albumBundleDownType != "" && !obj.isF){
			if(obj.adultCheckVal == "" || obj.adultCheckVal == "1"){
				html +="			<li><a href=\"javascript:bugs.music.downloadAlbumCache('"+obj.album_id+"');\" atype=\"down\">앨범구매<span class=\"blind\">-새창</span></a></li>\n";
			}else{
				var strFunc = "";
				if(obj.adultCheckVal == "2"){
					strFunc = "bugs.ui.adult.limit();";
				}else if(obj.adultCheckVal == "3"){
					strFunc = "bugs.ui.adult.notice();";
				}else{
					strFunc = "bugs.ui.showLoginLayer();";
				}
				html +="			<li><a href=\"javascript:"+strFunc+"\" atype=\"down\">앨범구매<span class=\"blind\">-새창</span></a></li>\n";
			}
		}

				html +="			<li onmouseover=\"$('#layerSNS').show();\" onmouseout=\"$('#layerSNS').hide();\">\n";
				html +=  			this.setShareSNSHtml("ALBUM");
				html +="			</li>\n";

		if(obj.isLikeYN == "Y"){
				html +="			<li><a id=\"albumLike\" href=\"javascript:;\" onclick=\"RecommendClickLog.sendMoreActionLog('dislike');bugs.layermenu.layerLikeAction(this,'"+obj.album_id+"', likes.TYPE_ALBUM);\" atype=\"like\">좋아 취소</a></li>\n";
		}else{
				html +="			<li><a id=\"albumLike\" href=\"javascript:;\" onclick=\"RecommendClickLog.sendMoreActionLog('like');bugs.layermenu.layerLikeAction(this,'"+obj.album_id+"', likes.TYPE_ALBUM);\" atype=\"like\" >좋아</a></li>\n";
		}
			html +="		</ul>\n";
			html +="	</div>\n";
			html +="</aside>";
			return html;
	},

	makePvodMoreActionHtml : function(obj){
		var html ="";
			html +="<aside id=\"commonLayerMenu\" class=\"layer layer-select contextualMenu\" style=\"display:none;\">\n";
			html +="	<div class=\"box-shadow\"></div>\n";
			html +="	<h1>선택 레이어</h1>\n";
			html +="	<div class=\"innerScroll\">\n";
			html +="		<ul class=\"list-layer-select\">\n";
			html +="			<li onmouseover=\"$('#layerSNS').show();\" onmouseout=\"$('#layerSNS').hide();\">\n";
			html +=  			this.setShareSNSHtml("PVOD");
			html +="			</li>\n";

		if(obj.isLikeYN == "Y"){
			html +="			<li><a id=\"pvodLike\" href=\"javascript:;\" onclick=\"RecommendClickLog.sendMoreActionLog('dislike');bugs.layermenu.layerLikeAction(this,'"+obj.vod_id+"', likes.TYPE_PVOD);\" atype=\"like\">좋아 취소</a></li>\n";
		}else{
			html +="			<li><a id=\"pvodLike\" href=\"javascript:;\" onclick=\"RecommendClickLog.sendMoreActionLog('like');bugs.layermenu.layerLikeAction(this,'"+obj.vod_id+"', likes.TYPE_PVOD);\" atype=\"like\" >좋아</a></li>\n";
		}
			html +="		</ul>\n";
			html +="	</div>\n";
			html +="</aside>";
			return html;
	},

	makeTrackMoreActionHtml : function(obj){
		var isSearch = false;
		if(typeof bugsSearchLog != "undefined"){
			isSearch = true;
			//bugsSearchLog.setTrackListAction(chks, "my_album");
		}
		var html ="";
			html +="<aside id=\"commonLayerMenu\" class=\"layer layer-select contextualMenu\" style=\"\">\n";
			html +="	<div class=\"box-shadow\"></div>\n";
			html +="	<h1>선택 레이어</h1>\n";
			html +="	<div class=\"innerScroll\">\n";
			html +="		<ul class=\"list-layer-select\">\n";

			if(obj.layer_type == "MUSIC4U" || obj.layer_type == "BSIDE_FEED") {
				html +="			<li><a href=\"javascript:;\" onclick=\"RecommendClickLog.sendMoreActionLog('playlist');bugs.music.listen('"+obj.track_id+"',false);\">재생목록에 추가<span class=\"blind\">-새창</span></a></li>\n";
				html +="			<li><a href=\"javascript:;\" onclick=\"RecommendClickLog.sendMoreActionLog('my_album');bugs.layermenu.addTrackToMyAlbum('"+obj.track_id+"');\" >내 앨범에 담기<span class=\"blind\">-새창</span></a></li>\n";
			}

			if(obj.isBSide && obj.isMyBSideTrack == "Y"){
				html +="			<li><a href=\"javascript:;\" onclick=\"bugs.layermenu.layerModifyBSideContent('"+obj.track_id+"', 'track');bugs.wiselog.area('list_tr_20"+ obj.logType +"');\">수정<span class=\"blind\">-새창</span></a></li>\n";
			}
			if(obj.isStat && !obj.isExist){ // connect
                html +="			<li><a href=\"javascript:;\" onclick=\"bugs.layermenu.layerGoBSideStatistics('"+obj.artist_id+"','"+obj.track_id+"', 'track');bugs.wiselog.area('list_tr_21"+ obj.logType +"');\">통계<span class=\"blind\">-새창</span></a></li>\n";
			}
        	if(obj.isStat && obj.isExist){ // Exist
            	html +="			<li><a href=\"javascript:;\" onclick=\"bugs.layermenu.layerGoBSideStatistics('"+obj.artist_id+"','"+obj.track_id+"', 'track',false);bugs.wiselog.area('list_tr_21"+ obj.logType +"');\">통계<span class=\"blind\">-새창</span></a></li>\n";
        	}

			if(obj.radioMethod != "NONE" && !obj.isMusicCast){

				html +="			<li><a href=\"javascript:;\" onclick=\"RecommendClickLog.sendMoreActionLog('radio');"+obj.radioMethod+"; \" atype=\"radio\">라디오 듣기<span class=\"blind\">-새창</span></a></li>\n";
			}

			if(!obj.isMusicCast){
				html +="			<li onmouseover=\"$('#layerSNS').show();\" onmouseout=\"$('#layerSNS').hide();\">\n";
				html +=  			this.setShareSNSHtml("TRACK");
				html +="			</li>\n";
			}

			if(obj.isLikeYN == "Y"){
				html +="			<li><a id=\"trackLike\" href=\"javascript:;\" onclick=\"RecommendClickLog.sendMoreActionLog('dislike');bugs.layermenu.layerLikeAction(this,'"+obj.track_id+"', likes.TYPE_TRACK);\" atype=\"like\">좋아 취소</a></li>\n";
			}else{
				html +="			<li><a id=\"trackLike\" href=\"javascript:;\" onclick=\"RecommendClickLog.sendMoreActionLog('like');bugs.layermenu.layerLikeAction(this,'"+obj.track_id+"', likes.TYPE_TRACK);\" atype=\"like\">좋아</a></li>\n";
			}

			if(obj.showDeleteYN == "Y"){
				var contentId = "";
				if(obj.deleteType == "MYALBUM_TRACK"){
					contentId = obj.playlist_track_id;
				}else{
					contentId = obj.track_id;
				}
				html +="			<li><a href=\"javascript:;\" onclick=\"bugs.layermenu.layerDeleteTrack('"+obj.listName+"','"+contentId+"','"+obj.deleteType+"','"+obj.page+"');\">삭제</a></li>\n";
			}

			if(obj.isBSide && !obj.isStat){
				html +="			<li><a href=\"javascript:;\" onclick=\"bugs.layermenu.layerReportBSideContent(this, '"+obj.track_id+"', 'track');bugs.wiselog.area('list_tr_19"+ obj.logType +"');\">신고</a></li>\n";
			}
			html +="		</ul>\n";
			html +="	</div>\n";
			html +="</aside>";

			return html;
	},

	makeTrackMoreActionDeleteOnlyHtml : function(obj){
		var html = "";
		html +="<aside id=\"commonLayerMenu\" class=\"layer layer-select contextualMenu\" style=\"display:none;\">\n";
		html +="	<div class=\"box-shadow\"></div>\n";
		html +="	<h1>선택 레이어</h1>\n";
		html +="	<div class=\"innerScroll\">\n";
		html +="		<ul class=\"list-layer-select\">\n";

		//개인화 영역에 필요한지 확인 필요
        if(obj.isBSide && obj.isMyBSideTrack == "Y"){
			html +="			<li><a href=\"javascript:;\" onclick=\"bugs.layermenu.layerModifyBSideContent('"+obj.track_id+"', 'track');\">수정<span class=\"blind\">-새창</span></a></li>\n";
		}
        if(obj.isBSide && obj.isMyBSideTrack != ""){
            html +="			<li><a href=\"javascript:;\" onclick=\"bugs.layermenu.layerGoBSideStatistics('"+obj.track_id+"', 'track');\">통계<span class=\"blind\">-새창</span></a></li>\n";
        }

		if(obj.deleteType == "MYALBUM_TRACK" || obj.deleteType == "LISTEN_TRACK"){
			var content_id = obj.deleteType == "MYALBUM_TRACK" ? obj.playlist_track_id : obj.track_id;
			html +="			<li><a href=\"javascript:;\" onclick=\"bugs.layermenu.layerDeleteTrack('"+obj.listName+"','"+content_id+"','"+obj.deleteType+"','"+obj.page+"');\">삭제</a></li>\n";
		}

		if(obj.deleteType == "PURCHASED_TRACK" || obj.deleteType == "LIKE_TRACK"){
			if(obj.deleteType == "LIKE_TRACK"){
				html +="			<li><a id=\"trackLike\" href=\"javascript:;\" onclick=\"bugs.layermenu.layerLikeAction(this,'"+obj.track_id+"', likes.TYPE_TRACK);\">좋아 취소</a></li>\n";
			}

		}

		if(obj.isBSide && obj.isMyBSideTrack == ""){
			html +="			<li><a href=\"javascript:;\" onclick=\"bugs.layermenu.layerReportBSideContent(this, '"+obj.track_id+"', 'track');\">신고</a></li>\n";
		}

		html +="		</ul>\n";
		html +="	</div>\n";
		html +="</aside>";
		return html;
	},


	makeArtistMoreActionHtml : function(obj){
		var html ="";
			html +="<aside id=\"commonLayerMenu\" class=\"layer layer-select contextualMenu\" style=\"display:none;\">\n";
			html +="	<div class=\"box-shadow\"></div>\n";
			html +="	<h1>선택 레이어</h1>\n";
			html +="	<div class=\"innerScroll\">\n";
			html +="		<ul class=\"list-layer-select\">\n";
			html +="			<li><a href=\"javascript:;\" onclick=\"bugs.music.listenArtistTracks("+obj.artist_id+");RecommendClickLog.sendMoreActionLog('popular');\" atype=\"play\">인기곡 듣기</a></li>\n";
		if(obj.radioMethod != "NONE"){
			html +="			<li><a href=\"javascript:;\" onclick=\"RecommendClickLog.sendMoreActionLog('radio');"+obj.radioMethod+";\" atype=\"radio\">라디오 듣기</a></li>\n";
		}

			html +="			<li onmouseover=\"$('#layerSNS').show();\" onmouseout=\"$('#layerSNS').hide();\">\n";
			html +=  			this.setShareSNSHtml("ARTIST",$(html));
			html +="			</li>\n";
			html +="		</ul>\n";
			html +="	</div>\n";
			html +="</aside>";
			return html;
	},

	makeMultiArtistHtml : function(obj,target,wise_log_str){
		var targetString = "";

		var html = "";
			html += "<aside id=\"commonLayerMenu\" class=\"layer layer-select scArtist\" style=\"display:inline-block; overflow: hidden; max-width: 50%;font-size:13px;line-height:20px;text-overflow:ellipsis;vertical-align:top;white-space:nowrap; \"  >\n";
			html += "	<div class=\"box-shadow\"></div>\n";
			html += "	<h1>선택 레이어</h1>\n";
			html += "	<div class=\"innerScroll\">\n";
			html += "		<ul class=\"list-layer-select\">\n";

		if(obj.length > 0){
			for(var i=0, size=obj.length; i<size; i ++){
				var linkUrl = g_urlMusic+"/artist/"+obj[i].artist_id;
				if(wise_log_str){
					linkUrl = linkUrl+wise_log_str;
				}
				var artist_nm = obj[i].artist_nm;
				if(target == "_blank"){
					targetString = "target=\"_blank\"";
				}else{
					targetString = "";
				}
                var artist_status = obj[i].status;
				if(obj[i].status !== 'undefined' && (obj[i].status === "BLIND")) {

					if(location.href !== 'undefined' && (location.href.indexOf('/purchased/track')> -1 || location.href.indexOf('/purchased/mv') > -1) )
					{
                        html += "		<li><span class='dim'>"+artist_nm+"</span></li>\n";
					}
				} else { html += "		<li><a href=\""+linkUrl+"\" title=\""+artist_nm+"\" "+targetString+" artistId=\""+obj[i].artist_id+"\">"+artist_nm+"</a></li>\n"; }
			}
		}
			html += "		</ul>\n";
			html += "	</div>\n";
			html += "</aside>";

		return html;
	},

	// SNS 공유 레이어
	makeSNSShareHtml : function(content_type, content_id, param, content_title, artist_name, share_url){

//		var content
		var html = "";
			html += "	<aside id=\"commonLayerMenu\" class=\"layer layer-select share\" style=\"display:none;\">\n";
			html += "	<div class=\"box-shadow\"></div>\n";
			html += "	<h1>선택 레이어</h1>\n";
			html += "	<div class=\"innerScroll\">\n";
			html += "		<ul class=\"list-layer-select sns\">\n";

			if(content_type == "TRACK") {
				// html += "		<li><a href=\"javascript:bugs.kakao.story2('" + bugs.url.trackPage(content_id) + "');\" class=\"ks\"><span class=\"icon\"></span>카카오스토리 <span class=\"blind\">공유하기-새창</span></a></li>\n";
				html += "		<li><a href=\"javascript:bugs.facebook2.track('" + content_id + "', '" + content_title.replace(/\'/g, '\\\'') + "', '" + artist_name + "');\" class=\"fb\"><span class=\"icon\"></span>페이스북 <span class=\"blind\">공유하기-새창</span></a></li>\n";
				// html += "		<li><a href=\"javascript:bugs.twitter.track('" + content_id + "', '" + content_title.replace(/\'/g, '\\\'') + "', '" + artist_name + "');\" class=\"tw\"><span class=\"icon\"></span>트위터 <span class=\"blind\">공유하기-새창</span></a></li>\n";
			}
			else if(content_type == "ARTIST") {
				// html += "		<li><a href=\"javascript:bugs.kakao.story2('" + bugs.url.artistPage(content_id) + "');\" class=\"ks\"><span class=\"icon\"></span>카카오스토리 <span class=\"blind\">공유하기-새창</span></a></li>\n";
				html += "		<li><a href=\"javascript:bugs.facebook2.artist('" + content_id + "', '" + content_title.replace(/\'/g, '\\\'') + "', '" + artist_name + "');\" class=\"fb\"><span class=\"icon\"></span>페이스북 <span class=\"blind\">공유하기-새창</span></a></li>\n";
				// html += "		<li><a href=\"javascript:bugs.twitter.artist('" + content_id + "', '" + content_title.replace(/\'/g, '\\\'') + "', '" + artist_name + "');\" class=\"tw\"><span class=\"icon\"></span>트위터 <span class=\"blind\">공유하기-새창</span></a></li>\n";
			}
			else if(content_type == "ALBUM") {
				// html += "		<li><a href=\"javascript:bugs.kakao.story2('" + bugs.url.albumPage(content_id) + "');\" class=\"ks\"><span class=\"icon\"></span>카카오스토리 <span class=\"blind\">공유하기-새창</span></a></li>\n";
				html += "		<li><a href=\"javascript:bugs.facebook2.album('" + content_id + "', '" + param.title.replace(/\'/g, '').replace(/\"/g, '') + "', '" + param.name + "');\" class=\"fb\"><span class=\"icon\"></span>페이스북 <span class=\"blind\">공유하기-새창</span></a></li>\n";
				//html += "		<li><a href=\"javascript:bugs.twitter.album('" + content_id + "', '" + param.title.replace(/\'/g, '\\\'').replace(/\"/g, '%22') + "', '" + param.name + "');\" class=\"tw\"><span class=\"icon\"></span>트위터 <span class=\"blind\">공유하기-새창</span></a></li>\n";
			}
			else if(content_type == "ESALBUM") {
				// html += "		<li><a href=\"javascript:bugs.kakao.story2('" + bugs.url.esAlbumPage(content_id) + "');\" class=\"ks\"><span class=\"icon\"></span>카카오스토리 <span class=\"blind\">공유하기-새창</span></a></li>\n";
				html += "		<li><a href=\"javascript:bugs.facebook2.esAlbum('" + content_id + "', '" + param.title + "', '" + param.name + "');\" class=\"fb\"><span class=\"icon\"></span>페이스북 <span class=\"blind\">공유하기-새창</span></a></li>\n";
				//html += "		<li><a href=\"javascript:bugs.twitter.esAlbum('" + content_id + "', '" + param.title + "', '" + param.name + "');\" class=\"tw\"><span class=\"icon\"></span>트위터 <span class=\"blind\">공유하기-새창</span></a></li>\n";
			}
			else if(content_type == "MUSICPD") {
				// html += "		<li><a href=\"javascript:bugs.kakao.story2('" + bugs.url.musicPDPage(content_id) + "');\" class=\"ks\"><span class=\"icon\"></span>카카오스토리 <span class=\"blind\">공유하기-새창</span></a></li>\n";
				html += "		<li><a href=\"javascript:bugs.facebook2.musicPD('" + content_id + "', '" + content_title.replace(/\'/g, '\\\'') + "', '" + artist_name + "');\" class=\"fb\"><span class=\"icon\"></span>페이스북 <span class=\"blind\">공유하기-새창</span></a></li>\n";
			//	html += "		<li><a href=\"javascript:bugs.twitter.musicPD('" + content_id + "', '" + content_title.replace(/\'/g, '\\\'') + "', '" + artist_name + "');\" class=\"tw\"><span class=\"icon\"></span>트위터 <span class=\"blind\">공유하기-새창</span></a></li>\n";
			}
			else if(content_type == "SPECIAL") {
				var corner_nm = artist_name;

				if(share_url == undefined || share_url == "") {	// 구 스페셜 (URL 공유)
					// html += "		<li><a href=\"javascript:bugs.kakao.story2('" + bugs.url.specialPage2(content_id, corner_nm) + "');\" class=\"ks\"><span class=\"icon\"></span>카카오스토리 <span class=\"blind\">공유하기-새창</span></a></li>\n";
					html += "		<li><a href=\"javascript:bugs.facebook2.special('" + content_id + "', '" + corner_nm + "', '" + content_title.replace(/\'/g, '\\\'') + "');\" class=\"fb\"><span class=\"icon\"></span>페이스북 <span class=\"blind\">공유하기-새창</span></a></li>\n";
				//	html += "		<li><a href=\"javascript:bugs.twitter.special('" + content_id + "', '" + corner_nm + "', '" + content_title.replace(/\'/g, '\\\'') + "');\" class=\"tw\"><span class=\"icon\"></span>트위터 <span class=\"blind\">공유하기-새창</span></a></li>\n";
				} else {
					// html += "		<li><a href=\"javascript:bugs.kakao.story2('" + share_url + "');\" class=\"ks\"><span class=\"icon\"></span>카카오스토리 <span class=\"blind\">공유하기-새창</span></a></li>\n";
					html += "		<li><a href=\"javascript:bugs.facebook2.special('" + content_id + "', '" + corner_nm + "', '" + content_title.replace(/\'/g, '\\\'') + "', '" + share_url + "');\" class=\"fb\"><span class=\"icon\"></span>페이스북 <span class=\"blind\">공유하기-새창</span></a></li>\n";
				//	html += "		<li><a href=\"javascript:bugs.twitter.special('" + content_id + "', '" + corner_nm + "', '" + content_title.replace(/\'/g, '\\\'') + "', '" + share_url + "');\" class=\"tw\"><span class=\"icon\"></span>트위터 <span class=\"blind\">공유하기-새창</span></a></li>\n";
				}
			}

			html += "		</ul>\n";
			html += "	</div>\n";
			html += "	</aside>";

		return html;
	},

	// SNS 공유 레이어
	makeUrlShareHtml : function(url, params){

		url = url || location.href;
		params = params || {};

		var title = params.title || "벅스";

		window._temp_snsShare = {};

		window._temp_snsShare.kakao = function(){
			bugs.kakao.story2(url);
		};

		window._temp_snsShare.facebook = function(){
			bugs.facebook2.popup(url, title);
		};

		window._temp_snsShare.twitter = function(){
			bugs.twitter.popupStatus(title, url);
		};


		var html = "";
			html += "	<aside id=\"commonLayerMenu\" class=\"layer layer-select share\" style=\"display:none;\">\n";
			html += "	<div class=\"box-shadow\"></div>\n";
			html += "	<h1>선택 레이어</h1>\n";
			html += "	<div class=\"innerScroll\">\n";
			html += "		<ul class=\"list-layer-select sns\">\n";
			//html += "		<li><a href=\"javascript:_temp_snsShare.kakao();\" class=\"ks\"><span class=\"icon\"></span>카카오스토리 <span class=\"blind\">공유하기-새창</span></a></li>\n";
			html += "		<li><a href=\"javascript:_temp_snsShare.facebook();\" class=\"fb\"><span class=\"icon\"></span>페이스북 <span class=\"blind\">공유하기-새창</span></a></li>\n";
			// html += "		<li><a href=\"javascript:_temp_snsShare.twitter();\" class=\"tw\"><span class=\"icon\"></span>트위터 <span class=\"blind\">공유하기-새창</span></a></li>\n";
			html += "		</ul>\n";
			html += "	</div>\n";
			html += "	</aside>";

		return html;
	},

	// 앨범 페이지 - 앨범 구매
	makeBuyAlbumHtml : function(obj){
		var html = "";
			html += "	<aside id=\"commonLayerMenu\" class=\"layer layer-select buyMusic\" style=\"display:none;\" >";
			html += "	<div class=\"box-shadow\"></div>";
			html += "	<h1>선택 레이어</h1>";
			html += "	<div class=\"innerScroll\">";
			html += "<ul class=\"list-layer-select\">";

		var adultCheckhtml = "";

			if(obj.adultCheckVal != "" && obj.adultCheckVal != "1") {
				if(obj.adultCheckVal == "2") {
					adultCheckhtml = "		<a href=\"javascript:;\" onclick=\"javascript:bugs.ui.adult.limit();\">";
				} else if(obj.adultCheckVal == "3") {
					adultCheckhtml = "		<a href=\"javascript:;\" onclick=\"javascript:bugs.ui.adult.notice();\">";
				} else {
					adultCheckhtml = "		<a href=\"javascript:;\" onclick=\"javascript:bugs.ui.showLoginLayer();\">";
				}
			}

			// MP3 다운로드
			if(obj.isAlbumDnlRightsYNAllTrack == "T") {
				html += "<li>";

				if(obj.adultCheckVal == "" || obj.adultCheckVal == "1") {
					if(obj.albumDnlPrice == 0)
						html += "		<a href=\"javascript:;\" onclick=\"javascript:bugs.music.downloadAlbumCache('" + obj.album_id + ":T');\">";
					else
						html += "		<a href=\"javascript:;\" onclick=\"javascript:bugs.music.downloadAlbumCache('" + obj.album_id + ":T' " + obj.addParams + ");\">";
				} else {
					html += adultCheckhtml;
				}

				html += "				<span class=\"type\">MP3</span>";

				if(obj.albumCoverPrice >= 0 && obj.albumDiscountRate == 0) {
					html += "			<span class=\"price\">&nbsp;</span>";
					html += "			<span class=\"dcPrice\"><strong>" + Number(obj.albumCoverPrice).toLocaleString('en').split(".")[0] + "</strong>원</span>";
				}
				if(obj.albumCoverPrice > 0 && obj.albumDiscountRate > 0) {
					html += "			<span class=\"price through\">" + Number(obj.albumCoverPrice).toLocaleString('en').split(".")[0] + "</span>";
					html += "			<span class=\"dcPrice\"><strong>" + Number(obj.albumDnlPrice).toLocaleString('en').split(".")[0] + "</strong>원</span>";
				}

				html += "				<span class=\"btnBuy\">구매</span>";

				html += "			</a>";
				html += "</li>";
			}
			// FLAC(16) 다운로드
			if(obj.isAlbumFlacDnlRightsYNAllTrack == "T") {
				html += "<li>";

				if(obj.adultCheckVal == "" || obj.adultCheckVal == "1") {
					if(obj.albumFlacDnlPrice == 0)
						html += "		<a href=\"javascript:;\" onclick=\"javascript:bugs.music.downloadAlbumCache('" + obj.album_id + ":F16');\">";
					else
						html += "		<a href=\"javascript:;\" onclick=\"javascript:bugs.music.downloadAlbumCache('" + obj.album_id + ":F16' " + obj.addParams + ");\">";
				} else {
					html += adultCheckhtml;
				}

				html += "		<span class=\"type\">FLAC 16/44.1</span>";

				if(obj.albumFlacCoverPrice >= 0 && obj.albumFlacDiscountRate == 0) {
					html += "<span class=\"price\">&nbsp;</span>";
					html += "	<span class=\"dcPrice\"><strong>" + Number(obj.albumFlacCoverPrice).toLocaleString('en').split(".")[0] + "</strong>원</span>";
				}
				if(obj.albumFlacCoverPrice > 0 && obj.albumFlacDiscountRate > 0) {
					html += "<span class=\"price through\">" + Number(obj.albumFlacCoverPrice).toLocaleString('en').split(".")[0] + "</span>";
					html += "<span class=\"dcPrice\"><strong>" + Number(obj.albumFlacDnlPrice).toLocaleString('en').split(".")[0] + "</strong>원</span>";
				}

				if(obj.albumFlacDnlPrice == 0)
					html += "<span class=\"btnBuy\">구매</span>";
				else
					html += "<span class=\"btnBuy\">구매</span>";

				html += "		</a>";
				html += "	</li>";
			}
			// FLAC(24) 다운로드
			if(obj.isAlbumFlac24DnlRightsYNAllTrack == "T") {
				html += "<li>";

				if(obj.adultCheckVal == "" || obj.adultCheckVal == "1") {
					if(obj.albumFlac24DnlPrice == 0)
						html += "		<a href=\"javascript:;\" onclick=\"javascript:bugs.music.downloadAlbumCache('" + obj.album_id + ":F24');\" >";
					else
						html += "		<a href=\"javascript:;\" onclick=\"javascript:bugs.music.downloadAlbumCache('" + obj.album_id + ":F24' " + obj.addParams + ");\">";
				} else {
					html += adultCheckhtml;
				}

				html += "		<span class=\"type\">FLAC 24/" + (obj.sample_rate != "" ? obj.sample_rate : + "44.1") + "</span>";

				if(obj.albumFlac24CoverPrice >= 0 && obj.albumFlac24DiscountRate == 0) {
					html += "<span class=\"price\">&nbsp;</span>";
					html += "	<span class=\"dcPrice\"><strong>" + Number(obj.albumFlac24CoverPrice).toLocaleString('en').split(".")[0] + "</strong>원</span>";
				}
				if(obj.albumFlac24CoverPrice > 0 && obj.albumFlac24DiscountRate > 0) {
					html += "<span class=\"price through\">" + Number(obj.albumFlac24CoverPrice).toLocaleString('en').split(".")[0] + "</span>";
					html += "<span class=\"dcPrice\"><strong>" + Number(obj.albumFlac24DnlPrice).toLocaleString('en').split(".")[0] + "</strong>원</span>";
				}

				if(obj.albumFlac24DnlPrice == 0)
					html += "<span class=\"btnBuy\">구매</span>";
				else
					html += "<span class=\"btnBuy\">구매</span>";

				html += "		</a>";
				html += "	</li>";
			}

			html += "</ul>";
			html += "	</div>";
			html += "	</aside>";


		return html;
	},

	// 트랙 페이지 - 곡 다운로드/구매
	makeDnlHtml : function(obj){
		var ePointInfo = "";
		if(obj.ePointInfo && obj.ePointInfo.esAlbumId){
			ePointInfo = ", '', "+obj.ePointInfo.esAlbumId+",'MUSICPD'";
		}
		else if(obj.ePointInfo && obj.ePointInfo.albumReviewId){
			ePointInfo = ", '', "+obj.ePointInfo.albumReviewId+",'ALBUM_REVIEW'";
		}
		var html = "";
			html += "<aside id=\"commonLayerMenu\" class=\"layer layer-select download\" style=\"display:none;\" >";
			html += "	<div class=\"box-shadow\"></div>";
			html += "	<h1>선택 레이어</h1>";
			html += "	<div class=\"innerScroll\">";
			html += "		<ul class=\"list-layer-select\">";
		if(obj.trackDnlRightsYN == "Y")
			html += "			<li><a href=\"javascript:;\" onclick=\"bugs.music.download('"+obj.track_id+":T"+"'" + ePointInfo + ")\" data-restricted=\"hangame\">다운로드</a></li>";
		if(obj.trackFlacDnlRightsYN == "Y")
			html += "			<li><a href=\"javascript:;\" onclick=\"bugs.music.download('"+obj.track_id+":F16"+"'" + ePointInfo + ")\" data-restricted=\"hangame\">FLAC 16/"+obj.svcFlacSampleRate+" 다운로드</a></li>";
		if(obj.trackFlac24DnlRightsYN == "Y"){
			var spectrogramHtml = "";
			if(obj.spectrogram){
				var spectrogramJsonStr = JSON.stringify([obj.spectrogram]);
				var funcStr = "bugs.layermenu.spectrogramLayer(event,\'"+escape(spectrogramJsonStr)+"\');";
				spectrogramHtml = "<button title=\"24bit FLAC 음원 스펙트로그램 보기\" class=\"iconSpectrogram\" onclick=\""+funcStr+"\" type=\"button\">24bit FLAC 음원 스펙트로그램 보기</button>";
			}
			html += "			<li><a href=\"javascript:;\" onclick=\"bugs.music.download('"+obj.track_id+":F24"+"'" + ePointInfo + ")\" data-restricted=\"hangame\">FLAC 24/"+obj.svcFlac24SampleRate+" 다운로드"+spectrogramHtml+"</a></li>";
		}
			html += "		</ul>";
			html += "	</div>";
			html += "</aside>";

		return html;

	},
	makeMvHtml : function(obj){
		var html = "";
			html += "<aside id=\"commonLayerMenu\" class=\"layer layer-select downloadMusicVideo\" style=\"display:none;\" >";
			html += "	<div class=\"box-shadow\"></div>";
			html += "	<h1>선택 레이어</h1>";
			html += "	<div class=\"innerScroll\">";
			html += "		<ul class=\"list-layer-select\">";
		if(obj.mediaYn == "Y"){
			if(obj.multiMvYn  == "Y"){
				html += "		<li><a href=\"javascript:;\" onclick=\"bugs.layermenu.showMultiMvLayer("+obj.track_id+");\" atype=\"info\">보기</a></li>";
			}else{
				html += "		<li><a href=\"javascript:;\" onclick=\"bugs.music.viewMV("+obj.mv_id+");\"  atype=\"info\">보기</a></li>";
			}
		}

		if(obj.svcFullhdYn == "Y" && !obj.isF)
			html += "			<li><a href=\"javascript:;\" onclick=\"bugs.music.dnFullMV("+obj.mv_id+");\" data-restricted=\"hangame\"  atype=\"down\">1080p 다운로드</a></li>";

		if(obj.svcHdYn == "Y" && !obj.isF)
			html += "			<li><a href=\"javascript:;\" onclick=\"bugs.music.dnHdMV("+obj.mv_id+");\" data-restricted=\"hangame\"  atype=\"down\">720p 다운로드</a></li>";

		if(obj.svcSdYn == "Y" && !obj.isF)
			html += "			<li><a href=\"javascript:;\" onclick=\"bugs.music.dnSdMV("+obj.mv_id+");\" data-restricted=\"hangame\"  atype=\"down\">480p 다운로드</a></li>";

			html += "		</ul>";
			html += "	</div>";
			html += "</aside>";

		return html;
	},

	makeEsAlbumMoreActionHtml : function(obj){

		var html ="";
			html +="<aside id=\"commonLayerMenu\" class=\"layer layer-select contextualMenu\" style=\"display:none;\">\n";
			html +="	<div class=\"box-shadow\"></div>\n";
			html +="	<h1>선택 레이어</h1>\n";
			html +="	<div class=\"innerScroll\">\n";
			html +="		<ul class=\"list-layer-select\">\n";
			html +="			<li><a href=\"javascript:bugs.music.listenEsalbum(" + obj.esalbum_id + ")\" atype=\"playlist\">재생목록에 추가<span class=\"blind\">-새창</span></a></li>\n";
			html +="			<li><a href=\"javascript:; \" onclick=\"bugs.layermenu.addEsAlbumToMyAlbum(" + obj.esalbum_id + ")\" atype=\"my_album\">내 앨범에 담기<span class=\"blind\">-새창</span></a></li>\n";
		if(!obj.isF)
			html +="			<li><a href=\"javascript:;\" onclick=\"bugs.music.downloadEsAlbum(" + obj.esalbum_id + ");\" data-restricted=\"hangame\" atype=\"down\">다운로드<span class=\"blind\">-새창</span></a></li>\n";
			html +="			<li onmouseover=\"$('#layerSNS').show();\" onmouseout=\"$('#layerSNS').hide();\">\n";
			html +=  			this.setShareSNSHtml("ESALBUM");
			html +="			</li>\n";
			if(obj.isLikeYN == "Y"){
				html +="			<li><a id=\"esalbumLike\" href=\"javascript:;\" onclick=\"bugs.layermenu.layerLikeAction(this,'"+obj.esalbum_id+"', likes.TYPE_ESALBUM);\" atype=\"like\">좋아 취소</a></li>\n";
			}else{
				html +="			<li><a id=\"esalbumLike\" href=\"javascript:;\" onclick=\"bugs.layermenu.layerLikeAction(this,'"+obj.esalbum_id+"', likes.TYPE_ESALBUM);\" atype=\"like\">좋아</a></li>\n";
			}
			html +="		</ul>\n";
			html +="	</div>\n";
			html +="</aside>";
			return html;
	},

	makeAlbumReviewMoreActionHtml : function(obj){

		var html ="";
			html +="<aside id=\"commonLayerMenu\" class=\"layer layer-select contextualMenu\" style=\"display:none;\">\n";
			html +="	<div class=\"box-shadow\"></div>\n";
			html +="	<h1>선택 레이어</h1>\n";
			html +="	<div class=\"innerScroll\">\n";
			html +="		<ul class=\"list-layer-select\">\n";
			if((obj.trackRight||"N") == "Y")
				html +="			<li><a href=\"javascript:;\" onclick=\"bugs.music.listenAlbum('" + obj.album_id + "', false)\">재생목록에 추가<span class=\"blind\">-새창</span></a></li>\n";
			html +="			<li><a href=\"javascript:;\" onclick=\"bugs.layermenu.addAlbumTrackToMyAlbum(" + obj.album_id + ")\">내 앨범에 담기<span class=\"blind\">-새창</span></a></li>\n";
			html +="			<li onmouseover=\"$('#layerSNS').show();\" onmouseout=\"$('#layerSNS').hide();\">\n";
			html +=  			this.setShareSNSHtml("ALBUM");
			html +="			</li>\n";
			html +="		</ul>\n";
			html +="	</div>\n";
			html +="</aside>";
			return html;
	},

	makeMusicpdMoreActionHtml : function(obj){
		var html = "";
			html +="<aside id=\"commonLayerMenu\" class=\"layer layer-select contextualMenu\" style=\"display:none;\">\n";
			html +="	<div class=\"box-shadow\"></div>\n";
			html +="	<h1>선택 레이어</h1>\n";
			html +="	<div class=\"innerScroll\">\n";
			html +="		<ul class=\"list-layer-select\">\n";
			html +="			<li onmouseover=\"$('#layerSNS').show();\" onmouseout=\"$('#layerSNS').hide();\">\n";
			html +=  			this.setShareSNSHtml("MUSICPD",$(html));
			html +="			</li>\n";
			html +="		</ul>\n";
			html +="	</div>\n";
			html +="</aside>";
		return html;
	},
	userLikeDeleteOnlyHtml : function(obj){
		var type = obj.type;
		if(type == "TRACK"){
			type = "likes.TYPE_TRACK";
		}else if(type == "ALBUM"){
			type = "likes.TYPE_ALBUM";
		}else if(type == "ARTIST"){
			type = "likes.TYPE_ARTIST";
		}else if(type == "MV"){
			type = "likes.TYPE_MV";
		}else if(type == "MUSICPDALBUM"){
			type = "likes.TYPE_ESALBUM";
		}else if(type == "MUSICPD"){
			type = "likes.TYPE_MEMBER";
		}else if(type == "MUSICCAST_CHANNEL"){
			type = "likes.TYPE_MUSICCAST_CHANNEL";
		}else{
			type == "";
		}
		var html = "";
			html +="<aside id=\"commonLayerMenu\" class=\"layer layer-select contextualMenu\" style=\"display:none;\">\n";
			html +="	<div class=\"box-shadow\"></div>\n";
			html +="	<h1>선택 레이어</h1>\n";
			html +="	<div class=\"innerScroll\">\n";
		if(type != ""){
			html +="		<ul class=\"list-layer-select\">\n";
			html +="			<li><a href=\"javascript:;\" onclick=\"bugs.layermenu.layerLikeAction(this,'"+obj.id+"', "+type+");\">좋아 취소</a></li>\n";
			html +="		</ul>\n";
		}
			html +="	</div>\n";
			html +="</aside>";
		return html;
	},

	raioPlayerMoreActionHtml : function(obj){
		var html = "";
		html +="<aside id=\"commonLayerMenu\" class=\"layer layer-select contextualMenu\" style=\"display:none;\">\n";
		html +="	<div class=\"box-shadow\"></div>\n";
		html +="	<h1>선택 레이어</h1>\n";
		html +="	<div class=\"innerScroll\">\n";
		html +="		<ul class=\"list-layer-select\">\n";
		html +="			<li><a href=\""+g_urlMusic+"/track/"+obj.track_id+ (bugs.radio.type == "musiccast" ? "?wl_ref=nRadio_08_18" : "?wl_ref=nRadio_09_07") + "\" target=\"_blank\">곡 정보</a></li>\n";
		if(obj.album_tp != "MF"){
			html +="			<li><a href=\""+g_urlMusic+"/album/"+obj.album_id+ (bugs.radio.type == "musiccast" ? "?wl_ref=nRadio_08_19" : "?wl_ref=nRadio_09_08") + "\" target=\"_blank\">앨범 정보</a></li>\n";
		}


		html +="			<li><a href=\"javascript:;\" onclick=\"bugs.radio.putTrackToMyAlbum(" + obj.track_id + ");\">내 앨범에 담기</a></li>\n";
//		html +="			<li><a href=\"javascript:;\" onclick=\"bugs.layermenu.addTrackToMyAlbum('" + obj.track_id + "');\" target=\"_blank\">내 앨범에 담기</a></li>\n";
    if(!obj.isF)
		html +="			<li><a href=\"javascript:;\" onclick=\"bugs.music.download(" + obj.track_id + ");\" data-restricted=\"hangame\">다운로드</a></li>\n";
		html +="		</ul>\n";
		html +="	</div>\n";
		html +="</aside>";
		return html;
	},

	musiccastPlayerMoreActionHtml : function(obj){
		var html = "";
		html +="<aside id=\"commonLayerMenu\" class=\"layer layer-select contextualMenu\" style=\"display:none;\">\n";
		html +="	<div class=\"box-shadow\"></div>\n";
		html +="	<h1>선택 레이어</h1>\n";
		html +="	<div class=\"innerScroll\">\n";
		html +="		<ul class=\"list-layer-select\">\n";
		html +="			<li><a href=\""+g_urlMusic+"/radio/musiccast/episode/"+obj.episode_id+"?wl_ref=nRadio_08_16\" target=\"_blank\">에피소드 정보</a></li>\n";
		html +="			<li><a href=\""+g_urlMusic+"/radio/musiccast/channel/"+obj.channel_id+"?wl_ref=nRadio_08_17\" target=\"_blank\">채널 정보</a></li>\n";
		html +="		</ul>\n";
		html +="	</div>\n";
		html +="</aside>";
		return html;
	},

	makeMyAlbumListMoreActionHtml : function(obj){
		var html = "";
		html +="<aside id=\"commonLayerMenu\" class=\"layer layer-select contextualMenu\" style=\"display:none;\">\n";
		html +="	<div class=\"box-shadow\"></div>\n";
		html +="	<h1>선택 레이어</h1>\n";
		html +="	<div class=\"innerScroll\">\n";
		html +="		<ul class=\"list-layer-select\">\n";
		if(obj.totalCount > 0){
            html +="			<li><a href=\"javascript:;\" onclick=\"bugs.music.myAlbumList.listenMyAlbum('"+obj.myAlbumId+"', false);\">재생목록에 추가</a></li>\n";
            html +="			<li><a href=\"javascript:;\" onclick=\"bugs.music.myAlbumList.addMyAlbumToMyAlbumTrack($('"+obj.callerSelector+"'), '"+obj.myAlbumId+"');\">내 앨범에 담기</a></li>\n";
            if(!obj.isF)
            	html +="			<li><a href=\"javascript:;\" onclick=\"bugs.music.myAlbumList.downMyAlbumTrackAll('"+obj.myAlbumId+"', "+obj.totalCount+");\" data-restricted=\"hangame\">다운로드</a></li>\n";
        }
		html +="			<li><a href=\"javascript:;\" onclick=\"playlists.update('"+obj.myAlbumId+"');\">제목 수정</a></li>\n";
		html +="			<li><a href=\"javascript:;\" onclick=\"bugs.music.myAlbumList.deleteMyAlbum('"+obj.page+"', '"+obj.myAlbumId+"');\">삭제</a></li>\n";
		html +="		</ul>\n";
		html +="	</div>\n";
		html +="</aside>";
		return html;
	},


	makeShareUrlLayerHtml : function(obj){
		var html = "";
		html += "<aside  id=\"commonLayerMenu\" class=\"layer layerCopyLink "+obj.className+"\" >";
		html += "	<div class=\"box-shadow\"></div>";
		if(obj.className){
			html += "	<div class=\"layerTap topRight\"></div>";
		}
		html += "	<section class=\"layerContents\">";
		html += "		<p class=\"desc\">URL 선택 후 Ctrl+C를 누르시면 복사할 수 있습니다.</p>";
		html += "		<p class=\"url\">"+obj.url+"</p>";
		html += "	</section>";
		html += "	<button class=\"btnClose\" type=\"submit\">닫기</button>";
		html += "</aside>";
		return html;
	},

	makeShareUrlLayerHtml2 : function(obj){
        var html = "";
        html += "<aside  id=\"commonLayerMenu\" class=\"layer layerCopyLink "+obj.className+"\" >";
        html += "	<div class=\"box-shadow\"></div>";
        if(obj.className){
            html += "	<div class=\"layerTap topRight\"></div>";
        }
        html += "	<section class=\"layerContents\">";
        html += "		<p class=\"desc\">URL 선택 후 Ctrl+C를 누르시면 복사할 수 있습니다.</p>";
        // html += "		<p style=\"width:500px;\" class=\"url\">"+obj.url+"</>";
        html += "		<input type=\"text\" class=\"url\" value=\""+obj.url+"\">";
        html += "	</section>";
        html += "	<button class=\"btnClose\" type=\"submit\">닫기</button>";
        html += "</aside>";
        return html;
    },
	musicCastChannelMoreActionHtml : function(obj){
		var logStr = "";
		var html ="";
			html +="<aside id=\"commonLayerMenu\" class=\"layer layer-select contextualMenu\" style=\"display:none;\">\n";
			html +="	<div class=\"box-shadow\"></div>\n";
			html +="	<h1>선택 레이어</h1>\n";
			html +="	<div class=\"innerScroll\">\n";
			html +="		<ul class=\"list-layer-select\">\n";
		if(obj.type == "RADIO" || obj.type == "RADIO_HOME"){
			if(obj.type == "RADIO_HOME"){
				logStr = "&wl_ref=nRadio_04_05";
			}else{
				logStr = "&wl_ref=nRadio_07_05";
			}
			html +="			<li><a href=\""+g_urlMusic+"/radio/channelmanagment?stationId="+obj.id+"&stationTitle="+encodeURIComponent(obj.msg)+logStr+"\">채널정보</a></li>\n";
		}else{
			if(obj.type == "MUSICCAST_HOME"){
				logStr = "?wl_ref=nRadio_04_02";
			}else{
				logStr = "?wl_ref=nRadio_07_02";
			}
			html +="			<li><a href=\""+g_urlMusic+"/radio/musiccast/channel/"+obj.id+logStr+"\">채널정보</a></li>\n";
		}


		if(obj.type == "RADIO" || obj.type == "RADIO_HOME"){
			if(obj.type == "RADIO_HOME"){
				logStr = "bugs.wiselog.area('nRadio_04_06');";
			}else{
				logStr = "bugs.wiselog.area('nRadio_07_06');";
			}
		}else{
			if(obj.type == "MUSICCAST_HOME"){
				logStr = "bugs.wiselog.area('nRadio_04_03');";
			}else{
				logStr = "bugs.wiselog.area('nRadio_07_03');";
			}

		}
			html +="			<li><a href=\"javascript:;\" onclick=\""+logStr+" bugs.layermenu.layerMusicCastChnnelDelete(this,'"+obj.id+"', '"+obj.type+"');\">채널 삭제</a></li>\n";
			html +="		</ul>\n";
			html +="	</div>\n";
			html +="</aside>";
		return html;
	},


	//트랙 리스트 뮤직비디오 아이콘 메뉴 레이어
	mv : function(obj,track_id, mv_id, mediaYn, svcFullhdYn, svcHdYn, svcSdYn, mediaNo, mvAdultYn, mvGrade, multiMvYn, mvDownPossibleYn) {
		if(!this.checkShowLayer(obj)){
			return;
		}
		this.removeOldLayer();
		this.layerCaller = obj;
		//mvDownPossibleYn 티져, 인터뷰등은 다운 안됨 (==N)
		var html = 	this.makeMvHtml({
						track_id	: track_id,
						mv_id		: mv_id,
						mediaYn 	: mediaYn,
						svcFullhdYn : mvDownPossibleYn||svcFullhdYn,
						svcHdYn 	: mvDownPossibleYn||svcHdYn,
						svcSdYn 	: mvDownPossibleYn||svcSdYn,
						mediaNo 	: mediaNo,
						mvAdultYn	: mvAdultYn,
						mvGrade		: mvGrade,
						multiMvYn	: multiMvYn
		});

		try{
			if(typeof bugsSearchLog != "undefined"){
				html = $(html);
				html.find("a").each(function(){
					var aType = $(this).attr("atype");
					if(aType != "multiMv"){
						$(this).one("mousedown", function(){
							bugsSearchLog.setTrackListAction(obj,aType,'mv');
						});
					}
				});
			}
		}catch(e){}

		this.show(obj, html, 7, 0);
	},

	//트랙리스트 다운로드 아이콘 메뉴 레이어
	down : function(obj, track_id, trackDnlRights, trackFlacDnlRights, svcFlacSampleRate, trackFlac24DnlRights, svcFlac24SampleRate, ePointInfo){
		if(!this.checkShowLayer(obj)){
			return;
		}
		this.removeOldLayer();

		this.layerCaller = obj;
		var htmlMakeParam = {
			track_id				: track_id,
			trackDnlRightsYN 		: eval(trackDnlRights) ? "Y" : "N",
			trackFlacDnlRightsYN	: eval(trackFlacDnlRights) ? "Y" : "N",
			svcFlacSampleRate		: svcFlacSampleRate || "",
			trackFlac24DnlRightsYN 	: eval(trackFlac24DnlRights) ? "Y" : "N",
			svcFlac24SampleRate 	: svcFlac24SampleRate || "",
			ePointInfo 				: ePointInfo || null
		}

		obj = $(obj);
		if(obj.data("spectrogram")){
			htmlMakeParam.spectrogram = obj.data("spectrogram");

			this.show(obj, this.makeDnlHtml(htmlMakeParam), 7, 0);
		}else{
			if(!this.isComplete){
				return;
			}

			this.isComplete = false;
			$.ajax({
				type: 'GET',
				url : g_urlAjax + "/track/"+track_id+"/ajax/spectrogram",
				data: { "decorator" : "blank"},
				success : function(data) {
					this.isComplete = true;
					if(data.isExists){
						obj.data("spectrogram", data.spectrogram);
						htmlMakeParam.spectrogram = data.spectrogram;
					}

					this.show(obj, this.makeDnlHtml(htmlMakeParam), 7, 0);
				}.bind(this),
				error : function(error) {
					this.isComplete = true;
					this.show(obj, this.makeDnlHtml(htmlMakeParam), 7, 0);
				}.bind(this),
				dataType : "json",
				cache : false
			});
		}
	},

	// SNS 공유 레이어
	share_sns : function(obj, share_type, content_id, content_title, artist_name, share_url) {
		if(!this.checkShowLayer(obj)){
			return;
		}
		this.removeOldLayer();
		var callObj = $(obj);
		this.layerCaller = callObj;

		var param = {
				id: content_id,
				title: $(obj).attr("title"),
				name: $(obj).attr("name")
		};
		callObj.data("paramData",param);

		var html;
		if(share_type != "SPECIAL")
			html = this.makeSNSShareHtml(share_type, content_id, param, content_title, artist_name);
		else
			html = this.makeSNSShareHtml(share_type, content_id, param, content_title, artist_name, share_url);

		this.show(obj, html, 7, 43);
	},

	// 일반 공유 레이어
	share : function(obj, url, params) {
		this.removeOldLayer();

		var html = this.makeUrlShareHtml(url + "?ap=T", params);
		this.show(obj, html, 7, 43);
	},

	// 앨범 구매 레이어
	buy_album : function(obj, album_id, sample_rate, isDnlRights, isFlacDnlRights, isFlac24DnlRights, coverPrice, dnlPrice, discountRate, flacCoverPrice, flacDnlPrice, flacDiscountRate, flac24CoverPrice, flac24DnlPrice, flac24DiscountRate, adultCheckVal, addParams) {
		if(!this.checkShowLayer(obj)){
			return;
		}
		this.removeOldLayer();

		this.layerCaller = obj;
		var html = this.makeBuyAlbumHtml({
			album_id									: album_id,
			sample_rate								: sample_rate || "",
			isAlbumDnlRightsYNAllTrack 			: isDnlRights || "",
			isAlbumFlacDnlRightsYNAllTrack		: isFlacDnlRights || "",
			isAlbumFlac24DnlRightsYNAllTrack	: isFlac24DnlRights || "",
			albumCoverPrice 						: coverPrice,
			albumDnlPrice 							: dnlPrice,
			albumDiscountRate						: discountRate,
			albumFlacCoverPrice 					: flacCoverPrice,
			albumFlacDnlPrice 						: flacDnlPrice,
			albumFlacDiscountRate					: flacDiscountRate,
			albumFlac24CoverPrice				 	: flac24CoverPrice,
			albumFlac24DnlPrice 					: flac24DnlPrice,
			albumFlac24DiscountRate				: flac24DiscountRate,
			adultCheckVal							: adultCheckVal,
			addParams								: addParams
		});

		this.show(obj, html, 7, 115);
	},

	//다중 아티스트 레이어
	openMultiArtistSearchResultPopLayer : function(obj, artist_data,target, checkPosition) {
		if(!this.checkShowLayer(obj)){
			return;
		}
		this.removeOldLayer();
		this.layerCaller = obj;
		var html = 	this.makeMultiArtistHtml(this.getMultiArtistInfoArr(artist_data), target || "", $(obj).attr("wise_log_str"));
		try{
			if(typeof bugsSearchLog != "undefined"){
				var html = $(html);
				html.find("a").one("mousedown",function(){
					if(bugsSearchLog.currPage == "album"){
						bugsSearchLog.setAlbumListAction(obj, "info", "artist", $(this).attr("artistId"));
					}else if(bugsSearchLog.currPage == "mv"){
						bugsSearchLog.setMvListAction(obj, "info", "artist", $(this).attr("artistId"));
					}else if(bugsSearchLog.currPage == "lyrics"){
						bugsSearchLog.setLyricsListAction(obj, "info", "artist", $(this).attr("artistId"));
					}else{
						bugsSearchLog.setTrackListAction(obj, "info", "artist", $(this).attr("artistId"));
					}
				});

			}
		}catch(e){}
		if(typeof checkPosition != "undefined"){
			this.show(obj, html, 3, 0,null, checkPosition);
		}else{
			this.show(obj, html, 3, 0);
		}
		try{
			bugs.scroll.setScrollBar("#commonLayerMenu .innerScroll", true);
		}catch(e){
		}
	},

	getMultiArtistNamesWithComma : function(multi_artist_infoset) {
		var multi_artist_list = "";
		var artist_set = multi_artist_infoset.split("\\n");

		for(var i = 0; i < artist_set.length; i++) {
			var artist_info = artist_set[i].split("||");

			if(artist_info.length >= 3) {

				if(artist_info.length ==4 && artist_info[3] === 'BLIND') {}
				else {
					if(artist_info[2] != "" && artist_info[2] != "undefined") {
                        if(multi_artist_list!="") multi_artist_list += ", "
						multi_artist_list += artist_info[1];
                    }
                }
			}
		}
		return multi_artist_list;
	},


	getMultiArtistInfoArr : function(artist_data){
		var rev_artist_data = artist_data.replace(/##/, "\'");
		var artist_set = rev_artist_data.split("\\n");
		if(artist_set.length == 1){
			//javascript에소 html text로 element 만들때는 요걸로 split 해야함.
			artist_set = rev_artist_data.split("\n");
		}
		var artistInfoArr = [];
		for(var i = 0, size = artist_set.length; i < size; i++) {
			var artist_info = artist_set[i].split("||");
			if(artist_info.length >= 3) {
				var artistInfo = {};
				if(artist_info[3] != "" && artist_info[3] != "undefined") {
                    artistInfo.status = artist_info[3];
                    artistInfo.artist_id = artist_info[2];
                    artistInfo.artist_nm = artist_info[1];

				} else if(artist_info[2] != "" && artist_info[2] != "undefined") {
					artistInfo.artist_id = artist_info[2];
					artistInfo.artist_nm = artist_info[1];

				}else {
					artistInfo.artist_nm = artist_info[1];
				}
				artistInfoArr.push(artistInfo);
			}
		}

		return artistInfoArr;
	},

	setLikeYNOnAjax : function(type, data_id) {

		var url = "", data = {};
		if(type == "album")				url = g_urlAjax+"/ajax/getAlbumLike",		data = { "albumId" : data_id };
		else if(type == "track")			url = g_urlAjax+"/ajax/getTrackLike",			data = { "trackId" : data_id };
		else if(type == "mv")			url = g_urlAjax+"/ajax/getMvLike",			data = { "mvId" : data_id };
		else if(type == "esalbum") 	url = g_urlAjax+"/ajax/getEsAlbumLike",		data = { "esAlbumId" : data_id };

		$.post(url, data,
		function(result) {
			if(result != undefined) {
				if(result == true) { // 좋아 정보가 있으면
					$("#commonLayerMenu").find("a#" + type + "Like").text("좋아 취소");
					$(bugs.layermenu.layerCaller).attr("isLikeYN", "Y");
				} else { // 좋아 정보가 없으면
					$("#commonLayerMenu").find("a#" + type + "Like").text("좋아");
					$(bugs.layermenu.layerCaller).attr("isLikeYN", "N");
				}
			}
		});
	},

	//트랙리스트 더보기 아이콘 메뉴
	trackMoreAction : function(obj,track_id,playlist_track_id,album_id,radioMethod, reloadYN, likeAjax, logType){
		if(!this.checkShowLayer(obj)){
			return;
		}
		this.removeOldLayer();

		var callObj = $(obj);
		this.layerCaller = callObj;
		var param = {
				track_id	: track_id,
				playlist_track_id : playlist_track_id,
				album_id : album_id,
				radioMethod : radioMethod,
				track_title : callObj.attr("track_title"),
				artist_name : callObj.attr("artist_disp_nm"),
				artist_id : callObj.attr("artist_id"),
				isLikeYN	: callObj.attr("isLikeYN"),
				showDeleteYN : callObj.attr("showDeleteYN"),
				deleteType : callObj.attr("deleteType"),
				listName : callObj.attr("listName"),
				isBSide : callObj.attr("isBSide") === "Y" ? true : false,
				isStat : callObj.attr("isStat") === "Y",
            	isExist : callObj.attr("isExist") === "Y",
				isMyBSideTrack : callObj.attr("isMyBSideTrack") || "",
				isBSidePage : callObj.attr("isBSidePage") == "Y" ? true : false,
				isMusicCast : callObj.attr("isMusicCast") == "Y" ? true : false,
				logType : logType || "",
				layer_type : callObj.attr("layer_type") || "",
                page : callObj.attr("page") || "1"
		};

		$.ajax({
            url : g_urlMusic + "/connect/ajax/check/meta",
            data : {meta_type : "TRACK", svc_meta_id : track_id+""},
            success : function(data){
                if(data.relationLoginUser != null &&
                    (data.relationLoginUser == 'MY_BSIDE_META' ||
                        data.relationLoginUser == 'MY_ARTIST_BSIDE_META' ||
                        data.relationLoginUser == 'MY_COMPANY_BSIDE_META' ||
                        data.relationLoginUser == 'MY_EXIST_META')){
                    param.isStat = true;
                    if(data.relationLoginUser == 'MY_EXIST_META'){
                        param.isExist = true;
                    }
                }

                if(data.relationLoginUser != null && data.relationLoginUser == 'MY_BSIDE_META'){
                    if(data.isStopBsideMember != 'Y'){
                        param.isMyBSideTrack = "Y";
                    }else{
                        param.isMyBSideTrack = "Y_BUT_STOP";
                    }
                }

                callObj.data("paramData",param);
                var html = 	this.makeTrackMoreActionHtml(param);
                $(this.layerCaller).attr("reloadYN", reloadYN || "N");

                try{
                    if(typeof bugsSearchLog != "undefined"){
                        html = $(html);
                        html.find("a").each(function(){
                            var aType = $(this).attr("atype");
                            if(aType == "radio" || aType == "like" || aType == "share"){

                                $(this).one(aType == "like" ? "mousedown" : "click", function(){
                                    bugsSearchLog.setTrackListAction(callObj,aType,'track');
                                });
                            }
                        });
                    }
                }catch(e){}

                this.show(obj, html, 7, -34);


                // 좋아 정보 세팅 (AJAX)
                if(g_isLogged == true && likeAjax == "Y") {
                    if(!param.isBSidePage){
                        this.setLikeYNOnAjax("track", track_id);
                    }
                }

            }.bind(this)
        });

	},

	//트랙 삭제만 가능한경우
	trackMoreActionDeleteOnly : function(obj, track_id, playlist_track_id, deleteType){
		if(!this.checkShowLayer(obj)){
			return;
		}
		this.removeOldLayer();
		var callObj = $(obj);
		this.layerCaller = callObj;
		var html = 	this.makeTrackMoreActionDeleteOnlyHtml({
						track_id	: track_id,
						playlist_track_id : playlist_track_id,
						deleteType : deleteType,
						isLikeYN	: $(obj).attr("isLikeYN"),
						listName : $(obj).attr("listName"),
						isBSide : callObj.attr("isBSide") == "Y" ? true : false,
						isMyBSideTrack : callObj.attr("isMyBSideTrack") || "",
                        page : callObj.attr("page") || "1"
					});
		this.layerCaller =callObj;
		if(deleteType == "LIKE_TRACK"){
			$(this.layerCaller).attr("reloadYN", "Y");
		}
		this.show(obj, html, 7, -35);
	},

	//앨범리스트 더보기 아이콘 메뉴
	albumMoreAction : function(obj,album_id,albumTrackStrYN, albumTrackDownYN,albumBundleDownType, reloadYN, strCallBack, likeAjax){
		if(!this.checkShowLayer(obj)){
			return;
		}
		this.removeOldLayer();
		var callObj = $(obj);
		this.layerCaller = callObj;
		var param = {
						album_id				: album_id,
						album_title				: $(obj).attr("album_title"),
						artist_name				: $(obj).attr("artist_name"),
						albumTrackDownYN 		: albumTrackDownYN,
						albumTrackStrYN			: albumTrackStrYN,
						albumBundleDownType 	: albumBundleDownType,
						adultCheckVal 			: $(obj).attr("adultCheckVal"),
						isF						: $(obj).attr("isF"),
						isLikeYN				: $(obj).attr("isLikeYN")

		};
		callObj.data("paramData",param);
		var html = 	this.makeAlbumMoreActionHtml(param);

		try{
			if(typeof bugsSearchLog != "undefined"){
				html = $(html);
				html.find("a").each(function(){
					var aType = $(this).attr("atype");
					if(aType=="playlist" || aType == "my_album" ||  aType == "down" || aType == "like" || aType == "share" ){

						$(this).one(aType == "like" ? "mousedown" : "click", function(){
							bugsSearchLog.setAlbumListAction(callObj,aType);
						});
					}
				});
			}
		}catch(e){}

		$(this.layerCaller).attr("reloadYN", reloadYN || "N");
		this.layerCaller.strCallBack = strCallBack || "";
		this.show(obj, html, 7, -49);

		// 좋아 정보 세팅 (AJAX)
		if(g_isLogged == true && likeAjax == "Y") {
			this.setLikeYNOnAjax("album", album_id);
		}
	},

	//프리미엄영상리스트 더보기 아이콘 메뉴
	pvodMoreAction : function(obj, vod_id, reloadYN, strCallBack, likeAjax){
		if(!this.checkShowLayer(obj)){
			return;
		}
		this.removeOldLayer();
		var callObj = $(obj);
		this.layerCaller = callObj;
		var param = {
			vod_id			: vod_id,
			vod_title		: $(obj).attr("vod_title"),
			// artist_name		: $(obj).attr("artist_name"),
			isLikeYN		: $(obj).attr("isLikeYN")
		};
		callObj.data("paramData",param);
		var html = 	this.makePvodMoreActionHtml(param);

		$(this.layerCaller).attr("reloadYN", reloadYN || "N");
		this.layerCaller.strCallBack = strCallBack || "";
		this.show(obj, html, 7, -49);

		// 좋아 정보 세팅 (AJAX)
		if(g_isLogged == true && likeAjax == "Y") {
			this.setLikeYNOnAjax("album", album_id);
		}
	},

	//뮤비리스트 더보기 아이콘 메뉴
	mvMoreAction : function(obj, mv_id, track_id, artist_type, album_id, album_tp, mvDownType, mvStrType, adultNoticeType, reloadYN, likeAjax, trackStatus, logType,albumStatus){

		if(!this.checkShowLayer(obj)){
			return;
		}
		this.removeOldLayer();
		var callObj = $(obj);
		this.layerCaller = callObj;
		var param = {
				mv_id				: mv_id,
				track_id			: track_id,
				artist_type 		: artist_type,
				album_id			: album_id,
				mvDownType 			: mvDownType,
				mvStrType			: mvStrType,
				adultNoticeType		: adultNoticeType,
				album_tp			: album_tp,
				isLikeYN			: $(obj).attr("isLikeYN"),
				trackStatus 		: trackStatus,
				isBSide 			: callObj.attr("isBSide") == "Y" ? true : false,
				isStat 				: callObj.attr("isStat") === "Y",
          		isExist 			: callObj.attr("isExist") === "Y",
				isMyBSideMv 		: callObj.attr("isMyBSideMv") || "",
				isBSidePage 		: callObj.attr("isBSidePage") == "Y" ? true : false,
				mv_title			: callObj.attr("mv_title"),
				artist_name			: callObj.attr("artist_disp_nm"),
            	artist_id			: callObj.attr("artist_id"),
				logType				: logType || "",
				isF					: $(obj).attr("isF"),
				albumStatus			: albumStatus
		};
		callObj.data("paramData",param);
		var html = 	this.makeMvMoreActionHtml(param);

		$(this.layerCaller).attr("reloadYN", reloadYN || "N");
		var tempObj = $(obj);

		try{
			if(typeof bugsSearchLog != "undefined"){
				html = $(html);
				html.find("a").each(function(){
					var aType = $(this).attr("atype");
					if(aType=="playlist" || aType == "down" ||  aType == "like"){

						$(this).one(aType == "like" ? "mousedown" : "click", function(){
							bugsSearchLog.setMvListAction(obj, aType, "mv");
						});
					}else{
						if(aType == "track"){
							$(this).one("mousedown", function(){
								bugsSearchLog.setMvListAction(obj, "info", aType);
							});
						}

						if(aType == "album" ){
							$(this).one("mousedown", function(){
								bugsSearchLog.setMvListAction(obj, "info", aType);
							});
						}
					}
				});
			}
		}catch(e){}

		if(tempObj.attr("isPurchasedYN") == "Y" && typeof tempObj.attr("bitRate") != "undefined"){
			var self = this;
			this.show(obj, html, 7, -50, function(){
				$("#mvLayerDirectDownBtn")[0].onclick=function(){return false};
				new bugs.downloader.button($("#mvLayerDirectDownBtn"), {
					type : "mv",
					downloadId : mv_id,
                    isOnClickRemoveOldLayer : true
				},self.simpleDownObj);
			});
		}else{
			this.show(obj, html, 7, -50);
		}

		// 좋아 정보 세팅 (AJAX)
		if(g_isLogged == true && likeAjax == "Y") {
			if(!param.isBSidePage){
				this.setLikeYNOnAjax("mv", mv_id);
			}
		}
	},

	//구매보관함 전시해제 뮤비 전용
	mvMoreActionDownOnly : function(obj, mv_id, mvDownType){
		if(!this.checkShowLayer(obj)){
			return;
		}
		this.removeOldLayer();
		var html = 	this.makeMvMoreActionDownOnlyHtml({
						mv_id				: mv_id,
						mvDownType 			: mvDownType
					});

		this.layerCaller = obj;
		$(this.layerCaller).attr("reloadYN", "N");
		var tempObj = $(obj);
		if(tempObj.attr("isPurchasedYN") == "Y" && typeof tempObj.attr("bitRate") != "undefined"){
			var self = this;
			this.show(obj, html, 7, -50, function(){
				$("#mvLayerDirectDownBtn")[0].onclick=function(){return false};
				new bugs.downloader.button($("#mvLayerDirectDownBtn"), {
					type : "mv",
					downloadId : mv_id
				},self.simpleDownObj);
			});
		}else{
			this.show(obj, html, 7, -50);
		}

	},

	showMultiMvLayer : function(track_id){
        $("#multiMvListLayer").remove();
		$.ajax({
			type: 'GET',
			url : g_urlAjax + "/mv/list/"+track_id,
			data: { "decorator" : "blank"},
			success : function(data) {
				var mvHtml = $(data);
				 if(mvHtml.has("aside.layer.listMusicVideo")){
					var contentWindow = $(window);

					if($("#promotionContainer").length > 0){
						mvHtml.appendTo("#promotionContainer");
					}else{
						mvHtml.appendTo("body");
					}

					this.multiMvLayer = mvHtml.find(".btnClose").one("click", function(e){
																						bugs.layerFocusNavi.remove(this.multiMvLayer);
																						this.removeMultiMvLayer();
																					}.bind(this)).end().show();

					this.multiMvLayer.css({left:(contentWindow.scrollLeft() + ((contentWindow.width() - $("#multiMvListLayer").width()) >> 1))+"px",
											top:(contentWindow.scrollTop() + ((contentWindow.height() - $("#multiMvListLayer").height()) >> 1))+"px"});

					bugs.layerFocusNavi.add(this.multiMvLayer, this.layerCaller, this.removeMultiMvLayer.bind(this));
				}else{
					alert("뮤직비디오 정보를 받아오지 못했습니다.");
				}
			}.bind(this),
			error : function(error) {
				alert("뮤직비디오 정보를 받아오지 못했습니다.");
			},
			dataType : "HTML",
			cache : false
		});
	},


	removeMultiMvLayer : function(event){
		this.multiMvLayer.hide().remove();
	},

	//아티스트리스트 더보기 아이콘 메뉴
	artistMoreAction : function(obj, artist_id, listenType, radioMethod, reloadYN){
		if(!this.checkShowLayer(obj)){
			return;
		}
		this.removeOldLayer();
		var callObj = $(obj);
		this.layerCaller = callObj;
		var param = {
						artist_id			: artist_id,
						listenType			: listenType,
						radioMethod			: radioMethod,
						isLikeYN			: $(obj).attr("isLikeYN"),
						artist_name			: $(obj).attr("artist_nm")

		};
		callObj.data("paramData",param);
		var html = 	this.makeArtistMoreActionHtml(param);

		try{
			if(typeof bugsSearchLog != "undefined"){
				html = $(html);
				html.find("a").each(function(){
					var aType = $(this).attr("atype");
					if(aType=="play" || aType == "radio" || aType == "like" || aType == "share" ){

						$(this).one("mousedown", function(){
							bugsSearchLog.setArtistListAction(obj,aType,"artist", artist_id);
						});
					}
				});
			}
		}catch(e){}
		$(this.layerCaller).attr("reloadYN", reloadYN || "N");

		this.show(obj, html, 7, -38);
	},

	//뮤직pd앨범 더보기 아이콘 메뉴
	esAlbumMoreAction : function(obj, params, reloadYN, likeAjax){
		if(!this.checkShowLayer(obj)){
			return;
		}
		this.removeOldLayer();
		var callObj = $(obj);
		this.layerCaller = callObj;
		var params = {
			esalbum_id : $(obj).attr("esalbum_id"),
			esalbum_title : $(obj).attr("esalbum_title"),
			pd_nickname : $(obj).attr("pd_nickname"),
			isF			: $(obj).attr("isF"),
			isLikeYN : $(obj).attr("isLikeYN")
		};
		callObj.data("paramData", params);
		var html = 	this.makeEsAlbumMoreActionHtml(params);

		try{
			if(typeof bugsSearchLog != "undefined"){
				html = $(html);
				html.find("a").each(function(){
					var aType = $(this).attr("atype");
					if(aType=="playlist" || aType == "my_album" ||  aType == "down" || aType == "like" || aType == "share" ){

						$(this).one("mousedown", function(){
							bugsSearchLog.setEsAlbumAction(callObj,aType);
						});
					}
				});
			}
		}catch(e){}

		$(this.layerCaller).attr("reloadYN", reloadYN || "N");
		this.show(obj, html, 7, -50);

		// 좋아 정보 세팅 (AJAX)
		if(g_isLogged == true && likeAjax == "Y") {
			this.setLikeYNOnAjax("esalbum", params.esalbum_id);
		}
	},

	//뮤직pd앨범 더보기 아이콘 메뉴
	albumReviewMoreAction : function(obj, album_id, track_right){
		if(!this.checkShowLayer(obj)){
			return;
		}
		this.removeOldLayer();
		var callObj = $(obj);
		this.layerCaller = callObj;
		var params = {
				album_id : album_id,
				album_title : $(obj).attr("album_title"),
				artist_name : $(obj).attr("artist_name"),
				trackRight : track_right
		};
		callObj.data("paramData", params);
		var html = 	this.makeAlbumReviewMoreActionHtml(params);
		this.show(obj, html, 7, -50);
	},


	userLikeDeleteOnly : function(obj, id, type){
		if(!this.checkShowLayer(obj)){
			return;
		}
		this.removeOldLayer();
		var html = 	this.userLikeDeleteOnlyHtml({
			id : id,
			type : type
		});

		this.layerCaller = obj;
		$(this.layerCaller).attr("reloadYN", "Y");
		this.show(obj, html, 7, -50);

	},
	musicpdMoreAction : function(obj, msrl, reloadYN){
		if(!this.checkShowLayer(obj)){
			return;
		}
		this.removeOldLayer();
		var callObj = $(obj);
		this.layerCaller = callObj;
		var param = {
				isLikeYN : $(obj).attr("isLikeYN"),
				msrl : msrl,
				musicpd_info_id :	$(obj).attr("musicpd_info_id"),
				musicpd_name :		$(obj).attr("musicpd_name")
		};
		callObj.data("paramData", param);
		var html = 	this.makeMusicpdMoreActionHtml(param);
		$(this.layerCaller).attr("reloadYN", reloadYN || "N");
		this.show(obj, html, 7, -50);

	},


	raioPlayerMoreAction : function(obj, track){
		if(!this.checkShowLayer(obj)){
			return;
		}
		this.removeOldLayer();
		var html = 	this.raioPlayerMoreActionHtml({
			track_id : track.track_id,
			album_id : track.album_id,
			album_tp : track.album_tp,
			isF: $(obj).attr("isF")
		});

		this.layerCaller = obj;
		this.layerCaller.reloadYN = "N";
		this.show(obj, html, 7, -50);
	},

	musiccastPlayerMoreAction : function(obj, episodeId, channelId) {
		if(!this.checkShowLayer(obj)){
			return;
		}
		this.removeOldLayer();
		var html = 	this.musiccastPlayerMoreActionHtml({
			episode_id : episodeId,
			channel_id : channelId
		});

		this.layerCaller = obj;
		this.layerCaller.reloadYN = "N";
		this.show(obj, html, 7, -50);
	},

	myAlbumListMoreAction : function(callerSelector, myAlbumId, page, totalCount){
	    var obj = $(callerSelector);
		if(!this.checkShowLayer(obj)){
			return;
		}
		this.removeOldLayer();
		var html = 	this.makeMyAlbumListMoreActionHtml({
			myAlbumId : myAlbumId,
            page : page,
            callerSelector : callerSelector,
			isF	: $(obj).attr("isF"),
            totalCount : totalCount
		});

		this.layerCaller = obj;
		this.layerCaller.reloadYN = "N";
		this.show(obj, html, 7, -30);
	},


	musicCastChannelMoreAction : function(obj, id, type, msg){
		if(!this.checkShowLayer(obj)){
			return;
		}
		this.removeOldLayer();
		var html = 	this.musicCastChannelMoreActionHtml({
			id : id,
			type : type,
			msg : msg
		});

		this.layerCaller = obj;
		this.layerCaller.reloadYN = "N";
		this.show(obj, html, 7, -30);
	},

	shareSNS : function(contentType, type){
		var obj = this.layerCaller.data("paramData");
		if(contentType == "ALBUM"){
			if(type == "ks"){
				bugs.kakao.story2(bugs.url.albumPage(obj.album_id));
			}else if(type == "fb"){
				bugs.facebook2.album(obj.album_id, obj.album_title, obj.artist_name);
			}else if(type == "tw"){
				bugs.twitter.album(obj.album_id, obj.album_title, obj.artist_name);
			}
		}else if(contentType =="TRACK"){
			if(type=="ks"){
				bugs.kakao.story2(bugs.url.trackPage(obj.track_id));
			}else if(type == "fb"){
				bugs.facebook2.track(obj.track_id, obj.track_title, obj.artist_name);
			}else if(type == "tw"){
				bugs.twitter.track(obj.track_id, obj.track_title, obj.artist_name);
			}

		}else if(contentType == "ARTIST"){
			if(type=="ks"){
				bugs.kakao.story2(bugs.url.artistPage(obj.artist_id));
			}else if(type == "fb"){
				bugs.facebook2.artist(obj.artist_id,  obj.artist_name);
			}else if(type == "tw"){
				bugs.twitter.artist(obj.artist_id,  obj.artist_name);
			}
		}else if(contentType == "MV") {
			if(type=="ks"){
				bugs.kakao.story2(bugs.url.mvPage(obj.mv_id));
			}else if(type == "fb"){
				bugs.facebook2.mv(obj.mv_id,  obj.mv_title, obj.artist_name);
			}else if(type == "tw"){
				bugs.twitter.mv(obj.mv_id, obj.mv_title, obj.artist_name);
			}
		}else if(contentType == "PVOD") {
			if(type=="ks"){
				bugs.kakao.story2(bugs.url.pvodPage(obj.vod_id));
			}else if(type == "fb"){
				bugs.facebook2.pvod(obj.vod_id,  obj.vod_title);
			}else if(type == "tw"){
				bugs.twitter.pvod(obj.vod_id,  obj.vod_title);
			}
		}else if(contentType == "MUSICPD") {
			if(type=="ks"){
				bugs.kakao.story2(bugs.url.musicPDPage(obj.musicpd_info_id));
			}else if(type == "fb"){
				bugs.facebook2.musicPD(obj.musicpd_info_id,  obj.musicpd_name);
			}else if(type == "tw"){
				bugs.twitter.musicPD(obj.musicpd_info_id,  obj.musicpd_name);
			}
		}else if(contentType == "ESALBUM") {
			if(type=="ks"){
				bugs.kakao.story2(bugs.url.esAlbumPage(obj.esalbum_id));
			}else if(type == "fb"){
				bugs.facebook2.esAlbum(obj.esalbum_id,  obj.esalbum_title);
			}else if(type == "tw"){
				bugs.twitter.esAlbum(obj.esalbum_id,  obj.esalbum_title);
			}
		}
	},

	openShareUrlLayer : function(type, caller, contentId, e){

		try{var e= window.event; if(e.stopPropagation){e.stopPropagation();}else{e.cancelBubble=true;}}catch(e){}
		var url = g_urlMusic;
		if(type == "CREW") {
			url = g_urlBilling;
		}
		if (url.indexOf("://") <= -1) url = location.protocol+url;
		var param = null;
		var shareParam = {};
		if(typeof caller != "undefined" && caller != null){
			caller =$(caller);
			this.layerCaller = caller;
			shareParam.className = "info";
			if(!this.checkShowLayer(caller)){
				return false;
			}
		}else{
			caller = this.layerCaller;
			param = this.layerCaller.data("paramData");
			shareParam.className = "";
		}

		this.removeOldLayer();

		if(type == "TRACK"){
			contentId = contentId ? contentId : param.track_id;
			url += "/track/";
		}else if(type == "ALBUM"){
			contentId = contentId ? contentId : param.album_id;
			url += "/album/";
		}else if(type == "ARTIST"){
			contentId = contentId ? contentId : param.artist_id;
			url += "/artist/";
		}else if(type == "PVOD"){
			contentId = contentId ? contentId : param.vod_id;
			url += "/streaming/pvod/watch/";
		}else if(type == "MV"){
			contentId = contentId ? contentId : param.mv_id;
			url += "/mv/";
		}else if(type == "MUSICPD"){
			contentId = contentId ? contentId : param.musicpd_info_id;
			url += "/musicpd/pdlistdetail/";
		}else if(type == "ESALBUM"){
			contentId = contentId ? contentId : param.esalbum_id;
			url += "/musicpd/albumview/";
		}else if(type == "MUSICCAST_CHANNEL"){
			contentId = contentId ? contentId : param.esalbum_id;
			url += "/radio/musiccast/channel/";
		}else if(type == "MUSICCAST_EPISODE"){
			contentId = contentId ? contentId : param.esalbum_id;
			url += "/radio/musiccast/episode/";
		}else if(type == "MYFAVORITE_MUSIC_MONTH"){
			contentId = contentId ? contentId : param.loginUserShareKey;
            url += "/myFavoriteMusic/month/";
        }else if(type == "MYFAVORITE_MUSIC_YEAR"){
            contentId = contentId ? contentId : param.loginUserShareKey;
            url += "/myFavoriteMusic/year/";
        }

		url += contentId;
		shareParam.url = url;

		if (type == "MYFAVORITE_MUSIC_MONTH" ||type == "MYFAVORITE_MUSIC_YEAR") {
            var html = this.makeShareUrlLayerHtml2(shareParam);
        }else{
            var html = this.makeShareUrlLayerHtml(shareParam);
		}

		//var html = this.makeShareUrlLayerHtml(shareParam);
		html = $(html);
		html.find(".btnClose").click(function(e){
				bugs.layerFocusNavi.remove(this.html);
				this.removeOldLayer();
		}.bind(this));

		//bugs.layerFocusNavi.add(this.multiMvLayer, this.layerCaller, this.removeMultiMvLayer.bind(this));
		if(type == "CREW") {
			this.show(caller, html, 9, -60);
		} else {
			this.show(caller, html, 9, -142);
		}
		$(document).unbind("click", bugs.layermenu.hideWhenDocumentClick);

	},


	addAlbumTrackToMyAlbum : function(album_id){
		bugs.music.addAlbumToMyAlbum(this.layerCaller,album_id);
	},

	addTrackToMyAlbum : function(track_id){
		bugs.music.addTrackToMyAlbum(this.layerCaller,track_id);
	},

	addEsAlbumToMyAlbum : function(es_album_id) {
		this.removeOldLayer();

		if(!g_isLogged) {
			bugs.ui.showLoginLayer();
			return;
		}

		if (!es_album_id) {
//			bugs.ui.showAlert("뮤직pd앨범 정보가 없습니다.", {css : "layerAdultNotice"});
			alert("뮤직PD 앨범 정보가 없습니다.");
			return;
		}

		bugs.music.getEsAlbum_tracks(es_album_id, function(data){

			if (data.trackIds) {
				playlists.showPlaylistLayer($(this.layerCaller), data.trackIds);
			}
			else {
//				bugs.ui.showAlert("뮤직pd앨범에 곡정보가 없습니다.");
				alert("뮤직PD 앨범에 곡 정보가 없습니다.");
			}

		}.bind(this));
	},

	layerLikeAction : function(target,id,type){
		this.removeOldLayer();
		if(!g_isLogged){
			bugs.ui.showLoginLayer();

		}else{

			var caller = $(this.layerCaller);
			var callBack = this.layerCaller.strCallBack||"";
			if(callBack != "" && typeof callBack != "undefined"){
				var isYN = "Y";
				if(caller.attr("isLikeYN") == "Y"){
					isYN = "N";
				}else{
					isYN = "Y";
				}
				//javascript에서 앨범리스트 만드는 경우 앨범데이터 객체 값을 바꿔주기 위해서 콜백을 받아 호출해준다
				if(callBack)
					callBack = new Function(callBack+"("+id+",'"+isYN+"')");
			}
			if(caller.attr("isLikeYN") == "Y"){
				likes.deletes(id, type,{anchor:$(target)}, 	function(){
																	alert("취소되었습니다.", function() {
																		if(caller.attr("reloadYN") == "Y" || caller[0].reloadYN == "Y"){
																			bugs.navigator.goState(window.location.href);
																			return;
																		}else{
																			if(typeof callBack == "function"){
																				callBack();
																			}
																			$(target).text("좋아");
																			$(caller).attr("isLikeYN","N");
																		}
																	});
																},
																function(){
																	alert("삭제할 수 없습니다.\n잠시 후 다시 시도해 주세요.");
																});
			}else{
				likes.adds(id, type, {anchor:$(target)}, 	function(){
                                RecommendClickLog.sendMoreActionLog('like');
																alert("좋아한 음악에 담았습니다.", function() {
																	if(typeof callBack == "function"){
																		try{
																			callBack();
																		}catch(e){}
																	}
																	$(target).text("좋아 취소");
																	$(caller).attr("isLikeYN","Y");
																});
															},
															function(e){
																alert("좋아한 음악에 담지 못했습니다.\n잠시 후 다시 시도해 주세요.");
															});
			}
		}

	},

	layerDeleteTrack : function(listName, trackId, deleteType, page){
		if(!g_isLogged){
			bugs.ui.showLoginLayer();
			return;
		}
		var func = new Function(listName+".deleteTrack($(this.layerCaller),'"+trackId+"', '"+deleteType+"', '"+page+"');").bind(this);
		func();
	},

	layerReportBSideContent : function(caller, contentId, contentType){
		if(!contentType)
			return;

		params = {
			caller : $(caller).closest("#commonLayerMenu").data().caller,
			content_type : contentType,
			target_id : contentId
		};

		bugs.userReport.clickCommonReportBtn(params);
	},

	layerModifyBSideContent : function(contentId, contentType){
		if(!g_isLogged){
			bugs.ui.showLoginLayer();
			return;
		}
		bugs.connect.manage.trackmv.showModifyTrackMvLayerForCommon(contentId, contentType);
	},

	layerGoBSideStatistics : function(artistId, contentId, contentType, isConnect){
		if(!g_isLogged){
			bugs.ui.showLoginLayer();
			return;
		}
		if(typeof(isConnect) === 'undefined')
			isConnect = false;

		if(isConnect)
			bugs.connect.graph.showLayer(contentId, contentType, artistId);
		else
            bugs.connect.graph.showLayer(contentId, contentType, artistId,null,null,null,null,false);
	},

	layerMusicCastChnnelDelete : function(caller, id, type){
		var params = {decorator : "blank"};
		var url = g_urlAjax;

		if(type == "RADIO" || type == "RADIO_HOME"){
			url += "/radio/deletechannel/"+id;
		}else{
			url += "/radio/musiccast/channel/"+id+"/delete"
		}

		$.ajax({
			type: 'POST',
			url : url,
			data: params,
			success : function(result) {
				if(result){
					alert("채널을 삭제했습니다.", function(){
						if(type == "RADIO_HOME"){
							try{
								//radioHome에 있는 func
								retrieveMusicCastMyChannel();
							}catch(e){}
						}else{
							location.reload();
						}
					});
				}else{
					alert("채널을 삭제하지 못했습니다.");
				}
			}.bind(this),
			error : function(error) {
				alert("채널을 삭제하지 못했습니다.");
			},
			dataType : "json",
			cache : false
		});
	},


	spectrogramLayer : function(event, spectrogramList, obj){
		this.removeOldLayer();
		if(obj  && typeof obj == "object"){
			this.layerCaller = $(obj);
		}

		try{event.preventDefault();}catch(e){}
		try{event.stopPropagation();}catch(e){}

		spectrogramList = unescape(spectrogramList);
		var source = JSON.parse(spectrogramList);
		if(source.length == 0) return;
		var spectrogramLayer = new bugs.music.photoLayer(
				null,{source : source, page:1, row:8 }, "TRACK_SPECTROGRAM", this.layerCaller
			);

		spectrogramLayer.open();

		bugs.wiselog.area("list_tr_spectro");

	},

	spectrogramReport : function(trackId){
		window.open(g_urlMusic+"/track/"+trackId+"/spectrogram/report");
	},

	hideWhenDocumentClick :  function(e) {
		if(e.data.button.index(e.target) < 0 && e.data.button.children().index(e.target) < 0
			&& e.data.layer.index(e.target) < 0 && e.data.layer.children("*").index(e.target) < 0) {
			$(document).unbind("click", bugs.layermenu.hideWhenDocumentClick);
			bugs.layerFocusNavi.remove(e.data.layer, e.data.button);
			e.data.layer.hide().remove();
		}
	},

	removeOldLayer : function(){
		if($("#commonLayerMenu").length > 0) {
			$(document).unbind("click", bugs.layermenu.hideWhenDocumentClick);
			bugs.layerFocusNavi.remove($("#commonLayerMenu"));
			$("#commonLayerMenu").hide().remove();
		}
	},

	checkShowLayer : function(obj){
		if(typeof(this.layerCaller) != "undefined" && this.layerCaller != null){
			if($(obj).is($(this.layerCaller))
					|| $(obj)[0] == $(this.layerCaller)[0]){
				if($("#commonLayerMenu").is(":visible")){
					try{event.preventDefault();}catch(e){}
					try{event.stopPropagation();}catch(e){}
					$(this.layerCaller).focus();
					this.removeOldLayer();
					return false;
				}
			}
		}
		return true;
	},

	show : function(obj, html, top, left, callBack, checkPosition){
		var oobj = $(obj);

		try{ //
			playlists.playlistLayerHide();
		}catch(e){};

		var layer = $(html).css("visibility","").appendTo("body");
			if(typeof checkPosition != "undefined"){
				bugs.layermenu.layerEventHandler(oobj, layer, top, left, checkPosition);
			}else{
				bugs.layermenu.layerEventHandler(oobj, layer, top, left);
			}


		if(layer.children("#layerSNS")){ //공유하기 레이어가 포함된 경우 위치 값에 따라서 좌우로 레이어를 띄워준다
			var dWidth = $("#wrap").width();
			var cTop = "-35px";
			var cLeft = layer.position().left + layer.width();
			if(dWidth - (cLeft+131) > (layer.width()) + 10 ){
				cLeft = (layer.width())+"px";
			}else{
				cLeft = "-107px";
			}
			layer.find("#layerSNS").css({"margin-left":cLeft, "margin-top" : cTop});
		}
		$(document).unbind("click",bugs.layermenu.hideWhenDocumentClick).bind("click", {button : oobj, layer : layer}, bugs.layermenu.hideWhenDocumentClick);

		if(typeof callBack == "function"){
			callBack();
		}

		layer.data("caller", obj);
	},

	layerEventHandler : function(caller, layer, _top, _left, checkPosition) {
		var a = caller;

		if(typeof a.attr("layerPositionTarget") != "undefined" && a.attr("layerPositionTarget") != ""){
			var p = caller.parents(a.attr("layerPositionTarget"));
			layer.show();

			//var pWidth = a.index() % 2
			layer.css({
				"top":a.offset().top + a.height() + _top,
				"left":(Math.floor(p.offset().left) + Math.floor(p.width()) - Math.floor(layer.width())) -1
			});

			$(window).resize(function() {
				setTimeout(function(){
					layer.css({
						"top":a.offset().top + a.height() + _top,
					"left":(Math.floor(p.offset().left) + Math.floor(p.width()) - Math.floor(layer.width())) -1
					});
				},300);
			});
		}else{
			if(typeof checkPosition != "undefined"){

				var self = this;
				self.layerWidthFidex(layer);

				var cTop = caller.offset().top;
				var layerHeight = layer.height();
				var cLeft = caller.offset().left;
				var layerWidth = layer.width();
				if($(window).height() - cTop >  layerHeight + 15){
					cTop = cTop + a.height() + _top;
				}else{
					cTop = cTop - layerHeight - 5;
				}
				if(cLeft - 20 <= layerWidth/2){
					cLeft = 20;
				}else if($(window).width() < cLeft+(layerWidth/2)+20){
					cLeft = $(window).width() - 20 - layerWidth;
				}else{

					cLeft = cLeft - (layer.width() / 2) + (caller.width() / 2) + _left;

				}

				layer.css({
					"top":cTop,
					"left":cLeft
				}).show();

				$(window).resize(function() {
					setTimeout(function(){
						self.layerWidthFidex(layer);

						cTop = caller.offset().top;
						layerHeight = layer.height();
						cLeft = caller.offset().left;
						layerWidth = layer.width();
						if($(window).height() - cTop >  layerHeight + 15){
							cTop = cTop + a.height() + _top;
						}else{
							cTop = cTop - layerHeight - 5;
						}


						if(cLeft - 20 <= layerWidth/2){
							cLeft = 20;
						}else if($(window).width() < cLeft+(layerWidth/2)+20){
							cLeft = $(window).width() - 20 - layerWidth;
						}else{
							cLeft = (layer.width() / 2) + (caller.width() / 2) + _left;
						}

						layer.css({
							"top":cTop,
							"left":cLeft
						});
					},500);
				});

			}else{
				var self = this;
				self.layerWidthFidex(layer);
				layer.css({
					"top":caller.offset().top + a.height() + _top,
					"left":caller.offset().left - (layer.width() / 2) + (caller.width() / 2) + _left
				}).show();

				$(window).resize(function() {
					setTimeout(function(){
						self.layerWidthFidex(layer);
						layer.css({
							"top":caller.offset().top + a.height() + _top,
							"left":caller.offset().left - (layer.width() / 2) + (caller.width() / 2) + _left
						});
					},500);
				});
			}
		}

		//화면에 보여지는 상태여야해서 여기에 위치
		bugs.layerFocusNavi.add(layer, caller, this.removeOldLayer);
	},

	layerEventHandler2 : function(caller, layer, _top, _left) {
		//------------------ 브라우져별 예외 처리 -----------------//
		var yy = 0;
		var xx = 0;
		if ($.browser.name == "msie")
		{
			yy = -44;
			if ($.browser.versionNumber == "6")
				yy = -14;
		} else if ($.browser.name == "firefox"){
			yy = -10;
		}
		if (caller.find("img").width() < 30) { // 뮤직라이프 작은 스타
			xx= xx - caller.find("img").width()-3;
			if ($.browser.name == "msie") yy = yy + 10;
		} else if (caller.find("img").height()== 57) { // TOP 아티스트
			if ($.browser.name == "msie") yy = yy - 20;
		} else if (caller.find("img").width() == 83){ // TOP 아티스트  TOP3
			if ($.browser.name == "msie") yy = yy + 20;
		} else if (caller.find("img").width() == 35 && caller.find("img").height() == 35){ // 타인의 뮤직라이프 사람좋아
			xx = xx - 17;
		}

		if (caller.attr("type") == "image") { // 구매보관함/뮤비 > 좋아
			xx = xx - 10;
			yy = yy + 20;
			if ($.browser.name == "msie") yy = yy + 25;
		}
		//------------------ 브라우져별 예외 처리 -----------------//

		var e = caller.offset();
    	var x = e.left + _left + xx;
 		var y = e.top + caller.find("img").height() + _top  + yy + 10;


		layer.css("left", x+"px");
		layer.css("top", y+"px");
		layer.show();
		bugs.layerFocusNavi.add(layer, caller, this.removeOldLayer);
	},

	descLayerDisplayNotAgain : function(sel){
		var oDate = new Date();
		oDate.setDate(oDate.getDate()+30);
		bugs.cookie.set(sel, "Y", oDate);
		$("#"+sel).hide();
	},

	descLayerDisplayCheck : function(sel){
		if(bugs.cookie.get(sel) == "Y"){
			$("#"+sel).hide();
		}else{
			$("#"+sel).show();
			this.descLayerDisplaySizeCheck(sel);
		}
	},

	descLayerDisplaySizeCheck : function(sel){
		$("#"+sel).find('.content').css('width', $("#"+sel).width() - 5);
		$("#"+sel).find('.bgTR').css('height', $("#"+sel).find('.content').outerHeight());
	},

	layerWidthFidex : function(layer){
		if(this.isPlayer){
			layer.show().css("visibility","hidden").css("width","");
			var maxWidth = Math.abs($(window).width() * 0.8);
			var ulWidth = layer.find("ul").width();
			if( ulWidth > maxWidth){
				layer.width(maxWidth);
			}else{
				layer.width(ulWidth);
			}
			layer.css("visibility","visible");
		}else{
			layer.show();
		}
	}
};



bugs.layerFocusNavi = {
    caller  : null,
	remove: function(layer, caller,  callback){
		this.removeTabKeyHandler(layer);
		if(typeof isRemove != "undefined" && isRemove){
			try{ $(target).hide().remove(); }catch(e){};
		}

		if(typeof caller != "undefined"){
			$(caller).focus();
		}else{
			$(this.caller).focus();
		}

		if(typeof callback == "function"){
			try{ callback(); }catch(e){}
		}
	},

	add : function(layer, caller, closeFunc){
		if($(caller).parents("#commonLayerMenu").attr("id") != "commonLayerMenu"){
			this.caller = caller;
		};

//		if($(layer).attr("id") == "alert") {
//		} else {
			$(layer).attr("tabIndex",-1).focus();
//		}
		$(layer).unbind("keydown", this.tabKeyHandler)
			.bind("keydown", {caller : caller, closeFunc : closeFunc}, this.tabKeyHandler.bind(this));
	},

	removeTabKeyHandler : function(target){
		$(target).unbind("keydown",this.tabKeyHandler);
	},

	tabKeyHandler : function(e){
		var code = e.witch || e.keyCode;
		var lastFocusTarget = e.data.caller || this.caller;
		var focusableObjs = null;

		this.caller = lastFocusTarget;

		if($(e.target).attr("id") == "bugsAlert") {
			if(code == 13)	// Enter Key 눌리면 ESC 키 동작과 동일하게 처리
				code = 27;
		}

		if(e.shiftKey && code == 9 ){
			focusableObjs = $(e.currentTarget).find(":focusable");

			if(focusableObjs.index(e.target) == 0 || e.target == e.currentTarget){
				this.removeTabKeyHandler(e.currentTarget);

				if(typeof e.data.closeFunc == "function"){
					try{e.data.closeFunc();}catch(e){}
				}

				this.remove(e.currentTarget, lastFocusTarget, true);

				try{e.preventDefault();}catch(e){};
				try{e.stopPropagation();}catch(e){};
			}
		}else if(code == 9){
			focusableObjs = $(e.currentTarget).find(":focusable");

			if(focusableObjs.index(e.target) == focusableObjs.length -1){
				this.removeTabKeyHandler(e.currentTarget);

				if(typeof e.data.closeFunc == "function"){
					try{e.data.closeFunc();}catch(e){}
				}
				this.remove(e.currentTarget, lastFocusTarget);
				try{e.preventDefault();}catch(e){};
				try{e.stopPropagation();}catch(e){};
			}
		}else if(code == 27){
			this.removeTabKeyHandler(e.currentTarget);

			if(typeof e.data.closeFunc == "function"){
				try{e.data.closeFunc();}catch(e){}
			}
			this.remove(e.currentTarget, lastFocusTarget);
			try{e.preventDefault();}catch(e){};
			try{e.stopPropagation();}catch(e){};
		}
	}

};



bugs.logging = {
	clientYN : false,	//true => bugsplayer4
	url : g_urlAjax + "/logging/add",
	add : function(id, cols, nums, scriptYn) {
		if(typeof scriptYn == "undefined") scriptYn = false;
		if(this.clientYN) scriptYn = true;

		if(typeof id == "undefined" || id == null) return;	//jhjung WAS null exception 추가 12.01.05
		if(typeof cols == "undefined" || cols == null) cols = [];
		if(typeof nums == "undefined" || nums == null) nums = [];
		if(cols.length == 0 && nums.length == 0) return;
		if(this.clientYN)
			cols.push("","bugsplayer4");

		try {
			if(scriptYn){
				jQuery.ajax({
				url: g_urlMusic + "/logging/add",
				dataType : "script",
				data:{id : id, "cols[]" : cols, "nums[]" : nums},
				success: function(result) {}
				});

			}else{
				var _cols = [];
				$(cols).each(function() {
					_cols.push(encodeURIComponent (this));
				});
				jQuery.post(bugs.logging.url, {id : id, "cols[]" : _cols, "nums[]" : nums}, function(result) {

				});
			}
		} catch(ex) {
			bugs.log.log(ex);
		}


	},
	banner : function(bannerId, type){
		$.ajax({
			url: "/logging/insertBannerLog",
			type: "POST",
			data : {bannerId : bannerId, type : type},
			success: function(result) {},
			error:function() {}
		});
	},
	event : function(eventLogId, inputText, deviceId){
		if(typeof eventLogId == "undefined"){
			return null;
		}
		if(typeof inputText == "undefined"){
			inputText =  null;
		}
		if(typeof deviceId == "undefined"){
			deviceId =  null;
		}

		$.ajax({
			url: "/logging/insertEventLog",
			type: "POST",
			data : {eventLogId : eventLogId, inputText : inputText, deviceId : deviceId},
			success: function(result) {},
			error:function() {}
		});
	}
};



var debug = {
	dump : function() {
		var retVal='', argVal = arguments[0] || '';

		switch((typeof argVal).toLowerCase()) {
			case 'object' :
				$.each(argVal, function(key, value) {
					retVal += '[' + (typeof value) + '] ' + key + ' => ' + value +'\n';
				});
				break;

			case 'string'	:
			default			:
				retVal += (typeof argVal) + '/' + argVal;
		}
		return retVal;
	}
};

bugs.search = {
		url : g_urlSearch,
		target : 'integrated',
		inputBoxButton: null,
		query : encodeURIComponent($("#headerSearchInput").val()),
		done : false,
		init :function(){
			this.inputBoxButton = $("#headerSearchForm");
			this.query = encodeURIComponent($("#headerSearchInput").val());
		},
		search : function(searchType, searchQuery){
			if(bugs.searchBoxAd.searchDirectionUrl != "" && bugs.searchBoxAd.searchDirectionUrl != null && bugs.searchBoxAd.searchDirectionUrl != undefined){
				bugs.searchBoxAd.updateSeachAdViewCnt(bugs.searchBoxAd.searchAdId);
				document.location.href = bugs.searchBoxAd.searchDirectionUrl;
			}else {
				try{
					this.query = searchQuery || $("#headerSearchInput").val();
					document.location.href= g_urlSearch + "/" + searchType + "?q=" + encodeURIComponent(this.query);

				}catch(e){
				}

			}
		},

		searchFromButton : function(){
			if(bugs.valid.empty($("#headerSearchInput").val())){
				alert("검색어를 입력해주세요.");
				return;
			}
			this.search(this.target, $("#headerSearchInput").val());
		},

		searchForSuggest : function(event,query, logKey){
			try{
				if ( event.stopPropagation ) {event.stopPropagation();}
				if ( event.preventDefault ) {event.preventDefault();}
				event.cancelBubble = true;
			}catch(e){}
			document.location.href = g_urlSearch + "?q="+encodeURIComponent(query)+"&"+logKey;
		},

		moveArtistPage : function(event, artistId, logKey){
			try{
				if ( event.stopPropagation ) {event.stopPropagation();}
				if ( event.preventDefault ) {event.preventDefault();}
				event.cancelBubble = true;
			}catch(e){}

			var artistUrl = bugs.url.artistPage(artistId);
			if(typeof logKey != "undefined"){
				if(artistUrl.indexOf("?") > -1){
					logKey = "&"+logKey;
				}else{
					logKey = "?"+logKey;
				}
				artistUrl = artistUrl +logKey;
			}
			document.location.href = artistUrl;
		},

		//하이라이트 길이 , 실제 리스트 추출
		highLight : function(type){
			var aList = "";
			var anchorLength = "";

			if(type == "track" || type == "musiccast" || type=="integrated"){
				aList = $(".list.trackList tbody tr a");
				anchorLength = aList.length;
				bugs.search.highLightMark(aList , anchorLength);
			}

			if(type == "album" || type=="integrated"){
				aList = $(".list.listView.albumList li .info a");
				anchorLength = aList.length;
				bugs.search.highLightMark(aList , anchorLength);
			}

			if(type == "artist" || type=="integrated"){
				aList = $(".list.listView.artistList li .info a.artistTitle");
				anchorLength = aList.length;
				bugs.search.highLightMark(aList , anchorLength);
			}

			if(type == "mv" || type=="integrated"){
				aList = $(".list.listView.mvList li .info a");
				anchorLength = aList.length;

				// 검색>영상 : 아티스트 링크 제거 추가됨에 따른 span 태그 하이라이트 추가
				var spanList = $(".list.listView.mvList li .info span.noLink");
				var spanLength = spanList.length;

				bugs.search.highLightMark(aList , anchorLength);
				bugs.search.highLightMark(spanList , spanLength);
			}

			if(type == "lyric"){
				aList = $(".list.trackList.lyrics tbody tr a");
				anchorLength = aList.length;
				bugs.search.highLightMark(aList , anchorLength);
			}

			if(type == "musicpd" || type=="integrated"){
				aList = $(".list.listView.musicPDAlbumList .info a");
				anchorLength = aList.length;
				bugs.search.highLightMark(aList , anchorLength);
			}

			if(type == "special" || type=="integrated"){
				aList = $(".list.listView.specialList .info a");
				anchorLength = aList.length;
				bugs.search.highLightMark(aList , anchorLength);
			}

			if(type == "integrated"){
				aList = $("#searchClassicOpusArea").find("p a");
				anchorLength = aList.length;
				bugs.search.highLightMark(aList , anchorLength);
			}

			if(type == "suggest"){
				aList = $("#suggest li a");
				anchorLength = aList.length;
				bugs.search.highLightMark(aList , anchorLength);
			}


		},

		//하이라이트 마크업 세팅
		highLightMark : function(aList , anchorLength){
			var query = $("#headerSearchInput").val();
			var reg = bugs.search.createRegexFromQuery(query);
			for(var i=0;i < anchorLength;i++){
				if(aList.eq(i).hasClass("thumbnail") == false && aList.eq(i).hasClass("btn") == false){
				   bugs.search.setMarkupTextNode(aList.eq(i)[0], query, reg);
				}
			}
		},

		createRegexFromQuery: function(query) {
			var regQuery = query
				.replace(/\\/gi, "\\\\")
				.replace(/(\(|\)|\[|\]|\\|\;|\?|\+|\*|\\)/g, function (strMatch, p1) {
					var specialCases = ["(", ")", ";", "?", "+", "*"];
					var entities = {
						"\\": "\\",
						"[" : "\&#91;",
						"]" : "\&#93;"
					};

					var spcIdx = specialCases.indexOf(p1);
					if (spcIdx > -1) {
						return "\\" + specialCases[spcIdx];
					}
					return entities[p1] || "";
				});

			return new RegExp(regQuery,"gi");
		},

		escapeHtmlEntities: function(word) {

			var escapeMap = {
				"\<": "&lt;",
				"\>": "&gt;",
				'"': "&quot;",
				"&(?!.+;)": "&amp;",
				"'": "&#39;",
				"`": "&apos;",
			};

			var escapingRegex = new RegExp(
				"(" + Object.keys(escapeMap).join("|") + ")",
				"gi"
			);

			return word.replace(escapingRegex, function(entity) {
				return escapeMap[entity] || entity;
			});
		},

		recoverEscapedHtmlEntities: function(word) {

			var recoverMap = {
				"&lt;": "\<",
				"&gt;": "\>",
				"&quot;": '"',
				"&amp;": "&",
				"&#39;": "'",
				"&apos;": "`",
			};

			var recoverRegex = new RegExp(
				"(" + Object.keys(recoverMap).join("|") + ")",
				"gi"
			);

			return word.replace(recoverRegex, function(entity) {
				return recoverMap[entity] || entity;
			})
		},

		escapeNotAllowedHtmlEntities: function(word) {

			var allowedTag = {
				pairs: ["em", "p", "mark", "strong", "a"],
				single: ["br\\s*\\/?"]
			};

			var allowedRegex = new RegExp(
				"((?:(&lt;\/" + "*?(\\b" + allowedTag.pairs.join('|') + "\\b).*?&gt;)(.*?)(&lt;\/\\3&gt;))|(&lt;\\b" + allowedTag.single.join('|') + "\\b\s*\/" + "*?&gt;))",
			"gim"
			);

			return this.escapeHtmlEntities(word).replace(allowedRegex, function(all, catched, open, tagname, content, close) {
				if (open && close) {
					return bugs.search.recoverEscapedHtmlEntities(open) + content + bugs.search.recoverEscapedHtmlEntities(close);
				}
				return bugs.search.recoverEscapedHtmlEntities(catched);
			})
		},

		addHighlightsWithEscape: function(word, query) {

			var escapedQuery = bugs.search.escapeHtmlEntities(query);
			var escapedWord = bugs.search.escapeHtmlEntities(word);
			var findQueryRegex = bugs.search.createRegexFromQuery(escapedQuery);

			return bugs.search.escapeNotAllowedHtmlEntities(escapedWord.replace(findQueryRegex, "<mark>$&</mark>"));
		},

		setMarkupTextNode : function (node, query, reg) {

			var $node = $(node)
			var tempElement = "";
			if($node.children().length > 0){
				tempElement = $node.children();
				$node.children().remove();
			}

			reg.lastIndex = 0;
			if(reg.test($node.text())){
				$node.html(bugs.search.addHighlightsWithEscape($node.text(), query)).prepend(tempElement);
			}else{
				$node.prepend(tempElement);
			}
		},

		//롤링
		rolling : function(){
			$(".innerkeyword.aline").hide();
			$(".innerkeyword.aline").eq(0).show();
			bugs.search.rollingStart();
		},
		rollingStart : function(){
			num = 0;
			if(window.topKeywordIntervalId){
				clearInterval(window.topKeywordIntervalId);
			}
			window.topKeywordIntervalId = setInterval(function(){
					$(".innerkeyword.aline").eq(num -1).hide();
					$(".innerkeyword.aline").eq(num).animate({top: "-=28px"}  ,"slow",function(){
							num++;
							$(".innerkeyword.aline").css("top" , "0px");
							if(num == 10){
								num = 0;
					        }
					}).show();
			    },2000);
		},
		//탑쿼리 리스트 세팅
		dataSet : function(list) {
            var paramList = list;
            var ch = "<h1>인기</h1>";

            if (list.length > 0) {

                ch += "<ul class='keyword single'>";
				for (var i = 0; i < list.length; i++) {
                    ch += "<li>";
					ch += "<a href='#' class='innerkeyword aline'>";
					ch += "<em class='ranking'>" + paramList[i][0] + "</em>";
					ch += "<strong class='title'>" + paramList[i][1] + "</strong>";

					if (paramList[i][2] == 0) {
						ch += "<p class='change none'>";
					} else if (paramList[i][2] < 0) {
						ch += "<p class='change down'>";
					} else if (paramList[i][2] > 0) {
						ch += "<p class='change up'>";
					} else if (paramList[i][2] == 'NEW') {
						ch += "<p class='change'>";
					}

					if (paramList[i][2] == 0) {
						ch += "<em>" + paramList[i][2] + "</em> <span>변동없음</span>";
					} else if (paramList[i][2] < 0) {
						ch += "<span class='arrow'></span>";
						paramList[i][2] = paramList[i][2].replace("-", "");
						ch += " <em>" + paramList[i][2] + "</em> <span>계단 하락</span>";
					} else if (paramList[i][2] > 0) {
						ch += "<span class='arrow'></span>";
						ch += " <em>" + paramList[i][2] + "</em> <span>계단 상승</span>";
					} else if (paramList[i][2] == 'NEW') {
						ch += "<em>NEW</em>";
					}
					ch += "</p>";
					ch += "</a>";
                    ch += "</li>";

				}
                ch += "</ul>";
				$(".popularKeywords").append(ch);

				bugs.search.rolling();
        	} else {
            	ch += "<div class='keyword preparing' >데이터 수집 중</div>"
                $(".popularKeywords").prepend(ch);
			}
	    },
	    //noResult 페이지에서 호출
	    topQueryAjax : function(){
	    	$.ajax({
				url :g_urlAjax + "/top",
				data : {},
				type : "GET",
				dataType : "json",
				timeout : 2000,
				success : function(result) {
					if(result == null || typeof result == "undefined"){
						return;
					}
					var list =[];
					$.each(result ,function (i){
						var object = [];
						object.push(result[i].ranking);
			    		object.push(result[i].query);
			    		object.push(result[i].delta_ranking);
			    		list.push(object);
					});
					bugs.search.dataSet(list);
				},
				error : function() {
					return false;
				}
	    	});
	    }
};


bugs.searchBoxAd = {
        inputBox : null,
        closeButton : null,
        inputBoxButton : null,
        directionUrl : null,
        searchDirectionUrl : null,
		enable : true,
		url : g_urlAjax + "/searchboxad",
		searchDirectionUrl : null,
		searchInput : $("#headerSearchInput"),
		init : function() {
				var self = this;
				this.inputBox = $("#headerSearchInput");
				this.closeButton = $("#keywordClearButton");
				this.inputBoxButton = $("#headerSearchFormButton");
				this.directionUrl = null;
				$.ajax({
					url :bugs.searchBoxAd.url,
					type : "GET",
					dataType : "json",
					success : function(data) {
						self.inputBox.val(data.searchAd.exposure_text);
						self.directionUrl = data.searchAd.link;
						self.searchAdId = data.searchAd.special_search_keyword_id;
						self.searchDirectionUrl = data.searchAd.link;
						if(bugs.valid.empty(data.searchAd.exposure_text)){
							self.closeButton.hide();
						}
					},

					error : function(error) {
						self.closeButton.hide();
						return false;
					}
				});
				this.closeButton.click(function() {
					self.closeButtonHandler();
				});

				this.inputBoxButton.click(function() {
					self.clickButton();
				}.bind);

				this.inputBox.click(function(event) {
					$("#suggest").hide();
					self.clickInputBox(event);
				});
		},

		checkInput : function() {
			$("#headerSearchInput").one("focus click", function(event) {
				bugs.searchBoxAd.closeButtonHandler();
			});
		},

		clickButton : function(event) {
			if(this.directionUrl != ""){
				document.location.href = this.directionUrl;
			}
		},
		clickInputBox : function(event) {
			if(event.target.value == ""){
				bugs.searchBoxAd.closeButtonHandler();
			}
		},
		closeButtonHandler : function(event) {
			bugs.searchBoxAd.directionUrl = "";
			bugs.searchBoxAd.searchDirectionUrl = "";
			$("#keywordClearButton").hide();
			$("#headerSearchInput").val('');

			if($("#suggest").length > 1){
				$("#suggest").hide();
			}

		},
		deleteText : function() {
			$("#keywordClearButton").click(function() {
				$(this).hide();
				$("#headerSearchInput").val("");
				$("#headerSearchInput").focus();
				this.directionUrl = "";
				this.searchDirectionUrl = "";
			});
		},
		inputBlur : function() {
			$("#headerSearchInput").blur();
		},

		updateSeachAdViewCnt : function(searchAdId){
			try{
				$.get(g_urlMusic+"/search/searchboxad/viewcnt/"+searchAdId+"/update");
			}catch(e){}
		}
};

bugs.browser = {

		getInternetExplorerVersion : function () {
			  var rv = -1;
			  if (navigator.appName == 'Microsoft Internet Explorer')
			  {
			    var ua = navigator.userAgent;
			    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
			    if (re.exec(ua) != null)
			      rv = parseFloat( RegExp.$1 );
			  }
			  else if (navigator.appName == 'Netscape')
			  {
			    var ua = navigator.userAgent;

			    if(ua.search('Trident') != -1) {	// 호환성 보기 시, IE 체크
			    	rv = 11;
			    } else {
				    var re  = new RegExp("Trident/.*rv:([0-9]{1,}[\.0-9]{0,})");
				    if (re.exec(ua) != null)
				      rv = parseFloat( RegExp.$1 );
			    }
			  }
			  return rv;
		},

		getWindowsOSVersion : function () {
			var version = 0;

			try {
				if(bugs.browser.isIE())
					version = parseFloat(navigator.userAgent.split("Windows NT ")[1].split(";")[0]);
				else
					version = -1;
			} catch(e) {
				version = -1;
			}

			return version;
		},

		isIE : function() {
			if (navigator.appName == 'Microsoft Internet Explorer' ||  !!(navigator.userAgent.match(/Trident/) || navigator.userAgent.match(/rv:11/)) || (typeof $.browser !== "undefined" && $.browser.msie == 1))
				return true;

			return false;
		}
};

bugs.common_util = {
		checkArtistId : function(artist_id) {
			if(artist_id != null || artist_id.trim() != "") {

				if(artist_id == 8008124 || artist_id == 533 || artist_id == 1000772 || artist_id == 40652 || artist_id == 80019965 || artist_id == 80088133) {
					return false;
				} else {
					return true;
				}
			}

			return false;
		},
		setLinkUrlWiseLog : function(url, wiseLogCode){
			if(url != null && url != ""){
				if(url.indexOf("?") == -1){
					return url + "?wl_ref=" + wiseLogCode;
				}else{
					return url + "&wl_ref=" + wiseLogCode;
				}
			}

			return "";
		},
		setLanguage : function(lang) {
			var oDate = new Date();
			oDate.setDate(oDate.getDate() + 30);
			bugs.cookie.set("lang", lang, oDate, "/", "bugs.co.kr");
		},
		getLanguage : function(lang) {
			return bugs.cookie.get("lang");
		}
};


var buyCash = function () {
	window.open(g_urlBilling+'/pay/pg/popProcess', 'cash','top=10, left=10, width=750, height=564, toolbar=0, directories=0, status=0, menubar=0, scrollbars=0, resizable=0');
};

var warnIllegalFilming = function(param) {
	try {
		var WARNING_LAYER_NAME = 'illegalFilming_check';
		var WARNING_COOKIE_NAME = 'illegalFilming_1day';
		var WARNING_COOKIE_NAME_CHECK = 'Y';

		if(bugs.cookie.get(WARNING_COOKIE_NAME) === WARNING_COOKIE_NAME_CHECK){
			param.actionAfterWarning();
			return;
		}

		var param = param || {}
		param.layername = WARNING_LAYER_NAME;
		var layerParams = {
			name : param.layername,
			complete : function(layer){
				layer.data("param", param);

				layer.find("[class=btns]").click(function(){

					if($("input[name=illegal_filming_1day]").is(':checked')){
						var cookieStr = WARNING_COOKIE_NAME;
						var oDate = new Date();
						oDate.setDate(oDate.getDate() + 1);
						bugs.cookie.set("" + cookieStr, WARNING_COOKIE_NAME_CHECK, oDate, "/");
						// 하루 쿠키 세팅
					}
					bugs.layer.hideLayer(param.layername, true);
					param.actionAfterWarning();
				});

				layer.find("[class=btnClose]").click(function(){
					bugs.layer.hideLayer(param.layername, true);
				});

				layer.find("label[for=illegal_filming_1day]").click(function(){
					if(bugs.useragent.isMobile()) {
						$("input[name=illegal_filming_1day]").prop("checked", true);
						layer.find("[class=btns]").click();
					}
				});
			}
		};
		bugs.layer.showLayer(layerParams);
	} catch(e) {
		param.actionAfterWarning();
		console.log(e);
	}
}


if ("undefined" == typeof bugs.fb) {
	bugs.fb = {
		appid : "122936701116206",
		scope : [ 'email', 'read_stream' ],
		loginPage : g_urlMusic + "/facebook/paramgate2?gourl=" + location.href,
		twtUrl : "http://twtevent.co.kr",
		getMyByAccessToken : function(access_token) {
			var path = 'https://graph.facebook.com/me?access_token='
					+ access_token;

			var queryParams = [ 'access_token=' + access_token,
					'redirect_uri=' + window.location ];
			var query = queryParams.join('&');
			var url = path + query;
			location.href = url;
		},
		getHost : function() {
			if (location.href.indexOf(g_urlMusic) != -1)
				return g_urlMusic;
			else if (location.href.indexOf(g_urlSearch) != -1)
				return g_urlSearch;
			else if (location.href.indexOf(g_urlSecure) != -1)
				return g_urlSecure;
			else if (location.href.indexOf(bugs.fb.twtUrl) != -1)
				return bugs.fb.twtUrl;
			else
				// if (location.href.indexOf(g_urlWww ) != -1)
				if (g_urlWww == "undefined" || g_urlMusic == "undefined")
					return "https://music.bugs.co.kr";
				else return g_urlMusic;
		},
		goFBConnect : function(access_token, data_agree) {
			var params = {
				"agree" : data_agree,
				"access_token" : access_token
			};
			$.post(this.getHost() + "/facebook/ajax/login", params, function(
					data) {
				if (data) {
					// alert(data.result);
					if (data.result == "OK" || data.result == "OK_NEW") {
						if (typeof (g_msrl) == "undefined")
							;
						{
							location.reload();
						}
					} else if (data.result == "NOT_AGREE") {
						// 동의 페이지로 이동
						location.href = g_urlSecure + "/fb/agree?access_token="
								+ access_token;
					}
				} else {
					// 기타 오류 발생
				}
			}, "json");
		},
		loginFBAfterCheck : function(uid) {
			var params = {
				"uid" : uid
			};
			$.post(g_urlAjax + "/facebook/checkconnect", params, function(data) {
				if (data) {
					//alert(data.result);
					if (data.result == "CONNECTED") {

						//alert("data.access_token:"+data.access_token);
						// go login
						location.href = g_urlSecure + "/facebook/auth?access_token="+data.access_token+"&song="+encodeURIComponent(location.href);
					} else {
						//alert("오류 발생2");
					}
				} else {
					// 기타 오류 발생
					//alert("오류  발생1");
				}
			}, "json");
		},
		doAuth : function() {

			FB.login(function() {
				if (typeof (fbResponse) != "undefined"
						&& fbResponse.authResponse) {
					var accessToken = fbResponse.authResponse.accessToken;
					var uid = 0;
					FB.api('/me', function(response) {
						uid = response.id;
						alert("활동 자동 공유 설정이 완료 되었습니다.", function() {
							window.location.href = location.href;
						});
					});

				} else {
					alert("활동 자동 공유 설정이 완료 되었습니다.", function() {
						window.location.href = location.href;
					});
				}
			}, {
				scope : 'email'
			});

		},
		delPermission : function(permission, fb_token) {

			FB.api("/me/permissions/"+permission+"?access_token=" + fb_token ,'DELETE', function (response) {
				alert("활동 자동 공유 설정이 해제 되었습니다.", function() {
					window.location.href = location.href;
				});
			});
		},

		openLogin : function() {
			window.open(g_urlSecure + "/facebook/login?display=popup&longLoginYn=Y&returl="
					+ location.href, "FBLOGIN",
					'scrollbars=yes,resizable=yes,width=500,height=300');
			
		},
		openLogin2 : function(longLoginYn, rUrl) {
			var returnUri = (rUrl == undefined || rUrl == "" ? encodeURIComponent(location.href) : encodeURIComponent(rUrl));
			window.open(g_urlSecure + "/facebook/login?longLoginYn="+longLoginYn+"&login_type=onpopup&rUrl="
					+ returnUri, "FBLOGIN",
					'scrollbars=yes,resizable=yes,width=500,height=300');
			
		},
		openLoginEvent : function() {

			var locationUrl = location.href.substring(0,location.href.indexOf("?")==-1?location.href.length:location.href.indexOf("?"));
			window.open(g_urlSecure + "/facebook/login?display=popup&returl="
					+ locationUrl, "FBLOGIN",
					'scrollbars=yes,resizable=yes,width=500,height=300');
			
		},

		openLoginSelf : function(param1) {

			if(typeof param1 != "undefined") {
				location.href = g_urlSecure + "/facebook/login?login_type=mobileWeb_" + param1;
			}
			else {
				location.href = g_urlSecure + "/facebook/login?login_type=mobileWeb_";
			}

		},

		openLoginSelf : function(param1, param2) {

			var fbLoginUrl = g_urlSecure + "/facebook/login";
			if(typeof param1 != "undefined") {
				if(param1 == "ALSONG") {
					fbLoginUrl = fbLoginUrl + "?login_type=mobileWebAlsong_&rUrl=";
				} else {
					fbLoginUrl = fbLoginUrl + "?login_type=mobileWeb_" + param1;
				}
			} else {
				fbLoginUrl = fbLoginUrl + "?login_type=mobileWeb_";
			}

			if(typeof param2 != "undefined") {
				fbLoginUrl = fbLoginUrl + "&rUrl=" + param2;
			}

			location.href = fbLoginUrl;

		},

		openForConnect : function() {
			window.open(g_urlSecure + "/facebook/connect?returl="
					+ location.href, "FBLOGIN",
					"width=500,height=300,resizable=0");

		},

		openForInApp : function() {
			window.open(g_urlSecure + "/facebook/login?login_type=inApp&display=popup&longLoginYn=NY&returl="
					+ location.href, "FBLOGIN",
					'scrollbars=yes,resizable=yes,width=500,height=300');
		}
	};
}


Date.prototype.format = function (format) {
    var returnStr = '';
    var replace = Date.replaceChars;
    for (var i = 0; i < format.length; i++) {
        var curChar = format.charAt(i);
        if (i - 1 >= 0 && format.charAt(i - 1) == "\\") {
            returnStr += curChar;
        } else if (replace[curChar]) {
            returnStr += replace[curChar].call(this);
        } else if (curChar != "\\") {
            returnStr += curChar;
        }
    }
    return returnStr;
};
Date.replaceChars = {
    shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
    longMonths: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
    shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
    longDays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
    d: function () {
        return (this.getDate() < 10 ? '0' : '') + this.getDate();
    },
    D: function () {
        return Date.replaceChars.shortDays[this.getDay()];
    },
    j: function () {
        return this.getDate();
    },
    l: function () {
        return Date.replaceChars.longDays[this.getDay()];
    },
    N: function () {
        return this.getDay() + 1;
    },
    S: function () {
        return (this.getDate() % 10 == 1 && this.getDate() != 11 ? 'st' : (this.getDate() % 10 == 2 && this.getDate() != 12 ? 'nd' : (this.getDate() % 10 == 3 && this.getDate() != 13 ? 'rd' : 'th')));
    },
    w: function () {
        return this.getDay();
    },
    z: function () {
        var d = new Date(this.getFullYear(), 0, 1);
        return Math.ceil((this - d) / 86400000);
    },
    W: function () {
        var d = new Date(this.getFullYear(), 0, 1);
        return Math.ceil((((this - d) / 86400000) + d.getDay() + 1) / 7);
    },
    F: function () {
        return Date.replaceChars.longMonths[this.getMonth()];
    },
    m: function () {
        return (this.getMonth() < 9 ? '0' : '') + (this.getMonth() + 1);
    },
    M: function () {
        return Date.replaceChars.shortMonths[this.getMonth()];
    },
    n: function () {
        return this.getMonth() + 1;
    },
    t: function () {
        var d = new Date();
        return new Date(d.getFullYear(), d.getMonth(), 0).getDate();
    },
    L: function () {
        var year = this.getFullYear();
        return (year % 400 == 0 || (year % 100 != 0 && year % 4 == 0));
    },
    o: function () {
        var d = new Date(this.valueOf());
        d.setDate(d.getDate() - ((this.getDay() + 6) % 7) + 3);
        return d.getFullYear();
    },
    Y: function () {
        return this.getFullYear();
    },
    y: function () {
        return ('' + this.getFullYear()).substr(2);
    },
    a: function () {
        return this.getHours() < 12 ? 'am' : 'pm';
    },
    A: function () {
        return this.getHours() < 12 ? 'AM' : 'PM';
    },
    B: function () {
        return Math.floor((((this.getUTCHours() + 1) % 24) + this.getUTCMinutes() / 60 + this.getUTCSeconds() / 3600) * 1000 / 24);
    },
    g: function () {
        return this.getHours() % 12 || 12;
    },
    G: function () {
        return this.getHours();
    },
    h: function () {
        return ((this.getHours() % 12 || 12) < 10 ? '0' : '') + (this.getHours() % 12 || 12);
    },
    H: function () {
        return (this.getHours() < 10 ? '0' : '') + this.getHours();
    },
    i: function () {
        return (this.getMinutes() < 10 ? '0' : '') + this.getMinutes();
    },
    s: function () {
        return (this.getSeconds() < 10 ? '0' : '') + this.getSeconds();
    },
    u: function () {
        var m = this.getMilliseconds();
        return (m < 10 ? '00' : (m < 100 ? '0' : '')) + m;
    },
    e: function () {
        return "Not Yet Supported";
    },
    I: function () {
        return "Not Yet Supported";
    },
    O: function () {
        return (-this.getTimezoneOffset() < 0 ? '-' : '+') + (Math.abs(this.getTimezoneOffset() / 60) < 10 ? '0' : '') + (Math.abs(this.getTimezoneOffset() / 60)) + '00';
    },
    P: function () {
        return (-this.getTimezoneOffset() < 0 ? '-' : '+') + (Math.abs(this.getTimezoneOffset() / 60) < 10 ? '0' : '') + (Math.abs(this.getTimezoneOffset() / 60)) + ':00';
    },
    T: function () {
        var m = this.getMonth();
        this.setMonth(0);
        var result = this.toTimeString().replace(/^.+ \(?([^\)]+)\)?$/, '$1');
        this.setMonth(m);
        return result;
    },
    Z: function () {
        return -this.getTimezoneOffset() * 60;
    },
    c: function () {
        return this.format("Y-m-d\\TH:i:sP");
    },
    r: function () {
        return this.toString();
    },
    U: function () {
        return this.getTime() / 1000;
    }
};


if(!String.linkify) {
    String.prototype.linkify = function(target) {

        // http://, https://, ftp://
        var urlPattern = /\b(?:https?|ftp):\/\/[a-z0-9-+&@#\/%?=~_|!:,.;]*[a-z0-9-+&@#\/%=~_|]/gim;

        // www. sans http:// or https://
        var pseudoUrlPattern = /(^|[^\/])(www\.[\S]+(\b|$))/gim;

        // Email addresses
        var emailAddressPattern = /[\w.]+@[a-zA-Z_-]+?(?:\.[a-zA-Z]{2,6})+/gim;

        var propTarget = "";
        if(target){
        	propTarget = "target=" + target;
        }

        return this
            .replace(urlPattern, '<a href="$&" '+ propTarget +'>$&</a>')
            .replace(pseudoUrlPattern, '$1<a href="http://$2">$2</a>')
            .replace(emailAddressPattern, '<a href="mailto:$&">$&</a>');
    };
}

/*-----/js/commons.js / end -----*/

/*-----/js/ui.js / start -----*/
if(typeof(bugs.ui) == "undefined") bugs.ui = {};

bugs.ui.DEFAULT_POPUP_OPTION = {
	caller : null,
	title : null,
	css : "",
	modal : true,
	layout :"",
	position : "",
	alertButtons : true,
	closeButtons : true,
	cancelButtons : false,
	msgDesc : "",
	onInit : function(popup) {},
	onOk : function(popup) {return true;},
	onCancel : function(popup) {return true;},
	onClose : function(popup) {return true;},
	onHide : function() {}
};

bugs.ui.modalLayerM = {
	show : function() {
		$('#m_contentModalLayer').show();
	},
	hide : function(){
		$('#m_contentModalLayer').hide();
	}
};

bugs.ui.modalLayer = {
	layer : null,
	show : function() {

		if(!this.layer) {
			this.layer = jQuery("<div></div>").attr("id", "_modalLayer").css({
				"z-index" : "990",
				"filter" : "alpha(opacity=30)",
				"opacity" : "0.2",
				"-moz-opacity" : "0.2",
				"position" : "absolute",
				"top" : 0,
				"left" : 0,
				"background-color" : "black"
			}).appendTo("body");
		}

		var width = jQuery(document).width();
		var height = jQuery(document).height();
		if(jQuery.browser.msie) {
			var bodyHeight = jQuery("body").height();
			var windowHeight = jQuery(window).height();
			
		}

		this.layer.css({width : "100%", height : height}).show();
	},
	show_dark : function() {

		if(!this.layer) {
			this.layer = jQuery("<div></div>").attr("id", "_modalLayer").css({
				"z-index" : "900",
				"filter" : "alpha(opacity=60)",
				"opacity" : "0.6",
				"-moz-opacity" : "0.6",
				"position" : "absolute",
				"top" : 0,
				"left" : 0,
				"background-color" : "black"
			}).appendTo("body");
		}

		var width = jQuery(document).width();
		var height = jQuery(document).height();
		if(jQuery.browser.msie) {
			var bodyHeight = jQuery("body").height();
			var windowHeight = jQuery(window).height();
		}

		this.layer.css({width : "100%", height : height}).show();
	},

	show_dark2 : function() {

		if(!this.layer) {
			this.layer = jQuery("<div></div>").attr("id", "_modalLayer").css({
				"z-index" : "900",
				"filter" : "alpha(opacity=75)",
				"opacity" : "0.75",
				"-moz-opacity" : "0.75",
				"position" : "absolute",
				"top" : 0,
				"left" : 0,
				"background-color" : "black"
			}).appendTo("body");
		}

		var width = jQuery(document).width();
		var height = jQuery(document).height();
		if(jQuery.browser.msie) {
			var bodyHeight = jQuery("body").height();
			var windowHeight = jQuery(window).height();
		}

		this.layer.css({width : "100%", height : height}).show();
	},

	hide : function() {
		if(this.layer) this.layer.hide();

		if(typeof this.callLater == "function"){
			this.callLater();
			this.callLater = null;
		}
	},

	callLater : null
};

bugs.ui.TITLE_LOGO = "LOGO";

bugs.ui.popup = bugs.create();
bugs.ui.popup.prototype = {
	type : "popup",

	initialize : function(msg, option) {
		this.msg = msg;
		this.option = bugs.overed(bugs.clone(bugs.ui.DEFAULT_POPUP_OPTION), option || {});

		if (this.option.title == "LOGO") this.option.title = "";

		this.makeLayer();
	},

	makeLayer : function() {

		if(typeof(this.msg) == "string") {
			if(this.option.title =="layerLogin" && this.option.position == "header") {
				this.layer = jQuery(this.getHtml2()).insertAfter("#loginHeader a:eq(0)");
			} else if (this.option.title =="layerLogin" || this.option.title =="adult") {
				this.layer = jQuery(this.getHtml2()).appendTo("body");
			} else {
				this.layer = jQuery(this.getHtml()).appendTo("body");
			}
		}
		else {
			// 이미 있는 dom object로 레이어 생성
			if (this.option.title =="layerLoginInfo" || this.option.position == "header") {
				this.layer = jQuery(this.msg).insertAfter("#loginHeader a:eq(0)");
			} else if (this.option.title =="layerLoginInfoMLM") {
				this.layer = jQuery(this.msg).insertAfter("#loginHeader p.userID");
			} else {
				this.layer = jQuery(this.msg).appendTo("body");
			}

			if(this.layer.find("h1").length) {
				this.option.title = this.layer.find("h1").html();
			}

			var css = [];
			this.layer.eachClass(function(index, item) {
				if(item == "layer" || item == "alertMessage" || item == "title" || item == "noTitle") return;

				css.push(item);
			}.bind(this));

			if(css.length == 1) this.option.css = css[0];
			else this.option.css = css;
		}
		if(this.option.title !="layerLogin") {
			this.layer.find("button[btnType=close]").click(function() {
				this.hide();
				return false;
			}.bind(this));
			this.makeButtons();

		} else {
			jQuery("#layerLoginClose").click(function() {
				try{
					bugs.layerFocusNavi.remove(this.layer);
				}catch(e){};
				this.hide();
				return false;
			}.bind(this));
		}

		this.onInit();
	},

	makeButtons : function() {
		this.layer.find("button[btnType=ok]").unbind("click").click(function() {
			try{ bugs.layerFocusNavi.remove(this.layer); }catch(e){};

			if(this.option.onOk(this)) this.hide();
		}.bind(this));

		this.layer.find("button[btnType=cancel]").unbind("click").click(function() {
			try{ bugs.layerFocusNavi.remove(this.layer); }catch(e){};

			if(this.option.onCancel(this)) this.hide();
		}.bind(this));

		this.layer.find("button[btnType=close]").unbind("click").click(function() {
			try{ bugs.layerFocusNavi.remove(this.layer); }catch(e){};

			if(this.option.onClose(this)) this.hide();
		}.bind(this));

		if(this.option.okBtnTitle){
			this.layer.find("button[btnType=ok]").text(this.option.okBtnTitle);
		}
	},

	setTitle : function(title) {
		this.layer.find("h1:first").html(title);
	},

	getHtml : function() {

		var html = "<aside class=\"layer alertMessage "+ (!this.option.title ? "noTitle " : "title") +  this.option.css + "\" style=\"display:none;\">"+
				"<div class=\"box-shadow\"></div>" ;

		if(this.option.title) {
			html += "<header class=\"layer-title\">" +
				"<h1>"+this.option.title+"</h1>" +
					"</header>";
		}

		html += "<section class=\"layerContents\">" +
			"<div class=\"message "+(!this.option.msgDesc ? "msg1 " : "msg2")+"\">"+
			"<p>"+this.msg+"</p>";
		if (this.option.msgDesc)
			msg +="<p class=\"desc\">"+this.msgDesc+"</p>";

		html +="</div>";

		html += "<p class=\"btns\">";

		if (this.option.alertButtons)
			html += "<button class=\"btnNormal\" btnType=\"ok\">확인</button>";

		if (this.option.cancelButtons)
			html += "<button class=\"btnNormal\" btnType=\"cancel\">취소</button>";

		html += "</p>";

		html += "</section>";

		if (this.option.closeButtons)
		html += "<button class=\"btnClose\" btnType=\"close\">닫기</button>";
		html += "</aside>";

		return html;
	},
	getHtml2 : function() {
		return this.msg;
	},
	innerHtml : function(html) {
		if(typeof html != "undefined") {
			if (typeof(this.msg) == "string") {
				jQuery("section.layerContents", this.layer).children().not("button[btnType=cancel]").remove();
				jQuery("section.layerContents", this.layer).children().not("button[btnType=ok]").remove();
				jQuery("section.layerContents", this.layer).prepend(html);
				//jQuery("div.content", this.layer).html(html);
			}
			else {
				this.layer.html(jQuery(this.msg).html());
			}
		}
	},
	onInit : function() {
		this.option.onInit(this);
	},

	show : function(msg, option) {

		if(msg) {
			if(this.type == "alert")
				this.layer.find("section.layerContents > div > p").html(msg);
			else if(this.type == "alertMobile")
				this.layer.find("div.layerAlertWrap > p").html(msg);
			else {
				this.innerHtml(msg);
				this.makeButtons();
			}
		}

		if (!bugs.valid.isNull(option)) {
			option.onInit(this);
		}

		this.option = bugs.overed(this.option, option || {});
		var css = this.option.css;

		this.layer.eachClass(function(index, item) {
			if(item == "layer" || item == "alertMessage" || item == "title" || item == "noTitle") return;

			jQuery(this).removeClass(item);
		}.bind(this.layer));

		if(typeof(this.option.css) == "object") {
			for(var i in this.option.css)
				this.layer.addClass(this.option.css[i]);
		}
		else this.layer.addClass(css);

		//----- modal dialog 처리 -----------------------------------------------
		if(this.option.modal) {
			if(this.option.title =="layerLogin")
				bugs.ui.modalLayer.show_dark();
			else
				bugs.ui.modalLayer.show();
		}
		//---------------------------------------------------------------------
		//기존과 다르게 양옆에 패딩 14 값이 들어가서 outerWidth로 변경
		var left = jQuery(window).scrollLeft() + ((jQuery(window).width() - this.layer.outerWidth()) >> 1);
		var top = jQuery(window).scrollTop() + ((jQuery(window).height() - this.layer.height()) >> 1);

		if (this.option.title =="adult") top = top + 20;

		if(this.option.width){
			this.layer.css({width:this.option.width});
		}

		if (this.option.title =="layerLogin" && this.option.position == "header") {
			this.layer.css({right : 20, top : 35}).show();
			this.layer.show();
			this.layer.attr("tabIndex",-1).focus();
		} else if (this.option.position == "fix") {
			this.layer.show();

		} else {
			this.layer.css({left : left, top : top}).show();
			this.layer.attr("tabIndex",-1).focus();
		}

		//if(!(this.option.title =="layerLogin" && this.option.position=="header")){
			var caller = null;
			try{
				caller = this.option.caller || window.event.target;
			}catch(e){};

			bugs.layerFocusNavi.add(this.layer, caller, this.hide.bind(this));
		//}

		if (
				(this.layer.find(".btnNormal").length < 1 && this.layer.find(".btnClose").length < 1) ||
				(this.option.title =="layerLogin" && this.option.position == "header") ||
				(this.option.title == "layerLoginInfo")
			) {
			$(document).bind("click", {obj : this.layer}, bugs.ui.popupClick);
		}


		try {
			this.stopEvent();
		} catch (e) {
			//nothing
		}

		return this;
	},

	hide : function() {
		if(this.option.modal) bugs.ui.modalLayer.hide();
		if(this.option.onHide)	this.option.onHide();
		try{
			bugs.layerFocusNavi.remove(this.layer);
		}catch(e){};
		this.layer.hide(
			//jQuery.proxy(function() { this.remove(); }, this)
		);

	},
	stopEvent : function(e) {

		if(!e) var e = window.event;

		//e.cancelBubble is supported by IE -
	     // this will kill the bubbling process.
		e.cancelBubble = true;
		e.returnValue = false;

		//e.stopPropagation works only in Firefox.
		if ( e.stopPropagation ) e.stopPropagation();
		if ( e.preventDefault ) e.preventDefault();

        return false;

	},

	addModalMsg : function(id, msg) {
		var html = "" +
			"<div class=\"layerModal\" style=\"top:0px;display:none;\">" +
			"	<div class=\"content\">" +
			"		<p>" + msg + "</p>" +
			"		<div class=\"btnArea\"><span class=\"button typeME\"><a href=\"#\">확인</a></span></div>" +
			"	</div>" +
			"	<div class=\"layerBg bgTR\"></div>" +
			"	<div class=\"layerBg bgTL\"></div>" +
			"</div>";

		this.modalMsgList[id] = jQuery(html).appendTo(this.layer);
	},

	showModalMsg : function(msg, option) {
		this.option = bugs.overed(this.option, option || {});
		if(!this.modalMsgLayer) {
			var html = ""+
				+"<aside class=\"layer alertMessage noTitle\" style=\"display:block;top:200px;left:800px;\">"+
				"<div class=\"box-shadow\"></div>"+
				"<section class=\"layerContents\">"+
				"	<div class=\"message msg1\">"+
				"		<p></p>"+
				"	</div>"+
				"	<p class=\"btns\">"+
				"		<button class=\"btnNormal\" btnType=\"ok\">확인</button>"+
				"	</p>"+
				"</section>"+
				"<button class=\"btnClose\" btnType=\"cancel\">닫기</button>"+
				"</aside>";

			this.modalMsgLayer = jQuery(html).appendTo(this.layer).find("button[btnType=ok]").click(function() {
				this.modalMsgLayer.hide();
				this.option.onOk();
				return false;
			}.bind(this)).end();
		}
		this.modalMsgLayer.find("div.message p").html(msg);
		var left = (this.modalMsgLayer.parent().width() - this.modalMsgLayer.width()) >> 1;
		var top = (this.modalMsgLayer.parent().height() - this.modalMsgLayer.height()) >> 1;
		this.modalMsgLayer.css({top : top, left : left}).show();

	},

	getLayer : function() {
		return this.layer;
	},

	reposition : function() {
		var left = jQuery(window).scrollLeft() + ((jQuery(window).width() - this.layer.width()) >> 1);
		var top = jQuery(window).scrollTop() + ((jQuery(window).height() - this.layer.height()) >> 1);

		this.layer.css({left : left, top : top});
	},
	remove : function() {
		if(this.layer){
			try{
				bugs.layerFocusNavi.remove(this.layer);
			}catch(e){};
			this.layer.remove();
		}
		this.layer == null;
	}
};

bugs.ui.loadingLayer = bugs.create();
bugs.ui.loadingLayer.prototype = {
		layerPopupHtml : '<aside class="layer layerLoading" style="display:block;top:50px;left:10px;">' +
						'<div class="box-shadow"></div>' +
						'<section class="layerContents">'+
							'<div class="loadingDiv"><div class="loadingImg"></div><%=obj.title%></div>' +
						'</section>' +
					'</aside>' ,
		appendHtml : '<div class="contentsLoading">' +
						'<div class="loadingImg"></div>' +
                    '<%=obj.title%></div>',
	initialize : function(title, obj, isPrepend) { //parameter : title, obj(유[append]/무[popup]), isPrepend(true/false[append])
		this.title = title || "로딩 중...";
		this.obj = obj || null;
		this.isPrepend = isPrepend || false;

		var tmp = null;
		if(this.obj == null) {  //layer popup 형태 일때
			tmp = new bugs.template(this.layerPopupHtml, {title : this.title});
			this.layer = jQuery(tmp.html()).appendTo("body");
		}else{ // obj append 형태 일때
			tmp = new bugs.template(this.appendHtml, {title : this.title});
			if(isPrepend){
				this.layer = jQuery(tmp.html()).prependTo(this.obj);
			}else{
				this.layer = jQuery(tmp.html()).appendTo(this.obj);
			}
		}
		this.layer.hide();

		// if(!bugs.mobile.isMobile()){
        //     this.layer.find('div.loadingImg').animateSprite({
        //         fps: 12,
        //         animations: {
        //             right: [0, 1, 2, 3, 4, 5, 6, 7, 8]
        //         },
        //         loop: true,
        //         autoplay: true
        //     });
        // }

	},
	show : 	function(css) {

		if(typeof css == "undefined") { //default
			if(this.obj == null) { //layer popup 형태 일때
				css = {position : "absolute", left : "50%", top : 316, "margin-left" : -146};
			}else{ // obj append 형태 일때
				css = {};
			}
		}
		this.layer.css(css);
//		this.layer.find('div.loadingImg').animateSprite('play');
		this.layer.show();
	},
	hide : function() {
//		this.layer.find('div.loadingImg').animateSprite('stop');
		this.layer.hide();
	},
	remove : function() {
//		this.layer.find('div.loadingImg').animateSprite('stop');
// 		this.layer.find('div.loadingImg').remove();
		if(this.layer) this.layer.remove();
//		this.layer.remove();
	}
};

bugs.ui.alert = bugs.create();
bugs.ui.alert.prototype = {
	getHtml : function() {
		var _layerClass = "layer alertMessage";
		if(typeof this.option.layerClass !="undefined") _layerClass = this.option.layerClass;

		var html = "<aside class=\""+_layerClass+" " + this.option.css + " noTitle\" style=\"display:none;\">" +
			"<div class=\"box-shadow\"></div>" +
			"<section class=\"layerContents\">" +
			"<div class=\"message msg1\">" +
			"<p></p>" +
			"</div>";
		if(this.option.alertButtons) {
			html += "<p class=\"btns\">" +
				"<button class=\"btnNormal\" btnType=\"ok\">확인</button>"+
				"</p>";
		}
		html += "</section>";

		if(this.option.alertButtons)
			html += "<button class=\"btnClose\" >닫기</button>";

		html +=	"</aside>";
		return html;
	},

	onInit : function() {
		this.type = "alert";

		this.layer.find("div.message > p").html(this.msg);

		this.layer.find("p.btns > button.btnNormal").click(function() {
			this.hide();
			if(typeof(this.option.onOk) == "function") this.option.onOk(this);
			return false;
		}.bind(this));

		this.layer.find("button.btnClose").click(function() {
			this.hide();
			if(typeof(this.option.onCancel) == "function") this.option.onCancel(this);
			return false;
		}.bind(this));

		this.layer.find("button.layerClose").click(function() {
			this.hide();
			if(typeof(this.option.onCancel) == "function") this.option.onCancel(this);
			return false;
		}.bind(this));

		if(typeof this.option.onInit == "function") {
			this.option.onInit(this);
		}
	}
};
bugs.extend(bugs.ui.alert, bugs.ui.popup);

bugs.ui.alert.mobile = bugs.create();
bugs.ui.alert.mobile.prototype = {
	getHtml : function() {
		var _layerClass = "layerAlert";
		if(typeof this.option.layerClass !="undefined") _layerClass = this.option.layerClass;

		if ("tiles" == this.option.layout) {
			var html =  "<div class=\""+_layerClass+" " + this.option.css + "\" style=\"display:none;\">" +
						"	<div class=\"layerAlertWrap\">" +
						"		<p></p>";

			if (this.option.alertButtons) {
				html +=	"		<div class=\"btnArea\"></div>";
			}

			if (this.option.closeButtons) {
				html +=	"		<div class=\"closeArea\"><p class=\"close\">닫기</p></div>";
			}

			html += 	"	</div>" +
						"</div>";
		}
		else {
			var html =  "<div class=\""+_layerClass+" " + this.option.css + "\" style=\"display:none;\">" +
						"	<div class=\"layerAlertWrap\">" +
						"		<p></p>";

			if (this.option.alertButtons) {
				html +=	"		<div class=\"btnArea\">" +
						"			<a href=\"javascript:void(0);\" class=\"button btnTypeM\">확인</a>" +
						"		</div>";
			}

			html += 	"	</div>" +
						"</div>";
		}


		return html;
	},

	onInit : function() {
		this.type = "alertMobile";

		this.layer.find("div.layerAlertWrap > p").html(this.msg);

		if (!bugs.valid.isNull(this.option.buttons)) {
			this.layer.find("div.layerAlertWrap > div.btnArea").empty().html(this.option.buttons);
		}

		if ("tiles" == this.option.layout) {
			this.layer.find("div.layerAlertWrap p.close").click(function() {
				this.hide();
				if(typeof(this.option.onCancel) == "function") this.option.onCancel(this);
				return false;
			}.bind(this));
		}
		else {
			this.layer.find("div.btnArea a.button").click(function() {
				this.hide();
				if(typeof(this.option.onOk) == "function") this.option.onOk(this);
				return false;
			}.bind(this));
		}

		if(typeof this.option.onInit == "function") {
			this.option.onInit(this);
		}
	}
};
bugs.extend(bugs.ui.alert.mobile, bugs.ui.popup);

bugs.ui.showPopup = function(msg, option) {
	if(!bugs.ui._popup) bugs.ui._popup = new bugs.ui.popup(msg, option).show();
	else bugs.ui._popup.show(msg, bugs.overed(bugs.clone(bugs.ui.DEFAULT_POPUP_OPTION), option || {}));
};

bugs.ui.showAlert = function(msg, option) {
	if(!bugs.ui._alert) bugs.ui._alert = new bugs.ui.alert(msg, option).show();
	else bugs.ui._alert.show(msg, bugs.overed(bugs.clone(bugs.ui.DEFAULT_POPUP_OPTION), option || {}));
};

bugs.ui.showAlertMobile = function(msg, option) {
	if(!bugs.ui._alertMobile) bugs.ui._alertMobile = new bugs.ui.alert.mobile(msg, option).show();
	else bugs.ui._alertMobile.show(msg, bugs.overed(bugs.clone(bugs.ui.DEFAULT_POPUP_OPTION), option || {}));
};

//------------------------------ 로그인 레이어  -----------------------------------------------------------------//

bugs.ui.showLoginAlert = function(code, option) {
	var opt = bugs.overed({
		msrl : "",
		layerLogin : true,
		css : "layer loginV2 dimborder"
	}, option || {});

	if (code != "OK") {
		//nothing
	}else{
		bugs.ui.pcLoginLog();
	}
};


bugs.ui.showLoginLayer = function(option,beforeLongLoginYn) {
	var strLongLoginYn = "";
	if (beforeLongLoginYn == 'Y') strLongLoginYn = "checked";

	async function temporaryLogin(fromIdType) {
		try {
			const response = await fetch(g_urlMusic + "/member/api/tempIdType");
			if (!response.ok) {
				throw new Error('Network response was not ok');
			}
			const data = await response.json();
			if (data.code === 'OK' && (data.id_type === fromIdType)) {
				location.href = g_urlMusic + "/member/temporarylogin";
				return true;
			}
		} catch (error) {
			console.error('temporaryLogin error:', error);
		}
		return false;
	}

	if (typeof BugsTurnstileModule !== 'undefined') {
		if (!bugs.ui.turnstileManager) {
			bugs.ui.turnstileManager = BugsTurnstileModule.create({
				sitekey: '0x4AAAAAAA1AKxCWkJyb2s9T',
				config: {
					size: 'flexible'
				},
				onInit: function() {
					jQuery("#frmLoginLayer .submit").attr('disabled', "").css({
						cursor: 'not-allowed',
						pointerEvents: 'none',
						backgroundColor: '#e2e2e2'
					});
				},
				onSuccess: function() {
					jQuery("#frmLoginLayer .submit").removeAttr('disabled', "").css({
						cursor: 'pointer',
						pointerEvents: '',
						backgroundColor: ''
					});
				},
				onDestroy: function() {
					$("#frmLoginLayer .submit").removeAttr('disabled', "").css({
						cursor: 'pointer',
						pointerEvents: '',
						backgroundColor: ''
					});
				},
				onDestroyAll: function() {
					if (bugs.ui.turnstileManager) bugs.ui.turnstileManager = null;
				}
			})
			bugs.ui.turnstileId = 'ts-layers-bugs-login';
		}
	}

	// 보여지는 공통 레이어 모두 닫기
	bugs.layermenu.removeOldLayer();

	var opt = bugs.overed({
		rUrl : location.href,
		openWindow : false,
		rType : "X"
	}, option || {});

	var msg = "";

	if (opt.position == 'header') {
		msg += "<aside class=\"layer loginV2\">";
	} else {
		msg += "<aside class=\"layer loginV2 dimborder\">";
	}

	msg += "<div class=\"box-shadow\"></div>";

	if (opt.position == 'header') {
		msg += "<div class=\"layerTap\"></div>";
	}

	msg +=
	"<header class=\"layer-title\">" +
	"	<h1>로그인/회원가입</h1>" +
	"</header>" +
	"<div class=\"loginTypeSet\">"+
	"	<h2>로그인 후 이용하실 수 있습니다.</h2>"+
	"	<form method=\"post\" id=\"frmLoginLayer\" name=\"frmLoginLayer\" onsubmit=\"return false;\" >" +
	"	<input type=\"hidden\" id=\"rUrl\" name=\"rUrl\" value=\"" + opt.rUrl + "\"  />"+
	"	<div class=\"loginType\">"+
	"		<a href=\"javascript:void(0);\" id=\"to_bugs_login\"class=\"loginBtn btnBugsLogin\">벅스 아이디 또는 이메일로 로그인</a>"+
	"		<a href=\"javascript:void(0);\" id=\"payco-auth-popup\" class=\"loginBtn btnPaycoLogin\"><span>PAYCO</span>로 로그인</a>"+
	"		<a href=\"javascript:void(0);\" id=\"fb-auth-layer\" class=\"loginBtn btnFbLogin\">Facebook으로 로그인</a>"+
	"		<div class='options saveLogin'>"+
	"			<input type='checkbox' id=\"longLoginYn\" name=\"longLoginYn\" class='persist' "+strLongLoginYn+"> <label for='longLoginYn'>선택한 아이디로 로그인 상태 유지</label><span class='icon persistGuide'>로그인 상태 유지란?</span>"+
	"			<div class=\"messagePersist msgPrivacy\">" +
	"				<p>개인정보 보호를 위해 <strong>개인 PC</strong>에서만 사용하세요.<a href=\"http://help.bugs.co.kr/sub?target=bugs/faq/list%3FfaqId%3D26234%26categoryNo%3D4601\" target=\"_blank\" class=\"btnMore\">자세히 보기</a></p>" +
	"				<span class=\"btnClose\">닫기</span>" +
	"				<span class=\"layerTab\"></span>" +
	"			</div>" +
	"			<div class=\"messagePersist msgPersistGuide\">" +
	"				<p>매번 아이디/비밀번호를 입력하지 않아도 로그인 정보를 <br/>유지할 수 있는 기능입니다.</p>" +
	"				<span class=\"btnClose\">닫기</span>" +
	"				<span class=\"layerTab\"></span>" +
	"			</div>" +
	"		</div>"+
	" 		<a href=\"javascript:void(0);\" id=\"go_register\" class=\"loginBtn btnJoinBugs\">벅스 회원가입</a>"+
	"	</div>"+
	"	<span id=\"layerLoginClose\" class=\"btnClose\">닫기</span>"+
	"	</form>"+
	"</div>";
	msg += "</aside>";

	var saveId = bugs.cookie.get('saveId');

	//초기화
	if(bugs.ui._loginLayer) {
		bugs.ui._loginLayer.remove();
		bugs.ui._loginLayer = null;
	}
	if(!bugs.ui._loginLayer) {

		var layerClass =  "layer loginV2 dimborder";
		var isModal = true;

		if (opt.position == 'header') {
			layerClass = "layer loginV2";
			isModal = false;
		} else {
			layerClass = "layer loginV2 dimborder";
		}

		bugs.ui._loginLayer = new bugs.ui.popup(msg, {title : "layerLogin", caller: opt.caller,  position : opt.position, modal : isModal, css : layerClass,
			onInit : function(popup) {


			var $loginContainer = $('.layer.loginV2 .loginTypeSet');

			$loginContainer.find('.icon.persistGuide').click(function(ev) {
				var position = $(this).position();
				var $message = $('.messagePersist.msgPersistGuide');

				$message.toggle($(this)[0].checked);
				$('.messagePersist.msgPrivacy').hide();
			});
			$loginContainer.find('#longLoginYn').click(function(ev) {
				var position = $(this).position();
				var $message = $('.messagePersist.msgPrivacy');

				$message.toggle($(this)[0].checked);
				$('.messagePersist.msgPersistGuide').hide();
			});

			$loginContainer.find('.messagePersist .btnClose').click(function(ev){
				$('.messagePersist').hide();
			});

			jQuery('#to_bugs_login').click(function(event) {
					var longLoginYn = jQuery(".layer.loginV2 .loginTypeSet #longLoginYn").is(":checked") ? "Y" : "N";
					bugs.ui.showLoginLayerBugs(opt,longLoginYn);

				}
			);
			// 페이코 로그인
			jQuery('#payco-auth-popup').click(function(event) {
				temporaryLogin('PAYCO').then((succed) => {
					if (succed) return;
					var longLoginYn = jQuery(".layer.loginV2 .loginTypeSet #longLoginYn").is(":checked") ? "Y" : "N";
					window.open(g_urlSecure + "/member/payco/login?longLoginYn="+longLoginYn+"&returnUri=" + (opt.rUrl == undefined || opt.rUrl == "" ? encodeURIComponent(location.href) : encodeURIComponent(opt.rUrl)), "paycoLoginPopup","width=420, height=550");
				})
			});

			jQuery('#hangame-auth-popup').click(function(event) {
                var longLoginYn = jQuery(".layer.loginV2 .loginTypeSet #longLoginYn").is(":checked") ? "Y" : "N";
                var ieVersion = bugs.utils.getIEVersion();
                if(ieVersion != 0){
                    location.href = g_urlSecure + "/member/hangame/oauth/bridge?longLoginYn="+longLoginYn+"&returnUri=" + (opt.rUrl == undefined || opt.rUrl == "" ? encodeURIComponent(location.href) : encodeURIComponent(opt.rUrl));
                }else{
                    window.open(g_urlSecure + "/member/hangame/oauth/bridge?longLoginYn="+longLoginYn+"&returnUri=" + (opt.rUrl == undefined || opt.rUrl == "" ? encodeURIComponent(location.href) : encodeURIComponent(opt.rUrl)), "hangameLoginPopup","width=450, height=620");
                }
			});
			jQuery('#go_register').click(function(event) {

				if(location.href.indexOf("Player?trackId=") > -1 || location.href.indexOf("Player?mvId=") > -1 || location.href.indexOf("newPlayer?") > -1 || location.href.indexOf("Radio?") > -1 || location.href.indexOf("pay/offlineCoupon/") > -1) {
					window.open(g_urlMusic + "/member/bregister?rUrl=" + (opt.rUrl == undefined || opt.rUrl == "" ? encodeURIComponent(location.href) : encodeURIComponent(opt.rUrl)));
				} else {
					location.href = g_urlMusic + "/member/bregister?rUrl=" + (opt.rUrl == undefined || opt.rUrl == "" ? encodeURIComponent(location.href) : encodeURIComponent(opt.rUrl));
				}

				}
			);
			// 페이스북 로그인
			jQuery('#fb-auth-layer').click(function(event) {
				// id_type 체크
				temporaryLogin('FACEBOOK').then((succed) => {
					if (succed) return;

					var longLoginYn = jQuery(".layer.loginV2 .loginTypeSet #longLoginYn").is(":checked") ? "Y" : "N";

					var rUrl = bugs.ui._loginLayer.layer.find("#rUrl").val();
					if (rUrl.indexOf("://") <= -1) rUrl = location.protocol+rUrl;

					if (rUrl != undefined && rUrl != "")
						bugs.fb.openLogin2(longLoginYn, rUrl);
					else
						bugs.fb.openLogin2(longLoginYn);
				})
			});

			window.fbAsyncInit = function() {
				FB.init({ appId: '122936701116206',
                        version: 'v2.12',
                        //channelUrl : 'http://music.bugs.co.kr/channel.html', // Channel File
                        status: true,
                        cookie: true,
                        xfbml: true,
                        oauth: true});
			};
			(function() {
				var e = document.createElement('script'); e.async = true;
				e.src = document.location.protocol + '//connect.facebook.net/ko_KR/sdk.js';
				try{
					document.getElementById('fb-root').appendChild(e);;
				}
				catch(e){}
			}());

		}, onHide: function() {
			if (bugs.ui.turnstileManager) bugs.ui.turnstileManager.destroyAll();
		}}).show();

	}
	else {
		bugs.ui._loginLayer.layer.find("#rUrl").val(opt.rUrl);
		bugs.ui._loginLayer.show();
	}

	//jQuery("#user_id").focus();

	//실시간 스타방송 때문에 로그인 레이어가 플래시플레이어 뒤로 숨기때문에 플래시플레이어 레이어 숨김
	if(typeof castType != "undefined" && castType=="live"){
		hideVideoLayer();
	}

};

var isSafari = (navigator.userAgent.toLocaleLowerCase().search("mac") >= 0 && navigator.userAgent.toLocaleLowerCase().search("safari") >= 0 && navigator.userAgent.toLocaleLowerCase().search("chrome") < 0);
var isWin10 = (navigator.userAgent.toLocaleLowerCase().search("windows nt 10.0") >= 0 && navigator.userAgent.toLocaleLowerCase().search("rv:11") >= 0);
var isEdge = (navigator.userAgent.toLocaleLowerCase().search("windows") >= 0 && navigator.userAgent.toLocaleLowerCase().search("edge") >= 0);
var isXP = (navigator.userAgent.toLocaleLowerCase().search("windows nt 5.1") >= 0);
var isIE78 = (navigator.userAgent.toLocaleLowerCase().search("msie 7.0") >= 0 || navigator.userAgent.toLocaleLowerCase().search("msie 8.0") >= 0);
var audio = null;

bugs.ui.showLoginLayerBugs = function(option, beforeLongLoginYn) {
	
	var strLongLoginYn = "";
	if (beforeLongLoginYn == 'Y') strLongLoginYn = "checked";
	// 보여지는 공통 레이어 모두 닫기
	bugs.layermenu.removeOldLayer();

	var opt = bugs.overed({
		rUrl : location.href,
		openWindow : false,
		rType : "X"
	}, option || {});

	var msg = "";

	if (opt.position == 'header') {
		msg += "<aside class=\"layer loginV2\">";
	} else {
		msg += "<aside class=\"layer loginV2 dimborder\">";
	}

	msg += "<div class=\"box-shadow\"></div>";

	if(opt.position == 'header')
		msg += "<div class=\"layerTap\"></div>";

	msg +="		<header class=\"layer-title\">" +
			"		<h1>벅스 아이디 또는 이메일로 로그인<a href=\"javascript:void(0)\"  id=\"to_payco_login\" class=\"prevlink\" style=\"cursor:pointer;\" >이전</a></h1>" +
			"		</header>";

	msg +="<fieldset class=\"bugsLoginSet\">" +
	"	<legend><span class=\"icon\"></span>벅스 아이디 또는 이메일로 로그인 입력폼</legend>" +
	"	<form method=\"post\" id=\"frmLoginLayer\" name=\"frmLoginLayer\" onsubmit=\"return false;\" >" +
	"	<div class=\"loginWrap\">" +
	"		<div class=\"login\" >" +
	"			<p class=\"input\">" +
	"				<input type=\"hidden\" id=\"rUrl\" name=\"rUrl\" value=\"" + opt.rUrl + "\"  />"+
	"				<input type=\"hidden\" id=\"key\" value=\"\"/>" +
	"				 <audio id=\"captchaAudio\" hidden>" +
	"				<source id=\"captchaVideoSource\" src=\"\" type=\"audio/wav\">" +
	"				</audio>" +
	"				<span class=\"username\">" +
	"					<input type=\"text\" id=\"user_id\" name=\"user_id\">" +
	"					<label for=\"user_id\" class=\"\"><em>아이디</em> 또는 <em>이메일</em>(예시 ID@bugs.co.kr)</label>" +
	"				</span>" +
	"				<span class=\"password\">" +
	"					<input type=\"password\" id=\"passwd\" name=\"passwd\">" +
	"					<label for=\"passwd\" class=\"\">비밀번호</label>" +
	"				</span>" +
	"			</p>" +
	"			<div id='bugs-turnstile'></div>" +
	"			<div class=\"captcha\" id=\"captcha\" style=\"display:none\">" +
	"				<div class=\"chkCaptcha\" id=\"captcha_image\">" +
	"					<span><img src=\"\" id=\"captchaImg\" alt=\"인증문자\"></span>";
	//사파리인 경우 음성듣기 버튼 삭제
	if(isSafari || isWin10){
		msg +="		<button type=\"button\" class=\"btnNormal btnReroad big\" onClick=\"getCaptcha('img');\">새로고침</button>" +
	"					<button type=\"button\" class=\"btnNormal btnVoice\" onClick=\"getCaptcha('sound');\">음성 듣기</button>";
	}else{
		msg +="		<button type=\"button\" class=\"btnNormal btnReroad\" onClick=\"getCaptcha('img');\">새로고침</button>" +
	"					<button type=\"button\" class=\"btnNormal btnVoice\" onClick=\"getCaptcha('sound');\">음성 듣기</button>";
	}
	msg += '		</div>' +
		'				<div class="chkCaptcha" id="captcha_sound" style="display:none">' +
		'					<span>음성 안내 듣기 중 ...</span>' +
		'					<button type="button" class="btnNormal btnReroad" onClick="getCaptcha(\'sound\');">새로고침</button>' +
		'					<button type="button" class="btnNormal btnImage" onClick="getCaptcha(\'img\');">이미지 보기</button>' +
		'				</div>' +
		'				<span class="inputCaptcha">' +
		'					<input type="text" id="inputCaptcha" name="capText">' +
		'					<label for="inputCaptcha" class="">자동입력방지 문자를 입력해주세요.</label>' +
		'				</span>' +
		'			</div>' +
		'			<div class="validation" style="display:none">' +
		'				<p>' +
		'					<span class="icon"></span><span id="loginDesc"></span>' +
		'				</p>' +
		'			</div>' +
		'			<button class="submit" style="cursor:pointer;">로그인</button>' +
		'		</div>' +
		'		<div class="saveOption">' +
		'			<div class="options saveID">' +
		'				<input type="checkbox" id="checkSaveId" name="checkSaveId"> <label for="checkSaveId">아이디 저장</label>' +
		'			</div>' +
		'			<div class=\'options saveLogin\'>' +
		'				<input type=\'checkbox\' id="longLoginYn" name="longLoginYn" class=\'persist\' ' + strLongLoginYn + '> <label for=\'longLoginYn\'>선택한 아이디로 로그인 상태 유지</label><span class=\'icon persistGuide\'>로그인 상태 유지란?</span>' +
		'				<div class="messagePersist msgPrivacy">' +
		'					<p>개인정보 보호를 위해 <strong>개인 PC</strong>에서만 사용하세요.<a href="http://help.bugs.co.kr/sub?target=bugs/faq/list%3FfaqId%3D26234%26categoryNo%3D4601" target="_blank" class="btnMore">자세히 보기</a></p>' +
		'					<span class="btnClose">닫기</span>' +
		'					<span class="layerTab"></span>' +
		'				</div>' +
		'				<div class="messagePersist msgPersistGuide">' +
		'					<p>매번 아이디/비밀번호를 입력하지 않아도 로그인 정보를 <br/>유지할 수 있는 기능입니다.</p>' +
		'					<span class="btnClose">닫기</span>' +
		'					<span class="layerTab"></span>' +
	"				</div>" +
	"			</div>"+
	"		</div>" +
	"		<div class=\"addon\">" +
	"			<a href=\""+g_urlSecure + "/member/find/id\" class=\"btnNormal find\">아이디/비밀번호 찾기</a>" +
	"			<a href=\"javascript:void(0);\" id= \"go_register\" class=\"btnNormal join\">벅스 회원가입</a>" +
	"		</div>" +
	"		<span id=\"layerLoginClose\" class=\"btnClose\" >닫기</span>" +
	"	</div>" +
	"	</form>";
	msg +="</fieldset>	"+
	"</aside>";

	var saveId = bugs.cookie.get('saveId');

	//초기화
	if(bugs.ui._loginLayer) {
		bugs.ui._loginLayer.remove();
		bugs.ui._loginLayer = null;
	}

	if(!bugs.ui._loginLayer) {

		var layerClass =  "layer loginV2 dimborder";
		var isModal = true;

		if (opt.position == 'header') {
			layerClass = "layer loginV2";
			isModal = false;
		} else {
			layerClass = "layer loginV2 dimborder";
		}

		bugs.ui._loginLayer = new bugs.ui.popup(msg, {title : "layerLogin", caller : opt.caller, position : opt.position, modal : isModal, css : layerClass,
			onInit : function(popup) {

				if (
					bugs.ui.turnstileManager &&
					!$(".captcha").is(":visible")
				) {
					bugs.ui.turnstileManager.create(bugs.ui.turnstileId, '#bugs-turnstile');
				}

				jQuery('#to_payco_login').click(function(event) {
						var longLoginYn = jQuery("#longLoginYn").is(":checked") ? "Y" : "N";
						bugs.ui.showLoginLayer(opt,longLoginYn);
						if (bugs.ui.turnstileManager) bugs.ui.turnstileManager.destroy(bugs.ui.turnstileId);
					}
				);

				jQuery('#go_register').click(function(event) {
					if(location.href.indexOf("Player?trackId=") > -1 || location.href.indexOf("Player?mvId=") > -1 || location.href.indexOf("newPlayer?") > -1 || location.href.indexOf("Radio?") > -1 || location.href.indexOf("pay/offlineCoupon/") > -1) {
						window.open(g_urlMusic + "/member/bregister?rUrl=" + (opt.rUrl == undefined || opt.rUrl == "" ? encodeURIComponent(location.href) : encodeURIComponent(opt.rUrl)));
					} else {
						location.href =g_urlMusic + "/member/bregister?rUrl=" + (opt.rUrl == undefined || opt.rUrl == "" ? encodeURIComponent(location.href) : encodeURIComponent(opt.rUrl));
					}
				}
				);

				//id,passwd
				var id = popup.layer.find("#frmLoginLayer input#user_id");
				var passwd = popup.layer.find("#frmLoginLayer input#passwd");

				//effect
				var $loginContainer = $('.layer.loginV2 .bugsLoginSet');

				$loginContainer.find('.input input').focus(function (){
					var $target = $('label[for=' + $(this).attr('id') + ']');
					$target.hide();
				});
				$loginContainer.find('.input input').blur(function (){
					if( $(this).val().length > 0 ) return;
					var $target = $('label[for=' + $(this).attr('id') + ']');
					$target.show();
				});

				//captcha effect
				$("#inputCaptcha").focus(function (){
					var $target = $('label[for=' + $(this).attr('id') + ']');
					$target.hide();
				});
				$("#inputCaptcha").blur(function (){
					if( $(this).val().length > 0 ) return;
					var $target = $('label[for=' + $(this).attr('id') + ']');
					$target.show();
				});

				$loginContainer.find('.icon.persistGuide').click(function(ev) {
					var position = $(this).position();
					var $message = $('.messagePersist.msgPersistGuide');

					$message.toggle($(this)[0].checked);
					$('.messagePersist.msgPrivacy').hide();
				});
				$loginContainer.find('#longLoginYn').click(function(ev) {
					var position = $(this).position();
					var $message = $('.messagePersist.msgPrivacy');

					$message.toggle($(this)[0].checked);
					$('.messagePersist.msgPersistGuide').hide();
				});

				$loginContainer.find('.messagePersist .btnClose').click(function(ev){
					$('.messagePersist').hide();
				});

				var saveId = bugs.cookie.get('saveId');
				if (!bugs.valid.empty(saveId)) {
					id.val(saveId).focus();
					$("label[for=user_id]").hide();
					jQuery("#checkSaveId").attr("checked","checked");
				}

				setTimeout(function() {
					//alert(id.val().length);
					if (id.val().length > 1) $('label[for=user_id]').hide();
					if (passwd.val().length > 1) $('label[for=passwd]').hide();
				}, 200);

				jQuery("#checkAutoLogin").click(function() {
						if (jQuery(this).is(":checked")) {
							var show = bugs.cookie.get('autoLogin');
							if (show != "Y") {
								bugs.layermenu.showClickLayer('.autoLoginAlert');
							}
						} else {
							jQuery('.autoLoginAlert').hide();
						}
				});

				$loginContainer.find('#loginClose').click(function(){
					$('.layer.loginV2').hide();
				});

				var _submitFunc = function() {

					if(bugs.valid.empty(id.val())) {
						$("#loginDesc").text("아이디를 입력해 주세요.");
						$(".validation").show();
						return false;
					}
					if(bugs.valid.empty(passwd.val())) {
						$("#loginDesc").text("비밀번호를 입력해 주세요.");
						$(".validation").show();
						return false;
					}

					//캡챠 창이 열려있으면 보안문자 체크를 하고 캡챠용 로그인을 태운다
					if($(".captcha").is(":visible")){
						if(bugs.valid.empty($("#inputCaptcha").val())) {
							$("#loginDesc").text("자동입력방지 문자를 입력해 주세요.");
							return false;
						}
					}

					var oDate = new Date();
					if (jQuery("#checkSaveId").is(":checked")) {
						oDate.setDate(oDate.getDate() + 30);
						bugs.cookie.set("saveId", id.val(), oDate, "/", "bugs.co.kr");
					}
					else {
						oDate.setDate(oDate.getDate() - 1);
						bugs.cookie.set("saveId", "", oDate, "/", "bugs.co.kr");
					}

					var longLoginYn = jQuery("#longLoginYn").is(":checked") ? "Y" : "N";

					var captcha_key = $("#key").val();
					var captcha_text = $("#inputCaptcha").val();

					//pushstate ie하위버전 rUrl 예외처리
					if ($.browser.msie && $.browser.version <= 9 && opt.rUrl.indexOf("hr#") > -1) {
						var rUrl = opt.rUrl.substring(opt.rUrl.indexOf("hr#"),opt.rUrl.legnth);
						opt.rUrl = rUrl.replace("hr#music",g_urlMusic).replace("hr#www",g_urlWww).replace("hr#secure",g_urlSecure).replace("hr#event",g_urlEvent);
					}

					if(!isXP){
						var objParams = {user_id : bugs.encryption.loginEncrypt(id.val()), passwd : bugs.encryption.loginEncrypt(passwd.val()),
								captcha : 'Y', key : captcha_key, capText : captcha_text, fr : 'jsonp', longLoginYn : longLoginYn, rUrl : opt.rUrl, encryptYn : bugs.encryption.isValidLoginEncrypt()};
					}else{
						var objParams = {user_id : bugs.encryption.loginEncrypt(id.val()), passwd : bugs.encryption.loginEncrypt(passwd.val()),
								fr : 'jsonp', longLoginYn : longLoginYn, rUrl : opt.rUrl, encryptYn : bugs.encryption.isValidLoginEncrypt()};
					}

					if (bugs.ui.turnstileManager && bugs.ui.turnstileManager.hasInstance(bugs.ui.turnstileId)) {
						const tsToken = bugs.ui.turnstileManager.getResponse(bugs.ui.turnstileId);
						if (tsToken && tsToken.length) {
							objParams['cf-turnstile-response'] = tsToken;
						} else {
							return false;
						}
					}

					jQuery.ajax({
						//type: 'POST',
						dataType : "jsonp",
						cache : false,
						url : g_urlMember + "/ajax/login",
						data: objParams,
						jsonp : "callback",
						success : function(rtnVal) {

							if ("OK" == rtnVal.code) {

								try {bugs.ui.pcLoginLog();} catch (e) {};

								location.href = bugs.valid.isNull(rtnVal.rUrl) ? g_urlBase : rtnVal.rUrl;
							} else {
								var retCd = "";
								switch (rtnVal.code) {
								case "VSTATC" :
								case "CHECK_NAME_SSN" :
									$("#loginDesc").text("잘못된 로그인 정보입니다.");
									break;
								case "PAUSE" :
									$("#loginDesc").text("아이디 또는 비밀번호를 확인해주세요.");
									break;
								case "ALREADY_LOGGED" :
									$("#loginDesc").text("이미 로그인 되어 있습니다.");
									break;
								case "NSUR" :
									$("#loginDesc").text("아이디 또는 비밀번호를 확인해주세요.");
									break;
								case "UNREGISTER" :
									$("#loginDesc").text("아이디 또는 비밀번호를 확인해주세요.");
									break;
								case "WPWD" :
									$("#loginDesc").text(rtnVal.loginMsg);
									break;
								case "FAIL_COUNT_CHECK" :
									$("#loginDesc").text("아이디 또는 비밀번호를 5회 이상 잘못 입력하셨습니다. 개인정보 보호를 위해 자동입력방지 문자를 입력해 주세요.");
									getCaptcha('img');
									if (bugs.ui.turnstileManager) bugs.ui.turnstileManager.destroy(bugs.ui.turnstileId);
									break;
								case "ABNORMAL_ENV" :
									$("#loginDesc").text("안전한 이용과 개인정보 보호를 위해 자동입력방지 문자를 입력해 주세요.");
									getCaptcha('img');
									if (bugs.ui.turnstileManager) bugs.ui.turnstileManager.destroy(bugs.ui.turnstileId);
									break;
								case "WRONG_ANSWER_ERROR" :
									$("#loginDesc").text("자동입력방지 문자를 다시 한 번 확인해 주세요.");
									break;
								case "EXPIRED_KEY_ERROR" :
									$("#loginDesc").text("입력 제한시간을 초과했습니다. 새 인증문자를 입력해 주세요.");
									getCaptcha('img');
									if (bugs.ui.turnstileManager) bugs.ui.turnstileManager.destroy(bugs.ui.turnstileId);
									break;
								case "SLEEP_USER" :
									$("#loginDesc").text("휴면 상태로 전환된 아이디입니다.");
									if (window.opener == null || window.opener == undefined) {
										location.href = g_urlSecure+ "/member/sleepIDRelease/guide/simple?userId="+ rtnVal.userId+"&msrl="+rtnVal.msrl;
									} else {
										$("#layerLoginClose").click();
										window.open(g_urlSecure+ "/member/sleepIDRelease/guide/simple?userId="+ rtnVal.userId+"&msrl="+rtnVal.msrl);
									}
									break;
								case "LEGAL_REPRESENTATIVE_CHECK" :
									location.href =	rtnVal.next_url;
									break;
								case "TEMP_PASS_USER" :
									location.href =	rtnVal.next_url;
									break;
								case "TEMP_PASS_EXPIRED" :
									$("#loginDesc").text("비밀번호가 만료되었습니다. 고객센터로 문의해주세요.");
									break;
								case "MAIL_AUTH_WAITING" :
									$("#loginDesc").text(rtnVal.message);
									break;
								case "INVALID_IP" :
									$("#loginDesc").text("비정상 로그인을 감지해 IP를 차단했습니다. 자세한 사항은 고객센터에 문의해 주세요.");
									break;
								case "GLOBAL_IP" :
									retCd = "GLOBAL_IP";
									var msg = "회원님은 해외 로그인 차단 기능을 설정하여<br>해외에서의 로그인이 제한됩니다.<br>만약 회원님 본인이 로그인하셨다면,<br>고객센터 1:1문의를 이용해주세요.";
									var popup = new bugs.ui.popup(msg, {title: "해외 로그인 차단", alertButtons : true, cancelButtons : false, closeButtons : true, css: "layerAbroadLoginBlock"});
									popup.show();
									break;
								case 'TCAPTCHA_FAIL':
									$("#loginDesc").text(rtnVal.message);
									break;
								default :
									$("#loginDesc").text("아이디 또는 비밀번호를 확인해주세요.");
									break;
								}

								// 서버에서 한번 검증한 순간 expired가 되기 때문에 리셋처리
								if (bugs.ui.turnstileManager) bugs.ui.turnstileManager.reset(bugs.ui.turnstileId);

								if (retCd != "GLOBAL_IP") {
									$(".validation").show();
								}
							}
						},
						error : function() {
							alert('error');
						}
					});

					//jQuery("#frmLoginLayer").submit();
				};

				popup.layer.find(".submit").click(_submitFunc);
				jQuery(passwd).keypress(function(event) {
					if (event.keyCode == '13') {
						_submitFunc();
						return false; //비프음 제거
					}
				});

				jQuery(id).keypress(function(event) {
					if (event.keyCode == '13') {
						_submitFunc();
						return false; //비프음 제거
					}
				});

				//웹플레이어에서 로그인 실패 후 자동으로 뜨는 로그인 레이어에서 링크 버튼(회원가입, 비번, id 찾기 클릭 시 새창으로 뜨도록 변경)
				if(location.href.indexOf("Player?trackId=") > -1 || location.href.indexOf("Player?mvId=") > -1 || location.href.indexOf("Radio?") > -1 || location.href.indexOf("pay/offlineCoupon/") > -1) {
					popup.layer.find('.addon a').attr('target','_blank');
				}



			},
			onHide: function() {
				if (bugs.ui.turnstileManager) bugs.ui.turnstileManager.destroy(bugs.ui.turnstileId);
			}
		}).show();

	}
	else {
		bugs.ui._loginLayer.layer.find("#rUrl").val(opt.rUrl);
		bugs.ui._loginLayer.show();
	}

	//jQuery("#user_id").focus();

	//실시간 스타방송 때문에 로그인 레이어가 플래시플레이어 뒤로 숨기때문에 플래시플레이어 레이어 숨김
	if(typeof castType != "undefined" && castType=="live"){
		hideVideoLayer();
	}
};



//header에서 사용되는 로그인 레이어
bugs.ui.showLoginLayerForHeader = function(option) {
	//CP로그인은 팝업으로 처리한다.
	try {
		var Dns = location.href;
		if (Dns.indexOf("game.bugs") != -1 || Dns.indexOf("shotonline.bugs") != -1) {
			bugs.ui.showLoginPopup();
			return;
		}
	} catch (e) {}

	var opt = bugs.overed({
		position : "header"
	}, option || {});

	bugs.ui.showLoginLayer(opt,'N');
};

bugs.ui.showLoginInfoLayerForHeader = function() {

	bugs.layermenu.removeOldLayer();

	if(bugs.ui._infoLayer && bugs.ui._infoLayer.layer.is(":visible")) {
		bugs.ui._infoLayer.hide();
	} else {
		bugs.ui._infoLayer = new bugs.ui.popup($('.afterLogin'), {title : "layerLoginInfo", position: "fix", modal : false, onOk : function(popup) {
		}}).show();
	}
};

bugs.ui.showLoginInfoLayerForMLMHeader = function() {

	bugs.layermenu.removeOldLayer();

	if(bugs.ui._infoLayer && bugs.ui._infoLayer.layer.is(":visible")) {
		bugs.ui._infoLayer.hide();
	} else {
		bugs.ui._infoLayer = new bugs.ui.popup($('.afterLogin'), {title : "layerLoginInfoMLM", position: "fix", modal : false, onOk : function(popup) {
		}}).show();
	}
};

// CP 에서 접근하는 로그인은 모두 팝업으로 처리한다.
bugs.ui.showLoginPopup = function(option) {
	var opt = bugs.overed({
		cp : "",
		rUrl : location.href
	}, option || {});

	jQuery.fn.popupWindow({
		url		: g_urlMusic + "/member/login/popup?cp=" + opt.cp + "&rUrl=" + encodeURIComponent(opt.rUrl) +"&decorator=popup",
		name	: "LoginPopup",
		width	: 358,
		height	: 278,
		center	: 1
	});
};

bugs.ui.alertAdultNotice = function() {
	var msg = "정보통신망 이용촉진 및 정보보호 <br />"+
				"등에 관한 법률 및 청소년 보호법에<br />"+
				"따라 19세 미만은 이용할 수 <br />"+
				"없습니다.";
	var _alert = new bugs.ui.showAlert(msg, {css : "layerAdultNotice"});
	_alert.show();
};

bugs.ui.alertHoldBackNotice = function(type) {
	var msg = "해당 "+(type=="mv" ? "뮤직비디오는" : "곡은")+" 음원 권리사의<br />"+
				"요청(홀드백)으로 발매 후 일정기간\n"+
				"1분 미리"+(type=="mv" ? "보기" : "듣기")+"만 가능합니다.";
	alert(msg);
//	var _alert = new bugs.ui.showAlert(msg, {css : "layerAdultNotice"});
	//_alert.show();
};

bugs.ui.alertFacebookCpNotice = function() {
	alert("Facebook 계정으로 이용할 수 없는 서비스입니다.");
	return;
};

bugs.ui.alertPmangPlusNotice = function() {
	var msg = '<p>피망플러스 계정으로 로그인 시,<br />선택하신 서비스는 이용이 불가능합니다.</p><div class="btnArea"><span class="button typeME"><a href="javascript:void(bugs.ui.modalLayer.hide());" type="ok">확인</a></span></div><div class="btnClose"><a href="#"><span>닫기</span></a></div>';
	var popup = new bugs.ui.popup(msg, { css : "layerFbServiceNot"});
	popup.show();
};

//----- clipboard 카피 버튼 -----------------------------------------------------------------------------------------------------------//
bugs.ui.clipboardButtonManager = {
	id : 1,

	buttons : {},

	getUniqueId : function() {
		return bugs.ui.clipboardButtonManager.id++;
	},

	handleEvent : function(event, id) {
		if(this.buttons[id]) this.buttons[id].handleEvent(event);
	}
};

bugs.ui.clipboardButton = bugs.create();
bugs.ui.clipboardButton.prototype = {
	containerId : "BugsClipboardUtilContainer",

	id : 0,

	initialize : function(selector, option) {
		this.id = bugs.ui.clipboardButtonManager.getUniqueId();
		bugs.ui.clipboardButtonManager.buttons[this.id] = this;

		this.button = jQuery(selector).mouseover(this.reposition.bind(this));
		this.option = bugs.overed({
			copyData : "",
			addClass : "",
			zIndex : 100,
			onComplete : function() {}
		}, option || {});

		if(jQuery("#" + this.containerId).length > 0) {
			this.container = jQuery("#" + this.containerId);
			this.swf = jQuery("#BugsClipboardUtil")[0];
			if(this.swf.tagName == "DIV") this.swf = null;
		}
		else {
			// firefox에서는 일단 화면에 플래쉬가 보여야 ExternalInterface.addCallback()이 되기 때문에
			// 일단 화면에 보이게끔 scrollTop으로 container를 생성함
			var top = jQuery(document).scrollTop();
			this.container = jQuery("<div id=\"" + this.containerId + "\"><div id=\"BugsClipboardUtil\"></div></div>").appendTo("body").css({position : "absolute", width : 10, height : 10, top : top, "z-index" : this.option.zIndex});

			var flashvars = {
				id : this.id,
				copyData : this.option.copyData,
				eventHandler : "bugs.ui.clipboardButtonManager.handleEvent"
			};

			var params = {
				wmode : "transparent",
				allowScriptAccess : "always"
			};

			var attr = {
				id : "BugsClipboardUtil"
			};

			swfobject.embedSWF(g_urlSwf + "/BugsClipboardUtil.swf", "BugsClipboardUtil", "100%", "100%", "9.0.0", "expressInstall.swf", flashvars, params, attr, function(e) {
				if(e.success) this.swf = e.ref;
			}.bind(this));
		}
	},

	reposition : function() {
		if(!this.swf) {
			var swf = jQuery("#BugsClipboardUtil")[0];
			if(!swf || swf.tagName == "DIV") return false;

			this.swf = swf;
		}

		var offset = this.button.offset();
		var width = this.button.outerWidth();
		var height = this.button.outerHeight();

		this.container.offset(offset).width(width).height(height);
		if(this.swf.setId) {
			this.swf.setId(this.id);
			this.swf.setCopyData(this.option.copyData);
		}
	},

	setCopyData : function(copyData) {
		this.option.copyData = copyData;

		if(!this.swf) {
			var swf = jQuery("#BugsClipboardUtil")[0];
			if(!swf || swf.tagName == "DIV") return false;

			this.swf = swf;
		}

		if(this.swf.setCopyData)
			this.swf.setCopyData(this.option.copyData);
	},

	handleEvent : function(e) {
		//alert(e);
		switch(e) {
			case "mouseOver" :
				this.button.addClass(this.option.addClass);
				break;
			case "mouseOut" :
				this.button.removeClass(this.option.addClass);
				break;
			case "complete" :
				this.option.onComplete();
				break;
			case "mouseDown" :
				break;
			case "mouseUp" :
				break;
		}
	}
};
//-----------------------------------------------------------------------------

//----------------------------------------------------------------------------------- 여기부터 19세 성인인증 커스텀레이어 --------------------------------------
bugs.ui.adult = {
	popup : null,
	certTid : null,
	remainTime : 0,
	reloadFunction : null,

	limit : function() {
		alert("19세 미만은 이용할 수 없습니다.");
		return;
	},


	notice : function(callBack) {
		


		if(typeof callBack == "function"){
			bugs.ui.adult.reloadFunction = callBack;
		}

		if(!bugs.useragent.isMobile()) {
			bugs.ui.adult.beforeNotice();
		} else { // mobile

			bugs.ui.adult.openkcp();

		}
	},

	openkcp : function() {

		var width  = 410;
		var height = 500;

		var leftpos = screen.width  / 2 - ( width  / 2 );
		var toppos  = screen.height / 2 - ( height / 2 );

		var winopts  = "width=" + width   + ", height=" + height + ", toolbar=no,status=no,statusbar=no,menubar=no,scrollbars=no,resizable=no";
		var position = ",left=" + leftpos + ", top="    + toppos;

		if(bugs.app != null && bugs.app.isBugsApp()){
			alert("19세 미만은 이용할 수 없습니다.\n여성가족부의 정책에 따라 성인 인증 후 이용해 주세요.");
		} else {
			window.open(g_urlMember + '/kcpCertificationRequest?returnUri='+encodeURIComponent(location.href),'auth_popup', winopts + position);
		}
	},

	
	openkcpForBside : function(self) {
		var width  = 410;
		var height = 500;

		var leftpos = screen.width  / 2 - ( width  / 2 );
		var toppos  = screen.height / 2 - ( height / 2 );

		var winopts  = "width=" + width   + ", height=" + height + ", toolbar=no,status=no,statusbar=no,menubar=no,scrollbars=no,resizable=no";
		var position = ",left=" + leftpos + ", top="    + toppos;

		if(self){ // 유저정보 업데이트하지 않고, 본인인증
			window.open('https://secure.bugs.co.kr/member/kcpCertificationRequest?type=bside&self_base=N&returnUri='+encodeURIComponent(location.href),'auth_popup', winopts + position);
		}else{ // 유저정보 업데이트 함
			window.open('https://secure.bugs.co.kr/member/kcpCertificationRequest?type=bside&returnUri='+encodeURIComponent(location.href),'auth_popup', winopts + position);
		}
	},

	openkcpForSelfCheck : function() {

		var width  = 410;
		var height = 500;

		var leftpos = screen.width  / 2 - ( width  / 2 );
		var toppos  = screen.height / 2 - ( height / 2 );

		var winopts  = "width=" + width   + ", height=" + height + ", toolbar=no,status=no,statusbar=no,menubar=no,scrollbars=no,resizable=no";
		var position = ",left=" + leftpos + ", top="    + toppos;

		if(bugs.app.isBugsApp()){
			alert("19세 미만은 이용할 수 없습니다.\n여성가족부의 정책에 따라 성인 인증 후 이용해 주세요.");
		} else {
			window.open(g_urlMember + '/kcpCertificationRequest?type=certification&returnUri='+encodeURIComponent(location.href),'auth_popup', winopts + position);
		}
	},

	beforeNotice : function() {
		var msg = "<aside class=\"layer layerCertificationGuide title\" style=\"display:block;top:1120px;left:920px;\">"
			+"<div class=\"box-shadow\"></div>"

			+"<header class=\"layer-title\">"
				+"<h1>성인 인증 안내</h1>"
				+"</header>"

				+"<section class=\"layerContents\">"
				+"<span class=\"bgIcon\"></span>"
				+"<p class=\"desc\">"
				+"이 콘텐츠는 청소년유해매체물로서 정보통신망 이용촉진 및<br />"
				+"	정보보호 등에 관한 법률 및 청소년 보호법에 따라<br />"
				+"	19세 미만은 이용할 수 없습니다.<br />"
				+"	여성가족부의 정책에 따라 성인 인증 후 이용해 주세요."
				+"</p>"

				+"<p class=\"btns\">"
				+"	<strong>1년에 한 번, 확인해주세요.</strong>"
				+"	<button class=\"btnNormal strong\" id=\"btnOpenCert\">성인 인증 하기</button>"
				+"</p>"
				+"</section>"

				+"<button class=\"btnClose\" id=\"btnClose\">닫기</button>"
				+"</aside>";

		var title = "성인 인증 안내";
		var adultLayerCss = "layer layerCertificationGuide title";
		var isModal = true;


		var adultLayer = new bugs.ui.popup(msg, {title : "adult", modal : isModal, css : adultLayerCss, onInit : function(popup) {

			// 레이어 창 메세지 변경
			popup.setTitle(title);


			//닫기버튼
			popup.layer.find("#btnCancel, #btnClose, #cancelBtnNormal").click(function(e) {

				try {
					var Dns = location.href;
					if (Dns.indexOf("popup/certification") != -1) {
						self.close();
						return;
					}
				} catch (e) {}

				bugs.ui.modalLayer.hide();
				popup.layer.hide();

				try{
					bugs.layerFocusNavi.remove(this.layer);
				}catch(e){};
			}.bind(this));


			//인증하러 가기 버튼
			popup.layer.find("#btnOpenCert").click(function(e) {

				try {
					bugs.ui.adult.openkcp();

				} catch (e) {}

				bugs.ui.modalLayer.hide();
				popup.layer.hide();

				try{
					bugs.layerFocusNavi.remove(this.layer);
				}catch(e){};
			}.bind(this));

		}}).show();
	},

	getObjParams : function(popup) {

		if (bugs.valid.isNull(popup)) return null;

		var objParams = {
				phoneNo1			: jQuery.trim(popup.layer.find("#phoneNo1").val()),
				phoneNo2			: jQuery.trim(popup.layer.find("#phoneNo2").val()),
				phoneNo3			: jQuery.trim(popup.layer.find("#phoneNo3").val()),
				phoneNo				: "",

				phoneCorp			: jQuery.trim(popup.layer.find("input[name=phoneCorp]:checked").val()),

				birthDateYear		: jQuery.trim(popup.layer.find("#birthDateYear").val()),
				birthDateMonth		: jQuery.trim(popup.layer.find("#birthDateMonth").val()),
				birthDateDay		: jQuery.trim(popup.layer.find("#birthDateDay").val()),

				gender				: jQuery.trim(popup.layer.find("input[name=gender]:checked").val()),
				nation				: jQuery.trim(popup.layer.find("input[name=nation]:checked").val()),
				name				: jQuery.trim(popup.layer.find("#name").val()),
				smsNum				: jQuery.trim(popup.layer.find("#smsNum").val()),
				certAgreePrivate	: (popup.layer.find("input[name=certAgreePrivate]").is(":checked")) ? "Y" : "N",
				certAgreeIdentity	: "Y", //2014.09.17 성인인증동의항목 변경(웹)으로 인한 변수값 고정, 모바일 등은 변경이 안되었기때문에 웹에서만 고정

				reSend				: jQuery.trim(popup.layer.find("input[name=reSend]").val()),
				check_1				: jQuery.trim(popup.layer.find("input[name=check_1]").val()),
				check_2				: jQuery.trim(popup.layer.find("input[name=check_2]").val()),
				check_3				: jQuery.trim(popup.layer.find("input[name=check_3]").val()),
				CI					: jQuery.trim(popup.layer.find("input[name=CI]").val()),
				DI					: jQuery.trim(popup.layer.find("input[name=DI]").val()),
				type				: ""
			};

		objParams.phoneNo 	= objParams.phoneNo1 + objParams.phoneNo2 + objParams.phoneNo3;

		return objParams;
	},

	checkParams : function(popup, objParams) {

		if (bugs.valid.isNull(popup) || bugs.valid.isNull(objParams)) {
			alert("잘못된 접근입니다.");
			return false;
		}

		if (bugs.valid.isNull(objParams.name)) {
			alert("이름을 입력해 주세요.");
			return false;
		}

		if (bugs.valid.isNull(objParams.phoneNo1)) {
			alert("휴대폰 앞자리를 입력해 주세요.");
			return false;
		}

		if (bugs.valid.isNull(objParams.phoneNo2)) {
			alert("휴대폰 가운데 자리를 입력해 주세요.");
			return false;
		}

		if (bugs.valid.isNull(objParams.phoneNo3)) {
			alert("휴대폰 마지막 자리를 입력해 주세요.");
			return false;
		}

		if (!bugs.valid.num(objParams.phoneNo)) {
			alert("휴대폰 번호는 숫자만 입력할 수 있습니다.");
			return false;
		}

		if (bugs.valid.isNull(objParams.phoneCorp)) {
			alert("이동통신사를 선택해 주세요.");
			return false;
		}

		if (bugs.valid.isNull(objParams.birthDateYear)) {
			alert("생년월일을 선택해 주세요.");
			return false;
		}

		if (bugs.valid.isNull(objParams.birthDateMonth)) {
			alert("생년월일을 선택해 주세요.");
			return false;
		}

		if (bugs.valid.isNull(objParams.birthDateDay)) {
			alert("생년월일을 선택해 주세요.");
			return false;
		}

		if (bugs.valid.isNull(objParams.gender)) {
			alert("성별을 선택해 주세요.");
			return false;
		}

		if (bugs.valid.isNull(objParams.nation)) {
			alert("국적을 선택해 주세요.");
			return false;
		}

		if ("Y" != objParams.certAgreePrivate) {
			alert("개인정보 이용 및 활용에 동의해 주세요.");
			return false;
		}

		return true;

	},

	showCountdown : function(popup, timeToExpiration, reStart) {
		if (reStart != "") clearInterval(this.certTid);

		bugs.ui.adult.remainTime = timeToExpiration - 1;

		if (bugs.ui.adult.remainTime >= -1 ) {
			var day  = Math.floor(timeToExpiration / (3600 * 24));
			var mod  = timeToExpiration % (24 * 3600);
			var hour = Math.floor(mod / 3600);
			var mod  = mod % 3600;
			var min  = Math.floor(mod / 60);
			var sec  = mod % 60;

			popup.layer.find("#countDown").text(min + "분 " + sec + "초");
			if ( bugs.ui.adult.remainTime == -1 ) {
				//popup.layer.find("input, select").attr("disabled", "");
			}
			else {
				if (popup.layer.find("#authScene").is(":visible") == true) {
					this.certTid = setTimeout(function() {
						bugs.ui.adult.showCountdown(popup, bugs.ui.adult.remainTime, "");
					}, 1000);  // will work with every browser
				}
			}
		}
	},

	initData : function(popup) {
		// 데이터 초기화
		popup.layer.find("input[name=check_1]").val("");
		popup.layer.find("input[name=check_2]").val("");
		popup.layer.find("input[name=check_3]").val("");
		popup.layer.find("input[name=CI]").val("");
		popup.layer.find("input[name=DI]").val("");
	},

	initScene : function(popup) {
		// 화면정리
		popup.layer.find("fieldset:eq(0) p.telMsg").empty().hide();

		popup.layer.find("#requestScene").show();
		popup.layer.find("#authScene").hide();

		popup.layer.find("#reqSmsNum").show();
		popup.layer.find("#authSmsNum").hide();

		popup.layer.find("input, select").attr("disabled", false);
	},

	error : function(popup, msg) {
		popup.layer.find("fieldset:eq(0) p.telMsg").empty().html(msg).show();
	},

	popupTerms : function(type) {

		// 고유식별정보 처리 동의 팝업 identity
		if ("identity" == type) {
			var popUp = window.open("https://www.kmcert.com/kmcis/comm/kmcisHpDiscrAgreePop.html", "kmcisHpDiscrAgreePop", "width=445,height=550,toolbar=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0");
			popUp.focus();
		}
		// 개인정보 수집/이용 팝업 private
		else if("private" == type){
			var popUp = window.open(g_urlMusic+"/member/pop/adultPrivate?decorator=popup", "kmcPrivateAgreePop", "width=400,height=263,toolbar=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0");
			popUp.focus();
		}
		// 취급위탁 consignment
		else {
			var popUp = window.open(g_urlMusic + "/member/pop/adultKMC?decorator=popup", "kmcPop", "width=442,height=400,toolbar=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0");
			popUp.focus();
		}

	},

	// type : age, game
	check : function(type) {

		try {
			var Dns = location.href;
			if (Dns.indexOf("game.bugs") != -1) {
				window.open(g_urlMusic + "/popup/certification?decorator=popup", 'certification','top=10, left=10, width=490, height=510, toolbar=0, directories=0, status=0, menubar=0, scrollbars=0, resizable=0');
				return;
			}
		} catch (e) {}

		var title = "";
		var comments = "";
		var className = "";

		if ("age" == type) {
			title 		= "벅스 성인인증";
			comments 	= "이 정보내용은 청소년유해매체물로서 정보통신망 이용촉진 및 정보보호등에 관한 법률 및 청소년보호법에 따라 19세 미만은 이용할 수 없으며 여성가족부의 가이드라인에 따라 성인인증 절차를 거쳐야 합니다.<a class=\"more\" href="+g_urlMusic+"/board/notice?notice_tp=0&srl=7026 target='_blank'>자세히 보기</a>";
			className	= "desc adult";
		}
		else if ("game" == type) {
			title 		= "본인 확인";
			comments 	= "게임 채널링 서비스 이용을 위해 본인확인 절차를 거쳐야 합니다.";
			className 	= "desc";
		}
		else if ("musicpd" == type) {
			title 		= "본인 확인";
			comments 	= "뮤직 PD 서비스 이용을 위해 본인확인 절차를 거쳐야 합니다.";
			className 	= "desc";
		}
		else {
			title 		= "본인 확인";
			comments 	= "회원님의 원할한 서비스 이용을 위해 본인확인 절차를 거쳐야 합니다.";
			className 	= "desc";
		}

			msg ="<aside class=\"layer layerCertification title\" style=\"display:block;top:50px;left:920px;\">"+
					"	<div class=\"box-shadow\"></div>"+
					"	<header class=\"layer-title\">"+
					"		<h1>"+title+ "</h1>		"+
					"	</header>"+
					"	<input type=\"hidden\" name=\"reSend\" value=\"\" />" +
					"	<input type=\"hidden\" name=\"check_1\" value=\"\" />" +
					"	<input type=\"hidden\" name=\"check_2\" value=\"\" />" +
					"	<input type=\"hidden\" name=\"check_3\" value=\"\" />" +
					"	<input type=\"hidden\" name=\"CI\" value=\"\" />" +
					"	<input type=\"hidden\" name=\"DI\" value=\"\" />" +
					"	<section class=\"layerContents\">" +
					"		<div class=\"" +className+ "\">" +
					"			<p class=\"text\">"+comments+ "</p>"+
					"		</div>"+
					"		<div class=\"inputCertInfo\" id=\"requestScene\">"+
					"		<fieldset>"+
					"			<legend>인증 정보 입력</legend>"+
					"			<ul>"+
					"				<li class=\"inputName\">"+
					"					<label>이름</label>"+
					"					<span class=\"inputarea\"><input type=\"text\" id=\"name\"/></span>"+
					"				</li>"+
					"				<li class=\"inputPhoneNum\">"+
					"					<label>휴대폰 번호</label>"+
					"					<span class=\"inputarea\">"+
					"						<select name=\"phoneNo1\" id=\"phoneNo1\">"+
					"							<option value=\"010\" selected=\"selected\">010</option>" +
					"							<option value=\"011\">011</option>" +
					"							<option value=\"016\">016</option>" +
					"							<option value=\"017\">017</option>" +
					"							<option value=\"018\">018</option>" +
					"							<option value=\"019\">019</option>" +
					"						</select>"+
					"						<span>-</span>"+
					"						<input type=\"text\" id=\"phoneNo2\" name=\"phoneNo2\"/>"+
					"						<span>-</span>"+
					"						<input type=\"text\" id=\"phoneNo3\" name=\"phoneNo3\" />"+
					"					</span>"+
					"				</li>"+
					"				<li class=\"inputCompany\">"+
					"					<label>이동통신사</label>"+
					"					<span class=\"inputarea\">"+
					"						<input type=\"radio\" id=\"phoneCorp_SKT\" name=\"phoneCorp\" value=\"SKT\" class=\"radio\" checked=\"checked\" /> <label for=\"phoneCorp_SKT\">SKT</label>"+
					"						<input type=\"radio\" id=\"phoneCorp_KTF\" name=\"phoneCorp\" value=\"KTF\" class=\"radio\" /> <label for=\"phoneCorp_KTF\">KT</label>"+
					"						<input type=\"radio\" id=\"phoneCorp_LGT\" name=\"phoneCorp\" value=\"LGT\" class=\"radio\" /> <label for=\"phoneCorp_LGT\">LGT</label>"+
					"					</span>"+
					"				</li>"+
					"				<li class=\"inputBirth\">"+
					"					<label>생년월일</label>"+
					"					<span class=\"inputarea\">"+
					"						<select name=\"birthDateYear\" id=\"birthDateYear\">"+
					"						</select>"+
					"						<select name=\"birthDateMonth\" id=\"birthDateMonth\">"+
					"						</select>"+
					"						<select name=\"birthDateDay\" id=\"birthDateDay\">"+
					"						</select>"+
					"					</span>"+
					"				</li>"+
					"				<li class=\"inputGender\">"+
					"					<label>성별</label>"+
					"					<span class=\"inputarea\">"+
					"						<input type=\"radio\" name=\"gender\" id=\"male\"  value=\"0\" class=\"radio\" checked=\"checked\" /> <label for=\"male\">남</label>"+
					"						<input type=\"radio\" name=\"gender\" id=\"feamle\"  value=\"1\" class=\"radio\" /> <label for=\"feamle\">여</label>"+
					"					</span>"+
					"				</li>"+
					"				<li class=\"inputNationality\">"+
					"					<label>국적</label>"+
					"					<span class=\"inputarea\">"+
					"						<input type=\"radio\" id=\"native\" name=\"nation\"  value=\"0\" class=\"radio\" checked=\"checked\" /> <label for=\"native\">내국인</label>"+
					"						<input type=\"radio\" id=\"foreigner\" name=\"nation\"  value=\"1\" class=\"radio\" /> <label for=\"foreigner\">외국인</label>"+
					"					</span>"+
					"				</li>"+
					"			</ul>"+
					"			<p class=\"agreeChk\">"+
					"				<input type=\"checkbox\" id=\"certAgreePrivate\" name=\"certAgreePrivate\" value=\"Y\" />"+
					"				<label for=\"agreeChk\"><a href=\"javascript:bugs.ui.adult.popupTerms('private');\">개인정보 수집/이용</a>에 동의합니다.</label>"+
					"			</p>"+
					"		</fieldset>"+
					"		<p class=\"btns\">"+
					"			<button id=\"reqSmsNum\" class=\"btnNormal strong\">인증번호 요청</button>"+
					"			<button id=\"btnCancel\"class=\"btnNormal\">취소</button>"+
					"		</p>"+
					"		</div>"+
					"		<div class=\"inputCertNumber\" id=\"authScene\" style=\"display:none;\">"+
					"			<strong class=\"inputCertMessage\"><span id=\"showPhoneNo\"></span>로 발송된 인증번호 6자리를 입력해 주세요</strong>"+
					"			<fieldset>"+
					"				<legend>인증번호입력</legend>"+
					"				"+
					"				<div class=\"inputNum\">"+
					"					<label>인증번호</label>"+
					"					<span class=\"inputarea\"><input type=\"text\" id=\"smsNum\" name=\"smsNum\" maxLength=\"6\" />"+
					"						<span>남은 시간 <em id=\"countDown\">2분 54초</em> 이내에 입력해 주세요.</span>"+
					"					</span>"+
					"				</div>"+
					"				<p class=\"recheck\" id=\"reSendSmsNum\">"+
					"					인증번호를 받지 못하셨다면 <a href=\"javascript:void(0);\">인증번호 다시받기</a>"+
					"				</p>"+
					"			</fieldset>"+
					"			<p class=\"btns\">"+
					"				<button id=\"authSmsNum\" class=\"btnNormal strong\">인증확인</button>"+
					"				<button class=\"btnNormal\" id=\"cancelBtnNormal\">취소</button>"+
					"			</p>"+
					"		</div>"+


					"	</section>"+
					"	<button id=\"btnClose\" class=\"btnClose\">닫기</button>"+
					"</aside>";

		var adultLayerCss = "layer layerCertification title";
		var isModal = true;

		if (location.href.indexOf("Radio?") > -1 || location.href.indexOf("Player?") > -1) {
			adultLayerCss = "layer layerCertification title player";
			isModal = false;
		}

		var adultLayer = new bugs.ui.popup(msg, {title : "adult", modal : isModal, css : adultLayerCss, onInit : function(popup) {

			// 레이어 창 메세지 변경
			popup.setTitle(title);

			// 초기화
			bugs.ui.adult.initData(popup);
			bugs.ui.adult.initScene(popup);

			var t = new Date();
			var yy = t.getFullYear();

			var optionDateYear = "<option value=\"\">년</option>";
			for (var i=yy; i>=1900; i--) {
				optionDateYear += "<option value=\"" + i + "\">" + i + "</option>";
			}

			var optionDateMonth = "<option value=\"\">월</option>";
			for (var i=1; i<=12; i++) {
				optionDateMonth += "<option value=\"" + i + "\">" + i + "</option>";
			}

			var optionDateDay = "<option value=\"\">일</option>";
			for (var i=1; i<=31; i++) {
				optionDateDay += "<option value=\"" + i + "\">" + i + "</option>";
			}

			popup.layer.find("select[name=birthDateYear]").append(optionDateYear);
			popup.layer.find("select[name=birthDateMonth]").append(optionDateMonth);
			popup.layer.find("select[name=birthDateDay]").append(optionDateDay);

			//닫기버튼
			popup.layer.find("#btnCancel, #btnClose, #cancelBtnNormal").click(function(e) {

				try {
					var Dns = location.href;
					if (Dns.indexOf("popup/certification") != -1) {
						self.close();
						return;
					}
				} catch (e) {}

				bugs.ui.modalLayer.hide();
				popup.layer.hide();

				try{
					bugs.layerFocusNavi.remove(this.layer);
				}catch(e){};
			}.bind(this));

			// 인증번호 받기
			popup.layer.find("#reqSmsNum, #reSendSmsNum a").click(function(e) {

				// 재전송 구분
				if (!bugs.valid.isNull(jQuery(e.currentTarget).attr("data-reSend"))) {
					popup.layer.find("input[name=reSend]").val(jQuery(e.currentTarget).attr("data-reSend"));
				}

				var objParams = bugs.ui.adult.getObjParams(popup);

				objParams.type = type;

				if (bugs.ui.adult.checkParams(popup, objParams)) {

					// 인증번호 요청
					jQuery.ajax({
						type: 'GET',
						dataType : "jsonp",
						cache : false,
						url : g_urlMember + "/cert/request/key?callback=?",
						data: objParams,
						success : function(rtnVal) {

							if (rtnVal.code == "OK") {

								// 전달 데이터 입력
								if (!bugs.valid.isNull(rtnVal.data)) {
									popup.layer.find("input[name=check_1]").val(rtnVal.data.check_1);
									popup.layer.find("input[name=check_2]").val(rtnVal.data.check_2);
									popup.layer.find("input[name=check_3]").val(rtnVal.data.check_3);
									popup.layer.find("input[name=CI]").val(rtnVal.data.CI);
									popup.layer.find("input[name=DI]").val(rtnVal.data.DI);

									// 모든 입력창 딤드 처리
									//popup.layer.find("input, select").not("input[name=smsNum]").attr("disabled", "disabled");
									popup.layer.find("input[name=smsNum]").focus();

									// 화면정리
									popup.layer.find("fieldset:eq(0) p.telMsg").empty().hide();

									popup.layer.find("#requestScene").hide();
									popup.layer.find("#authScene").show();

									popup.layer.find("#reqSmsNum").hide();
									popup.layer.find("#authSmsNum").show();

									// 정보표시
									popup.layer.find("#showPhoneNo").text(objParams.phoneNo);
									popup.layer.find("#smsNum").focus();

									// 카운트
									if ("Y" == objParams.reSend) {
										bugs.ui.adult.showCountdown(popup, 180, "reStart");
									}
									else {
										bugs.ui.adult.showCountdown(popup, 180, "");
									}
								}
								else {

									alert("본인인증 정보를 확인할 수 없습니다.");
									return;

								}
							}
							else {
								alert(rtnVal.message);
								return;
							}
						},
						error : function() {
							alert("본인확인하지 못했습니다. 다시 시도해 주세요.");
							return;
						}
					});
				}
			});

			//인증확인 버튼
			popup.layer.find("#authSmsNum").click(function(e) {

				// 제한시간 확인
				if ( bugs.ui.adult.remainTime == -1 ) {
					alert('입력 제한시간을 초과했습니다.\n인증번호 다시 받기를 선택해 주세요.');
					return false;
				}

				var objParams = bugs.ui.adult.getObjParams(popup);

				objParams.type = type;

				if (bugs.ui.adult.checkParams(popup, objParams)) {

					if (bugs.valid.isNull(objParams.smsNum)) {
						alert('인증번호를 입력해 주세요.');
						return false;
					}

					if (objParams.smsNum.length != 6) {
						alert('인증번호 6자리를 정확하게 입력해 주세요.');
						return false;
					}

					if (bugs.valid.isNull(objParams.check_1) || bugs.valid.isNull(objParams.check_2) || bugs.valid.isNull(objParams.check_3)) {
						alert('인증번호 전송 후 이용해 주세요.');
						return false;
					}

					jQuery.ajax({
						type: 'GET',
						dataType : "jsonp",
						cache : false,
						url : g_urlMember + "/cert/auth/key?callback=?",
						data: objParams,
						success : function(rtnVal) {
							if (rtnVal.code == "OK") {
								if (rtnVal.data < 19 && "age" == type) {
									var msg = 	"19세 미만은 이용할 수 없습니다.";
									alert(msg);
									return;
								}
								else {

									try {
										var Dns = location.href;
										if (Dns.indexOf("popup/certification") != -1) {
											opener.location.reload();
											self.close();
											return;
										}
									} catch (e) {}

									if(bugs.ui.adult.reloadFunction != null && typeof bugs.ui.adult.reloadFunction == "function"){
										bugs.ui.adult.reloadFunction();
										return;
									}
									location.reload();
								}
							}
							else {
								alert(rtnVal.message);
								return;
							}
						},
						error : function() {
							alert(title + "에 실패하였습니다. 본인확인 정보를 다시 입력해 주세요.");
							return;
						}
					});

				}

			});

		}}).show();

	},

	nullTmp : {}
};

bugs.ui.popupClick = function(e) {
	var layerObj = $(e.data.obj);
	var target = $( e.target );
	var targetClass = target.parents('aside').attr('class');
	var targetClass2 = target.parents('div#loginHeader').attr('class');


	if (!(!bugs.valid.isNull(targetClass2) && targetClass2.indexOf("login") >= 0)
		&& (bugs.valid.isNull(targetClass) || targetClass.indexOf("layer") < 0)) {

		layerObj.hide();
		bugs.layerFocusNavi.remove(layerObj);
		$(document).unbind("click", bugs.ui.popupClick);

		var tClass = target.parent('div').attr('class');

		if (tClass == "login" || (!bugs.valid.isNull(tClass) && tClass.indexOf("myinfo") != -1) ) {
			if(!e) var e = window.event;
			e.cancelBubble = true;
			e.returnValue = false;
			if ( e.stopPropagation ) e.stopPropagation();
			if ( e.preventDefault ) e.preventDefault();
		}

	}

};

bugs.ui.setLayCtrl = function(selector){
	$(selector).attr("layCtrl", "Y");
	$(document).on("mouseup", bugs.ui.offLayCtrl);
};

bugs.ui.offLayCtrl = function(){
	$("[layCtrl]").hide();
	$("[layCtrl]").removeAttr("layCtrl");
	$(document).off("mouseup", bugs.ui.offLayCtrl);
};

bugs.ui.cp = {
	headerGameMenuToggle : function() {
		$('.layer.gameMenu').toggle();
		bugs.wiselog.area('M_header_02_02');
		bugs.ui.setLayCtrl('.layer.gameMenu');
	},
	footerFamilySiteMenu : function() {
		$('.layer.familysiteMenu').toggle();
		bugs.wiselog.area('M_fotter_03_01');
		bugs.ui.setLayCtrl('.layer.familysiteMenu');
	}
};

bugs.ui.pcLoginLog = function() {

	try {

		//Pc 정보 추출
		var f_ver = swfobject.getFlashPlayerVersion();
		var browserName;	//브라우저명
		var browserVer;		//브라우저 버전
		var browserLang;		//브라우저 언어
		var browserResolution;	//해상도
		var browserWidth;	//최대 가로길이
		var browserHeight;	//최대 세로길이
		var browserOS="Win";	//OS종류
		var browserFlashVer;	//flash버전

		browserWidth = 0;		// 초기화
		browserHeight = 0;		// 초기화


		if ( (navigator.appName == 'Netscape' && navigator.userAgent.search('Trident') != -1) ) {

			browserName = "msie";
			browserVer = '11.0';

		} else if ( (navigator.userAgent.indexOf("msie") != -1) ) {

			browserName = "msie";
			browserVer = navigator.appVersion.match(/MSIE \d+.\d+/)[0].split(" ")[1];

		} else if ( (navigator.userAgent.indexOf("Whale") != -1) ) {

			browserName = "whale";
			browserVer = jQuery.browser.version;

		} else if ( (navigator.userAgent.indexOf("Edg") != -1) ) {

			browserName = "edg";
			browserVer = jQuery.browser.version;

		} else {

			try {
				browserName = jQuery.browser.name;
				browserVer = jQuery.browser.version;
			} catch (e) {
				browserName = 'unknown';
				browserVer = "1";
			}

			if (navigator.userAgent.match(/Edge/i)) {
				browserName = 'Edge';
				browserVer = browserVer = '12.0';
			}

		}


		if (navigator.userAgent.indexOf('Mac') != -1) {
			browserOS = "Mac";
		} else {
			if (navigator.appVersion.indexOf("NT 5.1")!=-1) browserOS="WinXP";
			if (navigator.appVersion.indexOf("NT 6.0")!=-1) browserOS="WinVista";
			if (navigator.appVersion.indexOf("NT 6.1")!=-1) browserOS="Win7";
			if (navigator.appVersion.indexOf("NT 6.2")!=-1) browserOS="Win8";
			if (navigator.appVersion.indexOf("NT 10")!=-1) browserOS="Win10";
		}

		browserLang = navigator.browserLanguage;
		browserResolution = screen.width+" x "+screen.height;
		browserWidth = screen.availWidth;
		browserHeight = screen.availHeight;
		browserFlashVer = f_ver.major+"."+f_ver.minor+"."+f_ver.release;
		if(browserWidth==null || browserHeight==null){
			browserWidth = 0;
			browserHeight = 0;
		}
		if(browserWidth=="" || browserHeight==""){
			browserWidth = 0;
			browserHeight = 0;
		}

		objParams = {
				browserName: browserName.toLowerCase(),
				browserVer: browserVer,
				browserLang: browserLang,
				browserResolution: browserResolution,
				browserWidth: browserWidth,
				browserHeight: browserHeight,
				browserOS: browserOS,
				browserFlashVer: browserFlashVer,
				decorator : "blank"
			};


		jQuery.post(
				g_urlAjax+"/logging/pcLogInsert",
			objParams,
			function(response) {
				//location.href=g_urlMusic+"/index/";
			}
		);

	} catch(e){}
};

bugs.ui.showPlayerSettingLayer = function() {
	// 보여지는 공통 레이어 모두 닫기
	bugs.layermenu.removeOldLayer();

	// 쿠키에서 정보 가져오기
	var selectedPlayer = bugs.cookie.get('defaultPlayer') || "";

	if(selectedPlayer == "" || selectedPlayer == "WEB") {
		$('input:radio[name=radio_player_type1]:input[value=WEB]').attr("checked", true);
	} else {
		$('input:radio[name=radio_player_type1]:input[value=MAC]').attr("checked", true);
	}

	if(bugs.ui._playerSettingLayer && bugs.ui._playerSettingLayer.layer.is(":visible")) {
		bugs.ui._playerSettingLayer.hide();
	} else {
		bugs.ui._playerSettingLayer = new bugs.ui.popup($('.layerSettingPlayer.selectPlayer'), {
			title : "layerSettingPlayer.selectPlayer",
			modal : true,
			onInit : function(popup) {
				popup.layer.find("button.btnNormal").unbind("click").click(function() {
					var rpt = $(":input:radio[name=radio_player_type1]:checked").val();
					var oDate = new Date();
					oDate.setDate(oDate.getDate()+365);
					bugs.cookie.set("defaultPlayer", rpt, oDate, "/", "bugs.co.kr");
					if(typeof updateHeaderPlayerMenu == "function")
						updateHeaderPlayerMenu(rpt);

					if(rpt == "WEB") {
						bugs.wiselog.area('player_Header_01');
					} else {	// rtp == "MAC"
						bugs.wiselog.area('player_Header_02');
					}

					alert("설정이 저장되었습니다.", function() {
						bugs.ui.modalLayer.hide();
						popup.layer.hide();
					});
					return false;
				});

				popup.layer.find("button.btnClose").unbind("click").click(function() {
					bugs.ui.modalLayer.hide();
					popup.layer.hide();
					return false;
				});

			}
		}).show();
	}
};

bugs.ui.showPlayerSelectLayer = function(type, params) {
	// 보여지는 공통 레이어 모두 닫기
	bugs.layermenu.removeOldLayer();

	// 쿠키에서 정보 가져오기
	var selectedPlayer = bugs.cookie.get('defaultPlayer') || "";

	if(selectedPlayer == "" || selectedPlayer == "WEB") {
		$('input:radio[name=radio_player_type2]:input[value=WEB]').attr("checked", true);
	} else {
		$('input:radio[name=radio_player_type2]:input[value=MAC]').attr("checked", true);
	}

	if(bugs.ui._playerSelectLayer && bugs.ui._playerSelectLayer.layer.is(":visible")) {
		bugs.ui._playerSelectLayer.hide();
	} else {
		bugs.ui._playerSelectLayer = new bugs.ui.popup($('.layerSettingPlayer.guide'), {
			title : "layerSettingPlayer.guide",
			modal : true,
			onInit : function(popup) {
				popup.layer.find("button.btnNormal").unbind("click").click(function() {
					var rpt = $(":input:radio[name=radio_player_type2]:checked").val();
					var oDate = new Date();
					oDate.setDate(oDate.getDate()+365);
					bugs.cookie.set("defaultPlayer", rpt, oDate, "/", "bugs.co.kr");
					bugs.cookie.set("dpConfirm", $("#setPlayerSelectionConfirm").is(':checked') ? "N" : "Y", oDate, "/", "bugs.co.kr");
					if(typeof updateHeaderPlayerMenu == "function")
						updateHeaderPlayerMenu(rpt);

					if(rpt == "WEB") {	// Web Player 설정으로 cookie가 바뀌었으니, 그냥 bugs.music.listen을 그대로 다시 호출해도 무방
						bugs.wiselog.area('player_List_01');
						if(type == "TRACKALL") {
							params.obj.listenAll(params.btn, params.type, params.tapToPlay, {macPlayerCheck : "N"});
						} else {
							bugs.music.listen(params.trackId, params.autoplay, {macPlayerCheck : "N"});
						}
					} else { // if(rpt == "MAC")
						bugs.wiselog.area('player_List_02');
						bugs.ui.toastMacPlayerLinked();

						setTimeout(function() {
							var runScheme =  'app/tracks/'+ params.trackId;
							if(params.autoplay)
								runScheme += '?autoplay=Y';

							if(params.tapToPlay != null)
								runScheme += (params.autoplay ? '&' : '?') + (params.tapToPlay ? 'deleteAll=Y' : (params.tapToPlay == false ? 'deleteAll=N' : ''));

							location.href = bugs.app.getBugsScheme(runScheme, 3);
						}, 2500);
					}

					bugs.ui.modalLayer.hide();
					popup.layer.hide();
					return false;
				});

				popup.layer.find("button.btnClose").unbind("click").click(function() {
					bugs.ui.modalLayer.hide();
					popup.layer.hide();
					return false;
				});

			}
		}).show();
	}
};

bugs.ui.toastMacPlayerTimer = null;
bugs.ui.toastMacPlayerLinked = function(){	// msg : 메시지 내용, dimmed : 배경 dimmed 여부, fadeout : fadeout 적용시 시간(사용안할 것이라면 0 또는 undefined)

	var obj;
	if( document.getElementById("layerPlayingMacPlayer") == null ){
		obj = document.createElement("aside");
		obj.id = "layerPlayingMacPlayer"
		obj.className = "layer layerPlayingPlayer";
		obj.style.display = "none";

		var layer = '<div class="box-shadow"></div>';
		layer += '	<section class="layerContents">';
		layer += '	<strong class="message">벅스 플레이어로 재생됩니다.</strong>';
		layer += '		<ul>';
		layer += '			<li>벅스 웹상단 &gt; 플레이어 선택에서 플레이어를 변경할 수 있습니다.</li>';
		layer += '			<li>혹시 벅스 플레이어가 실행되지 않는다면? <a href="https://music.bugs.co.kr/serviceGuide/pc/bugsPlayer?sub=macPlayer" onclick="$(\'.layerPlayingPlayer\').hide();" target="_blank">[설치 안내 바로가기]</a></li>';
		layer += '		</ul>';
		layer += '	</section>';

		obj.innerHTML = layer;
		document.body.appendChild(obj);
	} else {
		obj = document.getElementById("layerPlayingMacPlayer"); // $("#layerPlayingMacPlayer");
	}

	clearTimeout(bugs.ui.toastMacPlayerTimer);

	var _position = "absolute";
	var _top = Math.max(0, (($(window).height() - $(obj).outerHeight()) / 2) + $(window).scrollTop()) + "px";
	var _left = Math.max(0, (($(window).width() - $(obj).outerWidth()) / 2) + $(window).scrollLeft()) + "px";

	$(obj).hide();
	$(obj).css({'position':_position,'top':_top,'left':_left});
	$(obj).fadeIn(1000);

	bugs.ui.toastMacPlayerTimer = layerFadeoutTimer = setTimeout(function() {
		$(obj).fadeOut(1000);
	}, 5000);
};

if(!isXP && !isIE78)	var song = new Audio();

// 캡챠 추가
var getCaptcha = function(type) {
	if(!isXP && !isIE78){
		$("#inputCaptcha").val("");
		song.pause();
		if(!isEdge){
			$("#captchaAudio")[0].pause();
		}

		//IE인 경우 pause
		if(audio != null){
			audio.stop();
			audio.currentTime = 0;
			audio.setAttribute('src', '');
		}
	}

	jQuery.ajax({
		type: 'POST',
		dataType : "jsonp",
		cache : false,
		url : g_urlSecure + "/api/internal/member/captcha/key",
		data: null,
		jsonp : "callback",
		success : function(rtnVal) {
			$("#key").val(rtnVal.data.key);

			// 음성인경우
			if(type == 'sound'){
				if (!isSafari && !isWin10) {

					var soundUrl = rtnVal.data.soundSrc;
					$("#captchaVideoSource").attr('src', soundUrl);

					if(!isIE78) song = new Audio(soundUrl);

					try {
						if(!song.canPlayType('audio/wav')){
							throw new Error('');
						}
						if(!isIE78) song.play();

					} catch (e) {
						var playerArea = document.getElementById("captchaAudio");
						playerArea.innerHTML = "<embed src='" + soundUrl + "' id='embed_audio' hidden='true' showstatusbar='false' showcontrols='false' showaudiocontrols='false' showtracker='false' type='audio/wav'>";
						audio = document.getElementById("embed_audio");
						audio.setAttribute('src', soundUrl);
						audio.setAttribute('hidden', true);
						audio.setAttribute('autostart', true);
						audio.setAttribute('showstatusbar', false);
						audio.setAttribute('showcontrols', false);
						audio.setAttribute('showaudiocontrols', false);
						audio.setAttribute('showtracker', false);
						playerArea.appendChild(audio);
					}

					$("#captcha_image").hide();
					$("#captcha_sound").show();

					$(".btnImage").focus();
				}
			//이미지인 경우
			}else{
				$("#captchaImg").attr('src',rtnVal.data.imgSrc);

				$("#captcha_sound").hide();
				$("#captcha_image").show();

				$(".btnVoice").focus();
			}

			//mac safari인 경우 음성듣기 버튼 삭제
			if(isSafari){
				$("#btnCaptchaReload").addClass("big");
			}

			$("#captcha").show();
		},
		async: false,
		error : function() {
			$("#loginDesc").text('일시적인 오류가 발생했습니다. 잠시 후 다시 시도해 주세요.').show();
		}
	});

}

//-----------------------------------------------------------------------------

/*-----/js/ui.js / end -----*/

/*-----/js/utils/music.js / start -----*/
$(document).ready(function() {
    if(bugs.music.initOnLoad)
        bugs.music.init();
});

bugs.music = {
    MV_QUALITY_FULLHD : "FULLHD",
    MV_QUALITY_HD : "HD",
    MV_QUALITY_SD : "SD",
    MV_QUALITY_MP4 : "MP4",

    playerController : null,
    flashInstalled : false,
    flashPopup : null,
    initOnLoad : true,

    isLikeLock : false, //Like 기능 더블클릭 방지 Lock

    playerObject : null,

    radioHeightNormal : 713,
    radioHeightSafari : 762,

    init : function(musicController, mvController) {

        if(!window["swfobject"])
            return;

        if(this.useHtml5Player() && this.useHtml5MvPlayer()) {  // HTML5로 재생하는 경우에는 Flash 관련 초기화 X
            window.addEventListener("storage", bugs.music.localStorageHandler, false);
            return;
        }

        var top = $(document).scrollTop();
        $("<div><div id=\"BugsPlayerController\"></div></div>").css({position : "absolute", top : top, left : 0, width : 10, height : 10}).appendTo("body");

        var flashvars = {
            musicController : musicController,
            mvController : mvController
        };

        var params = {
            wmode : "transparent",
            allowScriptAccess : "always"
        };

        var attr = {
            id : "BugsPlayerController"
        };

        var flagFlashInstalled = true;

        if ($.browser.chrome || $.browser.safari){
            if(swfobject.getFlashPlayerVersion().major == 0) {
                flagFlashInstalled = false;
                this.flashInstalled = false;

                var faqUrl = "";
                if($.browser.chrome)		faqUrl = "http://help.bugs.co.kr/sub?target=bugs/faq/list%3FfaqId%3D31058%26categoryNo%3D4622";
                else if($.browser.safari)	faqUrl = "http://help.bugs.co.kr/sub?target=bugs/faq/list%3FfaqId%3D31110%26categoryNo%3D4622";

                var html = "<p>Adobe Flash Player를<br/>사용할 수 있도록 설정을 바꿔 주세요.<br />" +
                    "<span><a href=\"" + faqUrl + "\" onclick=\"return bugs.utils.openWindow(this);\">Flash 플레이어 설정법 보러가기</a></span></p>";

                this.flashPopup = new bugs.ui.popup(html, {
                    css : "layerDownDRM",
                    title : bugs.ui.TITLE_LOGO
                });
            }
        }

        if(flagFlashInstalled) {	// 플래시가 비활성화된 상태의 크롬이 아니면 아래 if문 처리
            this.flashInstalled = swfobject.hasFlashPlayerVersion("10");
            if(this.flashInstalled) {
                swfobject.embedSWF(g_urlSwf + "/BugsPlayerController.swf?version=201610311502", "BugsPlayerController", "100%", "100%", "10.0.0", "expressInstall.swf", flashvars, params, attr);
            } else {
                var html = "<p>벅스 플레이어는 Adobe Flash Player 10<br/> 이상을 설치하셔야 사용 가능합니다.<br />" +
                    "<span><a href=\"http://www.adobe.com/go/getflashplayer\" onclick=\"return bugs.utils.openWindow(this);\">Flash 플레이어 받기</a></span></p>";

                this.flashPopup = new bugs.ui.popup(html, {
                    css : "layerDownDRM",
                    title : bugs.ui.TITLE_LOGO
                });
            }
        }

        $(window).bind("beforeunload", function() {
            try{
//		 		var controller = bugs.music.getPlayerController();
//		 		if(!controller){
//		 			controller.getPlayerController
//		 		}
            }catch(e){}
        });

        // HTML5 플레이어 지원에 따른 Listener 등록 (iframe을 사용하지 않고, 부모창에서는 localstorage 이벤트를 받지 않으니 사용하지 않음
//		if(bugs.music.useHtml5Player() || bugs.music.useHtml5Radio()) {	//	if(supports_localstorage()) {
//			window.addEventListener("message", receiveParentMessage, false);
//			window.addEventListener("storage", storageHandler, false);
//		}

    },

    localStorageHandler : function (e) {
        // console.log("Key", e.key);
        // console.log("new", e.newValue);
        // console.log("old", e.oldValue);
    },

    getPlayerController : function() {

        if(this.playerController) return this.playerController;

        var controller = $("#BugsPlayerController")[0];
        if(!controller || controller == "DIV" || (typeof(controller.isPlayerExist) == "undefined" && typeof(controller.isMvPlayerExist) == "undefined")) return null;

        return (this.controller = controller);

    },

    popWebPlayer : function() {
        var url = g_urlMusic + "/newPlayer";
//		url += "?autoplay=false";

        var ieVersion = bugs.utils.getIEVersion();
        if(ieVersion != 0 && ieVersion <= 8) {
            bugs.cookie.set("pageOpenMode", "N");
        } else {
            bugs.cookie.set("pageOpenMode", "");
            url += "?autoplay=false";
        }

        if (typeof(param) != "undefined"){
            url += "&"+param;
        }

        var uagent = navigator.userAgent.toLocaleLowerCase();
        var isSafari = (uagent.search("mac os x") >= 0 && uagent.search("safari") >= 0) ? true : false;
        var h = isSafari ? 712 : 671;

        try {
            if(bugs.music.useHtml5Player()) {	// HTML5 플레이어 사용
                bugs.music.sendCheckWebPlayerOn();

                setTimeout(function() {
                    bugs.music.sendWebPlayerOpen(url);
                }.bind(this), 800);
            } else {	// 플래시플레이어 사용
                if(!this.playerObject || this.playerObject.closed) {
                    this.playerObject = window.open(url, "BugsPlayer", "width=384,height="+h+",resizable=0");
                    return this.playerObject;
                } else {
                    this.playerObject.focus();
                }
            }
        } catch(e) {

        }

    },

    useHtml5Radio : function() {
        var support = true;

        var ieVersion = bugs.browser.getInternetExplorerVersion();
        if(ieVersion >= 0 && ieVersion <= 8){
            support = false;
        }

        return support;

        // audio 태그 지원하는 브라우저만 지원
//		var a = document.createElement('audio');
//		return !!(a.canPlayType && a.canPlayType('audio/mpeg;').replace(/no/, ''));
    },

    useHtml5Player : function() {
        var support = true;

        var ieVersion = bugs.browser.getInternetExplorerVersion();
        if(ieVersion >= 0 && ieVersion <= 8){
            support = false;
        }

        return support;
    },

    useHtml5MvPlayer : function() {
        var support = true;

        var ieVersion = bugs.browser.getInternetExplorerVersion();
        if(ieVersion >= 0 && ieVersion <= 8){
            support = false;
        }
        
        return support;
    },

    isEdgeBrowser : function() {
        return (navigator.userAgent.indexOf("Edge") > -1);
    },

    isMacBrowser : function() {
        return navigator.userAgent.search("Mac") > -1;
    },

    isMacPlayerSupport : function() {
        if(!bugs.music.isMacBrowser())
            return false;

        var ua = navigator.userAgent;
        return /Mac OS X 11_/.test(ua)
            || /Mac OS X 12_/.test(ua)
            || (/Mac OS X 10_/.test(ua) && !/Mac OS X 10_10/.test(ua) && !/Mac OS X 10_9/.test(ua) && !/Mac OS X 10_8/.test(ua) && !/Mac OS X 10_7/.test(ua) && !/Mac OS X 10_6/.test(ua) && !/Mac OS X 10_5/.test(ua)
                && !/Mac OS X 10_4/.test(ua) && !/Mac OS X 10_3/.test(ua) && !/Mac OS X 10_2/.test(ua));
    },

    checkMacPlayerLinkedForListen : function(trackId, autoplay, param) {
        if(param != null && param.macPlayerCheck == "N")
            return false;

        if(!bugs.music.isMacPlayerSupport())
            return false;

        var dpc = bugs.cookie.get('dpConfirm') || "";
        var dp = bugs.cookie.get('defaultPlayer') || "";

        if(dpc == "" || dpc == "Y") {	// 설정이 안되어 있다면
            bugs.ui.showPlayerSelectLayer("TRACK", {trackId : trackId, autoplay : autoplay});
            return true;
        } else {
            if(dp == "" || dp == "WEB") {
                return false;	// WEB Player 설정이니, 그냥 return false;
            } else if(dp == "MAC") {
                console.log("RUN MAC PLAYER!");
                bugs.ui.toastMacPlayerLinked();

                setTimeout(function() {
                    var runScheme =  'app/tracks/'+trackId;
                    if(autoplay)
                        runScheme = runScheme + '?autoplay=Y';
                    location.href = bugs.app.getBugsScheme(runScheme, 3);
                }, 2500);

                return true;
            }
        }

        return false;
    },

    listen : function(trackId, playForce, param) {

        if(typeof trackId == "undefined"){
            return;
        }
        if(typeof trackId == "string") {
        } else if(typeof trackId == "number") {
            trackId += "";
        } else if(typeof trackId == "object") {
            var trackIdStr = "";
            if(trackId.length == 0) {
                bugs.ui.showAlert("음악을 선택하여 주십시오.", {css : "layerAdultNotice"});
                return;
            }
            for(var i=0;i < trackId.length;i++) {
                trackIdStr += $(trackId[i]).val();
                if(i < trackId.length - 1) trackIdStr +=",";
            }
            //alert(trackIdStr + " 재생");
            trackId = trackIdStr;
        }

        if(this.checkMacPlayerLinkedForListen(trackId, playForce, param)) {	// Mac Player 연동이라면 Mac Player 호출하고 return
            return;
        }

        if(bugs.music.useHtml5Player()) {	// LocalStorage 를 지원하지 않는 경우에만 Flash 사용 가능 여부 체크
            bugs.music.sendCheckWebPlayerOn();

            setTimeout(function() {
                bugs.music.sendTracksToPlayerBridge(trackId, playForce, false, param);	// playForce 옵션도 추가하기
            }.bind(this), 800);

            return; // return 이 없으면 팝업이 없다고 판단하므로
        } else {
            if(!this.flashInstalled) {
                bugs.layermenu.removeOldLayer();
                this.flashPopup.show();
                return;
            }

            var controller = this.getPlayerController();
            if(!controller){
                this.checkMacFlashLimit();
                return;
            }

            if(controller.isPlayerExist()) {		// 플래시 플레이어 사용하는 경우	//    	if(this.playerObject && !this.playerObject.closed) {		// HTML5 플레이어 사용하는 경우
                controller.addTrack(trackId, playForce);
                return; // return 이 없으면 팝업이 없다고 판단하므로
            }
            else {
                if(typeof trackId != "string"){
                    trackId = trackId+"";
                }

                var url = g_urlMusic + "/newPlayer"; // ?trackId=" + trackId;
                if (typeof(param) != "undefined"){
                    url += "?"+param;
                }
                var uagent = navigator.userAgent.toLocaleLowerCase();
                var isSafari = (uagent.search("mac os x") >= 0 && uagent.search("safari") >= 0) ? true : false;
                var h = isSafari ? 710 : 671;

                this.openWebPlayerByPost(url, trackId, playForce, false, h);  // POST 방식으로 호출
            }
        }
    },

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // HTML5 플레이어 지원 (음악플레이어, 뮤직캐스트플레이어(라디오))
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // 시작 - 플레이어와의 통신 관련 함수
    sendWebPlayerOpen : function(url) {
//		console.log("sendWebPlayerOpen (player_open)");

        var playerOn = localStorage.getItem("player_on");
        if(playerOn == "A") {
            if(this.playerObject)
                this.playerObject.focus();
            else
                window.parent.alert("플레이어가 이미 실행중입니다.");	//			alert("플레이어가 이미 실행중입니다.");
        } else {
            var uagent = navigator.userAgent.toLocaleLowerCase();
            var isSafari = (uagent.search("mac os x") >= 0 && uagent.search("safari") >= 0) ? true : false;
            var h = isSafari ? 712 : 671;

            this.playerObject = window.open(url, "BugsPlayer", "width=384,height="+h+",resizable=0,location=no,toolbar=no,menubar=no");
        }
    },

    sendTracksToPlayerBridge : function(tracks, playForce, tapToPlay, param) {
//		console.log("sendTracksToPlayerBridge (playForce : " + playForce + ", tapToPlay : " + tapToPlay + ", param : " + param + ")");

        if(bugs.music.isEdgeBrowser()) {
            setTimeout(function() {
                bugs.music.sendTracksToPlayerBridgeInner(tracks, playForce, tapToPlay, param);
            }, 300);
        } else {
            bugs.music.sendTracksToPlayerBridgeInner(tracks, playForce, tapToPlay, param);
        }

    },

    arrayTracks     : [],
    packetTracks    : [],
    packetCount     : 0,
    iCount          : 0,
    packetTimer     : null,

    sendTracksToPlayerBridgeInner : function(tracks, playForce, tapToPlay, param) {
        var playerOn = localStorage.getItem("player_on");
        if(playerOn == "A") {
            // var value = "add_tracks#" + tracks + "#" + (playForce == null ? false : playForce) + "#" + (tapToPlay == null ? false : tapToPlay) + "#" + (param == null ? "" : param) ;
            // localStorage.setItem("track_added", value);	// playForce 옵션도 추가하기

            this.iCount = 0;
            this.arrayTracks = tracks.split(",");
            this.packetCount = Math.ceil(this.arrayTracks.length / 100);
            this.packetTracks = this.arrayTracks.slice(0, 100).join(",");

            var value = "add_tracks#" + (this.packetCount === 1 ? "last" : "") + "#" + this.packetTracks + "#" + (playForce == null ? false : playForce) + "#" + (tapToPlay == null ? false : tapToPlay) + "#" + (param == null ? "" : param) ;
            localStorage.setItem("track_added", value);
            this.iCount = 1;

            if(this.packetCount > 1) {   // 패킷이 2개 이상이라면
                this.packetTimer = setInterval(function() {
                    this.packetTracks = this.arrayTracks.slice(this.iCount * 100, (this.iCount * 100) + 100).join(",");
                    var value = "add_tracks#" + (this.iCount === this.packetCount - 1 ? "last" : "") + "#" + this.packetTracks;

                    localStorage.setItem("track_added", value);
                    this.iCount++;

                    if(this.packetCount === this.iCount) {
                        clearInterval(this.packetTimer);
                        this.arrayTracks = [];
                        this.packetTracks = [];
                        this.packetCount = 0;
                        this.iCount = 0;
                    }

                }.bind(this), 100);
            }
        } else {
            if(typeof tracks != "string"){
                tracks = tracks+"";
            }

            var url = g_urlMusic + "/newPlayer"; // ?trackId=" + tracks;     // Get 방식 호출 코드 삭제
            
            if (typeof(param) != "undefined"){
                url += "?"+param;
            }
            
            var uagent = navigator.userAgent.toLocaleLowerCase();
            var isSafari = (uagent.search("mac os x") >= 0 && uagent.search("safari") >= 0) ? true : false;
            var h = isSafari ? 712 : 671;

            this.openWebPlayerByPost(url, tracks, playForce, tapToPlay, h);  // POST 방식으로 호출
        }
    },


    openWebPlayerByPost : function(url, tracks, playForce, tapToPlay, h) {

        if(h == undefined) {
            var uagent = navigator.userAgent.toLocaleLowerCase();
            var isSafari = (uagent.search("mac os x") >= 0 && uagent.search("safari") >= 0) ? true : false;
            h = isSafari ? 712 : 671;
        }
        // (시작) POST 방식으로 호출
        this.playerObject = window.open('', "BugsPlayer", "width=384,height="+h+",resizable=0");

        var $form = $('<form></form>');
        $form.attr('action', url);
        $form.attr('method', 'post');
        $form.attr('target', 'BugsPlayer');
        $form.appendTo('body');

        var paramsTracks = $('<input type="hidden" value="' + tracks + '" name="trackId">');
        var paramsAutoplay = $('<input type="hidden" value="' + (playForce != undefined ? playForce : "false") + '" name="autoplay">');
        var parmsTapToPlay = $('<input type="hidden" value="' + (tapToPlay != undefined ? tapToPlay : "false") + '" name="ttp">');

        $form.append(paramsTracks).append(paramsAutoplay).append(parmsTapToPlay);
        $form.submit();
        // (끝) POST 방식으로 호출

//        return this.playerObject;
    },

    sendCheckWebPlayerOn : function() {
//		console.log("sendCheckWebPlayerOn (player_check)");
        localStorage.setItem("player_on", "R");	// playForce 옵션도 추가하기
    },

    sendCheckWebRadioOn : function() {
//		console.log("sendCheckWebRadioOn (radio_check)");
        localStorage.setItem("radio_on", "R");
    },

    sendParamsToRadioBridge : function(type, args1, args2, args3) {
//		console.log("sendParamsToRadioBridge (args1 : " + args1 + ", args2 : " + args2 + ", args3 : " + args3 + ")");
        if(bugs.music.isEdgeBrowser()) {
            setTimeout(function() {
                bugs.music.sendParamsToRadioBridgeInner(type, args1, args2, args3);
            }, 300);
        } else {
            bugs.music.sendParamsToRadioBridgeInner(type, args1, args2, args3);
        }
    },

    sendParamsToRadioBridgeInner : function(type, args1, args2, args3) {
        var playerOn = localStorage.getItem("radio_on");
        if(playerOn == "A") {
            var value = "radio_call#" + type + "#" + args1 + "#" + args2 + "#" + args3;
            localStorage.setItem("radio_call", value);	// playForce 옵션도 추가하기
        } else {

            if(type == "musiccast") {
                contentType = args1;
                contentId = args2;

                var uagent = navigator.userAgent.toLocaleLowerCase();
                var isSafari = (uagent.search("mac os x") >= 0 && uagent.search("safari") >= 0) ? true : false;
                var h = isSafari ? this.radioHeightSafari : this.radioHeightNormal;
//		        console.log("iframe - radio open");
                window.open(g_urlMusic + "/newRadio?playMusicCast="+contentId+"&castType="+contentType, "BugsRadio", "width=380,height=" + h + ",resizable=yes");

            } else if(type == "radio") {
                option = args1;

                var uagent = navigator.userAgent.toLocaleLowerCase();
                var isSafari = (uagent.search("mac os x") >= 0 && uagent.search("safari") >= 0) ? true : false;
                var h = isSafari ? this.radioHeightSafari : this.radioHeightNormal;

                if(option == "keyword") {
                    keyword = args2;
                    playForce = args3;

//			        console.log("iframe - radio open2");
                    window.open(g_urlMusic + "/newRadio?keyword=" + encodeURIComponent(keyword)+"&playForce="+playForce+"&wl_ref=radio_1", "BugsRadio", "width=380,height=" + h + ",resizable=yes");
                } else if(option == "station") {
                    stationId = args2;
                    playForce = args3;

//			        console.log("iframe - radio open3");
                    window.open(g_urlMusic + "/newRadio?station_id="+stationId+"&playForce="+playForce, "BugsRadio", "width=380,height=" + h + ",resizable=yes");
                } else if(option == "seed") {
                    seedId = args2;
                    seedType = args3;

//			        console.log("iframe - radio open4");
                    window.open(g_urlMusic + "/newRadio?seed=" + seedId + "&type=" + seedType + "&wl_ref=radio_1", "BugsRadio", "width=380,height=" + h + ",resizable=yes");
                }
            }
        }
    },
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // 끝 - 플레이어와의 통신 관련 함수
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    openBugsRadio : function(){
        if(!this.flashInstalled) {
            bugs.layermenu.removeOldLayer();
            this.flashPopup.show();
            return;
        }

        var controller = this.getPlayerController();
        if(!controller){
            this.checkMacFlashLimit();
            return;
        }

        if(!controller.isRadioExist()) {
            var uagent = navigator.userAgent.toLocaleLowerCase();
            var isSafari = (uagent.search("mac os x") >= 0 && uagent.search("safari") >= 0) ? true : false;
            var h = isSafari ? 659 : 614;
            window.open(g_urlMusic + "/newRadio?wl_ref=radio_1", "BugsRadio", "width=368,height=" + h + ",resizable=yes");
        }
    },

    listenRadio : function(keyword, playForce) {
        if(typeof keyword == "undefined") return;
        if(typeof keyword == "string") {
        } else if(typeof keyword == "object") {
            if(keyword ==  ""){
                return;
            }
        }

        if(bugs.music.useHtml5Radio()) {
            bugs.music.sendCheckWebRadioOn();

            setTimeout(function() {
                bugs.music.sendParamsToRadioBridge("radio", "keyword", keyword, playForce);
            }.bind(this), 800);
            return; // return 이 없으면 팝업이 없다고 판단하므로
        } else {
            if(!this.flashInstalled) {
                bugs.layermenu.removeOldLayer();
                this.flashPopup.show();
                return;
            }

            var controller = this.getPlayerController();
            if(!controller){
                this.checkMacFlashLimit();
                return;
            }

            if(controller.isRadioExist() && !playForce) {
                if(keyword == ""){
                    return;
                }
                controller.radioSearch(keyword);

            }else if(controller.isRadioExist() && playForce){
                controller.createChannel(keyword);

            }else {
                var uagent = navigator.userAgent.toLocaleLowerCase();
                var isSafari = (uagent.search("mac os x") >= 0 && uagent.search("safari") >= 0) ? true : false;
                var h = isSafari ? this.radioHeightSafari : this.radioHeightNormal;
                window.open(g_urlMusic + "/newRadio?keyword=" + encodeURIComponent(keyword)+"&playForce="+playForce+"&wl_ref=radio_1", "BugsRadio", "width=380,height=" + h + ",resizable=yes");
            }
        }
    },


    listenRadioFromSeed : function(seed,type) {
        if(type == "" || typeof type == "undefined" || typeof type == "object"){
            return;
        }

        if(type != "track" && type != "artist"){
            return;
        }

        if(typeof seed == "undefined") return;
        if(typeof seed == "string") {
        } else if(typeof seed == "object") {
            if(seed ==  ""){
                return;
            }
        }

        if(bugs.music.useHtml5Radio()) {
            bugs.music.sendCheckWebRadioOn();

            setTimeout(function() {
                bugs.music.sendParamsToRadioBridge("radio", "seed", seed, type);
            }.bind(this), 800);

            return true; // return 이 없으면 팝업이 없다고 판단하므로
        } else {
            if(!this.flashInstalled) {
                bugs.layermenu.removeOldLayer();
                this.flashPopup.show();
                return;
            }

            var controller = this.getPlayerController();
            if(!controller){
                this.checkMacFlashLimit();
                return;
            }

            if(controller.isRadioExist()){
                if(type == "track"){
                    controller.createChannelTrack(seed);
                }else{
                    controller.createChannelArtist(seed);
                }

            }else {
                var uagent = navigator.userAgent.toLocaleLowerCase();
                var isSafari = (uagent.search("mac os x") >= 0 && uagent.search("safari") >= 0) ? true : false;
                var h = isSafari ? this.radioHeightSafari : this.radioHeightNormal;
                window.open(g_urlMusic + "/newRadio?seed=" + seed+"&type="+type+"&wl_ref=radio_1", "BugsRadio", "width=380,height=" + h + ",resizable=yes");
            }
        }
    },

    showRadioListenList : function(){
        if(!this.flashInstalled) {
            bugs.layermenu.removeOldLayer();
            this.flashPopup.show();
            return;
        }

        var controller = this.getPlayerController();
        if(!controller){
            this.checkMacFlashLimit();
            return;
        }

        if(controller.isRadioExist()) {
            controller.showLastStation();
        }else{
            var uagent = navigator.userAgent.toLocaleLowerCase();
            var isSafari = (uagent.search("mac os x") >= 0 && uagent.search("safari") >= 0) ? true : false;
            var h = isSafari ? 659 : 614;
            window.open(g_urlMusic + "/newRadio?wl_ref=radio_1", "BugsRadio", "width=368,height=" + h + ",resizable=yes");
        }
    },

    listenRadioMusicCast : function(id, type){
        if(bugs.music.useHtml5Radio()) {
            bugs.music.sendCheckWebRadioOn();

            setTimeout(function() {
                bugs.music.sendParamsToRadioBridge("musiccast", type, id);
            }.bind(this), 800);

            return; // return 이 없으면 팝업이 없다고 판단하므로
        } else {
            if(!this.flashInstalled) {
                bugs.layermenu.removeOldLayer();
                this.flashPopup.show();
                return;
            }

            var controller = this.getPlayerController();
            if(!controller){
                this.checkMacFlashLimit();
                return;
            }

            if(controller.isRadioExist()){
                controller.playMusicCast(id, type);
            }else{
                if(controller.isRadioExist()) {
                    controller.playMusicCast(id, type);
                }else{
                    var uagent = navigator.userAgent.toLocaleLowerCase();
                    var isSafari = (uagent.search("mac os x") >= 0 && uagent.search("safari") >= 0) ? true : false;
                    var h = isSafari ? this.radioHeightSafari : this.radioHeightNormal;
                    window.open(g_urlMusic + "/newRadio?playMusicCast="+id+"&castType="+type, "BugsRadio", "width=380,height=" + h + ",resizable=yes");
                }
            }
        }
    },

    radioStationPlay : function(station_id, playForce){
        if(bugs.music.useHtml5Radio()) {
            bugs.music.sendCheckWebRadioOn();

            setTimeout(function() {
                bugs.music.sendParamsToRadioBridge("radio", "station", station_id, playForce);
            }.bind(this), 800);

            return true; // return 이 없으면 팝업이 없다고 판단하므로
        } else {
            if(!this.flashInstalled) {
                bugs.layermenu.removeOldLayer();
                this.flashPopup.show();
                return;
            }

            var controller = this.getPlayerController();
            if(!controller){
                this.checkMacFlashLimit();
                return;
            }

            if(controller.isRadioExist()) {
                controller.playStation(station_id);
            }else{
                var uagent = navigator.userAgent.toLocaleLowerCase();
                var isSafari = (uagent.search("mac os x") >= 0 && uagent.search("safari") >= 0) ? true : false;
                var h = isSafari ? this.radioHeightSafari : this.radioHeightNormal;
                window.open(g_urlMusic + "/newRadio?station_id="+station_id+"&playForce="+playForce, "BugsRadio", "width=380,height=" + h + ",resizable=yes");
            }
        }
    },
    addTrackToMyAlbum : function(btn,track_id,type) {
        if(!g_isLogged) {
            bugs.ui.showLoginLayer();
            return;
        }else{
            setTimeout(function() {
                if(typeof track_id != "string"){
                    track_id+"";
                }
                playlists.showPlaylistLayer($(btn), track_id, type);
            }, 300);
        }
    },

    addAlbumToMyAlbum : function(obj,album_id,type){
        if(!g_isLogged) {
            bugs.ui.showLoginLayer();
            return;
        }
        else
        {
            $.get(
                g_urlAjax + "/album/ajax/albumTracks",
                {albumId : album_id},
                function(data) {
                    //alert(trackIds);
                    if (data.trackIds) {
                        playlists.showPlaylistLayer($(obj), data.trackIds, type);
                    }
                }
            );
        }
    },

    downloadEsAlbum : function(es_album_id){

        if(!g_isLogged) {
            bugs.ui.showLoginLayer();
            return;
        }

        if (!es_album_id) {
//			bugs.ui.showAlert("뮤직pd앨범 정보가 없습니다.", {css : "layerAdultNotice"});
            alert("뮤직pd앨범 정보가 없습니다.");
            return;
        }

        bugs.music.downloadAlbum(es_album_id, "esalbum");
    },

    getEsAlbum_tracks : function(es_album_id, callback){
        $.post(
            g_urlAjax + "/esalbum/ajax/albumTracks",
            {albumId : es_album_id},
            function(data) {
                if(callback)
                    callback(data);
            }
        );
    },

    _loadController : function(trackId, mvId, playForce) {
        // swfobject 없으면 추가
        if(typeof(swfobject) == "undefined") {
            $("head").append("<script type=\"text/javascript\" src=\"" + g_urlJs + "/swfobject/swfobject.js\"></script>");
        }

        var player = $("#BugsPlayerController");
        if(player.length < 1) {
            if(!swfobject.hasFlashPlayerVersion("10")) {
                var html = "<p>벅스 플레이어는 Adobe Flash Player 10<br/> 이상을 설치하셔야 사용 가능합니다.<br />" +
                    "<span><a href=\"http://www.adobe.com/go/getflashplayer\" onclick=\"return bugs.utils.openWindow(this);\">Flash 플레이어 받기</a></span></p>";

                var popup = new bugs.ui.popup(html, {
                    css : "layerDownDRM",
                    title : bugs.ui.TITLE_LOGO
                });
                popup.show();
                return;
            }

            // firefox에서는 일단 화면에 플래쉬가 보여야 ExternalInterface.addCallback()이 되기 때문에
            // 일단 화면에 보이게끔 scrollTop으로 container를 생성함
            var top = $(document).scrollTop();
            $("<div><div id=\"BugsPlayerController\"></div></div>").css({position : "absolute", top : top, left : 0, width : 10, height : 10}).appendTo("body");

            var flashvars = {};
            if(trackId) flashvars.trackId = trackId;
            if(mvId) flashvars.mvId = mvId;
            if(playForce) flashvars.playForce = playForce;

            var params = {
                wmode : "transparent",
                allowScriptAccess : "always"
            };

            var attr = {
                id : "BugsPlayerController"
            };

            swfobject.embedSWF(g_urlSwf + "/BugsPlayerController.swf", "BugsPlayerController", "100%", "100%", "10.0.0", "expressInstall.swf", flashvars, params, attr);
        }
        else {
            player = player[0];
            if(trackId && typeof(player.addTrack) == "function") player.addTrack(trackId, playForce);
            if(mvId && typeof(player.addMusicVideo) == "function") player.addMusicVideo(mvId, playForce);
        }
    },

    checkMacFlashLimit : function(){
        var uagent = navigator.userAgent.toLocaleLowerCase();
        if(typeof uagent != "udefinded"){
        }
        if(this.flashInstalled && uagent.search("mac os x") >= 0 && uagent.search("safari") >= 0 && uagent.search("chrome") < 0){	//		if(this.flashInstalled && uagent.search("mac os x") >= 0 && /safari/ig.test(navigator.userAgent)){
            var html = "<p>FlashPlayer 버전이 낮아 Mac OS에서<br/>FlashPlayer 이용을 제한 하였습니다.<br/>최신 버전으로 업데이트 후 이용 가능합니다.<br />" +
                "<span><a href=\"http://www.adobe.com/go/getflashplayer\" onclick=\"return bugs.utils.openWindow(this);\">Flash 플레이어 받기</a></span></p>" ;

            this.macFlashPopup = new bugs.ui.popup(html, {
                css : "layerDownDRM",
                title : bugs.ui.TITLE_LOGO
            });

            this.macFlashPopup.show();
        }
    },

    handleEvent : function(event, data) {
        switch(event) {
            case "openPlayer" :
                if(data == "Player") {
                    window.open(g_urlMusic + "/player", "_blank", "width=430,height=656,resizable=0");
                }
                else {
                    window.open(g_urlMusic + "/mvPlayer", "_blank", "width=970,height=668,resizable=0");
                }
                break;
        }
    },
    download : function(trackId,mvAdultYn) {
        if(!g_isLogged) {
            bugs.ui.showLoginLayer();
            return;
        } else if (mvAdultYn=='Y' && adult_age < 19 ){
            bugs.ui.alertAdultNotice();
            return;
        }
        var buyTp = arguments[1] || "mp3"; // mp3 or mv
        var recommend = arguments[2];
        var type = arguments[3]; // MUSICPD
        var dns = location.href;
        var mvType = type == "FULLHD" || type == "HD" || type == "SD" ? type : "" ;

        if(typeof trackId == "undefined") return;
        if(typeof trackId == "string" || typeof trackId == "number") {
//			정기점검시 적용
            
            //trackId+(A: mp3, B: flac16, C: flac24)

            //뮤직PD 도메인 체크
            try{
                if(dns.indexOf("musicpd") != -1 && type != 'MUSICPD' && dns.indexOf("audition") == -1 && type != "ALBUM_REVIEW") {
                    type = 'MUSICPD';
                    recommend = dns.substring(dns.lastIndexOf("/")+1,dns.length);
                }
            }catch(e){}

            if(type == "MUSICPD" || type == "ALBUM_REVIEW"){
                if(buyTp == "mv"){
                    window.open(g_urlBilling + "/pay/down/getBillDownLoad?buyTp=" + buyTp + "&downId=" + trackId+"&mvType="+mvType ,"pgPop","width=750px,height=609px;");
                }else{
                    if(!recommend || isNaN(recommend)){
                        window.open(g_urlBilling + "/pay/down/getBillDownLoad?buyTp=" + buyTp + "&downId=" + trackId ,"pgPop","width=750px,height=609px;");
                    }else{
                        if (type == 'ALBUM_REVIEW') { //앨범리뷰 페이지
                            window.open(g_urlBilling + "/pay/down/getBillDownLoad?buyTp=" + buyTp + "&downId=" + trackId + "&esAlbumId=" + recommend + "&e_point_type=ALBUM_REVIEW","pgPop","width=750px,height=609px;");
                        }else{
                            window.open(g_urlBilling + "/pay/down/getBillDownLoad?buyTp=" + buyTp + "&downId=" + trackId + "&esAlbumId=" + recommend,"pgPop","width=750px,height=609px;");
                        }
                    }
                }
            }else{
                if (dns.indexOf("pay/recommend") != -1) { //벅플4 웹뷰
                    window.open(g_urlBilling + "/pay/down/getBillDownLoad?from=b4&buyTp=" + buyTp + "&downId=" + trackId,"pgPop","width=750px,height=609px;");
                }else{
                    if(typeof type == "undefined") type = "";
                    window.open(g_urlBilling + "/pay/down/getBillDownLoad?buyTp=" + buyTp + "&downId=" + trackId + "&mvType=" + type,"pgPop","width=750px,height=609px;");
                }
            }
            return;
        } else if(typeof trackId == "object") {
            var trackIdStr = "";
            if(trackId.length == 0) return;
            trackId.each(function(){
                var obj = $(this);
                var val = this.value + (obj.attr("buyMinQuality") ? ":"+obj.attr("buyMinQuality") : "");
                if(trackIdStr != "") trackIdStr = trackIdStr + "," + val;
                else trackIdStr = val;
            });

//				정기점검시 적용
            


            if(type == 'MUSICPD' && dns.indexOf("audition") == -1){
                window.open(g_urlBilling + "/pay/down/getBillDownLoad?buyTp=" + buyTp + "&downId="+trackIdStr + "&esAlbumId=" + recommend,"pgPop","width=750px,height=609px;");
            }else if (type == 'ALBUM_REVIEW') {
                window.open(g_urlBilling + "/pay/down/getBillDownLoad?buyTp=" + buyTp + "&downId=" + trackIdStr + "&esAlbumId=" + recommend + "&e_point_type=ALBUM_REVIEW","buy","width=750px,height=609px;");
            }else{
                if(typeof type == "undefined") type = "";
                window.open(g_urlBilling + "/pay/down/getBillDownLoad?buyTp=" + buyTp + "&downId="+trackIdStr + "&mvType="+type,"pgPop","width=750px,height=609px;");
            }
            return;
        }
    },
    listenAlbum : function(album_id,force) {
        if (!album_id) {
//			bugs.ui.showAlert("앨범 정보가 없습니다.", {css : "layerAdultNotice"});
            alert("앨범 정보가 없습니다.");
            return;
        }
        if(typeof force == "undefined") force = true;

        $.ajax({
            url:g_urlAjax + "/album/ajax/albumStreamingTracks",
            data : {albumId : album_id},
            async : false,
            dataType : "json",
            success : function(data) {
                if(data.isAdultTrackAll){
                    if(data.adultCheckType == "CHILD"){
                        bugs.ui.adult.limit();
                    }else if(data.adultCheckType == "NAME_CHECK"){
                        bugs.ui.adult.notice();
                    }else if(data.adultCheckType == "NOT_LOGGED"){
                        bugs.ui.showLoginLayer();
                    }

                    if(data.adultCheckType != "ADULT"){
                        return;
                    }
                }

                if (data.trackIds) {
                    if ($.browser.chrome){
                        setTimeout("bugs.music.listen('"+data.trackIds+"',"+force+")", 200);

                    }else bugs.music.listen(data.trackIds,force);
                }
                else {
//					bugs.ui.showAlert("음원 권리사의 요청으로<br/>듣기 서비스가 제공되지 않는 앨범입니다.", {css : "layerAdultNotice"});
                    alert("재생할 수 없는 앨범입니다.");
                }
            }
        });

    },
    listenEsalbum : function(es_album_id, autoPlay) {
        autoPlay = autoPlay||false;

        if (!es_album_id) {
//			bugs.ui.showAlert("앨범 정보가 없습니다.", {css : "layerAdultNotice"});
            alert("앨범 정보가 없습니다.");
            return;
        }

        $.ajax({
            url:g_urlAjax + "/esalbum/ajax/albumTracks",
            data : {albumId : es_album_id},
            async : false,
            dataType : "json",
            success : function(data) {
                if(data.isAdultTrackAll){
                    if(data.adultCheckType == "CHILD"){
                        bugs.ui.adult.limit();
                    }else if(data.adultCheckType == "NAME_CHECK"){
                        bugs.ui.adult.notice();
                    }else if(data.adultCheckType == "NOT_LOGGED"){
                        bugs.ui.showLoginLayer();
                    }
                    if(data.adultCheckType != "ADULT"){
                        return;
                    }
                }

                if (data.trackIds) {
                    if ($.browser.chrome){
                        setTimeout("bugs.music.listen('"+data.trackIds+"',"+autoPlay+")", 200);

                    }else bugs.music.listen(data.trackIds,autoPlay);
                }
                else {
//					bugs.ui.showAlert("음원 권리사의 요청으로<br/>듣기 서비스가 제공되지 않는 앨범입니다.", {css : "layerAdultNotice"});
                    alert("앨범에 곡 정보가 없습니다.");
                }
            }
        });
    },

    // 스페셜 전체 듣기
    listenSpecial : function(unicontent_id, autoPlay) {
        if (!unicontent_id) {
//			bugs.ui.showAlert("스페셜 정보가 없습니다.", {css : "layerAdultNotice"});
            alert("스페셜 정보가 없습니다.");
            return;
        }

        $.ajax({
            url:g_urlAjax + "/special/ajax/specialTracks",
            data : {unicontentId : unicontent_id},
            async : false,
            success : function(trackIds){
                if (trackIds) {
                    bugs.music.listen(trackIds, autoPlay);
                }
                else {
//					bugs.ui.showAlert("스페셜에 곡정보가 없습니다.");
                    alert("스페셜에 곡 정보가 없습니다.");
                }
            }
        });
    },

    listenArtistTracks : function(artist_id){
        var url = g_urlAjax +"/artist/"+artist_id+"/ajax/popularityTrack";
        $.ajax({type: 'GET',
            url : url,
            data: {"decorator" : "blank"},
            success : function(data){
                if($.trim(data) == ""){
                    alert("인기곡 정보가 없습니다.");
                    return;
                }
                var idArr = data.split(",");
                if(idArr.length == 0 || isNaN(idArr[0])){
                    alert("인기곡 정보 오류입니다.");
                    return;
                }

                bugs.music.listen(data,true);

            },
            error : function(){
                alert("곡 정보를 받아오지 못했습니다.");
            }
        });

    },

    downloadAlbumCache : function(album_id){
        if (!album_id) {
//			bugs.ui.showAlert("앨범 정보가 없습니다.", {css : "layerAdultNotice"});
            alert("앨범 정보가 없습니다.");
            return;
        }
        if(!g_isLogged) {
            bugs.ui.showLoginLayer();
            return;
        }

        var addParams = arguments[1];
        var addParamStr = "";
        if(addParams){
            if(addParams.album_review_id){
                addParamStr = "&epointAlbumId=" + addParams.album_review_id + "&epointTp=ALBUM_REVIEW";
            }
        }

        window.open(g_urlBilling + "/pay/web/buy/album?albumId=" + album_id + addParamStr, "buyAlbumCache", "width=750,height=609");
    },

    downloadAlbum : function(album_id, type) {
        if (!album_id) {
//			bugs.ui.showAlert("앨범 정보가 없습니다.", {css : "layerAdultNotice"});
            alert("앨범 정보가 없습니다.");
            return;
        }
        if(!g_isLogged) {
            bugs.ui.showLoginLayer();
            return;
        }
        var urlStr = "";
        if(typeof type == "undefined") type = "";
        if(type == "esalbum"){
            urlStr = g_urlAjax + "/esalbum/ajax/download/albumTracks";
        }else if(type == "playlist"){
            urlStr = g_urlPlaylists+"/ajax/track/string/"+album_id;
        }else{
            urlStr = g_urlAjax + "/album/ajax/download/albumTracks";
        }

        var recommend = arguments[2];

        if(type == "playlist"){
            $.getJSON(urlStr, {}, function(data) {
                if (data.total_cnt == 0) {
//					bugs.ui.showAlert("앨범에 곡정보가 없습니다.");
                    alert("앨범에 곡 정보가 없습니다.");
                } else {
                    bugs.music.download(data.track_str);
                }

            });
        }else{
            $.ajax({
                type: 'GET',
                url : urlStr,
                data : {albumId : album_id},
                dataType : "json",
                success : function(data) {
                    if(data.isAdultTrackAll){
                        if(data.adultCheckType == "CHILD"){
                            bugs.ui.adult.limit();
                        }else if(data.adultCheckType == "NAME_CHECK"){
                            bugs.ui.adult.notice();
                        }else if(data.adultCheckType == "NOT_LOGGED"){
                            bugs.ui.showLoginLayer();
                        }

                        if(data.adultCheckType != "ADULT"){
                            return;
                        }
                    }

                    if (data.trackIds) {
                        if(type == "albumReview"){
                            bugs.music.download(data.trackIds, "mp3", recommend, "ALBUM_REVIEW");
                        }else if(type == "esalbum"){
                            bugs.music.download(data.trackIds,"",album_id,"MUSICPD");
                        }
                        else{
                            bugs.music.download(data.trackIds);
                        }
                    }
                    else {
//						bugs.ui.showAlert("앨범에 곡정보가 없습니다.")
                        alert("앨범에 곡 정보가 없습니다.");
                    }
                },
                error : function(error) {
                    alert("앨범에 곡 정보를 가져오지 못했습니다.");
                },
                cache : false,
                async : false
            });
        }
    },

    _likeOption : function(option) {
        if(typeof option != "undefined" && typeof option.href != "undefined")
            return {anchor : option, success : function(){}, error : function(){} };
        else
            return bugs.overed( {anchor : null, success : function(){}, error : function(){} },  option || {} );
    },
    _likeActionCb : function(id, action, type, option, toggleFunc, anchor) {
        var panchor = anchor.parent();
        if(panchor.hasClass("likeAlbum") || panchor.hasClass("likeTrack") || panchor.hasClass("likeArtist") || panchor.hasClass("likeMV")) {
            var count = anchor.find("em"); // var count = anchor.siblings().find("em");
            if( count.length > 0) {
                bugs.music._memCount(count, id, type);	//count 변경
                if(action =="add") {
                    anchor.addClass("selected");
                    anchor.attr("onclick", (panchor.hasClass("likeAlbum") == true ? "delLikeAlbum(this)" : (panchor.hasClass("likeTrack") == true ? "delLikeTrack(this)" : (panchor.hasClass("likeArtist") == true ? "delLikeArtist(this)" : "delLikeMusicVideo(this)"))));
                } else if(action =="del") {
                    anchor.removeClass("selected");
                    anchor.attr("onclick", (panchor.hasClass("likeAlbum") == true ? "addLikeAlbum(this)" : (panchor.hasClass("likeTrack") == true ? "addLikeTrack(this)" : (panchor.hasClass("likeArtist") == true ? "addLikeArtist(this)" : "addLikeMusicVideo(this)"))));
                }
            }  else {
                var btns = anchor.parent().parent().children(".btnLike");
                bugs.music._memCount( btns.siblings('.reputation').find(" dd.like"), id, type);

                if(action =="add") {
                    btns.first().hide();
                    btns.last().show();
                }else if(action =="del") {
                    btns.first().show();
                    btns.last().hide();
                }
            }
        } else if(panchor.hasClass("btnArea")) {
            bugs.music._memCount( anchor.parent().prev('.reputation').find(" dd.like"), id, type);
            if(action =="add") {
                anchor.hide();
                anchor.next().show();
            }else if(action =="del") {
                anchor.hide();
                anchor.prev().show();
            }
        }else if(panchor.attr("bsideLikeYN") == "Y"){
            bugs.music._memCount(anchor.find("em"), id, type);	//count 변경
            console.log(toggleFunc);
            anchor.attr("onclick","").off().on("click", function() { toggleFunc(id, option); });

        } else {
            if(typeof toggleFunc == "function") {
                anchor.get(0).onclick = function() {};
                anchor.unbind("click");
                anchor.bind("click", function() { toggleFunc(id, option); });
            }
        }

        if(panchor.hasClass("btn") && panchor.prev('dd.like').length > 0) {
            bugs.music._memCount( panchor.prev('dd.like'), id, type);
            if(action =="add") {
                anchor.hide();
                anchor.next().show();
            }else if(action =="del") {
                anchor.hide();
                anchor.prev().show();
            }
        }
    },
    _likeAction : function(id, action, type, option, toggleFunc) {

        if(!this.isLikeLock){ //ajax LOCK 처리
            this.isLikeLock = true;

            if(typeof id == "undefined") return;
            option = bugs.music._likeOption(option);
            var _act = function() {};
            if(action == "add") {
                _act = likes.add;
            } else if(action == "del") {
                _act = likes.del;
            } else if(action == "adds") {
                _act = likes.adds;
            }
            var idString = "";
            if(typeof id != "string" && typeof id != "number") idString = id.join(",");
            else idString = id;

            _act(idString, type, option, function(result) {
                if(option.anchor != null &&  typeof option.anchor != "undefined") {
                    if(action == "adds") {
                        option.anchor.each(function(idx) {
                            var _opt = bugs.clone(option);
                            bugs.overed( _opt, {anchor : $(this)} );
                            bugs.music._likeActionCb(id[idx], "add", type, _opt, toggleFunc, $(this));
                        });
                    } else {
                        var anchor = $(option.anchor);
                        bugs.music._likeActionCb(id, action, type, option, toggleFunc, anchor);
                    }
                }
                option.success(id);
                bugs.music.isLikeLock = false;
            }, function() {
                option.error(id);
                bugs.music.isLikeLock = false;
            });
        }
    },
    _memCount : function(panel, id, type, callback) {
        if(typeof callback == "undefined") callback = function() {};
        likes.memCount(id, type, function(result) {
//			panel.fadeOut(500, function() {panel.text(result).fadeIn(500);});
            panel.text(Number(result).toLocaleString('en').split(".")[0]);
            callback();
        });
    },
    addLikeTrack : function(track_id, option) {
        bugs.music._likeAction(track_id, "add", "TRACK", option, bugs.music.delLikeTrack);
    },
    addLikeTracks : function(track_id, option) {
        bugs.music._likeAction(track_id, "adds", "TRACK", option, bugs.music.delLikeTrack);
    },
    delLikeTrack : function(track_id, option) {
        bugs.music._likeAction(track_id, "del", "TRACK", option, bugs.music.addLikeTrack);
    },
    addLikeArtist : function(artist_id, option) {
        bugs.music._likeAction(artist_id, "add", "ARTIST", option, bugs.music.delLikeArtist);
    },
    addLikeArtists : function(artist_id, option) {
        bugs.music._likeAction(artist_id, "adds", "ARTIST", option, bugs.music.delLikeArtist);
    },
    delLikeArtist : function(artist_id, option) {
        bugs.music._likeAction(artist_id, "del", "ARTIST", option, bugs.music.addLikeArtist);
    },
    addLikeAlbum : function(album_id, option) {
        bugs.music._likeAction(album_id, "add", "ALBUM", option, bugs.music.delLikeAlbum);
    },
    addLikeAlbums : function(album_id, option) {
        bugs.music._likeAction(album_id, "adds", "ALBUM", option, bugs.music.delLikeAlbum);
    },
    delLikeAlbum : function(album_id, option) {
        bugs.music._likeAction(album_id, "del", "ALBUM", option, bugs.music.addLikeAlbum);
    },
    addLikeMusicVideo : function(mv_id, option) {
        bugs.music._likeAction(mv_id, "add", "MV", option, bugs.music.delLikeMusicVideo);
    },
    addLikeMusicVideoes : function(mv_ids, option) {
        bugs.music._likeAction(mv_ids, "adds", "MV", option, bugs.music.delLikeMusicVideo);
    },
    delLikeMusicVideo : function(mv_id, option) {
        bugs.music._likeAction(mv_id, "del", "MV", option, bugs.music.addLikeMusicVideo);
    },
    addLikeAlbumReview : function(album_review_id, option) {
        bugs.music._likeAction(album_review_id, "add", "ALBUM_REVIEW", option, bugs.music.delLikeAlbumReview);
    },
    addLikeAlbumReviews : function(album_review_ids, option) {
        bugs.music._likeAction(album_review_id, "adds", "ALBUM_REVIEW", option, bugs.music.delLikeAlbumReview);
    },
    delLikeAlbumReview : function(album_review_id, option) {
        bugs.music._likeAction(album_review_id, "del", "ALBUM_REVIEW", option, bugs.music.addLikeAlbumReview);
    },
    addLikeMusicCastChannel : function(musiccast_channel_id, option) {
        bugs.music._likeAction(musiccast_channel_id, "add", "MUSICCAST_CHANNEL", option, bugs.music.delLikeMusicCastChannel);
    },
    addLikeMusicCastChannels : function(musiccast_channel_ids, option) {
        bugs.music._likeAction(musiccast_channel_ids, "adds", "MUSICCAST_CHANNEL", option, bugs.music.delLikeMusicCastChannel);
    },
    delLikeMusicCastChannel : function(musiccast_channel_id, option) {
        bugs.music._likeAction(musiccast_channel_id, "del", "MUSICCAST_CHANNEL", option, bugs.music.addLikeMusicCastChannel);
    },
    setLivebell : function(trackId) {
        bugs.music._cpPopup("livebell", trackId, "ME");
    },
    setLivebellTo : function(trackId) {
        bugs.music._cpPopup("livebell", trackId, "TO");
    },
    setColoring : function(trackId) {
        bugs.music._cpPopup("coloring", trackId, "ME");
    },
    setColoringTo : function(trackId) {
        bugs.music._cpPopup("coloring", trackId, "TO");
    },
    viewMusicVideo : function(mvId, playForce, mvAdultYn) {
        if(typeof mvAdultYn == "undefined") mvAdultYn = 'N';
        if (mvAdultYn=='Y' && !g_isLogged ){
            bugs.ui.showLoginLayer();
            return;
        } 

        if(typeof mvId == "undefined") return;
        if(typeof mvId == "string") {
        } else if(typeof mvId == "object") {
            var mvIdStr = "";
            if(mvId.length == 0) return;
            mvId.each(function() {
                if(mvIdStr != "") mvIdStr = mvIdStr + "," + this.value;
                else mvIdStr = this.value;
            });
            mvId = mvIdStr;
        } else if(typeof mvId == "number") {
            if(location.href.indexOf("duetfestival") < 0 && location.href.indexOf("musiccast/episode") < 0 && location.href.indexOf("snack") < 0) {
                window.location.href = g_urlMusic + "/mv/" + mvId;
                return;
            }
//			if(window.location.href.indexOf("music.bugs.co.kr/mv/") >= 0 || window.location.href.indexOf("/music/mv/") >= 0) {	// 뮤직비디오 페이지URL확인
//				window.location.href = g_urlMusic + "/mv/" + mvId;
//			} else {
//				window.open(g_urlMusic + "/mv/" + mvId, '_blank');
//			}
//			return;
        }

        if(!this.flashInstalled) {
            bugs.layermenu.removeOldLayer();
            this.flashPopup.show();
            return;
        }

        var controller = this.getPlayerController();
        if(!controller){
            this.checkMacFlashLimit();
            return;
        }

        if(controller.isMvPlayerExist()) {
            controller.addMusicVideo(mvId, playForce);
        }
        else {
            var uagent = navigator.userAgent.toLocaleLowerCase();
            var isSafari = (uagent.search("mac os x") >= 0 && uagent.search("safari") >= 0) ? true : false;
            var h = isSafari ? 714 : 671;
            window.open(g_urlMusic + "/mvPlayer?mvId=" + mvId, "BugsMvPlayer", "width=970,height=" + h + ",resizable=0");
        }

        //this._loadController(null, mvId, playForce);
    },
    viewMV : function(mvId, mvAdultYn) {
        if(typeof mvAdultYn == "undefined") mvAdultYn = 'N';
        bugs.music.viewMusicVideo(mvId, true, mvAdultYn);
    },
    addMVList : function(mvId, mvAdultYn) {
        if(typeof mvAdultYn == "undefined") mvAdultYn = 'N';
        bugs.music.viewMusicVideo(mvId, false, mvAdultYn);
    },
    downloadMusicVideo : function(mvId, quality, mvAdultYn) {
        if(typeof mvAdultYn == "undefined") mvAdultYn = 'N';
        if(typeof quality == "undefined") quality = 'NONE';
        bugs.music.download(mvId, "mv",mvAdultYn, quality);
    },
    dnFullMV : function(mvId, mvAdultYn) {
        if(typeof mvAdultYn == "undefined") mvAdultYn = 'N';
        bugs.music.downloadMusicVideo(mvId, bugs.music.MV_QUALITY_FULLHD,mvAdultYn);
    },
    dnHdMV : function(mvId, mvAdultYn) {
        if(typeof mvAdultYn == "undefined") mvAdultYn = 'N';
        bugs.music.downloadMusicVideo(mvId, bugs.music.MV_QUALITY_HD,mvAdultYn);
    },
    dnSdMV : function(mvId, mvAdultYn) {
        if(typeof mvAdultYn == "undefined") mvAdultYn = 'N';
        bugs.music.downloadMusicVideo(mvId, bugs.music.MV_QUALITY_SD,mvAdultYn);
    },
    dnMp4MV : function(mvId, mvAdultYn) {
        if(typeof mvAdultYn == "undefined") mvAdultYn = 'N';
        bugs.music.downloadMusicVideo(mvId, bugs.music.MV_QUALITY_MP4,mvAdultYn);
    },

    moreView : function(descObj, height){
        var _desc = $("p, .bioCont", descObj);
        var _height = _desc.height();
        if(typeof _height == "number" && _height <= height) {
            $(".more", descObj).hide();
        } else {
            _desc.height(height);
            $(".more", descObj).show();
        }
    }

};



bugs.music.albumList = bugs.create();
bugs.music.albumList.prototype = {
    initialize : function(id, type, page, row, total, sort) {
        this.id = id;
        this.type = type;
        this.page =eval(page);
        this.row = eval(row);
        this.total = eval(total);
        this.sort = sort;
        this.name = type + id;
        this.box = $("#id" + this.name);
        this.boxList = $("#idList" + this.name);
    },
    initCheckBox : function() {
        if(typeof this.name != 'string') return;
        var arrChecked = [];

        $("#id" + this.name + " > ul .listRow").each(function() {
            var li = $(this);
            var _cc = new bugs.form.checkbox(li.find("div.check"), "_chk"+name, {
                checked : function() {
                    li.addClass("rowSelect");
                },
                unchecked : function() {
                    li.removeClass("rowSelect");
                }
            });
            if(typeof _cc != "undefined" && _cc.isDisabled() == false) {
                arrChecked.push(_cc);
            }
        });

        this.cbox = new bugs.form.checkbox($("#id" + this.name + " .oneclickAction div.check"), "_checkAll"+this.name, {
            checked : $.proxy( function() {
                for(var i=0;i<this.trackChecked.length;i++) {
                    this.trackChecked[i].checked();
                }
            }, this),
            unchecked : $.proxy( function() {
                for(var i=0;i<this.trackChecked.length;i++) {
                    this.trackChecked[i].unchecked();
                }
            }, this)
        });

        this.trackChecked = arrChecked;
    },
    more : function() {
        if(this.row *  eval(this.page) > this.total) return;

        var _page = eval(this.page) + 1;
        var url = g_urlMusic + "/album/ajax/list";
        var data = {type : this.type, id : this.id, decorator : "blank"};
        if(typeof this.page != "undefined") data.page = _page;
        if(typeof this.row != "undefined") data.row = this.row;
        if(typeof this.sort != "undefined") data.sort = this.sort;
        $.get(url, data, $.proxy(function(result) {
            this.boxList.append(result);
            this.page = _page;
            if(this.row * _page > this.total) this.boxList.next('.moreList').hide();
        }, this), "html");
    },
    chkCheckBox : function(btn) {
        var chks = $("ul li input:checkbox:checked", this.box);
        if(chks.length == 0) {
            this.alert(btn);
            //bugs.ui.showAlert("선택한 곡이 없습니다.", {});
            return false;
        } else return chks;

    },
    _getAlbumTitleTrackIds : function(albumId) {
        var albumIdStr = "";
        if(albumId.length == 0) {
//			bugs.ui.showAlert("앨범을 선택하여 주십시오.", {css : "layerAdultNotice"});
            alert("앨범을 선택해 주세요.");
            return;
        }
        for(var i=0;i < albumId.length;i++) {
            albumIdStr += $(albumId[i]).val();
            if(i < albumId.length - 1) albumIdStr +=",";
        }
        return albumIdStr;
    },
    addToMyAlbum : function(btn) {
        if(!g_isLogged) {
            bugs.ui.showLoginLayer();
            return;
        }
        else if(chks = this.chkCheckBox(btn))
        {
            var albumIdStr = this._getAlbumTitleTrackIds(chks);
            if (!albumIdStr) {
//				bugs.ui.showAlert("앨범을 선택하여 주십시오.", {css : "layerAdultNotice"});
                alert("앨범을 선택해 주세요.");
                return;
            }
            $.post(
                g_urlMusic + "/album/ajax/albumTitle",
                {albumIds : albumIdStr},
                function(trackIds) {
                    if (trackIds) {
                        playlists.showPlaylistLayer($(btn), trackIds);
                    }
                    else {
//							bugs.ui.showAlert("앨범의 대표 타이틀 정보가 없습니다.");
                        alert("앨범의 대표 타이틀 정보가 없습니다.");
                    }
                }
            );

        }
    },
    listenAlbumTitleAll : function(btn) {
        this.cbox.checked();

        var listenForce = arguments[1];if(listenForce==null)listenForce=true;

        if(chks = $("ul li input:checkbox", this.box)) {
            var albumIdStr = this._getAlbumTitleTrackIds(chks);
            if (!albumIdStr) {
//				bugs.ui.showAlert("앨범을 선택하여 주십시오.", {css : "layerAdultNotice"});
                alert("앨범을 선택해 주세요.");
                return;
            }
            $.post(
                g_urlMusic + "/album/ajax/albumTitle",
                {albumIds : albumIdStr},
                function(trackIds) {
                    if (trackIds) {
                        bugs.music.listen(trackIds,listenForce);
                    }
                    else {
//							bugs.ui.showAlert("앨범의 대표 타이틀 정보가 없습니다.");
                        alert("앨범의 대표 타이틀 정보가 없습니다.");
                    }
                }
            );
        }
    },
    listenAlbumTitle : function(btn) {
        var listenForce = arguments[1];if(listenForce==null)listenForce=true;
        if(chks = this.chkCheckBox(btn)) {
            var albumIdStr = this._getAlbumTitleTrackIds(chks);
            if (!albumIdStr) {
//				bugs.ui.showAlert("앨범을 선택하여 주십시오.", {css : "layerAdultNotice"});
                alert("앨범을 선택해 주세요.");
                return;
            }
            $.post(
                g_urlMusic + "/album/ajax/albumTitle",
                {albumIds : albumIdStr},
                function(trackIds) {
                    if (trackIds) {
                        bugs.music.listen(trackIds, listenForce);
                    }
                    else {
//							bugs.ui.showAlert("앨범의 대표 타이틀 정보가 없습니다.");
                        alert("앨범의 대표 타이틀 정보가 없습니다.");
                    }
                }
            );
        }
    },
    downloadAlbumTitle : function(btn) {
        if(!g_isLogged) {
            bugs.ui.showLoginLayer();
            return;
        }

        if(chks = this.chkCheckBox(btn)) {
            var albumIdStr = this._getAlbumTitleTrackIds(chks);
            if (!albumIdStr) {
//				bugs.ui.showAlert("앨범을 선택하여 주십시오.", {css : "layerAdultNotice"});
                alert("앨범을 선택해 주세요.");
                return;
            }
            $.post(
                g_urlMusic + "/album/ajax/albumTitle",
                {albumIds : albumIdStr},
                function(trackIds) {
                    if (trackIds) {
                        bugs.music.download(trackIds);
                    }
                    else {
//							bugs.ui.showAlert("앨범의 대표 타이틀 정보가 없습니다.");
                        alert("앨범의 대표 타이틀 정보가 없습니다.");
                    }
                }
            );
        }
    },
    likesAlbumTitle : function(btn) {
        if(chks = this.chkCheckBox(btn)) {
            var albumIdStr = this._getAlbumTitleTrackIds(chks);
            if (!albumIdStr) {
//				bugs.ui.showAlert("앨범을 선택하여 주십시오.", {css : "layerAdultNotice"});
                alert("앨범을 선택해 주세요.");
                return;
            }
            $.post(
                g_urlMusic + "/album/ajax/albumTitle",
                {albumIds : albumIdStr},
                function(trackIds) {
                    if (trackIds) {
                        likes.adds(trackIds, 'TRACK', function() {}, function() {});
                    }
                    else {
//							bugs.ui.showAlert("앨범의 대표 타이틀 정보가 없습니다.");
                        alert("앨범의 대표 타이틀 정보가 없습니다.");
                    }
                }
            );
        }
    },
    alert : function(btn) {
        var html = '<p class="layerInfoMsg inform" style="display:none;">&nbsp;<span>앨범을 먼저 선택해 주세요.</span></p>';
        var oBtn = $(btn);
        var _offset = oBtn.offset();
        var plusTop = navigator.appName.match(/Explorer/i) ? 0 : 9;
        var alertLayer = $(html).appendTo("body").css({
            "top" : (_offset.top+oBtn.height()+plusTop)+"px",
            "left" : _offset.left+"px",
            width : 142
        }).fadeIn(500).delay(1500).fadeOut(500);

    }
};

bugs.music.topSpotList = {
    page : 1,
    totalPage : null,
    elemItems : "#topSpotList > ul",

    getTotalPage : function() {
        if (this.totalPage == null) {
            this.totalPage = $(this.elemItems).length || 1;
        }
        return this.totalPage;
    },

    prev : function() {
        this.page = (this.page <= 1) ? this.getTotalPage() : this.page-1;
        this.show();
    },

    next : function() {
        this.page = (this.page >= this.getTotalPage()) ? 1 : this.page+1;
        this.show();
    },

    show : function() {
        $(this.elemItems).hide();
        $(this.elemItems).eq(this.page-1).show();
    }
};

bugs.music.trackList = bugs.create();
bugs.music.trackList.prototype = {

    trackChecked : [],
    lastClickCheckBox : null,
    initialize : function(id, type, albumDnlOnly, myAlbumId) {
        this.id = id;
        this.albumDnlOnly = albumDnlOnly;
        this.myAlbumId = myAlbumId;
        this.name = type+id;
        this.box = $("#" + this.name);


    },
    initCheckBox : function() {
        if(typeof this.name != 'string') return;
        var arrChecked = [];

        $("#" + this.name + " > table.list.trackList > tbody > tr").each(function() {
            var tr = $(this);
            var _cc = tr.find("input:checkbox");
            if(typeof _cc != "undefined" && _cc.prop("disabled") == false) {
                arrChecked.push(_cc);
            }
        });

        this.cbox = $("#" + this.name + " > div.listControls  label > input:checkbox");

        this.cbox.on("change",function(e){
            this.lastClickCheckBox = null;
            var checked = this.cbox.is(":checked");
            for(var i=0, size = this.trackChecked.length || 0; i<size; i++) {
                this.trackChecked[i].prop("checked",checked);
            }

            if(typeof(this.checkAllCallBackFunc) != "undefined" && typeof(this.checkAllCallBackFunc) == "function"){
                this.checkAllCallBackFunc();
            }

        }.bind(this));

        this.discCheck = $("#" + this.name + "> table input[name=disc]").on("change",function(event){
            var checked = event.target.checked;
            var discId = event.target.value;
            for(var i=0, size = this.trackChecked.length; i<size; i++){
                if(this.trackChecked[i].is("[name=check][disc_id="+discId+"]")){
                    this.trackChecked[i].prop("checked",checked);
                }
            }
        }.bind(this));
        this.trackChecked = arrChecked;

        var chks = $("table.list.trackList > tbody > tr input:checkbox[name=check]", this.box).not("input:disabled");
        chks.on("click",function(e){

            if(e.shiftKey && this.lastClickCheckBox != null){

                var startIdx = chks.index(this.lastClickCheckBox);
                var endIdx = chks.index(e.target);
                if(startIdx > endIdx){
                    var tempIdx = endIdx;
                    endIdx = startIdx;
                    startIdx = tempIdx;
                }
                var isCheck = $(e.target).is(":checked") ? false : true;

                for(;startIdx <= endIdx; startIdx++){
                    chks.eq(startIdx).prop("checked",!isCheck);
                }

            }
            this.lastClickCheckBox = $(e.target);

        }.bind(this));
    },

    setCheckAllCallBackFunc : function(checkAllCallBackFunc){
        this.checkAllCallBackFunc = checkAllCallBackFunc;
    },

    checkAllAdultTrack : function(type){
        var items = null;
        if(type == "streamAll"){
            items = $("table.list.trackList > tbody > tr input:hidden[name=_isStream]", this.box);
        }else{
            items = $("table.list.trackList > tbody > tr > td >  input:checkbox:checked:not(:disabled)", this.box);
        }

        if(items.length <= 0)
            return false;

        var isAdultAll = true;
        var adultFuncType = null;
        items.each(function(idx){
            var tr = null;
            var adultType = null;
            if(type == "streamAll"){
                tr = items.eq(idx);
                adultType = tr.attr("adultType");
            }else{
                tr = items.eq(idx).parents("tr");
                adultType = tr.find("input:hidden[name="+(type == "down" ? "_isDown" : "_isStream")+"]").attr("adultType");
            }

            if(!adultType){
                isAdultAll = false;
            }

            if(adultType){
                adultFuncType = adultType;
            }

            if(!isAdultAll){
                return false;
            }

        });

        if(isAdultAll){
            if(adultFuncType == "2"){
                bugs.ui.adult.limit();
            }else if(adultFuncType == "3"){
                bugs.ui.adult.notice();
            }else{
                bugs.ui.showLoginLayer();
            }

            return true;
        }

        return false;
    },

    chkCheckBox : function(btn) {
        var chks = $("table.list.trackList > tbody > tr input:checkbox[name=check]:checked", this.box).not("input:disabled");
        return this.__chkCheckBox(btn, chks);
    },

    chkStreamCheckBox : function(btn, force) {
        var disabledList = $("table.list.trackList > tbody > tr:has(input:hidden[name=_isStream]:disabled) > td > input:checkbox:checked:not(:disabled)", this.box);
        if(disabledList.length > 0) {
            
        }
        var checkCount = $("table.list.trackList > tbody > tr input:checkbox[name=check]:checked", this.box).length;
        if( checkCount > disabledList.length) {
            var chks = this.chkStreamCheckBoxAndPlay(btn);
            if(chks){
                if(typeof force == "undefined" || force == null || force == "") force = false;

                bugs.music.listen(chks, force);


                try{//검색로그용
                    if(typeof bugsSearchLog != "undefined"){
                        bugsSearchLog.setTrackListAction(chks, force?"play":"playlist");
                    }
                }catch(e){}

                try{//클릭로그용
                    if(typeof RecommendClickLog != "undefined"){
                        RecommendClickLog.setItemID(RecommendClickLog.makeTrackItemIdStr(chks));
                    }
                }catch(e){}

                return;
            }
        }

        if(checkCount == 0){
            alert("곡을 선택해 주세요.");
        }else{
            this.chkStreamCheckBoxAndPlay(btn);
        }
        return;
    },
    chkStreamCheckBoxAndPlay : function(btn) {
        var chks = $("table.list.trackList > tbody > tr:has(input:hidden[name=_isStream]:not(:disabled)) > td >  input:checkbox:checked:not(:disabled)", this.box);

        if(chks.length <= 0){
            if(this.checkAllAdultTrack("stream")){
                return;
            }
            alert("재생할 수 있는 곡이 없습니다.");
            return;
        }else{

            return this.__chkCheckBox(btn, chks);
        }
    },
    chkDnlCheckBox : function(btn , isdown) {

        var disabledList = $("table.list.trackList > tbody > tr:has(input:hidden[name=_isDown]:disabled) > td > input:checkbox:checked:not(:disabled)", this.box);
        if(disabledList.length > 0) {
            if(this.albumDnlOnly){
                alert("앨범전체 구매만 가능한 앨범 입니다.");
                return;
            }

        }
        var checkCount = $("table.list.trackList > tbody > tr input:checkbox[name=check]:checked", this.box).length;
        if(checkCount > disabledList.length) {
            var chks = this.chkDnlCheckBoxAndPlay(btn, isdown);
            if(chks){
                bugs.music.download(chks);
                try{//검색로그용
                    if(typeof bugsSearchLog != "undefined"){
                        bugsSearchLog.setTrackListAction(chks, "down", "track");
                    }
                }catch(e){}
                return;
            }
        }



        if(checkCount == 0){
            alert("곡을 선택해 주세요.");
        }else{
            this.chkDnlCheckBoxAndPlay(btn);
        }
        return;
    },
    chkDnlCheckBox2 : function(btn) {
        var disabledList = $("table.list.trackList > tbody > tr:has(input:hidden[name=_isDown]:disabled) input:checkbox:checked:not(:disabled)", this.box);
        if(disabledList.length > 0) {
            if(this.albumDnlOnly){
                alert("앨범전체 구매만 가능한 앨범 입니다.");
                return null;
            }

        }

        var checkCount = $("table.list.trackList > tbody > tr input:checkbox[name=check]:checked", this.box).length;
        if(checkCount == 0){
            alert("곡을 선택해 주세요.");
            return;
        }
        else if(checkCount >= disabledList.length) {
            var chks = this.chkDnlCheckBoxAndPlay(btn);
            return chks;
        }


    },
    chkDnlCheckBoxAndPlay : function(btn, isdown) {
        var chks = $("table.list.trackList > tbody > tr:has(input:hidden[name=_isDown]:not(:disabled)) input:checkbox:checked:not(:disabled)", this.box);
        if(chks.length <= 0){
            if(this.checkAllAdultTrack("down")){
                return;
            }
            alert("다운로드 가능한 곡이 없습니다.");
            return;
        }else{
            return this.__chkCheckBox(btn, chks, isdown);
        }
    },
    __chkCheckBox : function(btn, chks,isdown) {
        if(chks.length == 0) {
            alert("곡을 선택해 주세요.");
            return false;
        }
        else if (isdown !=null && chks.length >250){
            alert("다운로드는 한 번에 최대 250곡까지만 가능합니다.");
            return false;
		}
        else return chks;

    },
    listen : function(btn) {
        var listenForce = arguments[1];
        if(listenForce==null)listenForce=true;
        this.chkStreamCheckBox(btn,listenForce);
    },
    addToMyAlbum : function(btn) {
        if(!g_isLogged) {
            bugs.ui.showLoginLayer();
            return;
        }
        else if(chks = this.chkCheckBox(btn))
        {
            var tempChks = [];
            $(chks).each(function(){
                if(this.value != "" && this.value > 0){
                    tempChks.push($(this));
                }else{
                    $(this).attr("checked",false);
                }
            });
            if(tempChks.length <= 0){
                alert("담을 수 있는 곡이 없습니다.");
                return;
            }
            playlists.showPlaylistLayer($(btn), chks);



            try{//검색로그용
                if(typeof bugsSearchLog != "undefined"){
                    bugsSearchLog.setTrackListAction(chks, "my_album");
                }
            }catch(e){}
        }
    },
    listenAll : function(btn, type, tapToPlay, param) {

        if(tapToPlay) {
            var ieVersion = bugs.utils.getIEVersion();
            if(ieVersion != 0 && ieVersion < 8) {
                alert("Internet Explorer 8 이상에서 이용하실 수 있는 기능입니다.");
                return;
            }
        }

        var aList = $("table.list.trackList > tbody > tr input:hidden[name=_isStream]:not(:disabled)", this.box);
        if(aList.length == 0) {
            if(this.checkAllAdultTrack("streamAll", aList)){
                return;
            }
            alert("재생 가능한 곡이 없습니다.");
            return;
        }

        //this.cbox.checked();
        var chks;

        if(type == "TOP100"){
            chks = $("table.list.trackList > tbody > tr input:hidden[name=_isStream]", this.box).not("input:disabled , input[isRecommend=Y]");
        }else{
            chks = $("table.list.trackList > tbody > tr input:hidden[name=_isStream]", this.box).not("input:disabled");
        }

        if(typeof chks == "undefined") return;
        if(typeof chks == "string") {
        } else if(typeof chks == "object") {
            var trackIdStr = "";
            if(chks.length == 0) {
                bugs.ui.showAlert("음악을 선택하여 주십시오.", {css : "layerAdultNotice"});
                return;
            }
            for(var i=0;i < chks.length;i++) {
                trackIdStr += $(chks[i]).val();
                if(i < chks.length - 1) trackIdStr +=",";
            }
            //alert(trackIdStr + " 재생");
            chks = trackIdStr;
        }

        try{//검색로그용
            if(typeof bugsSearchLog != "undefined"){
                bugsSearchLog.setTrackListAction(aList,tapToPlay ? "replace":"play");
            }
        }catch(e){}

//		if(this.checkMacPlayerLinked(trackId, playForce, param)) {	// Mac Player 연동이라면 Mac Player 호출하고 return
        if(this.checkMacPlayerLinkedForListenAll(trackIdStr, this, btn, type, tapToPlay, param)) {	// Mac Player 연동이라면 Mac Player 호출하고 return
            return;
        }


        if(bugs.music.useHtml5Player()) {	// LocalStorage 를 지원하지 않는 경우에만 Flash 사용 가능 여부 체크
            bugs.music.sendCheckWebPlayerOn();

            setTimeout(function() {
                bugs.music.sendTracksToPlayerBridge(chks, true, (tapToPlay != undefined ? tapToPlay : false));	// playForce 옵션 / tackToPlay 추가하기

            }.bind(this), 700);

            return true; // return 이 없으면 팝업이 없다고 판단하므로
        } else {
            if(!bugs.music.flashInstalled) {
                bugs.layermenu.removeOldLayer();
                bugs.music.flashPopup.show();
                return;
            }

            var controller = bugs.music.getPlayerController();
            if(!controller) {
                //        	bugs.music.checkMacFlashLimit();
                return;
            }

            if(controller.isPlayerExist()) {

                if(tapToPlay == true) {
                    controller.tapToPlay(chks);
                } else {
                    controller.addTrack(chks, true);
                }


                return true; // return 이 없으면 팝업이 없다고 판단하므로
            }
            else {
                if(typeof chks != "string"){
                    chks = chks+"";
                }
                var url = g_urlMusic + "/newPlayer"; // ?trackId=" + chks;
                if (typeof(param) != "undefined"){
                    url += "?"+param;
                }

                var uagent = navigator.userAgent.toLocaleLowerCase();
                var isSafari = (uagent.search("mac os x") >= 0 && uagent.search("safari") >= 0) ? true : false;
                var h = isSafari ? 710 : 671;

                return bugs.music.openWebPlayerByPost(url, chks, false, tapToPlay, h);  // POST 방식으로 호출
            }
        }

//		bugs.music.listen(chks, listenForce);
    },

    checkMacPlayerLinkedForListenAll : function(trackId, obj, btn, type, tapToPlay, param) {
        if(param != null && param.macPlayerCheck == "N")
            return false;

        if(!bugs.music.isMacPlayerSupport())
            return false;

        var dpc = bugs.cookie.get('dpConfirm') || "";
        var dp = bugs.cookie.get('defaultPlayer') || "";

        if(dpc == "" || dpc == "Y") {	// 설정이 안되어 있다면
            bugs.ui.showPlayerSelectLayer("TRACKALL", {trackId: trackId, autoplay : true, obj: obj, btn: btn, type: type, tapToPlay: tapToPlay});
            return true;
        } else {
            if(dp == "" || dp == "WEB") {
                return false;	// WEB Player 설정이니, 그냥 return false;
            } else if(dp == "MAC") {
                console.log("RUN MAC PLAYER!");
                bugs.ui.toastMacPlayerLinked();

                setTimeout(function() {
                    var runScheme =  'app/tracks/'+trackId;
                    runScheme += '?autoplay=Y';	// 항상 autoplay
                    runScheme += '&deleteAll=' + (tapToPlay ? 'Y' : 'N');

                    location.href = bugs.app.getBugsScheme(runScheme, 3);
                }, 2500);

                return true;
            }
        }

        return false;
    },

    download : function(btn, isdown) {
        if(chks = this.chkDnlCheckBox(btn,isdown)){
            bugs.music.download(chks);
        }
    },
    download2 : function(btn) {
        var chks = this.chkDnlCheckBox2();
        if(chks){
            var recommend = arguments[1];
            var type = arguments[2];
            if(isNaN(recommend) || recommend == 0){
                bugs.music.download(chks);
            }else{
                if(type == 'MUSICPD'){
                    bugs.music.download(chks,'',recommend,type);
                }
                else if(type == 'ALBUM_REVIEW'){
                    bugs.music.download(chks,'',recommend,type);
                }
                else{
                    bugs.music.download(chks);
                }
            }
        }
    },

    adds : function(btn) {
        if(chks = this.chkCheckBox(btn)) {
            var ids = [];
            chks.each(function() {
                ids.push(this.value);
            });
            bugs.music.addLikeTracks(ids, {
                anchor : $("ul li:has(input:checkbox:checked) .btnAction a:odd", this.box),
                success : $.proxy(function() {
                    for(var i=0;i<this.trackChecked.length;i++) {
                        this.trackChecked[i].unchecked();
                    }
                }, this)
            });
        }
    },
    alert : function(btn, msg) {
        alert("먼저 곡을 선택해 주세요.");

    },
    showPopup : function(msg, option) {
        if(this._popup && this._popup != null) {
            this._popup.remove();
            this._popup = null;
        }
        this._popup = new bugs.ui.popup(msg, option);
        this._popup.show();
    },
    downloadAll : function(btn) {
        var aList = $("input:hidden[name=_isDown]:not(:disabled)", this.box);
        var recommend = arguments[1];
        var type = arguments[2];
        if(aList.length == 0) {
            alert("다운로드 가능한 곡이 없습니다.");
            return;
        }

        $(this.trackChecked).each(function() {
            var _this  = this;
            aList.each(function() {
                if(this.value == _this.val()) _this.checked();
            });

        });

        if(chks = this.chkDnlCheckBox(btn)){
            if(type == 'MUSICPD') bugs.music.download(chks, '', recommend, type);
            else bugs.music.download(chks);
        }
    },

    deleteTrack : function(btn, trackId, type, page){

        if(!g_isLogged){
            bugs.ui.showLoginLayer();
            return;
        }
        var idArr = [];
        var chk = null;
        if(typeof btn == "object" && typeof trackId != "undefined" && trackId != ""){
            idArr.push(trackId);
            chk = $(btn);
        }else{
            chk = this.chkCheckBox(btn);
            if(!chk){

                return false;
            }
        }

        if(type == "LISTEN_TRACK" || type == "LISTEN_TRACK_MUCH"){
            for(var i=0, size=chk.length; i<size; i++){
                idArr.push(chk[i].value);
            }
            if(type == "LISTEN_TRACK_MUCH") {
                bugs.confirm("선택한 곡을 많이 들은 곡에서 삭제하시겠습니까?\n" +
                    "※ 곡이 삭제되면 재생횟수가 초기화됩니다.", function() {
                    this.deleteListenTrack(idArr, type, function(){
                        if(chk.length > 1){
                            chk.each(function(){
                                $(this).parents("tr").remove();
                            });
                        }
                    });
                }.bind(this));
            } else {
                this.deleteListenTrack(idArr, type, function(){
                    if(chk.length > 1){
                        chk.each(function(){
                            $(this).parents("tr").remove();
                        });
                    }
                });
            }
        }else if(type =="MYALBUM_TRACK"){
            for(var i=0, size=chk.length; i<size; i++){
                idArr.push($(chk[i]).parents("tr").find("input:hidden[name=_playlistTrackId]").val());
            }

            var version = $('input#master_version').val();
            var list = this.getCheckboxAll();
            var idArr2 = [];
            list.each(function(){
                if(this.value != ""){
                    idArr2.push(this.value);
                }
            });

            for(var index in idArr){
                idArr2 = idArr2.filter(function(item) {
                    return item != idArr[index];
                });
            }

            playlists.updatePlaylistTrack(this.myAlbumId, idArr2.join(","), version, page, 0,
                function(){
                    alert("삭제 되었습니다.", function(){
                        location.reload();
                    });
                },
                function(){
                    alert("삭제하지 못했습니다.");
                });

        }

    },

    deleteListenTrack : function(idArr, type, callBack){
        $.ajax({
            type: 'POST',
            url : g_urlMusic + "/user/library/listen/track/delete",
            data : {trackIds : idArr.join(","), type : type},
            success : function(data) {
                if(data.isSuccess){
                    if(typeof callBack == "function"){
                        callBack();
                    }
                    //bugs.music.myAlbumList.resetGnbMyAlbumList();
                    alert("삭제되었습니다.", function() {
                        bugs.navigator.goState(document.location.href);
                    });
                }else{
                    if(!data.isLogged){
                        bugs.ui.showLoginLayer();
                        return;
                    }
                    alert("선택한 곡을 삭제하지 못했습니다.");
                }
            }.bind(this),
            error : function(error) {
                bugs.ui.showAlert("선택한 곡을 삭제하지 못했습니다.");
            },
            dataType : "JSON",
            cache : false
        });
    },


    deleteMyAlbumTrack : function(myAlbumId, idArr, callBack){
        playlists.deletes_playlistTrackId(myAlbumId, idArr.join(","), function(){
                if(typeof(callBack) == "function"){
                    callBack();
                    alert("삭제되었습니다.", function() {
                        bugs.navigator.goState(document.location.href);
                    });
                }
            },
            function(){
                alert("선택한 곡을 삭제하지 못했습니다.");
            });
    },

    updateMyAlbumTrackPriority : function(page){
        bugs.confirm("곡 순서를 저장하시겠습니까?", function() {
            var version = $('input#master_version').val();
            var list = this.getMyAlbumTrackIds();
            var idArr = [];
            list.each(function(){
                if(this.value != ""){
                    idArr.push(this.value);
                }
            });

			playlists.updatePlaylistTrack(this.myAlbumId,idArr.join(","), version, page, 0, function(){
					list.prop("checked",false);
					alert("저장 되었습니다.", function () {
                        location.reload();
                    });
                },
                function(){
                    alert("곡 순서를 저장하지 못했습니다.");
                });
        }.bind(this));
    },

    getCheckboxAll : function(){
        return this.box.find(" tbody > tr input:checkbox[name=check]");
    },

    getMyAlbumTrackIds : function(){
        return this.box.find(" tbody > tr input:hidden[name=_playlistTrackId]");
    },

    getSelectedRow : function(){
        return this.box.find("tbody > tr:has(input:checkbox[name=check]:checked)");
    },

    moveUp : function(isTop){
        //이동 버튼
        var selectedItems = this.getSelectedRow();
        if(selectedItems.length == 0) {
            bugs.ui.showAlert("곡을 선택해주세요.");
            return false;
        }
        var itemArr = [];
        selectedItems.each(function(){
            itemArr.push($(this));
        });

        var targetItem = null;
        if(isTop){
            targetItem = this.box.find("tbody > tr:first-child");
            this.moveItems(itemArr, targetItem, true);
        }else{
            if(itemArr[itemArr.length-1].index() <= itemArr.length-1){
                return;
            }
            var item = null;
            for(var i=0, size=itemArr.length; i<size; i++){
                item = itemArr[i];
                if(item.index() == i){
                    continue;
                }
                targetItem = (item.index() <= 0) ? item : item.prev();
                this.moveItems([item], targetItem, true);
            }

        }

        bugs.html.scrollTo({target:selectedItems[0], delay:0, offset : -150});
        return false;
    },

    moveDown : function(isBottom){
        var selectedItems = this.getSelectedRow();
        if(selectedItems.length == 0) {
            bugs.ui.showAlert("곡을 선택해주세요.");
            return false;
        }
        var itemArr = [];
        selectedItems.each(function(){
            itemArr.push($(this));
        });

        var targetItem = null;
        if(isBottom){
            targetItem = this.box.find("tbody > tr:last-child");
            this.moveItems(itemArr, targetItem);
        }else{
            var tCnt = this.box.find("tbody > tr").length;
            if(itemArr[0].index() >= tCnt - itemArr.length){
                return;
            }
            var size = itemArr.length;
            var item = null;
            for(var i=itemArr.length-1; i>=0; i--){
                item = itemArr[i];
                if(item.index()>= tCnt - (size-i)) {
                    continue;
                }
                targetItem = (item.is(":last-child")) ? item : item.next();
                this.moveItems([item], targetItem);
            }
        }

        bugs.html.scrollTo({target:selectedItems[0], delay:0, offset : -150});
        return false;
    },



    //선택한 트랙 순서 이동
    moveItems : function(selectedItems, targetItem, insertBefore){
        var tmp = $("<tr></tr>");
        if(insertBefore) tmp.insertBefore(targetItem);
        else tmp.insertAfter(targetItem);
        var curr = tmp;
        for(var i = 0; i < selectedItems.length; i++) {
            selectedItems[i].insertAfter(curr);
            curr = selectedItems[i];
        }
        tmp.remove();
    }
};



bugs.music.musicvideoList = bugs.create();
bugs.music.musicvideoList.prototype = {
    trackChecked : [],
    initialize : function(id, type, page, row, total, check) {
        this.id = id;
        this.type = type;
        this.page =eval(page);
        this.row = eval(row);
        this.total = eval(total);
        this.check = check;

        this.name = type + id;
        this.box = $("#id" + this.name);
    },
    initCheckBox2 : function() {
        if(typeof this.name != 'string') return;
        var arrChecked = [];

        $("#id" + this.name + " > ul .listRow").each(function() {
            var li = $(this);
            var lichk = li.find("input:checkbox[name^='_chk']");
            var _cc =  new bugs.form.checkbox(li.find("span.check"), "_chk"+name, {
                checked : function() {
                    li.addClass("rowSelect");

                    // 19금일 경우 선택 못하도록
                    //if (g_isLogged == false || (g_isLogged==true && ))
                    
                },
                unchecked : function() {
                    li.removeClass("rowSelect");
                }
            });
            if(typeof _cc != "undefined" && _cc.isDisabled() == false) {
                arrChecked.push(_cc);
            }

        });
        this.cbox = new bugs.form.checkbox($("#id" + this.name + " > div.listBtns > span.check"), "_checkAll"+this.name, {
            checked : $.proxy( function() {
                for(var i=0;i<this.trackChecked.length;i++) {
                    this.trackChecked[i].checked();
                }
            }, this),
            unchecked : $.proxy( function() {
                for(var i=0;i<this.trackChecked.length;i++) {
                    this.trackChecked[i].unchecked();
                }
            }, this)
        });
        this.trackChecked = arrChecked;
    },
    initCheckBox : function() {
        if(typeof this.name != 'string') return;
        var arrChecked = [];

        $("#id" + this.name + " > ul .listRow").each(function() {
            var li = $(this);
            var lichk = li.find("input:checkbox[name^='_chk']");
            var _cc =  new bugs.form.checkbox(li.find("div.check"), "_chk"+name, {
                checked : function() {
                    li.addClass("rowSelect");

                    // 19금일 경우 선택 못하도록
                    //if (g_isLogged == false || (g_isLogged==true && ))
                    
                },
                unchecked : function() {
                    li.removeClass("rowSelect");
                }
            });
            if(typeof _cc != "undefined" && _cc.isDisabled() == false) {
                arrChecked.push(_cc);
            }

        });
        this.cbox = new bugs.form.checkbox($("#id" + this.name + " .oneclickAction div.check"), "_checkAll"+this.name, {
            checked : $.proxy( function() {
                for(var i=0;i<this.trackChecked.length;i++) {
                    this.trackChecked[i].checked();
                }
            }, this),
            unchecked : $.proxy( function() {
                for(var i=0;i<this.trackChecked.length;i++) {
                    this.trackChecked[i].unchecked();
                }
            }, this)
        });
        this.trackChecked = arrChecked;
    },
    more : function() {
        if(this.row * eval(this.page) > this.total) return;

        var _page = eval(this.page) + 1;
        var url = g_urlMusic + "/mv/ajax/list/";
        var data = {decorator : "blank", id : this.id, type : this.type};
        if(typeof this.page != "undefined") data.page = _page;
        if(typeof this.row != "undefined") data.row = this.row;
        if(typeof this.check != "undefined") data.check = this.check;
        $.get(url, data, function(result) {
            this.box.find("ul.list.musicvideoList").append(result);
            this.page = _page;
            if(this.row * _page >= this.total) this.box.find('.moreList').hide();
            this.initCheckBox();

        }.bind(this), "html");
    },
    
    chkCheckBox : function(btn) {
        var chks = $("ul li input:checkbox:checked", this.box).not("input:disabled");
        return this.__chkCheckBox(btn, chks);
    },
    chkStreamCheckBox : function(btn) {
        if($("input:hidden[name=_isStream]:not(:disabled)", this.box).length == 0) {
            bugs.ui.showAlert("재생 가능한 뮤직비디오가 없습니다.", {css : "layerLoginMsg"});
            return;
        }
        //var chks = $("ul li input:hidden[name=_isStream]", this.box).not("input:disabled");
        var chks = $("ul li:has(input:hidden[name=_isStream]:not(:disabled)) input:checkbox:checked:not(:disabled)", this.box);
        return this.__chkCheckBox(btn, chks);
    },
    chkDnlCheckBox : function(btn) {
        if($("input:hidden[name=_isDown]:not(:disabled)", this.box).length == 0) {
            alert("다운로드 가능한 뮤직비디오가 없습니다.");
            return;
        }
        //var chks = $("ul li input:hidden[name=_isDown]", this.box).not("input:disabled");
        var chks = $("ul li:has(input:hidden[name=_isDown]:not(:disabled)) input:checkbox:checked:not(:disabled)", this.box);
        return this.__chkCheckBox(btn, chks);
    },
    __chkCheckBox : function(btn, chks) {
        if(chks.length == 0) {
            this.alert(btn);
            return false;
        } else return chks;

    },

    view : function(btn) {
        if(chks = this.chkStreamCheckBox(btn))
            bugs.music.viewMusicVideo(chks);
    },
    viewAll : function(btn) {
        var aList = $("input:hidden[name=_isStream]:not(:disabled)", this.box);
        if(aList.length == 0) {
            bugs.ui.showAlert("재생 가능한 뮤직비디오가 없습니다.", {css : "layerLoginMsg"});
            return;
        }

        $("#_checkAll"+this.name).attr("checked",true).parent().parent().addClass("click");

        $(this.trackChecked).each(function() {
            var _this  = this;
            aList.each(function() {
                if(this.value == _this.val()) _this.checked();
            });

        });
        var chks = $("ul li input:hidden[name=_isStream]", this.box).not("input:disabled");
        bugs.music.viewMusicVideo(chks);

        //this.cbox.checked();
        //var chks = $("ul li input:checkbox", this.box);
        //bugs.music.viewMusicVideo(chks);
    },
    download : function(btn) {
        if(chks = this.chkDnlCheckBox(btn))
            bugs.music.downloadMusicVideo(chks);
    },
    adds : function(btn) {
        if(chks = this.chkCheckBox(btn)) {
            var ids = [];
            chks.each(function() {
                ids.push(this.value);
            });
            bugs.music.addLikeMusicVideoes(ids, {
                anchor : $("ul li:has(input:checkbox:checked) .btnAction a", this.box),
                
                
                success : $.proxy(function() {
                    for(var i=0;i<this.trackChecked.length;i++) {
                        this.trackChecked[i].unchecked();
                    }
                }, this)
            });
        }
    },
    alert : function(btn) {
        var html = '<p class="layerInfoMsg inform" style="display: none;"><span>뮤비를 먼저 선택해 주세요.</span></p>';
        var oBtn = $(btn);
        var _offset = oBtn.offset();
        var plusTop = navigator.appName.match(/Explorer/i) ? 0 : 9;
        var alertLayer = $(html).appendTo("body").css({
            "top" : (_offset.top+oBtn.height()+plusTop)+"px",
            "left" : _offset.left+"px",
            width : 152,
            "background-position": "0 -150px"
        }).fadeIn(500).delay(1500).fadeOut(500);

    }
};


bugs.music.photoLayer = bugs.create();
bugs.music.photoLayer.prototype = {
    maxImgSize : {width : 500, height : 300},
    ROW_NUM : 8,
    initialize : function(url, data, type, caller) {
        this.url = url;
        this.data = data;
        this.page = 1;
        this.row = this.ROW_NUM;
        this.selectedIdx = 0;
        this.listRowIdx = 0;
        this.type = type || null;
        this.caller = caller || null;
        if(typeof data.id != "undefined") this.id = data.id;

    },

    getHtml : function(obj){
        var html = 	"";
        html += "<div class=\"layerPhotoGallery\" id=\"photoGallery\">\n";
        html += "	<h1>포토</h1>\n";
        html += "	<div id=\"photoGalleryContent\" class=\"layerContents\">\n";
        html +=	"		<div class=\"photos\">\n";
        if(typeof this.type != "undefined" && this.type == "TRACK_SPECTROGRAM"){
            html +=	"			<div class=\"bigImg spectogram\">\n";
            html +=	"				<header class=\"header\" id=\"photoLayerHeaderArea\">\n";
            html +=	"				</header>\n";
            html +=	"				<p class=\"img\">\n";
            html +=	"					<a href=\"javascript:;\" target=\"_blank\" id=\"originalPhotoViewBtn\"><img alt=\"\" />";
            html +=	"						<span class=\"originalView\"><span class=\"icon\"></span>원본 보기</span>\n";
            html += "					</a>\n";
            html +=	"				</p>\n";
            html +=	"				<div class=\"guide\">\n";
            html +=	"					<ul>\n";
            html +=	"						<li>스펙트로그램은 추출 프로그램별로 약간의 차이가 있을 수 있습니다. </li>\n";
            html +=	"						<li>스펙트로그램 관련 정보는 서비스 가이드를 참조해주세요.  <a href=\""+g_urlMusic+"/serviceGuide/navigate/180\" target=\"_blank\" class=\"btnMore\">자세히 보기</a> </li>\n";
            html +=	"					</ul>\n";
            html +=	"				</div>\n";
            html +=	"			</div>\n";
        }else{
            html +=	"			<div class=\"bigImg\">\n";
            html +=	"				<a href=\"javascript:;\" target=\"_blank\" id=\"originalPhotoViewBtn\">\n";
            html += "					<img alt=\"\" />\n"
            html += "					<span class=\"originalView\"><span class=\"icon\"></span>원본 보기</span>\n";
            html +=	"				</a>\n";
            if(typeof(this.data.type) != undefined && this.data.type == "PROFILE_EDIT" ) {
                html += "			<div class=\"btns bside\">";
                html += "				<button type=\"button\" class=\"btnSetDefaultImg\" onClick=\"representImage($(this).parent().attr('id'));bugs.wiselog.area('bside_manage_02_04');\"><span class=\"bg\"></span><span>대표 이미지로 설정</span></button>";
                html += "				<button type=\"button\" class=\"btnDeleteImg\" onClick=\"deleteImage($(this).parent().attr('id'));bugs.wiselog.area('bside_manage_02_05');\"><span class=\"bg\"></span><span>삭제</span></button>";
                html += "			</div>";
            }
            html += "			</div>\n";
        }

        html += "			<ul id=\"photoContentItemList\">\n";
        for(var i=0; i<8; i++){
            if(i== 7){
                html += "				<li class=\"lineBreak\"></li>\n";
            }else{
                html += "				<li></li>\n";
            }
        }

        html +="			</ul>\n";
        html +="		</div>\n";
        html +="		<div class=\"paging pagingImg\">\n";
        html +="			<button id=\"prevPhotoBtn\" class=\"prev disabled\">이전 이미지</button>\n";
        html +="			<button id=\"nextPhotoBtn\" class=\"next\">다음 이미지</button>\n";
        html +="		</div>\n";
        html +="		<div class=\"paging pagingImgList\">\n";
        html +="			<button id=\"prevPhotoListBtn\" class=\"prev disabled\">이전 이미지 리스트</button>\n";
        html +="			<span id=\"photoListPageInfo\">"+obj.page+" / "+obj.pageCount+"</span>\n";
        html +="			<button id=\"nextPhotoListBtn\" class=\"next\">다음 이미지 리스트</button>\n";
        html +="		</div>\n";
        html +="	</div>\n";
        html +="	<button class=\"btnClose\">닫기</button>\n";
        html +="</div>\n";

        return html;
    },

    open : function() {
        if($("#photoGallery").length > 0) return;
        if(typeof this.type != "undefined" && this.type == "TRACK_SPECTROGRAM"){
            if(this.data.source){
                this.initSource(this.data.source);
            }
        }else{
            $.ajax({
                url : this.url,
                data : this.data,
                success : $.proxy(function(result){
                    this.initSource(result);
                },this),
                dataType : "json"
            });
        }
    },

    initSource : function(result){
        this.result = result;

        this.pageCount = bugs.math.ceil(result.length / this.row, 0);
        var html = this.getHtml({
            page : this.page,
            pageCount : this.pageCount,
            list : result
        });

        this.layer = $(html).appendTo("body");

        this.loadingLayer = new bugs.ui.loadingLayer("이미지 로딩 중입니다.");
        this.layer.find("button.btnClose").click(
            $.proxy(function() { this.close(); }, this)
        );

        // 하단 list
        this.listImg();
        if(this.pageCount <= 1){
            this.layer.find("#nextPhothoListBtn").click($.proxy(this.nextPage, this)).addClass("disabled");
        }
        this.layer.find("#prevPhotoListBtn").click($.proxy(this.prevPage, this));
        this.layer.find("#nextPhotoListBtn").click($.proxy(this.nextPage, this));
        if(this.page == this.pageCount){
            this.layer.find("#nextPhotoListBtn").addClass("disabled");
        }

        this.layer.find("#prevPhotoBtn").click($.proxy(this.prevImageView, this));
        this.layer.find("#nextPhotoBtn").click($.proxy(this.nextImageView, this));
        if(this.selectedIdx >= result.length-1){
            this.layer.find("#nextPhotoBtn").addClass("disabled");
        }
        if(this.selectedIdx > 0){
            this.layer.find("#prevPhotoBtn").removeClass("disabled");
        }

        bugs.ui.modalLayer.show_dark2();
        this.resizeHandler();
        $(window).on("resize", this.resizeHandler);
        this.layer.on("keyup",function(event){
            var code = event.witch || event.keyCode;
            if(code == 27){
                this.layer.off("keyup");
                this.close();
            }
        }.bind(this)).attr("tabIndex", -1).focus();
        bugs.layerFocusNavi.add(this.layer, this.caller, this.close.bind(this));
        this.layer.show();

    },

    resizeHandler : function(){
        var topPos = 0;
        if(document.body.clientHeight >= 880){
            $(document.body).css({"overflow":"hidden"});
            topPos = (($(window).height() - $("#photoGalleryContent").height()) >> 1);
        }else{
            $(document.body).css({"overflow":""});
            topPos = $(window).scrollTop() + (($(window).height() - $("#photoGalleryContent").height()) >> 1);
        }
        if(topPos < 70){
            topPos = 70;
        }

        $("#photoGalleryContent").css({position : "absolute", left : "50%", top : topPos, "margin-left" : -325});
        bugs.ui.modalLayer.show_dark2();
        var width = jQuery(document).width();
        var height = jQuery(document).height();
        bugs.ui.modalLayer.layer.css({width : width, height : height});
    },

    getSelectedImg : function() {
        var selected;
        if(typeof this.id == "undefined" || this.id == null) {

            selected = this.result[(this.page - 1)*this.row];
            this.selectedIdx = (this.page - 1)*this.row;
        } else {
            for(var i=0;i<this.result.length;i++) {
                if(this.result[i].id == this.id) {
                    this.selectedIdx = i;
                    this.page = bugs.math.ceil((this.selectedIdx+1)/this.row);
                    this.id =null;
                    selected = this.result[i];
                }
            }
        }

        if(typeof selected == "undefined") selected = this.result[0];
        return selected;

    },
    listImg : function() {

        var html = "";
        for(var i=0; i< 8; i++){
            if(i == 7){
                html += "			<li class=\"lineBreak\"></li>\n";
            }else{
                html += "			<li></li>\n";
            }
        }

        this.layer.find("#photoContentItemList").children().remove();
        this.layer.find("#photoContentItemList").append($(html));
        this.layer.find("#photoListPageInfo").text(this.page+" / "+this.pageCount);
        this.layer.find("#photoContentItemList").find("li a").remove();
        var _this = this;
        this.layer.find("#photoContentItemList").children().each(function(idx) {
            var listIdx = idx + (_this.page-1)*_this.row;
            if(listIdx < _this.result.length) {
                var obj = $(this);
                obj.click($.proxy(function(event) {
                    event.preventDefault();
                    if(listIdx > 0){
                        this.layer.find("#prevPhotoBtn").removeClass("disabled");
                    }else if(listIdx <= 0){
                        this.layer.find("#prevPhotoBtn").addClass("disabled");
                    }
                    if(listIdx < _this.result.length -1){
                        this.layer.find("#nextPhotoBtn").removeClass("disabled");
                    }else if(listIdx >= _this.result.length -1 ){
                        this.layer.find("#nextPhotoBtn").addClass("disabled");
                    }

                    this.selectImg(listIdx);
                    _this.selectedIdx = listIdx;
                    obj.parent().find("li > a").children("span").remove();
                    //</li>
                    obj.find("a").append("<span class=\"currentImg\">현재이미지</span>");
                }, _this)).append("<a href=\"javascript:void(0)\"><img src=\""+(_this.type == "TRACK_SPECTROGRAM" ? (_this.result[listIdx].clip76+"?version="+_this.result[listIdx].upd_dt) : _this.result[listIdx].clip200)+"\" alt=\""+_this.result[listIdx].image_title+"\" onerror=\"bugs.utils.imgError(this);\"/></a>");

                if(listIdx%_this.row == 0){
                    _this.selectedIdx = listIdx;
                    _this.selectImg(listIdx);
                    obj.find("a").append("<span class=\"currentImg\">현재이미지</span>");
                }else{
                    if(typeof _this.id != "undefined" && _this.id == _this.result[listIdx].id){
                        obj.parent().find("li > a").children("span").remove();

                        obj.find("a").append("<span class=\"currentImg\">현재이미지</span>");
                    }
                }
                if(typeof(_this.data.type) != undefined && _this.data.type == "PROFILE_EDIT" ) {
                    if(typeof(_this.result[listIdx].repres_yn)!="undefined" && _this.result[listIdx].repres_yn == "Y") {
                        obj.find("a").append("<span class=\"defaultImg\"><span class=\"bg\"></span><span>대표 이미지</span></span>");
                    }
                }
            }
        });

//		if(_this.type == "TRACK_SPECTROGRAM" && _this.result.length == 1){
//			this.layer.find("#photoContentItemList").hide();
//		}

        this.displayImg(this.getSelectedImg());

        this.layer.find("#photoContentItemList").find("img").each(
            function() {
                var w = Math.floor(Math.random()*300);
                $(this).delay(300 + w).fadeIn(500);
            }
        );

    },
    selectImg : function(idx) {
        this.selectedIdx = idx;
        this.displayImg(this.result[idx]);
    },
    displayImg : function(selected) {
        if(this.type == "TRACK_SPECTROGRAM"){
            var html = ""
            html +=	"<strong class=\"track\"  title=\""+selected.image_title+"\">"+selected.image_title+"</strong>\n";
            html +=	"<p>24bit FLAC 음원의 스펙트로그램입니다.</p>\n";
            html +=	"<button type=\"button\" class=\"btnNormal btnReport\" onclick=\"bugs.layermenu.spectrogramReport("+selected.track_id+");\">음질 신고</button>\n";

            this.layer.find("#photoLayerHeaderArea").html(html);
        }

        var imgUrl = selected.imageUrl;

        if(this.type != "TRACK_SPECTROGRAM"){
            this.layer.find("#originalPhotoViewBtn").attr("title",selected.image_title).attr("href", selected.imageUrl+"?version="+selected.upd_dt);
            imgUrl = imgUrl.replace("/original/","/1000/");
        }else{
            this.layer.find("#originalPhotoViewBtn").attr("title","").attr("href", selected.imageUrl+"?version="+selected.upd_dt);
            imgUrl = selected.clip650+"?version="+selected.upd_dt;
        }

        var img = this.layer.find("#originalPhotoViewBtn").find("img").attr("alt",selected.image_title).attr("src",imgUrl).attr("id", selected.artist_photo_id).get(0);

        if(typeof(this.data.type) != undefined && this.data.type == "PROFILE_EDIT" ) {
            this.layer.find("div.btns.bside").attr("id", selected.artist_photo_id);

            if(typeof(selected.repres_yn)!="undefined" && selected.repres_yn == "Y") {
                this.layer.find("div.btns.bside button.btnSetDefaultImg").hide();
            } else this.layer.find("div.btns.bside button.btnSetDefaultImg").show();
        }

        if(img.style.display != "none") $(img).hide();
        var _this = this;

        $(img).height("auto");
        $(img).width("auto");

        $(img).unbind("load").load(function(event) {
            _this.loaded();
            $(this).fadeIn(500);
        });
        this.loading();
        img.src = imgUrl;
    },
    loading : function() {
        this.loadingLayer.layer.css({"z-index":1001});
        var topPos = 0;
        if(document.body.clientHeight < 880){
            topPos = $(window).scrollTop() + (($(window).height() - this.loadingLayer.layer.height()-100) >> 1);
        }else{
            topPos = (($(window).height() - this.loadingLayer.layer.height()-100) >> 1);
        }
        this.loadingLayer.show({position : "absolute", left : "50%", top : topPos, "margin-left" : -174});
    },
    loaded : function() {
        this.loadingLayer.hide();
    },
    prevPage : function() {
        if(this.page <= 1){
            return;
        }
        this.page--;
        if(this.page > 1){
            $("#prevPhotoListBtn").removeClass("disabled");
        }else{
            $("#prevPhotoListBtn").addClass("disabled");
            $("#prevPhotoBtn").addClass("disabled");
        }
        $("#nextPhotoListBtn").removeClass("disabled");
        this.listImg();
    },
    nextPage : function() {
        if( this.pageCount <= this.page){
            return;
        }
        this.page++;
        if(this.page >= this.pageCount){
            $("#nextPhotoListBtn").addClass("disabled");
        }else{
            $("#nextPhotoListBtn").removeClass("disabled");
        }
        $("#prevPhotoListBtn").removeClass("disabled");
        this.listImg();
    },
    prevImageView : function() {
        if(this.selectedIdx  <= 1){
            $("#prevPhotoBtn").addClass("disabled");
        }
        if(this.selectedIdx < 1) return;
        $("#nextPhotoBtn").removeClass("disabled");

        if((this.selectedIdx % this.row) -1 < 0){
            this.prevPage();
            $("#photoContentItemList").children().eq(this.row-1).trigger("click");
            return;
        }else{
            $("#photoContentItemList").children().eq((this.selectedIdx%this.row) -1).trigger("click");
        }

    },

    nextImageView : function() {
        if(this.selectedIdx == this.result.length-2){
            $("#nextPhotoBtn").addClass("disabled");
        }

        if(this.selectedIdx >= this.result.length-1) return;

        $("#prevPhotoBtn").removeClass("disabled");


        if(this.selectedIdx % this.row >= this.row -1){
            this.nextPage();
            return;

        }else{
            $("#photoContentItemList").children().eq((this.selectedIdx % this.row)+1).trigger("click");
        }

    },
    close : function() {
        $(document.body).css({"overflow":""});
        bugs.ui.modalLayer.hide();
        $(window).off("resize", this.resizeHandler);
        if(this.layer) {
            this.layer.remove();
            this.layer = null;
        }
        if(this.loadingLayer) {
            this.loadingLayer.remove();
            this.loadingLayer = null;
        }
        $(this.caller).focus();

        bugs.layerFocusNavi.remove(this.layer);

    }
};

bugs.music.styleLayer = bugs.create();
bugs.music.styleLayer.prototype = {
    URL : "/album/ajax/genredic",
    layer : null,
    initialize : function() {
    },
    _load : function(data) {
        var _url = g_urlAjax + this.URL;
        $.get(_url, data, $.proxy(function(result) {

            if(typeof result != "string")
                return;

            var oobj = $(".btnStyleView");

            $("#descStyle").remove();
            this.layer = $(result).appendTo("body");
            this.layerEventHandler(oobj, this.layer, 0, 230);

            var _this = this;
            this.layer.find("select[name=genre_cd]").change(function(event) {
                _this.gload(this.value);
            }).end().find("select[name=pgenre_cd]").change(function(event) {
                _this.load(this.value);
            });
        }, this), "html");
    },
    load : function(pgenreCd) {
        if(typeof pgenreCd == "undefined" || pgenreCd == "") return;
        this._load({
            decorator : "blank",
            pcd : pgenreCd
        });
    },
    gload : function(genreCd) {
        if(typeof genreCd == "undefined" || genreCd == "") return;
        this._load({
            decorator : "blank",
            cd : genreCd
        });
    },
    layerEventHandler : function(caller, layer, _top, _left) {
        var a = caller;

        layer.css({
            "position": "absolute",
            "top": Math.max(0, (($(window).height() - layer.outerHeight()) / 2) + $(window).scrollTop()) + "px",
            "left": Math.max(0, (($(window).width() - layer.outerWidth()) / 2) + $(window).scrollLeft()) + "px"
        }).show();

        
        $(window).resize(function() {
            layer.css({
                "position": "absolute",
                "top": Math.max(0, (($(window).height() - layer.outerHeight()) / 2) + $(window).scrollTop()) + "px",
                "left": Math.max(0, (($(window).width() - layer.outerWidth()) / 2) + $(window).scrollLeft()) + "px"
            });
        });
    }
};

bugs.music.openStyleLayer = function(genreCd) {
    bugs.logging.add(3002, ["5"]);
    var styleLayer = new bugs.music.styleLayer();
    styleLayer.load(genreCd);
    $("#descStyle").remove();
};



bugs.music.photoPageList = bugs.create();
bugs.music.photoPageList.prototype = {
    ROW_NUM : 3,
    initialize : function(url, data, clickFunc) {
        this.url = url;
        this.data = data;
        this.page = 1;
        this.row = this.ROW_NUM;
        this.clickFunc = clickFunc;
        this.imgList = $(".photoList ul li");
    },
    initData : function(callback) {
        if(typeof this.result == "undefined") {
            $.ajax({
                url : this.url,
                data : this.data,
                success : $.proxy(function(result) {
                    this.result = result;
                    this.pageCount = bugs.math.ceil(result.length / this.row, 0);

                    callback(result);
                }, this),
                dataType : "json"
            });
        } else {
            callback(this.result);
        }
    },
    listImg : function() {
        $(".photoList ul li a").remove();
        var _this = this;
        var _clickFunc = this.clickFunc;
        this.imgList.each(function(idx) {
            var listIdx = idx + (_this.page-1)*_this.row;
            if(listIdx < _this.result.length) {
                $(this).click($.proxy(function(event) {
                    event.preventDefault();
                    _clickFunc(_this.result[listIdx]);
                }, _this)).append('<a href="javascript:void(0);"><img src="'+_this.result[listIdx].clip59+'" onerror="bugs.utils.imgError(this);" alt="" /><span class="thumbnailValign"></span><span class="over"></span></a>');
            }
        });

        this.imgList.find("a img").each(
            function() {
                var w = Math.floor(Math.random()*300);
                $(this).delay(300 + w).fadeIn(500);
            }
        );

    },
    pageButton : function() {
        if(this.page == 1) $(".photoList .btn.bcPrev").html('이전');
        else $(".photoList .btn.bcPrev").html('<a href="javascript:_photo.prevPage();">이전</a>');

        if(this.page == this.pageCount) $(".photoList .btn.bcNext").html('다음');
        else $(".photoList .btn.bcNext").html('<a href="javascript:_photo.nextPage();">다음</a>');

    },
    prevPage : function() {
        if(this.page <= 1) return;
        this.initData($.proxy(function(result) {
            this.page--;
            this.listImg();
            this.pageButton();

        }, this));

    },
    nextPage : function() {
        this.initData($.proxy(function(result) {
            if( this.pageCount <= this.page) return;
            this.page++;
            this.listImg();
            this.pageButton();
        }, this));
    }
};



bugs.music.artistFans = bugs.create();
bugs.music.artistFans.prototype = {
    PAGE_ROW : 4,
    TEMPLATE_HTML : '<ul class="listBox">' +
        '<% for(var i =0 ;i < obj.list.length; i++) { var item = obj.list[i]; if(typeof item.userInfo != "undefined" && item.userInfo != null) { %><li><div class="fanInfo">' +
        '	<span class="thumbnail"><img src="<%=item.userInfo.clipImg30%>" alt="<%=item.userInfo.nickname%>" onerror="bugs.utils.imgError(this);"/></span>'+
        '	<span class="username"><%=item.userInfo.nickname%></span> '+
        '</div></li><% } } %>' +
        '</ul>' +
        '<% if(obj.pageCount > 1) {%><div class="pagination">' +
        '	<span class="page"><%=obj.page%>/<%=obj.pageCount%></span>' +
        '	<span class="btnArea">' +
        '		<% if(obj.page > 1) {%> ' +
        '		<a href="javascript:void(0);" class="btnPagination bcPrev"><span>이전</span></a>' +
        '		<% } %> ' +
        '		<% if(obj.page < obj.pageCount) {%> ' +
        '		<a href="javascript:void(0);" class="btnPagination bcNext"><span>다음</span></a>' +
        '		<% } %> ' +
        '	</span>' +
        '</div><div class="btnClose"><a href="javascript:void($(\'.layerFan\').hide())"><span>닫기</span></a></div><% } %>',
    URL : g_urlMusic + "/artist/ajax/artistFans",
    initialize : function(total, artistId) {
        this.page = 1;
        this.pageCount = bugs.math.ceil(this.total / this.PAGE_ROW);
        this.box = $(".content.artistFan");
        this.artistId = artistId;
    },
    nextPage : function() {
        if(this.page >= this.pageCount) return;
        this.load(this.page + 1);
    },
    prevPage : function() {
        if(this.page <= 1) return;
        this.load(this.page - 1);
    },
    load : function(page) {
        $.get(g_urlMusic + "/artist/json/artistFans", {id : this.artistId, page : page, row : this.PAGE_ROW, decorator : "blank"}, $.proxy(function(result) {
            if(!result || !result.list) return;
            if(result.total == 0) {
                this.box.hide();
                return;
            }

            result.pageCount = bugs.math.ceil(result.total / this.PAGE_ROW);
            var temp = new bugs.template(this.TEMPLATE_HTML, result);
            $(" > ul, > div", this.box).remove();
            //alert(temp.html());
            var objResult = $(temp.html());
            var _this = this;
            objResult.find(".btnArea a").each(function() {
                var o = $(this);
                if(o.hasClass("bcPrev")) {
                    o.click($.proxy(_this.prevPage, _this));
                } else if(o.hasClass("bcNext"))
                    o.click($.proxy(_this.nextPage, _this));

            });
            objResult.appendTo(this.box);
            if(result.total > 0)
                this.box.show();

            this.page = page;
        }, this), "json");
        
    }
};



bugs.music.albumFans = bugs.create();
bugs.music.albumFans.prototype = {
    PAGE_ROW : 4,
    TEMPLATE_HTML : '<ul class="listBox">' +
        '<% for(var i =0 ;i < obj.list.length; i++) { var item = obj.list[i]; if(typeof item.userInfo != "undefined" && item.userInfo != null) { %><li><div class="fanInfo">' +
        '	<span class="thumbnail"><img src="<%=item.userInfo.clipImg30%>" alt="<%=item.userInfo.nickname%>" onerror="bugs.utils.imgError(this);"/></span>'+
        '	<span class="username"><%=item.userInfo.nickname%></span> '+
        '</div></li><% } } %>' +
        '</ul>' +
        '<% if(obj.pageCount > 1) {%><div class="pagination">' +
        '	<span class="page"><%=obj.page%>/<%=obj.pageCount%></span>' +
        '	<span class="btnArea">' +
        '		<% if(obj.page > 1) {%> ' +
        '		<a href="javascript:void(0);" class="btnPagination bcPrev"><span>이전</span></a>' +
        '		<% } %> ' +
        '		<% if(obj.page < obj.pageCount) {%> ' +
        '		<a href="javascript:void(0);" class="btnPagination bcNext"><span>다음</span></a>' +
        '		<% } %> ' +
        '	</span>' +
        '</div><div class="btnClose"><a href="javascript:void($(\'.layerFan\').hide())"><span>닫기</span></a></div><% } %>',
    URL : g_urlMusic + "/album/ajax/albumFans",
    initialize : function(total, albumId) {
        this.page = 1;
        this.pageCount = bugs.math.ceil(this.total / this.PAGE_ROW);
        this.box = $(".albumFan");
        this.albumId = albumId;
    },
    nextPage : function() {
        if(this.page >= this.pageCount) return;
        this.load(this.page + 1);
    },
    prevPage : function() {
        if(this.page <= 1) return;
        this.load(this.page - 1);
    },
    load : function(page) {
        $.get(g_urlMusic + "/album/json/albumFans", {id : this.albumId, page : page, row : this.PAGE_ROW, decorator : "blank"}, $.proxy(function(result) {
            if(!result || !result.list) return;
            if(result.total == 0) {
                this.box.hide();
                return;
            }

            result.pageCount = bugs.math.ceil(result.total / this.PAGE_ROW);
            var temp = new bugs.template(this.TEMPLATE_HTML, result);
            $(" > ul, > div", this.box).remove();
            var objResult = $(temp.html());
            var _this = this;
            objResult.find(".btnArea a").each(function() {
                var o = $(this);
                if(o.hasClass("bcPrev")) {
                    o.click($.proxy(_this.prevPage, _this));
                } else if(o.hasClass("bcNext"))
                    o.click($.proxy(_this.nextPage, _this));

            });
            objResult.appendTo(this.box);
            if(result.total > 0)
                this.box.show();

            this.page = page;
        }, this), "json");
    }
};


bugs.music.trackFans = bugs.create();
bugs.music.trackFans.prototype = {
    PAGE_ROW : 4,
    TEMPLATE_HTML : '<ul class="listBox">' +
        '<% for(var i =0 ;i < obj.list.length; i++) { var item = obj.list[i]; if(typeof item.userInfo != "undefined" && item.userInfo != null) { %><li><dl class="list">' +
        '	<dt class="username"><a href="<%=bugs.url.memberPage(item.userInfo.user_id) %>" title="<%=item.userInfo.nickname%>"><%=item.userInfo.nickname%></a></dt> '+
        '	<dd class="thumbnail"><a href="<%=bugs.url.memberPage(item.userInfo.user_id) %>" title="<%=item.userInfo.nickname%>"><img src="<%=item.userInfo.clipImg30%>" alt="<%=item.userInfo.nickname%>" onerror="bugs.utils.imgError(this);"/></a></dd>'+
        '</dl></li><% } } %>' +
        '</ul>' +
        '<% if(obj.pageCount > 1) {%><div class="pagination">' +
        '	<span class="page"><%=obj.page%>/<%=obj.pageCount%></span>' +
        '	<span class="btnArea">' +
        '		<% if(obj.page > 1) {%> ' +
        '		<a href="javascript:void(0);" class="btnPagination bcPrev"><span>이전</span></a>' +
        '		<% } %> ' +
        '		<% if(obj.page < obj.pageCount) {%> ' +
        '		<a href="javascript:void(0);" class="btnPagination bcNext"><span>다음</span></a>' +
        '		<% } %> ' +
        '	</span>' +
        '</div><% } %>',
    URL : g_urlMusic + "/track/ajax/trackFans",
    initialize : function(total, trackId) {
        this.page = 1;
        this.pageCount = bugs.math.ceil(this.total / this.PAGE_ROW);
        this.box = $(".trackFan");
        this.trackId = trackId;
    },
    nextPage : function() {
        if(this.page >= this.pageCount) return;
        this.load(this.page + 1);
    },
    prevPage : function() {
        if(this.page <= 1) return;
        this.load(this.page - 1);
    },
    load : function(page) {
        $.get(g_urlMusic + "/track/json/trackFans", {id : this.trackId, page : page, row : this.PAGE_ROW, decorator : "blank"}, $.proxy(function(result) {
            if(!result || !result.list) return;
            if(result.total == 0) {
                this.box.hide();
                return;
            }

            result.pageCount = bugs.math.ceil(result.total / this.PAGE_ROW);
            var temp = new bugs.template(this.TEMPLATE_HTML, result);
            $(" > ul, > div", this.box).remove();
            var objResult = $(temp.html());
            var _this = this;
            objResult.find(".btnArea a").each(function() {
                var o = $(this);
                if(o.hasClass("bcPrev")) {
                    o.click($.proxy(_this.prevPage, _this));
                } else if(o.hasClass("bcNext"))
                    o.click($.proxy(_this.nextPage, _this));

            });
            objResult.appendTo(this.box);
            if(result.total > 0)
                this.box.show();

            this.page = page;
        }, this), "json");
    }
};


bugs.music.recommend = bugs.create();
bugs.music.recommend.prototype = {
    PAGE_ROW : 21,
    TEMPLATE_HTML_ARTIST :
        '  <h3><span>추천– 이 아티스트를 좋아하는 분들이 좋아하는 다른 아티스트</span></h3>' +
        '  <ul class="popRecomList"> ' +
        '    <% for(var i =0 ;i < obj.list.length; i++) { var item = obj.list[i]; if(typeof item.artist != "undefined" && item.artist != null) { %><li>' +
        '	<div class="thumbnail"><a href="<%=bugs.url.artistPage(item.artist.artist_id) %>" title="<%=item.artist.artist_nm%>" onclick="bugs.logging.add(900,[\'artist\',\'image\'],0,false);"><img src="<%=item.artist.clipImg108%>" alt="<%=item.artist.artist_nm%>" onerror="bugs.utils.imgError(this);"/><span class="thumbnailValign"></span><span class="mask pngBg"></span></a></div>'+
        '    <dl class="recomInfo">' +
        '      <dd class="artistname"><a href="<%=bugs.url.artistPage(item.artist.artist_id) %>" title="<%=item.artist.artist_nm%>" onclick="bugs.logging.add(900,[\'artist\',\'artist_name\'],0,false);"><%=item.artist.artist_nm%></a></dd> '+
        '      <dd class="genre"><%if(item.group_cd){%><%=item.group_cd%> <%}%> <%if(item.sex_cd) {%>(<%=item.sex_cd%>)<%}%></dd>' +
        '  </dl></li><% } } %>' +
        '  </ul>',
    TEMPLATE_HTML_ALBUM :
        '	<ul class="list tileView albumList">' +
        '	<% for(var i =0 ;i < obj.list.length; i++) { var item = obj.list[i]; if(typeof item.album != "undefined" && item.album != null) { %>'+
        '		<li>' +
        '			<figure class="albumInfo">' +
        '				<div class="thumbnail">' +
        '					<p class="badge">' +
        '					<span class="event">[EVENT]</span>' +
        '					<span class="hot">[HOT]</span>' +
        '					</p>' +
        '					<a href="<%=bugs.url.albumPage(item.album.album_id)%>">' +
        '						<span class="mask"></span>' +
        '						<img src="<%=bugs.url.albumThumbnail(item.album.album_id, 200)%>" alt="<%=item.album.title%> 앨범 대표이미지">' +
        '					</a>' +
        '					<a href="javascript:(bugs.music.listenAlbum(<%= item.album.album_id%>));" class="btnPlay" aria-label="새창">듣기</a>' +
        '				</div>' +
        '				<figcaption class="info">' +
        '					<a href="<%=bugs.url.albumPage(item.album.album_id)%>" class="albumTitle" title="<%=item.album.title%>"><%=item.album.title%></a>' +
        '					<div class="subInfo">' +
        '						<p class="artist">' +
        '							<% if(item.album.multi_artist_yn != null && item.album.multi_artist_yn == "Y") { %>		'+
        '							<a href="javascript:;" title="<%=item.album.artist_nm%>" onclick="openMultiArtistSearchResultPopLayer(this, \'<%=item.album.multi_artist_infoset%>\');return false;"><%=item.album.artist_nm.replace(/ \&/gi, ",")%></a>' +
        '							<a href="javascript:;" onclick="openMultiArtistSearchResultPopLayer(this, \'<%=item.album.multi_artist_infoset%>\');return false;" class="more">아티스트 더 보기</a>' +
        '							<% } else { %>'+
        '							<a href="<%=bugs.url.artistPage(item.album.artist_id)%>" title="<%=item.album.artist_nm%>"><%=item.album.artist_nm%></a>' +
        '							<% } %>'+
        '						</p>' +
        '						<p>' +
        '							<time datetime="">2015.01.16</time>' +
        '							<span class="albumType"><span class="bar"></span>정규</span>' +
        '						</p>' +
        '					</div>' +
        '					<a href="javascript:;" onclick="bugs.layermenu.albumMoreAction(this, <%=item.album.album_id%>, <%=item.album.title%>, <%=item.album.artist_nm%>, \'N\', \'N\');" class="btnActions">기타 기능</a>' +
        '				</figcaption>' +
        '			</figure>' +
        '		</li>' +
        '    <% } } %>' +
        '	</ul>',

    initialize : function(type, id) {
        this.type = type;
        this.page = 1;
        this.id = id;
        this.URL = g_urlMusic + "/" + this.type + "/json/recommend";
        this.box = $("#recommend");
        if(this.type=="artist") this.template = this.TEMPLATE_HTML_ARTIST;
        else this.template = this.TEMPLATE_HTML_ALBUM;

        this.load(this.page);
    },
    nextPage : function() {
        if(this.page >= this.pageCount) return;
        this.load(this.page + 1);

        bugs.logging.add(900,[this.type,"paging"],0,false);
    },
    prevPage : function() {
        if(this.page <= 1) return;
        this.load(this.page - 1);

        bugs.logging.add(900,[this.type,"paging"],0,false);
    },
    load : function(page) {
        $.get(this.URL, {id : this.id, page : page, row : this.PAGE_ROW}, $.proxy(function(result) {
            if(!result || !result.list) return;
            if(result.total == 0) {
                this.box.hide();
                return;
            }
            result.pageCount = bugs.math.ceil(result.total / this.PAGE_ROW);
            var temp = new bugs.template(this.template, result);

            $(" > div", this.box).remove();
            var objResult = $(temp.html());

            var _this = this;


            objResult.find(".btnArea a").each(function() {
                var o = $(this);
                if(o.hasClass("bcPrev")) {
                    o.click($.proxy(_this.prevPage, _this));
                } else if(o.hasClass("bcNext"))
                    o.click($.proxy(_this.nextPage, _this));

            });
            objResult.appendTo(this.box);
            if(result.total > 0)this.box.show();

            this.page = page;

        }, this), "json");
    }
};


bugs.music.subAlbum = bugs.create();
bugs.music.subAlbum.prototype = {
    PAGE_ROW : 3,
    TEMPLATE_HTML : '<ul class="recommendAlbum">' +
        '<% for(var i =0 ;i < obj.list.length; i++) { var item = obj.list[i]; if(typeof item.album != "undefined" && item.album != null) { %><li>' +
        '<div class="thumbnail"><a href="<%=bugs.url.albumPage(item.album.album_id)%>"><img src="<%=item.album.clipImg75%>" alt="<%=item.album.title%>" onerror="bugs.utils.imgError(this);" /><span class="thumbnailValign"></span></a></div>'+
        '<dl class="albumInfo">'+
        '	<dt class="ellipsis"><a href="<%=bugs.url.albumPage(item.album.album_id)%>" class="albumtitle"><%=item.album.title%></a></dt> '+
        '	<dd><a href="<%=bugs.url.artistPage(item.album.artist_id)%>" class="artistname"><%=item.album.artist_nm%></a></dd>'+
        '	<dd class="titleSong"><strong>타이틀곡</strong> : <% if(item.album.titleTrack) {%><a href="<%=bugs.url.trackPage(item.album.titleTrack.track_id)%>"><%=item.album.titleTrack.track_title%></a><% }%></dd>'+
        '	<dd class="date"><%=item.album.release_ymd.substring(0,4)%><%if(item.album.release_ymd.length>4){%>.<%=item.album.release_ymd.substring(4,6)%><%} if(item.album.release_ymd.length>6){%>.<%=item.album.release_ymd.substring(6,8)%><%}%></dd>'+
        '</dl></li><% } } %>' +
        '</ul>' +
        '<% if(obj.pageCount > 1) {%><div class="pagination">' +
        '	<span class="page"><%=obj.page%>/<%=obj.pageCount%></span>' +
        '	<span class="btnArea">' +
        '		<% if(obj.page > 1) {%> ' +
        '		<a href="javascript:void(0);" class="btnPagination bcPrev"><span>이전</span></a>' +
        '		<% } %> ' +
        '		<% if(obj.page < obj.pageCount) {%> ' +
        '		<a href="javascript:void(0);" class="btnPagination bcNext"><span>다음</span></a>' +
        '		<% } %> ' +
        '	</span>' +
        '</div><% } %>',
    URL : g_urlMusic + "/album/ajax/albumFans",
    initialize : function(total, albumId) {
        this.page = 1;
        this.pageCount = bugs.math.ceil(this.total / this.PAGE_ROW);
        this.box = $(".servicesLimited");
        this.albumId = albumId;
    },
    nextPage : function() {
        if(this.page >= this.pageCount) return;
        this.load(this.page + 1);
    },
    prevPage : function() {
        if(this.page <= 1) return;
        this.load(this.page - 1);
    },
    load : function(page) {
        $.get(g_urlMusic + "/album/json/subAlbum", {id : this.albumId, page : page, row : this.PAGE_ROW, decorator : "blank"}, $.proxy(function(result) {
            if(!result || !result.list) return;
            if(result.total == 0) {
                this.box.hide();
                return;
            }

            result.pageCount = bugs.math.ceil(result.total / this.PAGE_ROW);
            var temp = new bugs.template(this.TEMPLATE_HTML, result);
            $(" > ul, > div", this.box).remove();
            var objResult = $(temp.html());
            var _this = this;
            objResult.find(".btnArea a").each(function() {
                var o = $(this);
                if(o.hasClass("bcPrev")) {
                    o.click($.proxy(_this.prevPage, _this));
                } else if(o.hasClass("bcNext"))
                    o.click($.proxy(_this.nextPage, _this));

            });
            objResult.appendTo(this.box);
            if(result.total > 0)
                this.box.show();

            this.page = page;
        }, this), "json");
    }
};


bugs.music.myAlbumList = {
    isFirst : true,
    gnbListArea : null,
    listArea : null,
    moreView : null,
    albumTotalCount : 0,
    page : 1,
    pager : null,
    getNext : function(){
        if(this.pager == null) return;
        if(this.pager.last) return;
        this.getGnbMyAlbumList(this.pager.nextPage);
    },
    getGnbMyAlbumList : function(page, reloadType){
        if(!g_isLogged){
            return;
        }
        $.ajax({
            url : g_urlMusic + "/user/library/ajax/myalbum/list",
            data: {page : page},
            success : function(data) {
                if(typeof data.myAlbumList != "undefined"){
                    this.pager = data.pager;
                    this.makeGnbMyAlbumListItem(data.myAlbumList);
                    if(this.pager.last){
                        this.moreView.hide();
                    }else{
                        this.moreView.show();
                    }
                    if($("#gnbMyalbumLoadFail").is(":visible")){
                        $("#gnbMyalbumLoadFail").hide();
                    }
                }else{
                    if(typeof data.totalCount != undefined && data.totalCount > 0 && page == 1){
                        if(!$("#gnbMyalbumLoadFail").is(":visible")){
                            $("#gnbMyalbumLoadFail").show();
                        }
                    }
                }
            }.bind(this),
            error : function(error) {
                if(page == 1){
                    if(!$("#gnbMyalbumLoadFail").is(":visible")){
                        $("#gnbMyalbumLoadFail").show();
                    }
                    if(typeof reloadType != "undefined" && reloadType == "failReload"){
                        alert("내앨범 정보를 받아오지 못했습니다.");
                    }
                }else{
                    alert("내앨범 정보를 받아오지 못했습니다.");
                }
            },
            dataType : "jsonp",
            jsonp : "callback",
            cache : false
        });
    },

    resetGnbMyAlbumList : function(){
        if(typeof this.gnbListArea == "undefined" || this.gnbListArea == null) return;
        this.gnbListArea.find("li[menuType!=listenedList]").remove();
        this.getGnbMyAlbumList(1);
    },

    makeGnbMyAlbumListItem : function(list){
        if(this.gnbListArea == null) return;
        if(typeof list == "undefined" || list.length == 0) return;
        var html = "";
        for(var i=0, size = list.length; i < size; i++ ){
            html += "<li><a href=\""+g_urlMusic+"/user/library/myalbum/"+list[i].playlist_id+"?wl_ref=M_left_03_03\" class=\"hyrend\" >"+list[i].title+"</a> <button onclick=\"bugs.music.myAlbumList.listenMyAlbum('"+list[i].playlist_id+"',true)\" aria-label=\"새창\" >"+list[i].title+" 재생</button></li>";
        }

        var oldLastItem = this.gnbListArea.find("li").last();
        var temp = $(html);
        bugs.navigator._setHyrendClick(temp.find("a.hyrend"));
        this.gnbListArea.append(temp);
        var scrollToItem = oldLastItem.next();
        if(this.isFirst){
            this.isFirst = false;
            bugs.scroll.reinit();
        }else{
            bugs.scroll.reinit(bugs.scroll.selector,scrollToItem);
        }


    },

    listenMyAlbum : function(id,force){
        if(!g_isLogged){
            bugs.ui.showLoginLayer();
            return;
        }

        if(typeof force == "undefined"){
            force = true;
        }

        if(typeof id == "undefined" || id <= 0 ) return;

        this.getMyAlbumTracks(id, function(data){
            bugs.music.listen(data,force);
        });
    },

    getMyAlbumTracks : function(id,callBack){
        $.ajax({
            url : g_urlMusic + "/user/library/myalbum/"+id+"/trackIds",
            success : function(data) {
                if(typeof data.trackList != "undefined"){
                    if(data.trackList.length > 0){
                        var idArr = [];
                        for(var i=0, size=data.trackList.length; i<size; i++){
                            idArr.push(data.trackList[i].track_id);
                        }

                        if(typeof callBack == "function"){
                            callBack(idArr.join(","));
                        }

                        return;
                    }
                }
                alert("재생할 수 있는 곡이 없습니다.");
            }.bind(this),
            error : function(error) {
                alert("앨범 곡 정보를 받아오지 못했습니다.");
            },
            cache : false
        });

    },


    listenListenedList : function(sort,force){
        if(!g_isLogged){
            bugs.ui.showLoginLayer();
            return;
        }

        if(typeof force == "undefined"){
            force = true;
        }

        this.getListenedTracks(sort,function(data){
            bugs.music.listen(data,force);
        });
    },

    getListenedTracks : function(sort,callBack){
        $.ajax({
            url : g_urlAjax + "/user/library/ajax/listen/trackIds" +((typeof sort != "undefined") ? "?sort="+sort : ""),
            success : function(data) {
                if(typeof data.trackList != "undefined"){
                    if(data.trackList.length > 0){
                        var idArr = [];
                        for(var i=0, size=data.trackList.length; i<size; i++){
                            idArr.push(data.trackList[i].track_id);
                        }
                        if(typeof callBack == "function"){
                            callBack(idArr.join(","));
                        }
                    }else{
                        bugs.ui.showAlert("곡 정보가 없습니다.");
                    }
                }
            }.bind(this),
            error : function(error) {
                bugs.ui.showAlert("곡 정보를 받아오지 못했습니다.");
            },
            dataType : "JSON",
            cache : false
        });
    },

    addAllMyAlbumListenedList:function(caller,sort){
        if(!g_isLogged){
            bugs.ui.showLoginLayer();
            return;
        }

        this.getListenedTracks(sort,function(data){
            playlists.showPlaylistLayer($(caller),data);
        });
    },

    downListenedTrackAll : function(sort){
        if(!g_isLogged){
            bugs.ui.showLoginLayer();
            return;
        }

        this.getListenedTracks(sort,function(data){
            bugs.music.download(data,"mp3");
        });
    },



    downMyAlbumTrackAll : function(myAlbumId, totalcount){
        if(!g_isLogged){
            bugs.ui.showLoginLayer();
            return;
        }
        if (totalcount >250){
            alert("다운로드는 한 번에 최대 250곡까지만 가능합니다.");
            return;
        }

        if(typeof myAlbumId == "undefined" || myAlbumId <= 0 ) return;

        //safari timing 이슈로 팝업이 안뜨는 현상 때문에 bugs.music.download 못씀
        var popup = window.open("about:blank","pgPop","width=750px,height=609px;");
        this.getMyAlbumTracks(myAlbumId,function(data){
            var url = g_urlBilling + "/pay/down/getBillDownLoad?buyTp=mp3&downId=" + data;
            popup.location.href = url;
        }.bind(this));
    },

    addMyAlbumToMyAlbumTrack : function(caller,myAlbumId){
        if(!g_isLogged){
            bugs.ui.showLoginLayer();
            return;
        }

        if(typeof myAlbumId == "undefined" || myAlbumId <= 0 ) return;
        this.getMyAlbumTracks(myAlbumId,function(data){
            $(caller).attr("addToMyalbumCallbackFuncStr","bugs.navigator.goState(document.location.href);");
            playlists.showPlaylistLayer($(caller),data, "myalbum");
        });
    },

    deleteMyAlbum : function(page, myAlbumId){
        if(!g_isLogged){
            bugs.ui.showLoginLayer();
            return;
        }
        var msg = "내 앨범 삭제 시 수록곡 및 등록한 정보가 모두 삭제됩니다.\n삭제하시겠습니까?";
        bugs.confirm(msg, function() {
            var version = $('input#master_version').val();
            var list = this.getMyAlbumIds();
            var idArr = [];
            list.each(function(){
                if(this.value != ""){
                    idArr.push(this.value);
                }
            });

            idArr = idArr.filter(function(item) {
                return item != myAlbumId;
            });
            playlists.updatePlaylist(idArr, version, page);

        }.bind(this));
    },

    checkAll : function(checkAll){
        var checked = $(checkAll).is(":checked");
        this.getCheckboxAll().prop("checked",checked);
    },

    getCheckboxAll : function(){
        return this.listArea.find(" tbody > tr input:checkbox[name=check]");
    },

    getMyAlbumIds : function(){
        return this.listArea.find("li input:hidden[name=myalbumId]");
    },

	getSelectedCheckBox : function(){
		return this.listArea.find(" tbody > tr input:checkbox[name=check]:checked");
	},

    getSelectedRow : function(){
        return this.listArea.find("tbody > tr:has(input:checkbox[name=check]:checked)");
    },

    moveUp : function(isTop){
        //이동 버튼
        var selectedItems = this.getSelectedRow();
        if(selectedItems.length == 0) {
            bugs.ui.showAlert("앨범을 선택해주세요.");
            return false;
        }
        var itemArr = [];
        selectedItems.each(function(){
            itemArr.push($(this));
        });

        var targetItem = null;
        if(isTop){
            targetItem = this.listArea.find("tbody > tr:eq(0)");
            this.moveItems(itemArr, targetItem, true);
        }else{
            if(itemArr[itemArr.length-1].index() <= itemArr.length-1){
                return;
            }
            var item = null;
            for(var i=0, size=itemArr.length; i<size; i++){
                item = itemArr[i];
                if(item.index() == i){
                    continue;
                }
                targetItem = (item.index() <= 0) ? item : item.prev();
                this.moveItems([item], targetItem, true);
            }

        }

        bugs.html.scrollTo({target:selectedItems[0], delay:0, offset : -150});
        return false;
    },

    moveDown : function(isBottom){

        var selectedItems = this.getSelectedRow();
        if(selectedItems.length == 0) {
            bugs.ui.showAlert("앨범을 선택해주세요.");
            return false;
        }
        var itemArr = [];
        selectedItems.each(function(){
            itemArr.push($(this));
        });

        var targetItem = null;
        if(isBottom){
            targetItem = this.listArea.find("tbody > tr:last-child");
            this.moveItems(itemArr, targetItem);
        }else{
            var tCnt = this.listArea.find("tbody > tr").length;
            if(itemArr[0].index() >= tCnt - itemArr.length){
                return;
            }
            var size = itemArr.length;
            var item = null;
            for(var i=itemArr.length-1; i>=0; i--){
                item = itemArr[i];
                if(item.index()>= tCnt - (size-i)) {
                    continue;
                }
                targetItem = (item.is(":last-child")) ? item : item.next();
                this.moveItems([item], targetItem);
            }
        }

        bugs.html.scrollTo({target:selectedItems[0], delay:0, offset : -150});
        return false;
    },

    //선택한 트랙 순서 이동
    moveItems : function(selectedItems, targetItem, insertBefore){
        var tmp = $("<tr></tr>");
        if(insertBefore) tmp.insertBefore(targetItem);
        else tmp.insertAfter(targetItem);
        var curr = tmp;
        for(var i = 0; i < selectedItems.length; i++) {
            selectedItems[i].insertAfter(curr);
            curr = selectedItems[i];
        }
        tmp.remove();

    }

};



bugs.layerMvList = {
    checkAll : function(obj){
        var checked = obj.checked;
        $("#multiMvListLayer").find("input:checkbox[name=mvCheck]").not("input:disabled").each(function(){
            $(this).attr("checked" ,checked);
        });
    },

    viewMvAll : function(){
        if($("#multiMvListLayer div.innerScroll input:hidden[name=_isStream]").not("input:disabled").length <= 0){
            bugs.ui.showAlert("재생 가능한 뮤직비디오가 없습니다.", {css : "layerLoginMsg"});
            return;
        }
        var chks = $("#multiMvListLayer div.innerScroll input:hidden[name=_isStream]").not("input:disabled");

        bugs.music.viewMusicVideo(chks);

    },

    viewMv : function(){
        if($("#multiMvListLayer div.innerScroll input:checkbox[name=mvCheck]").not("input:disabled").length <= 0){
            bugs.ui.showAlert("영상을 선택해 주세요.", {css : "layerLoginMsg"});
        }

        var chks = $("#multiMvListLayer div.innerScroll li:has(input:hidden[name=_isStream]:not(:disabled)) input:checkbox:checked:not(:disabled)");
        if(chks.length == 0){
            bugs.ui.showAlert("영상을 선택해 주세요.", {css : "layerLoginMsg"});
        }else{
            bugs.music.viewMusicVideo(chks);
        }
    },

    downloadMv : function(){
        if($("#multiMvListLayer div.innerScroll input:checkbox[name=mvCheck]").not("input:disabled").length <= 0){
            bugs.ui.showAlert("영상을 선택해 주세요.", {css : "layerLoginMsg"});
        }

        var chks = $("div.innerScroll li:has(input:hidden[name=_isDown]:not(:disabled)) input:checkbox:checked:not(:disabled)");
        if(chks.length == 0){
            bugs.ui.showAlert("영상을 선택해 주세요.", {css : "layerLoginMsg"});
        }else{
            bugs.music.downloadMusicVideo(chks);
        }
    }


};

/*-----/js/utils/music.js / end -----*/

/*-----/js/utils/suggest.js / start -----*/
//function


$(function() {
	bugs.suggest.init();
});


bugs.suggest = {
	BOX_ID : "headerSearchInput",
	TIMEOUT : 200,
	ajaxCallback : null,
	isLock : false,
	timeoutId : null,
	request : null,
	skip : false,
	clearButton : null,
	eventKeyup : function() {
		var _hsi = bugs.suggest.hsi();
		var si = bugs.suggest.inp();
		if(bugs.utils.trim(_hsi.val()) != bugs.utils.trim(si.val())) {
			_hsi.val(si.val());
			if(!bugs.suggest.skip)
				bugs.suggest.open(si.val());
		} else {}
		bugs.suggest.timeoutId = setTimeout(bugs.suggest.eventKeyup, bugs.suggest.TIMEOUT);
	},
	clearEventKeyup : function(event) {
		if(bugs.suggest.timeoutId != null) {
			clearTimeout(bugs.suggest.timeoutId);
			bugs.suggest.timeoutId = null;
		}
	},
	disable : false,
	url : function() {
		return g_urlAjax + "/search/suggest";
	},
	init : function() {
		var isWindows = (navigator.userAgent !== undefined && navigator.userAgent.toLowerCase().indexOf('windows nt') > -1);
		var isFirefox = (navigator.userAgent !== undefined && navigator.userAgent.toLowerCase().indexOf('firefox') > -1);
		var isFirefoxOver73 = true;
        if ((navigator.userAgent !== undefined) && (navigator.userAgent.indexOf("firefox") !== -1)) {
            var reg = /firefox\/(\S+)/;
            var firefox_version = reg.exec(userAgent)[1];
            if(firefox_version <= 73) isFirefoxOver73 = false;
        }

		var input = bugs.suggest.inp();
		this.clearButton = $("#keywordClearButton"); 
		input.unbind("focus").bind("focus",function() {
			bugs.suggest.isLock = false;
			bugs.suggest.eventKeyup();
		}).bind("focusout, blur", function(){
			bugs.suggest.ajaxCallback = null;
			bugs.suggest.isLock = true;
			bugs.suggest.clearEventKeyup();
		});
		
		if(input.length > 0) {
			input.unbind("keyup input").bind("keyup input", $.proxy(function(event) {
				var key = event.witch || event.keyCode;	
				if(key == 13 || event.enterKey || key == 38 || key == 40 || key == 27 || key == 229) {
					return false;
				}
				
				if(input.val().length <= 0){
					input.val('');
				}
				if(event.type == "input"){
					if((isFirefox && !isFirefoxOver73) || isWindows){
						bugs.suggest.clearEventKeyup();
						bugs.suggest.eventKeyup();
					}
				}else{
					bugs.suggest.open(input.val());
				}
				
				if(bugs.valid.empty(input.val())){
					bugs.suggest.clearButton.hide();
				}else{
					if(!bugs.suggest.clearButton.is(":visible")){
						bugs.suggest.clearButton.show();
					}
				}
				
			})).unbind("keydown").bind("keydown",function(event){
				var key = event.witch || event.keyCode;
				if(key == 13 || event.enterKey) {
					if($(".resultArtist a.albumInfo.focus").length > 0){
						document.location.href = $(".resultArtist a.albumInfo.focus").attr('href');
					}else if($(".resultList li a.focus").length > 0){
						document.location.href = $(".resultList li a.focus").attr('href');
					}else{
						event.keyCode = 0;
						try{
							if ( event.stopPropagation ) {
								event.stopPropagation();
							}
							
							if ( event.preventDefault ) {
								event.preventDefault();
							}
							event.cancelBubble = true;
						}catch(e){}
						bugs.search.searchFromButton();
						//window.location.href= g_urlSearch + "/track"  + "?q=" + encodeURIComponent($("#headerSearchInput").val());
					}
				} else if(key == 27) { // ESC Key
					event.keyCode = 0;
					try{
						if ( event.stopPropagation ) {
							event.stopPropagation();
						}
						
						if ( event.preventDefault ) {
							event.preventDefault();
						}
						event.cancelBubble = true;
					}catch(e){}
					bugs.suggest.skipSuggest(bugs.suggest.close);
				} else if(key == 38 || key == 40) {
					event.keyCode = 0;
					bugs.suggest.ajaxCallback = function(){
						bugs.suggest.keyAction(key, input, event);
					};
					try{
						if ( event.stopPropagation ) {
							event.stopPropagation();
						}
						
						if ( event.preventDefault ) {
							event.preventDefault();
						}
						event.cancelBubble = true;
					}catch(e){}
					bugs.suggest.keyAction(key, input, event);
				} 
			});
		}
		
		var _func = function(event) {
			if($("#"+bugs.suggest.BOX_ID +", #headerSearchInput").index(event.target) < 0 ) {
				bugs.suggest.box().hide();
			}
		};
		$(document).click(_func);
		
	},
	box : function() {
		if(typeof bugs.suggest._box == "undefined") {
			bugs.suggest._box = $("#suggest");
		}
		return bugs.suggest._box;		
	},
	skipSuggest : function(func) {
		bugs.suggest.skip= true;
		bugs.suggest.hsi(bugs.suggest.inp().val());
		if(typeof func == "function") func(); 
		bugs.suggest.skip= false;
	},
	inp : function() {
		var _isp;
		if(typeof bugs.suggest._inp == "undefined") {
			bugs.suggest._inp = $("#headerSearchInput");
		}
		_isp = bugs.suggest._inp;
		
		if(typeof value == "undefined") {
			return _isp;
		} else {
			return _isp.val(value);
		}
	},
	hsi : function(value) {
		var _hsi;
		if(typeof bugs.suggest._hsi == "undefined") {
			bugs.suggest._hsi = $("#_hsi");
		} 
		_hsi = bugs.suggest._hsi;

		if(typeof value == "undefined") {
			return _hsi;
		} else {
			return _hsi.val(value);
		}
				
	},
	ul : function() {
		return bugs.suggest.box().find("ul");
	},
	li : function() {
		return bugs.suggest.box().find("ul li");
	},
	ulRemove : function() {
		bugs.suggest.box().find("div.box-shadow").remove();
		bugs.suggest.ul().remove();
	},
	open : function(query) {
		bugs.suggest._open(query);
	}, 
	_open : bugs.utils.debounce(function(query) {
		if(bugs.valid.empty(query)) {
			bugs.suggest.ajaxCallback = null;
			bugs.suggest.close();
			return;
		}
		if(bugs.suggest.isLock){
			bugs.suggest.ajaxCallback = null;
			return;
		}
		
		if(bugs.suggest.request != null){
			bugs.suggest.ajaxCallback = null;
			try{
				bugs.suggest.request.abort();
			}catch(e){}
		}

        jQuery.ajaxSetup({async:false});
		bugs.suggest.request = $.ajax({
			url : bugs.suggest.url(),
			data : {"query": query, "decorator" : "blank"},
			type : "GET",	
			dataType : "html",
			timeout : 1500,
			success : function(result) {
				bugs.suggest.clearEventKeyup();
				bugs.suggest.request = null;
				if(result == null || bugs.utils.trim(result) =="") {
					bugs.suggest.close(); return;
				}
				var oResult;
				try {
					oResult = $(result);
				} catch(e) {
					return;
				}
				if(typeof oResult == "undefined" || oResult.find("li").length == 0) {
					bugs.suggest.close(); return;
				}
				bugs.suggest.ulRemove();
				try{
					bugs.suggest.box()[0].insertAdjacentHTML("beforeend", oResult.html());
				}catch(e){
					
				}
				bugs.search.highLight('suggest');
				bugs.suggest.box().show();
				bugs.suggest.show();
				if(bugs.suggest.ajaxCallback){
					try{
						bugs.suggest.ajaxCallback();
					}catch(e){}
					bugs.suggest.ajaxCallback = null;
				}
			}, 
			error : function() {
				bugs.suggest.ajaxCallback = null;
				bugs.suggest.request = null;
				return false;
			}

		});
        jQuery.ajaxSetup({async:false});
	}, 150),
	close : function() {
		var _hsi = bugs.suggest.hsi();
		var si = bugs.suggest.inp();
		_hsi.val(si.val());
		bugs.suggest.box().hide();
	}, 
	show : function() {
		bugs.suggest.box().show();
	}, 
	keyActionKeyword : null,
	keyAction : function(keyCode, input, event) {
		bugs.suggest.clearEventKeyup(event);
		if(bugs.suggest.keyActionKeyword == null)
			bugs.suggest.keyActionKeyword = input.val();
		bugs.suggest._keyAction(keyCode, input, event);
	},
	_keyAction : function(keyCode, input, event) {
		var arrLi = bugs.suggest.box().find("ul li").toArray();
		var idx;

		$(arrLi).each(function(i) {
			if(keyCode == 38) {
				if($(this).find("a").hasClass("focus")) {
					if(i > 0) {
						idx = i - 1;
					} else if(i == 0) idx = null;
				}
				
			} else if(keyCode == 40) {
				if($(this).find("a").hasClass("focus")) {
					if(i < arrLi.length - 1) {
						idx = i + 1;
					} else if(i == arrLi.length - 1) idx = arrLi.length - 1;
				}
			}
		});
		
		if((typeof idx == "undefined" || idx == null) && keyCode == 40) {
			idx = 0;
		}
		
		bugs.suggest.li().find("a").removeClass("focus");
		if(typeof idx == "undefined" || idx == null) {
			if(keyCode == 38) {
				if(bugs.suggest.keyActionKeyword != null) {
					input.val(bugs.suggest.keyActionKeyword);
					bugs.suggest.hsi(bugs.suggest.keyActionKeyword);
					bugs.suggest.keyActionKeyword = null;
				}
				//bugs.suggest.eventKeyup();
			}
		} else {
			var selected = $(arrLi[idx]).find("a").addClass("focus").end();
			if(selected.parent().hasClass("resultArtist")) {
				input.val(selected.attr("artist_nm"));
				bugs.suggest.hsi().val(selected.attr("artist_nm"));
			} else {
				input.val(selected.find("a").text());
				bugs.suggest.hsi().val(selected.find("a").text());
			}
		}
	}
		
}

/*-----/js/utils/suggest.js / end -----*/

/*-----/js/utils/notice.js / start -----*/
var gnb_notice_tab = "like";	// 선택된 알림 탭

bugs.notice = {

	like_notice_cur_page : 1,
	like_period : 7,
	like_count_unread : 0,
//	like_list_unread : null,
	like_last_data : { type: "", content_id: 0, push_id: 0 },

	notice_period : 3650,
	notice_count_unread : 0,
//	notice_list_unread : null,
	notice_last_data : { type: "", content_id: 0, push_id: 0 },

	notice_current_tab : "like",
	isLogged : false,

	isAjaxProcLike : false,	// 읽음 AJAX 처리 중에는 연속 호출 하지 않도록 하는 Flag
	isAjaxProcNotice : false,	// 읽음 AJAX 처리 중에는 연속 호출 하지 않도록 하는 Flag

	// 알림 팝업
	pop : function(obj, isLogged){

		this.notice_current_tab = gnb_notice_tab;

		if($(".notifications").length > 0) {
			this.removeOldLayer();
			return;
		}

		this.isLogged = isLogged;

		var html = 	this.makeBugsNoticeHtml();
		this.show(obj, html, 14, -128);

		if(this.isLogged == true)
			this.loadBugsPushNoticDataListCnt(true);	// 읽지 않은 좋아, 공지 알림 리스트 개수 가져오기

		this.tabMenuClick(this.notice_current_tab);
//		if(this.notice_current_tab == "like")
//			this.loadBugsPushLikeNoticeDataList(true);		// 좋아 알림 가져오기
//		else
//			this.loadBugsPushCommonNoticeDataList();			// 공지 알림 가져오기
	},

	loadBugsPushNoticDataListCnt : function(flag_pop) {

		// 좋아 알림 개수 가져오기
		if(g_isLogged) {
			$.post(g_urlAjax+"/bugsnotice/ajax/listcount", {
				"notice_period" : this.notice_period,
				"like_period" : this.like_period
			},
			function(result) {
					if (result != "") {
						// 합계 표시
						bugs.notice.notice_count_unread = result.notice_count_unread;
						bugs.notice.like_count_unread = result.like_count_unread;

						unread_count = (bugs.notice.notice_count_unread + bugs.notice.like_count_unread > 99 ? 99 : bugs.notice.notice_count_unread + bugs.notice.like_count_unread);

						if(unread_count == 0) {
							$(".member .notification #btnNotificationMain").show();
							$(".member .notification #aNotificationMain").hide();
						} else {
							$(".member .notification #btnNotificationMain").hide();
							$(".member .notification #aNotificationMain").show();
							$(".member .notification #aNotificationMain").text( unread_count );
						}


						// 좋아 알림 개수 표시
						if(flag_pop == true) {
							$($("aside.notifications nav ul li")[0]).find('span').text("(" + (bugs.notice.like_count_unread > 99 ? 99 : bugs.notice.like_count_unread) + ")");
							$($("aside.notifications nav ul li")[1]).find('span').text("(" + (bugs.notice.notice_count_unread > 99 ? 99 :  bugs.notice.notice_count_unread) + ")");
						}
		  			}
			});
		} else {
			$(".member .notification #btnNotificationMain").show();
			$(".member .notification #aNotificationMain").hide();
			$($("aside.notifications nav ul li")[0]).find('span').text("0");
			$($("aside.notifications nav ul li")[1]).find('span').text("0");
		}
	},

	makeBugsNoticeHtml : function() {
		var html ="";
			html += "	<aside class=\"layer notifications\">\n";
			html += "<div class=\"box-shadow\"></div>\n";
			html += "<div class=\"layerTap\"></div>\n";
			html += "	<nav>\n";
			html += "		<ul>\n";
			html += "		<li><a href=\"javascript:;\" onclick=\"bugs.notice.tabMenuClick('like');bugs.wiselog.area('M_header_03_04_01');\" class=\"notification selected\">알림<span>" + (this.isLogged == true ? "(0)" : "") + "</span></a></li>\n";
			html += "		<li><a href=\"javascript:;\" onclick=\"bugs.notice.tabMenuClick('notice');bugs.wiselog.area('M_header_03_04_03');\" class=\"notice\">공지<span>" + (this.isLogged == true ? "(0)" : "") + "</span></a></li>\n";
			html += "		</ul>\n";
			html += "	</nav>\n";

			html += this.loadBugsLikeNoticeHtml();
			html += this.loadBugsNoticeHtml();

			html += "	</aside>\n";

			return html;
	},

	tabMenuClick : function(flag) {

		this.updatePushNoticeCount();	// 알림 횟수 업데이트하기 (탭 메뉴 바뀌기 전에 갱신)

		if(flag == "like") {
			bugs.notice.loadBugsPushLikeNoticeDataList(true);
			$('.layer.notifications section.notice').hide();
			$('.layer.notifications section.notification').show();
			$('.layer.notifications section.notification.nolike').hide();
			$('.layer.notifications section.notification.nodata').hide();
			$('nav ul li a.notification').addClass('selected');
			$('nav ul li a.notice').removeClass('selected');
			this.notice_current_tab = "like";
		} else {
			bugs.notice.loadBugsPushCommonNoticeDataList();
			$('.layer.notifications section.notification').hide();
			$('.layer.notifications section.notice.data').show();
			$('.layer.notifications section.notice.nodata').hide();
			$('nav ul li a.notice').addClass('selected');
			$('nav ul li a.notification').removeClass('selected');
			this.notice_current_tab = "notice";
		}

		gnb_notice_tab = this.notice_current_tab;
	},

	loadBugsLikeNoticeHtml : function() {
		var html = "";

		if(this.isLogged != true) {	// 비로그인 상태
			html += "	<section class=\"notification\">\n";
			html += "		<h1>알림</h1>\n";
			html += "		<p class=\"msg login\">\n";
			html += "		<em>로그인</em>하시면<br>좋아(♥)한 아티스트와 뮤직PD의<br>새로운 소식을 알려드립니다.\n";
			html += "		</p>\n";
			html += "	</section>\n";
		} else {	// 로그인 상태
			// 로딩 중 표시
			html += "	<section class=\"notification loadingdata\">\n";
			html += "		<h1>알림</h1>\n";
			html += "		<div class=\"innerScroll\" autoScroll=\"Y\" style=\"overflow:hidden\">\n";
//								// 좋아 알림 리스트 들어가는 부분
//			html += "			<div class=\"loadingLayer\"/>";
			html += "		</div>\n";
			html += "	</section>\n";

			// 좋아한 아티스트 및 뮤직PD가 없는 경우 표시
			html += "	<section class=\"notification nolike\" style=\"display:none\">\n";
			html += "		<h1>알림</h1>\n";
			html += "		<p class=\"msg login\">\n";
			html += "		아티스트, 뮤직PD를 좋아(♥)해보세요.<br/>새로운 소식을 알려드립니다.\n";
			html += "		</p>\n";
			html += "	</section>\n";

			// 좋아 알림 없는 경우 표시
			html += "	<section class=\"notification nodata\" style=\"display:none\">\n";
			html += "		<h1>알림</h1>\n";
			html += "		<p class=\"msg login\">\n";
			html += "		최근 7일간 새로운 알림이 없습니다.\n";
			html += "		</p>\n";
			html += "	</section>\n";
		}
		return html;
	},

	loadBugsNoticeHtml : function() {
		var html = "";

		html += "	<section class=\"notice data\">\n";
		html += "		<h1>공지</h1>\n";
		html += "		<div class=\"innerScroll\" autoScroll=\"Y\" style=\"overflow:hidden\">\n";
//		html += "		<div class=\"loadingLayer\"/>";
		html += "		</div>\n";
		html += "	</section>\n";

		// 좋아 알림 없는 경우 표시
		html += "	<section class=\"notice nodata\" style=\"display:none\">\n";
		html += "		<h1>공지</h1>\n";
		html += "		<p class=\"msg login\">\n";
		html += "		등록된 중요 공지가 없습니다.\n";
		html += "		</p>\n";
		html += "	</section>\n";

		return html;
	},

	loadBugsPushLikeNoticeDataList : function(flag_reset) {

		if(flag_reset == true) {	// 더 보기 로 가져오는 경우가 아니라면 페이지 내용 초기화
			$("section.notification").remove();
			$("aside.notifications").append(this.loadBugsLikeNoticeHtml());
		}

		if(!this.loadingLayer1){
			this.loadingLayer1 = new bugs.ui.loadingLayer("알림 로딩 중...", 'section.loadingdata div.innerScroll');
		}

		$(".notification .loadingDiv").css("padding-top", 130);
		this.loadingLayer1.show();

		if(this.isLogged != true)
			return;

		if(flag_reset == true)	this.like_notice_cur_page = 1;	// 더 보기 로 가져오는 경우가 아니라면 기존 내용 초기화(페이지 번호 초기화)
		else						this.like_notice_cur_page++;

		// 좋아 알림 가져오기
		$.post(g_urlAjax+"/bugsnotice/ajax/list/like", {
			"period" : this.like_period,
			"page" : this.like_notice_cur_page
		},
		function(result) {
				if(bugs.notice.loadingLayer1){
					bugs.notice.loadingLayer1.remove();
					delete(bugs.notice.loadingLayer1);
				}
				if (result != "") {

					if(result.like_count > 0) {
						if(flag_reset == true) {	// 더 보기 로 가져오는 경우가 아니라면 페이지 내용 초기화
							$("section.notification").html("").append("<div class='innerScroll' autoScroll='Y' style='overflow:hidden'></div>")
						}
					}

					$("section.notification .more").remove();

					if(result.like_count > 0) {
						var  innerHtml = "		<ul class=\"list\">\n";

						for(var i = 0; i < (result.like_count > 20 ? 20 : result.like_count); i++) {	// 최대 20개의 데이터 표시
							if(result.like_list[i].content_type == "LIKE_ALBUM") {
								innerHtml += "<li class=\"artist\">\n<a onclick=\"bugs.wiselog.area('M_header_03_04_02');\" href=\"javascript:bugs.music.listenAlbum('" + result.like_list[i].content_id + "');\" class=\"hyrend thumbnail\" title=\"" + result.like_list[i].title +"\ 듣기-새창\">\n";
								innerHtml += "<img src=\"" + result.like_list[i].image_url + "\" alt=\"\" />\n";
								innerHtml += "					<span class=\"mask\"></span>\n";
								innerHtml += "					<span class=\"btnPlay\">앨범재생</span>\n";
								innerHtml += "				</a>\n";
								innerHtml += "				<a href=\"" + result.like_list[i].web_link + "\" class=\"hyrend info\" title=\"" + result.like_list[i].title +"\-페이지 이동\">\n";
								innerHtml += "					<strong>" + result.like_list[i].title + "</strong>&nbsp;\n";
								innerHtml += "새 앨범 발매<br>\n";
								innerHtml += "					<span>" + result.like_list[i].content + "</span>\n";
								innerHtml += "				</a>\n";
								innerHtml += "				<div class=\"time\">" + bugs.notice.getTimeDifferenceMessage(result.like_list[i].crt_dt) + "</div>\n";
								innerHtml += "			</li>\n";
							} else if(result.like_list[i].content_type == "LIKE_MV") {
								innerHtml += "<li class=\"mv\">\n<a onclick=\"bugs.wiselog.area('M_header_03_04_02');\" href=\"" + g_urlMusic + "/mv/" + result.like_list[i].content_id + "\" class=\"hyrend thumbnail\" title=\"" + result.like_list[i].title +"\ 보기-새창\">\n";
								innerHtml += "<img src=\"" + result.like_list[i].image_url + "\" alt=\"\" />\n";
								innerHtml += "					<span class=\"mask\"></span>\n";
								innerHtml += "					<span class=\"btnPlay\">뮤직비디오재생</span>\n";
								innerHtml += "				</a>\n";
								innerHtml += "				<a href=\"" + result.like_list[i].web_link + "\" class=\"hyrend info\" title=\"" + result.like_list[i].title +"\-페이지 이동\">\n";
								innerHtml += "					<strong>" + result.like_list[i].title + "</strong>&nbsp;\n";
								innerHtml += "새 영상 공개<br>\n";
								innerHtml += "					<span>" + result.like_list[i].content + "</span>\n";
								innerHtml += "				</a>\n";
								innerHtml += "				<div class=\"time\">" + bugs.notice.getTimeDifferenceMessage(result.like_list[i].crt_dt) + "</div>\n";
								innerHtml += "			</li>\n";
							} else if(result.like_list[i].content_type == "LIKE_SPECIAL") {
								innerHtml += "<li class=\"special\">\n<a onclick=\"bugs.wiselog.area('M_header_03_04_02');\" href=\"javascript:bugs.music.listenSpecial('" + result.like_list[i].content_id + "', true);\" class=\"hyrend thumbnail\" title=\"" + result.like_list[i].title +"\ 듣기-새창\">\n";
								innerHtml += "<img src=\"" + result.like_list[i].image_url + "\" alt=\"\" />\n";
								innerHtml += "					<span class=\"mask\"></span>\n";
								innerHtml += "					<span class=\"btnPlay\">뮤직포스트재생</span>\n";
								innerHtml += "				</a>\n";
								innerHtml += "				<a href=\"" + result.like_list[i].web_link + "\" class=\"hyrend info\" title=\"" + result.like_list[i].title +"\-페이지 이동\">\n";
								innerHtml += "					<strong>" + result.like_list[i].title + "</strong>&nbsp;\n";
								innerHtml += "새 스페셜 등록<br>\n";
								innerHtml += "					<span>" + result.like_list[i].content + "</span>\n";
								innerHtml += "				</a>\n";
								innerHtml += "				<div class=\"time\">" + bugs.notice.getTimeDifferenceMessage(result.like_list[i].crt_dt) + "</div>\n";
								innerHtml += "			</li>\n";
                            } else if(result.like_list[i].content_type == "LIKE_SNACKMUSIC") {
                                innerHtml += "<li class=\"special\">\n<a onclick=\"bugs.wiselog.area('M_header_03_04_02');\" href=\"javascript:bugs.music.listenSpecial('" + result.like_list[i].content_id + "', true);\" class=\"hyrend thumbnail\" title=\"" + result.like_list[i].title +"\ 듣기-새창\">\n";
                                innerHtml += "<img src=\"" + result.like_list[i].image_url + "\" alt=\"\" />\n";
                                innerHtml += "					<span class=\"mask\"></span>\n";
                                innerHtml += "					<span class=\"btnPlay\">스낵뮤직재생</span>\n";
                                innerHtml += "				</a>\n";
                                innerHtml += "				<a href=\"" + result.like_list[i].web_link + "\" class=\"hyrend info\" title=\"" + result.like_list[i].title +"\-페이지 이동\">\n";
                                innerHtml += "					<strong>" + result.like_list[i].title + "</strong>&nbsp;\n";
                                innerHtml += "새 스낵뮤직 등록<br>\n";
                                innerHtml += "					<span>" + result.like_list[i].content + "</span>\n";
                                innerHtml += "				</a>\n";
                                innerHtml += "				<div class=\"time\">" + bugs.notice.getTimeDifferenceMessage(result.like_list[i].crt_dt) + "</div>\n";
                                innerHtml += "			</li>\n";
							} else if(result.like_list[i].content_type == "LIKE_PDALBUM") {
								innerHtml += "<li class=\"musicpd\">\n<a onclick=\"bugs.wiselog.area('M_header_03_04_02');\" href=\"javascript:bugs.music.listenEsalbum('" + result.like_list[i].content_id + "', true);\" class=\"hyrend thumbnail\" title=\"" + result.like_list[i].title +"\ 듣기-새창\">\n";
								innerHtml += "<img src=\"" + result.like_list[i].image_url + "\" alt=\"\" onerror=\"bugs.utils.imgError(this);\"/>\n";
								innerHtml += "					<span class=\"mask\"></span>\n";
								innerHtml += "					<span class=\"btnPlay\">앨범재생</span>\n";
								innerHtml += "				</a>\n";
								innerHtml += "				<a href=\"" + result.like_list[i].web_link + "\" class=\"hyrend info\" title=\"" + result.like_list[i].title +"\-페이지 이동\">\n";
								innerHtml += "					<strong>" + result.like_list[i].title + "</strong>&nbsp;\n";
								innerHtml += "새 뮤직PD앨범 등록<br>\n";
								innerHtml += "					<span>" + result.like_list[i].content + "</span>\n";
								innerHtml += "				</a>\n";
								innerHtml += "				<div class=\"time\">" + bugs.notice.getTimeDifferenceMessage(result.like_list[i].crt_dt) + "</div>\n";
								innerHtml += "			</li>\n";
							} else if(result.like_list[i].content_type == "LIKE_MUSICCAST") {
								innerHtml += "<li class=\"musiccast\">\n<a onclick=\"bugs.wiselog.area('M_header_03_04_02');\" href=\"javascript:bugs.music.listenRadioMusicCast('" + result.like_list[i].content_id + "', 'episode');\" class=\"hyrend thumbnail\" title=\"" + result.like_list[i].title +"\ 듣기-새창\">\n";
								innerHtml += "<img src=\"" + result.like_list[i].image_url + "\" alt=\"\" />\n";
								innerHtml += "					<span class=\"mask\"></span>\n";
								innerHtml += "					<span class=\"btnPlay\">뮤직캐스트에피소드재생</span>\n";
								innerHtml += "				</a>\n";
								innerHtml += "				<a href=\"" + result.like_list[i].web_link + "\" class=\"hyrend info\" title=\"" + result.like_list[i].title +"\-페이지 이동\">\n";
								innerHtml += "					<strong>" + result.like_list[i].title + "</strong>&nbsp;\n";
								innerHtml += "새 에피소드 등록<br>\n";
								innerHtml += "					<span>" + result.like_list[i].content + "</span>\n";
								innerHtml += "				</a>\n";
								innerHtml += "				<div class=\"time\">" + bugs.notice.getTimeDifferenceMessage(result.like_list[i].crt_dt) + "</div>\n";
								innerHtml += "			</li>\n";
							}

							else if(result.like_list[i].content_type == "LIKE_BSIDE_TRACK") {
								innerHtml += "<li class=\"artist\">\n<a onclick=\"bugs.wiselog.area('M_header_03_04_02');\" href=\"javascript:bugs.music.listen('" + result.like_list[i].content_id + "', true);\" class=\"hyrend thumbnail\" title=\"" + result.like_list[i].title +"\ 듣기-새창\">\n";
								innerHtml += "<img src=\"" + result.like_list[i].image_url + "\" alt=\"\" />\n";
								innerHtml += "					<span class=\"mask\"></span>\n";
//								innerHtml += "					<span class=\"badgeBside bside1315\">Bside</span>\n";
								innerHtml += "					<span class=\"btnPlay\">곡재생</span>\n";
								innerHtml += "				</a>\n";
								innerHtml += "				<a href=\"" + result.like_list[i].web_link + "\" class=\"hyrend info\" title=\"" + result.like_list[i].title +"\-페이지 이동\">\n";
								innerHtml += "					<strong>" + result.like_list[i].title + "</strong>&nbsp;\n";
								innerHtml += "새 곡 등록<br>\n";
								innerHtml += "					<span>" + result.like_list[i].content + "</span>\n";
								innerHtml += "				</a>\n";
								innerHtml += "				<div class=\"time\">" + bugs.notice.getTimeDifferenceMessage(result.like_list[i].crt_dt) + "</div>\n";
								innerHtml += "			</li>\n";
							} else if(result.like_list[i].content_type == "LIKE_BSIDE_MV") {
								innerHtml += "<li class=\"artist\">\n<a onclick=\"bugs.wiselog.area('M_header_03_04_02');\" href=\"" + g_urlMusic + "/mv/" + result.like_list[i].content_id + "\" class=\"hyrend thumbnail\" title=\"" + result.like_list[i].title +"\ 보기-새창\">\n";
								innerHtml += "<img src=\"" + result.like_list[i].image_url + "\" alt=\"\" />\n";
								innerHtml += "					<span class=\"mask\"></span>\n";
//								innerHtml += "					<span class=\"badgeBside bside1315\">Bside</span>\n";
								innerHtml += "					<span class=\"btnPlay\">영상재생</span>\n";
								innerHtml += "				</a>\n";
								innerHtml += "				<a href=\"" + result.like_list[i].web_link + "\" class=\"hyrend info\" title=\"" + result.like_list[i].title +"\-페이지 이동\">\n";
								innerHtml += "					<strong>" + result.like_list[i].title + "</strong>&nbsp;\n";
								innerHtml += "새 영상 등록<br>\n";
								innerHtml += "					<span>" + result.like_list[i].content + "</span>\n";
								innerHtml += "				</a>\n";
								innerHtml += "				<div class=\"time\">" + bugs.notice.getTimeDifferenceMessage(result.like_list[i].crt_dt) + "</div>\n";
								innerHtml += "			</li>\n";
							} else if(result.like_list[i].content_type == "LIKE_BSIDE_NEWS") {
								if(result.like_list[i].notice_id == 54218) {	// FAKE FLAC 환불 관련 알림
									innerHtml += "<li class=\"flacCashRefund\">";
									innerHtml += "<span class=\"thumbnail\"></span>";
									innerHtml += "<a href=\"" + result.like_list[i].web_link + "\" class=\"info\">";
									innerHtml += "	<strong>벅스</strong> FLAC 음원 캐시 환불 안내<br>";
									innerHtml += "	<span>";
									innerHtml += "		구매하신 FLAC 음원 중 고해상도 여부에 이견이<br/>있을 수 있는 음원이 발견돼 캐시로 환불했습니다.";
									innerHtml += "		<em>공지 보기</em>";
									innerHtml += "	</span>";
									innerHtml += "</a>";
									innerHtml += "<time class=\"time\" datetime=\"" + bugs.notice.getTimeDifferenceMessage(result.like_list[i].crt_dt) + "\">" + bugs.notice.getTimeDifferenceMessage(result.like_list[i].crt_dt) + "</time>";
									innerHtml += "</li>";
								} else {
									innerHtml += "<li class=\"bsideNews\"><a href=\"javascript:;\" onclick=\"bugs.notice.goToPageByBsideFeed('" + result.like_list[i].web_link + "', " + result.like_list[i].bside_feed_id + ");\" class=\"hyrend thumbnail\" title=\"" + result.like_list[i].title +"\ 보기-새창\">\n";
									innerHtml += "<img src=\"" + result.like_list[i].image_url + "\" alt=\"\" />\n";
									innerHtml += "					<span class=\"mask\"></span>\n";
									innerHtml += "				</a>\n";
									innerHtml += "				<a href=\"javascript:;\" onclick=\"bugs.notice.goToPageByBsideFeed('" + result.like_list[i].web_link + "', " + result.like_list[i].bside_feed_id + ");\" class=\"hyrend info\" title=\"" + result.like_list[i].title +"\-페이지 이동\">\n";
									innerHtml += "					<strong>" + result.like_list[i].title + "</strong>&nbsp;\n";
									innerHtml += "새 스토리 등록<br>\n";
									innerHtml += "					<span>" + result.like_list[i].content + "</span>\n";
									innerHtml += "				</a>\n";
									innerHtml += "				<div class=\"time\">" + bugs.notice.getTimeDifferenceMessage(result.like_list[i].crt_dt) + "</div>\n";
									innerHtml += "			</li>\n";
								}
							} else if(result.like_list[i].content_type == "PUBLIC_NOTICE") {	// 공용 알림
								innerHtml += "<li class=\"bugsPublicNotice\">";
								innerHtml += "<span class=\"thumbnail\">"
								innerHtml += "<img src=\"" + result.like_list[i].image_url + "\" alt=\"\" />\n";
								innerHtml += 	"</span>";
								innerHtml += "<a href=\"" + result.like_list[i].web_link + "\" class=\"info\" " + (result.like_list[i].web_link.indexOf("target=_blank") > 0 ? "target=\"_blank\"" : "") + ">";
								innerHtml += "	<strong>벅스</strong>" + result.like_list[i].title + "<br>";
								innerHtml += "	<span>" + result.like_list[i].content.split("\\n").join("<br/>") + "</span>\n";
//								innerHtml += "	<span>" + result.like_list[i].content.split("\\n").join("<br/><em>") + "</em></span>\n";
								innerHtml += "</a>";
								innerHtml += "<time class=\"time\" datetime=\"" + bugs.notice.getTimeDifferenceMessage(result.like_list[i].crt_dt) + "\">" + bugs.notice.getTimeDifferenceMessage(result.like_list[i].crt_dt) + "</time></li>";
							} else if(bugs.notice.isFavoriteNoti(result.like_list[i].content_type)) {	// favorite noti
								innerHtml += "<li class=\"favoriteNotice\">";
								innerHtml += "<a href=\"" + result.like_list[i].web_link + "\" class=\"thumbnail\">"
								innerHtml += "	<img src=\"" + result.like_list[i].image_url + "\" alt=\"" + result.like_list[i].title + "\"  onerror=\"bugs.utils.imgError(this);\"/>\n";
								innerHtml += "	<span class=\"mask\"></span>"
								innerHtml += "</a>";
								innerHtml += "<a href=\"" + result.like_list[i].web_link + "\" class=\"info\" " + (result.like_list[i].web_link.indexOf("target=_blank") > 0 ? "target=\"_blank\"" : "") + ">";
								innerHtml +=  "<strong>" + result.like_list[i].title + "</strong> Favorite 투표 시작!<br>";
								innerHtml += "	<span>" + bugs.notice.getNewLineToBR(result.like_list[i]) + "<br/><br/><em>투표하러 가기 (Vote Now)</em></span>\n";
								innerHtml += "</a>";
								innerHtml += "<time class=\"time\" datetime=\"" + bugs.notice.getTimeDifferenceMessage(result.like_list[i].crt_dt) + "\">" + bugs.notice.getTimeDifferenceMessage(result.like_list[i].crt_dt) + "</time></li>";
							} else if(result.like_list[i].content_type.indexOf("CMT_RP_") >= 0) {	// 한마디 댓글
								innerHtml += "<li class=\"comments\">\n";
								innerHtml += "<span class=\"thumbnail\"></span>\n";
								innerHtml += "<a href=\"javascript:;\" onclick=\"bugs.notice.goToPageByComment('" + result.like_list[i].web_link + "', 'reply', '" + result.like_list[i].my_comment_id + "', '" + result.like_list[i].comment_reply_id + "');\" class=\"info\">\n";
								innerHtml += "	<strong>" + result.like_list[i].title + "</strong> 답글 등록<br>\n";
								innerHtml += "	<span>" + result.like_list[i].content + "</span>\n";
								innerHtml += "</a>\n";
								innerHtml += "				<div class=\"time\">" + bugs.notice.getTimeDifferenceMessage(result.like_list[i].crt_dt) + "</div>\n";
//								innerHtml += "<time class=\"time\" datetime=\"\">" + bugs.notice.getTimeDifferenceMessage(result.like_list[i].crt_dt) + "</time>\n";
								innerHtml += "</li>\n";
							} else if(result.like_list[i].content_type.indexOf("CMT_TO_") >= 0) {	// 한마디 댓글 (뮤직PD)
								innerHtml += "<li class=\"comments\">\n";
								innerHtml += "<span class=\"thumbnail\"></span>\n";
								innerHtml += "<a href=\"javascript:;\" onclick=\"bugs.notice.goToPageByComment('" + result.like_list[i].web_link + "', 'mycomment', '" + result.like_list[i].my_comment_id + "', '" + result.like_list[i].comment_reply_id + "');\" class=\"info\">\n";
								innerHtml += "	<strong>" + result.like_list[i].title + "</strong> 한마디 등록<br>\n";
								innerHtml += "	<span>" + result.like_list[i].content + "</span>\n";
								innerHtml += "</a>\n";
								innerHtml += "				<div class=\"time\">" + bugs.notice.getTimeDifferenceMessage(result.like_list[i].crt_dt) + "</div>\n";
//								innerHtml += "<time class=\"time\" datetime=\"\">" + bugs.notice.getTimeDifferenceMessage(result.like_list[i].crt_dt) + "</time>\n";
								innerHtml += "</li>\n";
							}
						}

						innerHtml += "		</ul>\n";
						innerHtml += "		<div class=\"more\"><a href=\"javascript:;\" onclick=\"bugs.notice.moreLikeNotice(this);return false;\">더 보기</a></div>\n";

						if(flag_reset == true) {	// 더 보기 로 가져오는 경우가 아니라면 페이지 내용 초기화
			  				$("section.notification .innerScroll").append(innerHtml);
						} else {
							$($("section.notification .innerScroll .jspContainer .jspPane")[0]).append(innerHtml);

//								$("section.notification .more").bind("click", function () { alert("버튼이 클릭됨"); });
//								$("section.notification .more").trigger("click");
						}

		  				if(result.like_count <= 20)	// 더 이상 데이터가 없으므로 '더 보기' 버튼 숨기기
			  				$("section.notification .more").hide();
		  				else
		  					$("section.notification .more").show();

		  				bugs.notice.like_count_unread = result.like_count_unread; // 읽지 않은 좋아 알림 수 데이터
//							bugs.notice.like_list_unread = result.like_list_unread;	// 읽지 않은 좋아 알림 리스트 데이터

						if(result.like_count_unread > 0 && flag_reset == true) {
							bugs.notice.like_last_data.type = result.like_list[0].target_type;
							bugs.notice.like_last_data.content_id = result.like_list[0].content_id;
							bugs.notice.like_last_data.push_id = result.like_list[0].like_push_id;
						}

						if(flag_reset == true) {	// 더 보기 로 가져오는 경우가 아니라면 페이지 내용 초기화
							setTimeout(function(){
								bugs.scroll.setScrollBar("section.notification .innerScroll", true);
							},100);
						} else {
							setTimeout(function(){
								var oldLastItem = $("section.notification").find("li").last();
								bugs.scroll.reinit("section.notification .innerScroll", oldLastItem);
							},100);
						}

					} else {	// 좋아 알림 내역이 없으면
		  				$("section.notification.nodata").show();
		  				$("section.notification .innerScroll").hide();

		  				bugs.notice.like_count_unread = 0;
//			  				bugs.notice.like_list_unread = null;
					}

//	  				$("section.notification .loading").hide().remove();
	  			}
		});
	},

	comment_type : "",
	goToPageByComment : function(url, type, my_comment_id, comment_reply_id) {
		// 삭제된 알림인지 체크
		var comment_id = 0;
		this.comment_type = type;
		if(type == "mycomment")
			comment_id = my_comment_id;
		else // if(type == reply)
			comment_id = comment_reply_id;

		bugs.wiselog.area('M_header_03_04_02');

		$.post(g_urlAjax+"/bugsnotice/ajax/commentexist", {
			"comment_type" : type,
			"comment_id" : comment_id
		},
		function(result) {
			if(result == 1)
				location.href = url;
			else if(result == 0)
				alert('이미 삭제된 ' + (this.comment_type == 'mycomment' ? '한마디' : '답글') + '입니다.');	// mycomment, reply
			else
				alert('잘못된 접근입니다.');
		});
	},

	goToPageByBsideFeed : function(url, bside_feed_id) {
        if (bside_feed_id == null) {
            location.href = url;
            return;
	    }

		// 삭제된 커넥트 스토리인지 체크
        bugs.wiselog.area('M_header_03_04_02');

        $.post(g_urlAjax+"/bugsnotice/ajax/connectstoryexist", {
            "bside_feed_id" : bside_feed_id
        },
		function(result) {
			if(result == 1)
				location.href = url;
			else if(result == 0)
				alert('이미 삭제된 글입니다.');
			else
				alert('잘못된 접근입니다.');
		});
	},

	getTimeDifferenceMessage : function(strDate) {

		if(strDate == null)
			return;

		var targetDate = new Date (strDate.substring(0, 4), strDate.substring(4, 6) - 1, strDate.substring(6, 8), strDate.substring(8, 10), strDate.substring(10, 12), strDate.substring(12, 14));
		var curDate = new Date();

		var diff = curDate - targetDate;

		var diffMilSec = diff;
		var diffSec = diff / 1000;
		var diffMin = diff / (60 * 1000);
		var diffHour = diff / (60 * 60 * 1000);
		var diffDay = diff / (24 * 60 * 60 * 1000);
		var diffWeek = diff / (7 * 24 * 60 * 60 * 1000);

		if(diffSec < 60) {
			return "방금 전"; // "1분 이하";
		} else if(diffMin >= 1 && diffMin < 60) {
			return parseInt(diffMin) + "분 전";
		} else if(diffHour >= 1 && diffHour < 24) {
			return parseInt(diffHour) + "시간 전";
		} else if(diffDay >= 1 && diffDay < 7) {
			return parseInt(diffDay) + "일 전";
		} else if(diffWeek >= 1 && diffWeek < 5) {
			return parseInt(diffWeek) + "주 전";
		} else {
			return (strDate.substring(0, 4)) + "." + (strDate.substring(4, 6) - 1) + ".", (strDate.substring(6, 8))
		}


		return "";
	},

	moreLikeNotice : function() {
		this.loadBugsPushLikeNoticeDataList(false);
	},

	isFavoriteNoti : function(notiType) {
		var favoriteNotiTypes = ["FAVORITE_ARTIST", "FAVORITE_ALBUM", "FAVORITE_TRACK"];
		if(favoriteNotiTypes.includes(notiType)) return true;
		else return false;
	},

	getNewLineToBR(notiObj) {
		var favorte_content = "";
		if ( notiObj && notiObj.content_type &&
			(this.isFavoriteNoti(notiObj.content_type))
			&& notiObj.content) {
			favorte_content = notiObj.content.replace(/\n/g, '<br/>');
		}
		return favorte_content;
	},

	loadBugsPushCommonNoticeDataList : function() {

		$("section.notice.data").html("").append("<div class='innerScroll' autoScroll='Y'></div>")
//		$("section.notification .innerScroll").html("");

		if(!this.loadingLayer2){
			this.loadingLayer2 = new bugs.ui.loadingLayer("공지 로딩 중...", 'section.notice.data div.innerScroll');
		}

		$(".notification .loadingDiv").css("padding-top", 110);
		this.loadingLayer2.show();

		// 공지 알림 가져오기
		$.post(g_urlAjax+"/bugsnotice/ajax/list/notice", {
				"period" : this.notice_period
			},
			function(result) {
				if(bugs.notice.loadingLayer2){
					bugs.notice.loadingLayer2.remove();
					delete(bugs.notice.loadingLayer2);
				}
				if (result != "") {

					if(result.notice_count > 0) {
						var innerHtml = "";
						var i;
						for(i = 0; i < result.notice_count; i++) {
							innerHtml += "		<ul>\n";
							innerHtml += "			<li>\n";
							innerHtml += "				<a href=\"" + bugs.url.noticePage(result.notice_list[i].srl) + "&from=noti"+ "\" onclick=\"bugs.wiselog.area('M_header_03_04_04');\" class=\"hyrend\" title=\"" + result.notice_list[i].title +"\-페이지 이동\">	" + result.notice_list[i].title + "</a>\n";
							innerHtml += "				<div class=\"time\">" + result.notice_list[i].crt_dt.substring(0, 4) + "." + result.notice_list[i].crt_dt.substring(4, 6) + "." + result.notice_list[i].crt_dt.substring(6, 8) + "</div>\n";
							innerHtml += "			</li>\n";
							innerHtml += "		</ul>\n";
						}
						innerHtml += "		<div class=\"more\"><a href=\"" + g_urlMusic + "/board/notice\" onclick=\"bugs.notice.updatePushNoticeCount();\" class=\"btnMore\">더 보기</a></div>\n";

		  				$("section.notice.data .innerScroll").html(innerHtml);

		  				bugs.notice.notice_count_unread = result.notice_count_unread; // 읽지 않은 공지 알림 수 데이터
	//					bugs.notice.notice_list_unread = result.notice_list_unread;	// 읽지 않은 공지 알림 리스트 데이터

						if(result.notice_count_unread > 0) {
							bugs.notice.notice_last_data.type = "notice";
							bugs.notice.notice_last_data.content_id = result.notice_list[0].srl;
							bugs.notice.notice_last_data.push_id = result.notice_list[0].srl;
						}

						setTimeout(function(){
							bugs.scroll.setScrollBar("section.notice.data .innerScroll", true);
						},100);
					} else {
		  				$("section.notice.nodata").show();
		  				$("section.notice.data").hide();
		  				bugs.notice.notice_count_unread = 0;
					}
	  			}
		});
	},

	removeOldLayer : function(){
		if($(".notifications").length > 0) {
			$(document).unbind("click", bugs.notice.hideWhenDocumentClick);
			$(".notifications").hide().remove();
		}
	},

	show : function(obj, html, top, left){
		var oobj = $(obj);
//		var layer = $(html).appendTo("body");
		var layer = $(html).appendTo("#memberNotificationArea");
		bugs.notice.layerEventHandler(oobj, layer, top, left);
		$(document).bind("click", {button : oobj, layer : layer}, bugs.notice.hideWhenDocumentClick);
	},

	updatePushNoticeCount : function() {

		if(this.isLogged == true) {
			// 알림 읽음 처리
			if(this.notice_current_tab == "like") { // 좋아 알림 페이지를 떠날 때
				if(this.like_count_unread > 0) { //  && this.like_list_unread != null) {	// 읽음 처리할 데이터가 있는 경우에만 처리
					if(this.isAjaxProcLike != true) {
						this.isAjaxProcLike = true;

						if(bugs.notice.like_last_data.type == "") {
							bugs.notice.isAjaxProcLike = false;
							return;
						}

						$.post(g_urlAjax+"/bugsnotice/ajax/read/like", {
//								"list" : JSON.stringify(bugs.notice.like_list_unread)
								data_type : "", // bugs.notice.like_last_data.type,
								data_content_id : 1, // bugs.notice.like_last_data.content_id,
								data_push_id : 0, // bugs.notice.like_last_data.push_id,
								data_period : this.like_period
							},
							function(result) {
								if (result != "") {
									if(result.rtnValue == true) {
										bugs.notice.loadBugsPushNoticDataListCnt(true);
										bugs.notice.like_last_data.type = "";
										bugs.notice.like_last_data.content_id = 0;
										bugs.notice.like_last_data.push_id = 0;
									}
					  			}
								bugs.notice.isAjaxProcLike = false;
						});
					}
				}
			} else if(this.notice_current_tab == "notice") { // 공지 알림 페이지를 떠날 때
				if(this.notice_count_unread > 0) { // && this.notice_list_unread != null) {	// 읽음 처리할 데이터가 있는 경우에만 처리
					if(this.isAjaxProcNotice != true) {
						this.isAjaxProcNotice = true;
						$.post(g_urlAjax+"/bugsnotice/ajax/read/notice", {
//								"list" : JSON.stringify(bugs.notice.notice_list_unread)
								data_type : "notice",
								data_content_id : bugs.notice.notice_last_data.content_id,
								data_push_id : (bugs.notice.notice_last_data.push_id == undefined ? 0 : bugs.notice.notice_last_data.push_id),
								data_period : this.notice_period
							},
							function(result) {
								if (result != "") {
									if(result.rtnValue == true) {
										bugs.notice.loadBugsPushNoticDataListCnt(true);
										bugs.notice.notice_last_data.type = "";
										bugs.notice.notice_last_data.content_id = 0;
										bugs.notice.notice_last_data.push_id = 0;
									}
					  			}
								bugs.notice.isAjaxProcNotice = false;
						});
					}
				}
			}
		}
	},

	hideWhenDocumentClick :  function(e) {

		if(e.data.button.index(e.target) < 0 && e.data.button.children().index(e.target) < 0
			&& e.data.layer.index(e.target) < 0 && e.data.layer.children().index(e.target) < 0) {

			// 상단 탭 메뉴는 예외 처리
			var targetParent = $(e.target).parent().parent();
			if(targetParent.parent().parent().parent().parent().hasClass('notifications') || targetParent.parent().parent().parent().hasClass('notifications') || targetParent.parent().parent().hasClass('notifications') || targetParent.parent().hasClass('notifications') || targetParent.hasClass('notifications')) {
				// DoNothng
			}  else {
				e.data.layer.hide().remove();
				$(document).unbind("click", bugs.notice.hideWhenDocumentClick);

				// 알림 개수 갱신하기
				bugs.notice.updatePushNoticeCount();
			}
		}

	},

	layerEventHandler : function(caller, layer, _top, _left) {
		var a = caller;
		layer.show();

		$(window).resize(function() {
			layer.show();

		});

	}
};


$(document).ready(function(){
	bugs.notice.loadBugsPushNoticDataListCnt(false);
});

/*-----/js/utils/notice.js / end -----*/

/*-----/js/me/likes.js / start -----*/
$(document)
		.ready(
				function() {
					likes.popHtml = "		<dl>"
							+ "			<dt><strong>보관함에 추가되었습니다.</strong></dt>"
							+ "			<dd class=\"text\">담기나 좋아를 클릭하면 내 좋아보관함에<br>담기고 <strong>좋아 점수가 +1</strong> 됩니다.</dd>"
							+ "			<dd class=\"check\">"
							+ "			<input type=\"checkbox\" id=\"noMessage\" class=\"checkbox\" onclick=\"javscript:likes.setNoPop();\" /> <label for=\"noMessage\">앞으로 이 메시지 표시 안 함</label>"
							+ "			</dd>"
							+ "		</dl>"
							+ "		<div class=\"btnArea\">"
							+ "			<span class=\"button typeME\"><a href=\""
							+ g_urlMe
							+ "/library/song\" type=\"ok\">보관함 보기</a></span>"
							// + " <span class=\"button typeM\"><a
							// href=\"javascript:void(0);\"
							// onclick=\"javascript:$('div.layerPopup.noTitle.layerAddMylist').hide('blind',
							// 'normal', {}, function() {
							// $('div.layerPopup.noTitle.layerAddMylist').remove();
							// bugs.ui.modalLayer.hide(); });\">닫기</a></span>"
							+ "			<span class=\"button typeM\"><a href=\"#\" type=\"cancel\">닫기</a></span>"
							+ "		</div>";

					// likes.getPopYn();
					
				});


var g_urlLikes = g_urlAjax + "/like";

if ("undefined" == typeof likes) {
	likes = {
		TYPE_TRACK : "TRACK",
		TYPE_ARTIST : "ARTIST",
		TYPE_ALBUM : "ALBUM",
		TYPE_MV : "MV",
		TYPE_PLAYLIST : "PLAYLIST",
		TYPE_MEMBER : "MEMBER",
		TYPE_MY_COMMENT : "MY_COMMENT",
		TYPE_ESALBUM : "ESALBUM",
		TYPE_MUSICCAST_CHANNEL : "MUSICCAST_CHANNEL",
		TYPE_PVOD : "PVOD",

		draggble_count : 0,
		draggable_pos : 0,
		draggable_ids : "",
		draggable_target : 0,
		draggable_priority : 0,
		draggable_data_reset : false,
		draggable_data_from : 0,
		drag_on : false,
		popHtml : "",
		pop : false,
		popCheck : false,
		openWindow : false,
		anchor : "",
		type : "",
		option : {},
		// 뉴벅스 이벤트 ===============================================
		// eventLikesType : "",
		// eventMissionLike : false,
		// ============================================================
		adds : function(id, type, callbackTrue, callbackFalse) {
			this.adds(ids, type, {}, callbackTrue, callbackFalse)
		},
		add : function(id, type, option, callbackTrue, callbackFalse) {
			// likes.eventLikesType = type; // 뉴벅스 이벤트
			likes.hideAddAlert();
			try {
				$.getJSON(g_urlLikes + "/add/" + type + "/" + id, {}, function(
						data) {

					if (data.result) {
						likes.option = option;
						likes.anchor = option.anchor;
						likes.type = type;
//						likes.showAddAlert(); // 항상 레이어 보여줘야 함

						if (typeof (callbackTrue) == "string")
							eval(callbackTrue);
						else if (typeof (callbackTrue) == "function")
							callbackTrue(data);
					} else {
						if (data.error_type == "NOT_LOGGED")
							bugs.ui.showLoginLayer();

						if (typeof (callbackFalse) == "string")
							eval(callbackFalse);
						else if (typeof (callbackFalse) == "function")
							callbackFalse(data);
					}
				});
			} catch (e) {
				if (typeof (callbackFalse) == "string")
					eval(callbackFalse);
				else if (typeof (callbackFalse) == "function")
					callbackFalse();
			}
		},
		adds : function(ids, type, option, callbackTrue, callbackFalse) {
			likes.hideAddAlert();
			// likes.eventLikesType = type; // 뉴벅스 이벤트
			var splitIDs = ids.split(",");
			if (splitIDs.length > 150) {
				bugs.ui.showAlert("1회에 150개까지 가능합니다.", {
					css : "layerAlert layerAdultNotice"
				});
				return;
			}
			try {
				likes.anchor = option.anchor;
				likes.type = type;				
				$.post(g_urlLikes + "/adds/" + type, {
					"ids" : ids
				}, function(data) {
					if (data.result) {

						if (true)
							likes.showAddAlert();
						else if (!likes.popCheck)
							likes.getPopYn();
						// else likes.openNbugsEventPop(true); // 뉴벅스 이벤트

						if (typeof (callbackTrue) == "string")
							eval(callbackTrue);
						else if (typeof (callbackTrue) == "function"){
							callbackTrue(data);
						}
							
					} else {
						if (data.error_type == "NOT_LOGGED")
							bugs.ui.showLoginLayer();
						if (data.error_type == "DB_ERROR")
							if (likes.type == "MV")
								likes.showAleadyAlert();

						if (typeof (callbackFalse) == "string")
							eval(callbackFalse);
						else if (typeof (callbackFalse) == "function")
							callbackFalse(data);
					}
				}, "json");
			} catch (e) {
				if (typeof (callbackFalse) == "string")
					eval(callbackFalse);
				else if (typeof (callbackFalse) == "function")
					callbackFalse();
			}
		},
		del : function(id, type, option, callbackTrue, callbackFalse) {
			likes.hideAddAlert();
			try {
				
				$.getJSON(g_urlLikes + "/delete/" + type + "/" + id, {},
						function(data) {
							if (data.result) {
								if (typeof (callbackTrue) == "string")
									eval(callbackTrue);
								else if (typeof callbackTrue == "function"){
									callbackTrue(data);
								}
							} else {
								if (data.error_type == "NOT_LOGGED")
									bugs.ui.showLoginLayer();

								if (typeof (callbackFalse) == "string")
									eval(callbackFalse);
								else if (typeof (callbackFalse) == "function")
									callbackFalse(data);
							}
						});
			} catch (e) {
				if (typeof (callbackFalse) == "string")
					eval(callbackFalse);
				else if (typeof (callbackFalse) == "function")
					callbackFalse();
			}
		},
		getPopYn : function() {
			$.getJSON(g_urlLikes + "/check/pop", {}, function(data) {
				likes.pop = data;
				likes.popCheck = true;

				if (likes.pop)
					likes.showAddAlert();
				// else likes.openNbugsEventPop(true); // 뉴벅스 이벤트
			});
		},
		setNoPop : function() {
			if ($("#noMessage").attr("checked")) {
				$.getJSON(g_urlLikes + "/set/pop/N", {}, function(data) {
					likes.pop = false;
				});
			}
		},
		deletes : function(ids, type, option, success, error) {
			likes.hideAddAlert();
			var splitIDs = ids.split(",");
			if (splitIDs.length > 150) {
				bugs.ui.showAlert("1회에 150개까지 가능합니다.", {
					css : "layerAlert layerAdultNotice"
				});
				return;
			}
			try {
				$.post(g_urlLikes + "/list/delete/" + type, {
					"ids" : ids
				}, function(data) {
					if (data.result) {
						success(data);
					} else {
						if (data.error_type == "NOT_LOGGED"){
							bugs.ui.showLoginLayer();
						}else{
							alert("취소 중 오류가 발생했습니다.");
						}
						
					}
				}, "json");
			} catch (e) {
				error();
			}
		},
		memCount : function(id, type, success, error) {
			if (typeof error == "undefined")
				error = function() {
				};
			try {
				$.getJSON(g_urlLikes + "/count/members/" + type + "/" + id, {},
						function(data) {
							success(data);
						});
			} catch (e) {
				error();
			}
		},
		count : function(type, success, error) {
			if (typeof error == "undefined")
				error = function() {
				};
			try {
				$.getJSON(g_urlLikes + "/count/" + type, {}, function(data) {
					success(data);
				});
			} catch (e) {
				error();
			}
		},
		getCount : function(msrl, type, success, error) {
			if (typeof error == "undefined")
				error = function() {
				};
			try {
				$.getJSON(g_urlLikes + "/count/" + msrl + "/" + type, {},
						function(data) {
							success(data);
						});
			} catch (e) {
				error();
			}
		},
		goToLikeBox :function(url,winName) {
			// 개인화에서는 제창, 그 외에서는 새창
			//alert(location.href);
			if (location.href.indexOf("/user/") == -1 || typeof (bugs.mvPlayer) == "object")
				window.open(url, winName);
			else location.href = url;
		},
		showAleadyAlert : function() {
			// alert(likes.type);
			var yy = 0;
			var popMsg = "<p>이미 추가된 뮤직비디오입니다.<br /><a href=\"javascript:void(likes.goToLikeBox('" + g_urlMe
					+ "/library/mv','LIKEBOX1'));\">좋아한 음악 바로가기</a></p>";
			if (likes.type == "ESALBUM" || likes.type == "PLAYLIST") {
				if ($.browser.name == "msie")
				{
					yy = 36;
					//if ($.browser.versionNumber == "6")
					//	yy = -14;
				}
			}	
			//if (!likes._successPop) {
				likes._successPop = $(
						"<div class=\"layerGuide layerLike\"><div class=\"content\">"
								+ popMsg
								+ "<div class=\"btnClose\"><a href=\"javascript:void($('.layerLike').hide())\"><span>닫기</span></a></div></div><div class=\"layerBg\"></div></div>")
						.appendTo("body");
			//}

			if (typeof (bugs.mvPlayer) == "object")
				bugs.layermenu.layerEventHandler(likes.anchor,
						likes._successPop, -10, -70);
			else {
					bugs.layermenu.layerEventHandler2(likes.anchor,
							likes._successPop, 0+yy, 0);
			}
		},
		showAddAlert : function() {
			return;
			
			if (likes.type == "MY_COMMENT" || likes.type == "COMMENT") return;
			
			var yy = 0;
			var xx = 0;
			var popMsg = "<p>내 음악 &gt; 좋아한 음악에 담겼습니다. <br /><a href=\"javascript:void(likes.goToLikeBox('" + g_urlMe
					+ "/library/song','LIKEBOX1'));\">좋아한 음악 바로가기</a></p>";
			if (likes.type =="TRACK") {
				popMsg = "<p>내 음악 &gt; 좋아한 음악에 담겼습니다. <br /><a href=\"javascript:void(likes.goToLikeBox('"
				+ g_urlMe + "/library/song','LIKEBOX1'));\">좋아한 음악 바로가기</a></p>";
				yy += 30;
				if ($.browser.name == "msie") yy += 35;
			}else if (likes.type == "MV") {
				popMsg = "<p>내 음악 &gt; 좋아한 음악에 담겼습니다. <br /><a href=\"javascript:void(likes.goToLikeBox('"
						+ g_urlMe + "/library/mv','LIKEBOX2'));\">좋아한 음악 바로가기</a></p>";
			} else if (likes.type == "ARTIST") {
				popMsg = "<p>내 음악 &gt; 좋아한 아티스트에 담겼습니다. <br /><a href=\"javascript:void(likes.goToLikeBox('" + g_urlMe
						+ "/library/artist','LIKEBOX3'));\">좋아한 아티스트 바로가기</a></p>";
				yy += 30;
				if ($.browser.name == "msie") yy += 35;
			} else if (likes.type == "ALBUM") {
				popMsg = "<p>내 음악 &gt; 좋아한 앨범에 담겼습니다. <br /><a href=\"javascript:void(likes.goToLikeBox('" + g_urlMe
						+ "/library/album','LIKEBOX4'));\">좋아한 앨범 바로가기</a></p>";
				yy += 30;
				
				if(likes.option.from == "ALBUM_REVIEW") yy -= 10;
					
				if ($.browser.name == "msie") yy += 35;
			} else if (likes.type == "ESALBUM") {
				if ($.browser.name == "msie")
				{
					yy = 36;
					if ($.browser.name == "msie")
						yy = yy -35;
				}
				popMsg = "<p>내 음악 &gt; 좋아한 뮤직PD 앨범에 담겼습니다. <br /><a href=\"javascript:void(likes.goToLikeBox('" + g_urlMe
						+ "/library/album/ESALBUM','LIKEBOX5'));\">좋아한 뮤직PD 앨범 바로가기</a></p>";
			} else if (likes.type == "MEMBER") {
				popMsg = "<p>내 음악 &gt; 좋아한 뮤직PD에 담겼습니다. <br /><a href=\"javascript:void(likes.goToLikeBox('" + g_urlMe
				+ "/library/user','LIKEBOX6'));\">좋아한 뮤직PD 바로가기</a></p>";
				if ($.browser.name == "msie")
					yy = yy +6;
			} else if (likes.type == "COMMENT") {
				popMsg = "<p>좋아보관함 &gt; 한마디에 담겼습니다. <br /><a href=\"javascript:void(likes.goToLikeBox('" + g_urlMe
				+ "/library/comment','LIKEBOX7'));\">좋아보관함 바로가기</a></p>";
			} else if (likes.type == "MY_COMMENT") {
				xx = -10;yy = 22;
				if ($.browser.name == "msie"){yy += 24}
				
				popMsg = "<p>좋아보관함 &gt; 한마디에 담겼습니다. <br /><a href=\"javascript:void(likes.goToLikeBox('" + g_urlMe
				+ "/library/comment','LIKEBOX7'));\">좋아보관함 바로가기</a></p>";
			}else if (likes.type == "PLAYLIST") {
				if ($.browser.name == "msie")
				{
					yy = 36;
					if ($.browser.name == "msie" && $.browser.versionNumber == "6")
						yy = yy -33;
				}
				popMsg = "<p>좋아보관함&gt;앨범&gt;공개앨범에 담겼습니다. <br /><a href=\"javascript:void(likes.goToLikeBox('" + g_urlMe
				+ "/library/album/PLAYLIST','LIKEBOX8'));\">좋아보관함 바로가기</a></p>";
			}
			
			//if (!likes._successPop) {
				likes._successPop = $(
						"<div class=\"layerGuide layerLike\"><div class=\"content\">"
								+ popMsg
								+ "<div class=\"btnClose\"><a href=\"javascript:void($('.layerLike').hide())\"><span>닫기</span></a></div></div><div class=\"layerBg\"></div></div>")
						.appendTo("body");
			//}
			if (likes.type == "TRACK" || likes.type == "ALBUM" || likes.type == "ARTIST" || likes.type == "MEMBER" || likes.type == "MV")
			{
				if (typeof (bugs.mvPlayer) != "object" && $.browser.name == "msie" && $.browser.versionNumber == "7")
					yy = yy + likes.anchor.find("img").height();
			}
			if (likes.type == "MEMBER" && likes.anchor.find("img").height() == 27 && likes.anchor.find("img").width()==110)
				yy = yy + 8;
			if (typeof (bugs.mvPlayer) == "object")
				bugs.layermenu.layerEventHandler(likes.anchor,
						likes._successPop, -10, -70);
			else {
					bugs.layermenu.layerEventHandler2(likes.anchor,
							likes._successPop, 0+yy, 0+xx);
			}
			// likes._successPop.show();
			// likes.openNbugsEventPop(false); // 뉴벅스 이벤트
		},
		hideAddAlert : function() {
			$('.layerLike').hide();
		},
		checkWinSize : function() {
			if (window.innerHeight) {
				return window.innerHeight;
			} else if (document.documentElement
					&& document.documentElement.clientHeight) {
				return document.documentElement.clientHeight;
			} else if (document.body.clientHeight) {
				return document.body.clientHeight;
			}
		},
		adultLayerShow : function() {
			var msg = "해당곡은 청소년 유해매체물로서 정보통신망<br />"
					+ "이용 촉진 및 정보보호 등에 관한 법률 및<br />" + "청소년보호법의 규정에 의하여<br />"
					+ "19세 미만의 청소년이 이용할 수 없습니다. ";

			bugs.ui.showAlert(msg, {
				css : "layerAlert layerAdultNotice"
			});
		},
		addLike : function(id, type, obj) {
			likes.add(id, type, {
				anchor : $(obj)
			}, function(ret) {
				obj.find("img").attr("src",
						g_urlFile + "/common/button/new/bc_likeCancel.gif");
				obj.find("img").attr("alt", "좋아 취소");
				obj.unbind("click");
				obj.removeAttr("onclick");
				obj.bind("click", function() {
					likes.delLike(id, type, obj);
				});
			}, function() {
			});
		},
		delLike : function(id, type, obj) {
			likes.del(id, type, {
				anchor : $(obj)
			}, function(ret) {
				obj.find("img").attr("src",
						g_urlFile + "/common/button/new/bc_like.gif");
				obj.find("img").attr("alt", "좋아");
				obj.unbind("click");
				obj.removeAttr("onclick");
				obj.bind("click", function() {
					likes.addLike(id, type, obj);
				});
			}, function() {
			});
		},
		addLikeGr : function(id, type, obj, callbackTrue) {
			likes.add(id, type, {
				anchor : $(obj)
			}, function(ret) {
				obj.find("img").attr("src",
						g_urlFile + "/common/button/new/bc_likeCancel.gif");
				obj.find("img").attr("alt", "좋아 취소");
				obj.unbind("click");
				obj.removeAttr("onclick");
				obj.bind("click", function() {
					likes.delLikeGr(id, type, obj);
				});

				if (typeof (callbackTrue) == "function")
					callbackTrue();
			}, function() {
			});
		},
		delLikeGr : function(id, type, obj, callbackTrue) {
			likes.del(id, type, {
				anchor : $(obj)
			}, function(ret) {
				obj.find("img").attr("src",
						g_urlFile + "/common/button/new/bc_like.gif");
				obj.find("img").attr("alt", "좋아");
				obj.unbind("click");
				obj.removeAttr("onclick");
				obj.bind("click", function() {
					likes.addLikeGr(id, type, obj);
				});

				if (typeof (callbackTrue) == "function")
					callbackTrue();
			}, function() {
			});
		},
		addBLike : function(id, type, obj) {
			likes.add(id, type, {
				anchor : $(obj)
			}, function(ret) {
				obj.find("img").attr("src",
						g_urlFile + "/common/button/new/bbc_likeCancel.gif");
				obj.find("img").attr("alt", "좋아 취소");
				obj.unbind("click");
				obj.removeAttr("onclick");
				obj.bind("click", function() {
					likes.delBLike(id, type, obj);
				});
			}, function() {
			});
		},
		delBLike : function(id, type, obj) {
			likes.del(id, type, {
				anchor : $(obj)
			}, function(ret) {
				obj.find("img").attr("src",
						g_urlFile + "/common/button/new/bbc_like.gif");
				obj.find("img").attr("alt", "좋아");
				obj.unbind("click");
				obj.removeAttr("onclick");
				obj.bind("click", function() {
					likes.addBLike(id, type, obj);
				});
			}, function() {
			});
		},
		addMLike : function(id, type, obj) {
			likes.add(id, type, {
				anchor : $(obj)
			}, function(ret) {
				likes.memCount(id, type, function(result) {
					obj.html(result);
				});
				obj.removeClass().addClass("likeThisAction selected");
				obj.unbind("click");
				obj.removeAttr("onclick");
				obj.bind("click", function() {
					likes.delMLike(id, type, obj);
				});
			}, function() {
			});
		},
		delMLike : function(id, type, obj) {
			likes.del(id, type, {
				anchor : $(obj)
			}, function(ret) {
				likes.memCount(id, type, function(result) {
					obj.html(result);
				});
				obj.removeClass().addClass("likeThisAction");
				obj.unbind("click");
				obj.removeAttr("onclick");
				obj.bind("click", function() {
					likes.addMLike(id, type, obj);
				});
			}, function() {
			});
		},
		addPDLike : function(id, type, obj) {
			likes.add(id, type, {
				anchor : $(obj)
			},
					function(ret) {
						likes.memCount(id, type, function(result) {
							$(obj).parent().parent().find(
									"strong.pd_like_count").html(result);
						});
						$(obj).find("img").attr(
								"src",
								$(obj).find("img").attr("src").replace("O",
										"CancelB"));
						$(obj).unbind("click");
						$(obj).removeAttr("onclick");
						$(obj).bind("click", function() {
							likes.delPDLike(id, type, obj);
						});
					}, function() {
					});
		},
		delPDLike : function(id, type, obj) {
			likes.del(id, type, {
				anchor : $(obj)
			},
					function(ret) {
						likes.memCount(id, type, function(result) {
							$(obj).parent().parent().find(
									"strong.pd_like_count").html(result);
						});

						$(obj).find("img").attr(
								"src",
								$(obj).find("img").attr("src").replace(
										"CancelB", "O"));
						$(obj).unbind("click");
						$(obj).removeAttr("onclick");
						$(obj).bind("click", function() {
							likes.addPDLike(id, type, obj);
						});
					}, function() {
					});
		},
		openLoading : function(type, message) {
			var msg = "";
			if (type == "TRACK")
				msg = "곡";
			else if (type == "MV")
				msg = "뮤직비디오";
			else if (type == "ARTIST")
				msg = "뮤직비디오";
			else if (type == "MY_COMMENT")
				msg = "한마디";
			else if (type == "MEMBER")
				msg = "회원";
			else if (type == "ALBUM")
				msg = "앨범";
			else if (type == "PLAYLIST")
				msg = "앨범";
			else if (type == "ETC") {
				if (typeof (message) != "undefined") {
					msg = message;
				}
			}

			if (!likes._loadingPop)
				likes._loadingPop = new bugs.ui.popup(
						$("div.layerAlert.layerLoading"), {
							onInit : function(popup) {
								$("div.layerAlert.layerLoading .content > P")
										.html(msg + " 리스트를 불러오는 중입니다.");
							}
						});
			else
				$("div.layerAlert.layerLoading .content > P").html(
						msg + " 리스트를 불러오는 중입니다.");

			likes._loadingPop.show();
		},
		closeLoading : function() {
			likes._loadingPop.hide();
		},
		closeEventWin : function(chk, type, callback) {
			if (chk) {
				var oDate = new Date();
				oDate.setDate(oDate.getDate() + 7200);
				bugs.cookie.set(type, "true", oDate, "/");

				callback();
			}
		},
		openAlert : function(msg) {
			var msg = "<div class=\"putFailure\"><p>"
					+ msg
					+ "</p><span class=\"button typeME\"><a href=\"javascript:$('div.layerPopup.layerPutSong').remove();bugs.ui.modalLayer.hide();\">확인</a></span></div>";

			var popup = new bugs.ui.popup(msg, {
				title : "LOGO",
				css : "layerPutSong"
			});
			popup.show();
		},
		setFooterPosition : function() {
			var brName = $.browser.name;
			if (brName == "msie") {
				var verNumber = $.browser.versionNumber;
				if (verNumber == 6) {
					var bodyHeight = $("body").height();
					var windowHeight = $(window).height();
					var wrapHeight = $("#wrap").height();
					height = (windowHeight > bodyHeight ? windowHeight
							: bodyHeight) > wrapHeight ? (windowHeight > bodyHeight ? windowHeight
							: bodyHeight)
							: wrapHeight;

					var new_position = height - 35;
					$("#footer").css("top", new_position + "px");
				}
			}
		},
		getLikeYn : function(type, id, callback){
			$.get(g_urlLikes + "/getLikeYn/" + type + "/" + id, {}, 
				function(data) {
					if(callback)
						callback(data);
				}
			);
		},
		updateLike : function(type, id, obj, callback){
			likes.getLikeYn(type, id, 
				function(result){
					if(result == "Y"){
						$(obj).addClass("selected");
					}
					else{
						$(obj).removeClass("selected");
					}
					if(callback)
						callback(result);
				}
			);
			likes.memCount(id, type, 
				function(result){
					$(obj).find("em").html( bugs.utils.strToNum(result + "") );
				}, 
				null);
		},
		toggleLike : function(type, id, obj, callback){
			if(!g_isLogged){
				bugs.ui.showLoginLayer();
				return;
			}
			
			var add_del = "";
			if($(obj).hasClass("selected")){
				add_del = "delete";
			}
			else{
				add_del = "add";
			}
			
			$.getJSON(g_urlLikes + "/" + add_del + "/" + type + "/" + id, {}, 
				function(data) {
					var result = "N";
					if (data.result){
						result = "Y";
					}
					likes.updateLike(type, id, obj, 
						function(result){
							if(callback)
								callback(result);
						}
					);
				}
			);
		}
		
	};
}
/*-----/js/me/likes.js / end -----*/

/*-----/js/m/kakao-1.0.8.min.js / start -----*/
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'");}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){function noop(){}var process=module.exports={};process.nextTick=
function(){var canSetImmediate=typeof window!=="undefined"&&window.setImmediate;var canPost=typeof window!=="undefined"&&window.postMessage&&window.addEventListener;if(canSetImmediate)return function(f){return window.setImmediate(f)};if(canPost){var queue=[];window.addEventListener("message",function(ev){var source=ev.source;if((source===window||source===null)&&ev.data==="process-tick"){ev.stopPropagation();if(queue.length>0){var fn=queue.shift();fn()}}},true);return function nextTick(fn){queue.push(fn);
window.postMessage("process-tick","*")}}return function nextTick(fn){setTimeout(fn,0)}}();process.title="browser";process.browser=true;process.env={};process.argv=[];process.on=noop;process.addListener=noop;process.once=noop;process.off=noop;process.removeListener=noop;process.removeAllListeners=noop;process.emit=noop;process.binding=function(name){throw new Error("process.binding is not supported");};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported");
}},{}],2:[function(require,module,exports){module.exports=function(){function getRPC(){if(!_rpc)_rpc=_k.guardCreateEasyXDM(function(){return new _easyXDM.Rpc({remote:_k.URL.apiRemote},{remote:{request:{}}})});return _rpc}function isFileRequired(url){return url==="/v1/api/story/upload/multi"}function storyActivityContentValidator(obj){if(!_.isString(obj))return false;if(obj.length>2048)throw new _k.KakaoError("content length should be less than 2048");return true}function kageImageUrlListValidator(obj){if(!_.isArray(obj))return false;
return _.every(obj,function(path){if(!_.isString(path))return false;if(_.isURL(path))throw new _k.KakaoError("url in image_url_list should be a kage url, obtained from '/v1/api/story/upload/multi'.");return true})}var API={};var _easyXDM=require("../vendor/easyXDM.js");var _=require("./util.js");var _k=require("./common.js");var _rpc;API.request=function(settings){function getConfig(callback){var serializedData={};_.each(settings.data,function(value,key){var serialized=_.isString(value)?value:JSON.stringify(value);
serializedData[key]=serialized});var config={url:url,method:rules.api[url].method,headers:{"Authorization":"Bearer "+Kakao.Auth.getAccessToken(),"KA":_k.KAKAO_AGENT},data:serializedData};return new Promise(function(resolve,reject){if(isFileRequired(url)){if(!settings.files)throw new _k.KakaoError("'files' parameter should be set for "+url);getFileConfig(settings.files).then(function(fileConfig){config.file=fileConfig;resolve(config)},function(err){reject(err)})}else resolve(config)})}function getFileConfig(files){return new Promise(function(resolve,
reject){var fileDataPromises=_.map(files,function(file){return _k.serializeFile(file).then(function(stringified){return{name:file.name,type:file.type,str:stringified}})});Promise.all(fileDataPromises).then(function(fileDatas){resolve({paramName:"file",data:fileDatas})},function(err){reject(err)})})}function getErrorObj(easyXDMError){try{_k.logDebug(easyXDMError);var xhrError=easyXDMError.message;return JSON.parse(xhrError.responseText)}catch(ex){return{code:-777,msg:"Unknown error"}}}_k.processRules(settings,
rules.request,"API.request");_.defaults(settings,{data:{},success:_.emptyFunc,fail:_.emptyFunc,always:_.emptyFunc});var url=settings.url;_k.processRules(settings.data,rules.api[url].data,"API.request - "+url);return new Promise(function(resolve,reject){getConfig().then(function(config){getRPC().request(config,function(res){settings.success(res);settings.always(res);resolve(res)},function(xdmErr){var err=getErrorObj(xdmErr);settings.fail(err);settings.always(err);reject(err)})},function(err){reject(err)})})};
var postApiCommonParams={permission:_.isOneOf(["A","F"]),enable_share:_.isBoolean,android_exec_param:_.isString,ios_exec_param:_.isString,android_market_param:_.isString,ios_market_param:_.isString};var rules={request:{required:{url:function(url){return _.isOneOf(_.keys(rules.api))(url)}},optional:{data:_.isObject,files:function(obj){return _.passesOneOf([_.isArray,_.isFileList])(obj)&&_.every(obj,_.passesOneOf([_.isFile,_.isBlob]))},success:_.isFunction,fail:_.isFunction,always:_.isFunction}},api:{"/v1/user/signup":{method:"post",
data:{optional:{properties:_.isObject}}},"/v1/user/unlink":{method:"post"},"/v1/user/me":{method:"post",data:{optional:{propertyKeys:_.isArray}}},"/v1/user/logout":{method:"post",data:{}},"/v1/user/update_profile":{method:"post",data:{required:{properties:_.isObject}}},"/v1/api/talk/profile":{method:"get"},"/v1/api/story/profile":{method:"get"},"/v1/api/story/mystory":{method:"get",data:{required:{id:_.isString}}},"/v1/api/story/mystories":{method:"get",data:{optional:{last_id:_.isString}}},"/v1/api/story/linkinfo":{method:"get",
data:{required:{url:_.isString}}},"/v1/api/story/post/note":{method:"post",data:{required:{content:storyActivityContentValidator},optional:postApiCommonParams}},"/v1/api/story/post/photo":{method:"post",data:{required:{image_url_list:kageImageUrlListValidator},optional:_.extend({content:storyActivityContentValidator},postApiCommonParams)}},"/v1/api/story/post/link":{method:"post",data:{required:{link_info:_.isObject},optional:_.extend({content:storyActivityContentValidator},postApiCommonParams)}},
"/v1/api/story/upload/multi":{method:"post",data:{}}}};API.cleanup=function(){if(_rpc){_rpc.destroy();_rpc=null}};return API}()},{"../vendor/easyXDM.js":9,"./common.js":4,"./util.js":7}],3:[function(require,module,exports){module.exports=function(){function getProxy(config,responseHandler){_.extend(config,{remote:_k.URL.loginWidget});return _k.guardCreateEasyXDM(function(){return new _easyXDM.Rpc(config,{local:{postResponse:responseHandler,getKakaoAgent:function(){return _k.KAKAO_AGENT}},remote:{setClient:{},
setStateToken:{},deleteAuthCookie:{}}})})}function handleAuthResponse(response,authSettings){_k.logDebug(response);if(response.error){if(response.error==="window_closed")return;Auth.setAccessToken(null);Auth.setRefreshToken(null);authSettings.fail(response);authSettings.always(response)}else{Auth.setAccessToken(response.access_token,authSettings.persistAccessToken);Auth.setRefreshToken(response.refresh_token,authSettings.persistRefreshToken);authSettings.success(response);authSettings.always(response)}}
function storeItem(key,value){var item=_.encrypt(value,_k.RUNTIME.appKey);localStorage.setItem(key,item)}function retrieveItem(key){var item=localStorage.getItem(key);if(item)return _.decrypt(item,_k.RUNTIME.appKey);else return null}function removeItem(key){localStorage.removeItem(key)}function getAccessTokenKey(){if(!tokenStorageKeys.accessTokenKey)tokenStorageKeys.accessTokenKey="kakao_"+_.hash("kat"+_k.RUNTIME.appKey);return tokenStorageKeys.accessTokenKey}function getRefreshTokenKey(){if(!tokenStorageKeys.refreshTokenKey)tokenStorageKeys.refreshTokenKey=
"kakao_"+_.hash("krt"+_k.RUNTIME.appKey);return tokenStorageKeys.refreshTokenKey}var Auth={};var _easyXDM=require("../vendor/easyXDM.js");var _=require("./util.js");var _k=require("./common.js");var cleanups=[];Auth.createLoginButton=function(settings){function checkStateToken(response){if(response.stateToken!==stateToken)throw new _k.KakaoError("security error: #CST");delete response.stateToken;return response}function refreshStateToken(){stateToken=_.getRandomString();proxy.setStateToken(stateToken)}
function configureRemoteClient(){proxy.setClient(settings.lang,settings.size,_k.RUNTIME.appKey,function(size){var iframe=container.getElementsByTagName("iframe")[0];iframe.style.width=size.width+"px";iframe.style.height=size.height+"px"})}_k.processRules(settings,rules.createLoginButton,"Auth.createLoginButton");_.defaults(settings,{lang:"kr",size:"medium"},loginDefaultSettings);var container=_.getElement(settings.container);if(!container)throw new _k.KakaoError("container is required for Kakao login button: pass in element or id");
var stateToken="";var proxy=getProxy({container:container},function(response){checkStateToken(response);handleAuthResponse(response,settings);refreshStateToken()});refreshStateToken();configureRemoteClient();cleanups.push(function(){proxy.destroy()})};var _proxy;var _channelName=_.getRandomString();var _loginSettings={};Auth.login=function(settings){function getAuthUrl(){var authParams=_.encodeQueryString({client_id:_k.RUNTIME.appKey,redirect_uri:"kakaojs",response_type:"code",state:stateToken,proxy:"easyXDM_Kakao_"+
_channelName+"_provider"});return _k.URL.authorize+"?"+authParams}_k.processRules(settings,rules.login,"Auth.login");_.defaults(settings,loginDefaultSettings);if(!_proxy){_proxy=getProxy({channel:_channelName},function(response){if(!_.has(_loginSettings,response.stateToken))throw new _k.KakaoError("security error: #CST2");var callback=_loginSettings[response.stateToken];delete _loginSettings[response.stateToken];delete response.stateToken;handleAuthResponse(response,callback)});cleanups.push(function(){_proxy.destroy()})}var stateToken=
_.getRandomString();_loginSettings[stateToken]=settings;window.open(getAuthUrl(),"","width\x3d720, height\x3d480")};var loginDefaultSettings={success:_.emptyFunc,fail:_.emptyFunc,always:_.emptyFunc,persistAccessToken:true,persistRefreshToken:false};var rules={createLoginButton:{required:{container:_.passesOneOf([_.isElement,_.isString])},optional:{lang:_.isOneOf(["en","kr"]),size:_.isOneOf(["small","medium","large"]),success:_.isFunction,fail:_.isFunction,always:_.isFunction,persistAccessToken:_.isBoolean,
persistRefreshToken:_.isBoolean}},login:{optional:{success:_.isFunction,fail:_.isFunction,always:_.isFunction,persistAccessToken:_.isBoolean,persistRefreshToken:_.isBoolean}}};Auth.logout=function(callback){_k.validate(callback||_.emptyFunc,_.isFunction,"Auth.logout");var onLogout=function(){var proxy=_proxy||getProxy({},_.emptyFunc);proxy.deleteAuthCookie();if(callback)callback(true)};if(!Auth.getAccessToken())onLogout();else Kakao.API.request({url:"/v1/user/logout",always:function(res){Auth.setAccessToken(null);
Auth.setRefreshToken(null);onLogout()}})};Auth.setAccessToken=function(token,persist){_k.RUNTIME.accessToken=token;if(token===null||persist===false)removeItem(getAccessTokenKey());else storeItem(getAccessTokenKey(),token)};Auth.setRefreshToken=function(token,persist){_k.RUNTIME.refreshToken=token;if(token!==null&&persist===true)storeItem(getRefreshTokenKey(),token);else removeItem(getRefreshTokenKey())};Auth.getAccessToken=function(){if(!_k.RUNTIME.accessToken)_k.RUNTIME.accessToken=retrieveItem(getAccessTokenKey());
return _k.RUNTIME.accessToken};Auth.getRefreshToken=function(){if(!_k.RUNTIME.refreshToken)_k.RUNTIME.refreshToken=retrieveItem(getRefreshTokenKey());return _k.RUNTIME.refreshToken};var tokenStorageKeys={};Auth.getAppKey=function(){return _k.RUNTIME.appKey};Auth.getStatus=function(callback){_k.validate(callback,_.isFunction,"Auth.getStatus");if(!Auth.getAccessToken())callback({status:"not_connected"});else Kakao.API.request({url:"/v1/user/me",success:function(res){callback({status:"connected",user:res})},
fail:function(){callback({status:"not_connected"})}})};Auth.cleanup=function(){_.each(cleanups,function(func,i){func();cleanups.splice(i,1)})};return Auth}()},{"../vendor/easyXDM.js":9,"./common.js":4,"./util.js":7}],4:[function(require,module,exports){module.exports=function(){var _k={};var _=require("./util.js");_k.VERSION="1.0.8";_k.KAKAO_AGENT="sdk/"+_k.VERSION+" os/javascript"+" lang/"+(navigator.userLanguage||navigator.language)+" device/"+navigator.platform.replace(/ /g,"_");_k.URL={authorize:"https://kauth.kakao.com"+
"/oauth/authorize",loginWidget:"https://kauth.kakao.com"+"/public/widget/login/kakaoLoginWidget.html",apiRemote:"https://kapi.kakao.com"+"/cors/"};_k.RUNTIME={appKey:"",accessToken:"",refreshToken:""};var KakaoError=function(message){Error.prototype.constructor.apply(this,arguments);this.name="KakaoError";this.message=message};KakaoError.prototype=new Error;_k.KakaoError=KakaoError;_k.isDebug=function(){return false};_k.logDebug=function(obj){if(_k.isDebug())console.log(JSON.stringify(obj))};_k.validate=
function(target,validator,callerMsg){if(validator(target)!==true)throw new KakaoError("Illegal argument for "+callerMsg);};_k.processRules=function(params,rules,callerMsg){_k.validate(params,_.isObject,callerMsg);if(rules.before)rules.before(params);_.defaults(params,rules.defaults);var required=rules.required||{};var optional=rules.optional||{};var allowed=_.extend({},required,optional);var missingRequiredKeys=_.difference(_.keys(required),_.keys(params));if(missingRequiredKeys.length)throw new KakaoError("Missing required keys: "+
missingRequiredKeys.join(",")+" - "+callerMsg);var invalidKeys=_.difference(_.keys(params),_.keys(allowed));if(invalidKeys.length)throw new KakaoError("Invalid parameter keys: "+invalidKeys.join(",")+" - "+callerMsg);_.each(params,function(value,key){var validator=allowed[key];_k.validate(value,validator,'"'+key+'" in '+callerMsg)});if(rules.after)rules.after(params)};_k.getPlatform=function(){if(navigator.userAgent.match(/iPhone|iPad|iPod/i))return"ios";else if(navigator.userAgent.match(/Android/i)){var isOpera=
!!window.opera||navigator.userAgent.indexOf(" OPR/")>=0;if(window.chrome&&!isOpera)return"android+chrome";else return"android"}else return"not_supported"};_k.createHiddenIframe=function(id,src){var iframe=document.getElementById(id);if(iframe!==null)iframe.parentNode.removeChild(iframe);iframe=document.createElement("iframe");iframe.id=id;iframe.style.border="none";iframe.style.display="none";iframe.style.width="0px";iframe.style.height="0px";iframe.src=src;return iframe};_k.guardCreateEasyXDM=function(createEasyXDM){try{return createEasyXDM()}catch(ex){if(ex instanceof
TypeError)throw new KakaoError("kakao.js should be loaded from a web server");else throw new KakaoError("EasyXDM -"+ex.message);}};_k.serializeFile=function(file){return new Promise(function(resolve,reject){if(typeof FileReader==="undefined")reject(new KakaoError("File API is not supported for this browser."));var fileReader=new FileReader;fileReader.onload=function(e){try{resolve(_.arrayBufferToString(e.target.result))}catch(e$$0){reject(e$$0)}};fileReader.onerror=function(e){reject(new KakaoError("Cannot read file: "+
file.name))};fileReader.readAsArrayBuffer(file)})};return _k}()},{"./util.js":7}],5:[function(require,module,exports){(function(root){root.Kakao=root.Kakao||{};var Kakao=root.Kakao;var _=require("./util.js");var _k=require("./common.js");Kakao.VERSION=_k.VERSION;Kakao.init=function(appKey){if(_k.RUNTIME.appKey)throw new _k.KakaoError("Already initialized.");if(!_.isString(appKey))throw new _k.KakaoError("App key must be provided");_k.RUNTIME.appKey=appKey;require("../vendor/es6-promise.js");Kakao.Auth=
require("./auth.js");Kakao.API=require("./api.js");Kakao.Link=require("./link.js")};Kakao.cleanup=function(){Kakao.Auth.cleanup();Kakao.API.cleanup();Kakao.Link.cleanup();_.nullify(_k.RUNTIME)}})(window)},{"../vendor/es6-promise.js":10,"./api.js":2,"./auth.js":3,"./common.js":4,"./link.js":6,"./util.js":7}],6:[function(require,module,exports){module.exports=function(){function imageSizeValidator(sizeValue){var parsed=parseInt(sizeValue,10);if(isNaN(parsed)||parsed<70)throw new _k.KakaoError("Illegal argument for image: should be a number larger than 70");
return true}function buildLinkUrl(settings){function getWebObj(objType,text,url,isInweb){function formatUrl(maybeUrl){if(maybeUrl.indexOf("http://")===0||maybeUrl.indexOf("https://")===0)return maybeUrl;else return"http://"+maybeUrl}return{"objtype":objType,"text":text,"action":{"type":isInweb?"inweb":"web","url":url?formatUrl(url):undefined}}}function getAppObj(objType,text,execParams,marketParams){function getAppActionInfos(paramType,paramValues){var baseParams={"android":{"os":"android"},"iphone":{"os":"ios",
"devicetype":"phone"},"ipad":{"os":"ios","devicetype":"pad"}};_k.processRules(paramValues,rules.appParams,paramType+"in Kakao.Link.createTalkLink");var actionInfos=[];_.each(paramValues,function(values,platform){var info=_.extend({},baseParams[platform]);info[paramType]=_.encodeQueryString(values);actionInfos.push(info)});return actionInfos}var actionInfos=[];if(execParams)actionInfos=actionInfos.concat(getAppActionInfos("execparam",execParams));if(marketParams)actionInfos=actionInfos.concat(getAppActionInfos("marketparam",
marketParams));return{"objtype":objType,"text":text,"action":{"type":"app","actioninfo":actionInfos}}}var link=new KakaoTalkLink;var linkObjectAdders={label:function(){var labelObj={"objtype":"label","text":settings.label.text};link.objs.push(labelObj)},image:function(){var imageObj={"objtype":"image","src":settings.image.src,"width":settings.image.width,"height":settings.image.height};link.objs.push(imageObj)},webButton:function(){var webButtonObj=getWebObj("button",settings.webButton.text,settings.webButton.url,
settings.webButton.inweb);link.objs.push(webButtonObj)},webLink:function(){var webLinkObj=getWebObj("link",settings.webLink.text,settings.webLink.url,settings.webLink.inweb);link.objs.push(webLinkObj)},appButton:function(){var appButtonObj=getAppObj("button",settings.appButton.text,settings.appButton.execParams,settings.appButton.marketParams);link.objs.push(appButtonObj)},appLink:function(){var appLinkObj=getAppObj("link",settings.appLink.text,settings.appLink.execParams,settings.appLink.marketParams);
link.objs.push(appLinkObj)}};_.each(settings,function(linkSettings,key){var isLinkObjectSetting=_.contains(_.keys(rules.kakaoTalkLink),key);if(isLinkObjectSetting){_k.processRules(linkSettings,rules.kakaoTalkLink[key],"parameter '"+key+"' in Link.createTalkLink");var adder=linkObjectAdders[key];adder()}});return"kakaolink://send?"+_.encodeQueryString(link)}function sendLink(url,unsupportedCallback){if(platform==="not_supported"){if(unsupportedCallback)unsupportedCallback(url);return}if(platform===
"android+chrome")window.location="intent:"+url+"#Intent;package\x3d"+talkPackageName+";end;";else{var startTalkTime=new Date;var waitTime=1500;var minTimeToSendLink=2E3;var timer=setTimeout(function(){var timePassed=new Date-startTalkTime;var talkNotInstalled=timePassed<minTimeToSendLink;if(talkNotInstalled)window.location.replace(talkInstallUrls[platform])},waitTime);var frame=_k.createHiddenIframe("kakao_talkLink_iframe",url);document.body.appendChild(frame)}}var Link={};var _=require("./util.js");
var _k=require("./common.js");var KakaoTalkLink=function(){this.appkey=_k.RUNTIME.appKey;this.appver="1.0";this.apiver="3.0";this.linkver="3.5";this.objs=[]};var cleanups=[];Link.createTalkLink=Link.createTalkLinkButton=function(settings){_k.processRules(settings,rules.createTalkLink,"Link.createTalkLink");var container=_.getElement(settings.container);if(!container)throw new _k.KakaoError("container is required for KakaoTalk Link: pass in element or id");var linkUrl=buildLinkUrl(settings);var handler=
function(){sendLink(linkUrl,settings.fail)};_.addEvent(container,"click",handler);var cleanup=function(){_.removeEvent(container,"click",handler)};cleanups.push(cleanup)};Link.sendTalkLink=function(settings){_k.processRules(settings,rules.talkLink,"Link.sendTalkLink");var linkUrl=buildLinkUrl(settings);sendLink(linkUrl,settings.fail)};var rules={talkLink:{optional:{label:_.passesOneOf([_.isString,_.isObject]),image:_.isObject,webButton:_.isObject,webLink:_.isObject,appButton:_.isObject,appLink:_.isObject,
fail:_.isFunction},before:function(settings){if(_.isString(settings.label))settings.label={text:settings.label}}},kakaoTalkLink:{label:{required:{text:_.isString}},image:{required:{src:_.isString,width:imageSizeValidator,height:imageSizeValidator},before:function(image){image.width=parseInt(image.width,10);image.height=parseInt(image.height,10)}},webButton:{optional:{text:_.isString,url:_.isString,inweb:_.isBoolean}},webLink:{required:{text:_.isString},optional:{url:_.isString,inweb:_.isBoolean}},
appButton:{optional:{text:_.isString,execParams:_.isObject,marketParams:_.isObject}},appLink:{required:{text:_.isString},optional:{execParams:_.isObject,marketParams:_.isObject}}},appParams:{optional:{iphone:_.isObject,ipad:_.isObject,android:_.isObject}}};rules["createTalkLink"]=_.extend({required:{container:_.passesOneOf([_.isElement,_.isString])}},rules.talkLink);var androidTalkInstallReferrer={appkey:_k.RUNTIME.appKey,KA:_k.KAKAO_AGENT};var talkInstallUrls={android:"market://details?id\x3dcom.kakao.talk\x26referrer\x3d"+
JSON.stringify(androidTalkInstallReferrer),ios:"http://itunes.apple.com/app/id362057947"};var talkPackageName="com.kakao.talk";var platform=_k.getPlatform();Link.cleanup=function(){_.each(cleanups,function(func,i){func();cleanups.splice(i,1)})};return Link}()},{"./common.js":4,"./util.js":7}],7:[function(require,module,exports){module.exports=function(){var _={};var _crypto=require("../vendor/CryptoJS.js");var breaker={};var ArrayProto=Array.prototype;var ObjProto=Object.prototype;var slice=ArrayProto.slice;
var concat=ArrayProto.concat;var toString=ObjProto.toString;var hasOwnProperty=ObjProto.hasOwnProperty;var nativeForEach=ArrayProto.forEach;var nativeMap=ArrayProto.map;var nativeFilter=ArrayProto.filter;var nativeEvery=ArrayProto.every;var nativeSome=ArrayProto.some;var nativeIndexOf=ArrayProto.indexOf;var nativeIsArray=Array.isArray;var nativeKeys=Object.keys;var each=_.each=function(obj,iterator,context){if(obj==null)return obj;if(nativeForEach&&obj.forEach===nativeForEach)obj.forEach(iterator,
context);else if(obj.length===+obj.length){var i=0;for(var length=obj.length;i<length;i++)if(iterator.call(context,obj[i],i,obj)===breaker)return}else{var keys=_.keys(obj);i=0;for(length=keys.length;i<length;i++)if(iterator.call(context,obj[keys[i]],keys[i],obj)===breaker)return}return obj};_.map=function(obj,iterator,context){var results=[];if(obj==null)return results;if(nativeMap&&obj.map===nativeMap)return obj.map(iterator,context);each(obj,function(value,index,list){results.push(iterator.call(context,
value,index,list))});return results};_.filter=function(obj,predicate,context){var results=[];if(obj==null)return results;if(nativeFilter&&obj.filter===nativeFilter)return obj.filter(predicate,context);each(obj,function(value,index,list){if(predicate.call(context,value,index,list))results.push(value)});return results};_.every=function(obj,predicate,context){predicate||(predicate=_.identity);var result=true;if(obj==null)return result;if(nativeEvery&&obj.every===nativeEvery)return obj.every(predicate,
context);each(obj,function(value,index,list){if(!(result=result&&predicate.call(context,value,index,list)))return breaker});return!!result};var any=_.any=function(obj,predicate,context){predicate||(predicate=_.identity);var result=false;if(obj==null)return result;if(nativeSome&&obj.some===nativeSome)return obj.some(predicate,context);each(obj,function(value,index,list){if(result||(result=predicate.call(context,value,index,list)))return breaker});return!!result};_.contains=function(obj,target){if(obj==
null)return false;if(nativeIndexOf&&obj.indexOf===nativeIndexOf)return obj.indexOf(target)!=-1;return any(obj,function(value){return value===target})};_.difference=function(array){var rest=concat.apply(ArrayProto,slice.call(arguments,1));return _.filter(array,function(value){return!_.contains(rest,value)})};_.partial=function(func){var boundArgs=slice.call(arguments,1);return function(){var position=0;var args=boundArgs.slice();var i=0;for(var length=args.length;i<length;i++)if(args[i]===_)args[i]=
arguments[position++];for(;position<arguments.length;)args.push(arguments[position++]);return func.apply(this,args)}};_.after=function(times,func){return function(){if(--times<1)return func.apply(this,arguments)}};_.keys=function(obj){if(!_.isObject(obj))return[];if(nativeKeys)return nativeKeys(obj);var keys=[];for(var key in obj)if(_.has(obj,key))keys.push(key);return keys};_.extend=function(obj){each(slice.call(arguments,1),function(source){if(source)for(var prop in source)obj[prop]=source[prop]});
return obj};_.defaults=function(obj){each(slice.call(arguments,1),function(source){if(source)for(var prop in source)if(obj[prop]===void 0)obj[prop]=source[prop]});return obj};_.isElement=function(obj){return!!(obj&&obj.nodeType===1)};_.isArray=nativeIsArray||function(obj){return toString.call(obj)=="[object Array]"};_.isObject=function(obj){return obj===Object(obj)};each(["Arguments","Function","String","Number","Date","RegExp","Blob","File","FileList"],function(name){_["is"+name]=function(obj){return toString.call(obj)==
"[object "+name+"]"}});_.isBoolean=function(obj){return obj===true||obj===false||toString.call(obj)=="[object Boolean]"};_.has=function(obj,key){return hasOwnProperty.call(obj,key)};_.identity=function(value){return value};_.emptyFunc=function(){};_.getElement=function(selector){if(_.isElement(selector))return selector;else if(_.isString(selector))return document.querySelector(selector);else return null};_.addEvent=function(element,event,func){if(element.addEventListener)element.addEventListener(event,
func,false);else if(element.attachEvent)element.attachEvent("on"+event,func)};_.removeEvent=function(element,event,func){if(element.removeEventListener)element.removeEventListener(event,func,false);else if(element.detachEvent)element.detachEvent("on"+event,func)};_.encodeQueryString=function(params){var ret=[];for(var key in params){if(!params.hasOwnProperty(key))continue;var value=params[key];if(_.isObject(value))value=JSON.stringify(value);ret.push(encodeURIComponent(key)+"\x3d"+encodeURIComponent(value))}return ret.join("\x26")};
_.getRandomString=function(){return Math.random().toString(36).slice(2)};_.hash=function(msg){var hashed=_crypto.MD5(msg);return hashed.toString()};_.encrypt=function(msg,passphrase){var encrypted=_crypto.AES.encrypt(msg,passphrase);return encrypted.toString()};_.decrypt=function(encrypted,passphrase){var decrypted=_crypto.AES.decrypt(encrypted,passphrase);return decrypted.toString(_crypto.enc.Utf8)};_.nullify=function(obj){_.each(obj,function(value,key){obj[key]=null})};_.isOneOf=function(elements){return _.partial(_.contains,
elements)};_.passesOneOf=function(validators){if(!_.isArray(validators))throw new Error("validators should be an Array");return function(obj){return _.any(validators,function(validator){return validator(obj)})}};_.isURL=function(obj){var urlPattern=/(http|ftp|https):\/\/[\w-]+(\.[\w-]+)+([\w.,@?^=%&amp;:\/~+#-]*[\w@?^=%&amp;\/~+#-])?/;return urlPattern.test(obj)};_.arrayBufferToString=function(buffer){var stringResult="";var arrayBufferView=new Uint8Array(buffer);var length=arrayBufferView.length;
var CHUNK_SIZE=Math.pow(2,16);var offset;var readLength;var sub;for(offset=0;offset<length;offset+=CHUNK_SIZE){readLength=Math.min(CHUNK_SIZE,length-offset);sub=arrayBufferView.subarray(offset,offset+readLength);stringResult+=String.fromCharCode.apply(null,sub)}return stringResult};return _}()},{"../vendor/CryptoJS.js":8}],8:[function(require,module,exports){module.exports=function(){var CryptoJS=CryptoJS||function(u,p){var d={};var l=d.lib={};var s=function(){};var t=l.Base={extend:function(a){s.prototype=
this;var c=new s;a&&c.mixIn(a);c.hasOwnProperty("init")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(this[c]=a[c]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}};var r=l.WordArray=t.extend({init:function(a,c){a=this.words=a||[];
this.sigBytes=c!=p?c:4*a.length},toString:function(a){return(a||v).stringify(this)},concat:function(a){var c=this.words;var e=a.words;var j=this.sigBytes;a=a.sigBytes;this.clamp();if(j%4)for(var k=0;k<a;k++)c[j+k>>>2]|=(e[k>>>2]>>>24-8*(k%4)&255)<<24-8*((j+k)%4);else if(65535<e.length)for(k=0;k<a;k+=4)c[j+k>>>2]=e[k>>>2];else c.push.apply(c,e);this.sigBytes+=a;return this},clamp:function(){var a=this.words;var c=this.sigBytes;a[c>>>2]&=4294967295<<32-8*(c%4);a.length=u.ceil(c/4)},clone:function(){var a=
t.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){var c=[];for(var e=0;e<a;e+=4)c.push(4294967296*u.random()|0);return new r.init(c,a)}});var w=d.enc={};var v=w.Hex={stringify:function(a){var c=a.words;a=a.sigBytes;var e=[];for(var j=0;j<a;j++){var k=c[j>>>2]>>>24-8*(j%4)&255;e.push((k>>>4).toString(16));e.push((k&15).toString(16))}return e.join("")},parse:function(a){var c=a.length;var e=[];for(var j=0;j<c;j+=2)e[j>>>3]|=parseInt(a.substr(j,2),16)<<24-4*(j%8);return new r.init(e,
c/2)}};var b=w.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;var e=[];for(var j=0;j<a;j++)e.push(String.fromCharCode(c[j>>>2]>>>24-8*(j%4)&255));return e.join("")},parse:function(a){var c=a.length;var e=[];for(var j=0;j<c;j++)e[j>>>2]|=(a.charCodeAt(j)&255)<<24-8*(j%4);return new r.init(e,c)}};var x=w.Utf8={stringify:function(a){try{return decodeURIComponent(escape(b.stringify(a)))}catch(c){throw Error("Malformed UTF-8 data");}},parse:function(a){return b.parse(unescape(encodeURIComponent(a)))}};
var q=l.BufferedBlockAlgorithm=t.extend({reset:function(){this._data=new r.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=x.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var c=this._data;var e=c.words;var j=c.sigBytes;var k=this.blockSize;var b=j/(4*k);b=a?u.ceil(b):u.max((b|0)-this._minBufferSize,0);a=b*k;j=u.min(4*a,j);if(a){for(var q=0;q<a;q+=k)this._doProcessBlock(e,q);q=e.splice(0,a);c.sigBytes-=j}return new r.init(q,j)},clone:function(){var a=
t.clone.call(this);a._data=this._data.clone();return a},_minBufferSize:0});l.Hasher=q.extend({cfg:t.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){q.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,e){return(new a.init(e)).finalize(b)}},_createHmacHelper:function(a){return function(b,e){return(new n.HMAC.init(a,
e)).finalize(b)}}});var n=d.algo={};return d}(Math);(function(){var u=CryptoJS;var p$$0=u.lib.WordArray;u.enc.Base64={stringify:function(d){var l=d.words;var p=d.sigBytes;var t=this._map;d.clamp();d=[];for(var r=0;r<p;r+=3){var w=(l[r>>>2]>>>24-8*(r%4)&255)<<16|(l[r+1>>>2]>>>24-8*((r+1)%4)&255)<<8|l[r+2>>>2]>>>24-8*((r+2)%4)&255;for(var v=0;4>v&&r+0.75*v<p;v++)d.push(t.charAt(w>>>6*(3-v)&63))}if(l=t.charAt(64))for(;d.length%4;)d.push(l);return d.join("")},parse:function(d){var l=d.length;var s=this._map;
var t=s.charAt(64);t&&(t=d.indexOf(t),-1!=t&&(l=t));t=[];var r=0;for(var w=0;w<l;w++)if(w%4){var v=s.indexOf(d.charAt(w-1))<<2*(w%4);var b=s.indexOf(d.charAt(w))>>>6-2*(w%4);t[r>>>2]|=(v|b)<<24-8*(r%4);r++}return p$$0.create(t,r)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d"}})();(function(u$$0){function p(b,n,a,c,e,j,k){b=b+(n&a|~n&c)+e+k;return(b<<j|b>>>32-j)+n}function d(b,n,a,c,e,j,k){b=b+(n&c|a&~c)+e+k;return(b<<j|b>>>32-j)+n}function l(b,n,a,c,e,j,k){b=b+(n^a^
c)+e+k;return(b<<j|b>>>32-j)+n}function s(b,n,a,c,e,j,k){b=b+(a^(n|~c))+e+k;return(b<<j|b>>>32-j)+n}var t$$0=CryptoJS;var r$$0=t$$0.lib;var w$$0=r$$0.WordArray;var v$$0=r$$0.Hasher;r$$0=t$$0.algo;var b$$0=[];for(var x$$0=0;64>x$$0;x$$0++)b$$0[x$$0]=4294967296*u$$0.abs(u$$0.sin(x$$0+1))|0;r$$0=r$$0.MD5=v$$0.extend({_doReset:function(){this._hash=new w$$0.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(q,n){for(var a=0;16>a;a++){var c=n+a;var e=q[c];q[c]=(e<<8|e>>>24)&16711935|
(e<<24|e>>>8)&4278255360}a=this._hash.words;c=q[n+0];e=q[n+1];var j=q[n+2];var k=q[n+3];var z=q[n+4];var r=q[n+5];var t=q[n+6];var w=q[n+7];var v=q[n+8];var A=q[n+9];var B=q[n+10];var C=q[n+11];var u=q[n+12];var D=q[n+13];var E=q[n+14];var x=q[n+15];var f=a[0];var m=a[1];var g=a[2];var h=a[3];f=p(f,m,g,h,c,7,b$$0[0]);h=p(h,f,m,g,e,12,b$$0[1]);g=p(g,h,f,m,j,17,b$$0[2]);m=p(m,g,h,f,k,22,b$$0[3]);f=p(f,m,g,h,z,7,b$$0[4]);h=p(h,f,m,g,r,12,b$$0[5]);g=p(g,h,f,m,t,17,b$$0[6]);m=p(m,g,h,f,w,22,b$$0[7]);f=
p(f,m,g,h,v,7,b$$0[8]);h=p(h,f,m,g,A,12,b$$0[9]);g=p(g,h,f,m,B,17,b$$0[10]);m=p(m,g,h,f,C,22,b$$0[11]);f=p(f,m,g,h,u,7,b$$0[12]);h=p(h,f,m,g,D,12,b$$0[13]);g=p(g,h,f,m,E,17,b$$0[14]);m=p(m,g,h,f,x,22,b$$0[15]);f=d(f,m,g,h,e,5,b$$0[16]);h=d(h,f,m,g,t,9,b$$0[17]);g=d(g,h,f,m,C,14,b$$0[18]);m=d(m,g,h,f,c,20,b$$0[19]);f=d(f,m,g,h,r,5,b$$0[20]);h=d(h,f,m,g,B,9,b$$0[21]);g=d(g,h,f,m,x,14,b$$0[22]);m=d(m,g,h,f,z,20,b$$0[23]);f=d(f,m,g,h,A,5,b$$0[24]);h=d(h,f,m,g,E,9,b$$0[25]);g=d(g,h,f,m,k,14,b$$0[26]);
m=d(m,g,h,f,v,20,b$$0[27]);f=d(f,m,g,h,D,5,b$$0[28]);h=d(h,f,m,g,j,9,b$$0[29]);g=d(g,h,f,m,w,14,b$$0[30]);m=d(m,g,h,f,u,20,b$$0[31]);f=l(f,m,g,h,r,4,b$$0[32]);h=l(h,f,m,g,v,11,b$$0[33]);g=l(g,h,f,m,C,16,b$$0[34]);m=l(m,g,h,f,E,23,b$$0[35]);f=l(f,m,g,h,e,4,b$$0[36]);h=l(h,f,m,g,z,11,b$$0[37]);g=l(g,h,f,m,w,16,b$$0[38]);m=l(m,g,h,f,B,23,b$$0[39]);f=l(f,m,g,h,D,4,b$$0[40]);h=l(h,f,m,g,c,11,b$$0[41]);g=l(g,h,f,m,k,16,b$$0[42]);m=l(m,g,h,f,t,23,b$$0[43]);f=l(f,m,g,h,A,4,b$$0[44]);h=l(h,f,m,g,u,11,b$$0[45]);
g=l(g,h,f,m,x,16,b$$0[46]);m=l(m,g,h,f,j,23,b$$0[47]);f=s(f,m,g,h,c,6,b$$0[48]);h=s(h,f,m,g,w,10,b$$0[49]);g=s(g,h,f,m,E,15,b$$0[50]);m=s(m,g,h,f,r,21,b$$0[51]);f=s(f,m,g,h,u,6,b$$0[52]);h=s(h,f,m,g,k,10,b$$0[53]);g=s(g,h,f,m,B,15,b$$0[54]);m=s(m,g,h,f,e,21,b$$0[55]);f=s(f,m,g,h,v,6,b$$0[56]);h=s(h,f,m,g,x,10,b$$0[57]);g=s(g,h,f,m,t,15,b$$0[58]);m=s(m,g,h,f,D,21,b$$0[59]);f=s(f,m,g,h,z,6,b$$0[60]);h=s(h,f,m,g,C,10,b$$0[61]);g=s(g,h,f,m,j,15,b$$0[62]);m=s(m,g,h,f,A,21,b$$0[63]);a[0]=a[0]+f|0;a[1]=
a[1]+m|0;a[2]=a[2]+g|0;a[3]=a[3]+h|0},_doFinalize:function(){var b=this._data;var n=b.words;var a=8*this._nDataBytes;var c=8*b.sigBytes;n[c>>>5]|=128<<24-c%32;var e=u$$0.floor(a/4294967296);n[(c+64>>>9<<4)+15]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360;n[(c+64>>>9<<4)+14]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360;b.sigBytes=4*(n.length+1);this._process();b=this._hash;n=b.words;for(a=0;4>a;a++)c=n[a],n[a]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360;return b},clone:function(){var b=v$$0.clone.call(this);
b._hash=this._hash.clone();return b}});t$$0.MD5=v$$0._createHelper(r$$0);t$$0.HmacMD5=v$$0._createHmacHelper(r$$0)})(Math);(function(){var u$$0=CryptoJS;var p$$0=u$$0.lib;var d$$0=p$$0.Base;var l$$0=p$$0.WordArray;p$$0=u$$0.algo;var s$$0=p$$0.EvpKDF=d$$0.extend({cfg:d$$0.extend({keySize:4,hasher:p$$0.MD5,iterations:1}),init:function(d){this.cfg=this.cfg.extend(d)},compute:function(d,r){var p=this.cfg;var s=p.hasher.create();var b=l$$0.create();var u=b.words;var q=p.keySize;for(p=p.iterations;u.length<
q;){n&&s.update(n);var n=s.update(d).finalize(r);s.reset();for(var a=1;a<p;a++)n=s.finalize(n),s.reset();b.concat(n)}b.sigBytes=4*q;return b}});u$$0.EvpKDF=function(d,l,p){return s$$0.create(p).compute(d,l)}})();CryptoJS.lib.Cipher||function(u){var p=CryptoJS;var d$$0=p.lib;var l$$0=d$$0.Base;var s=d$$0.WordArray;var t=d$$0.BufferedBlockAlgorithm;var r=p.enc.Base64;var w=p.algo.EvpKDF;var v=d$$0.Cipher=t.extend({cfg:l$$0.extend(),createEncryptor:function(e,a){return this.create(this._ENC_XFORM_MODE,
e,a)},createDecryptor:function(e,a){return this.create(this._DEC_XFORM_MODE,e,a)},init:function(e,a,b){this.cfg=this.cfg.extend(b);this._xformMode=e;this._key=a;this.reset()},reset:function(){t.reset.call(this);this._doReset()},process:function(e){this._append(e);return this._process()},finalize:function(e){e&&this._append(e);return this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(e){return{encrypt:function(b,k,d){return("string"==typeof k?c$$0:a$$0).encrypt(e,
b,k,d)},decrypt:function(b,k,d){return("string"==typeof k?c$$0:a$$0).decrypt(e,b,k,d)}}}});d$$0.StreamCipher=v.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var b$$0=p.mode={};var x=function(e,a,b){var c=this._iv;c?this._iv=u:c=this._prevBlock;for(var d=0;d<b;d++)e[a+d]^=c[d]};var q=(d$$0.BlockCipherMode=l$$0.extend({createEncryptor:function(e,a){return this.Encryptor.create(e,a)},createDecryptor:function(e,a){return this.Decryptor.create(e,a)},init:function(e,a){this._cipher=
e;this._iv=a}})).extend();q.Encryptor=q.extend({processBlock:function(e,a){var b=this._cipher;var c=b.blockSize;x.call(this,e,a,c);b.encryptBlock(e,a);this._prevBlock=e.slice(a,a+c)}});q.Decryptor=q.extend({processBlock:function(e,a){var b=this._cipher;var c=b.blockSize;var d=e.slice(a,a+c);b.decryptBlock(e,a);x.call(this,e,a,c);this._prevBlock=d}});b$$0=b$$0.CBC=q;q=(p.pad={}).Pkcs7={pad:function(a,b){var c=4*b;c=c-a.sigBytes%c;var d=c<<24|c<<16|c<<8|c;var l=[];for(var n=0;n<c;n+=4)l.push(d);c=s.create(l,
c);a.concat(c)},unpad:function(a){a.sigBytes-=a.words[a.sigBytes-1>>>2]&255}};d$$0.BlockCipher=v.extend({cfg:v.cfg.extend({mode:b$$0,padding:q}),reset:function(){v.reset.call(this);var a=this.cfg;var b=a.iv;a=a.mode;if(this._xformMode==this._ENC_XFORM_MODE)var c=a.createEncryptor;else c=a.createDecryptor,this._minBufferSize=1;this._mode=c.call(a,this,b&&b.words)},_doProcessBlock:function(a,b){this._mode.processBlock(a,b)},_doFinalize:function(){var a=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){a.pad(this._data,
this.blockSize);var b=this._process(!0)}else b=this._process(!0),a.unpad(b);return b},blockSize:4});var n$$0=d$$0.CipherParams=l$$0.extend({init:function(a){this.mixIn(a)},toString:function(a){return(a||this.formatter).stringify(this)}});b$$0=(p.format={}).OpenSSL={stringify:function(a){var b=a.ciphertext;a=a.salt;return(a?s.create([1398893684,1701076831]).concat(a).concat(b):b).toString(r)},parse:function(a){a=r.parse(a);var b=a.words;if(1398893684==b[0]&&1701076831==b[1]){var c=s.create(b.slice(2,
4));b.splice(0,4);a.sigBytes-=16}return n$$0.create({ciphertext:a,salt:c})}};var a$$0=d$$0.SerializableCipher=l$$0.extend({cfg:l$$0.extend({format:b$$0}),encrypt:function(a,b,c,d){d=this.cfg.extend(d);var l=a.createEncryptor(c,d);b=l.finalize(b);l=l.cfg;return n$$0.create({ciphertext:b,key:c,iv:l.iv,algorithm:a,mode:l.mode,padding:l.padding,blockSize:a.blockSize,formatter:d.format})},decrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);return a.createDecryptor(c,d).finalize(b.ciphertext)},
_parse:function(a,b){return"string"==typeof a?b.parse(a,this):a}});p=(p.kdf={}).OpenSSL={execute:function(a,b,c,d){d||(d=s.random(8));a=w.create({keySize:b+c}).compute(a,d);c=s.create(a.words.slice(b),4*c);a.sigBytes=4*b;return n$$0.create({key:a,iv:c,salt:d})}};var c$$0=d$$0.PasswordBasedCipher=a$$0.extend({cfg:a$$0.cfg.extend({kdf:p}),encrypt:function(b,c,d,l){l=this.cfg.extend(l);d=l.kdf.execute(d,b.keySize,b.ivSize);l.iv=d.iv;b=a$$0.encrypt.call(this,b,c,d.key,l);b.mixIn(d);return b},decrypt:function(b,
c,d,l){l=this.cfg.extend(l);c=this._parse(c,l.format);d=l.kdf.execute(d,b.keySize,b.ivSize,c.salt);l.iv=d.iv;return a$$0.decrypt.call(this,b,c,d.key,l)}})}();(function(){var u=CryptoJS;var p$$0=u.lib.BlockCipher;var d$$0=u.algo;var l$$0=[];var s$$0=[];var t$$0=[];var r$$0=[];var w=[];var v=[];var b$$0=[];var x=[];var q$$0=[];var n$$0=[];var a$$0=[];for(var c$$0=0;256>c$$0;c$$0++)a$$0[c$$0]=128>c$$0?c$$0<<1:c$$0<<1^283;var e$$0=0;var j$$0=0;for(c$$0=0;256>c$$0;c$$0++){var k$$0=j$$0^j$$0<<1^j$$0<<2^
j$$0<<3^j$$0<<4;k$$0=k$$0>>>8^k$$0&255^99;l$$0[e$$0]=k$$0;s$$0[k$$0]=e$$0;var z=a$$0[e$$0];var F=a$$0[z];var G=a$$0[F];var y=257*a$$0[k$$0]^16843008*k$$0;t$$0[e$$0]=y<<24|y>>>8;r$$0[e$$0]=y<<16|y>>>16;w[e$$0]=y<<8|y>>>24;v[e$$0]=y;y=16843009*G^65537*F^257*z^16843008*e$$0;b$$0[k$$0]=y<<24|y>>>8;x[k$$0]=y<<16|y>>>16;q$$0[k$$0]=y<<8|y>>>24;n$$0[k$$0]=y;e$$0?(e$$0=z^a$$0[a$$0[a$$0[G^z]]],j$$0^=a$$0[a$$0[j$$0]]):e$$0=j$$0=1}var H=[0,1,2,4,8,16,32,64,128,27,54];d$$0=d$$0.AES=p$$0.extend({_doReset:function(){var a=
this._key;var c=a.words;var d=a.sigBytes/4;a=4*((this._nRounds=d+6)+1);var e=this._keySchedule=[];for(var j=0;j<a;j++)if(j<d)e[j]=c[j];else{var k=e[j-1];j%d?6<d&&4==j%d&&(k=l$$0[k>>>24]<<24|l$$0[k>>>16&255]<<16|l$$0[k>>>8&255]<<8|l$$0[k&255]):(k=k<<8|k>>>24,k=l$$0[k>>>24]<<24|l$$0[k>>>16&255]<<16|l$$0[k>>>8&255]<<8|l$$0[k&255],k^=H[j/d|0]<<24);e[j]=e[j-d]^k}c=this._invKeySchedule=[];for(d=0;d<a;d++)j=a-d,k=d%4?e[j]:e[j-4],c[d]=4>d||4>=j?k:b$$0[l$$0[k>>>24]]^x[l$$0[k>>>16&255]]^q$$0[l$$0[k>>>8&255]]^
n$$0[l$$0[k&255]]},encryptBlock:function(a,b){this._doCryptBlock(a,b,this._keySchedule,t$$0,r$$0,w,v,l$$0)},decryptBlock:function(a,c){var d=a[c+1];a[c+1]=a[c+3];a[c+3]=d;this._doCryptBlock(a,c,this._invKeySchedule,b$$0,x,q$$0,n$$0,s$$0);d=a[c+1];a[c+1]=a[c+3];a[c+3]=d},_doCryptBlock:function(a,b,c,d,e,j,l,f){var m=this._nRounds;var g=a[b]^c[0];var h=a[b+1]^c[1];var k=a[b+2]^c[2];var n=a[b+3]^c[3];var p=4;for(var r=1;r<m;r++){var q=d[g>>>24]^e[h>>>16&255]^j[k>>>8&255]^l[n&255]^c[p++];var s=d[h>>>
24]^e[k>>>16&255]^j[n>>>8&255]^l[g&255]^c[p++];var t=d[k>>>24]^e[n>>>16&255]^j[g>>>8&255]^l[h&255]^c[p++];n=d[n>>>24]^e[g>>>16&255]^j[h>>>8&255]^l[k&255]^c[p++];g=q;h=s;k=t}q=(f[g>>>24]<<24|f[h>>>16&255]<<16|f[k>>>8&255]<<8|f[n&255])^c[p++];s=(f[h>>>24]<<24|f[k>>>16&255]<<16|f[n>>>8&255]<<8|f[g&255])^c[p++];t=(f[k>>>24]<<24|f[n>>>16&255]<<16|f[g>>>8&255]<<8|f[h&255])^c[p++];n=(f[n>>>24]<<24|f[g>>>16&255]<<16|f[h>>>8&255]<<8|f[k&255])^c[p++];a[b]=q;a[b+1]=s;a[b+2]=t;a[b+3]=n},keySize:8});u.AES=p$$0._createHelper(d$$0)})();
return CryptoJS}()},{}],9:[function(require,module,exports){module.exports=function(){(function(N,d,p,K,k,H){function C(X,Z){var Y=typeof X[Z];return Y=="function"||!!(Y=="object"&&X[Z])||Y=="unknown"}function u(X,Y){return!!(typeof X[Y]=="object"&&X[Y])}function r(X){return Object.prototype.toString.call(X)==="[object Array]"}function c(){var Z="Shockwave Flash";var ad="application/x-shockwave-flash";if(!t(navigator.plugins)&&typeof navigator.plugins[Z]=="object"){var ab=navigator.plugins[Z].description;
if(ab&&!t(navigator.mimeTypes)&&navigator.mimeTypes[ad]&&navigator.mimeTypes[ad].enabledPlugin)i=ab.match(/\d+/g)}if(!i){var Y;try{Y=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");i=Array.prototype.slice.call(Y.GetVariable("$version").match(/(\d+),(\d+),(\d+),(\d+)/),1);Y=null}catch(ac){}}if(!i)return false;var X=parseInt(i[0],10);var aa=parseInt(i[1],10);h=X>9&&aa>0;return true}function s(){if(W)return;W=true;for(var X=0;X<J.length;X++)J[X]();J.length=0}function G(Y,X){if(W){Y.call(X);return}J.push(function(){Y.call(X)})}
function m(){var Z=parent;if(I!==""){var X=0;for(var Y=I.split(".");X<Y.length;X++)Z=Z[Y[X]]}return Z.easyXDM}function e(X){N.easyXDM=M;I=X;if(I)U="easyXDM_"+I.replace(".","_")+"_";return o}function z(X){return X.match(Q)[3]}function f(X){return X.match(Q)[4]||""}function j(Z){var X=Z.toLowerCase().match(Q);var aa=X[2];var ab=X[3];var Y=X[4]||"";if(aa=="http:"&&Y==":80"||aa=="https:"&&Y==":443")Y="";return aa+"//"+ab+Y}function B(X){X=X.replace(F,"$1/");if(!X.match(/^(http||https):\/\//)){var Y=X.substring(0,
1)==="/"?"":p.pathname;if(Y.substring(Y.length-1)!=="/")Y=Y.substring(0,Y.lastIndexOf("/")+1);X=p.protocol+"//"+p.host+Y+X}for(;R.test(X);)X=X.replace(R,"");return X}function P(X,aa){var ac="";var Z=X.indexOf("#");if(Z!==-1){ac=X.substring(Z);X=X.substring(0,Z)}var ab=[];for(var Y in aa)if(aa.hasOwnProperty(Y))ab.push(Y+"\x3d"+H(aa[Y]));return X+(y?"#":X.indexOf("?")==-1?"?":"\x26")+ab.join("\x26")+ac}function t(X){return typeof X==="undefined"}function T(X,Y,Z){var ab;for(var aa in Y)if(Y.hasOwnProperty(aa))if(aa in
X){ab=Y[aa];if(typeof ab==="object")T(X[aa],ab,Z);else if(!Z)X[aa]=Y[aa]}else X[aa]=Y[aa];return X}function a(){var Y=d.body.appendChild(d.createElement("form"));var X=Y.appendChild(d.createElement("input"));X.name=U+"TEST"+n;E=X!==Y.elements[X.name];d.body.removeChild(Y)}function A(Y){if(t(E))a();var ac;if(E)ac=d.createElement('\x3ciframe name\x3d"'+Y.props.name+'"/\x3e');else{ac=d.createElement("IFRAME");ac.name=Y.props.name}ac.id=ac.name=Y.props.name;delete Y.props.name;if(typeof Y.container==
"string")Y.container=d.getElementById(Y.container);if(!Y.container){T(ac.style,{position:"absolute",top:"-2000px",left:"0px"});Y.container=d.body}var ab=Y.props.src;Y.props.src="javascript:false";T(ac,Y.props);ac.border=ac.frameBorder=0;ac.allowTransparency=true;Y.container.appendChild(ac);if(Y.onLoad)v(ac,"load",Y.onLoad);if(Y.usePost){var aa=Y.container.appendChild(d.createElement("form"));var X;aa.target=ac.name;aa.action=ab;aa.method="POST";if(typeof Y.usePost==="object")for(var Z in Y.usePost)if(Y.usePost.hasOwnProperty(Z)){if(E)X=
d.createElement('\x3cinput name\x3d"'+Z+'"/\x3e');else{X=d.createElement("INPUT");X.name=Z}X.value=Y.usePost[Z];aa.appendChild(X)}aa.submit();aa.parentNode.removeChild(aa)}else ac.src=ab;Y.props.src=ab;return ac}function V(aa,Z){if(typeof aa=="string")aa=[aa];var Y;for(var X=aa.length;X--;){Y=aa[X];Y=new RegExp(Y.substr(0,1)=="^"?Y:"^"+Y.replace(/(\*)/g,".$1").replace(/\?/g,".")+"$");if(Y.test(Z))return true}return false}function l(Z){var ae=Z.protocol;var Y;Z.isHost=Z.isHost||t(S.xdm_p);y=Z.hash||
false;if(!Z.props)Z.props={};if(!Z.isHost){Z.channel=S.xdm_c.replace(/["'<>\\]/g,"");Z.secret=S.xdm_s;Z.remote=S.xdm_e.replace(/["'<>\\]/g,"");ae=S.xdm_p;if(Z.acl&&!V(Z.acl,Z.remote))throw new Error("Access denied for "+Z.remote);}else{Z.remote=B(Z.remote);Z.channel=Z.channel||"default"+n++;Z.secret=Math.random().toString(16).substring(2);if(t(ae))if(j(p.href)==j(Z.remote))ae="4";else if(C(N,"postMessage")||C(d,"postMessage"))ae="1";else if(Z.swf&&C(N,"ActiveXObject")&&c())ae="6";else if(navigator.product===
"Gecko"&&"frameElement"in N&&navigator.userAgent.indexOf("WebKit")==-1)ae="5";else if(Z.remoteHelper)ae="2";else ae="0"}Z.protocol=ae;switch(ae){case "0":T(Z,{interval:100,delay:2E3,useResize:true,useParent:false,usePolling:false},true);if(Z.isHost){if(!Z.local){var ac=p.protocol+"//"+p.host;var X=d.body.getElementsByTagName("img");var ad;for(var aa=X.length;aa--;){ad=X[aa];if(ad.src.substring(0,ac.length)===ac){Z.local=ad.src;break}}if(!Z.local)Z.local=N}var ab={xdm_c:Z.channel,xdm_p:0};if(Z.local===
N){Z.usePolling=true;Z.useParent=true;Z.local=p.protocol+"//"+p.host+p.pathname+p.search;ab.xdm_e=Z.local;ab.xdm_pa=1}else ab.xdm_e=B(Z.local);if(Z.container){Z.useResize=false;ab.xdm_po=1}Z.remote=P(Z.remote,ab)}else T(Z,{channel:S.xdm_c,remote:S.xdm_e,useParent:!t(S.xdm_pa),usePolling:!t(S.xdm_po),useResize:Z.useParent?false:Z.useResize});Y=[new o.stack.HashTransport(Z),new o.stack.ReliableBehavior({}),new o.stack.QueueBehavior({encode:true,maxLength:4E3-Z.remote.length}),new o.stack.VerifyBehavior({initiate:Z.isHost})];
break;case "1":Y=[new o.stack.PostMessageTransport(Z)];break;case "2":if(Z.isHost)Z.remoteHelper=B(Z.remoteHelper);Y=[new o.stack.NameTransport(Z),new o.stack.QueueBehavior,new o.stack.VerifyBehavior({initiate:Z.isHost})];break;case "3":Y=[new o.stack.NixTransport(Z)];break;case "4":Y=[new o.stack.SameOriginTransport(Z)];break;case "5":Y=[new o.stack.FrameElementTransport(Z)];break;case "6":if(!i)c();Y=[new o.stack.FlashTransport(Z)];break}Y.push(new o.stack.QueueBehavior({lazy:Z.lazy,remove:true}));
return Y}function D(aa){var ab;var Z={incoming:function(ad,ac){this.up.incoming(ad,ac)},outgoing:function(ac,ad){this.down.outgoing(ac,ad)},callback:function(ac){this.up.callback(ac)},init:function(){this.down.init()},destroy:function(){this.down.destroy()}};var Y=0;for(var X=aa.length;Y<X;Y++){ab=aa[Y];T(ab,Z,true);if(Y!==0)ab.down=aa[Y-1];if(Y!==X-1)ab.up=aa[Y+1]}return ab}function w(X){X.up.down=X.down;X.down.up=X.up;X.up=X.down=null}var b=this;var n=Math.floor(Math.random()*1E4);var q=Function.prototype;
var Q=/^((http.?:)\/\/([^:\/\s]+)(:\d+)*)/;var R=/[\-\w]+\/\.\.\//;var F=/([^:])\/\//g;var I="";var o={};var M=N.easyXDM;var U="easyXDM_";var E;var y=false;var i;var h;var v;var x;if(C(N,"addEventListener")){v=function(Z,X,Y){Z.addEventListener(X,Y,false)};x=function(Z,X,Y){Z.removeEventListener(X,Y,false)}}else if(C(N,"attachEvent")){v=function(X,Z,Y){X.attachEvent("on"+Z,Y)};x=function(X,Z,Y){X.detachEvent("on"+Z,Y)}}else throw new Error("Browser not supported");var W=false;var J=[];var L;if("readyState"in
d){L=d.readyState;W=L=="complete"||~navigator.userAgent.indexOf("AppleWebKit/")&&(L=="loaded"||L=="interactive")}else W=!!d.body;if(!W){if(C(N,"addEventListener"))v(d,"DOMContentLoaded",s);else{v(d,"readystatechange",function(){if(d.readyState=="complete")s()});if(d.documentElement.doScroll&&N===top){var g=function(){if(W)return;try{d.documentElement.doScroll("left")}catch(X){K(g,1);return}s()};g()}}v(N,"load",s)}var S=function(X){X=X.substring(1).split("\x26");var Z={};var aa;for(var Y=X.length;Y--;){aa=
X[Y].split("\x3d");Z[aa[0]]=k(aa[1])}return Z}(/xdm_e=/.test(p.search)?p.search:p.hash);var O=function(){var Y={};var Z={a:[1,2,3]};var X='{"a":[1,2,3]}';if(typeof JSON!="undefined"&&typeof JSON.stringify==="function"&&JSON.stringify(Z).replace(/\s/g,"")===X)return JSON;if(Object.toJSON)if(Object.toJSON(Z).replace(/\s/g,"")===X)Y.stringify=Object.toJSON;if(typeof String.prototype.evalJSON==="function"){Z=X.evalJSON();if(Z.a&&Z.a.length===3&&Z.a[2]===3)Y.parse=function(aa){return aa.evalJSON()}}if(Y.stringify&&
Y.parse){O=function(){return Y};return Y}return null};T(o,{version:"2.4.19.3",query:S,stack:{},apply:T,getJSONObject:O,whenReady:G,noConflict:e});o.DomHelper={on:v,un:x,requiresJSON:function(X){if(!u(N,"JSON"))d.write('\x3cscript type\x3d"text/javascript" src\x3d"'+X+'"\x3e\x3c/script\x3e')}};(function(){var X={};o.Fn={set:function(Y,Z){X[Y]=Z},get:function(Z,Y){if(!X.hasOwnProperty(Z))return;var aa=X[Z];if(Y)delete X[Z];return aa}}})();o.Socket=function(Y){var X=D(l(Y).concat([{incoming:function(ab,
aa){Y.onMessage(ab,aa)},callback:function(aa){if(Y.onReady)Y.onReady(aa)}}]));var Z=j(Y.remote);this.origin=j(Y.remote);this.destroy=function(){X.destroy()};this.postMessage=function(aa){X.outgoing(aa,Z)};X.init()};o.Rpc=function(Z,Y){if(Y.local)for(var ab in Y.local)if(Y.local.hasOwnProperty(ab)){var aa=Y.local[ab];if(typeof aa==="function")Y.local[ab]={method:aa}}var X=D(l(Z).concat([new o.stack.RpcBehavior(this,Y),{callback:function(ac){if(Z.onReady)Z.onReady(ac)}}]));this.origin=j(Z.remote);this.destroy=
function(){X.destroy()};X.init()};o.stack.SameOriginTransport=function(Y){var Z;var ab;var aa;var X;return Z={outgoing:function(ad,ae,ac){aa(ad);if(ac)ac()},destroy:function(){if(ab){ab.parentNode.removeChild(ab);ab=null}},onDOMReady:function(){X=j(Y.remote);if(Y.isHost){T(Y.props,{src:P(Y.remote,{xdm_e:p.protocol+"//"+p.host+p.pathname,xdm_c:Y.channel,xdm_p:4}),name:U+Y.channel+"_provider"});ab=A(Y);o.Fn.set(Y.channel,function(ac){aa=ac;K(function(){Z.up.callback(true)},0);return function(ad){Z.up.incoming(ad,
X)}})}else{aa=m().Fn.get(Y.channel,true)(function(ac){Z.up.incoming(ac,X)});K(function(){Z.up.callback(true)},0)}},init:function(){G(Z.onDOMReady,Z)}}};o.stack.FlashTransport=function(aa){function af(ah,ag){K(function(){ac.up.incoming(ah,ad)},0)}function Z(ah){var ag=aa.swf+"?host\x3d"+aa.isHost;var aj="easyXDM_swf_"+Math.floor(Math.random()*1E4);o.Fn.set("flash_loaded"+ah.replace(/[\-.]/g,"_"),function(){o.stack.FlashTransport[ah].swf=Y=ae.firstChild;var ak=o.stack.FlashTransport[ah].queue;for(var al=
0;al<ak.length;al++)ak[al]();ak.length=0});if(aa.swfContainer)ae=typeof aa.swfContainer=="string"?d.getElementById(aa.swfContainer):aa.swfContainer;else{ae=d.createElement("div");T(ae.style,h&&aa.swfNoThrottle?{height:"20px",width:"20px",position:"fixed",right:0,top:0}:{height:"1px",width:"1px",position:"absolute",overflow:"hidden",right:0,top:0});d.body.appendChild(ae)}var ai="callback\x3dflash_loaded"+H(ah.replace(/[\-.]/g,"_"))+"\x26proto\x3d"+b.location.protocol+"\x26domain\x3d"+H(z(b.location.href))+
"\x26port\x3d"+H(f(b.location.href))+"\x26ns\x3d"+H(I);ae.innerHTML="\x3cobject height\x3d'20' width\x3d'20' type\x3d'application/x-shockwave-flash' id\x3d'"+aj+"' data\x3d'"+ag+"'\x3e\x3cparam name\x3d'allowScriptAccess' value\x3d'always'\x3e\x3c/param\x3e\x3cparam name\x3d'wmode' value\x3d'transparent'\x3e\x3cparam name\x3d'movie' value\x3d'"+ag+"'\x3e\x3c/param\x3e\x3cparam name\x3d'flashvars' value\x3d'"+ai+"'\x3e\x3c/param\x3e\x3cembed type\x3d'application/x-shockwave-flash' FlashVars\x3d'"+
ai+"' allowScriptAccess\x3d'always' wmode\x3d'transparent' src\x3d'"+ag+"' height\x3d'1' width\x3d'1'\x3e\x3c/embed\x3e\x3c/object\x3e"}var ac;var X;var ab;var ad;var Y;var ae;return ac={outgoing:function(ah,ai,ag){Y.postMessage(aa.channel,ah.toString());if(ag)ag()},destroy:function(){try{Y.destroyChannel(aa.channel)}catch(ag){}Y=null;if(X){X.parentNode.removeChild(X);X=null}},onDOMReady:function(){ad=aa.remote;o.Fn.set("flash_"+aa.channel+"_init",function(){K(function(){ac.up.callback(true)})});
o.Fn.set("flash_"+aa.channel+"_onMessage",af);aa.swf=B(aa.swf);var ah=z(aa.swf);var ag=function(){o.stack.FlashTransport[ah].init=true;Y=o.stack.FlashTransport[ah].swf;Y.createChannel(aa.channel,aa.secret,j(aa.remote),aa.isHost);if(aa.isHost){if(h&&aa.swfNoThrottle)T(aa.props,{position:"fixed",right:0,top:0,height:"20px",width:"20px"});T(aa.props,{src:P(aa.remote,{xdm_e:j(p.href),xdm_c:aa.channel,xdm_p:6,xdm_s:aa.secret}),name:U+aa.channel+"_provider"});X=A(aa)}};if(o.stack.FlashTransport[ah]&&o.stack.FlashTransport[ah].init)ag();
else if(!o.stack.FlashTransport[ah]){o.stack.FlashTransport[ah]={queue:[ag]};Z(ah)}else o.stack.FlashTransport[ah].queue.push(ag)},init:function(){G(ac.onDOMReady,ac)}}};o.stack.PostMessageTransport=function(aa){function X(ae){if(ae.origin)return j(ae.origin);if(ae.uri)return j(ae.uri);if(ae.domain)return p.protocol+"//"+ae.domain;throw"Unable to retrieve the origin of the event";}function ab(af){var ae=X(af);if(ae==Z&&af.data.substring(0,aa.channel.length+1)==aa.channel+" ")ac.up.incoming(af.data.substring(aa.channel.length+
1),ae)}var ac;var ad;var Y;var Z;return ac={outgoing:function(af,ag,ae){Y.postMessage(aa.channel+" "+af,ag||Z);if(ae)ae()},destroy:function(){x(N,"message",ab);if(ad){Y=null;ad.parentNode.removeChild(ad);ad=null}},onDOMReady:function(){Z=j(aa.remote);if(aa.isHost){var ae=function(af){if(af.data==aa.channel+"-ready"){Y="postMessage"in ad.contentWindow?ad.contentWindow:ad.contentWindow.document;x(N,"message",ae);v(N,"message",ab);K(function(){ac.up.callback(true)},0)}};v(N,"message",ae);T(aa.props,
{src:P(aa.remote,{xdm_e:j(p.href),xdm_c:aa.channel,xdm_p:1}),name:U+aa.channel+"_provider"});ad=A(aa)}else{v(N,"message",ab);Y="postMessage"in N.parent?N.parent:N.parent.document;Y.postMessage(aa.channel+"-ready",Z);K(function(){ac.up.callback(true)},0)}},init:function(){G(ac.onDOMReady,ac)}}};o.stack.FrameElementTransport=function(Y){var Z;var ab;var aa;var X;return Z={outgoing:function(ad,ae,ac){aa.call(this,ad);if(ac)ac()},destroy:function(){if(ab){ab.parentNode.removeChild(ab);ab=null}},onDOMReady:function(){X=
j(Y.remote);if(Y.isHost){T(Y.props,{src:P(Y.remote,{xdm_e:j(p.href),xdm_c:Y.channel,xdm_p:5}),name:U+Y.channel+"_provider"});ab=A(Y);ab.fn=function(ac){delete ab.fn;aa=ac;K(function(){Z.up.callback(true)},0);return function(ad){Z.up.incoming(ad,X)}}}else{if(d.referrer&&j(d.referrer)!=S.xdm_e)N.top.location=S.xdm_e;aa=N.frameElement.fn(function(ac){Z.up.incoming(ac,X)});Z.up.callback(true)}},init:function(){G(Z.onDOMReady,Z)}}};o.stack.NameTransport=function(ab){function af(al){var ak=ab.remoteHelper+
(ae?"#_3":"#_2")+ab.channel;ai.contentWindow.sendMessage(al,ak)}function ad(){if(ae){if(++ag===2||!ae)ac.up.callback(true)}else{af("ready");ac.up.callback(true)}}function aj(ak){ac.up.incoming(ak,Y)}function Z(){if(ah)K(function(){ah(true)},0)}var ac;var ae;var ai;var aa;var ag;var ah;var Y;var X;return ac={outgoing:function(al,am,ak){ah=ak;af(al)},destroy:function(){ai.parentNode.removeChild(ai);ai=null;if(ae){aa.parentNode.removeChild(aa);aa=null}},onDOMReady:function(){ae=ab.isHost;ag=0;Y=j(ab.remote);
ab.local=B(ab.local);if(ae){o.Fn.set(ab.channel,function(al){if(ae&&al==="ready"){o.Fn.set(ab.channel,aj);ad()}});X=P(ab.remote,{xdm_e:ab.local,xdm_c:ab.channel,xdm_p:2});T(ab.props,{src:X+"#"+ab.channel,name:U+ab.channel+"_provider"});aa=A(ab)}else{ab.remoteHelper=ab.remote;o.Fn.set(ab.channel,aj)}var ak=function(){var al=ai||this;x(al,"load",ak);o.Fn.set(ab.channel+"_load",Z);(function am(){if(typeof al.contentWindow.sendMessage=="function")ad();else K(am,50)})()};ai=A({props:{src:ab.local+"#_4"+
ab.channel},onLoad:ak})},init:function(){G(ac.onDOMReady,ac)}}};o.stack.HashTransport=function(Z){function ak(ao){if(!al)return;var an=Z.remote+"#"+am++ +"_"+ao;(af||!ag?al.contentWindow:al).location=an}function ae(an){ad=an;ac.up.incoming(ad.substring(ad.indexOf("_")+1),Y)}function aj(){if(!ab)return;var an=ab.location.href;var ap="";var ao=an.indexOf("#");if(ao!=-1)ap=an.substring(ao);if(ap&&ap!=ad)ae(ap)}function ai(){aa=setInterval(aj,X)}var ac;var ah=this;var af;var aa;var X;var ad;var am;var ab;
var al;var ag;var Y;return ac={outgoing:function(an,ao){ak(an)},destroy:function(){N.clearInterval(aa);if(af||!ag)al.parentNode.removeChild(al);al=null},onDOMReady:function(){af=Z.isHost;X=Z.interval;ad="#"+Z.channel;am=0;ag=Z.useParent;Y=j(Z.remote);if(af){T(Z.props,{src:Z.remote,name:U+Z.channel+"_provider"});if(ag)Z.onLoad=function(){ab=N;ai();ac.up.callback(true)};else{var ap=0;var an=Z.delay/50;(function ao(){if(++ap>an)throw new Error("Unable to reference listenerwindow");try{ab=al.contentWindow.frames[U+
Z.channel+"_consumer"]}catch(aq){}if(ab){ai();ac.up.callback(true)}else K(ao,50)})()}al=A(Z)}else{ab=N;ai();if(ag){al=parent;ac.up.callback(true)}else{T(Z,{props:{src:Z.remote+"#"+Z.channel+new Date,name:U+Z.channel+"_consumer"},onLoad:function(){ac.up.callback(true)}});al=A(Z)}}},init:function(){G(ac.onDOMReady,ac)}}};o.stack.ReliableBehavior=function(Y){var aa;var ac;var ab=0;var X=0;var Z="";return aa={incoming:function(af,ad){var ae=af.indexOf("_");var ag=af.substring(0,ae).split(",");af=af.substring(ae+
1);if(ag[0]==ab){Z="";if(ac)ac(true)}if(af.length>0){aa.down.outgoing(ag[1]+","+ab+"_"+Z,ad);if(X!=ag[1]){X=ag[1];aa.up.incoming(af,ad)}}},outgoing:function(af,ad,ae){Z=af;ac=ae;aa.down.outgoing(X+","+ ++ab+"_"+af,ad)}}};o.stack.QueueBehavior=function(Z){function ae(){if(Z.remove&&ad.length===0){w(ac);return}if(ag||ad.length===0||af)return;ag=true;var ah=ad.shift();ac.down.outgoing(ah.data,ah.origin,function(ai){ag=false;if(ah.callback)K(function(){ah.callback(ai)},0);ae()})}var ac;var ad=[];var ag=
true;var aa="";var af;var X=0;var Y=false;var ab=false;return ac={init:function(){if(t(Z))Z={};if(Z.maxLength){X=Z.maxLength;ab=true}if(Z.lazy)Y=true;else ac.down.init()},callback:function(ai){ag=false;var ah=ac.up;ae();ah.callback(ai)},incoming:function(ak,ai){if(ab){var aj=ak.indexOf("_");var ah=parseInt(ak.substring(0,aj),10);aa+=ak.substring(aj+1);if(ah===0){if(Z.encode)aa=k(aa);ac.up.incoming(aa,ai);aa=""}}else ac.up.incoming(ak,ai)},outgoing:function(al,ai,ak){if(Z.encode)al=H(al);var ah=[];
var aj;if(ab){for(;al.length!==0;){aj=al.substring(0,X);al=al.substring(aj.length);ah.push(aj)}for(;aj=ah.shift();)ad.push({data:ah.length+"_"+aj,origin:ai,callback:ah.length===0?ak:null})}else ad.push({data:al,origin:ai,callback:ak});if(Y)ac.down.init();else ae()},destroy:function(){af=true;ac.down.destroy()}}};o.stack.VerifyBehavior=function(ab){function X(){aa=Math.random().toString(16).substring(2);ac.down.outgoing(aa)}var ac;var aa;var Y;var Z=false;return ac={incoming:function(af,ad){var ae=
af.indexOf("_");if(ae===-1)if(af===aa)ac.up.callback(true);else{if(!Y){Y=af;if(!ab.initiate)X();ac.down.outgoing(af)}}else if(af.substring(0,ae)===Y)ac.up.incoming(af.substring(ae+1),ad)},outgoing:function(af,ad,ae){ac.down.outgoing(aa+"_"+af,ad,ae)},callback:function(ad){if(ab.initiate)X()}}};o.stack.RpcBehavior=function(ad,Y){function X(ag){ag.jsonrpc="2.0";aa.down.outgoing(af.stringify(ag))}function ab(ag,ai){var ah=Array.prototype.slice;return function(){var aj=arguments.length;var al;var ak=
{method:ai};if(aj>0&&typeof arguments[aj-1]==="function"){if(aj>1&&typeof arguments[aj-2]==="function"){al={success:arguments[aj-2],error:arguments[aj-1]};ak.params=ah.call(arguments,0,aj-2)}else{al={success:arguments[aj-1]};ak.params=ah.call(arguments,0,aj-1)}ac[""+ ++ae]=al;ak.id=ae}else ak.params=ah.call(arguments,0);if(ag.namedParams&&ak.params.length===1)ak.params=ak.params[0];X(ak)}}function Z(an,am,ai,al){if(!ai){if(am)X({id:am,error:{code:-32601,message:"Procedure not found."}});return}var ak;
var ah;if(am){ak=function(ao){ak=q;X({id:am,result:ao})};ah=function(ao,ap){ah=q;var aq={id:am,error:{code:-32099,message:ao}};if(ap)aq.error.data=ap;X(aq)}}else ak=ah=q;if(!r(al))al=[al];try{var ag=ai.method.apply(ai.scope,al.concat([ak,ah]));if(!t(ag))ak(ag)}catch(aj){ah(aj.message)}}var aa;var af=Y.serializer||O();var ae=0;var ac={};return aa={incoming:function(ah,ag){var ai=af.parse(ah);if(ai.method)if(Y.handle)Y.handle(ai,X);else Z(ai.method,ai.id,Y.local[ai.method],ai.params);else{var aj=ac[ai.id];
if(ai.error){if(aj.error)aj.error(ai.error)}else if(aj.success)aj.success(ai.result);delete ac[ai.id]}},init:function(){if(Y.remote)for(var ag in Y.remote)if(Y.remote.hasOwnProperty(ag))ad[ag]=ab(Y.remote[ag],ag);aa.down.init()},destroy:function(){for(var ag in Y.remote)if(Y.remote.hasOwnProperty(ag)&&ad.hasOwnProperty(ag))delete ad[ag];aa.down.destroy()}}};b.easyXDM=o})(window,document,location,window.setTimeout,decodeURIComponent,encodeURIComponent);return easyXDM.noConflict("Kakao")}()},{}],10:[function(require,
module,exports){(function(process,global){!function(){var a$$2;var b$$3;var c$$2;var d$$2;!function(){var e$$0={};var f$$0={};a$$2=function(a,b,c){e$$0[a]={deps:b,callback:c}},d$$2=c$$2=b$$3=function(a){function c$$0(b){if("."!==b.charAt(0))return b;var c=b.split("/");var d=a.split("/").slice(0,-1);var e=0;for(var f=c.length;f>e;e++){var g=c[e];if(".."===g)d.pop();else{if("."===g)continue;d.push(g)}}return d.join("/")}if(d$$2._eak_seen=e$$0,f$$0[a])return f$$0[a];if(f$$0[a]={},!e$$0[a])throw new Error("Could not find module "+
a);var g$$0;var h=e$$0[a];var i=h.deps;var j=h.callback;var k=[];var l=0;for(var m=i.length;m>l;l++)"exports"===i[l]?k.push(g$$0={}):k.push(b$$3(c$$0(i[l])));var n=j.apply(this,k);return f$$0[a]=g$$0||n}}(),a$$2("promise/all",["./utils","exports"],function(a$$1,b$$2){function c$$1(a$$0){var b$$1=this;if(!d$$0(a$$0))throw new TypeError("You must pass an array to all.");return new b$$1(function(b$$0,c$$0){function d(a){return function(b){f(a,b)}}function f(a,c){h[a]=c,0===--i&&b$$0(h)}var g;var h=[];
var i=a$$0.length;0===i&&b$$0([]);for(var j=0;j<a$$0.length;j++)g=a$$0[j],g&&e(g.then)?g.then(d(j),c$$0):f(j,g)})}var d$$0=a$$1.isArray;var e=a$$1.isFunction;b$$2.all=c$$1}),a$$2("promise/asap",["exports"],function(a$$0){function b$$0(){return function(){process.nextTick(e)}}function c$$0(){var a=0;var b=new i(e);var c=document.createTextNode("");return b.observe(c,{characterData:!0}),function(){c.data=a=++a%2}}function d$$0(){return function(){j.setTimeout(e,1)}}function e(){for(var a=0;a<k.length;a++){var b=
k[a];var c=b[0];var d=b[1];c(d)}k=[]}function f(a,b){var c=k.push([a,b]);1===c&&g()}var g;var h="undefined"!=typeof window?window:{};var i=h.MutationObserver||h.WebKitMutationObserver;var j="undefined"!=typeof global?global:void 0===this?window:this;var k=[];g="undefined"!=typeof process&&"[object process]"==={}.toString.call(process)?b$$0():i?c$$0():d$$0(),a$$0.asap=f}),a$$2("promise/config",["exports"],function(a$$0){function b$$0(a,b){return 2!==arguments.length?c[a]:(c[a]=b,void 0)}var c={instrument:!1};
a$$0.config=c,a$$0.configure=b$$0}),a$$2("promise/polyfill",["./promise","./utils","exports"],function(a$$1,b$$1,c){function d(){var a$$0;a$$0="undefined"!=typeof global?global:"undefined"!=typeof window&&window.document?window:self;var b$$0="Promise"in a$$0&&"resolve"in a$$0.Promise&&"reject"in a$$0.Promise&&"all"in a$$0.Promise&&"race"in a$$0.Promise&&function(){var b;return new a$$0.Promise(function(a){b=a}),f(b)}();b$$0||(a$$0.Promise=e)}var e=a$$1.Promise;var f=b$$1.isFunction;c.polyfill=d}),
a$$2("promise/promise",["./config","./utils","./all","./race","./resolve","./reject","./asap","exports"],function(a$$1,b$$1,c$$0,d$$1,e$$0,f$$0,g$$0,h$$0){function i$$0(a){if(!v(a))throw new TypeError("You must pass a resolver function as the first argument to the promise constructor");if(!(this instanceof i$$0))throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");this._subscribers=[],j$$0(a,this)}function j$$0(a$$0,
b){function c(a){o(b,a)}function d(a){q(b,a)}try{a$$0(c,d)}catch(e){d(e)}}function k(a,b,c,d){var e;var f;var g;var h;var i=v(c);if(i)try{e=c(d),g=!0}catch(j){h=!0,f=j}else e=d,g=!0;n(b,e)||(i&&g?o(b,e):h?q(b,f):a===D?o(b,e):a===E&&q(b,e))}function l(a,b,c,d){var e=a._subscribers;var f=e.length;e[f]=b,e[f+D]=c,e[f+E]=d}function m(a,b){var c;var d;var e=a._subscribers;var f=a._detail;for(var g=0;g<e.length;g+=3)c=e[g],d=e[g+b],k(b,c,d,f);a._subscribers=null}function n(a,b$$0){var c;var d$$0=null;try{if(a===
b$$0)throw new TypeError("A promises callback cannot return that same promise.");if(u(b$$0)&&(d$$0=b$$0.then,v(d$$0)))return d$$0.call(b$$0,function(d){return c?!0:(c=!0,b$$0!==d?o(a,d):p(a,d),void 0)},function(b){return c?!0:(c=!0,q(a,b),void 0)}),!0}catch(e){return c?!0:(q(a,e),!0)}return!1}function o(a,b){a===b?p(a,b):n(a,b)||p(a,b)}function p(a,b){a._state===B&&(a._state=C,a._detail=b,t.async(r,a))}function q(a,b){a._state===B&&(a._state=C,a._detail=b,t.async(s,a))}function r(a){m(a,a._state=
D)}function s(a){m(a,a._state=E)}var t=a$$1.config;var u=(a$$1.configure,b$$1.objectOrFunction);var v=b$$1.isFunction;var w=(b$$1.now,c$$0.all);var x=d$$1.race;var y=e$$0.resolve;var z=f$$0.reject;var A=g$$0.asap;t.async=A;var B=void 0;var C=0;var D=1;var E=2;i$$0.prototype={constructor:i$$0,_state:void 0,_detail:void 0,_subscribers:void 0,then:function(a,b){var c=this;var d=new this.constructor(function(){});if(this._state){var e=arguments;t.async(function(){k(c._state,d,e[c._state-1],c._detail)})}else l(this,
d,a,b);return d},"catch":function(a){return this.then(null,a)}},i$$0.all=w,i$$0.race=x,i$$0.resolve=y,i$$0.reject=z,h$$0.Promise=i$$0}),a$$2("promise/race",["./utils","exports"],function(a$$0,b$$1){function c$$0(a){var b$$0=this;if(!d$$0(a))throw new TypeError("You must pass an array to race.");return new b$$0(function(b,c){var d;for(var e=0;e<a.length;e++)d=a[e],d&&"function"==typeof d.then?d.then(b,c):b(d)})}var d$$0=a$$0.isArray;b$$1.race=c$$0}),a$$2("promise/reject",["exports"],function(a$$0){function b$$1(a){var b$$0=
this;return new b$$0(function(b,c){c(a)})}a$$0.reject=b$$1}),a$$2("promise/resolve",["exports"],function(a$$0){function b$$1(a){if(a&&"object"==typeof a&&a.constructor===this)return a;var b$$0=this;return new b$$0(function(b){b(a)})}a$$0.resolve=b$$1}),a$$2("promise/utils",["exports"],function(a$$0){function b(a){return c(a)||"object"==typeof a&&null!==a}function c(a){return"function"==typeof a}function d(a){return"[object Array]"===Object.prototype.toString.call(a)}var e=Date.now||function(){return(new Date).getTime()};
a$$0.objectOrFunction=b,a$$0.isFunction=c,a$$0.isArray=d,a$$0.now=e}),b$$3("promise/polyfill").polyfill()}()}).call(this,require("1YiZ5S"),typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"1YiZ5S":1}]},{},[5]);
/*-----/js/m/kakao-1.0.8.min.js / end -----*/

/*-----/js/log/clickLog.js / start -----*/
var RecommendClickLog = {
				params : {},
        generateGuid : function () {
    			var result, i, j;
    			result = '';
    			for(j=0; j<32; j++) {
    				if( j == 8 || j == 12|| j == 16|| j == 20)
    					result = result + '-';
    				i = Math.floor(Math.random()*16).toString(16).toUpperCase();
    				result = result + i;
    			}
    			return result;
    		},
        checkLogin : function(){
          try{
              this.params.msrl = g_msrl ? g_msrl : 0;

              if(bugs.cookie.get("searchLogSessionId") == ""){
                this.params.cu_id = this.generateGuid();
                var uagent = navigator.userAgent.toLocaleLowerCase();
                      if(uagent.search("chrome")){
                        var dt = new Date();
                        dt.setDate(dt.getDate()+1);
                        document.cookie = "searchLogSessionId=" + this.params.cu_id+";path=/;domain="+document.domain+";expires="+dt.toGMTString();
                      }else{
                        document.cookie = "searchLogSessionId=" + this.params.cu_id+";path=/;domain="+document.domain+";";
                      }
              }else{
                this.params.cu_id = bugs.cookie.get("searchLogSessionId");
              }
          }catch(e){}
        },

        setClientInfo : function(){
          this.checkLogin();
          this.params.client_info = "cu_id="+this.params.cu_id+"&client_device=web";
        },

        setDefaultValue : function(){
          this.params.card_type = "";
          this.params.item_type = "";
          this.params.seed_item_id = "";
          this.params.item_id = "";
          this.params.action_type = "";
          this.params.service_type = "";

					this.params.target_item_type = "";	// 추천클릭로그 개편으로 추가
					this.params.target_item_id = "";
					this.params.location = "";

					this.params.page = "0";
          this.params.sendTrigger = false;
          this.setClientInfo();
        },
				setNewestInit: function(location){
					this.setDefaultValue();
					this.params.service_type = 'recent_music';
					this.params.card_type = 'RECENT_AGENCY';
					this.params.location = location;
				},
				sendWithItemLog: function(item_type, item_id, action_type){
					this.params.sendTrigger = true;
					this.params.item_type = item_type;
					this.params.item_id = item_id;
					this.params.action_type = action_type;

					for(key in this.params){
						if(this.params.sendTrigger === false)
							return;

						if ( (key === 'card_type' || key === 'item_type') && this.params[key] === '' ){
								return;
						} else if(this.params[key] === '0'){
								this.params[key] = '';
						}
					}
					this.send();
					this.setSendLog(false);
				},
        setSendLog: function (sendLog){ // 최종적으로 로그 보낼지 여부
          this.params.sendTrigger = sendLog;
        },
        setItemID : function(item_id){
          this.params.item_id = item_id;
        },
        setCardType : function(card_type){
          this.params.card_type = card_type;
        },
        setServiceType : function(service_type){
          this.params.service_type = service_type;
        },
				setLocation : function(location){
					this.params.location = location;
				},
				setActionParam : function(item_type,sendTrigger,seed_item_id,item_id){
          this.params.item_type = item_type;
          this.params.sendTrigger = sendTrigger;
          this.params.seed_item_id = seed_item_id;
          this.params.item_id = item_id;
        },
				setAlbumParam : function(item_type,sendLog,seed_item_id,item_id){
          this.params.item_type = album;
          this.params.sendTrigger = sendLog;
          this.params.seed_item_id = seed_item_id;
          this.params.item_id = item_id;
        },
				setArtistParam : function(item_type,sendLog,seed_item_id,item_id){
          this.params.item_type = item_type;
          this.params.sendTrigger = sendLog;
          this.params.seed_item_id = seed_item_id;
          this.params.item_id = item_id;
        },
				setEtcContextParams : function(item_type,sendLog,seed_item_id,item_id,target_item_type, target_item_id){
          this.params.item_type = item_type;
          this.params.sendTrigger = sendLog;
          this.params.seed_item_id = seed_item_id;
          this.params.item_id = item_id;
					this.params.target_item_type = target_item_type;
          this.params.target_item_id = target_item_id;
        },
				setContextMenuLog : function(sendTrigger, page, seed_item_id, item_id, action_type, click_item, location){
					this.params.location = location;

					if (action_type == 'info'){
							var idx = this.getClickItemIdx(click_item,page);
							item_id = item_id+":"+idx;
							this.sendLog(sendTrigger, 'track', seed_item_id, item_id, action_type);
					}
					// 내 앨범, 다운로드
					else if(action_type == 'my_album_multi'){
							var item_id = this.getTrackChecked(page,'album');
							this.sendLog(sendTrigger, 'track', seed_item_id, item_id, 'my_album');
					}
					else if(action_type == 'play_multi' || action_type == 'playlist_multi' ||
									action_type == 'myalbum_multi' || action_type == 'download_multi' ){
							var item_id = this.getTrackChecked(page,'play');

							if(item_id !='')
								this.sendLog(sendTrigger, 'track', seed_item_id, item_id, action_type.replace('_multi',''));
							else
								 return;
					}
					// 싱글 트랙 플레이
					else if (action_type == 'play' || action_type == 'playlist' ||
										 action_type == 'mv' || action_type == 'download' || action_type == 'my_album_single'){
							var idx = this.getClickItemIdx(click_item,page);
							item_id = item_id+":"+idx;

							if (action_type == 'my_album_single')
								action_type = 'my_album';

							this.sendLog(sendTrigger, 'track', seed_item_id, item_id, action_type);
					}
					// 전체 듣기, 전체듣기 교체
					else if(action_type == 'listenAll' || action_type == 'listenAllChange'){
						var item_id = this.getTrackChecked(page,'listenAll');
						this.sendLog(sendTrigger, 'track', seed_item_id, item_id, 'play');
					}
					// 기타 기능
					else if(action_type == 'etc'){
						var idx = this.getClickItemIdx(click_item,page);
						item_id = item_id+":"+idx;

						this.params.sendTrigger = sendTrigger;
						this.params.item_type = 'track';
						this.params.seed_item_id = seed_item_id;
						this.params.item_id = item_id;

					} else if(action_type == 'm4u_etc'){
						this.params.sendTrigger = sendTrigger;
						this.params.item_type = 'track';
						this.params.seed_item_id = seed_item_id;
						this.params.item_id = item_id;
					}

					click_item = '';
				},
        setTrackParam : function(sendTrigger, page, seed_item_id, item_id, action_type, click_item){

					this.params.target_item_id = '';
					this.params.target_item_type = '';

					if (action_type == 'info'){
							var idx = this.getClickItemIdx(click_item,page);
							item_id = item_id+":"+idx;
							this.sendLog(sendTrigger, 'track', seed_item_id, item_id, action_type);
					}
					// 내 앨범, 다운로드
					// else if(action_type == 'my_album_multi'){
					// 		var item_id = this.getTrackChecked(page,'album');
					// 		this.sendLog(sendTrigger, 'track', seed_item_id, item_id, 'my_album');
					// }
					else if(action_type == 'play_multi' || action_type == 'playlist_multi' ||
									action_type == 'my_album_multi' || action_type == 'download_multi' ){
							var item_id = this.getTrackChecked(page,'play');
							if(item_id !='')
								this.sendLog(sendTrigger, 'track', seed_item_id, item_id, action_type.replace('_multi',''));
							else
								 return;
					}
					// 싱글 트랙 플레이
					else if (action_type == 'play' || action_type == 'playlist' ||
									   action_type == 'mv' || action_type == 'download' || action_type == 'my_album_single'){
							var idx = this.getClickItemIdx(click_item,page);
							item_id = item_id+":"+idx;

							if (action_type == 'my_album_single')
								action_type = 'my_album';

							this.sendLog(sendTrigger, 'track', seed_item_id, item_id, action_type);
					}
					// 전체 듣기, 전체듣기 교체
					else if(action_type == 'listenAll' || action_type == 'listenAllChange'){
						var item_id = this.getTrackChecked(page,'listenAll');
						this.sendLog(sendTrigger, 'track', seed_item_id, item_id, 'play');
					}
					// 기타 기능
					else if(action_type == 'etc'){
						var idx = this.getClickItemIdx(click_item,page);
						item_id = item_id+":"+idx;

						this.params.sendTrigger = sendTrigger;
						this.params.item_type = 'track';
						this.params.seed_item_id = seed_item_id;
						this.params.item_id = item_id;
					} else if(action_type == 'm4u_etc'){
						this.params.sendTrigger = sendTrigger;
						this.params.item_type = 'track';
						this.params.seed_item_id = seed_item_id;
						this.params.item_id = item_id;
					}

					for(key in this.params){
						if(this.params[key] === '0'){
								this.params[key] = '';
						}
					}

					click_item = '';
        },

				setTrackParamForTarget : function(sendTrigger, page, seed_item_id, item_id, action_type, click_item, target_item_type, target_item_id){
					if (action_type == 'info'){
							var idx = this.getClickItemIdx(click_item,page);
							item_id = item_id+":"+idx;

							this.sendLogForTarget(sendTrigger, 'track', seed_item_id, item_id, action_type, target_item_type, target_item_id);
					}
					// 내 앨범, 다운로드
					else if(action_type == 'my_album_multi'){
							var item_id = this.getTrackChecked(page,'album');
							this.sendLog(sendTrigger, 'track', seed_item_id, item_id, 'my_album');
					}
					else if(action_type == 'play_multi' || action_type == 'playlist_multi' ||
									action_type == 'my_album_multi' || action_type == 'download_multi' ){
							var item_id = this.getTrackChecked(page,'play');

							if(item_id !='')
								this.sendLog(sendTrigger, 'track', seed_item_id, item_id, action_type.replace('_multi',''));
							else
								 return;
					}
					// 싱글 트랙 플레이
					else if (action_type == 'play' || action_type == 'playlist' ||
									   action_type == 'mv' || action_type == 'download' || action_type == 'my_album_single'){
							var idx = this.getClickItemIdx(click_item,page);
							item_id = item_id+":"+idx;

							if (action_type == 'my_album_single')
								action_type = 'my_album';

							this.sendLogForTarget(sendTrigger, 'track', seed_item_id, item_id, action_type, target_item_type, target_item_id);
							// this.sendLog(sendTrigger, 'track', seed_item_id, item_id, action_type);
					}
					// 전체 듣기, 전체듣기 교체
					else if(action_type == 'listenAll' || action_type == 'listenAllChange'){
						var item_id = this.getTrackChecked(page,'listenAll');
						this.sendLog(sendTrigger, 'track', seed_item_id, item_id, 'play');
					}
					// 기타 기능
					else if(action_type == 'etc'){
						var idx = this.getClickItemIdx(click_item,page);
						item_id = item_id+":"+idx;

						this.params.sendTrigger = sendTrigger;
						this.params.item_type = 'track';
						this.params.seed_item_id = seed_item_id;
						this.params.item_id = item_id;

					} else if(action_type == 'm4u_etc'){
						this.params.sendTrigger = sendTrigger;
						this.params.item_type = 'track';
						this.params.seed_item_id = seed_item_id;
						this.params.item_id = item_id;
					}

					if(target_item_type != ''){
						this.params.target_item_type = target_item_type;
						this.params.target_item_id = target_item_id;
					} else
						return;

					click_item = '';
        },

				getTrackChecked : function(page, type){
					this.params.page = page;
					var item_id = "";

					if(page !=''){
						if(type == 'listenAll'){
							var chks = $("table.list.trackList > tbody > tr input:hidden[name=_isStream]:not(:disabled)");
						} else{
							var chks = $("table.list.trackList > tbody > tr:has(input:hidden[name=_isStream]:not(:disabled)) > td >  input:checkbox:checked:not(:disabled)");
						}
						var item_id = this.makeTrackItemIdStr(chks);
					}

					return item_id;
				},
				getClickItemIdx: function(item,page){
					var page = parseInt(page);
					var itemIdx = '';
					var itemIdx = item.closest('tr').prevAll().length;

					if(page >= 2){
						itemIdx = itemIdx + 10*(page-1);
					}
					return itemIdx;
				},
				makeTrackItemIdStr : function(items){
					var item_id = "";
					var page = 	parseInt(this.params.page);

					try{
						var startNum = "0";
						startNum = parseInt(startNum);

						items.each(function(idx){
							if(idx > 0){
								item_id +="|";
							}
							var $tr = $(this).parents("tr");

							var itemIdx = (startNum + parseInt($tr.index()));
							if(page >= 2){
								itemIdx = itemIdx + 10*(page-1);
							}

							item_id += $tr.find("input[name=_isStream]").val()+":"+itemIdx;
							itemIdx = itemIdx +1;
						});
					}catch(e){};
					return item_id;
				},
				sendMoreActionLog : function(action_type){
				this.params.action_type = action_type;
				try{
					if(this.params.sendTrigger == true
						&& (this.params.card_type != '' || this.params.card_type != null)
						&& (this.params.item_id != '' || this.params.item_id != null)
						&& (this.params.item_type != '' || this.params.item_type != null)
					){

						$.ajax({
								url :  g_urlAjax + "/ajax/recommend/click/log",
									data : this.params,
									type: 'POST',
									dataType: "json",
									cache : false
								});
							}
						}catch(e){
							console.log("Log Ajax error:"+e);
						}
					this.setSendLog(false);
				},
        sendLog : function(sendTrigger, item_type, seed_item_id, item_id, action_type){
					this.params.sendTrigger = sendTrigger;
					this.params.item_type = item_type;
					this.params.seed_item_id = seed_item_id;
					this.params.item_id = item_id;
					this.params.action_type = action_type;

          if(action_type !='')
              this.params.action_type = action_type;

					if(seed_item_id === '0') this.params.seed_item_id = '';

          try{
            if(this.params.sendTrigger == true
							&& (this.params.card_type != '' || this.params.card_type != null)
							&& (this.params.item_id != '' || this.params.item_id != null)
							&& (this.params.item_type != '' || this.params.item_type != null)

						){
              $.ajax({
                  url :  g_urlAjax + "/ajax/recommend/click/log",
                    data : this.params,
                    type: 'POST',
                    dataType: "json",
                    cache : false
                  });
                }
              }catch(e){
                console.log("Log Ajax error:"+e);
              }
            this.setSendLog(false);
        },
				sendLogForTarget : function(sendTrigger, item_type, seed_item_id, item_id, action_type,target_type,target_id){
					this.params.sendTrigger = sendTrigger;
					this.params.item_type = item_type;
					this.params.seed_item_id = seed_item_id;
					this.params.item_id = item_id;
					this.params.action_type = action_type;
					this.params.target_item_id = target_id;
					this.params.target_item_type = target_type;

					if(action_type !=''){
							this.params.action_type = action_type;
					}

					for(key in this.params){
						if(this.params[key] === '0'){
								this.params[key] = '';
						}
					}

					try{
						if(this.params.sendTrigger == true
							&& (this.params.card_type != '' || this.params.card_type != null)
							&& (this.params.item_id != '' || this.params.item_id != null)
							&& (this.params.item_type != '' || this.params.item_type != null)
						){
							$.ajax({
									url :  g_urlAjax + "/ajax/recommend/click/log",
										data : this.params,
										type: 'POST',
										dataType: "json",
										cache : false
									});
								}
							}catch(e){
								console.log("Log Ajax error:"+e);
							}
						this.setSendLog(false);
						this.params.target_item_id = '';
						this.params.target_item_type = '';
				},
				sendLogParam : function(item_type, seed_item_id, item_id, action_type){
          this.params.item_type = item_type;
          this.setClientInfo();

					if(item_id=='listenAll'){
					}

					if(item_id === '' && action_type == "my_album"){
						return;
					}
					if(item_id === 'listen' && this.params.item_id == ''){
						return;
					}
          if(seed_item_id !=''){
              this.params.seed_item_id = seed_item_id;
          }
          if(item_id !='' && item_id != 'listen'){
              this.params.item_id = item_id;
          }
          if(action_type !=''){
              this.params.action_type = action_type;
          }

          try{
            if(this.params.sendTrigger == true
							 && (this.params.card_type != '' || this.params.card_type != null)
							 && (this.params.item_id != '' || this.params.item_id != null)
							 && (this.params.item_type != '' || this.params.item_type != null)
						 ){
							for(key in this.params)

              $.ajax({
                    url :  g_urlAjax + "/ajax/recommend/click/log",
                    data : this.params,
                    type: 'POST',
                    dataType: "json",
                    cache : false
                  });
                }
              }catch(e){
                console.log("Log Ajax error:"+e);
              }

            this.setSendLog(false);
						this.params.item_id = '';
        },
				sendLogParams : function(params){

					// set value to this.params
					for (getKey in params){
						for(thisKey in this.params){
							if(thisKey === getKey)
								this.params[thisKey] = params[getKey];
						}
					}

				for(key in this.params){
					if(this.params.sendTrigger === false || this.params[key] === 'undefined')
						return;

					if ( (key === 'card_type' || key === 'item_type') && this.params[key] === '' ){
							return;
					} else if(this.params[key] === '0'){
							this.params[key] = '';
					}
				}

				// send & reset
				this.send();
				this.setSendLog(false);

      	},
				send : function(){
			  	try{
			      $.ajax({
			            url :  g_urlAjax + "/ajax/recommend/click/log",
			            data : this.params,
			            type: 'POST',
			            dataType: "json",
			            cache : false
			          });
			      } catch(e){
			        console.log("Log Ajax error:"+e);
			      }
			},
			// params에 해당하는 값만 제외하고 모두 지웁니다.
			clearParams : function(params){
				for(param in params){
				}
			}
		};

/*-----/js/log/clickLog.js / end -----*/

/*-----/js/me/playlist.js / start -----*/
	if ("undefined" == typeof playlists)
	{
		playlists = {
			menu : "",
			temp_tracks : "",
			is_new_album : false,
			makePopup : "",
			newAlbumLayer : null,
			updateAlbumLayer : null,
			layerAlert : null,
			updateLayer : null,
			isVisible : false,
			isPlayer : (window.location.href.indexOf("/newPlayer") > -1 || window.location.href.indexOf("/newRadio") > -1) ? true : false,
			lastCaller : null,
			showLayerAlert : function(msg){
				if(this.isPlayer){
					if(playlists.layerAlert == null){
						playlists.layerAlert = new bugs.ui.alert("", {css : "layerAdultNotice", modal:false}); 
					}
					
					playlists.layerAlert.show(msg.replace(/\n/g,"<br/>")).layer.css("z-index",1002);
				}else{
					alert(msg);
				}
				
			},
		    add : function (playlist_id, track_ids, callbackTrue, callbackFalse)
		    {
				//track_ids 
		    	var splitIDs = track_ids.split(",");
		    	if (splitIDs.length > 1000) {
					playlists.showLayerAlert("최대 1000곡까지 내 앨범에 담을 수 있습니다.\n선택한 곡 수 확인 후 다시 시도해 주세요.");
//					playlists.playlistLayerHide();
					return;
		    	}
				try{
					$.ajax({
                            url : g_urlMe+"/library/myalbum/"+playlist_id+"/append/tracks",
                            type : "post",
                            data : {"ids": playlists.uniqueArr(track_ids.split(",")).join(",")},
                            success : function(data) {
                                if (data.result) {
                                    if(typeof(callbackTrue) == "string"){
                                        eval(callbackTrue);

                                    }else if(typeof(callbackTrue) == "function"){
                                        try{
                                            callbackTrue(data.rowcount);
                                        }catch(e){
                                        }
                                    }
                                }else {
                                    if(data.error_type == "NOT_LOGGED"){
                                        bugs.ui.showLoginLayer();
                                    }else if(data.error_type == "DB_ERROR"){
                                        playlists.showLayerAlert("내 앨범에 담지 못했습니다.\n잠시 후 다시 담아 주세요.");
                                    }

                                    if(typeof(callbackFalse) == "string"){
                                        eval(callbackFalse);
                                    }
                                    else if(typeof(callbackFalse) == "function"){
                                        callbackFalse(data);
                                    }
                                }
                            }
					});
				} catch (e) {
					if(typeof(callbackFalse) == "string") eval(callbackFalse);
					else if(typeof(callbackFalse) == "function") callbackFalse(0);
				}
		    },
		    updatePlaylistTrack : function (playlist_id, playlist_track_ids, version, page, size, callbackTrue, callbackFalse)
		    {
				try{
					$.ajax({
                        url : g_urlMe+"/library/myalbum/"+playlist_id+"/track/update",
                        type : "post",
                        data :{"ids": playlist_track_ids, "page" : page || 1, "size" : size || 0, "version" : version},
                        success : function(data) {
                            if (data.result) {
                                callbackTrue(data);
                            }else{
                                if(data.error_type == "NOT_LOGGED")	{
                                    bugs.ui.showLoginLayer();
                                }else if(data.error_type == "INVALID_DATA"){
                                    alert("다른 기기에서 편집한 목록으로 내 앨범이 업데이트되어 지금 변경한 내용을 저장할 수 없습니다.",function () {
                                        location.reload();
                                    });
                                }else{
                                    callbackFalse(data);
                                }
                            }
					    }
					});
				} catch (e) {
					callbackFalse();
				}
		    },
		    deletes_playlistTrackId : function (playlist_id, playlist_track_ids, callbackTrue, callbackFalse)
		    {
				try{
				$.ajax({
                    url : g_urlMe+"/library/myalbum/"+playlist_id+"/delete/tracks",
                    type : "post",
                    data : {"ids": playlist_track_ids},
                    success : function(data) {
                        if (data.result) {
                            if (typeof(callbackTrue) == "string") eval(callbackTrue);
                            else if (typeof(callbackTrue) == "function") callbackTrue(data);
                        }
                        else {
                            if (data.error_type == "NOT_LOGGED") {
                                bugs.ui.showLoginLayer();
                            } else {
                                if (typeof(callbackFalse) == "string") eval(callbackFalse);
                                else if (typeof(callbackFalse) == "function") callbackFalse(data);
                            }
                        }
                    }
				});
				} catch (e) {
					if(typeof(callbackFalse) == "string") eval(callbackFalse);
					else if(typeof(callbackFalse) == "function") callbackFalse();
				}
		    },
		    deletePlaylist : function (idArr, callbackTrue, callbackFalse)
		    {
		    	var url = g_urlMe+"/library/myalbum/delete/albums";
				try{
					$.getJSON(url, {ids:idArr.join(",")}, function(data) {
						if (data.result) {
							if(typeof(callbackTrue) == "string") eval(callbackTrue);
							else if(typeof(callbackTrue) == "function") callbackTrue(data);
							
							playlists.resetPlaylist();
						}
						else {
							if(data.error_type == "NOT_LOGGED"){
								bugs.ui.showLoginLayer();
								return;
							}
							
							if(typeof(callbackFalse) == "string") eval(callbackFalse);
							else if(typeof(callbackFalse) == "function") callbackFalse(data);
						}
					});
				} catch (e) {
					if(typeof(callbackFalse) == "string") eval(callbackFalse);
					else if(typeof(callbackFalse) == "function") callbackFalse();
				}
		    },
		    deletePlaylists : function (msrls, playlist_ids, callbackTrue, callbackFalse)
		    {
				try{
					$.getJSON(g_urlPlaylists+"/delete/playlists", { msrls : msrls, playlist_ids : playlist_ids }, function(data) {
						if (data)	callbackTrue();
						else	callbackFalse();
					});
					} catch (e) {
						callbackFalse();
					}
		    },
		    getHost : function (){
		    	if (location.href.indexOf(g_urlMusic) != -1)
		    		return g_urlMusic;
		    	else if (location.href.indexOf(g_urlSearch) != -1)
		    		return g_urlSearch;
		    	else //if (location.href.indexOf(g_urlWww ) != -1)
		    		return g_urlMusic; // g_urlWww ;
		    },

			resetPlaylist : function (callBack)
		    {
		    	
				var url = g_urlMe+"/library/myalbum/list";
				$.get(url, {decorator:"blank", isLayerYN : "Y"},  	
		        	function (html) {
		    			$("#track2playlist").children().remove().end().append(html);
		    			if(typeof callBack == "function"){
		    				callBack();
		    			}
		      		}
		    	);
		    },
		    
		    
		    updatePlaylist : function (idArr, version, page, size)
		    {
		        var idArrStr = idArr.join(",");
				var url = g_urlMe+"/library/myalbum/update";
		    	idArr.reverse();//기존에 노출할때 내림차순이어서..reverse처리
				$.ajax({
					type: 'POST',
					url : url,
					data: {ids : idArrStr, page : page, version : version, size : size || ""},
					success : function(data) {
						if(data.result){
							alert("저장되었습니다.",function () {
                                location.reload();
                            });
							// bugs.music.myAlbumList.resetGnbMyAlbumList();
						}else{
							if(data.error_type == "NOT_LOGGED") {
                                bugs.ui.showLoginLayer();
                            }else if(data.error_type == "INVALID_DATA"){
                                    alert("다른 기기에서 편집한 목록으로 내 앨범이 업데이트되어 지금 변경한 내용을 저장할 수 없습니다.",function () {
                                        location.reload();
                                    });
							}else{
                                alert("저장하지 못했습니다.\n다시 시도해주세요.");
							}
						}
					}.bind(this),
					error : function(error) {
						alert("저장하지 못했습니다.\n다시 시도해주세요.");
					},
					dataType : "JSON",
					cache : false
				});
		    },
		    make2 : function(type){
		    	playlists.make(null,type);
		    },
		    make : function (successCallback, fromType)
		    {	
		    	if(!g_isLogged){
		    		bugs.ui.showLoginLayer();
		    		return;
		    	}
		    	
		    	var editLayer = $("#createMyAlbumLayer");
		    	if(document.location.href.indexOf("/newPlayer") > -1 || document.location.href.indexOf("/newRadio") > -1 ){
		    		editLayer.addClass("player");
		    	}else{
                    editLayer.removeClass("player");
                }
    			var titleObj = $("#createMyAlbumLayerTitle");
    			var titleRemainObj = $("#createMyAlbumLayerTitleRemain");
                $("#createMyAlbumLayerHeader").text("내 앨범 만들기");
                $("#createMyAlbumLayerLegend").text("내 앨범 만들기");
    			if(playlists.newAlbumLayer != null){
		    		titleObj.val("");
		    	}else{
		    		playlists.newAlbumLayer = editLayer;
		    	}
    			var nowdate = new Date();
    			var dTitle = document.title;
    			var pageUrl = document.location.href;
    			var caller = $(playlists.lastCaller);
    			if(playlists.lastCaller != null && typeof caller.attr("track_title") != "undefined" && caller.attr("track_title") != ""){
    				dTitle = $.trim(caller.attr("track_title").replace(/(\\\/)/g,"/").replace(/\\\'/g,"'").replace(/\\\"/g,'"').replace(/(\\\\)/g,"\\").replace(/(\n|\t)/g,"").replace(/( - 벅스)/,""));
    			}else if(playlists.lastCaller != null && typeof caller.attr("album_title") != "undefined" && caller.attr("album_title") != ""){
    				dTitle = $.trim(caller.attr("album_title").replace(/(\\\/)/g,"/").replace(/\\\'/g,"'").replace(/\\\"/g,'"').replace(/(\\\\)/g,"\\").replace(/(\n|\t)/g,"").replace(/( - 벅스)/,""));
    				 
    			}else if(pageUrl.indexOf("user/library/myalbum/") > -1 || (typeof fromType != "undefined" && fromType == "GNB") ){
    				dTitle = "내 앨범";
    			}else if((typeof fromType != "undefined" && fromType == "PLAYER")){
    				dTitle = "재생목록";
    			}else{
    				dTitle = $.trim(dTitle.replace(/(\\\/)/g,"/").replace(/\\\'/g,"'").replace(/\\\"/g,'"').replace(/(\\\\)/g,"\\").replace(/(\n|\t)/g,"").replace(/( - 벅스)/,""));
    			}
		        titleObj.val(dTitle+"("+nowdate.getFullYear() + "." + (nowdate.getMonth()+1) + "." + nowdate.getDate()+")");
		    	
    			
		    	titleObj.unbind("keyup");
    			titleObj.bind("keyup",function(){
    				playlists.checkTitleLength(titleObj,titleRemainObj);
    			});
    			
    			playlists.checkTitleLength(titleObj,titleRemainObj);
		    	
		    	if(!playlists.makePopup){
		    		playlists.makePopup =  new bugs.ui.popup(playlists.newAlbumLayer, {
		    			caller : playlists.lastCaller,
		    			onOk : function() {
				    		playlists.makeNewPlaylist(successCallback);
				    		return false;
			    		},
			    		onCancel : function() {
			    			playlists.lastCaller = null;
			    			playlists.isVisible = false;
			    			return true;
			    		},
			    		onClose : function() {
			    			playlists.lastCaller = null;
			    			playlists.isVisible = false;
			    			return true;
			    		}
		    		});
		    	}
		    	playlists.isVisible = true;
		    	playlists.makePopup.show().layer.css("z-index",1001);
		    	bugs.layerFocusNavi.add(playlists.makePopup.layer, playlists.lastCaller, function(){playlists.makePopup.hide()});
		 
		    },
		    makeNewPlaylist : function (successCallback)
		    {
		        var titleObj = $("#createMyAlbumLayerTitle");
		    	if (titleObj.val().length > 100){
		    		playlists.showLayerAlert("제목이 100자를 초과했습니다.");
		    		return;
		    	}
		    		
		    	if (bugs.utils.trim(titleObj.val()) == "" || bugs.utils.stripTag(bugs.utils.trim(titleObj.val())) == "") {
		    		playlists.showLayerAlert("제목을 입력해주세요.");
					return;
		    	}
		    	
		    	var title = titleObj.val();
		    	if($.trim(title)){
		    		title= title.replace(/(<|>);/g, function (strMatch, p1){	return (p1 == "<")? "&lt;" : "&gt;"; });
		    	}

		    	$.post(g_urlMe+"/library/myalbum/create", 
		    		{"title" : title}, function(data) {
		    	    // console.log(data);
		    		if (data == null) {
                        alert("잠시 후 다시 시도해 주세요.");
                        return;
                    }else if(data.result == null || data.result.playlist_id <= 0){
		    		    alert(data.ret_msg);
                    }else{
		    			if(playlists.temp_tracks){
		    				playlists.addPlaylist(data.result.playlist_id ,
		    										playlists.temp_tracks, 
		    										function(){
									    					playlists.resetPlaylist(function(){
									    					playlists.makePopup.hide();
											    			playlists.isVisible = false;
											    			//앨범이 새로 만들어 졌거나 곡 추가가 되면 GNB 내 앨범 새로고침
											    			if(!playlists.isPlayer){
											    				bugs.music.myAlbumList.resetGnbMyAlbumList();
											    			}
									    				});
									    			});
		    			}else{
		    				playlists.resetPlaylist();
			    			playlists.makePopup.hide();
			    			playlists.isVisible = false;
			    			if(typeof successCallback == "function"){
			    				try{successCallback();}catch(e){};
			    			}
			    			//앨범이 새로 만들어 졌거나 곡 추가가 되면 GNB 내 앨범 새로고침
			    			if(!playlists.isPlayer){
			    				bugs.music.myAlbumList.resetGnbMyAlbumList();
			    			}
		    			}
					}
				},
				"json"
				);
		    	
		    },
		    update : function (playlist_id) {
		    	if(!g_isLogged){
		    		bugs.ui.showLoginLayer();
		    		return;
		    	}
		    	$.post(g_urlMe+"/library/myalbum/info/"+playlist_id, {}, function(data) {
		    		if (data) {
		    			var editLayer = $("#createMyAlbumLayer");
		    			if(document.location.href.indexOf("/newPlayer") > -1 || document.location.href.indexOf("/newPlayer") > -1 ){
				    		editLayer.addClass("player");
				    	}else{
                            editLayer.removeClass("player");
                        }
		    			var titleObj = $("#createMyAlbumLayerTitle");
		    			var titleRemainObj = $("#createMyAlbumLayerTitleRemain");
		    			$("#createMyAlbumLayerHeader").text("내 앨범 제목 수정");
		    			$("#createMyAlbumLayerLegend").text("내 앨범 제목 수정");

		    			titleObj.val(data.title);

		    			titleObj.unbind("keyup");
		    			titleObj.bind("keyup",function(){
		    				playlists.checkTitleLength(titleObj,titleRemainObj);
		    			});
		    			playlists.checkTitleLength(titleObj,titleRemainObj);

				    	if(!this.updateLayer){
				    		this.updateLayer = new bugs.ui.popup(editLayer, {
					    		onOk : function() {
						    		playlists.updatePlaylistInfo(playlist_id);
						    		playlists.isVisible = false;
						    		return false;
					    		},
					    		onCancel : function() {
					    			playlists.isVisible = false;
					    			return true;
					    		},
					    		onClose : function() {
					    			playlists.isVisible = false;
					    			return true;
					    		}
					    	});
				    	}else{
				    		this.updateLayer.option.onOk = function(){
				    			playlists.updatePlaylistInfo(playlist_id);
					    		playlists.isVisible = false;
					    		return false;
				    		};
				    	}
				    	this.updateLayer.show();
				    	playlists.isVisible = true;
		    		}else{
                        alert("정보가 없습니다. 더 이상 제공되지 않거나, 존재하지 않는 정보입니다.", function () {
                            if(g_isLogged){
                                location.href = g_urlMusic + "/user/library/myalbum/list";
                            }else{
                                location.href = g_urlMusic;
                            }
                        });
                    }
		    	}.bind(this), "json");
		    	
		    },
		    updatePlaylistInfo : function (playlist_id)
		    {
		        var titleObj = $("#createMyAlbumLayerTitle");
		    	if (titleObj.val().length > 100){
		    		playlists.showLayerAlert("제목이 100자를 초과했습니다.");
		    		return;
		    	}
		    		
		    	if (bugs.utils.trim(titleObj.val()) == "" || bugs.utils.stripTag(bugs.utils.trim(titleObj.val())) == "") {
		    		playlists.showLayerAlert("제목을 입력해주세요.");
					return;
		    	}
		    	
		    	var title = titleObj.val();
		    	if($.trim(title)){
		    		title= title.replace(/(<|>);/g, function (strMatch, p1){	return (p1 == "<")? "&lt;" : "&gt;"; });
		    	}
		    	
		    	$.post(g_urlMe+"/library/myalbum/"+playlist_id+"/update", 
		    		{ "title" : title}, function(data) {
					if (data.result) {
						this.updateLayer.hide();
						if(typeof updateSuccesCallback == "function"){
							updateSuccessCallBack();
						}
						location.reload();
					} else {
						playlists.showLayerAlert("잠시 후 다시 시도해 주세요.");
					}
				}.bind(this),
				"json"
				);
		    },
		    hideLayer : function () {
		    	bugs.layerFocusNavi.remove($("#track2playlist"));
		    	$("#track2playlist").hide();
		    	playlists.isVisile = false;
		    },
		    
		    playlistLayerHide : function(){
		    	if($("#track2playlist").is(":visible")){
		    		$("#track2playlist").hide();
		    		bugs.layerFocusNavi.remove($("#track2playlist"));
		    		playlists.lastCaller = null;
		    		$(document).unbind("click",playlists.hideWhenDocumentClick);
		    	}
		    },
		    
		    hideWhenDocumentClick :  function(e) {
				if((e.data.button.index(e.target) < 0 && e.data.button.children().index(e.target) < 0
					&& e.data.layer.index(e.target) < 0 && e.data.layer.children().index(e.target) < 0) 
					//앨범 리스트에서 띄울 경우에 대한 예외처리
					) {
					e.data.layer.hide();
					bugs.layerFocusNavi.remove($("#track2playlist"));
					$(document).unbind("click", playlists.hideWhenDocumentClick);
				}
			},
		    
			showPlaylistLayer : function (obj, tracks, type)
		    {
          if($("#track2playlist").find("li[name=playlistLi]").length == 0 && $("#track2playlist").find("div.jspContainer").height() <= 34){
              playlists.resetPlaylist();
          }
		    	var layerMyAlbumListObj =$("#track2playlist");
		    	if(typeof playlists.lastCaller != "undefined" && playlists.lastCaller != null){
		    		if($(obj).is($(playlists.lastCaller))){
		    			if(layerMyAlbumListObj.is(":visible")){
				    		$(document).unbind("click", playlists.hideWhenDocumentClick);
				    		bugs.layerFocusNavi.remove(layerMyAlbumListObj.hide());
				    		return;
				    	}
		    		}
		    	}
		    	// 앨범리스트 더보기 레이어에서 내앨범 담기시 각 리스트의 더보기 레이어를 여기서 제거하고 이벤트 중지
	    		bugs.layermenu.removeOldLayer(); 
		    	playlists.lastCaller = obj;
		    	if(playlists.isPlayer)
		    		$("#makePlaylist").addClass("player");
		    
		    	var e = obj.offset();
		    	var bwsize = 0;
		    	var bhsize = 0;
		    	if ($(window).height()- (e.top-$(window).scrollTop()) < layerMyAlbumListObj.height())
		    		bhsize = layerMyAlbumListObj.height() - ($(window).height()- (e.top-$(window).scrollTop()))+28;
		    	
		    	var imgHeight = obj.find("img").height();
		    	
		    	if (imgHeight == null){
		    		imgHeight = 12;
		    	}else{
		    		imgHeight += navigator.appName.match(/Explorer/i) ? -12 : 4;
		    	}

		    	var x = e.left;
				var y = e.top + obj.height() +(imgHeight/2);
				
				var pageUrl = document.location.href;
				if(pageUrl.indexOf("/player?") > -1 || pageUrl.indexOf("/radio") > -1){
					
					y -= bhsize + obj.height()-imgHeight;
					
					if(navigator.appName.match(/Explorer/i)) y += 12;
					x -= bwsize;
					if(obj.attr("id") != "btnMyalbum" && document.location.href.indexOf("/player?") > -1){
						x = x + obj.width()/2;
						x = x - layerMyAlbumListObj.width()/2;
					}
				}else if(pageUrl.indexOf("/newPlayer") > -1){
					y  = e.top - layerMyAlbumListObj.height();
				}else if(pageUrl.indexOf("/mylovemusic") > -1){
					x = x + obj.width()/2;
					x = x - layerMyAlbumListObj.width()/2;
					if ($(window).height()- (e.top-$(window).scrollTop()) < layerMyAlbumListObj.height())
						y = y - obj.height() - bhsize;
				}else if(type == "newRadio"){
					x = x - obj.width() - bwsize -20;
					y = y - obj.height() - bhsize;
				}else if(type == "newRadioContenxt") {
					x = e.left - layerMyAlbumListObj.width() - 25;
					y  = e.top - layerMyAlbumListObj.height() - 10;
				} else {
					x = x + obj.width()/2;
					x = x - layerMyAlbumListObj.width()/2;
				}
				
				if(typeof tracks == "string") {
				
				}else if(typeof tracks == "number"){
					tracks = tracks+"";
				} else if(typeof tracks == "object") { // 
					var trackIdStr = "";
					
					for(var i=0;i < tracks.length;i++) {
						trackIdStr += $(tracks[i]).val();
						if(i < tracks.length - 1) trackIdStr +=",";
					}
					tracks = trackIdStr;
				}
				//-------------------------------------//
				playlists.temp_tracks = tracks;
				if ($(window).width()- e.left < layerMyAlbumListObj.width()){
		    		x = e.left - layerMyAlbumListObj.width()+22; // - ($(window).width()- e.left) + 20;
		    	}
				layerMyAlbumListObj.css("left", x+"px").css("top", y+"px").css("z-index", "1001").show().attr("tabIndex",-1);
				layerMyAlbumListObj.unbind("keydown",bugs.layermenu.layerMyAlbumListObj);
				bugs.layerFocusNavi.add(layerMyAlbumListObj, playlists.lastCaller, function(){layerMyAlbumListObj.hide();});
				
				if(layerMyAlbumListObj.is(":visible")){
					layerMyAlbumListObj.show().focus();
				}
				playlists.isVisible = true;
				$(document).unbind("click",playlists.hideWhenDocumentClick).bind("click", {button : obj, layer : layerMyAlbumListObj}, playlists.hideWhenDocumentClick);
				try{
					bugs.scroll.setScrollBar($("#track2playlistScrollArea"),true);
				}catch(e){
//					if(playlists.isPlayer){
//						$("#track2playlistScrollAreaPlayer").jScrollPane();
//					}
				}
		    },
		    addPlaylist : function (id, tracks, addSuccessCallBack)
		    {
		    	if(typeof tracks == "number"){
		    		tracks = tracks+"";
		    	}
		    	if (tracks == "") {
		    		playlists.showLayerAlert("내 앨범에 담을 곡을 선택해주세요.");
					return;
				}
		    	playlists.add(id, tracks, function(cnt) {
		    		playlists.temp_tracks = ""; // 
		    		if (cnt > 0) {
		    			playlists.showLayerAlert("선택하신 "+cnt+"곡을 앨범에 담았습니다.\n(중복 곡은 제외됩니다.)");
	    		    	//try { if (playlists.menu == "PLAYLIST" && id == trackPlaylists.playlist_id)	trackPlaylists.sortList("PRIORITY", "ASC", "num"); }catch(e){};
		    		} else {
		    			playlists.showLayerAlert("선택하신 곡은 이미 수록되어있습니다.");
						return;
		    		}
		    		
		    		if(typeof addSuccessCallBack == "function"){
		    			try{ addSuccessCallBack(); }catch(e){}
		    		}
		    		
		    		if(playlists.lastCaller != null ){
		    			try{
		    				new Function($(playlists.lastCaller).attr("addToMyalbumCallbackFuncStr"))();
		    			}catch(e){}
		    		}
		   
		    		$("#track2playlist").hideLayer();
	    			playlists.isVisible = false;
		    		
    			}, function(ret) {
    				if (ret.error_type == "EXCEED") {
    					playlists.showLayerAlert("내 앨범에는 1000곡 까지만 담을 수 있습니다.\n다른 앨범을 선택 하거나 곡 수를 조금만 줄여 주세요.");
	    			} 
    				
	    			$("#track2playlist").hide();
	    			playlists.isVisible = false;
	    		});
		    },
		    addTrackToPlaylist : function (id)
		    {
		    	playlists.addPlaylist(id, playlists.temp_tracks, function(){
		    		bugs.music.myAlbumList.resetGnbMyAlbumList();
		    	});
		    },
		    checkTitleLength : function (selector,remain)
		    {
		    	selector = $(selector);
		    	var text = selector.val() || "";
		    	if (text.length >= 100) {
		    		text = text.substr(0,100);
		    		selector.val(text);
		    		remain.text("("+text.length+"/100)");;
		    	} else {
		    		remain.text("("+text.length+"/100)");
		    	}
		    },
		    
		    checkDescribeLength : function (selector, remain)
		    {
		    	selector = $(selector);
		    	var text = selector.val() || "";
		    	
		    	if (text.length >= 300) {
		    		text = text.substr(0,300);
		    		selector.val(text);
		    		remain.text("("+text.length+"/300)");;
		    	} else {
		    		remain.text("("+text.length+"/300)");
		    	}
		    },
		    
		    uniqueArr : function(arr){
				var tempArr = [];
				var size = arr.length;
				var tempSize = 0;
				for(var i=0; i<size; i++){
					tempSize = tempArr.length;
					if(tempSize == 0){
						tempArr.push(arr[i]);
						continue;
					}
					for(var j=0; j<tempSize; j++){
						
						if(arr[i] == tempArr[j]){
							break;
						}else{
							if(j == tempSize - 1){
								tempArr.push(arr[i]);
								break;
							}
						}
					}
				}
				return tempArr;
		    }
		};
	}
/*-----/js/me/playlist.js / end -----*/

/*-----/js/log/makePCookie.js / start -----*/
function Nethru_getCookieVal(dc, offset)
{
	var endstr = dc.indexOf (";", offset);
	if (endstr == -1)
		endstr = dc.length;
	return unescape(dc.substring(offset, endstr));
}

function Nethru_SetCookie(name, value){
   var argv = Nethru_SetCookie.arguments;
   var argc = Nethru_SetCookie.arguments.length;
   var expires = (2 < argc) ? argv[2] : null;
   var path = (3 < argc) ? argv[3] : null;
   var domain = (4 < argc) ? argv[4] : null;
   var secure = (5 < argc) ? argv[5] : false;

   document.cookie = name + "=" + escape (value) +
        ((expires == null) ? "" : ("; expires="+expires.toGMTString())) +
     ((path == null) ? "" : ("; path=" + path)) +
     ((domain == null) ? "" : ("; domain=" + domain)) +
        ((secure == true) ? "; secure" : "");

}

function Nethru_GetCookie(name){
   var arg = name + "=";
   var alen = arg.length;
   var clen = document.cookie.length;
   var dc = document.cookie;
   var i = 0;
   while (i < clen)
      {
      var j = i + alen;
      if (dc.substring(i, j) == arg)
         return Nethru_getCookieVal(dc, j);
      i = dc.indexOf(" ", i) + 1;
      if (i == 0)
         break;
      }
  return null;
}

function Nethru_makePersistentCookie(name,length,path,domain)
{
    var today = new Date();
    var expiredDate = new Date(2100,1,1);
    var cookie;
	var value;

    cookie = Nethru_GetCookie(name);
    if ( cookie ) {
        return 1;
	}

	var values = new Array();
	for ( i=0; i < length ; i++ ) {
		values[i] = "" + Math.random();
	}

	value = today.getTime();
	for ( i=0; i < length ; i++ ) {
		value += values[i].charAt(2);
	}

    Nethru_SetCookie(name,value,expiredDate,path,domain);
}


function Nethru_makePersistentCookie1(name,length,path,domain)
{
	if ( domain == null ) return 1;						
        	var expiredDate = new Date(2100,1,1);

	
        	var vn_screenx = screen.width; 					
                var vn_screeny = screen.height; 					
	var vn_screenc = screen.colorDepth; 					
		
	var resolution_cookiename = name + "_RESOLUTION";			
	var color_cookiename = name + "_COLOR";				
	
	var resolution_value = screen.width + "*" + vn_screeny;
	var color_value = vn_screenc;
	
	var resolution_cookie;
	var color_cookie;

        	resolution_cookie = Nethru_GetCookie(resolution_cookiename);
        	color_cookie = Nethru_GetCookie(color_cookiename)

	
        if ( resolution_cookie ) {						
        		
        	if ( resolution_cookie != resolution_value ) {			
        		Nethru_SetCookie(resolution_cookiename,resolution_value,expiredDate,path,domain);  	
			
		}
	}
	else
	{	
        		Nethru_SetCookie(resolution_cookiename,resolution_value,expiredDate,path,domain);
        		
	}
	
        	if ( color_cookie ) {							
        		if ( color_cookie != color_value ) {			
        		Nethru_SetCookie(color_cookiename,color_value,expiredDate,path,domain);  	
			
			
		}
	}
	else
	{								
        		Nethru_SetCookie(color_cookiename,color_value,expiredDate,path,domain);
        		
	}

}

function n_isIpType(val) {
	if ( val.length != 4 ) return false;
	
	for ( var i=0; i < 4; i++) {
		if ( !n_isInteger(val[i]) ) {
			return false;
		}
	}
	
	return true;
}

function n_isInteger(val) {
	if (n_isBlank(val)) {
		return false;
	}
	
	for ( var i=0; i < val.length;i++) {
		if ( !n_isDigit(val.charAt(i))) {
			return false;
		}
	}
	
	return true;
}

function n_isDigit(num) {
	if ( num.length>1) {
		return false;
	}
	
	var string="1234567890";
	
	if ( string.indexOf(num) != -1) {
		return true;
	}
	
	return false;
}

function n_isBlank(val) {
	if (val == null) {
		return true;
	}
	
	for (var i=0; i < val.length; i++) {
		if ( (val.charAt(i) != ' ') && (val.charAt(i) != "\t")&&(val.charAt(i) != "\n") && (val.charAt(i)!= "\r")) {
			return false;
		}
	}
	
	return true;
}

function Nethru_getDomain()
{
	var _host   = document.domain;
	var so = _host.split('.');
	
	if ( n_isIpType(so)) {
		return ( so[0] + '.' + so[1] + '.' + so[2] + '.' + so[3]);
	}
	
	if ( so.length != 4 && so.length != 3 ) {
		return _host;
	}
	
	var dm  = so[so.length-2] + '.' + so[so.length-1];

	return (so[so.length-1].length == 2) ? so[so.length-3] + '.' + dm : dm;
}

var Nethru_domain  = Nethru_getDomain();

Nethru_makePersistentCookie("PCID",10,"/",Nethru_domain);
Nethru_makePersistentCookie1("RC",10,"/",Nethru_domain);
/*-----/js/log/makePCookie.js / end -----*/

/*-----/js/player/min/mvHtml5Player.min.js / start -----*/






function _0x3000(_0x211923,_0x3580e){var _0x3d0bb2=_0x3d0b();return _0x3000=function(_0x300058,_0x115744){_0x300058=_0x300058-0x14c;var _0x1f7493=_0x3d0bb2[_0x300058];return _0x1f7493;},_0x3000(_0x211923,_0x3580e);}var _0x53579b=_0x3000;function _0x3d0b(){var _0x58daf2=['\x69\x73\x49\x4f\x53\x53\x61\x66\x61\x72\x69','\x68\x61\x6e\x64\x6c\x65\x72\x5f\x6c\x69\x73\x74','\x23\x6d\x76\x43\x75\x72\x56\x6f\x6c\x75\x6d\x65','\x62\x75\x66\x66\x65\x72\x65\x64','\x70\x6c\x61\x79\x52\x65\x70\x6c\x61\x79','\x75\x6e\x64\x65\x66\x69\x6e\x65\x64','\x6f\x62\x6a\x65\x63\x74\x2d\x66\x69\x74','\x63\x6c\x65\x61\x72','\x77\x65\x62\x6b\x69\x74\x45\x78\x69\x74\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e','\x73\x74\x6f\x70','\x69\x73\x4c\x6f\x61\x64\x65\x64\x4d\x76','\x71\x75\x61\x6c\x69\x74\x79','\x72\x65\x73\x65\x74\x53\x65\x65\x6b\x42\x61\x72\x50\x6f\x73\x69\x74\x69\x6f\x6e','\x2e\x63\x75\x72\x72\x65\x6e\x74\x20\x2e\x73\x65\x65\x6b\x62\x61\x72','\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x56\x69\x65\x77\x20\x61','\x20\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c\x20\x2e\x73\x65\x65\x6b','\x74\x69\x74\x6c\x65','\x2f\x6d\x75\x73\x69\x63\x2f\x6d\x76\x2f','\x61\x6c\x65\x72\x74','\x09\x09\x09\x09\x09\x3c\x74\x69\x6d\x65\x20\x64\x61\x74\x65\x74\x69\x6d\x65\x3d\x27\x30\x30\x3a\x30\x30\x27\x20\x63\x6c\x61\x73\x73\x3d\x27\x74\x6f\x74\x61\x6c\x27\x3e\x3c\x73\x70\x61\x6e\x3e\ucd1d\x20\uc7ac\uc0dd\x20\uc2dc\uac04\x20\x3a\x3c\x2f\x73\x70\x61\x6e\x3e\x30\x30\x3a\x30\x30\x3c\x2f\x74\x69\x6d\x65\x3e','\x75\x74\x69\x6c\x73','\x73\x68\x6f\x77\x50\x61\x6e\x65\x6c','\x6d\x76\x5f\x61\x64\x75\x6c\x74\x5f\x79\x6e','\x09\x09\x09\x09\x3c\x62\x75\x74\x74\x6f\x6e\x20\x63\x6c\x61\x73\x73\x3d\x27\x62\x74\x6e\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e\x20\x62\x74\x6e\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e\x42\x75\x74\x74\x6f\x6e\x27\x3e\uc804\uccb4\ud654\uba74\uc73c\ub85c\x20\ubcf4\uae30\x3c\x2f\x62\x75\x74\x74\x6f\x6e\x3e\x20\x3c\x21\x2d\x2d\x20\x62\x74\x6e\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e\x43\x61\x6e\x63\x65\x6c\x20\x2d\x2d\x3e','\x73\x74\x79\x6c\x65','\x70\x61\x6e\x65\x6c\x53\x69\x7a\x65\x59','\x41\x55\x54\x48\x5f\x41\x44\x55\x4c\x54\x5f\x43\x48\x45\x43\x4b\x5f\x4e\x4f\x4e\x45','\x77\x69\x64\x74\x68','\x69\x73\x4c\x6f\x67\x67\x65\x64','\x20\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c\x20\x2e\x63\x74\x6c\x73\x65\x74\x20\x2e\x73\x63\x72\x65\x65\x6e\x20\x2e\x73\x63\x72\x65\x65\x6e\x53\x69\x7a\x65','\x6d\x6f\x7a\x43\x61\x6e\x63\x65\x6c\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e','\x09\x09\x09\x09\x09\x3c\x70\x20\x63\x6c\x61\x73\x73\x3d\x27\x73\x65\x65\x6b\x20\x6f\x6e\x27\x20\x73\x74\x79\x6c\x65\x3d\x27\x64\x69\x73\x70\x6c\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x27\x3e','\x64\x75\x72\x61\x74\x69\x6f\x6e','\x70\x6c\x61\x79\x4f\x6e\x50\x61\x6e\x65\x6c','\x6d\x76\x5f\x76\x6f\x6c\x75\x6d\x65','\x74\x69\x6d\x65\x72\x49\x64\x4d\x76\x50\x61\x6e\x65\x6c\x53\x74\x61\x74\x65','\x65\x6e\x64\x65\x64','\uc601\uc0c1\x20\ud30c\uc77c\x20\uacbd\ub85c\x20\x55\x52\x4c\uc744\x20\ubc1b\uc9c0\x20\ubabb\ud558\uc600\uc2b5\ub2c8\ub2e4\x2e\x5b\x32\x5d\x0a\uc7a0\uc2dc\x20\ud6c4\x2c\x20\ub2e4\uc2dc\x20\uc2dc\ub3c4\ud574\x20\uc8fc\uc138\uc694\x2e','\x73\x65\x74\x50\x6c\x61\x79\x53\x74\x61\x74\x65','\x63\x75\x72\x72\x65\x6e\x74\x53\x72\x63','\x2f\x61\x72\x74\x69\x73\x74','\x20\x68\x69\x64\x65\x41\x6e\x64\x72\x6f\x69\x64\x4f\x76\x65\x72\x34\x30\x6d\x6f\x62\x69\x6c\x65\x50\x6c\x61\x79\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c\x73','\x74\x6f\x75\x63\x68\x6d\x6f\x76\x65','\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x56\x69\x65\x77','\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c','\x61\x70\x70\x65\x6e\x64\x56\x69\x64\x69\x6f\x51\x75\x61\x6c\x69\x74\x79\x42\x75\x74\x74\x6f\x6e','\x09\x09\x3c\x70\x20\x63\x6c\x61\x73\x73\x3d\x27\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x41\x72\x74\x69\x73\x74\x27\x3e\x3c\x2f\x70\x3e','\uc9c0\uc6d0\ub418\uc9c0\x20\uc54a\ub294\x20\ud30c\uc77c\x20\ud615\uc2dd\uc774\uac70\ub098\x20\uc720\ud6a8\ud558\uc9c0\x20\uc54a\uc740\x3c\x62\x72\x2f\x3e\ub370\uc774\ud130\uc785\ub2c8\ub2e4\x2e\x20\ub2e4\uc2dc\x20\uc7ac\uc0dd\uc744\x20\uc2dc\ub3c4\ud574\uc8fc\uc138\uc694\x2e','\x2e\x76\x6f\x6c\x75\x6d\x65\x20\x2e\x73\x65\x65\x6b\x20\x2e\x63\x75\x72\x72\x65\x6e\x74\x20\x2e\x73\x65\x65\x6b\x62\x61\x72','\x77\x65\x62\x6b\x69\x74\x52\x65\x71\x75\x65\x73\x74\x46\x75\x6c\x6c\x73\x63\x72\x65\x65\x6e','\x64\x69\x73\x6c\x69\x6b\x65','\x66\x75\x6c\x6c\x73\x63\x72\x65\x65\x6e\x63\x68\x61\x6e\x67\x65','\x4d\x65\x64\x69\x61\x45\x72\x72\x6f\x72','\x2f\x76\x75\x72\x6c\x2f','\x68\x74\x6d\x6c\x35\x53\x65\x65\x6b\x65\x64\x48\x61\x6e\x64\x6c\x65\x72','\x62\x6c\x75\x72','\x27\x20\x70\x72\x65\x6c\x6f\x61\x64\x3d\x27\x61\x75\x74\x6f\x27\x20\x73\x74\x79\x6c\x65\x3d\x27\x7a\x2d\x69\x6e\x64\x65\x78\x3a\x31\x3b\x27\x3e\x3c\x2f\x76\x69\x64\x65\x6f\x3e','\x74\x68\x75\x6d\x62\x6e\x61\x69\x6c\x4f\x72\x67\x52\x61\x74\x69\x6f','\uc88b\uc544\uc694\x20\ucde8\uc18c','\x6f\x72\x69\x65\x6e\x74\x61\x74\x69\x6f\x6e','\x63\x65\x69\x6c','\x57\x45\x42\x48\x4d','\x73\x63\x72\x6f\x6c\x6c\x54\x6f\x70','\x63\x6f\x6e\x74\x65\x78\x74\x6d\x65\x6e\x75','\x09\x09\x3c\x2f\x70\x3e','\x77\x65\x62\x6b\x69\x74\x45\x6e\x74\x65\x72\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e','\x69\x70\x61\x64','\x63\x61\x6e\x70\x6c\x61\x79','\x6c\x6f\x67\x69\x6e','\x6e\x75\x6c\x6c','\x76\x69\x64\x65\x6f\x49\x6e\x66\x6f','\x69\x73\x42\x75\x67\x73\x41\x70\x70','\x09\x09\x09\x09\x3c\x2f\x64\x69\x76\x3e','\x70\x61\x6e\x65\x6c\x53\x74\x61\x74\x65','\x6c\x65\x6e\x67\x74\x68','\x63\x73\x73','\x63\x68\x61\x6e\x67\x65\x64\x54\x6f\x75\x63\x68\x65\x73','\x2e\x63\x74\x6c\x73\x65\x74\x20\x2e\x70\x6c\x61\x79\x20\x2e\x74\x69\x6d\x65\x20\x2e\x63\x75\x72\x72\x65\x6e\x74','\x75\x70\x64\x5f\x64\x74','\x6d\x6f\x62\x69\x6c\x65','\x70\x6c\x61\x79\x65\x72\x5f\x6d\x76\x5f\x30\x38','\x67\x65\x74\x42\x79\x49\x6e\x64\x65\x78','\x61\x72\x74\x69\x73\x74\x5f\x6e\x6d','\x69\x65\x4f\x53\x56\x65\x72\x73\x69\x6f\x6e','\x6c\x65\x66\x74','\x74\x68\x65\x6e','\x6e\x6f\x74\x69\x63\x65','\x64\x65\x73\x6b\x74\x6f\x70','\x67\x65\x74\x49\x6e\x74\x65\x72\x6e\x65\x74\x45\x78\x70\x6c\x6f\x72\x65\x72\x56\x65\x72\x73\x69\x6f\x6e','\x62\x6c\x6f\x63\x6b','\x6d\x6f\x75\x73\x65\x65\x6e\x74\x65\x72','\x76\x69\x65\x77\x4d\x75\x73\x69\x63\x56\x69\x64\x65\x6f','\x6c\x65\x6e','\x62\x74\x6e\x4c\x69\x6b\x65','\x61\x6e\x64\x72\x6f\x69\x64','\x73\x70\x6c\x69\x74','\x73\x65\x65\x6b\x42\x61\x73\x65','\x68\x65\x69\x67\x68\x74','\x6c\x61\x74\x65\x73\x74\x43\x75\x72\x72\x65\x6e\x74\x54\x69\x6d\x65','\x2e\x62\x74\x6e\x4d\x75\x74\x65','\x63\x72\x65\x61\x74\x65','\x70\x6c\x61\x79\x65\x72\x49\x64','\x69\x73\x50\x61\x75\x73\x65\x64','\x09\x09\x09\x09\x3c\x62\x75\x74\x74\x6f\x6e\x20\x63\x6c\x61\x73\x73\x3d\x27\x62\x74\x6e\x4c\x69\x6b\x65\x20\x62\x74\x6e\x4c\x69\x6b\x65\x42\x75\x74\x74\x6f\x6e\x27\x3e\uc88b\uc544\uc694\x3c\x2f\x62\x75\x74\x74\x6f\x6e\x3e','\x62\x74\x6e\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e','\x66\x75\x6c\x6c','\x50\x41\x4e\x45\x4c\x5f\x56\x49\x45\x57\x5f\x53\x54\x41\x54\x45\x5f\x46\x4f\x43\x55\x53\x4f\x55\x54','\x69\x73\x4c\x6f\x61\x64\x69\x6e\x67','\x44\x49\x56','\x69\x73\x41\x62\x75\x73\x65\x72','\x68\x74\x6d\x6c','\x6f\x70\x65\x6e','\x76\x6f\x6c\x75\x6d\x65\x42\x75\x74\x74\x6f\x6e','\x75\x70\x61','\x62\x69\x6e\x64','\x31\x30\x32\x38\x37\x34\x38\x71\x6f\x52\x4e\x78\x69','\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x27\x61\x6c\x65\x72\x74\x20\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x52\x65\x70\x6c\x61\x79\x27\x20\x73\x74\x79\x6c\x65\x3d\x27\x64\x69\x73\x70\x6c\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x27\x3e','\x2e\x73\x65\x65\x6b\x42\x47','\x48\x54\x4d\x4c\x35\x5f\x4d\x45\x44\x49\x41\x5f\x45\x52\x52\x5f\x53\x52\x43\x5f\x4e\x4f\x54\x5f\x53\x55\x50\x50\x4f\x52\x54\x45\x44','\x73\x6c\x69\x64\x65','\x61\x75\x74\x68\x41\x64\x75\x6c\x74\x43\x68\x65\x63\x6b','\x4d\x57\x45\x42\x48\x4d','\x2f\x61\x72\x74\x69\x73\x74\x2f','\uc88b\uc544\uc694','\x69\x6e\x64\x65\x78\x4f\x66','\x3c\x68\x65\x61\x64\x65\x72\x20\x63\x6c\x61\x73\x73\x3d\x27\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x48\x65\x61\x64\x65\x72\x27\x3e','\x6d\x76\x48\x50\x6c\x61\x79\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c','\x38\x37\x33\x35\x32\x30\x48\x58\x57\x61\x47\x59','\x67\x65\x74\x50\x6c\x61\x79\x65\x72','\x69\x73\x45\x64\x67\x65\x42\x72\x6f\x77\x73\x65\x72','\x09\x09\x09\x09\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x27\x73\x63\x72\x65\x65\x6e\x53\x69\x7a\x65\x27\x3e','\x69\x6f\x73','\x2f\x6c\x73\x75\x5f\x76\x75\x72\x6c\x2f','\x67\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x50\x6c\x61\x79\x65\x72\x49\x64','\x73\x65\x74\x53\x74\x61\x72\x74','\x75\x73\x65\x48\x74\x6d\x6c\x35\x4d\x76\x50\x6c\x61\x79\x65\x72','\x70\x61\x75\x73\x65\x54\x69\x6d\x65','\x61\x2e\x70\x6c\x61\x79\x42\x75\x74\x74\x6f\x6e','\x64\x69\x73\x70\x6c\x61\x79','\x70\x61\x6e\x65\x6c\x50\x6c\x61\x79\x65\x72\x52\x65\x70\x6c\x61\x79','\x6c\x61\x79\x65\x72\x4d\x73\x67','\x3c\x61\x20\x68\x72\x65\x66\x3d\x27','\x3f\x76\x65\x72\x73\x69\x6f\x6e\x3d','\x70\x2e\x73\x65\x65\x6b','\x38\x30\x30\x38\x38\x31\x33\x33','\x2e\x76\x6f\x6c\x75\x6d\x65\x20\x2e\x62\x74\x6e\x4d\x75\x74\x65','\x69\x73\x50\x6c\x61\x79\x69\x6e\x67\x54\x72\x61\x63\x6b','\x61\x74\x74\x72\x5f\x74\x70','\x76\x6f\x6c\x75\x6d\x65\x43\x6f\x6e\x74\x72\x6f\x6c','\x48\x54\x4d\x4c\x35\x20\x45\x52\x52\x4f\x52\x20\x3a\x20','\x09\x09\x3c\x61\x20\x68\x72\x65\x66\x3d\x27\x23\x27\x20\x63\x6c\x61\x73\x73\x3d\x27\x70\x6c\x61\x79\x42\x75\x74\x74\x6f\x6e\x20\x70\x6c\x61\x79\x27\x3e\x3c\x73\x70\x61\x6e\x3e\x3c\x73\x74\x72\x6f\x6e\x67\x3e\x3c\x2f\x73\x74\x72\x6f\x6e\x67\x3e\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x2f\x61\x3e','\x69\x73\x4d\x76\x53\x74\x72\x41\x75\x74\x68','\x71\x75\x61\x6c\x69\x74\x79\x48\x44','\x66\x6f\x72\x6d\x61\x74\x53\x74\x61\x6e\x64\x61\x72\x64','\x3c\x2f\x61\x3e','\x62\x72\x6f\x77\x73\x65\x72','\x09\x09\x09\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x27\x70\x6c\x61\x79\x27\x3e','\x50\x41\x4e\x45\x4c\x5f\x56\x49\x45\x57\x5f\x53\x54\x41\x54\x45\x5f\x46\x4f\x43\x55\x53\x49\x4e','\x6e\x61\x6d\x65','\x6d\x75\x73\x69\x63\x55\x72\x6c','\x6c\x6f\x61\x64\x69\x6e\x67','\x20\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c\x20\x2e\x73\x65\x65\x6b\x20\x2e\x63\x75\x72\x72\x65\x6e\x74\x20\x2e\x73\x65\x65\x6b\x62\x61\x72','\x6c\x61\x73\x74\x4d\x6f\x75\x73\x65\x43\x75\x72\x73\x6f\x72','\x61\x74\x74\x72','\x48\x54\x4d\x4c\x35\x5f\x4d\x45\x44\x49\x41\x5f\x45\x52\x52\x5f\x41\x42\x4f\x41\x52\x54\x45\x44','\x62\x65\x66\x6f\x72\x65\x75\x6e\x6c\x6f\x61\x64','\x6d\x76\x5f\x69\x64','\x68\x74\x6d\x6c\x35\x50\x6c\x61\x79\x65\x72','\x68\x74\x6d\x6c\x35\x50\x61\x75\x73\x65\x48\x61\x6e\x64\x6c\x65\x72','\x70\x6f\x70\x75\x70','\x2e\x62\x75\x67\x73\x54\x68\x75\x6d\x62\x6e\x61\x69\x6c','\x73\x63\x72\x65\x65\x6e\x53\x69\x7a\x65','\x6d\x61\x74\x63\x68','\x73\x65\x65\x6b\x42\x61\x72','\x09\x09\x3c\x21\x2d\x2d\x20\x2f\x2f\x73\x65\x65\x6b\x69\x6e\x67\x20\x2d\x2d\x3e','\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x56\x69\x65\x77\x20\x69\x6d\x67','\x70\x6c\x61\x79\x65\x72','\x6f\x6e\x54\x69\x6d\x65\x72','\x76\x69\x64\x65\x6f\x5f\x71\x75\x61\x6c\x69\x74\x79','\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c','\x70\x6c\x61\x79\x65\x72\x5f\x6d\x76\x5f\x30\x36','\x33\x36\x71\x6c\x45\x55\x6a\x54','\x61\x64\x64','\x3c\x2f\x68\x65\x61\x64\x65\x72\x3e','\x6f\x66\x66\x73\x65\x74','\x09\x09\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x27\x6c\x6f\x61\x64\x69\x6e\x67\x42\x75\x74\x74\x69\x6f\x6e\x20\x62\x75\x67\x73\x2d\x70\x72\x65\x6c\x6f\x61\x64\x65\x72\x20\x62\x75\x67\x73\x2d\x70\x72\x65\x6c\x6f\x61\x64\x65\x72\x2d\x77\x68\x69\x74\x65\x27\x20\x73\x74\x79\x6c\x65\x3d\x27\x64\x69\x73\x70\x6c\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x20\x77\x69\x64\x74\x68\x3a\x35\x30\x70\x78\x3b\x20\x68\x65\x69\x67\x68\x74\x3a\x35\x30\x70\x78\x3b\x20\x6d\x61\x72\x67\x69\x6e\x2d\x6c\x65\x66\x74\x3a\x2d\x32\x35\x70\x78\x3b\x20\x6d\x61\x72\x67\x69\x6e\x2d\x74\x6f\x70\x3a\x2d\x32\x35\x70\x78\x3b\x27\x3e\x3c\x2f\x64\x69\x76\x3e','\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x52\x65\x70\x6c\x61\x79','\x6c\x6f\x61\x64','\x6a\x6f\x69\x6e','\x41\x55\x54\x48\x5f\x41\x44\x55\x4c\x54\x5f\x43\x48\x45\x43\x4b\x5f\x4f\x56\x45\x52\x5f\x33\x36\x35','\x69\x73\x4d\x75\x74\x65\x64','\x73\x65\x74\x50\x61\x75\x73\x65','\x70\x61\x75\x73\x65\x41\x75\x64\x69\x6f\x50\x6c\x61\x79\x65\x72','\x09\x09\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x27\x62\x75\x67\x73\x54\x68\x75\x6d\x62\x6e\x61\x69\x6c\x27\x20\x73\x74\x79\x6c\x65\x3d\x27\x64\x69\x73\x70\x6c\x61\x79\x3a\x6e\x6f\x6e\x65\x27\x3e\x3c\x69\x6d\x67\x20\x73\x72\x63\x3d\x27\x27\x20\x61\x6c\x74\x3d\x27\x27\x3e\x3c\x2f\x64\x69\x76\x3e','\x09\x09\x09\x09\x09\x3c\x75\x6c\x3e','\x6e\x65\x74\x77\x6f\x72\x6b\x53\x74\x61\x74\x65','\x6f\x66\x66\x73\x65\x74\x58','\x61\x72\x65\x61','\x3c\x73\x70\x61\x6e\x3e\ud604\uc7ac\ud654\uc9c8\x3c\x2f\x73\x70\x61\x6e\x3e\x31\x30\x38\x30\x70','\x3c\x73\x70\x61\x6e\x3e\ud604\uc7ac\x20\uc7ac\uc0dd\x20\uc2dc\uac04\x20\x3a\x3c\x2f\x73\x70\x61\x6e\x3e','\x6d\x70\x6c\x61\x79\x65\x72','\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74','\x70\x61\x67\x65\x68\x69\x64\x65','\x73\x74\x61\x72\x74','\x2f\x6d\x76\x48\x50\x6c\x61\x79\x65\x72\x2f\x6d\x76\x2f','\x3c\x73\x70\x61\x6e\x3e\x3c\x73\x74\x72\x6f\x6e\x67\x3e','\x75\x72\x6c','\x3c\x2f\x70\x3e\x3c\x73\x70\x61\x6e\x20\x63\x6c\x61\x73\x73\x3d\x22\x62\x75\x74\x74\x6f\x6e\x20\x74\x79\x70\x65\x4d\x45\x22\x3e\x3c\x62\x75\x74\x74\x6f\x6e\x20\x74\x79\x70\x65\x3d\x22\x62\x75\x74\x74\x6f\x6e\x22\x20\x6f\x6e\x63\x6c\x69\x63\x6b\x3d\x22\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3a\x24\x28\x27\x64\x69\x76\x2e\x6c\x61\x79\x65\x72\x50\x6f\x70\x75\x70\x2e\x6c\x61\x79\x65\x72\x4d\x73\x67\x27\x29\x2e\x72\x65\x6d\x6f\x76\x65\x28\x29\x3b\x62\x75\x67\x73\x2e\x75\x69\x2e\x6d\x6f\x64\x61\x6c\x4c\x61\x79\x65\x72\x2e\x68\x69\x64\x65\x28\x29\x3b\x20\x62\x75\x67\x73\x2e\x6d\x76\x48\x50\x6c\x61\x79\x65\x72\x44\x61\x74\x61\x2e\x61\x75\x74\x68\x50\x6f\x70\x3d\x6e\x75\x6c\x6c\x3b\x22\x3e\ud655\uc778\x3c\x2f\x62\x75\x74\x74\x6f\x6e\x3e\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x2f\x64\x69\x76\x3e','\x6d\x75\x6c\x74\x69\x5f\x61\x72\x74\x69\x73\x74\x5f\x69\x6e\x66\x6f\x73\x65\x74','\x76\x6f\x6c\x4f\x6e\x42\x75\x74\x74\x6f\x6e','\x48\x54\x4d\x4c\x35\x5f\x4d\x45\x44\x49\x41\x5f\x45\x52\x52\x5f\x44\x45\x43\x4f\x44\x45','\x68\x74\x6d\x6c\x35\x53\x75\x70\x70\x6f\x72\x74','\x63\x68\x69\x6c\x64\x72\x65\x6e','\x6d\x76\x5f\x61\x72\x74\x69\x73\x74\x5f\x69\x64','\x31\x35\x36\x35\x34\x34','\x6c\x61\x73\x74\x4d\x56\x50\x6c\x61\x79\x65\x72\x59','\x3c\x73\x70\x61\x6e\x3e\ud604\uc7ac\x20\uc7ac\uc0dd\x20\uc2dc\uac04\x20\x3a\x3c\x2f\x73\x70\x61\x6e\x3e\x30\x30\x3a\x30\x30','\x71\x75\x61\x6c\x69\x74\x79\x46\x48\x44','\x64\x65\x76\x69\x63\x65','\x70\x6c\x61\x79\x65\x72\x5f\x6d\x76\x5f\x31\x32','\x73\x65\x6e\x64\x53\x74\x72\x65\x61\x6d\x69\x6e\x67\x4c\x6f\x67','\x73\x75\x62\x73\x74\x72\x69\x6e\x67','\x70\x6c\x61\x79\x56\x69\x64\x65\x6f','\x70\x6c\x61\x79\x65\x72\x5f\x6d\x76\x5f\x30\x32','\x61\x75\x74\x68\x50\x6f\x70','\x38\x34\x34\x6e\x4b\x4d\x76\x6a\x6e','\x70\x6c\x61\x79\x65\x72\x5f\x6d\x76\x5f\x30\x37','\x41\x55\x54\x48\x5f\x41\x44\x55\x4c\x54\x5f\x43\x48\x45\x43\x4b\x5f\x41\x44\x55\x4c\x54','\x30\x31\x3a\x30\x30','\x62\x74\x6e\x4c\x69\x6b\x65\x43\x61\x6e\x63\x65\x6c','\x61\x64\x75\x6c\x74\x5f\x6d\x76','\x63\x75\x72\x72\x53\x74\x72\x54\x79\x70\x65','\x67\x65\x74\x50\x6c\x61\x79\x65\x72\x42\x79\x49\x64','\x35\x33\x33','\x73\x63\x72\x6f\x6c\x6c\x4c\x65\x66\x74','\x2f\x6d\x76\x50\x6c\x61\x79\x65\x72\x3f\x6d\x76\x49\x64\x3d','\x48\x54\x4d\x4c\x35\x5f\x4d\x45\x44\x49\x41\x5f\x45\x52\x52\x5f\x4e\x45\x54\x57\x4f\x52\x4b','\x73\x76\x63\x5f\x73\x64\x5f\x79\x6e','\x69\x65\x56\x65\x72\x73\x69\x6f\x6e','\x09\x09\x09\x3c\x21\x2d\x2d\x20\x2f\x2f\ud654\uba74\ucee8\ud2b8\ub864\x20\x2d\x2d\x3e','\uc815\ubcf4\uac00\x20\uc5c6\uc2b5\ub2c8\ub2e4\x2e\x0a\ub354\x20\uc774\uc0c1\x20\uc81c\uacf5\ub418\uc9c0\x20\uc54a\uac70\ub098\x2c\x20\uc874\uc7ac\ud558\uc9c0\x20\uc54a\ub294\x20\uc815\ubcf4\uc785\ub2c8\ub2e4\x2e','\x32\x34\x31\x34\x34\x33\x36\x73\x55\x69\x77\x4b\x61','\x65\x6e\x64\x54\x69\x6d\x65','\x37\x33\x32\x48\x46\x4e\x6b\x42\x4b','\x70\x6c\x61\x79\x43\x6f\x6d\x6d\x6f\x6e','\x4e\x41\x4d\x45\x5f\x43\x48\x45\x43\x4b','\x74\x68\x75\x6d\x62\x6e\x61\x69\x6c\x50\x61\x74\x68','\x76\x6f\x6c\x75\x6d\x65','\x6c\x69\x6b\x65','\x65\x6d\x62\x65\x64','\x37\x32\x30\x70','\x73\x65\x6e\x64\x4c\x6f\x67','\x43\x68\x72\x6f\x6d\x65\x2f','\x3f\x75\x70\x61\x3d','\x73\x65\x72\x76\x69\x63\x65\x49\x64','\x74\x6f\x75\x63\x68\x73\x74\x61\x72\x74','\x76\x6f\x64\x2e\x62\x75\x67\x73\x2e\x67\x73\x63\x64\x6e\x2e\x63\x6f\x6d\x2f\x6d\x70\x34\x2f','\x63\x68\x61\x6e\x67\x65\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e','\x70\x61\x67\x65\x48\x69\x64\x65','\x66\x75\x6c\x6c\x73\x63\x72\x65\x65\x6e','\x70\x61\x75\x73\x65\x56\x69\x64\x65\x6f','\x3c\x73\x70\x61\x6e\x20\x63\x6c\x61\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x3e\x3c\x61\x20\x68\x72\x65\x66\x3d\x22\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3a\x76\x6f\x69\x64\x28\x62\x75\x67\x73\x2e\x75\x69\x2e\x61\x6c\x65\x72\x74\x41\x64\x75\x6c\x74\x4e\x6f\x74\x69\x63\x65\x28\x29\x29\x3b\x22\x20\x63\x6c\x61\x73\x73\x3d\x22\x74\x72\x61\x63\x6b\x49\x63\x6f\x6e\x20\x69\x63\x41\x64\x75\x6c\x74\x20\x70\x6e\x67\x42\x67\x22\x20\x74\x69\x74\x6c\x65\x3d\x22\x31\x39\uae08\x22\x3e\x3c\x73\x70\x61\x6e\x3e\x31\x39\uae08\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x2f\x61\x3e\x3c\x2f\x73\x70\x61\x6e\x3e','\x3c\x2f\x74\x69\x6d\x65\x3e','\x34\x38\x30\x70','\uc74c\uc18c\uac70','\x61\x75\x74\x68','\x09\x09\x3c\x2f\x64\x69\x76\x3e','\x4d\x53\x46\x75\x6c\x6c\x73\x63\x72\x65\x65\x6e\x43\x68\x61\x6e\x67\x65','\x45\x76\x65\x6e\x74','\x23\x42\x75\x67\x73\x4d\x76\x50\x6c\x61\x79\x65\x72','\x6c\x6f\x67\x54\x79\x70\x65','\x75\x70\x64\x61\x74\x65\x42\x75\x66\x66\x65\x72\x42\x61\x72','\x66\x6c\x61\x67\x4d\x6f\x75\x73\x65\x44\x65\x74\x65\x63\x74\x69\x6f\x6e','\x70\x6c\x61\x79\x65\x72\x73','\x76\x69\x64\x65\x6f\x4f\x62\x6a','\x63\x74\x6c\x73\x65\x74','\x69\x73\x46\x75\x6c\x6c\x53\x74\x72\x65\x61\x6d\x69\x6e\x67','\x72\x65\x71\x75\x65\x73\x74\x46\x75\x6c\x6c\x73\x63\x72\x65\x65\x6e','\x2e\x63\x75\x72\x72\x65\x6e\x74','\x68\x74\x6d\x6c\x35\x43\x61\x6e\x50\x6c\x61\x79\x48\x61\x6e\x64\x6c\x65\x72','\x77\x65\x62\x6b\x69\x74\x43\x61\x6e\x63\x65\x6c\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e','\x20\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c\x20\x2e\x63\x74\x6c\x73\x65\x74\x20\x2e\x73\x63\x72\x65\x65\x6e\x20\x2e\x62\x74\x6e\x4c\x69\x6b\x65\x42\x75\x74\x74\x6f\x6e','\x26\x71\x75\x61\x6c\x69\x74\x79\x3d','\x75\x70\x64\x61\x74\x65\x4c\x69\x6b\x65\x42\x75\x74\x74\x6f\x6e','\x70\x6c\x61\x79','\x6c\x61\x73\x74\x4d\x56\x50\x6c\x61\x79\x65\x72\x58','\x73\x74\x6f\x70\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e','\x69\x73\x4d\x6f\x75\x73\x65\x49\x6e','\x75\x6e\x61\x75\x74\x68','\x61\x70\x70','\x09\x09\x09\x09\x09\x3c\x2f\x75\x6c\x3e','\x09\x09\x09\x09\x09\x3c\x73\x70\x61\x6e\x3e\x2f\x3c\x2f\x73\x70\x61\x6e\x3e','\ud604\uc7ac\x20\ub3d9\uc77c\ud55c\x20\uc544\uc774\ub514\ub85c\x20\ub2e4\ub978\x20\uae30\uae30\x20\ub610\ub294\x3c\x62\x72\x2f\x3e\ub2e4\ub978\x20\ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c\x20\uc7ac\uc0dd\uc744\x20\uc2dc\ub3c4\ud558\uc5ec\x3c\x62\x72\x2f\x3e\x3c\x65\x6d\x3e\x31\ubd84\x20\ubbf8\ub9ac\ubcf4\uae30\x3c\x2f\x65\x6d\x3e\ub9cc\x20\uac00\ub2a5\ud569\ub2c8\ub2e4\x2e\x3c\x62\x72\x2f\x3e\x3c\x62\x72\x2f\x3e\uc804\uace1\uc744\x20\ub4e4\uc73c\uc2dc\ub824\uba74\x3c\x62\x72\x2f\x3e\ub2e4\uc2dc\x20\uc7ac\uc0dd\uc744\x20\uc2dc\ub3c4\ud574\x20\uc8fc\uc138\uc694\x2e','\x69\x6d\x61\x67\x65\x4f\x62\x6a','\x63\x75\x72\x72\x65\x6e\x74\x50\x6c\x61\x79\x65\x72\x49\x64','\x74\x69\x6d\x65\x70\x6f\x73','\x09\x09\x09\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x27\x63\x75\x72\x72\x65\x6e\x74\x27\x20\x73\x74\x79\x6c\x65\x3d\x27\x77\x69\x64\x74\x68\x3a\x30\x25\x3b\x27\x3e\x3c\x73\x70\x61\x6e\x20\x63\x6c\x61\x73\x73\x3d\x27\x73\x65\x65\x6b\x62\x61\x72\x27\x3e\ud604\uc7ac\x20\uc7ac\uc0dd\x20\x30\x25\x3c\x2f\x73\x70\x61\x6e\x3e\x30\x30\x3a\x30\x30\x3c\x2f\x64\x69\x76\x3e','\x09\x09\x3c\x76\x69\x64\x65\x6f\x20\x63\x6f\x6e\x74\x72\x6f\x6c\x73\x4c\x69\x73\x74\x3d\x27\x6e\x6f\x64\x6f\x77\x6e\x6c\x6f\x61\x64\x27\x20\x63\x6c\x61\x73\x73\x3d\x27\x62\x75\x67\x73\x56\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72','\x70\x61\x6e\x65\x6c\x53\x69\x7a\x65\x58','\x32\x31\x39\x33\x33\x30\x55\x56\x52\x47\x4c\x59','\x72\x55\x72\x6c','\x74\x61\x72\x67\x65\x74','\x75\x70\x64\x61\x74\x65\x4c\x69\x6b\x65\x53\x74\x61\x74\x65','\x09\x09\x09\x09\x09\x09\x3c\x6c\x69\x3e\x3c\x61\x20\x68\x72\x65\x66\x3d\x27\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3a\x3b\x27\x3e\x31\x30\x38\x30\x70\x3c\x2f\x61\x3e\x3c\x2f\x6c\x69\x3e','\x31\x34\x35\x39\x35\x36\x33\x55\x52\x61\x57\x4a\x6a','\x63\x6f\x75\x6e\x74\x50\x6c\x61\x79\x65\x64','\x2f\x6d\x76\x2f','\x70\x6c\x61\x74\x66\x6f\x72\x6d','\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74','\x66\x61\x64\x65\x4f\x75\x74','\x73\x72\x63','\x2e\x73\x65\x65\x6b\x20\x2e\x74\x69\x6d\x65\x54\x6f\x74\x61\x6c','\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e','\x2e\x6a\x70\x67','\x50\x4f\x53\x54','\x6d\x76\x48\x50\x6c\x61\x79\x65\x72\x44\x61\x74\x61','\x61\x75\x74\x6f\x70\x6c\x61\x79\x53\x74\x6f\x70','\x46\x48\x44','\x73\x65\x65\x6b\x41\x72\x65\x61','\x69\x6d\x67','\x62\x74\x6e\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e\x43\x61\x6e\x63\x65\x6c','\x68\x61\x73\x43\x6c\x61\x73\x73','\x64\x72\x61\x67\x45\x6e\x64','\x71\x75\x61\x6c\x69\x74\x79\x53\x44','\x73\x68\x6f\x77','\x6d\x6e\x70\x6c\x61\x79\x65\x72','\x72\x65\x6d\x6f\x76\x65\x43\x6c\x61\x73\x73','\x63\x6c\x69\x63\x6b','\x64\x72\x61\x67\x53\x74\x61\x72\x74','\x67\x65\x74\x53\x74\x72\x55\x72\x6c','\x73\x68\x6f\x77\x4c\x6f\x67\x69\x6e\x4c\x61\x79\x65\x72','\x73\x65\x74\x53\x65\x65\x6b','\x73\x74\x72\x65\x61\x6d\x69\x6e\x67\x4c\x6f\x67\x67\x65\x72','\x69\x73\x44\x72\x61\x67','\x76\x6f\x6c\x75\x6d\x65\x41\x72\x65\x61','\x6d\x75\x6c\x74\x69\x5f\x61\x72\x74\x69\x73\x74\x5f\x79\x6e','\x2e\x62\x74\x6e\x4e\x6f\x72\x6d\x61\x6c','\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x48\x65\x61\x64\x65\x72','\x73\x65\x74\x49\x6d\x61\x67\x65\x4d\x65\x74\x61','\x3c\x73\x70\x61\x6e\x3e\ud604\uc7ac\ud654\uc9c8\x3c\x2f\x73\x70\x61\x6e\x3e\x34\x38\x30\x70','\x73\x65\x65\x6b\x42\x75\x66\x66\x65\x72\x53\x65\x74','\x09\x09\x09\x09\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x27\x76\x6f\x6c\x75\x6d\x65\x27\x3e','\x61\x6c\x72\x65\x61\x64\x79\x4f\x70\x65\x6e\x50\x6f\x70\x75\x70','\x48\x54\x4d\x4c\x35\x5f\x4d\x45\x44\x49\x41\x5f\x45\x52\x52\x4f\x52\x20\x54\x59\x50\x45\x5f\x32\x20\x2d\x20','\x69\x73\x4e\x61\x6d\x65\x43\x68\x65\x63\x6b','\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x27\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x56\x69\x65\x77\x27\x3e','\x68\x61\x6e\x64\x6c\x65\x45\x76\x65\x6e\x74','\x31\x30\x30\x25','\x69\x73\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e','\ud574\ub2f9\x20\uc601\uc0c1\uc740\x20\uad8c\ub9ac\uc0ac\uc758\x20\uc694\uccad\uc73c\ub85c\x20\uc7ac\uc0dd\uc774\x20\ubd88\uac00\ud569\ub2c8\ub2e4\x2e','\x64\x6f\x77\x6e','\x6c\x61\x79\x65\x72\x41\x64\x75\x6c\x74\x4e\x6f\x74\x69\x63\x65','\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x27\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c\x27\x3e','\x09\x09\x3c\x61\x20\x68\x72\x65\x66\x3d\x27\x23\x27\x20\x63\x6c\x61\x73\x73\x3d\x27\x70\x6c\x61\x79\x42\x75\x74\x74\x6f\x6e\x20\x70\x6c\x61\x79\x27\x20\x61\x72\x69\x61\x2d\x6c\x61\x62\x65\x6c\x3d\x27\uc0c8\ucc3d\x27\x3e\x3c\x73\x70\x61\x6e\x3e\x3c\x73\x74\x72\x6f\x6e\x67\x3e\x3c\x2f\x73\x74\x72\x6f\x6e\x67\x3e\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x2f\x61\x3e','\x09\x09\x09\x09\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x27\x74\x69\x6d\x65\x27\x3e','\x09\x09\x09\x3c\x62\x75\x74\x74\x6f\x6e\x20\x63\x6c\x61\x73\x73\x3d\x27\x62\x74\x6e\x4e\x6f\x72\x6d\x61\x6c\x27\x3e\ub85c\uadf8\uc778\x3c\x2f\x62\x75\x74\x74\x6f\x6e\x3e','\x77\x69\x73\x65\x6c\x6f\x67','\x6c\x6f\x63\x61\x74\x69\x6f\x6e','\x73\x76\x63\x49\x64','\x73\x65\x74\x56\x69\x64\x65\x6f\x51\x75\x61\x6c\x69\x74\x79','\x6d\x65\x64\x69\x61\x46\x6f\x72\x6d\x61\x74','\x74\x6f\x70','\x63\x61\x6e\x63\x65\x6c\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e','\x67\x65\x74\x44\x65\x66\x61\x75\x6c\x74\x4d\x65\x64\x69\x61\x46\x6f\x72\x6d\x61\x74','\x20\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c\x20\x2e\x63\x74\x6c\x73\x65\x74\x20\x2e\x70\x6c\x61\x79','\x09\x09\x09\x3c\x21\x2d\x2d\x20\x2f\x2f\uc7ac\uc0dd\ucee8\ud2b8\ub864\x20\x2d\x2d\x3e','\x70\x6c\x61\x79\x65\x72\x54\x79\x70\x65','\x76\x6f\x6c\x75\x6d\x65\x42\x61\x73\x65','\x69\x73\x49\x4f\x50\x6c\x61\x79\x69\x6e\x67\x46\x6c\x61\x67','\x09\x09\x09\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x27\x73\x65\x65\x6b\x42\x47\x27\x3e\x3c\x2f\x64\x69\x76\x3e','\x67\x65\x74\x49\x74\x65\x6d','\x63\x68\x72\x6f\x6d\x65\x56\x65\x72\x73\x69\x6f\x6e','\x62\x75\x74\x74\x6f\x6e','\x20\uc601\uc0c1\x20\ubcf4\uae30\x3c\x2f\x73\x74\x72\x6f\x6e\x67\x3e','\x2e\x63\x74\x6c\x73\x65\x74\x20\x2e\x70\x6c\x61\x79\x20\x2e\x74\x69\x6d\x65\x20\x2e\x74\x6f\x74\x61\x6c','\x6d\x75\x74\x65\x42\x75\x74\x74\x6f\x6e','\x09\x09\x09\x09\x09\x3c\x74\x69\x6d\x65\x20\x64\x61\x74\x65\x74\x69\x6d\x65\x3d\x27\x30\x30\x3a\x30\x30\x27\x20\x63\x6c\x61\x73\x73\x3d\x27\x63\x75\x72\x72\x65\x6e\x74\x27\x3e\x3c\x73\x70\x61\x6e\x3e\ud604\uc7ac\x20\uc7ac\uc0dd\x20\uc2dc\uac04\x20\x3a\x3c\x2f\x73\x70\x61\x6e\x3e\x30\x30\x3a\x30\x30\x3c\x2f\x74\x69\x6d\x65\x3e','\x63\x75\x72\x4d\x6f\x75\x73\x65\x43\x75\x72\x73\x6f\x72','\x09\x09\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x27\x63\x74\x6c\x73\x65\x74\x27\x3e','\x6d\x65\x73\x73\x61\x67\x65','\x63\x68\x65\x63\x6b\x44\x61\x74\x61\x66\x72\x65\x65\x43\x6f\x6e\x66\x69\x72\x6d','\x66\x61\x64\x65\x49\x6e','\x70\x6c\x61\x79\x65\x72\x5f\x6d\x76\x5f\x30\x39','\x73\x65\x74\x45\x6e\x64','\x31\x34\x34\x32\x38\x30\x7a\x44\x71\x4a\x72\x69','\x73\x65\x74\x49\x74\x65\x6d','\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x41\x72\x74\x69\x73\x74','\x69\x63\x6f\x6e\x31\x39','\x6d\x6f\x7a\x52\x65\x71\x75\x65\x73\x74\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e','\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x54\x69\x74\x6c\x65','\x62\x6f\x64\x79','\x2e\x62\x75\x66\x66\x65\x72\x69\x6e\x67','\x70\x61\x67\x65\x58','\x09\x09\x09\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x27\x62\x75\x67\x73\x54\x68\x75\x6d\x62\x6e\x61\x69\x6c\x27\x3e\x3c\x69\x6d\x67\x20\x73\x72\x63\x3d\x27\x27\x20\x61\x6c\x74\x3d\x27\x27\x3e\x3c\x2f\x64\x69\x76\x3e','\x69\x73\x50\x6c\x61\x79','\x70\x6c\x61\x79\x65\x72\x5f\x6d\x76\x5f\x30\x35','\x70\x61\x6e\x65\x6c','\x65\x6e\x64','\uc7ac\uc0dd\x20\uc911\uc5d0\x20\uc624\ub958\uac00\x20\ubc1c\uc0dd\ud558\uc600\uc2b5\ub2c8\ub2e4\x2e','\x53\x5f\x6d\x76\x5f\x30\x31','\x74\x65\x78\x74','\x73\x74\x72\x65\x61\x6d\x69\x6e\x67\x54\x79\x70\x65','\x73\x76\x63\x5f\x68\x64\x5f\x79\x6e','\x3c\x73\x70\x61\x6e\x20\x63\x6c\x61\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x3e\x3c\x61\x20\x68\x72\x65\x66\x3d\x22\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3a\x76\x6f\x69\x64\x28\x62\x75\x67\x73\x2e\x75\x69\x2e\x61\x6c\x65\x72\x74\x48\x6f\x6c\x64\x42\x61\x63\x6b\x4e\x6f\x74\x69\x63\x65\x28\x27\x6d\x76\x27\x29\x29\x3b\x22\x20\x63\x6c\x61\x73\x73\x3d\x22\x74\x72\x61\x63\x6b\x49\x63\x6f\x6e\x20\x69\x63\x48\x6f\x6c\x64\x62\x61\x63\x6b\x20\x70\x6e\x67\x42\x67\x22\x20\x74\x69\x74\x6c\x65\x3d\x22\ud640\ub4dc\ubc31\x22\x3e\x3c\x73\x70\x61\x6e\x3e\ud640\ub4dc\ubc31\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x2f\x61\x3e\x3c\x2f\x73\x70\x61\x6e\x3e','\ube44\uc815\uc0c1\uc801\uc778\x20\ubc85\uc2a4\x20\uc0ac\uc6a9\uc774\x20\ud655\uc778\ub418\uc5b4\x3c\x62\x72\x2f\x3e\uc804\uace1\ub4e3\uae30\uac00\x20\uc81c\ud55c\ub418\uc5c8\uc2b5\ub2c8\ub2e4\x2e\x3c\x62\x72\x2f\x3e\uace0\uac1d\uc13c\ud130\ub85c\x20\ubb38\uc758\ud574\uc8fc\uc138\uc694\x2e','\x68\x74\x6d\x6c\x35\x4d\x65\x64\x69\x61\x45\x72\x72\x6f\x72\x43\x6f\x75\x6e\x74','\x77\x65\x62\x6b\x69\x74\x65\x6e\x64\x66\x75\x6c\x6c\x73\x63\x72\x65\x65\x6e','\x6e\x6f\x6e\x65','\x2f\x70\x61\x79\x2f\x6d\x6f\x62\x69\x6c\x65\x2f\x70\x72\x6f\x64\x75\x63\x74','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x69\x6d\x61\x67\x65\x2e\x62\x75\x67\x73\x6d\x2e\x63\x6f\x2e\x6b\x72\x2f\x6d\x76\x68\x64\x2f\x69\x6d\x61\x67\x65\x73\x2f','\x54\x59\x50\x45\x5f\x4d\x56','\x38\x30\x30\x31\x39\x39\x36\x35','\x68\x72\x65\x66','\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72','\x6d\x6f\x7a\x66\x75\x6c\x6c\x73\x63\x72\x65\x65\x6e\x63\x68\x61\x6e\x67\x65','\x3c\x73\x70\x61\x6e\x3e\ucd1d\x20\uc7ac\uc0dd\x20\uc2dc\uac04\x20\x3a\x3c\x2f\x73\x70\x61\x6e\x3e','\x74\x69\x6d\x65','\x64\x61\x74\x65\x74\x69\x6d\x65','\x57\x45\x42\x48\x52','\x61\x64\x75\x6c\x74','\x70\x61\x72\x65\x6e\x74','\x69\x73\x50\x6c\x61\x79\x69\x6e\x67\x4d\x76','\x3c\x64\x69\x76\x3e\x3c\x70\x3e','\x2e\x76\x6f\x6c\x75\x6d\x65\x20\x2e\x62\x74\x6e\x56\x6f\x6c\x4f\x6e','\x3c\x2f\x73\x70\x61\x6e\x3e','\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64','\x6c\x6f\x67\x69\x6e\x43\x6f\x6d\x6d\x6f\x6e','\x6d\x76\x48\x50\x6c\x61\x79\x65\x72','\x63\x61\x74\x63\x68','\x6d\x75\x74\x65\x64','\x63\x75\x72\x73\x6f\x72','\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3a\x3b','\x09\x09\x3c\x61\x20\x68\x72\x65\x66\x3d\x27\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3a\x3b\x27\x20\x63\x6c\x61\x73\x73\x3d\x27\x70\x6c\x61\x79\x27\x20\x61\x72\x69\x61\x2d\x6c\x61\x62\x65\x6c\x3d\x27\uc0c8\ucc3d\x27\x3e\x3c\x73\x70\x61\x6e\x3e\x3c\x73\x74\x72\x6f\x6e\x67\x3e\x3c\x2f\x73\x74\x72\x6f\x6e\x67\x3e\x3c\x74\x69\x6d\x65\x20\x64\x61\x74\x65\x74\x69\x6d\x65\x3d\x27\x30\x30\x3a\x30\x30\x27\x3e\x30\x30\x3a\x30\x30\x3c\x2f\x74\x69\x6d\x65\x3e\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x2f\x61\x3e','\x75\x70\x64\x61\x74\x65\x54\x68\x75\x6d\x62\x6e\x61\x69\x6c\x53\x69\x7a\x65','\x69\x73\x46\x72\x65\x65','\x73\x74\x61\x72\x74\x54\x69\x6d\x65','\x2e\x76\x6f\x6c\x75\x6d\x65','\uc774\uc6a9\uad8c\x20\uad6c\ub9e4','\x6c\x61\x73\x74\x4d\x6f\x75\x73\x65\x54\x69\x6d\x65','\x09\x09\x09\x3c\x64\x69\x76\x20\x20\x63\x6c\x61\x73\x73\x3d\x27\x62\x75\x66\x66\x65\x72\x69\x6e\x67\x53\x65\x74\x27\x3e','\x70\x72\x6f\x67\x72\x65\x73\x73','\x73\x65\x74\x44\x65\x66\x61\x75\x6c\x74\x4d\x65\x64\x69\x61\x46\x6f\x72\x6d\x61\x74','\x73\x65\x65\x6b\x53\x6c\x69\x64\x65\x72','\x61\x62\x75\x73\x65','\x09\x09\x09\x3c\x74\x69\x6d\x65\x20\x64\x61\x74\x65\x74\x69\x6d\x65\x3d\x27\x30\x30\x3a\x30\x30\x27\x20\x63\x6c\x61\x73\x73\x3d\x27\x74\x69\x6d\x65\x43\x75\x72\x72\x65\x6e\x74\x27\x3e\x3c\x73\x70\x61\x6e\x3e\ud604\uc7ac\x20\uc7ac\uc0dd\x20\uc2dc\uac04\x20\x3a\x3c\x2f\x73\x70\x61\x6e\x3e\x30\x30\x3a\x30\x30\x3c\x2f\x74\x69\x6d\x65\x3e','\x42\x53\x44','\x63\x6c\x65\x61\x6e','\x61\x72\x74\x69\x73\x74\x5f\x69\x64','\x6c\x6f\x67\x69\x6e\x42\x75\x74\x74\x6f\x6e','\x72\x75\x6e\x4d\x75\x73\x69\x63\x56\x69\x64\x65\x6f','\x3c\x61\x20\x68\x72\x65\x66\x3d\x27\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3a\x3b\x27\x3e','\x48\x54\x4d\x4c\x35\x5f\x4d\x45\x44\x49\x41\x5f\x45\x52\x52\x4f\x52\x20\x54\x59\x50\x45\x5f\x31\x20\x2d\x20','\x2f\x73\x74\x72\x2f\x6e\x65\x77\x2f\x6c\x6f\x67','\x65\x72\x72\x6f\x72','\x6d\x76\x49\x64','\x66\x69\x6e\x64','\x73\x65\x65\x6b\x69\x6e\x67','\x70\x61\x75\x73\x65\x4f\x74\x68\x65\x72\x56\x69\x64\x65\x6f\x73','\x20\x68\x69\x64\x65\x49\x4f\x53\x6d\x6f\x62\x69\x6c\x65\x50\x6c\x61\x79\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c\x73','\x6d\x76\x20\x70\x6c\x61\x79\x65\x72\x20\x6d\x75\x74\x65\x64\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6f\x63\x63\x75\x72\x73\x20\x61\x6e\x20\x65\x72\x72\x6f\x72','\x09\x09\x09\x09\x09\x3c\x62\x75\x74\x74\x6f\x6e\x20\x63\x6c\x61\x73\x73\x3d\x27\x62\x74\x6e\x4d\x75\x74\x65\x27\x20\x73\x74\x79\x6c\x65\x3d\x27\x64\x69\x73\x70\x6c\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x27\x3e\uc74c\uc18c\uac70\x20\ud574\uc81c\x3c\x2f\x62\x75\x74\x74\x6f\x6e\x3e','\x70\x61\x75\x73\x65','\x6d\x76\x41\x6c\x65\x72\x74','\x70\x61\x6e\x65\x6c\x50\x6c\x61\x79\x65\x72\x54\x69\x74\x6c\x65','\x38\x30\x30\x38\x31\x32\x34','\x73\x65\x65\x6b\x42\x75\x74\x74\x6f\x6e','\x63\x6f\x6e\x74\x61\x69\x6e','\x57\x45\x42\x48\x50','\x61\x6c\x74','\x62\x74\x6e\x50\x6c\x61\x79','\x70\x6c\x61\x79\x65\x72\x5f\x6d\x76\x5f\x30\x34','\x70\x6f\x73\x69\x74\x69\x6f\x6e','\x69\x73\x52\x65\x70\x6c\x61\x79','\x63\x6c\x69\x65\x6e\x74\x58','\x6c\x6f\x67','\x6c\x61\x73\x74\x56\x6f\x6c\x75\x6d\x65\x56\x61\x6c\x75\x65','\x41\x55\x54\x48\x5f\x41\x44\x55\x4c\x54\x5f\x43\x48\x45\x43\x4b\x5f\x4e\x4f\x4e\x41\x4d\x45','\ub85c\uadf8\uc778','\x69\x73\x44\x72\x61\x67\x67\x69\x6e\x67','\x38\x30\x32\x33\x32\x32\x37\x30','\x74\x69\x6d\x65\x70\x6f\x73\x4c\x61\x62\x65\x6c','\x73\x65\x65\x6b\x65\x64','\ud574\ub2f9\x20\ube0c\ub77c\uc6b0\uc800\ub294\x20\x48\x54\x4d\x4c\x35\ub97c\x20\uc9c0\uc6d0\ud558\uc9c0\x20\uc54a\uc544\x20\ubc85\uc2a4\uc571\uc744\x20\uc2e4\ud589\ud569\ub2c8\ub2e4\x2e','\x2f\x6d\x76\x50\x6c\x61\x79\x65\x72\x2f\x6d\x76\x75\x70\x61','\x70\x61\x75\x73\x65\x53\x74\x61\x72\x74\x54\x69\x6d\x65','\x75\x6e\x62\x69\x6e\x64','\x3c\x69\x6d\x67\x2f\x3e','\x23\x63\x6c\x69\x65\x6e\x74\x49\x70\x23','\x72\x65\x73\x74\x6f\x72\x65\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e','\x32\x37\x45\x55\x42\x4f\x48\x64','\x73\x65\x74\x54\x68\x75\x6d\x62\x6e\x61\x69\x6c','\x09\x09\x09\x09\x09\x3c\x2f\x70\x3e','\x64\x72\x61\x67\x67\x61\x62\x6c\x65','\x63\x72\x65\x61\x74\x65\x56\x69\x64\x65\x6f\x50\x61\x6e\x65\x6c','\x09\x09\x09\x3c\x74\x69\x6d\x65\x20\x64\x61\x74\x65\x74\x69\x6d\x65\x3d\x27\x30\x30\x3a\x30\x30\x27\x20\x63\x6c\x61\x73\x73\x3d\x27\x74\x69\x6d\x65\x54\x6f\x74\x61\x6c\x27\x3e\x3c\x73\x70\x61\x6e\x3e\ucd1d\x20\uc7ac\uc0dd\x20\uc2dc\uac04\x20\x3a\x3c\x2f\x73\x70\x61\x6e\x3e\x30\x30\x3a\x30\x30\x3c\x2f\x74\x69\x6d\x65\x3e','\x6d\x73\x45\x78\x69\x74\x46\x75\x6c\x6c\x73\x63\x72\x65\x65\x6e','\x6f\x66\x66','\x4c\x4f\x47\x4f','\x6c\x69\x6b\x65\x42\x75\x74\x74\x6f\x6e','\x2e\x74\x78\x74','\x09\x09\x09\x09\x09\x09\x3c\x6c\x69\x3e\x3c\x61\x20\x68\x72\x65\x66\x3d\x27\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3a\x3b\x27\x3e\x37\x32\x30\x70\x3c\x2f\x61\x3e\x3c\x2f\x6c\x69\x3e','\x73\x74\x6f\x70\x56\x69\x64\x65\x6f','\x2e\x6d\x70\x34','\x62\x74\x6e\x50\x61\x75\x73\x65','\x6d\x75\x73\x69\x63\x2e\x62\x75\x67\x73\x2e\x63\x6f\x2e\x6b\x72\x2f\x6d\x76\x2f','\x09\x09\x09\x09\x09\x3c\x62\x75\x74\x74\x6f\x6e\x20\x63\x6c\x61\x73\x73\x3d\x27\x62\x74\x6e\x56\x6f\x6c\x4f\x6e\x27\x3e\uc74c\uc18c\uac70\x3c\x2f\x62\x75\x74\x74\x6f\x6e\x3e','\x61\x6a\x61\x78','\x6f\x6e\x4d\x76\x49\x6e\x66\x6f\x43\x68\x61\x6e\x67\x65','\x75\x73\x65\x44\x61\x74\x61\x66\x72\x65\x65','\x6d\x76\x49\x6e\x66\x6f','\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65','\x6d\x6f\x75\x73\x65\x6c\x65\x61\x76\x65','\x63\x6c\x69\x65\x6e\x74\x59','\x68\x74\x6d\x6c\x35','\x76\x6f\x6c\x75\x6d\x65\x53\x6c\x69\x64\x65\x72','\x3f\x77\x6c\x5f\x72\x65\x66\x3d\x70\x6c\x61\x79\x65\x72\x5f\x6d\x76\x5f\x31\x30\x27\x20\x74\x61\x72\x67\x65\x74\x3d\x27\x5f\x62\x6c\x61\x6e\x6b\x27\x3e','\x70\x61\x6e\x65\x6c\x50\x6c\x61\x79\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c','\x76\x69\x64\x65\x6f\x4f\x62\x6a\x65\x63\x74\x41\x64\x64\x45\x76\x65\x6e\x74','\x09\x09\x09\x09\x09\x09\x3c\x73\x70\x61\x6e\x20\x63\x6c\x61\x73\x73\x3d\x27\x73\x65\x65\x6b\x42\x47\x27\x3e\x3c\x2f\x73\x70\x61\x6e\x3e','\x09\x09\x3c\x70\x3e','\x73\x65\x74\x56\x6f\x6c\x75\x6d\x65','\x6d\x6f\x7a\x49\x73\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e','\x73\x74\x72\x55\x72\x6c','\x61\x64\x64\x43\x6c\x61\x73\x73','\x6d\x75\x73\x69\x63\x63\x61\x73\x74\x2f\x65\x70\x69\x73\x6f\x64\x65','\x73\x65\x74\x52\x65\x73\x75\x6d\x65','\x69\x73\x41\x64\x75\x6c\x74\x50\x6c\x61\x79','\x61\x6c\x65\x72\x74\x41\x64\x75\x6c\x74\x4e\x6f\x74\x69\x63\x65','\x74\x68\x75\x6d\x62\x4f\x62\x6a','\x6d\x73\x69\x65','\x70\x75\x73\x68','\uc74c\uc6d0\x20\ud30c\uc77c\x20\ub2e4\uc6b4\ub85c\ub4dc\uac00\x20\uc911\uc9c0\ub418\uc5c8\uc2b5\ub2c8\ub2e4\x2e','\uc74c\uc6d0\x20\ud30c\uc77c\x20\ub514\ucf54\ub529\uc5d0\x20\uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4\x2e','\x62\x61\x72\x53\x69\x7a\x65','\x2e\x76\x6f\x6c\x75\x6d\x65\x20\x2e\x73\x65\x65\x6b','\x31\x39\uc138\x20\ubbf8\ub9cc\uc740\x20\uc774\uc6a9\ud560\x20\uc218\x20\uc5c6\uc2b5\ub2c8\ub2e4\x2e\x0a\uc131\uc778\uc778\uc99d\x20\ud655\uc778\uc744\x20\uc704\ud574\x20\uba3c\uc800\x20\ub85c\uadf8\uc778\ud574\x20\uc8fc\uc138\uc694\x2e','\x64\x69\x76\x2e\x6c\x6f\x61\x64\x69\x6e\x67\x42\x75\x74\x74\x69\x6f\x6e','\x64\x69\x6d\x6d\x65\x64','\x70\x6c\x61\x79\x43\x65\x6e\x74\x65\x72','\x70\x72\x6f\x74\x6f\x74\x79\x70\x65','\x63\x75\x72\x72\x65\x6e\x74\x54\x69\x6d\x65','\x77\x65\x62\x6b\x69\x74\x49\x73\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e','\x3c\x2f\x74\x69\x6d\x65\x3e\x3c\x2f\x73\x70\x61\x6e\x3e','\x6d\x76\x5f\x74\x69\x74\x6c\x65','\x6f\x66\x66\x73\x65\x74\x59','\x70\x6c\x61\x79\x65\x72\x5f\x6d\x76\x5f\x31\x33','\x6d\x6f\x75\x73\x65\x6d\x6f\x76\x65','\x63\x6c\x61\x73\x73','\x70\x6c\x61\x79\x45\x6e\x64','\x3c\x65\x6d\x20\x73\x74\x79\x6c\x65\x3d\x27\x64\x69\x73\x70\x6c\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x27\x3e\uc774\x20\uc601\uc0c1\uc740\x20\uc544\ud2f0\uc2a4\ud2b8\uac00\x20\uc720\ub8cc\ub85c\x20\uc124\uc815\ud558\uc600\uc2b5\ub2c8\ub2e4\x2e\x3c\x2f\x65\x6d\x3e\ub85c\uadf8\uc778\ud558\uace0\x20\uc804\uccb4\x20\uc601\uc0c1\uc744\x20\uac10\uc0c1\ud558\uc138\uc694\x2e','\x68\x74\x6d\x6c\x35\x53\x65\x65\x6b\x69\x6e\x67\x48\x61\x6e\x64\x6c\x65\x72','\x70\x73\x73\x72\x6c','\x61\x6e\x69\x6d\x61\x74\x65','\x34\x30\x36\x35\x32','\x6d\x75\x73\x69\x63','\x67\x65\x74\x54\x69\x6d\x65','\x6f\x6e\x6f\x72\x69\x65\x6e\x74\x61\x74\x69\x6f\x6e\x63\x68\x61\x6e\x67\x65','\x73\x61\x76\x65\x64\x43\x75\x72\x72\x65\x6e\x74\x54\x69\x6d\x65','\x73\x65\x74\x55\x70\x61','\x09\x09\x09\x3c\x73\x70\x61\x6e\x20\x63\x6c\x61\x73\x73\x3d\x27\x74\x78\x74\x27\x3e\x3c\x65\x6d\x3e\uc774\x20\uc601\uc0c1\uc740\x20\uc544\ud2f0\uc2a4\ud2b8\uac00\x20\uc720\ub8cc\ub85c\x20\uc124\uc815\ud558\uc600\uc2b5\ub2c8\ub2e4\x2e\x3c\x2f\x65\x6d\x3e\ub85c\uadf8\uc778\ud558\uace0\x20\uc804\uccb4\x20\uc601\uc0c1\uc744\x20\uac10\uc0c1\ud558\uc138\uc694\x2e\x3c\x2f\x73\x70\x61\x6e\x3e','\x73\x74\x72\x6f\x6e\x67\x20\x61','\x61\x64\x75\x6c\x74\x43\x68\x65\x63\x6b\x54\x79\x70\x65','\x74\x69\x6d\x65\x46\x6f\x72\x6d\x61\x74','\x2f\x6d\x76\x50\x6c\x61\x79\x65\x72\x2f\x6c\x69\x67\x68\x74\x53\x65\x63\x75\x72\x65\x55\x72\x6c','\x70\x6c\x61\x79\x65\x72\x5f\x6d\x76\x5f\x30\x33','\x70\x6f\x73\x74\x65\x72','\x69\x6e\x69\x74','\x69\x73\x4d\x76\x4c\x69\x6b\x65','\x73\x65\x6c\x65\x63\x74\x4d\x73\x67','\x09\x09\x09\x3c\x2f\x64\x69\x76\x3e','\x63\x6c\x65\x61\x72\x42\x61\x73\x69\x63\x54\x69\x6d\x65\x72\x53\x74\x61\x74\x65','\x66\x6c\x6f\x6f\x72','\x73\x74\x6f\x70\x54\x72\x61\x63\x6b','\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c','\x3c\x62\x72\x2f\x3e\ub610\ub294\x20\ube0c\ub77c\uc6b0\uc800\ub97c\x20\ucd5c\uc2e0\x20\ubc84\uc804\uc73c\ub85c\x20\uc5c5\ub370\uc774\ud2b8\ud574\uc8fc\uc138\uc694\x2e','\x3c\x2f\x64\x69\x76\x3e','\x70\x6c\x61\x79\x4d\x76','\x72\x6f\x75\x6e\x64','\x62\x6f\x74\x74\x6f\x6d','\x68\x69\x64\x65','\x66\x75\x6e\x63\x74\x69\x6f\x6e','\x73\x68\x6f\x77\x41\x75\x74\x68\x65\x6e\x74\x69\x63\x61\x74\x69\x6f\x6e\x4d\x65\x73\x73\x61\x67\x65','\x63\x6f\x6e\x74\x72\x6f\x6c','\x73\x76\x63\x5f\x66\x68\x64\x5f\x73\x74\x72\x5f\x79\x6e','\x64\x65\x6c','\x70\x61\x6e\x65\x6c\x50\x6c\x61\x79\x65\x72\x56\x69\x65\x77','\x70\x61\x75\x73\x65\x41\x75\x64\x69\x6f','\x67\x65\x74\x48\x74\x6d\x6c\x35\x50\x6c\x61\x79\x65\x72','\x3c\x73\x74\x72\x6f\x6e\x67\x20\x73\x74\x79\x6c\x65\x3d\x27\x64\x69\x73\x70\x6c\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x27\x20\x63\x6c\x61\x73\x73\x3d\x27\x69\x63\x6f\x6e\x20\x69\x63\x31\x39\x27\x3e\x3c\x73\x70\x61\x6e\x20\x63\x6c\x61\x73\x73\x3d\x27\x62\x6c\x69\x6e\x64\x27\x3e\x5b\x31\x39\uae08\x5d\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x2f\x73\x74\x72\x6f\x6e\x67\x3e','\x68\x74\x6d\x6c\x35\x54\x69\x6d\x65\x75\x70\x64\x61\x74\x65\x48\x61\x6e\x64\x6c\x65\x72'];_0x3d0b=function(){return _0x58daf2;};return _0x3d0b();}(function(_0x127706,_0x50587a){var _0x4f956a=_0x3000,_0x451587=_0x127706();while(!![]){try{var _0x13d215=parseInt(_0x4f956a(0x2e9))/0x1*(-parseInt(_0x4f956a(0x2fb))/0x2)+parseInt(_0x4f956a(0x27b))/0x3+-parseInt(_0x4f956a(0x2bd))/0x4*(parseInt(_0x4f956a(0x333))/0x5)+parseInt(_0x4f956a(0x2f9))/0x6+parseInt(_0x4f956a(0x338))/0x7+parseInt(_0x4f956a(0x388))/0x8*(-parseInt(_0x4f956a(0x1a3))/0x9)+parseInt(_0x4f956a(0x287))/0xa;if(_0x13d215===_0x50587a)break;else _0x451587['push'](_0x451587['shift']());}catch(_0x456a16){_0x451587['push'](_0x451587['shift']());}}}(_0x3d0b,0x452f4),bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72']={'\x69\x73\x4c\x6f\x67\x67\x65\x64':![],'\x75\x73\x65\x53\x74\x72\x65\x61\x6d\x69\x6e\x67':![],'\x75\x73\x65\x44\x61\x74\x61\x66\x72\x65\x65':'\x4e','\x70\x6c\x61\x79\x65\x72\x73':null,'\x63\x75\x72\x72\x65\x6e\x74\x50\x6c\x61\x79\x65\x72\x49\x64':null,'\x6d\x75\x73\x69\x63\x55\x72\x6c':null,'\x68\x74\x6d\x6c\x35\x53\x75\x70\x70\x6f\x72\x74':![],'\x73\x74\x72\x65\x61\x6d\x69\x6e\x67\x54\x79\x70\x65':'','\x70\x6c\x61\x74\x66\x6f\x72\x6d':null,'\x64\x65\x76\x69\x63\x65':null,'\x69\x65\x56\x65\x72\x73\x69\x6f\x6e':-0x1,'\x69\x65\x4f\x53\x56\x65\x72\x73\x69\x6f\x6e':-0x1,'\x63\x68\x72\x6f\x6d\x65\x56\x65\x72\x73\x69\x6f\x6e':-0x1,'\x69\x73\x49\x4f\x53\x53\x61\x66\x61\x72\x69':![],'\x69\x6e\x69\x74':function(_0x38be95,_0x551d90,_0x61851d,_0x189336,_0x4e01c4){var _0x278de3=_0x3000;this['\x70\x6c\x61\x79\x65\x72\x73']=[],this['\x69\x73\x4c\x6f\x67\x67\x65\x64']=_0x38be95,this['\x75\x73\x65\x53\x74\x72\x65\x61\x6d\x69\x6e\x67']=_0x551d90,this[_0x278de3(0x1b6)]=_0x61851d,this['\x6d\x75\x73\x69\x63\x55\x72\x6c']=_0x189336!=null?_0x189336:g_urlMusic;var _0x5027a3=navigator['\x75\x73\x65\x72\x41\x67\x65\x6e\x74'];if(_0x5027a3[_0x278de3(0x2b4)](/Android|Windows CE|BlackBerry|Symbian|Windows Phone|webOS|Opera Mini|Opera Mobi|POLARIS|IEMobile|lgtelecom|nokia|SonyEricsson/i)!=null||_0x5027a3[_0x278de3(0x2b4)](/LG|SAMSUNG|Samsung/)!=null){this[_0x278de3(0x399)]=_0x278de3(0x281),this[_0x278de3(0x33b)]=_0x278de3(0x257),this[_0x278de3(0x2e2)]=_0x278de3(0x266);var _0x595741=_0x5027a3[_0x278de3(0x2e5)](_0x5027a3[_0x278de3(0x284)](_0x278de3(0x304))+0x7,_0x5027a3[_0x278de3(0x284)](_0x278de3(0x304))+0x9);if(_0x595741!='')this[_0x278de3(0x37b)]=parseInt(_0x595741);}else{if(_0x5027a3[_0x278de3(0x2b4)](/iPhone|iPod/i)!=null){this[_0x278de3(0x399)]='\x4d\x57\x45\x42\x48\x4d',this[_0x278de3(0x33b)]=_0x278de3(0x257),this[_0x278de3(0x2e2)]=_0x278de3(0x28b);if(_0x5027a3[_0x278de3(0x2b4)](/Safari/)!=null)this[_0x278de3(0x208)]=!![];else this[_0x278de3(0x208)]=![];}else{if(_0x5027a3[_0x278de3(0x2b4)](/iPad/i)!=null){this[_0x278de3(0x399)]='\x4d\x57\x45\x42\x48\x4d',this[_0x278de3(0x33b)]=_0x278de3(0x257),this[_0x278de3(0x2e2)]=_0x278de3(0x24a);if(_0x5027a3[_0x278de3(0x2b4)](/Safari/)!=null)this['\x69\x73\x49\x4f\x53\x53\x61\x66\x61\x72\x69']=!![];else this[_0x278de3(0x208)]=![];}else this[_0x278de3(0x399)]=_0x278de3(0x245),this[_0x278de3(0x33b)]=_0x278de3(0x25f),this['\x69\x65\x56\x65\x72\x73\x69\x6f\x6e']=bugs[_0x278de3(0x2a3)][_0x278de3(0x260)](),this['\x69\x65\x4f\x53\x56\x65\x72\x73\x69\x6f\x6e']=bugs[_0x278de3(0x2a3)]['\x67\x65\x74\x57\x69\x6e\x64\x6f\x77\x73\x4f\x53\x56\x65\x72\x73\x69\x6f\x6e']();}}this[_0x278de3(0x2db)]=bugs['\x6d\x75\x73\x69\x63'][_0x278de3(0x28f)]();var _0x3bcf58=location['\x68\x72\x65\x66'];if(this[_0x278de3(0x33b)]==_0x278de3(0x25f)){if(_0x3bcf58[_0x278de3(0x284)](_0x278de3(0x230))>0x0||location['\x68\x72\x65\x66']['\x69\x6e\x64\x65\x78\x4f\x66'](_0x278de3(0x1c6))>0x0||location[_0x278de3(0x156)][_0x278de3(0x284)]('\x6d\x75\x73\x69\x63\x63\x61\x73\x74\x2f\x63\x68\x61\x6e\x6e\x65\x6c')>0x0)this['\x68\x74\x6d\x6c\x35\x53\x75\x70\x70\x6f\x72\x74']=!![];}if(_0x4e01c4!=null&&_0x4e01c4==!![])this[_0x278de3(0x2db)]=!![];this[_0x278de3(0x2db)]&&(document['\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72']('\x77\x65\x62\x6b\x69\x74\x66\x75\x6c\x6c\x73\x63\x72\x65\x65\x6e\x63\x68\x61\x6e\x67\x65',function(){var _0x40df4c=_0x278de3;if(!document[_0x40df4c(0x1d7)]){bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x40df4c(0x1a2)]();if(bugs[_0x40df4c(0x165)][_0x40df4c(0x28d)]()!=null){var _0xf9633e=bugs[_0x40df4c(0x165)][_0x40df4c(0x2f0)](bugs[_0x40df4c(0x165)][_0x40df4c(0x28d)]());bugs[_0x40df4c(0x165)][_0x40df4c(0x2e2)]==_0x40df4c(0x266)&&(_0xf9633e['\x70\x6c\x61\x79\x65\x72\x54\x79\x70\x65']=='\x66\x75\x6c\x6c'?_0xf9633e[_0x40df4c(0x30c)]():(_0xf9633e[_0x40df4c(0x21d)](_0xf9633e[_0x40df4c(0x2a5)]),_0xf9633e['\x74\x69\x6d\x65\x72\x49\x64\x4d\x76\x50\x61\x6e\x65\x6c\x53\x74\x61\x74\x65']!=null&&(clearTimeout(_0xf9633e[_0x40df4c(0x22b)]),_0xf9633e['\x74\x69\x6d\x65\x72\x49\x64\x4d\x76\x50\x61\x6e\x65\x6c\x53\x74\x61\x74\x65']=null),this[_0x40df4c(0x22b)]=setTimeout(function(){var _0x2acdb9=_0x40df4c;if(!this[_0x2acdb9(0x192)])this[_0x2acdb9(0x21d)](this[_0x2acdb9(0x272)]);clearTimeout(this[_0x2acdb9(0x22b)]),this[_0x2acdb9(0x22b)]=null;}[_0x40df4c(0x27a)](_0xf9633e),0x1388)));}}}),document['\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72'](_0x278de3(0x23b),function(){var _0x278dd1=_0x278de3;!document[_0x278dd1(0x1d7)]&&bugs[_0x278dd1(0x165)][_0x278dd1(0x1a2)]();}),document[_0x278de3(0x157)](_0x278de3(0x158),function(){var _0x36bbb2=_0x278de3;!document[_0x36bbb2(0x1c3)]&&bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x36bbb2(0x1a2)]();}),document['\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72'](_0x278de3(0x313),function(){var _0x1f51af=_0x278de3;!document['\x6d\x73\x46\x75\x6c\x6c\x73\x63\x72\x65\x65\x6e\x45\x6c\x65\x6d\x65\x6e\x74']&&bugs[_0x1f51af(0x165)][_0x1f51af(0x1a2)]();}),window[_0x278de3(0x1e6)]=function(){var _0x3180bb=_0x278de3,_0xb1f661=window[_0x3180bb(0x243)];if(_0xb1f661===0x0)bugs[_0x3180bb(0x165)][_0x3180bb(0x214)]();else{if(_0xb1f661===0x5a)bugs[_0x3180bb(0x165)][_0x3180bb(0x214)]();else _0xb1f661===-0x5a&&bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x3180bb(0x214)]();}});},'\x72\x65\x73\x65\x74\x53\x65\x65\x6b\x42\x61\x72\x50\x6f\x73\x69\x74\x69\x6f\x6e':function(){var _0x1d7c73=_0x3000;if(bugs[_0x1d7c73(0x165)][_0x1d7c73(0x28d)]()!=null){var _0x142614=bugs[_0x1d7c73(0x165)]['\x67\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x50\x6c\x61\x79\x65\x72\x49\x64'](),_0x292218=bugs[_0x1d7c73(0x165)]['\x67\x65\x74\x50\x6c\x61\x79\x65\x72\x42\x79\x49\x64'](_0x142614);setTimeout(function(){var _0x246c8b=_0x1d7c73;bugs[_0x246c8b(0x165)][_0x246c8b(0x2e2)]==_0x246c8b(0x266)&&($(this[_0x246c8b(0x1ca)])[_0x246c8b(0x223)]($('\x23'+this['\x70\x6c\x61\x79\x65\x72\x49\x64'])['\x77\x69\x64\x74\x68']()),$(this[_0x246c8b(0x1ca)])[_0x246c8b(0x269)](Math[_0x246c8b(0x244)]($('\x23'+this[_0x246c8b(0x26d)])[_0x246c8b(0x223)]()*0x9/0x10)));}['\x62\x69\x6e\x64'](_0x292218),0xc8);var _0x307ac9=_0x292218['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'],_0x1da2fc=parseInt(_0x307ac9[_0x1d7c73(0x268)][_0x1d7c73(0x253)](_0x1d7c73(0x223)),0xa),_0x239640=parseInt(_0x307ac9[_0x1d7c73(0x2b5)][_0x1d7c73(0x253)](_0x1d7c73(0x223)),0xa),_0x1684e1=_0x239640/_0x1da2fc*0x64;if(_0x1684e1<0x0)_0x1684e1=0x0;else{if(_0x1684e1>0x64)_0x1684e1=0x64;}var _0x39a94c=_0x1da2fc*(_0x1684e1/0x64);_0x307ac9[_0x1d7c73(0x18b)][_0x1d7c73(0x253)]({'\x6c\x65\x66\x74':_0x39a94c-0x6})['\x61\x74\x74\x72'](_0x1d7c73(0x218),_0x1684e1+'\x25');}},'\x72\x65\x73\x74\x6f\x72\x65\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e':function(){var _0x554950=_0x3000,_0x19969b=bugs[_0x554950(0x165)][_0x554950(0x28d)]();if(_0x19969b!=null){bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x554950(0x214)]();var _0x30f1fa=bugs[_0x554950(0x165)][_0x554950(0x2f0)](_0x19969b);bugs[_0x554950(0x165)]['\x70\x6c\x61\x74\x66\x6f\x72\x6d']!=_0x554950(0x257)&&(_0x30f1fa['\x70\x61\x6e\x65\x6c'][_0x554950(0x253)]('\x77\x69\x64\x74\x68',_0x554950(0x363)),_0x30f1fa['\x70\x61\x6e\x65\x6c'][_0x554950(0x253)](_0x554950(0x269),_0x554950(0x363))),_0x30f1fa['\x69\x73\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e']=![],_0x30f1fa['\x66\x6c\x61\x67\x4d\x6f\x75\x73\x65\x44\x65\x74\x65\x63\x74\x69\x6f\x6e']=!![],_0x30f1fa[_0x554950(0x234)][_0x554950(0x30b)]['\x72\x65\x6d\x6f\x76\x65\x43\x6c\x61\x73\x73'](_0x554950(0x348)),_0x30f1fa[_0x554950(0x234)]['\x66\x75\x6c\x6c\x73\x63\x72\x65\x65\x6e'][_0x554950(0x1c5)](_0x554950(0x270)),_0x30f1fa[_0x554950(0x317)](),_0x30f1fa['\x67\x65\x74\x48\x74\x6d\x6c\x35\x50\x6c\x61\x79\x65\x72']()['\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65'](_0x554950(0x218),_0x30f1fa['\x76\x69\x64\x65\x6f\x49\x6e\x66\x6f']['\x6d\x76\x5f\x74\x69\x74\x6c\x65']);}},'\x61\x64\x64\x50\x6c\x61\x79\x65\x72':function(_0x2d2955,_0x2c69fd,_0x4da4e9,_0x1b89a3,_0x17212d,_0x3a2590,_0x3c3b08){var _0x3089dd=_0x3000,_0x4af394=new bugs[(_0x3089dd(0x343))](_0x2d2955,_0x2c69fd,this['\x69\x73\x4c\x6f\x67\x67\x65\x64'],this['\x75\x73\x65\x53\x74\x72\x65\x61\x6d\x69\x6e\x67'],_0x4da4e9,_0x1b89a3,_0x17212d,_0x3a2590,_0x3c3b08);this[_0x3089dd(0x319)]['\x70\x75\x73\x68'](_0x4af394);},'\x70\x6c\x61\x79\x56\x69\x64\x65\x6f':function(_0x137207){var _0x152ccf=_0x3000;if(_0x137207==''||_0x137207==undefined)return![];if(this[_0x152ccf(0x2f0)](_0x137207)!=null){var _0x294c5c=this['\x67\x65\x74\x50\x6c\x61\x79\x65\x72\x42\x79\x49\x64'](_0x137207);if(bugs[_0x152ccf(0x165)][_0x152ccf(0x33b)]=='\x6d\x6f\x62\x69\x6c\x65'){if(bugs[_0x152ccf(0x329)][_0x152ccf(0x24f)]())bugs[_0x152ccf(0x329)][_0x152ccf(0x17b)](_0x294c5c[_0x152ccf(0x180)]);else bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x152ccf(0x2db)]?_0x294c5c['\x73\x65\x74\x50\x6c\x61\x79\x53\x74\x61\x74\x65']():(alert(_0x152ccf(0x19c)),bugs[_0x152ccf(0x329)][_0x152ccf(0x17b)](_0x294c5c[_0x152ccf(0x180)]));}else bugs[_0x152ccf(0x165)][_0x152ccf(0x2db)]?_0x294c5c['\x73\x65\x74\x50\x6c\x61\x79\x53\x74\x61\x74\x65']():bugs[_0x152ccf(0x1e4)][_0x152ccf(0x263)](_0x294c5c[_0x152ccf(0x180)],!![]);return!![];}return![];},'\x73\x74\x6f\x70\x56\x69\x64\x65\x6f':function(_0x56ceca){var _0x4ca1dd=_0x3000;if(this['\x70\x6c\x61\x79\x65\x72\x73']==null)return![];if(_0x56ceca==''||_0x56ceca==undefined)for(var _0x575fb2=0x0;_0x575fb2<this['\x70\x6c\x61\x79\x65\x72\x73'][_0x4ca1dd(0x252)];_0x575fb2++){this[_0x4ca1dd(0x319)][_0x575fb2]!=null&&this['\x67\x65\x74\x42\x79\x49\x6e\x64\x65\x78'](_0x575fb2)['\x73\x74\x6f\x70\x56\x69\x64\x65\x6f']();}else{var _0x396855=this[_0x4ca1dd(0x2f0)](_0x56ceca);if(_0x396855!=null)_0x396855[_0x4ca1dd(0x1af)]();}},'\x73\x65\x74\x54\x68\x75\x6d\x62\x6e\x61\x69\x6c':function(_0x2b4b18,_0x104490){var _0x203216=_0x3000;if(_0x2b4b18==''||_0x2b4b18==undefined)return![];if(_0x104490==''||_0x104490==undefined)return![];if(this['\x67\x65\x74\x50\x6c\x61\x79\x65\x72\x42\x79\x49\x64'](_0x2b4b18)!=null){var _0x494262=this[_0x203216(0x2f0)](_0x2b4b18);return _0x494262[_0x203216(0x1a4)](_0x104490),!![];}return![];},'\x72\x65\x6d\x6f\x76\x65\x50\x6c\x61\x79\x65\x72':function(_0x2e6139){},'\x70\x61\x75\x73\x65\x41\x75\x64\x69\x6f\x50\x6c\x61\x79\x65\x72':function(){var _0x5e47dd=_0x3000;bugs[_0x5e47dd(0x34d)]!=undefined&&bugs[_0x5e47dd(0x34d)]!=null&&(bugs[_0x5e47dd(0x34d)][_0x5e47dd(0x29a)]&&bugs[_0x5e47dd(0x34d)][_0x5e47dd(0x204)]());},'\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x50\x6c\x61\x79\x65\x72\x49\x64':function(_0x255dfc){var _0x1acb8b=_0x3000;this[_0x1acb8b(0x32e)]=_0x255dfc;},'\x67\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x50\x6c\x61\x79\x65\x72\x49\x64':function(){var _0x3dcdf4=_0x3000;return this[_0x3dcdf4(0x32e)];},'\x67\x65\x74\x42\x79\x49\x6e\x64\x65\x78':function(_0x56d807){var _0x4b3e2b=_0x3000;if(_0x56d807<0x0)return null;if(_0x56d807>=this[_0x4b3e2b(0x319)][_0x4b3e2b(0x252)])return null;return this[_0x4b3e2b(0x319)][_0x56d807];},'\x67\x65\x74\x50\x6c\x61\x79\x65\x72\x42\x79\x49\x64':function(_0x4b757e){var _0x5201f6=_0x3000;for(var _0x715efd=0x0;_0x715efd<bugs[_0x5201f6(0x165)][_0x5201f6(0x319)][_0x5201f6(0x252)];_0x715efd++){if(bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x5201f6(0x319)][_0x715efd]!=null){if(_0x4b757e==bugs[_0x5201f6(0x165)][_0x5201f6(0x319)][_0x715efd][_0x5201f6(0x26d)])return bugs[_0x5201f6(0x165)][_0x5201f6(0x259)](_0x715efd);}}return null;},'\x75\x70\x64\x61\x74\x65\x4c\x69\x6b\x65\x53\x74\x61\x74\x65':function(_0x48a81d,_0x37750b){var _0xb8b642=_0x3000,_0x5d4d0a=this['\x67\x65\x74\x50\x6c\x61\x79\x65\x72\x42\x79\x49\x64'](_0x48a81d);if(_0x5d4d0a==null)return;_0x5d4d0a[_0xb8b642(0x336)](_0x37750b);}},bugs[_0x53579b(0x286)]=bugs[_0x53579b(0x26c)](),bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x53579b(0x1d5)]={'\x63\x74\x6c\x73\x65\x74':null,'\x73\x65\x65\x6b\x42\x61\x73\x65':null,'\x73\x65\x65\x6b\x42\x61\x72':null,'\x73\x65\x65\x6b\x42\x75\x66\x66\x65\x72\x53\x65\x74':null,'\x73\x65\x65\x6b\x42\x75\x74\x74\x6f\x6e':null,'\x74\x69\x6d\x65\x70\x6f\x73\x4c\x61\x62\x65\x6c':null,'\x70\x6c\x61\x79\x43\x65\x6e\x74\x65\x72':null,'\x70\x6c\x61\x79\x52\x65\x70\x6c\x61\x79':null,'\x70\x6c\x61\x79':null,'\x6c\x6f\x61\x64\x69\x6e\x67':null,'\x66\x75\x6c\x6c\x73\x63\x72\x65\x65\x6e':null,'\x71\x75\x61\x6c\x69\x74\x79':null,'\x71\x75\x61\x6c\x69\x74\x79\x53\x44':null,'\x71\x75\x61\x6c\x69\x74\x79\x48\x44':null,'\x71\x75\x61\x6c\x69\x74\x79\x46\x48\x44':null,'\x76\x6f\x6c\x75\x6d\x65\x41\x72\x65\x61':null,'\x76\x6f\x6c\x75\x6d\x65\x42\x61\x73\x65':null,'\x76\x6f\x6c\x75\x6d\x65\x42\x75\x74\x74\x6f\x6e':null,'\x76\x6f\x6c\x75\x6d\x65\x43\x6f\x6e\x74\x72\x6f\x6c':null,'\x76\x6f\x6c\x4f\x6e\x42\x75\x74\x74\x6f\x6e':null,'\x6d\x75\x74\x65\x42\x75\x74\x74\x6f\x6e':null,'\x6c\x69\x6b\x65\x42\x75\x74\x74\x6f\x6e':null,'\x6c\x6f\x67\x69\x6e\x42\x75\x74\x74\x6f\x6e':null,'\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65':function(){}},bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72\x44\x61\x74\x61']=bugs[_0x53579b(0x26c)](),bugs[_0x53579b(0x343)][_0x53579b(0x1d5)]={'\x70\x61\x6e\x65\x6c\x53\x69\x7a\x65\x58':0x2d0,'\x70\x61\x6e\x65\x6c\x53\x69\x7a\x65\x59':0x195,'\x70\x61\x6e\x65\x6c':null,'\x70\x61\x6e\x65\x6c\x50\x6c\x61\x79\x65\x72\x54\x69\x74\x6c\x65':null,'\x70\x61\x6e\x65\x6c\x50\x6c\x61\x79\x65\x72\x56\x69\x65\x77':null,'\x70\x61\x6e\x65\x6c\x50\x6c\x61\x79\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c':null,'\x70\x61\x6e\x65\x6c\x50\x6c\x61\x79\x65\x72\x52\x65\x70\x6c\x61\x79':null,'\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c':null,'\x70\x6c\x61\x79\x65\x72\x49\x64':'','\x76\x69\x64\x65\x6f\x49\x6e\x66\x6f':null,'\x6d\x65\x64\x69\x61\x46\x6f\x72\x6d\x61\x74':'\x48\x44','\x73\x65\x72\x76\x69\x63\x65\x49\x64':null,'\x70\x73\x73\x72\x6c':null,'\x69\x73\x4c\x6f\x67\x67\x65\x64':![],'\x69\x73\x4d\x76\x4c\x69\x6b\x65':![],'\x69\x73\x4c\x6f\x61\x64\x65\x64\x4d\x76':![],'\x69\x73\x50\x6c\x61\x79\x69\x6e\x67\x4d\x76':![],'\x69\x73\x50\x61\x75\x73\x65\x64':![],'\x69\x73\x52\x65\x70\x6c\x61\x79':![],'\x69\x73\x46\x75\x6c\x6c\x53\x74\x72\x65\x61\x6d\x69\x6e\x67':![],'\x69\x73\x4c\x6f\x61\x64\x69\x6e\x67':![],'\x69\x73\x4d\x75\x74\x65\x64':![],'\x69\x73\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e':![],'\x6c\x61\x73\x74\x56\x6f\x6c\x75\x6d\x65\x56\x61\x6c\x75\x65':0x32,'\x6d\x76\x49\x64':null,'\x69\x73\x44\x72\x61\x67':![],'\x73\x63\x72\x65\x65\x6e\x53\x69\x7a\x65':0x280,'\x64\x72\x6f\x70\x54\x61\x72\x67\x65\x74':null,'\x75\x73\x65\x53\x74\x72\x65\x61\x6d\x69\x6e\x67':null,'\x69\x73\x53\x68\x6f\x77\x50\x72\x6f\x64\x75\x63\x74\x49\x6e\x66\x6f':![],'\x75\x70\x61':![],'\x61\x75\x74\x68\x50\x6f\x70':null,'\x6d\x76\x41\x6c\x65\x72\x74':null,'\x66\x6c\x61\x67\x4d\x76\x50\x61\x6e\x65\x6c\x53\x74\x61\x74\x65':_0x53579b(0x1aa),'\x74\x69\x6d\x65\x72\x49\x64\x4d\x76\x50\x61\x6e\x65\x6c\x53\x74\x61\x74\x65':null,'\x74\x69\x6d\x65\x72\x49\x64\x4d\x76\x50\x61\x6e\x65\x6c\x4d\x6f\x75\x73\x65\x4d\x6f\x76\x65':null,'\x66\x6c\x61\x67\x4d\x6f\x75\x73\x65\x44\x65\x74\x65\x63\x74\x69\x6f\x6e':![],'\x6c\x61\x73\x74\x4d\x6f\x75\x73\x65\x43\x75\x72\x73\x6f\x72':{'\x78':null,'\x79':null},'\x6c\x61\x73\x74\x4d\x6f\x75\x73\x65\x54\x69\x6d\x65':null,'\x63\x75\x72\x4d\x6f\x75\x73\x65\x43\x75\x72\x73\x6f\x72':{'\x78':null,'\x79':null},'\x73\x61\x76\x65\x64\x43\x75\x72\x72\x65\x6e\x74\x54\x69\x6d\x65':null,'\x66\x6c\x61\x67\x4e\x6f\x53\x75\x70\x70\x6f\x72\x74\x37\x32\x30':![],'\x61\x62\x75\x73\x65':![],'\x69\x73\x49\x4f\x50\x6c\x61\x79\x69\x6e\x67\x46\x6c\x61\x67':!![],'\x61\x75\x74\x68\x41\x64\x75\x6c\x74\x43\x68\x65\x63\x6b':0x1,'\x69\x73\x4d\x76\x53\x74\x72\x41\x75\x74\x68':!![],'\x63\x6f\x75\x6e\x74\x50\x6c\x61\x79\x65\x64':0x0,'\x77\x69\x73\x65\x6c\x6f\x67':'','\x76\x69\x64\x65\x6f\x4f\x62\x6a':null,'\x74\x68\x75\x6d\x62\x4f\x62\x6a':null,'\x69\x6d\x61\x67\x65\x4f\x62\x6a':null,'\x74\x68\x75\x6d\x62\x6e\x61\x69\x6c\x50\x61\x74\x68':'','\x74\x68\x75\x6d\x62\x6e\x61\x69\x6c\x4f\x72\x67\x52\x61\x74\x69\x6f':{'\x77\x69\x64\x74\x68':0x10,'\x68\x65\x69\x67\x68\x74':0x9},'\x69\x63\x6f\x6e\x31\x39':null,'\x6c\x61\x74\x65\x73\x74\x43\x75\x72\x72\x65\x6e\x74\x54\x69\x6d\x65':-0x1,'\x70\x6c\x61\x79\x65\x72\x54\x79\x70\x65':_0x53579b(0x301),'\x73\x65\x65\x6b\x53\x6c\x69\x64\x65\x72':null,'\x76\x6f\x6c\x75\x6d\x65\x53\x6c\x69\x64\x65\x72':null,'\x73\x74\x72\x65\x61\x6d\x69\x6e\x67\x4c\x6f\x67\x67\x65\x72':null,'\x70\x61\x6e\x65\x6c\x53\x74\x61\x74\x65':0x5,'\x50\x41\x4e\x45\x4c\x5f\x56\x49\x45\x57\x5f\x53\x54\x41\x54\x45\x5f\x4e\x4f\x52\x4d\x41\x4c':0x1,'\x50\x41\x4e\x45\x4c\x5f\x56\x49\x45\x57\x5f\x53\x54\x41\x54\x45\x5f\x50\x4c\x41\x59\x49\x4e\x47':0x2,'\x50\x41\x4e\x45\x4c\x5f\x56\x49\x45\x57\x5f\x53\x54\x41\x54\x45\x5f\x50\x41\x55\x53\x45':0x3,'\x50\x41\x4e\x45\x4c\x5f\x56\x49\x45\x57\x5f\x53\x54\x41\x54\x45\x5f\x46\x49\x4e\x49\x53\x48':0x4,'\x50\x41\x4e\x45\x4c\x5f\x56\x49\x45\x57\x5f\x53\x54\x41\x54\x45\x5f\x46\x4f\x43\x55\x53\x49\x4e':0x5,'\x50\x41\x4e\x45\x4c\x5f\x56\x49\x45\x57\x5f\x53\x54\x41\x54\x45\x5f\x46\x4f\x43\x55\x53\x4f\x55\x54':0x6,'\x70\x61\x67\x65\x48\x69\x64\x65':![],'\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65':function(_0x586aa0,_0x531b28,_0x23a9c3,_0x2217ed,_0x442507,_0x102201,_0x22c609,_0x4df6d7,_0x4f89aa){var _0x25568f=_0x53579b;this['\x70\x6c\x61\x79\x65\x72\x49\x64']=_0x586aa0,this[_0x25568f(0x224)]=bugs[_0x25568f(0x165)]['\x69\x73\x4c\x6f\x67\x67\x65\x64'],this[_0x25568f(0x180)]=_0x531b28,this['\x75\x73\x65\x53\x74\x72\x65\x61\x6d\x69\x6e\x67']=_0x2217ed,this[_0x25568f(0x370)]=bugs[_0x25568f(0x165)][_0x25568f(0x33b)]=='\x6d\x6f\x62\x69\x6c\x65'?'\x53\x44':this[_0x25568f(0x373)](),this[_0x25568f(0x2b3)]=_0x442507,this[_0x25568f(0x376)]=_0x102201!=undefined?_0x102201:_0x25568f(0x301),this['\x77\x69\x73\x65\x6c\x6f\x67']=_0x22c609,this[_0x25568f(0x2fe)]=_0x4df6d7,this['\x76\x69\x64\x65\x6f\x49\x6e\x66\x6f']=null,this[_0x25568f(0x212)]=![],this[_0x25568f(0x26e)]=!![],this[_0x25568f(0x175)]=![],bugs[_0x25568f(0x165)]['\x70\x6c\x61\x74\x66\x6f\x72\x6d']!=_0x25568f(0x25f)?(this[_0x25568f(0x332)]=parseInt($('\x23'+_0x586aa0)[_0x25568f(0x253)]('\x77\x69\x64\x74\x68'),0xa),this[_0x25568f(0x221)]=parseInt(this[_0x25568f(0x332)]*0x9/0x10)):(this[_0x25568f(0x332)]=this[_0x25568f(0x2b3)],this['\x70\x61\x6e\x65\x6c\x53\x69\x7a\x65\x59']=parseInt(this[_0x25568f(0x2b3)]*0x9/0x10)),this[_0x25568f(0x1a7)](_0x586aa0,this[_0x25568f(0x332)],this[_0x25568f(0x221)]),this[_0x25568f(0x354)]=new bugs[(_0x25568f(0x354))](this),this[_0x25568f(0x1e8)](function(){var _0x48dbbb=_0x25568f;this['\x6c\x6f\x61\x64\x56\x69\x64\x65\x6f\x44\x61\x74\x61'](this[_0x48dbbb(0x180)],function(){var _0x1ab11b=_0x48dbbb;_0x4f89aa&&this[_0x1ab11b(0x2e6)](this[_0x1ab11b(0x180)]);}[_0x48dbbb(0x27a)](this));}[_0x25568f(0x27a)](this)),$(window)[_0x25568f(0x27a)](_0x25568f(0x2ad),function(){var _0x291452=_0x25568f;console[_0x291452(0x194)](_0x291452(0x2ad));if(this['\x70\x61\x67\x65\x48\x69\x64\x65'])return;try{this['\x70\x61\x67\x65\x48\x69\x64\x65']=!![],this[_0x291452(0x354)][_0x291452(0x387)](),this[_0x291452(0x29a)]=![];var _0x42d044=this['\x67\x65\x74\x48\x74\x6d\x6c\x35\x50\x6c\x61\x79\x65\x72']();_0x42d044[_0x291452(0x187)](),_0x42d044['\x63\x75\x72\x72\x65\x6e\x74\x54\x69\x6d\x65']=0x0,_0x42d044[_0x291452(0x22f)]=null,_0x42d044['\x73\x72\x63']=null;}catch(_0x1b1903){}}[_0x25568f(0x27a)](this)),(bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x25568f(0x33b)]=='\x6d\x6f\x62\x69\x6c\x65'||(bugs[_0x25568f(0x165)][_0x25568f(0x2f6)]<0x0||bugs[_0x25568f(0x165)]['\x69\x65\x56\x65\x72\x73\x69\x6f\x6e']>0xa))&&window[_0x25568f(0x157)](_0x25568f(0x2d2),function(_0x4ba414){var _0x16789c=_0x25568f;if(this[_0x16789c(0x30a)])return;try{this[_0x16789c(0x30a)]=!![],this[_0x16789c(0x354)][_0x16789c(0x387)](),this[_0x16789c(0x29a)]=![];var _0x53325c=this[_0x16789c(0x205)]();_0x53325c[_0x16789c(0x187)](),_0x53325c[_0x16789c(0x1d6)]=0x0,_0x53325c[_0x16789c(0x22f)]=null,_0x53325c[_0x16789c(0x33e)]=null,this['\x69\x73\x49\x4f\x50\x6c\x61\x79\x69\x6e\x67\x46\x6c\x61\x67']=![];}catch(_0x1c726c){}}[_0x25568f(0x27a)](this),![]);},'\x63\x72\x65\x61\x74\x65\x56\x69\x64\x65\x6f\x50\x61\x6e\x65\x6c':function(_0x2b211f,_0x17df00,_0x1d7b44){var _0x27bf7c=_0x53579b,_0x5490ca='';if(bugs[_0x27bf7c(0x165)][_0x27bf7c(0x2db)]!=!![]){_0x5490ca+=_0x27bf7c(0x361),_0x5490ca+=_0x27bf7c(0x391),_0x5490ca+=_0x27bf7c(0x16a),_0x5490ca+=_0x27bf7c(0x1f9),$('\x23'+_0x2b211f)[_0x27bf7c(0x276)](_0x5490ca),this['\x69\x6d\x61\x67\x65\x4f\x62\x6a']=$(document['\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64'](this['\x70\x6c\x61\x79\x65\x72\x49\x64']))[_0x27bf7c(0x2dc)]('\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x56\x69\x65\x77')[_0x27bf7c(0x2dc)](_0x27bf7c(0x2b2))[_0x27bf7c(0x2dc)](_0x27bf7c(0x347))[0x0],$(document[_0x27bf7c(0x163)](this[_0x27bf7c(0x26d)]))[_0x27bf7c(0x181)]('\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x56\x69\x65\x77\x20\x61')['\x63\x6c\x69\x63\x6b'](function(){var _0x5caf42=_0x27bf7c;bugs[_0x5caf42(0x1e4)][_0x5caf42(0x263)](this[_0x5caf42(0x180)],!![]);}[_0x27bf7c(0x27a)](this));return;}_0x5490ca+=_0x27bf7c(0x206),_0x5490ca+=_0x27bf7c(0x285),_0x5490ca+='\x09\x09\x3c\x73\x74\x72\x6f\x6e\x67\x20\x63\x6c\x61\x73\x73\x3d\x27\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x54\x69\x74\x6c\x65\x27\x20\x73\x74\x79\x6c\x65\x3d\x27\x63\x75\x72\x73\x6f\x72\x3a\x20\x70\x6f\x69\x6e\x74\x65\x72\x3b\x27\x3e\x3c\x2f\x73\x74\x72\x6f\x6e\x67\x3e',_0x5490ca+=_0x27bf7c(0x236),_0x5490ca+=_0x27bf7c(0x2bf),_0x5490ca+='\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x27\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x56\x69\x65\x77\x27\x3e';bugs[_0x27bf7c(0x165)][_0x27bf7c(0x2db)]?bugs[_0x27bf7c(0x165)]['\x70\x6c\x61\x74\x66\x6f\x72\x6d']==_0x27bf7c(0x257)?(_0x5490ca+=_0x27bf7c(0x331)+(bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x27bf7c(0x2e2)]==_0x27bf7c(0x28b)||bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x27bf7c(0x2e2)]=='\x69\x70\x61\x64'?_0x27bf7c(0x184):'')+(bugs[_0x27bf7c(0x165)]['\x64\x65\x76\x69\x63\x65']==_0x27bf7c(0x266)?bugs[_0x27bf7c(0x165)][_0x27bf7c(0x37b)]<=0x28?'\x20\x68\x69\x64\x65\x41\x6e\x64\x72\x6f\x69\x64\x55\x6e\x64\x65\x72\x34\x30\x6d\x6f\x62\x69\x6c\x65\x50\x6c\x61\x79\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c\x73':_0x27bf7c(0x231):'')+_0x27bf7c(0x240),_0x5490ca+='\x09\x09\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x27\x62\x75\x67\x73\x54\x68\x75\x6d\x62\x6e\x61\x69\x6c\x27\x20\x73\x74\x79\x6c\x65\x3d\x27\x64\x69\x73\x70\x6c\x61\x79\x3a\x6e\x6f\x6e\x65\x27\x3e\x3c\x69\x6d\x67\x20\x73\x72\x63\x3d\x27\x27\x20\x61\x6c\x74\x3d\x27\x27\x3e\x3c\x2f\x64\x69\x76\x3e'):(_0x5490ca+='\x09\x09\x3c\x76\x69\x64\x65\x6f\x20\x63\x6c\x61\x73\x73\x3d\x27\x62\x75\x67\x73\x56\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x27\x20\x70\x72\x65\x6c\x6f\x61\x64\x3d\x27\x61\x75\x74\x6f\x27\x20\x74\x79\x70\x65\x3d\x27\x76\x69\x64\x65\x6f\x2f\x6d\x70\x34\x27\x20\x73\x74\x79\x6c\x65\x3d\x27\x7a\x2d\x69\x6e\x64\x65\x78\x3a\x31\x3b\x27\x3e\x3c\x2f\x76\x69\x64\x65\x6f\x3e',_0x5490ca+=_0x27bf7c(0x2c9)):_0x5490ca+='\x09\x09\x09\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x27\x62\x75\x67\x73\x54\x68\x75\x6d\x62\x6e\x61\x69\x6c\x27\x20\x3e\x3c\x69\x6d\x67\x20\x73\x72\x63\x3d\x27\x27\x20\x61\x6c\x74\x3d\x27\x27\x3e\x3c\x2f\x64\x69\x76\x3e';if(bugs[_0x27bf7c(0x165)][_0x27bf7c(0x33b)]==_0x27bf7c(0x257))_0x5490ca+=_0x27bf7c(0x2c1);else _0x5490ca+='\x09\x09\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x27\x6c\x6f\x61\x64\x69\x6e\x67\x42\x75\x74\x74\x69\x6f\x6e\x20\x62\x75\x67\x73\x2d\x70\x72\x65\x6c\x6f\x61\x64\x65\x72\x20\x62\x75\x67\x73\x2d\x70\x72\x65\x6c\x6f\x61\x64\x65\x72\x2d\x77\x68\x69\x74\x65\x27\x20\x73\x74\x79\x6c\x65\x3d\x27\x64\x69\x73\x70\x6c\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x20\x77\x69\x64\x74\x68\x3a\x35\x30\x70\x78\x3b\x20\x68\x65\x69\x67\x68\x74\x3a\x35\x30\x70\x78\x3b\x20\x6d\x61\x72\x67\x69\x6e\x2d\x6c\x65\x66\x74\x3a\x2d\x32\x35\x70\x78\x3b\x20\x6d\x61\x72\x67\x69\x6e\x2d\x74\x6f\x70\x3a\x2d\x32\x35\x70\x78\x3b\x27\x3e\x3c\x2f\x64\x69\x76\x3e';if(bugs[_0x27bf7c(0x165)][_0x27bf7c(0x2db)])_0x5490ca+=_0x27bf7c(0x29e);else _0x5490ca+=_0x27bf7c(0x369);_0x5490ca+='\x09\x09\x3c\x61\x20\x68\x72\x65\x66\x3d\x27\x23\x27\x20\x63\x6c\x61\x73\x73\x3d\x27\x72\x65\x70\x6c\x61\x79\x42\x75\x74\x74\x6f\x6e\x20\x72\x65\x70\x6c\x61\x79\x27\x20\x73\x74\x79\x6c\x65\x3d\x27\x64\x69\x73\x70\x6c\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x27\x3e\x3c\x73\x70\x61\x6e\x3e\x3c\x73\x74\x72\x6f\x6e\x67\x3e\x3c\x2f\x73\x74\x72\x6f\x6e\x67\x3e\ub2e4\uc2dc\ubcf4\uae30\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x2f\x61\x3e',_0x5490ca+=_0x27bf7c(0x1f9),_0x5490ca+=_0x27bf7c(0x368),_0x5490ca+='\x09\x09\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x27\x73\x65\x65\x6b\x27\x3e',_0x5490ca+=_0x27bf7c(0x379),_0x5490ca+=_0x27bf7c(0x171),_0x5490ca+='\x09\x09\x09\x09\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x27\x62\x75\x66\x66\x65\x72\x69\x6e\x67\x27\x20\x73\x74\x79\x6c\x65\x3d\x27\x77\x69\x64\x74\x68\x3a\x30\x25\x3b\x27\x3e\ubc84\ud37c\ub9c1\x20\x30\x25\x3c\x2f\x64\x69\x76\x3e',_0x5490ca+=_0x27bf7c(0x1f3),_0x5490ca+=_0x27bf7c(0x330),_0x5490ca+=_0x27bf7c(0x176),_0x5490ca+=_0x27bf7c(0x1a8),_0x5490ca+='\x09\x09\x3c\x2f\x64\x69\x76\x3e',_0x5490ca+=_0x27bf7c(0x2b6),_0x5490ca+=_0x27bf7c(0x382),_0x5490ca+=_0x27bf7c(0x2a4),_0x5490ca+='\x09\x09\x09\x09\x3c\x62\x75\x74\x74\x6f\x6e\x20\x63\x6c\x61\x73\x73\x3d\x27\x62\x74\x6e\x50\x6c\x61\x79\x27\x3e\uc7ac\uc0dd\x3c\x2f\x62\x75\x74\x74\x6f\x6e\x3e',_0x5490ca+=_0x27bf7c(0x35d),_0x5490ca+=_0x27bf7c(0x1b3),_0x5490ca+=_0x27bf7c(0x186),_0x5490ca+=_0x27bf7c(0x227),_0x5490ca+=_0x27bf7c(0x1c0),_0x5490ca+='\x09\x09\x09\x09\x09\x09\x3c\x73\x70\x61\x6e\x20\x63\x6c\x61\x73\x73\x3d\x27\x63\x75\x72\x72\x65\x6e\x74\x27\x20\x73\x74\x79\x6c\x65\x3d\x27\x77\x69\x64\x74\x68\x3a\x34\x30\x25\x27\x3e\x3c\x73\x70\x61\x6e\x20\x63\x6c\x61\x73\x73\x3d\x27\x73\x65\x65\x6b\x62\x61\x72\x27\x3e\ud604\uc7ac\x20\ubcfc\ub968\x20\x34\x30\x25\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x2f\x73\x70\x61\x6e\x3e',_0x5490ca+=_0x27bf7c(0x1a5),_0x5490ca+=_0x27bf7c(0x250),_0x5490ca+=_0x27bf7c(0x36a),_0x5490ca+=_0x27bf7c(0x380),_0x5490ca+=_0x27bf7c(0x32b),_0x5490ca+=_0x27bf7c(0x21b),_0x5490ca+='\x09\x09\x09\x09\x3c\x2f\x64\x69\x76\x3e',_0x5490ca+=_0x27bf7c(0x1f3),_0x5490ca+=_0x27bf7c(0x375),_0x5490ca+='\x09\x09\x09\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x27\x73\x63\x72\x65\x65\x6e\x27\x3e',_0x5490ca+=_0x27bf7c(0x26f),_0x5490ca+=_0x27bf7c(0x28a),_0x5490ca+='\x09\x09\x09\x09\x09\x3c\x73\x74\x72\x6f\x6e\x67\x3e\x3c\x61\x20\x68\x72\x65\x66\x3d\x27\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3a\x3b\x27\x3e\x3c\x73\x70\x61\x6e\x3e\ud604\uc7ac\ud654\uc9c8\x3c\x2f\x73\x70\x61\x6e\x3e\x34\x38\x30\x70\x3c\x2f\x61\x3e\x3c\x2f\x73\x74\x72\x6f\x6e\x67\x3e',_0x5490ca+=_0x27bf7c(0x2ca),_0x5490ca+='\x09\x09\x09\x09\x09\x09\x3c\x6c\x69\x3e\x3c\x61\x20\x68\x72\x65\x66\x3d\x27\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3a\x3b\x27\x3e\x34\x38\x30\x70\x3c\x2f\x61\x3e\x3c\x2f\x6c\x69\x3e',_0x5490ca+=_0x27bf7c(0x1ae),_0x5490ca+=_0x27bf7c(0x337),_0x5490ca+=_0x27bf7c(0x32a),_0x5490ca+=_0x27bf7c(0x250),_0x5490ca+=_0x27bf7c(0x21f),_0x5490ca+='\x09\x09\x09\x3c\x2f\x64\x69\x76\x3e',_0x5490ca+=_0x27bf7c(0x2f7),_0x5490ca+=_0x27bf7c(0x312),_0x5490ca+='\x09\x09\x3c\x21\x2d\x2d\x20\x63\x6f\x6e\x74\x72\x6f\x6c\x73\x20\x2d\x2d\x3e',_0x5490ca+=_0x27bf7c(0x1f9),_0x5490ca+=_0x27bf7c(0x27c),_0x5490ca+=_0x27bf7c(0x1c1),_0x5490ca+=_0x27bf7c(0x1e9),_0x5490ca+=_0x27bf7c(0x36b),_0x5490ca+=_0x27bf7c(0x248),_0x5490ca+=_0x27bf7c(0x1f9),$('\x23'+_0x2b211f)[_0x27bf7c(0x276)](_0x5490ca),$(_0x27bf7c(0x27d))[_0x27bf7c(0x23f)]();bugs[_0x27bf7c(0x165)]['\x70\x6c\x61\x74\x66\x6f\x72\x6d']=='\x6d\x6f\x62\x69\x6c\x65'&&$('\x23'+_0x2b211f)[_0x27bf7c(0x1c5)](_0x27bf7c(0x2e2));bugs[_0x27bf7c(0x165)][_0x27bf7c(0x2db)]?(this[_0x27bf7c(0x31a)]=$(document[_0x27bf7c(0x163)](this[_0x27bf7c(0x26d)]))['\x63\x68\x69\x6c\x64\x72\x65\x6e']('\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x56\x69\x65\x77')['\x63\x68\x69\x6c\x64\x72\x65\x6e']('\x2e\x62\x75\x67\x73\x56\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72')[0x0],(bugs[_0x27bf7c(0x165)][_0x27bf7c(0x2e2)]==_0x27bf7c(0x28b)||bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x27bf7c(0x2e2)]==_0x27bf7c(0x24a))&&this[_0x27bf7c(0x31a)][_0x27bf7c(0x157)](_0x27bf7c(0x150),function(){var _0x556015=_0x27bf7c;$(this[_0x556015(0x31a)])['\x61\x74\x74\x72']('\x63\x6f\x6e\x74\x72\x6f\x6c\x73',![]),this[_0x556015(0x30c)]();}[_0x27bf7c(0x27a)](this)),this[_0x27bf7c(0x1ca)]=$(document[_0x27bf7c(0x163)](this[_0x27bf7c(0x26d)]))['\x63\x68\x69\x6c\x64\x72\x65\x6e']('\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x56\x69\x65\x77')[_0x27bf7c(0x2dc)]('\x2e\x62\x75\x67\x73\x54\x68\x75\x6d\x62\x6e\x61\x69\x6c')[_0x27bf7c(0x2dc)](_0x27bf7c(0x347))[0x0],this[_0x27bf7c(0x1bf)](this[_0x27bf7c(0x31a)]),$(this['\x76\x69\x64\x65\x6f\x4f\x62\x6a'])[_0x27bf7c(0x27a)](_0x27bf7c(0x247),function(){return![];}),$(this[_0x27bf7c(0x31a)])[_0x27bf7c(0x340)](function(_0x4c41dc){var _0x33e8e0=_0x27bf7c;if(_0x4c41dc[_0x33e8e0(0x37c)]==0x2)return $(this)[_0x33e8e0(0x19f)]('\x63\x6f\x6e\x74\x65\x78\x74\x6d\x65\x6e\x75'),$(this)[_0x33e8e0(0x27a)](_0x33e8e0(0x247),function(){return![];}),![];return!![];}[_0x27bf7c(0x27a)](this['\x76\x69\x64\x65\x6f\x4f\x62\x6a'])),this[_0x27bf7c(0x32d)]=$(document['\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64'](this[_0x27bf7c(0x26d)]))['\x63\x68\x69\x6c\x64\x72\x65\x6e'](_0x27bf7c(0x233))[_0x27bf7c(0x2dc)](_0x27bf7c(0x2b2))[_0x27bf7c(0x2dc)](_0x27bf7c(0x347))[0x0]):this[_0x27bf7c(0x32d)]=$(document[_0x27bf7c(0x163)](this[_0x27bf7c(0x26d)]))[_0x27bf7c(0x2dc)](_0x27bf7c(0x233))[_0x27bf7c(0x2dc)](_0x27bf7c(0x2b2))['\x63\x68\x69\x6c\x64\x72\x65\x6e'](_0x27bf7c(0x347))[0x0];this[_0x27bf7c(0x394)]=$(document['\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64'](this[_0x27bf7c(0x26d)])),this[_0x27bf7c(0x38b)]=$(document[_0x27bf7c(0x163)](this[_0x27bf7c(0x26d)]))['\x63\x68\x69\x6c\x64\x72\x65\x6e']('\x2e\x69\x63\x31\x39'),this['\x70\x61\x6e\x65\x6c\x50\x6c\x61\x79\x65\x72\x54\x69\x74\x6c\x65']=$(document[_0x27bf7c(0x163)](this[_0x27bf7c(0x26d)]))[_0x27bf7c(0x2dc)](_0x27bf7c(0x359))[0x0],$(this['\x70\x61\x6e\x65\x6c\x50\x6c\x61\x79\x65\x72\x54\x69\x74\x6c\x65'])['\x68\x69\x64\x65'](),this[_0x27bf7c(0x203)]=$(document[_0x27bf7c(0x163)](this[_0x27bf7c(0x26d)]))['\x63\x68\x69\x6c\x64\x72\x65\x6e'](_0x27bf7c(0x233))[0x0],this[_0x27bf7c(0x234)]=new bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'](),this[_0x27bf7c(0x234)][_0x27bf7c(0x1d4)]=$(this[_0x27bf7c(0x203)])[_0x27bf7c(0x181)](_0x27bf7c(0x291)),this[_0x27bf7c(0x234)]['\x70\x6c\x61\x79\x43\x65\x6e\x74\x65\x72'][_0x27bf7c(0x2ab)](_0x27bf7c(0x156),'\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3a\x3b'),this[_0x27bf7c(0x234)]['\x70\x6c\x61\x79\x43\x65\x6e\x74\x65\x72'][_0x27bf7c(0x34f)](function(_0x445fa7){var _0xbba086=_0x27bf7c;if(bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72']['\x70\x6c\x61\x74\x66\x6f\x72\x6d']==_0xbba086(0x257)){if(!bugs[_0xbba086(0x329)][_0xbba086(0x24f)]()){if(bugs[_0xbba086(0x165)][_0xbba086(0x1b6)]=='\x59'){if(!bugs['\x70\x6c\x61\x79'][_0xbba086(0x384)]())return![];}}}if(bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0xbba086(0x2e2)]==_0xbba086(0x266)){var _0x5f3b4e=$(this['\x70\x61\x6e\x65\x6c\x50\x6c\x61\x79\x65\x72\x56\x69\x65\x77'])[_0xbba086(0x223)]()/0x2,_0x4c2929=$(this[_0xbba086(0x203)])[_0xbba086(0x269)]()/0x2;_0x445fa7[_0xbba086(0x2cc)]>=_0x5f3b4e-0x19&&_0x445fa7['\x6f\x66\x66\x73\x65\x74\x58']<=_0x5f3b4e+0x19&&_0x445fa7[_0xbba086(0x1da)]>=_0x4c2929-0x19&&_0x445fa7[_0xbba086(0x1da)]<=_0x4c2929+0x19?this[_0xbba086(0x2fc)](this):this[_0xbba086(0x376)]!=_0xbba086(0x271)&&(this[_0xbba086(0x15f)]&&(this[_0xbba086(0x251)]==this[_0xbba086(0x2a5)]&&this['\x73\x68\x6f\x77\x50\x61\x6e\x65\x6c'](this[_0xbba086(0x272)])));}else this[_0xbba086(0x2fc)](this);}[_0x27bf7c(0x27a)](this)),this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x27bf7c(0x20c)]=$(this[_0x27bf7c(0x203)])[_0x27bf7c(0x181)]('\x61\x2e\x72\x65\x70\x6c\x61\x79\x42\x75\x74\x74\x6f\x6e'),this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x27bf7c(0x20c)][_0x27bf7c(0x2ab)]('\x68\x72\x65\x66',_0x27bf7c(0x169)),this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x27bf7c(0x20c)][_0x27bf7c(0x34f)](function(){var _0x16bb7c=_0x27bf7c;this[_0x16bb7c(0x1e8)](function(){var _0x161739=_0x16bb7c;this[_0x161739(0x2e6)](this[_0x161739(0x180)]);}[_0x16bb7c(0x27a)](this));}[_0x27bf7c(0x27a)](this)),this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x27bf7c(0x2a8)]=$(this['\x70\x61\x6e\x65\x6c\x50\x6c\x61\x79\x65\x72\x56\x69\x65\x77'])[_0x27bf7c(0x181)](_0x27bf7c(0x1d2)),this[_0x27bf7c(0x1be)]=$(document[_0x27bf7c(0x163)](this[_0x27bf7c(0x26d)]))['\x63\x68\x69\x6c\x64\x72\x65\x6e'](_0x27bf7c(0x2bb))[0x0],$(this[_0x27bf7c(0x1be)])['\x68\x69\x64\x65'](),this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x27bf7c(0x346)]=$($('\x23'+_0x2b211f+'\x20\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c\x20\x2e\x73\x65\x65\x6b')[0x0]),this[_0x27bf7c(0x234)][_0x27bf7c(0x268)]=$($('\x23'+_0x2b211f+_0x27bf7c(0x217))[0x0])[_0x27bf7c(0x2dc)]('\x2e\x73\x65\x65\x6b\x42\x47'),this[_0x27bf7c(0x234)][_0x27bf7c(0x35c)]=$($('\x23'+_0x2b211f+_0x27bf7c(0x217))[0x0])[_0x27bf7c(0x2dc)]('\x2e\x62\x75\x66\x66\x65\x72\x69\x6e\x67\x53\x65\x74'),this[_0x27bf7c(0x234)]['\x73\x65\x65\x6b\x42\x61\x72']=$($('\x23'+_0x2b211f+_0x27bf7c(0x217))[0x0])[_0x27bf7c(0x2dc)](_0x27bf7c(0x31e)),this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x27bf7c(0x18b)]=$($('\x23'+_0x2b211f+_0x27bf7c(0x217))[0x0])[_0x27bf7c(0x181)](_0x27bf7c(0x215)),this[_0x27bf7c(0x234)]['\x74\x69\x6d\x65\x70\x6f\x73\x4c\x61\x62\x65\x6c']=$($('\x23'+_0x2b211f+_0x27bf7c(0x217))[0x0])[_0x27bf7c(0x2dc)]('\x74\x69\x6d\x65'),this[_0x27bf7c(0x234)][_0x27bf7c(0x31b)]=$('\x23'+_0x2b211f+'\x20\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c\x20\x2e\x63\x74\x6c\x73\x65\x74'),this[_0x27bf7c(0x234)]['\x63\x74\x6c\x73\x65\x74'][_0x27bf7c(0x34f)](function(){var _0x337fe1=_0x27bf7c;event[_0x337fe1(0x326)]();}),this[_0x27bf7c(0x234)][_0x27bf7c(0x324)]=$('\x23'+_0x2b211f+_0x27bf7c(0x374))['\x63\x68\x69\x6c\x64\x72\x65\x6e'](_0x27bf7c(0x37c)),this[_0x27bf7c(0x234)][_0x27bf7c(0x324)]['\x63\x6c\x69\x63\x6b'](function(){var _0x1eecbf=_0x27bf7c;this[_0x1eecbf(0x2fc)](this),event[_0x1eecbf(0x326)]();}[_0x27bf7c(0x27a)](this)),this[_0x27bf7c(0x234)][_0x27bf7c(0x30b)]=$('\x23'+_0x2b211f+'\x20\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c\x20\x2e\x63\x74\x6c\x73\x65\x74\x20\x2e\x73\x63\x72\x65\x65\x6e\x20\x2e\x62\x74\x6e\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e\x42\x75\x74\x74\x6f\x6e'),this[_0x27bf7c(0x234)][_0x27bf7c(0x30b)]['\x63\x6c\x69\x63\x6b'](function(){var _0x24f2e9=_0x27bf7c;this[_0x24f2e9(0x309)](),event[_0x24f2e9(0x326)]();}[_0x27bf7c(0x27a)](this)),this[_0x27bf7c(0x234)][_0x27bf7c(0x213)]=$('\x23'+_0x2b211f+_0x27bf7c(0x225)),this[_0x27bf7c(0x234)]['\x71\x75\x61\x6c\x69\x74\x79']['\x6f\x6e'](_0x27bf7c(0x34f),function(){var _0x314422=_0x27bf7c;bugs[_0x314422(0x36c)][_0x314422(0x2cd)](_0x314422(0x2ea));if(this[_0x314422(0x234)][_0x314422(0x213)][_0x314422(0x349)](_0x314422(0x277)))this[_0x314422(0x234)][_0x314422(0x213)]['\x72\x65\x6d\x6f\x76\x65\x43\x6c\x61\x73\x73'](_0x314422(0x277));else this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x314422(0x213)][_0x314422(0x1c5)](_0x314422(0x277));event[_0x314422(0x326)]();}[_0x27bf7c(0x27a)](this)),this[_0x27bf7c(0x234)][_0x27bf7c(0x213)][_0x27bf7c(0x398)]=this[_0x27bf7c(0x234)][_0x27bf7c(0x213)][_0x27bf7c(0x181)](_0x27bf7c(0x1ea)),this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x27bf7c(0x34b)]=$(this[_0x27bf7c(0x234)]['\x71\x75\x61\x6c\x69\x74\x79'][_0x27bf7c(0x2dc)]('\x75\x6c')['\x63\x68\x69\x6c\x64\x72\x65\x6e']('\x6c\x69')[0x0]),this[_0x27bf7c(0x234)][_0x27bf7c(0x2a0)]=$(this[_0x27bf7c(0x234)][_0x27bf7c(0x213)][_0x27bf7c(0x2dc)]('\x75\x6c')[_0x27bf7c(0x2dc)]('\x6c\x69')[0x1]),this[_0x27bf7c(0x234)]['\x71\x75\x61\x6c\x69\x74\x79\x46\x48\x44']=$(this[_0x27bf7c(0x234)]['\x71\x75\x61\x6c\x69\x74\x79'][_0x27bf7c(0x2dc)]('\x75\x6c')['\x63\x68\x69\x6c\x64\x72\x65\x6e']('\x6c\x69')[0x2]);bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x27bf7c(0x33b)]!=_0x27bf7c(0x257)&&(this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x27bf7c(0x19a)]['\x68\x69\x64\x65'](),$(this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c']['\x73\x65\x65\x6b\x41\x72\x65\x61'])['\x6d\x6f\x75\x73\x65\x6d\x6f\x76\x65'](function(_0x1b16d8){var _0x9443ec=_0x27bf7c;this['\x73\x65\x74\x54\x69\x6d\x65\x6c\x61\x62\x65\x6c\x50\x6f\x73\x69\x74\x69\x6f\x6e'](this[_0x9443ec(0x234)][_0x9443ec(0x268)],_0x1b16d8[_0x9443ec(0x390)]);}[_0x27bf7c(0x27a)](this))['\x6d\x6f\x75\x73\x65\x6c\x65\x61\x76\x65'](function(){var _0x5f23bd=_0x27bf7c;this[_0x5f23bd(0x234)]['\x74\x69\x6d\x65\x70\x6f\x73\x4c\x61\x62\x65\x6c'][_0x5f23bd(0x1fd)]();}[_0x27bf7c(0x27a)](this)));this[_0x27bf7c(0x174)]=new bugs['\x73\x65\x65\x6b\x53\x6c\x69\x64\x65\x72'](this),this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x27bf7c(0x29c)]=$($('\x23'+_0x2b211f+_0x27bf7c(0x374))[0x0])[_0x27bf7c(0x2dc)](_0x27bf7c(0x16e)),this[_0x27bf7c(0x234)][_0x27bf7c(0x29c)]=$($('\x23'+_0x2b211f+_0x27bf7c(0x374))[0x0])[_0x27bf7c(0x2dc)](_0x27bf7c(0x16e)),this[_0x27bf7c(0x234)][_0x27bf7c(0x356)]=$($('\x23'+_0x2b211f+_0x27bf7c(0x374))[0x0])[_0x27bf7c(0x181)](_0x27bf7c(0x1d0)),this[_0x27bf7c(0x234)][_0x27bf7c(0x377)]=$($('\x23'+_0x2b211f+_0x27bf7c(0x374))[0x0])['\x66\x69\x6e\x64']('\x2e\x76\x6f\x6c\x75\x6d\x65\x20\x2e\x73\x65\x65\x6b\x20\x2e\x73\x65\x65\x6b\x42\x47'),this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c']['\x76\x6f\x6c\x75\x6d\x65\x42\x61\x72']=$($('\x23'+_0x2b211f+_0x27bf7c(0x374))[0x0])[_0x27bf7c(0x181)]('\x2e\x76\x6f\x6c\x75\x6d\x65\x20\x2e\x73\x65\x65\x6b\x20\x2e\x63\x75\x72\x72\x65\x6e\x74'),this[_0x27bf7c(0x234)][_0x27bf7c(0x278)]=$($('\x23'+_0x2b211f+'\x20\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c\x20\x2e\x63\x74\x6c\x73\x65\x74\x20\x2e\x70\x6c\x61\x79')[0x0])[_0x27bf7c(0x181)](_0x27bf7c(0x238)),this[_0x27bf7c(0x234)]['\x76\x6f\x6c\x4f\x6e\x42\x75\x74\x74\x6f\x6e']=$($('\x23'+_0x2b211f+'\x20\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c\x20\x2e\x63\x74\x6c\x73\x65\x74\x20\x2e\x70\x6c\x61\x79')[0x0])[_0x27bf7c(0x181)](_0x27bf7c(0x161)),this[_0x27bf7c(0x234)]['\x76\x6f\x6c\x4f\x6e\x42\x75\x74\x74\x6f\x6e'][_0x27bf7c(0x34f)](function(){var _0x12cc90=_0x27bf7c;this['\x6d\x75\x74\x65\x42\x75\x74\x74\x6f\x6e\x48\x61\x6e\x64\x6c\x65\x72']()['\x62\x69\x6e\x64'](this),event[_0x12cc90(0x326)]();}['\x62\x69\x6e\x64'](this)),this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c']['\x6d\x75\x74\x65\x42\x75\x74\x74\x6f\x6e']=$($('\x23'+_0x2b211f+_0x27bf7c(0x374))[0x0])['\x66\x69\x6e\x64'](_0x27bf7c(0x299)),this[_0x27bf7c(0x234)][_0x27bf7c(0x37f)][_0x27bf7c(0x34f)](function(){var _0x4c1ddc=_0x27bf7c;this['\x6d\x75\x74\x65\x42\x75\x74\x74\x6f\x6e\x48\x61\x6e\x64\x6c\x65\x72']()[_0x4c1ddc(0x27a)](this),event[_0x4c1ddc(0x326)]();}[_0x27bf7c(0x27a)](this)),this[_0x27bf7c(0x1bc)]=new bugs[(_0x27bf7c(0x1bc))](this),$(this[_0x27bf7c(0x234)][_0x27bf7c(0x29c)])[_0x27bf7c(0x262)](function(){var _0x205afb=_0x27bf7c;if(this['\x73\x65\x65\x6b\x53\x6c\x69\x64\x65\x72'][_0x205afb(0x355)])return;this[_0x205afb(0x1bc)][_0x205afb(0x327)]=!![],this[_0x205afb(0x2c6)]?(this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x205afb(0x2d9)][_0x205afb(0x1fd)](0x64),this[_0x205afb(0x234)][_0x205afb(0x37f)]['\x73\x68\x6f\x77'](0x64)):(this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c']['\x76\x6f\x6c\x4f\x6e\x42\x75\x74\x74\x6f\x6e'][_0x205afb(0x34c)](0x64),this[_0x205afb(0x234)][_0x205afb(0x37f)][_0x205afb(0x1fd)](0x64)),this[_0x205afb(0x234)][_0x205afb(0x29c)][_0x205afb(0x2dc)](_0x205afb(0x297))['\x73\x68\x6f\x77'](0x64);}[_0x27bf7c(0x27a)](this))['\x6d\x6f\x75\x73\x65\x6c\x65\x61\x76\x65'](function(){var _0x451127=_0x27bf7c;this[_0x451127(0x1bc)][_0x451127(0x327)]=![];if(this[_0x451127(0x1bc)][_0x451127(0x198)])return;this['\x69\x73\x4d\x75\x74\x65\x64']?(this[_0x451127(0x234)][_0x451127(0x2d9)][_0x451127(0x1fd)](0x64),this[_0x451127(0x234)][_0x451127(0x29c)][_0x451127(0x2dc)]('\x2e\x62\x74\x6e\x4d\x75\x74\x65')[_0x451127(0x34c)](0x64)):(this[_0x451127(0x234)][_0x451127(0x2d9)][_0x451127(0x34c)](0x64),this[_0x451127(0x234)][_0x451127(0x37f)][_0x451127(0x1fd)](0x64)),this[_0x451127(0x234)][_0x451127(0x29c)]['\x63\x68\x69\x6c\x64\x72\x65\x6e'](_0x451127(0x297))[_0x451127(0x1fd)](0x64);}[_0x27bf7c(0x27a)](this)),this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x27bf7c(0x1ac)]=$('\x23'+_0x2b211f+_0x27bf7c(0x321)),this[_0x27bf7c(0x234)][_0x27bf7c(0x1ac)]['\x6f\x6e'](_0x27bf7c(0x34f),function(){var _0x4d797f=_0x27bf7c;this[_0x4d797f(0x323)](this),event[_0x4d797f(0x326)]();}[_0x27bf7c(0x27a)](this));bugs[_0x27bf7c(0x165)][_0x27bf7c(0x33b)]!=_0x27bf7c(0x257)&&($(this['\x70\x61\x6e\x65\x6c'])['\x6d\x6f\x75\x73\x65\x65\x6e\x74\x65\x72'](function(_0x4e4372){var _0x29bcf1=_0x27bf7c;if(!this[_0x29bcf1(0x15f)])return;(window['\x6c\x61\x73\x74\x4d\x56\x50\x6c\x61\x79\x65\x72\x58']!==_0x4e4372[_0x29bcf1(0x193)]||window[_0x29bcf1(0x2df)]!==_0x4e4372['\x63\x6c\x69\x65\x6e\x74\x59'])&&this[_0x29bcf1(0x21d)](this[_0x29bcf1(0x2a5)]),window['\x6c\x61\x73\x74\x4d\x56\x50\x6c\x61\x79\x65\x72\x58']=_0x4e4372['\x63\x6c\x69\x65\x6e\x74\x58'],window['\x6c\x61\x73\x74\x4d\x56\x50\x6c\x61\x79\x65\x72\x59']=_0x4e4372[_0x29bcf1(0x1ba)];}['\x62\x69\x6e\x64'](this))[_0x27bf7c(0x1b9)](function(){var _0x28553b=_0x27bf7c;if(this[_0x28553b(0x174)][_0x28553b(0x355)])return;if(!this[_0x28553b(0x15f)]&&!this[_0x28553b(0x192)]){this['\x73\x68\x6f\x77\x50\x61\x6e\x65\x6c'](this[_0x28553b(0x272)]);return;}if(this[_0x28553b(0x26e)]||this[_0x28553b(0x192)]||this[_0x28553b(0x22b)]!=null)return;if(this['\x69\x73\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e'])return;this[_0x28553b(0x318)]=![],this[_0x28553b(0x21d)](this[_0x28553b(0x272)]);}['\x62\x69\x6e\x64'](this))[_0x27bf7c(0x1dc)](function(_0x147c55){var _0x13d321=_0x27bf7c;if(!this[_0x13d321(0x15f)]&&!this[_0x13d321(0x192)])(window['\x6c\x61\x73\x74\x4d\x56\x50\x6c\x61\x79\x65\x72\x58']!==_0x147c55[_0x13d321(0x193)]||window[_0x13d321(0x2df)]!==_0x147c55[_0x13d321(0x1ba)])&&(this[_0x13d321(0x21d)](this['\x50\x41\x4e\x45\x4c\x5f\x56\x49\x45\x57\x5f\x53\x54\x41\x54\x45\x5f\x46\x4f\x43\x55\x53\x49\x4e']),this[_0x13d321(0x1f4)](),this[_0x13d321(0x22b)]=setTimeout(function(){var _0x5cf8d7=_0x13d321;if(!this[_0x5cf8d7(0x15f)]&&!this[_0x5cf8d7(0x192)])this[_0x5cf8d7(0x21d)](this['\x50\x41\x4e\x45\x4c\x5f\x56\x49\x45\x57\x5f\x53\x54\x41\x54\x45\x5f\x46\x4f\x43\x55\x53\x4f\x55\x54']);clearTimeout(this[_0x5cf8d7(0x22b)]),this[_0x5cf8d7(0x22b)]=null;}[_0x13d321(0x27a)](this),0x1388)),window[_0x13d321(0x325)]=_0x147c55[_0x13d321(0x193)],window[_0x13d321(0x2df)]=_0x147c55[_0x13d321(0x1ba)];else{this['\x67\x65\x74\x43\x75\x72\x73\x6f\x72\x58\x59'](_0x147c55);if(this[_0x13d321(0x381)]['\x78']==this[_0x13d321(0x2aa)]['\x78']&&this['\x63\x75\x72\x4d\x6f\x75\x73\x65\x43\x75\x72\x73\x6f\x72']['\x79']==this['\x6c\x61\x73\x74\x4d\x6f\x75\x73\x65\x43\x75\x72\x73\x6f\x72']['\x79'])return;if(window[_0x13d321(0x325)]!==_0x147c55['\x63\x6c\x69\x65\x6e\x74\x58']||window[_0x13d321(0x2df)]!==_0x147c55[_0x13d321(0x1ba)]){if(this[_0x13d321(0x192)]){if(this['\x70\x61\x6e\x65\x6c']['\x77\x69\x64\x74\x68']()>=0x12c){if($(this['\x70\x61\x6e\x65\x6c\x50\x6c\x61\x79\x65\x72\x54\x69\x74\x6c\x65'])[_0x13d321(0x253)]('\x64\x69\x73\x70\x6c\x61\x79')!=_0x13d321(0x261))$(this['\x70\x61\x6e\x65\x6c\x50\x6c\x61\x79\x65\x72\x54\x69\x74\x6c\x65'])[_0x13d321(0x34c)](_0x13d321(0x27f),{'\x64\x69\x72\x65\x63\x74\x69\x6f\x6e':'\x75\x70'},0xc8);}this['\x63\x6c\x65\x61\x72\x42\x61\x73\x69\x63\x54\x69\x6d\x65\x72\x53\x74\x61\x74\x65'](),this[_0x13d321(0x22b)]=setTimeout(function(){var _0xe358be=_0x13d321;if(this[_0xe358be(0x192)])$(this[_0xe358be(0x189)])[_0xe358be(0x1fd)](_0xe358be(0x27f),{'\x64\x69\x72\x65\x63\x74\x69\x6f\x6e':'\x75\x70'},0xc8);clearTimeout(this['\x74\x69\x6d\x65\x72\x49\x64\x4d\x76\x50\x61\x6e\x65\x6c\x53\x74\x61\x74\x65']),this['\x74\x69\x6d\x65\x72\x49\x64\x4d\x76\x50\x61\x6e\x65\x6c\x53\x74\x61\x74\x65']=null;}[_0x13d321(0x27a)](this),0x1388);}else this[_0x13d321(0x318)]=!![],this['\x73\x68\x6f\x77\x50\x61\x6e\x65\x6c'](this[_0x13d321(0x2a5)]);}window[_0x13d321(0x325)]=_0x147c55['\x63\x6c\x69\x65\x6e\x74\x58'],window[_0x13d321(0x2df)]=_0x147c55[_0x13d321(0x1ba)];}}['\x62\x69\x6e\x64'](this))[_0x27bf7c(0x340)](function(_0x1781e4){var _0x4470b7=_0x27bf7c;if(!this['\x69\x73\x50\x6c\x61\x79\x69\x6e\x67\x4d\x76'])return;if(this[_0x4470b7(0x251)]!=this[_0x4470b7(0x272)])return;this[_0x4470b7(0x21d)](this[_0x4470b7(0x2a5)]);}[_0x27bf7c(0x27a)](this)),bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72']['\x70\x6c\x61\x74\x66\x6f\x72\x6d']==_0x27bf7c(0x25f)&&$(window)['\x72\x65\x73\x69\x7a\x65'](function(){var _0x3bb062=_0x27bf7c;if(this['\x69\x73\x50\x6c\x61\x79\x69\x6e\x67\x4d\x76'])return;this[_0x3bb062(0x16b)]();}['\x62\x69\x6e\x64'](this)));;$(this[_0x27bf7c(0x203)])[_0x27bf7c(0x340)](function(_0x5f111d){var _0x2427f7=_0x27bf7c;this[_0x2427f7(0x229)]();}['\x62\x69\x6e\x64'](this)),$(this[_0x27bf7c(0x1be)])['\x63\x6c\x69\x63\x6b'](function(_0x2de83a){this['\x70\x6c\x61\x79\x4f\x6e\x50\x61\x6e\x65\x6c']();}[_0x27bf7c(0x27a)](this)),this[_0x27bf7c(0x293)]=$(document['\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64'](this[_0x27bf7c(0x26d)]))[_0x27bf7c(0x2dc)](_0x27bf7c(0x2c2))[0x0],this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x27bf7c(0x17a)]=$(this['\x70\x61\x6e\x65\x6c\x50\x6c\x61\x79\x65\x72\x52\x65\x70\x6c\x61\x79'])[_0x27bf7c(0x181)](_0x27bf7c(0x358)),!this[_0x27bf7c(0x224)]?(this[_0x27bf7c(0x234)][_0x27bf7c(0x17a)][_0x27bf7c(0x15e)]()['\x66\x69\x6e\x64'](_0x27bf7c(0x1ad))[_0x27bf7c(0x276)](_0x27bf7c(0x1df)),this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x27bf7c(0x17a)][_0x27bf7c(0x398)](_0x27bf7c(0x197))):!this['\x75\x73\x65\x53\x74\x72\x65\x61\x6d\x69\x6e\x67']&&(this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x27bf7c(0x17a)][_0x27bf7c(0x15e)]()[_0x27bf7c(0x181)](_0x27bf7c(0x1ad))[_0x27bf7c(0x276)]('\x3c\x65\x6d\x20\x73\x74\x79\x6c\x65\x3d\x27\x64\x69\x73\x70\x6c\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x27\x3e\uc774\x20\uc601\uc0c1\uc740\x20\uc544\ud2f0\uc2a4\ud2b8\uac00\x20\uc720\ub8cc\ub85c\x20\uc124\uc815\ud558\uc600\uc2b5\ub2c8\ub2e4\x2e\x3c\x2f\x65\x6d\x3e\uc774\uc6a9\uad8c\uc744\x20\uad6c\ub9e4\ud558\uace0\x20\uc804\uccb4\x20\uc601\uc0c1\uc744\x20\uac10\uc0c1\ud558\uc138\uc694\x2e'),this[_0x27bf7c(0x234)][_0x27bf7c(0x17a)][_0x27bf7c(0x398)](_0x27bf7c(0x16f))),this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x27bf7c(0x17a)]['\x6f\x6e'](_0x27bf7c(0x34f),function(){var _0x515a6f=_0x27bf7c;if(this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x515a6f(0x30b)][_0x515a6f(0x349)](_0x515a6f(0x348))){if(document[_0x515a6f(0x372)])document[_0x515a6f(0x372)]();else{if(document[_0x515a6f(0x226)])document[_0x515a6f(0x226)]();else{if(document[_0x515a6f(0x320)])document[_0x515a6f(0x320)]();else{if(document['\x6d\x73\x45\x78\x69\x74\x46\x75\x6c\x6c\x73\x63\x72\x65\x65\x6e'])document[_0x515a6f(0x1a9)]();}}}this['\x70\x61\x6e\x65\x6c'][_0x515a6f(0x253)]('\x77\x69\x64\x74\x68',_0x515a6f(0x363)),this[_0x515a6f(0x394)][_0x515a6f(0x253)](_0x515a6f(0x269),'\x31\x30\x30\x25'),this[_0x515a6f(0x234)]['\x66\x75\x6c\x6c\x73\x63\x72\x65\x65\x6e'][_0x515a6f(0x34e)](_0x515a6f(0x348)),this[_0x515a6f(0x234)][_0x515a6f(0x30b)][_0x515a6f(0x1c5)](_0x515a6f(0x270));}if(!this[_0x515a6f(0x224)])return bugs[_0x515a6f(0x36c)][_0x515a6f(0x2cd)](_0x515a6f(0x2e3)),setTimeout(function(){var _0x70fa17=_0x515a6f;this[_0x70fa17(0x164)]();}[_0x515a6f(0x27a)](this),0xc8),![];else{bugs[_0x515a6f(0x36c)][_0x515a6f(0x2cd)](_0x515a6f(0x1db));if(bugs[_0x515a6f(0x165)]['\x70\x6c\x61\x74\x66\x6f\x72\x6d']==_0x515a6f(0x257))window['\x6f\x70\x65\x6e'](g_urlBilling+_0x515a6f(0x152));else window[_0x515a6f(0x277)](g_urlMusic+'\x2f\x70\x61\x79\x2f\x72\x65\x63\x6f\x6d\x6d\x65\x6e\x64');}}['\x62\x69\x6e\x64'](this));},'\x75\x70\x64\x61\x74\x65\x54\x68\x75\x6d\x62\x6e\x61\x69\x6c\x53\x69\x7a\x65':function(){var _0x167c4a=_0x53579b;this[_0x167c4a(0x332)]=$(this['\x70\x61\x6e\x65\x6c'])[_0x167c4a(0x223)](),this[_0x167c4a(0x221)]=$(this[_0x167c4a(0x394)])[_0x167c4a(0x269)]();var _0x628422=0x0,_0x2d2f1f=0x0;this[_0x167c4a(0x241)][_0x167c4a(0x223)]*0x9/0x10>=this[_0x167c4a(0x241)][_0x167c4a(0x269)]?(_0x628422=this[_0x167c4a(0x332)],_0x2d2f1f=parseInt(this[_0x167c4a(0x241)]['\x68\x65\x69\x67\x68\x74']*this[_0x167c4a(0x332)]/this[_0x167c4a(0x241)][_0x167c4a(0x223)])):(_0x2d2f1f=this[_0x167c4a(0x221)],_0x628422=parseInt(this[_0x167c4a(0x241)][_0x167c4a(0x223)]*this['\x70\x61\x6e\x65\x6c\x53\x69\x7a\x65\x59']/this[_0x167c4a(0x241)][_0x167c4a(0x269)])),$(this[_0x167c4a(0x32d)])[_0x167c4a(0x2ab)](_0x167c4a(0x33e),this[_0x167c4a(0x2fe)])[_0x167c4a(0x223)](_0x628422)['\x68\x65\x69\x67\x68\x74'](_0x2d2f1f);},'\x70\x6c\x61\x79\x4f\x6e\x50\x61\x6e\x65\x6c':function(){var _0x4074e9=_0x53579b;if(bugs[_0x4074e9(0x165)][_0x4074e9(0x33b)]==_0x4074e9(0x25f)){}else this[_0x4074e9(0x15f)]&&(this[_0x4074e9(0x251)]!=this['\x50\x41\x4e\x45\x4c\x5f\x56\x49\x45\x57\x5f\x53\x54\x41\x54\x45\x5f\x46\x4f\x43\x55\x53\x49\x4e']&&(this['\x73\x68\x6f\x77\x50\x61\x6e\x65\x6c'](this[_0x4074e9(0x2a5)]),this[_0x4074e9(0x1f4)](),this[_0x4074e9(0x22b)]=setTimeout(function(){var _0x158365=_0x4074e9;if(!this['\x69\x73\x50\x61\x75\x73\x65\x64']&&!this[_0x158365(0x174)][_0x158365(0x355)])this['\x73\x68\x6f\x77\x50\x61\x6e\x65\x6c'](this['\x50\x41\x4e\x45\x4c\x5f\x56\x49\x45\x57\x5f\x53\x54\x41\x54\x45\x5f\x46\x4f\x43\x55\x53\x4f\x55\x54']);clearTimeout(this['\x74\x69\x6d\x65\x72\x49\x64\x4d\x76\x50\x61\x6e\x65\x6c\x53\x74\x61\x74\x65']),this[_0x158365(0x22b)]=null;}[_0x4074e9(0x27a)](this),0x1388)));},'\x70\x6c\x61\x79\x43\x6f\x6d\x6d\x6f\x6e':function(_0x411de2){var _0x38e225=_0x53579b;if(_0x411de2[_0x38e225(0x280)]!=_0x411de2['\x41\x55\x54\x48\x5f\x41\x44\x55\x4c\x54\x5f\x43\x48\x45\x43\x4b\x5f\x4e\x4f\x4e\x45']){_0x411de2[_0x38e225(0x1ff)]();return;}if('\x4e'==_0x411de2[_0x38e225(0x29f)]){alert(_0x38e225(0x365));return;}if(this[_0x38e225(0x24e)]==null){alert(_0x38e225(0x2f8));return;}if(bugs[_0x38e225(0x165)][_0x38e225(0x33b)]==_0x38e225(0x257)){if(bugs[_0x38e225(0x329)][_0x38e225(0x24f)]())bugs['\x61\x70\x70']['\x72\x75\x6e\x4d\x75\x73\x69\x63\x56\x69\x64\x65\x6f'](this['\x6d\x76\x49\x64']);else bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x38e225(0x2db)]?_0x411de2['\x73\x65\x74\x50\x6c\x61\x79\x53\x74\x61\x74\x65']():(alert('\ud574\ub2f9\x20\ube0c\ub77c\uc6b0\uc800\ub294\x20\x48\x54\x4d\x4c\x35\ub97c\x20\uc9c0\uc6d0\ud558\uc9c0\x20\uc54a\uc544\x20\ubc85\uc2a4\uc571\uc744\x20\uc2e4\ud589\ud569\ub2c8\ub2e4\x2e'),bugs[_0x38e225(0x329)][_0x38e225(0x17b)](this['\x6d\x76\x49\x64']));}else bugs[_0x38e225(0x165)][_0x38e225(0x2db)]?_0x411de2[_0x38e225(0x22e)]():(bugs[_0x38e225(0x36c)][_0x38e225(0x2cd)](_0x38e225(0x397)),bugs[_0x38e225(0x1e4)][_0x38e225(0x263)](_0x411de2[_0x38e225(0x180)],!![]));},'\x63\x6c\x65\x61\x72\x42\x61\x73\x69\x63\x54\x69\x6d\x65\x72\x53\x74\x61\x74\x65':function(){var _0x564188=_0x53579b;this[_0x564188(0x22b)]!=null&&(clearTimeout(this['\x74\x69\x6d\x65\x72\x49\x64\x4d\x76\x50\x61\x6e\x65\x6c\x53\x74\x61\x74\x65']),this[_0x564188(0x22b)]=null);},'\x73\x68\x6f\x77\x41\x75\x74\x68\x65\x6e\x74\x69\x63\x61\x74\x69\x6f\x6e\x4d\x65\x73\x73\x61\x67\x65':function(_0x9f1121){var _0x4eaa37=_0x53579b;if(this[_0x4eaa37(0x280)]==this[_0x4eaa37(0x196)]||this['\x61\x75\x74\x68\x41\x64\x75\x6c\x74\x43\x68\x65\x63\x6b']==this[_0x4eaa37(0x2c5)]){if(g_isLogged)bugs['\x75\x69'][_0x4eaa37(0x15d)][_0x4eaa37(0x25e)]();else{if(bugs[_0x4eaa37(0x165)]['\x70\x6c\x61\x74\x66\x6f\x72\x6d']==_0x4eaa37(0x257))alert(_0x4eaa37(0x1d1));this[_0x4eaa37(0x164)]();}}else{if(this[_0x4eaa37(0x280)]==this[_0x4eaa37(0x2eb)]){if(g_isLogged)alert('\x31\x39\uc138\x20\ubbf8\ub9cc\uc740\x20\uc774\uc6a9\ud560\x20\uc218\x20\uc5c6\uc2b5\ub2c8\ub2e4\x2e');else{if(bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72']['\x70\x6c\x61\x74\x66\x6f\x72\x6d']=='\x6d\x6f\x62\x69\x6c\x65')alert(_0x4eaa37(0x1d1));this[_0x4eaa37(0x164)]();}}else this['\x61\x75\x74\x68\x41\x64\x75\x6c\x74\x43\x68\x65\x63\x6b']==this[_0x4eaa37(0x2eb)]&&alert('\ubba4\uc9c1\ube44\ub514\uc624\x20\uc815\ubcf4\ub97c\x20\uc62c\ubc14\ub974\uac8c\x20\ubc1b\uc9c0\x20\ubabb\ud558\uc600\uc2b5\ub2c8\ub2e4\x2e');}},'\x73\x65\x74\x54\x69\x6d\x65\x6c\x61\x62\x65\x6c\x50\x6f\x73\x69\x74\x69\x6f\x6e':function(_0x5980a4,_0x3f5d9d){var _0x261425=_0x53579b;if(!this['\x69\x73\x50\x6c\x61\x79\x69\x6e\x67\x4d\x76'])return;var _0x22f88f=parseInt(this[_0x261425(0x234)][_0x261425(0x268)][_0x261425(0x253)]('\x77\x69\x64\x74\x68'),0xa),_0x4c8f20=0x0;if(_0x22f88f>0x0){var _0x1a6757=$(this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x261425(0x268)])[_0x261425(0x2c0)](),_0x484592=_0x3f5d9d-_0x1a6757[_0x261425(0x25c)];_0x4c8f20=parseInt(this['\x67\x65\x74\x48\x74\x6d\x6c\x35\x50\x6c\x61\x79\x65\x72']()[_0x261425(0x228)]*_0x484592/parseInt(this[_0x261425(0x234)]['\x73\x65\x65\x6b\x42\x61\x73\x65'][_0x261425(0x253)](_0x261425(0x223)),0xa));if(_0x4c8f20<0x0)_0x4c8f20=0x0;}this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c']['\x74\x69\x6d\x65\x70\x6f\x73\x4c\x61\x62\x65\x6c'][_0x261425(0x2ab)](_0x261425(0x15b),this['\x74\x69\x6d\x65\x46\x6f\x72\x6d\x61\x74'](_0x4c8f20,bugs[_0x261425(0x165)][_0x261425(0x33b)]!='\x6d\x6f\x62\x69\x6c\x65'?this[_0x261425(0x205)]()['\x64\x75\x72\x61\x74\x69\x6f\x6e']<0xe10:!![])),this[_0x261425(0x234)][_0x261425(0x19a)]['\x74\x65\x78\x74'](this[_0x261425(0x1ec)](_0x4c8f20,bugs[_0x261425(0x165)][_0x261425(0x33b)]!='\x6d\x6f\x62\x69\x6c\x65'?this[_0x261425(0x205)]()[_0x261425(0x228)]<0xe10:!![]));var _0x5eafc6=$(_0x5980a4)['\x6f\x66\x66\x73\x65\x74'](),_0x34d4f6=_0x3f5d9d-_0x5eafc6[_0x261425(0x25c)];_0x34d4f6=_0x34d4f6-0x19;var _0x39d7b9=0x33;if(bugs[_0x261425(0x165)][_0x261425(0x33b)]!=_0x261425(0x257))_0x39d7b9=this['\x67\x65\x74\x48\x74\x6d\x6c\x35\x50\x6c\x61\x79\x65\x72']()[_0x261425(0x228)]<0xe10?0x33:0x46;if(_0x34d4f6>_0x22f88f-_0x39d7b9)_0x34d4f6=_0x22f88f-_0x39d7b9;else{if(_0x34d4f6<0x0)_0x34d4f6=0x0;}this[_0x261425(0x234)][_0x261425(0x19a)]['\x63\x73\x73'](_0x261425(0x25c),_0x34d4f6),this[_0x261425(0x234)][_0x261425(0x19a)][_0x261425(0x34c)]();},'\x6d\x75\x74\x65\x42\x75\x74\x74\x6f\x6e\x48\x61\x6e\x64\x6c\x65\x72':function(){var _0x51e890=_0x53579b;bugs[_0x51e890(0x36c)][_0x51e890(0x2cd)](_0x51e890(0x393)),classToggle(this[_0x51e890(0x234)][_0x51e890(0x356)],'\x6f\x6e',_0x51e890(0x1aa)),this['\x69\x73\x4d\x75\x74\x65\x64']=!this[_0x51e890(0x2c6)],this['\x69\x73\x4d\x75\x74\x65\x64']?(this[_0x51e890(0x195)]=this[_0x51e890(0x1bc)][_0x51e890(0x195)],this['\x76\x6f\x6c\x75\x6d\x65\x53\x6c\x69\x64\x65\x72'][_0x51e890(0x1c2)](0x0),this[_0x51e890(0x234)][_0x51e890(0x37f)][_0x51e890(0x398)](_0x51e890(0x310)),this[_0x51e890(0x234)][_0x51e890(0x2d9)][_0x51e890(0x1fd)](),this[_0x51e890(0x234)][_0x51e890(0x37f)]['\x73\x68\x6f\x77']()):(this[_0x51e890(0x1bc)][_0x51e890(0x1c2)](this['\x6c\x61\x73\x74\x56\x6f\x6c\x75\x6d\x65\x56\x61\x6c\x75\x65']),this[_0x51e890(0x234)][_0x51e890(0x37f)][_0x51e890(0x398)]('\uc74c\uc18c\uac70\x20\ud574\uc81c'),this[_0x51e890(0x234)][_0x51e890(0x2d9)][_0x51e890(0x34c)](),this[_0x51e890(0x234)]['\x6d\x75\x74\x65\x42\x75\x74\x74\x6f\x6e']['\x68\x69\x64\x65']());},'\x73\x65\x74\x50\x6c\x61\x79\x53\x74\x61\x74\x65':function(){var _0x35568a=_0x53579b;if(bugs[_0x35568a(0x165)][_0x35568a(0x2e2)]==_0x35568a(0x28b)||bugs[_0x35568a(0x165)][_0x35568a(0x2e2)]==_0x35568a(0x24a)){this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x35568a(0x1d4)][_0x35568a(0x34e)](_0x35568a(0x324))[_0x35568a(0x1c5)](_0x35568a(0x187)),this[_0x35568a(0x1e8)](function(){var _0x297aa8=_0x35568a;this[_0x297aa8(0x2e6)](this['\x6d\x76\x49\x64']);}[_0x35568a(0x27a)](this));return;}else{if(bugs[_0x35568a(0x165)][_0x35568a(0x2e2)]==_0x35568a(0x266)){if(this[_0x35568a(0x376)]==_0x35568a(0x271)){this[_0x35568a(0x1e8)](function(){var _0x11f140=_0x35568a;this['\x70\x6c\x61\x79\x56\x69\x64\x65\x6f'](this[_0x11f140(0x180)]);}['\x62\x69\x6e\x64'](this));return;}else this['\x63\x6c\x65\x61\x72\x42\x61\x73\x69\x63\x54\x69\x6d\x65\x72\x53\x74\x61\x74\x65'](),this[_0x35568a(0x22b)]=setTimeout(function(){var _0x5689ab=_0x35568a;if(!this['\x69\x73\x50\x61\x75\x73\x65\x64'])this['\x73\x68\x6f\x77\x50\x61\x6e\x65\x6c'](this['\x50\x41\x4e\x45\x4c\x5f\x56\x49\x45\x57\x5f\x53\x54\x41\x54\x45\x5f\x46\x4f\x43\x55\x53\x4f\x55\x54']);clearTimeout(this[_0x5689ab(0x22b)]),this[_0x5689ab(0x22b)]=null;}[_0x35568a(0x27a)](this),0x1388);}}!this['\x69\x73\x50\x6c\x61\x79\x69\x6e\x67\x4d\x76']?this[_0x35568a(0x1e8)](function(){var _0x59b16c=_0x35568a;this[_0x59b16c(0x2e6)](this[_0x59b16c(0x180)])!=![]&&(this[_0x59b16c(0x234)][_0x59b16c(0x324)][_0x59b16c(0x2ab)]('\x63\x6c\x61\x73\x73',_0x59b16c(0x1b1)),this[_0x59b16c(0x234)][_0x59b16c(0x1d4)][_0x59b16c(0x34e)](_0x59b16c(0x324))[_0x59b16c(0x1c5)](_0x59b16c(0x187)));}[_0x35568a(0x27a)](this)):this[_0x35568a(0x26e)]?(this[_0x35568a(0x234)][_0x35568a(0x324)]['\x61\x74\x74\x72'](_0x35568a(0x1dd),'\x62\x74\x6e\x50\x61\x75\x73\x65'),this[_0x35568a(0x234)][_0x35568a(0x1d4)][_0x35568a(0x34e)](_0x35568a(0x324))[_0x35568a(0x1c5)](_0x35568a(0x187)),this[_0x35568a(0x1e8)](function(){var _0x4126ad=_0x35568a;this['\x70\x6c\x61\x79\x56\x69\x64\x65\x6f'](this[_0x4126ad(0x180)]);}[_0x35568a(0x27a)](this))):(bugs[_0x35568a(0x36c)][_0x35568a(0x2cd)](_0x35568a(0x1ee)),this[_0x35568a(0x234)]['\x70\x6c\x61\x79'][_0x35568a(0x2ab)](_0x35568a(0x1dd),_0x35568a(0x18f)),this[_0x35568a(0x234)][_0x35568a(0x1d4)][_0x35568a(0x34e)](_0x35568a(0x187))[_0x35568a(0x1c5)]('\x70\x6c\x61\x79'),this[_0x35568a(0x30c)]());},'\x73\x68\x6f\x77\x50\x61\x6e\x65\x6c':function(_0x27e997){var _0x2ea90c=_0x53579b;this[_0x2ea90c(0x251)]=_0x27e997;if(this[_0x2ea90c(0x24e)]!=null&&this[_0x2ea90c(0x24e)]['\x6d\x76\x5f\x61\x64\x75\x6c\x74\x5f\x79\x6e']=='\x59'){if(this[_0x2ea90c(0x15f)])this['\x69\x63\x6f\x6e\x31\x39']['\x68\x69\x64\x65']();else this[_0x2ea90c(0x38b)][_0x2ea90c(0x34c)]();}if(_0x27e997==this[_0x2ea90c(0x2a5)]){$(this['\x76\x69\x64\x65\x6f\x4f\x62\x6a'])[_0x2ea90c(0x253)](_0x2ea90c(0x168),'\x70\x6f\x69\x6e\x74\x65\x72');if(this[_0x2ea90c(0x192)]){$(this[_0x2ea90c(0x1be)])['\x68\x69\x64\x65']();if(!this[_0x2ea90c(0x224)]&&this[_0x2ea90c(0x24e)][_0x2ea90c(0x16c)]!=!![]||!this['\x75\x73\x65\x53\x74\x72\x65\x61\x6d\x69\x6e\x67']&&!this[_0x2ea90c(0x31c)]){if(this[_0x2ea90c(0x394)][_0x2ea90c(0x223)]()>=0x12c)$(this[_0x2ea90c(0x293)])['\x73\x68\x6f\x77'](_0x2ea90c(0x27f),{'\x64\x69\x72\x65\x63\x74\x69\x6f\x6e':_0x2ea90c(0x366)},0xc8);}this[_0x2ea90c(0x273)]!=!![]&&(this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x2ea90c(0x1d4)][_0x2ea90c(0x1fd)](),this[_0x2ea90c(0x234)]['\x70\x6c\x61\x79\x52\x65\x70\x6c\x61\x79'][_0x2ea90c(0x34c)]());}else{if(!this[_0x2ea90c(0x15f)]){if(this['\x70\x61\x6e\x65\x6c'][_0x2ea90c(0x223)]()>=0x12c)$(this[_0x2ea90c(0x189)])['\x73\x68\x6f\x77'](_0x2ea90c(0x27f),{'\x64\x69\x72\x65\x63\x74\x69\x6f\x6e':'\x75\x70'},0xc8);}else{this[_0x2ea90c(0x394)][_0x2ea90c(0x223)]()>=0x12c&&($(this[_0x2ea90c(0x189)])[_0x2ea90c(0x34c)](_0x2ea90c(0x27f),{'\x64\x69\x72\x65\x63\x74\x69\x6f\x6e':'\x75\x70'},0xc8),$(this[_0x2ea90c(0x1be)])['\x73\x68\x6f\x77'](_0x2ea90c(0x27f),{'\x64\x69\x72\x65\x63\x74\x69\x6f\x6e':_0x2ea90c(0x366)},0xc8));$(this[_0x2ea90c(0x293)])[_0x2ea90c(0x1fd)]();if(this[_0x2ea90c(0x273)]!=!![]){if(bugs[_0x2ea90c(0x165)]['\x64\x65\x76\x69\x63\x65']=='\x61\x6e\x64\x72\x6f\x69\x64')this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x2ea90c(0x1d4)][_0x2ea90c(0x34c)]();this[_0x2ea90c(0x234)][_0x2ea90c(0x20c)]['\x68\x69\x64\x65']();}}}}else{if(_0x27e997==this[_0x2ea90c(0x272)]){$(this['\x70\x61\x6e\x65\x6c\x50\x6c\x61\x79\x65\x72\x52\x65\x70\x6c\x61\x79'])[_0x2ea90c(0x1fd)](),$(this[_0x2ea90c(0x189)])[_0x2ea90c(0x1fd)](_0x2ea90c(0x27f),{'\x64\x69\x72\x65\x63\x74\x69\x6f\x6e':'\x75\x70'},0xc8),$(this[_0x2ea90c(0x1be)])[_0x2ea90c(0x1fd)](_0x2ea90c(0x27f),{'\x64\x69\x72\x65\x63\x74\x69\x6f\x6e':_0x2ea90c(0x366)},0xc8),$(this[_0x2ea90c(0x31a)])[_0x2ea90c(0x253)](_0x2ea90c(0x168),_0x2ea90c(0x151));if(this[_0x2ea90c(0x273)]!=!![]){if(bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x2ea90c(0x2e2)]==_0x2ea90c(0x266))$(this[_0x2ea90c(0x234)][_0x2ea90c(0x1d4)])[_0x2ea90c(0x1fd)]();$(this[_0x2ea90c(0x234)][_0x2ea90c(0x20c)])[_0x2ea90c(0x1fd)]();}}}},'\x73\x65\x74\x53\x69\x7a\x65':function(_0x27989d,_0x148419){var _0x64a595=_0x53579b;$('\x23'+this[_0x64a595(0x26d)])[_0x64a595(0x253)](_0x64a595(0x223),_0x27989d),$('\x23'+this[_0x64a595(0x26d)])[_0x64a595(0x253)](_0x64a595(0x269),_0x148419);},'\x73\x65\x74\x50\x6f\x73\x74\x65\x72':function(_0x3bc6f7){var _0x1c709c=_0x53579b;$('\x23'+this['\x70\x6c\x61\x79\x65\x72\x49\x64'])[_0x1c709c(0x2ab)](_0x1c709c(0x1ef),_0x3bc6f7);},'\x70\x6c\x61\x79\x56\x69\x64\x65\x6f':function(_0x406a1e){var _0x60d49d=_0x53579b;if(this['\x69\x73\x4d\x76\x53\x74\x72\x41\x75\x74\x68']=='\x4e')return![];if(this['\x61\x75\x74\x68\x41\x64\x75\x6c\x74\x43\x68\x65\x63\x6b']!=this[_0x60d49d(0x222)])return![];bugs[_0x60d49d(0x165)]['\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x50\x6c\x61\x79\x65\x72\x49\x64'](this[_0x60d49d(0x26d)]),this[_0x60d49d(0x183)]();if(bugs[_0x60d49d(0x165)][_0x60d49d(0x33b)]==_0x60d49d(0x257))bugs[_0x60d49d(0x165)][_0x60d49d(0x2c8)]();if(bugs[_0x60d49d(0x2d0)]!=undefined){if(bugs[_0x60d49d(0x2d0)]['\x61\x75\x64\x69\x6f\x4f\x62\x6a']!=null){if(bugs[_0x60d49d(0x2d0)][_0x60d49d(0x29a)])bugs[_0x60d49d(0x2d0)][_0x60d49d(0x1f6)]();}}if(this[_0x60d49d(0x15f)]){if(bugs[_0x60d49d(0x165)][_0x60d49d(0x2e2)]==_0x60d49d(0x28b)||bugs[_0x60d49d(0x165)][_0x60d49d(0x2e2)]==_0x60d49d(0x24a)){bugs[_0x60d49d(0x36c)][_0x60d49d(0x2cd)](_0x60d49d(0x2e7));var _0x4d4279=this[_0x60d49d(0x205)]();_0x4d4279[_0x60d49d(0x324)](),_0x4d4279[_0x60d49d(0x249)]();}else{if(bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x60d49d(0x2e2)]==_0x60d49d(0x266)){var _0x4d4279=this[_0x60d49d(0x205)]();this[_0x60d49d(0x376)]==_0x60d49d(0x271)?(bugs[_0x60d49d(0x36c)][_0x60d49d(0x2cd)](_0x60d49d(0x2e7)),_0x4d4279[_0x60d49d(0x324)](),_0x4d4279[_0x60d49d(0x249)]()):this[_0x60d49d(0x26e)]&&(bugs[_0x60d49d(0x36c)][_0x60d49d(0x2cd)](_0x60d49d(0x2e7)),this[_0x60d49d(0x26e)]=![],_0x4d4279[_0x60d49d(0x324)]());}else{if(this[_0x60d49d(0x26e)]){bugs[_0x60d49d(0x36c)]['\x61\x72\x65\x61'](_0x60d49d(0x2e7)),this['\x69\x73\x50\x61\x75\x73\x65\x64']=![];var _0x4d4279=this[_0x60d49d(0x205)]();_0x4d4279['\x70\x6c\x61\x79']();}}}return;}var _0x4d4279=this['\x67\x65\x74\x48\x74\x6d\x6c\x35\x50\x6c\x61\x79\x65\x72']();_0x4d4279==null&&(_0x4d4279=new Video());_0x4d4279[_0x60d49d(0x187)](),this[_0x60d49d(0x15f)]=![],this[_0x60d49d(0x273)]=!![];if(bugs[_0x60d49d(0x165)][_0x60d49d(0x33b)]!='\x6d\x6f\x62\x69\x6c\x65')this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x60d49d(0x1d4)][_0x60d49d(0x1fd)]();this[_0x60d49d(0x234)][_0x60d49d(0x20c)]['\x68\x69\x64\x65'](),this[_0x60d49d(0x234)]['\x6c\x6f\x61\x64\x69\x6e\x67'][_0x60d49d(0x34c)](),this[_0x60d49d(0x1f4)](),$['\x61\x6a\x61\x78']({'\x74\x79\x70\x65':_0x60d49d(0x342),'\x75\x72\x6c':g_urlAjax+_0x60d49d(0x1ed),'\x64\x61\x74\x61':{'\x6d\x76\x49\x64':this['\x6d\x76\x49\x64'],'\x70\x6c\x5f\x74\x79\x70\x65':_0x60d49d(0x1bb),'\x71\x75\x61\x6c\x69\x74\x79':this[_0x60d49d(0x370)]},'\x73\x75\x63\x63\x65\x73\x73':function(_0x309c50){var _0x16a3eb=_0x60d49d;if(_0x309c50['\x75\x72\x6c']==null){alert(_0x16a3eb(0x22d));return;}this[_0x16a3eb(0x31c)]=_0x309c50[_0x16a3eb(0x31c)],$(this[_0x16a3eb(0x31a)])[_0x16a3eb(0x253)](_0x16a3eb(0x20e),_0x16a3eb(0x18c));if(bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72']['\x69\x65\x4f\x53\x56\x65\x72\x73\x69\x6f\x6e']==0xa&&bugs[_0x16a3eb(0x165)]['\x69\x65\x56\x65\x72\x73\x69\x6f\x6e']==0xb||bugs[_0x16a3eb(0x1e4)][_0x16a3eb(0x289)]())this[_0x16a3eb(0x205)]()[_0x16a3eb(0x33e)]=_0x309c50['\x75\x72\x6c'];else this['\x67\x65\x74\x48\x74\x6d\x6c\x35\x50\x6c\x61\x79\x65\x72']()[_0x16a3eb(0x33e)]=bugs[_0x16a3eb(0x165)][_0x16a3eb(0x2a7)]+_0x16a3eb(0x28c)+_0x309c50[_0x16a3eb(0x2d6)];this[_0x16a3eb(0x175)]=_0x309c50[_0x16a3eb(0x275)];if(bugs[_0x16a3eb(0x165)][_0x16a3eb(0x208)])this['\x69\x73\x49\x4f\x50\x6c\x61\x79\x69\x6e\x67\x46\x6c\x61\x67']=!![];this[_0x16a3eb(0x354)][_0x16a3eb(0x370)]=this[_0x16a3eb(0x370)];var _0x26fe5f=bugs[_0x16a3eb(0x21c)][_0x16a3eb(0x15a)]['\x66\x6f\x72\x6d\x61\x74\x53\x74\x61\x6e\x64\x61\x72\x64'](this[_0x16a3eb(0x24e)]['\x6c\x65\x6e']==null?0x0:this['\x76\x69\x64\x65\x6f\x49\x6e\x66\x6f'][_0x16a3eb(0x264)]);$(this[_0x16a3eb(0x1be)])[_0x16a3eb(0x181)](_0x16a3eb(0x37e))[_0x16a3eb(0x276)](_0x16a3eb(0x159)+(this[_0x16a3eb(0x31c)]!=!![]&&_0x26fe5f>=_0x16a3eb(0x2ec)?_0x16a3eb(0x2ec):_0x26fe5f)),$(this[_0x16a3eb(0x1be)])[_0x16a3eb(0x181)](_0x16a3eb(0x33f))[_0x16a3eb(0x276)](_0x16a3eb(0x159)+(this[_0x16a3eb(0x31c)]!=!![]&&_0x26fe5f>='\x30\x31\x3a\x30\x30'?'\x30\x31\x3a\x30\x30':_0x26fe5f)),$(this[_0x16a3eb(0x31a)])[_0x16a3eb(0x34c)](),$(this[_0x16a3eb(0x1ca)])[_0x16a3eb(0x15e)]()[_0x16a3eb(0x1fd)]();this[_0x16a3eb(0x339)]==0x0?bugs[_0x16a3eb(0x36c)][_0x16a3eb(0x2cd)]('\x70\x6c\x61\x79\x65\x72\x5f\x6d\x76\x5f\x30\x31'):bugs[_0x16a3eb(0x36c)][_0x16a3eb(0x2cd)]('\x70\x6c\x61\x79\x65\x72\x5f\x6d\x76\x5f\x31\x31');if(this[_0x16a3eb(0x36c)]!=undefined&&this[_0x16a3eb(0x36c)]!='')bugs['\x77\x69\x73\x65\x6c\x6f\x67'][_0x16a3eb(0x2cd)](this[_0x16a3eb(0x36c)]);if(bugs[_0x16a3eb(0x165)][_0x16a3eb(0x33b)]=='\x64\x65\x73\x6b\x74\x6f\x70')this[_0x16a3eb(0x205)]()[_0x16a3eb(0x2c3)](),this[_0x16a3eb(0x344)]=![];else{if(bugs[_0x16a3eb(0x165)][_0x16a3eb(0x2e2)]==_0x16a3eb(0x266))this['\x70\x6c\x61\x79\x65\x72\x54\x79\x70\x65']!=_0x16a3eb(0x271)?(this['\x63\x6c\x65\x61\x72\x42\x61\x73\x69\x63\x54\x69\x6d\x65\x72\x53\x74\x61\x74\x65'](),this[_0x16a3eb(0x22b)]=setTimeout(function(){var _0x476d77=_0x16a3eb;if(!this['\x73\x65\x65\x6b\x53\x6c\x69\x64\x65\x72'][_0x476d77(0x355)])this['\x73\x68\x6f\x77\x50\x61\x6e\x65\x6c'](this[_0x476d77(0x272)]);clearTimeout(this[_0x476d77(0x22b)]),this[_0x476d77(0x22b)]=null;}[_0x16a3eb(0x27a)](this),0x1388)):setTimeout(function(){var _0xacfec7=_0x16a3eb;element=this[_0xacfec7(0x205)]();if(element[_0xacfec7(0x249)])element[_0xacfec7(0x249)]();else element[_0xacfec7(0x239)]&&element[_0xacfec7(0x239)]();}[_0x16a3eb(0x27a)](this),0x2bc);else bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x16a3eb(0x2e2)]==_0x16a3eb(0x24a)&&setTimeout(function(){var _0x3fe426=_0x16a3eb;this[_0x3fe426(0x205)]()[_0x3fe426(0x249)]();}[_0x16a3eb(0x27a)](this),0x3e8);this[_0x16a3eb(0x205)]()['\x70\x6c\x61\x79']();}}[_0x60d49d(0x27a)](this),'\x65\x72\x72\x6f\x72':function(){alert('\uc601\uc0c1\x20\ud30c\uc77c\x20\uacbd\ub85c\x20\x55\x52\x4c\uc744\x20\ubc1b\uc9c0\x20\ubabb\ud558\uc600\uc2b5\ub2c8\ub2e4\x2e\x5b\x31\x5d\x0a\uc7a0\uc2dc\x20\ud6c4\x2c\x20\ub2e4\uc2dc\x20\uc2dc\ub3c4\ud574\x20\uc8fc\uc138\uc694\x2e');}[_0x60d49d(0x27a)](this),'\x64\x61\x74\x61\x54\x79\x70\x65':'\x6a\x73\x6f\x6e','\x63\x61\x63\x68\x65':![],'\x61\x73\x79\x6e\x63':![]});},'\x70\x61\x75\x73\x65\x4f\x74\x68\x65\x72\x56\x69\x64\x65\x6f\x73':function(){var _0x59e5e0=_0x53579b;for(var _0x58389e=0x0;_0x58389e<bugs[_0x59e5e0(0x165)]['\x70\x6c\x61\x79\x65\x72\x73'][_0x59e5e0(0x252)];_0x58389e++){bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x59e5e0(0x319)][_0x58389e]!=null&&(this[_0x59e5e0(0x26d)]!=bugs[_0x59e5e0(0x165)][_0x59e5e0(0x319)][_0x58389e]['\x70\x6c\x61\x79\x65\x72\x49\x64']?bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x59e5e0(0x259)](_0x58389e)[_0x59e5e0(0x1af)]():bugs[_0x59e5e0(0x165)]['\x67\x65\x74\x42\x79\x49\x6e\x64\x65\x78'](_0x58389e)['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c']['\x70\x6c\x61\x79'][_0x59e5e0(0x2ab)](_0x59e5e0(0x1dd),_0x59e5e0(0x1b1)));}},'\x70\x61\x75\x73\x65\x56\x69\x64\x65\x6f':function(){var _0x39ea30=_0x53579b;if(this[_0x39ea30(0x15f)]){this['\x69\x73\x50\x61\x75\x73\x65\x64']=!![],this[_0x39ea30(0x234)][_0x39ea30(0x324)][_0x39ea30(0x2ab)](_0x39ea30(0x1dd),'\x62\x74\x6e\x50\x6c\x61\x79'),this['\x73\x68\x6f\x77\x50\x61\x6e\x65\x6c'](this[_0x39ea30(0x2a5)]),this['\x63\x6c\x65\x61\x72\x42\x61\x73\x69\x63\x54\x69\x6d\x65\x72\x53\x74\x61\x74\x65']();var _0x3e6190=this[_0x39ea30(0x205)]();_0x3e6190['\x70\x61\x75\x73\x65']();}},'\x73\x74\x6f\x70\x56\x69\x64\x65\x6f':function(){var _0x89755c=_0x53579b;if(this[_0x89755c(0x15f)]){this[_0x89755c(0x26e)]=!![],this[_0x89755c(0x15f)]=![],this[_0x89755c(0x1f4)](),$(this[_0x89755c(0x1be)])['\x68\x69\x64\x65'](),this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c']['\x70\x6c\x61\x79']['\x61\x74\x74\x72'](_0x89755c(0x1dd),_0x89755c(0x18f)),this[_0x89755c(0x234)][_0x89755c(0x1d4)]['\x72\x65\x6d\x6f\x76\x65\x43\x6c\x61\x73\x73'](_0x89755c(0x187))['\x61\x64\x64\x43\x6c\x61\x73\x73']('\x70\x6c\x61\x79'),this[_0x89755c(0x234)][_0x89755c(0x1d4)]['\x73\x68\x6f\x77'](),this['\x68\x61\x6e\x64\x6c\x65\x45\x76\x65\x6e\x74'](_0x89755c(0x32f),0x0,0x0),this[_0x89755c(0x354)][_0x89755c(0x387)]();var _0x21a8c2=this[_0x89755c(0x205)]();_0x21a8c2[_0x89755c(0x187)](),_0x21a8c2['\x73\x72\x63']='';}},'\x6c\x6f\x61\x64\x56\x69\x64\x65\x6f\x44\x61\x74\x61':function(_0x7a3b36,_0x2c3e86){var _0x417fa5=_0x53579b;$['\x61\x6a\x61\x78']({'\x75\x72\x6c':bugs[_0x417fa5(0x165)][_0x417fa5(0x2a7)]+_0x417fa5(0x2d4)+_0x7a3b36+_0x417fa5(0x305)+this[_0x417fa5(0x279)]+_0x417fa5(0x322)+this[_0x417fa5(0x370)],'\x73\x75\x63\x63\x65\x73\x73':function(_0x572aa4){var _0x4091a1=_0x417fa5;if(_0x572aa4==null)return this[_0x4091a1(0x24e)]=null,this[_0x4091a1(0x212)]=![],![];this['\x76\x69\x64\x65\x6f\x49\x6e\x66\x6f']=_0x572aa4['\x6d\x76'];if(bugs[_0x4091a1(0x165)][_0x4091a1(0x2db)]!=!![]){if(this[_0x4091a1(0x2fe)]==undefined||this[_0x4091a1(0x2fe)]=='')this[_0x4091a1(0x2fe)]=_0x4091a1(0x153)+this[_0x4091a1(0x2b3)]+'\x2f'+parseInt(this[_0x4091a1(0x24e)][_0x4091a1(0x2ae)]/0x64)+'\x2f'+this[_0x4091a1(0x24e)][_0x4091a1(0x2ae)]+'\x2e\x6a\x70\x67';this[_0x4091a1(0x1a4)](this[_0x4091a1(0x2fe)]+_0x4091a1(0x296)+_0x572aa4['\x6d\x76'][_0x4091a1(0x256)]),$(document['\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64'](this[_0x4091a1(0x26d)]))[_0x4091a1(0x181)](_0x4091a1(0x2b7))[_0x4091a1(0x2ab)](_0x4091a1(0x18e),_0x572aa4['\x6d\x76']['\x6d\x76\x5f\x74\x69\x74\x6c\x65']),$(document[_0x4091a1(0x163)](this[_0x4091a1(0x26d)]))[_0x4091a1(0x181)](_0x4091a1(0x216))['\x68\x74\x6d\x6c'](_0x4091a1(0x2d5)+_0x572aa4['\x6d\x76'][_0x4091a1(0x1d9)]+'\x20\uc601\uc0c1\x20\ubcf4\uae30\x3c\x2f\x73\x74\x72\x6f\x6e\x67\x3e\x3c\x74\x69\x6d\x65\x20\x64\x61\x74\x65\x74\x69\x6d\x65\x3d'+this[_0x4091a1(0x24e)][_0x4091a1(0x264)]+'\x3e'+this['\x76\x69\x64\x65\x6f\x49\x6e\x66\x6f']['\x6c\x65\x6e']+_0x4091a1(0x1d8));return;}this[_0x4091a1(0x212)]=!![],this['\x61\x75\x74\x68\x41\x64\x75\x6c\x74\x43\x68\x65\x63\x6b']=this['\x63\x68\x65\x63\x6b\x52\x69\x67\x68\x74\x73'](_0x572aa4),this[_0x4091a1(0x29f)]=_0x572aa4[_0x4091a1(0x29f)],this[_0x4091a1(0x306)]=_0x572aa4[_0x4091a1(0x36e)],this[_0x4091a1(0x1e1)]=_0x572aa4[_0x4091a1(0x311)]?_0x572aa4[_0x4091a1(0x1e1)]:0x0;if(_0x572aa4['\x6d\x76'][_0x4091a1(0x21e)]=='\x59')this[_0x4091a1(0x38b)][_0x4091a1(0x34c)]();else this['\x69\x63\x6f\x6e\x31\x39'][_0x4091a1(0x1fd)]();$(this['\x76\x69\x64\x65\x6f\x4f\x62\x6a'])[_0x4091a1(0x2ab)]('\x74\x69\x74\x6c\x65',_0x572aa4['\x6d\x76'][_0x4091a1(0x1d9)]),$(this[_0x4091a1(0x189)])[_0x4091a1(0x2dc)](_0x4091a1(0x38d))['\x74\x65\x78\x74'](_0x572aa4['\x6d\x76'][_0x4091a1(0x1d9)]);_0x572aa4['\x6d\x76'][_0x4091a1(0x29b)]==_0x4091a1(0x177)?_0x572aa4['\x69\x73\x46\x72\x65\x65']!='\x59'?(this['\x76\x69\x64\x65\x6f\x49\x6e\x66\x6f'][_0x4091a1(0x16c)]=![],this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c']['\x6c\x6f\x67\x69\x6e\x42\x75\x74\x74\x6f\x6e'][_0x4091a1(0x15e)]()['\x66\x69\x6e\x64']('\x65\x6d')['\x73\x68\x6f\x77']()):(this[_0x4091a1(0x24e)][_0x4091a1(0x16c)]=!![],this[_0x4091a1(0x234)][_0x4091a1(0x17a)]['\x70\x61\x72\x65\x6e\x74']()['\x66\x69\x6e\x64']('\x65\x6d')[_0x4091a1(0x1fd)]()):this[_0x4091a1(0x234)][_0x4091a1(0x17a)]['\x70\x61\x72\x65\x6e\x74']()[_0x4091a1(0x181)]('\x65\x6d')[_0x4091a1(0x1fd)]();$(this[_0x4091a1(0x189)])['\x63\x68\x69\x6c\x64\x72\x65\x6e']('\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x54\x69\x74\x6c\x65')[_0x4091a1(0x1aa)]('\x63\x6c\x69\x63\x6b'),$(this['\x70\x61\x6e\x65\x6c\x50\x6c\x61\x79\x65\x72\x54\x69\x74\x6c\x65'])[_0x4091a1(0x2dc)]('\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x54\x69\x74\x6c\x65')['\x6f\x6e'](_0x4091a1(0x34f),function(_0xdcee70){var _0x165eac=_0x4091a1;window[_0x165eac(0x277)](g_urlMusic+_0x165eac(0x33a)+_0xdcee70);}[_0x4091a1(0x27a)](this,_0x572aa4['\x6d\x76'][_0x4091a1(0x2ae)]));if(_0x572aa4['\x6d\x76'][_0x4091a1(0x357)]=='\x59'){var _0x3b9a12=_0x572aa4['\x6d\x76'][_0x4091a1(0x2d8)]['\x73\x70\x6c\x69\x74']('\x5c\x6e');if(_0x3b9a12[_0x4091a1(0x252)]!=0x0){var _0x1bc81e='';for(var _0x221dee=0x0;_0x221dee<_0x3b9a12['\x6c\x65\x6e\x67\x74\x68'];_0x221dee++){var _0x4f1d2b=_0x3b9a12[_0x221dee][_0x4091a1(0x267)]('\x7c\x7c');_0x1bc81e+=_0x4091a1(0x295)+g_urlMusic+'\x2f\x61\x72\x74\x69\x73\x74\x2f'+_0x4f1d2b[0x2]+_0x4091a1(0x1bd)+_0x4f1d2b[0x1]+_0x4091a1(0x2a2);if(_0x221dee<_0x3b9a12[_0x4091a1(0x252)]-0x1)_0x1bc81e+='\x2c\x20';}$(this[_0x4091a1(0x189)])[_0x4091a1(0x2dc)](_0x4091a1(0x38a))[_0x4091a1(0x276)](_0x1bc81e);}}else _0x572aa4[_0x4091a1(0x2dd)]==_0x4091a1(0x298)||_0x572aa4[_0x4091a1(0x2dd)]==_0x4091a1(0x2f1)||_0x572aa4[_0x4091a1(0x2dd)]==_0x4091a1(0x2de)||_0x572aa4['\x6d\x76\x5f\x61\x72\x74\x69\x73\x74\x5f\x69\x64']=='\x31\x30\x30\x30\x37\x37\x32'||_0x572aa4[_0x4091a1(0x2dd)]==_0x4091a1(0x1e3)||_0x572aa4['\x6d\x76'][_0x4091a1(0x179)]==_0x4091a1(0x155)||_0x572aa4['\x6d\x76'][_0x4091a1(0x179)]==_0x4091a1(0x199)||_0x572aa4['\x6d\x76'][_0x4091a1(0x179)]==_0x4091a1(0x18a)||_0x572aa4['\x6d\x76'][_0x4091a1(0x179)]==0x0||_0x572aa4['\x6d\x76'][_0x4091a1(0x179)]==''?$(this['\x70\x61\x6e\x65\x6c\x50\x6c\x61\x79\x65\x72\x54\x69\x74\x6c\x65'])[_0x4091a1(0x2dc)](_0x4091a1(0x38a))['\x68\x74\x6d\x6c'](_0x572aa4['\x6d\x76'][_0x4091a1(0x25a)]):$(this[_0x4091a1(0x189)])[_0x4091a1(0x2dc)](_0x4091a1(0x38a))[_0x4091a1(0x276)]('\x3c\x61\x20\x68\x72\x65\x66\x3d\x27'+g_urlMusic+_0x4091a1(0x282)+_0x572aa4['\x6d\x76'][_0x4091a1(0x179)]+_0x4091a1(0x1bd)+_0x572aa4['\x6d\x76'][_0x4091a1(0x25a)]+'\x3c\x2f\x61\x3e');this[_0x4091a1(0x234)][_0x4091a1(0x1d4)][_0x4091a1(0x276)](_0x4091a1(0x2d5)+_0x572aa4['\x6d\x76'][_0x4091a1(0x1d9)]+_0x4091a1(0x37d)+(bugs[_0x4091a1(0x165)]['\x70\x6c\x61\x74\x66\x6f\x72\x6d']==_0x4091a1(0x257)?'\x3c\x74\x69\x6d\x65\x20\x64\x61\x74\x65\x74\x69\x6d\x65\x3d\x27'+this[_0x4091a1(0x24e)][_0x4091a1(0x264)]+'\x27\x3e'+this['\x76\x69\x64\x65\x6f\x49\x6e\x66\x6f'][_0x4091a1(0x264)]+_0x4091a1(0x30e):'')+_0x4091a1(0x162)),this[_0x4091a1(0x234)]['\x70\x6c\x61\x79\x52\x65\x70\x6c\x61\x79']['\x68\x74\x6d\x6c']('\x3c\x73\x70\x61\x6e\x3e\x3c\x73\x74\x72\x6f\x6e\x67\x3e'+_0x572aa4['\x6d\x76'][_0x4091a1(0x1d9)]+'\x20\uc601\uc0c1\x3c\x2f\x73\x74\x72\x6f\x6e\x67\x3e\ub2e4\uc2dc\ubcf4\uae30\x3c\x2f\x73\x70\x61\x6e\x3e');var _0x3caadb=bugs[_0x4091a1(0x21c)]['\x74\x69\x6d\x65'][_0x4091a1(0x2a1)](this[_0x4091a1(0x24e)]['\x6c\x65\x6e']);$(this[_0x4091a1(0x1be)])[_0x4091a1(0x181)]('\x2e\x63\x74\x6c\x73\x65\x74\x20\x2e\x70\x6c\x61\x79\x20\x2e\x74\x69\x6d\x65\x20\x2e\x63\x75\x72\x72\x65\x6e\x74')[_0x4091a1(0x276)](_0x4091a1(0x2e0)),$(this[_0x4091a1(0x1be)])[_0x4091a1(0x181)](_0x4091a1(0x37e))[_0x4091a1(0x276)](_0x4091a1(0x159)+_0x3caadb),$(this[_0x4091a1(0x1be)])[_0x4091a1(0x181)]('\x2e\x73\x65\x65\x6b\x20\x2e\x74\x69\x6d\x65\x43\x75\x72\x72\x65\x6e\x74')['\x68\x74\x6d\x6c'](_0x4091a1(0x2e0)),$(this[_0x4091a1(0x1be)])['\x66\x69\x6e\x64']('\x2e\x73\x65\x65\x6b\x20\x2e\x74\x69\x6d\x65\x54\x6f\x74\x61\x6c')[_0x4091a1(0x276)]('\x3c\x73\x70\x61\x6e\x3e\ucd1d\x20\uc7ac\uc0dd\x20\uc2dc\uac04\x20\x3a\x3c\x2f\x73\x70\x61\x6e\x3e'+_0x3caadb);if(this['\x74\x68\x75\x6d\x62\x6e\x61\x69\x6c\x50\x61\x74\x68']==undefined||this[_0x4091a1(0x2fe)]=='')this[_0x4091a1(0x2fe)]='\x68\x74\x74\x70\x73\x3a\x2f\x2f\x69\x6d\x61\x67\x65\x2e\x62\x75\x67\x73\x6d\x2e\x63\x6f\x2e\x6b\x72\x2f\x6d\x76\x68\x64\x2f\x69\x6d\x61\x67\x65\x73\x2f'+this[_0x4091a1(0x2b3)]+'\x2f'+parseInt(this[_0x4091a1(0x24e)]['\x6d\x76\x5f\x69\x64']/0x64)+'\x2f'+this[_0x4091a1(0x24e)][_0x4091a1(0x2ae)]+_0x4091a1(0x341);this[_0x4091a1(0x1a4)](this[_0x4091a1(0x2fe)]+'\x3f\x76\x65\x72\x73\x69\x6f\x6e\x3d'+_0x572aa4['\x6d\x76'][_0x4091a1(0x256)]),this[_0x4091a1(0x235)](this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x4091a1(0x34b)],this[_0x4091a1(0x24e)][_0x4091a1(0x2f5)],_0x4091a1(0x30f),'\x53\x44',_0x572aa4['\x71\x75\x61\x6c\x69\x74\x79']),this[_0x4091a1(0x235)](this[_0x4091a1(0x234)]['\x71\x75\x61\x6c\x69\x74\x79\x48\x44'],this[_0x4091a1(0x24e)][_0x4091a1(0x14c)],_0x4091a1(0x302),'\x48\x44',_0x572aa4[_0x4091a1(0x213)]),this[_0x4091a1(0x235)](this[_0x4091a1(0x234)][_0x4091a1(0x2e1)],this[_0x4091a1(0x24e)][_0x4091a1(0x201)],'\x31\x30\x38\x30\x70','\x46\x48\x44',_0x572aa4[_0x4091a1(0x213)]),this['\x76\x69\x64\x65\x6f\x49\x6e\x66\x6f'][_0x4091a1(0x300)]!=null?(this['\x69\x73\x4d\x76\x4c\x69\x6b\x65']=!![],this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x4091a1(0x1ac)][_0x4091a1(0x34e)](_0x4091a1(0x265)),this[_0x4091a1(0x234)][_0x4091a1(0x1ac)][_0x4091a1(0x1c5)]('\x62\x74\x6e\x4c\x69\x6b\x65\x43\x61\x6e\x63\x65\x6c')[_0x4091a1(0x398)](_0x4091a1(0x242))):this['\x69\x73\x4d\x76\x4c\x69\x6b\x65']=![],bugs[_0x4091a1(0x165)]['\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x50\x6c\x61\x79\x65\x72\x49\x64'](this['\x70\x6c\x61\x79\x65\x72\x49\x64']),typeof _0x2c3e86=='\x66\x75\x6e\x63\x74\x69\x6f\x6e'&&(_0x2c3e86(null),_0x572aa4=null);}[_0x417fa5(0x27a)](this),'\x65\x72\x72\x6f\x72':function(){},'\x64\x61\x74\x61\x54\x79\x70\x65':'\x6a\x73\x6f\x6e','\x61\x73\x79\x6e\x63':![],'\x63\x61\x63\x68\x65':![]});},'\x61\x70\x70\x65\x6e\x64\x56\x69\x64\x69\x6f\x51\x75\x61\x6c\x69\x74\x79\x42\x75\x74\x74\x6f\x6e':function(_0x1d5e64,_0x10a9d8,_0x3bec00,_0x4558e9,_0x26887c){var _0x4f2ee5=_0x53579b;_0x10a9d8==='\x59'?($(_0x1d5e64)[_0x4f2ee5(0x276)](_0x4f2ee5(0x17c)+_0x3bec00+_0x4f2ee5(0x2a2)),$(_0x1d5e64)['\x66\x69\x6e\x64']('\x61')['\x6f\x6e'](_0x4f2ee5(0x34f),function(){var _0x5655af=_0x4f2ee5;this[_0x5655af(0x36f)](_0x4558e9);}['\x62\x69\x6e\x64'](this)),_0x26887c===_0x4558e9&&this[_0x4f2ee5(0x234)][_0x4f2ee5(0x213)]['\x74\x65\x78\x74'][_0x4f2ee5(0x276)]('\x3c\x73\x70\x61\x6e\x3e\ud604\uc7ac\ud654\uc9c8\x3c\x2f\x73\x70\x61\x6e\x3e'+_0x3bec00)):($(_0x1d5e64)[_0x4f2ee5(0x1c5)](_0x4f2ee5(0x1d3)),$(_0x1d5e64)[_0x4f2ee5(0x276)](_0x3bec00));},'\x41\x55\x54\x48\x5f\x41\x44\x55\x4c\x54\x5f\x43\x48\x45\x43\x4b\x5f\x4e\x4f\x4e\x45':0x1,'\x41\x55\x54\x48\x5f\x41\x44\x55\x4c\x54\x5f\x43\x48\x45\x43\x4b\x5f\x4e\x4f\x4e\x41\x4d\x45':0x2,'\x41\x55\x54\x48\x5f\x41\x44\x55\x4c\x54\x5f\x43\x48\x45\x43\x4b\x5f\x41\x44\x55\x4c\x54':0x3,'\x41\x55\x54\x48\x5f\x41\x44\x55\x4c\x54\x5f\x43\x48\x45\x43\x4b\x5f\x55\x52\x4c':0x4,'\x41\x55\x54\x48\x5f\x41\x44\x55\x4c\x54\x5f\x43\x48\x45\x43\x4b\x5f\x41\x42\x55\x53\x45':0x5,'\x41\x55\x54\x48\x5f\x41\x44\x55\x4c\x54\x5f\x43\x48\x45\x43\x4b\x5f\x41\x55\x54\x48':0x6,'\x41\x55\x54\x48\x5f\x41\x44\x55\x4c\x54\x5f\x43\x48\x45\x43\x4b\x5f\x41\x47\x45\x4e\x43\x59':0x7,'\x41\x55\x54\x48\x5f\x41\x44\x55\x4c\x54\x5f\x43\x48\x45\x43\x4b\x5f\x50\x52\x45\x4d\x49\x55\x4d':0x8,'\x41\x55\x54\x48\x5f\x41\x44\x55\x4c\x54\x5f\x43\x48\x45\x43\x4b\x5f\x4f\x56\x45\x52\x5f\x33\x36\x35':0x9,'\x63\x68\x65\x63\x6b\x52\x69\x67\x68\x74\x73':function(_0x21d38d){var _0x59999c=_0x53579b,_0x1c160c=this['\x41\x55\x54\x48\x5f\x41\x44\x55\x4c\x54\x5f\x43\x48\x45\x43\x4b\x5f\x4e\x4f\x4e\x45'];try{if(!_0x21d38d[_0x59999c(0x392)]){if(_0x21d38d['\x6d\x76']['\x6d\x76\x5f\x61\x64\x75\x6c\x74\x5f\x79\x6e']=='\x59'&&!_0x21d38d[_0x59999c(0x1c8)]){if(!_0x21d38d[_0x59999c(0x360)])_0x1c160c=this[_0x59999c(0x196)];else{if(_0x21d38d[_0x59999c(0x1eb)]&&_0x21d38d[_0x59999c(0x1eb)]==_0x59999c(0x2fd))_0x1c160c=this['\x41\x55\x54\x48\x5f\x41\x44\x55\x4c\x54\x5f\x43\x48\x45\x43\x4b\x5f\x4f\x56\x45\x52\x5f\x33\x36\x35'];else _0x1c160c=this['\x41\x55\x54\x48\x5f\x41\x44\x55\x4c\x54\x5f\x43\x48\x45\x43\x4b\x5f\x41\x44\x55\x4c\x54'];}}else _0x1c160c=this['\x41\x55\x54\x48\x5f\x41\x44\x55\x4c\x54\x5f\x43\x48\x45\x43\x4b\x5f\x55\x52\x4c'];}}catch(_0x4daae8){console['\x65\x72\x72\x6f\x72'](_0x4daae8);}return _0x1c160c;},'\x68\x61\x6e\x64\x6c\x65\x72\x5f\x6c\x69\x73\x74':null,'\x68\x61\x6e\x64\x6c\x65\x72\x5f\x64\x61\x74\x61':null,'\x68\x61\x6e\x64\x6c\x65\x45\x76\x65\x6e\x74':function(){var _0x4299bd=_0x53579b,_0x26994b=arguments[0x0];switch(_0x26994b){case _0x4299bd(0x1f0):if(bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72']['\x68\x74\x6d\x6c\x35\x53\x75\x70\x70\x6f\x72\x74']&&arguments[0x2]!=_0x4299bd(0x1bb))return;var _0x1bfd5e=arguments[0x1];this[_0x4299bd(0x209)]=_0x1bfd5e;break;case _0x4299bd(0x32f):this[_0x4299bd(0x2b9)](arguments[0x1],arguments[0x2]);break;case'\x6d\x65\x64\x69\x61\x45\x72\x72\x6f\x72':alert(_0x4299bd(0x23c));break;case'\x70\x6c\x61\x79\x45\x6e\x64':this[_0x4299bd(0x15f)]=![],this[_0x4299bd(0x192)]=!![],clearTimeout(this[_0x4299bd(0x22b)]),this[_0x4299bd(0x22b)]=null,this[_0x4299bd(0x339)]++;if(bugs[_0x4299bd(0x165)][_0x4299bd(0x2e2)]==_0x4299bd(0x28b)||bugs[_0x4299bd(0x165)]['\x64\x65\x76\x69\x63\x65']=='\x69\x70\x61\x64')this[_0x4299bd(0x205)]()[_0x4299bd(0x210)]();else bugs[_0x4299bd(0x165)][_0x4299bd(0x2e2)]=='\x61\x6e\x64\x72\x6f\x69\x64'?this[_0x4299bd(0x205)]()[_0x4299bd(0x210)]():(this['\x63\x6c\x65\x61\x72\x42\x61\x73\x69\x63\x54\x69\x6d\x65\x72\x53\x74\x61\x74\x65'](),this[_0x4299bd(0x22b)]=setTimeout(function(){var _0x42b1e4=_0x4299bd;if(this['\x69\x73\x52\x65\x70\x6c\x61\x79'])$(this[_0x42b1e4(0x189)])[_0x42b1e4(0x1fd)](_0x42b1e4(0x27f),{'\x64\x69\x72\x65\x63\x74\x69\x6f\x6e':'\x75\x70'},0xc8);clearTimeout(this[_0x42b1e4(0x22b)]),this[_0x42b1e4(0x22b)]=null;}[_0x4299bd(0x27a)](this),0x1388));this[_0x4299bd(0x21d)](this[_0x4299bd(0x2a5)]),this['\x73\x74\x72\x65\x61\x6d\x69\x6e\x67\x4c\x6f\x67\x67\x65\x72'][_0x4299bd(0x387)](),setTimeout(function(){var _0x11ede3=_0x4299bd;bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x11ede3(0x2e2)]==_0x11ede3(0x266)&&($(this[_0x11ede3(0x1ca)])[_0x11ede3(0x223)]($('\x23'+this[_0x11ede3(0x26d)])[_0x11ede3(0x223)]()),$(this[_0x11ede3(0x1ca)])[_0x11ede3(0x269)]($('\x23'+this[_0x11ede3(0x26d)])[_0x11ede3(0x269)]())),$(this[_0x11ede3(0x31a)])[_0x11ede3(0x1fd)](),this[_0x11ede3(0x16b)](),$(this[_0x11ede3(0x1ca)])[_0x11ede3(0x15e)]()[_0x11ede3(0x34c)]();}['\x62\x69\x6e\x64'](this),0xc8);break;case'\x6d\x76\x49\x6e\x66\x6f\x43\x68\x61\x6e\x67\x65':bugs[_0x4299bd(0x343)][_0x4299bd(0x1b7)][_0x4299bd(0x1b5)]();break;case'\x61\x6c\x72\x65\x61\x64\x79\x4f\x70\x65\x6e':this[_0x4299bd(0x35e)][_0x4299bd(0x34c)]();break;case _0x4299bd(0x1c4):var _0x39fb48=$(_0x4299bd(0x315))[0x0];this[_0x4299bd(0x351)](arguments[0x1],function(_0x30d6ef){_0x39fb48['\x6c\x6f\x61\x64\x4d\x65\x64\x69\x61'](_0x30d6ef);}[_0x4299bd(0x27a)](this));break;case _0x4299bd(0x2ee):bugs['\x75\x69'][_0x4299bd(0x1c9)]();break;case'\x75\x70\x61':this[_0x4299bd(0x1e8)](null);break;case _0x4299bd(0x328):if(bugs[_0x4299bd(0x343)]['\x61\x75\x74\x68\x50\x6f\x70']==null){var _0x832d83=_0x4299bd(0x32c),_0x12ab17=_0x4299bd(0x160)+_0x832d83+_0x4299bd(0x2d7);bugs[_0x4299bd(0x343)][_0x4299bd(0x2e8)]=new bugs['\x75\x69'][(_0x4299bd(0x2b1))](_0x12ab17,{'\x74\x69\x74\x6c\x65':_0x4299bd(0x1ab),'\x63\x73\x73':_0x4299bd(0x294),'\x61\x6c\x65\x72\x74\x42\x75\x74\x74\x6f\x6e\x73':![]}),bugs[_0x4299bd(0x343)][_0x4299bd(0x2e8)]['\x73\x68\x6f\x77']();}break;case _0x4299bd(0x175):this[_0x4299bd(0x188)]!=null?this[_0x4299bd(0x188)][_0x4299bd(0x34c)]():(mvAlert=new bugs['\x75\x69'][(_0x4299bd(0x21a))](_0x4299bd(0x14e),{'\x63\x73\x73':_0x4299bd(0x367)}),mvAlert[_0x4299bd(0x34c)]());break;case _0x4299bd(0x2e4):this[_0x4299bd(0x2e4)](arguments[0x1],arguments[0x2]);break;}},'\x6f\x6e\x54\x69\x6d\x65\x72':function(_0x3c013c,_0x51bec8){var _0x3ad952=_0x53579b;if(this['\x69\x73\x50\x6c\x61\x79\x69\x6e\x67\x4d\x76']){pos=Math[_0x3ad952(0x1f5)](_0x3c013c);var _0x2d3f3c=0x0;_0x3c013c>0x0&&(_0x2d3f3c=Math[_0x3ad952(0x1fb)](_0x3c013c/_0x51bec8*0x64),pos=Math['\x66\x6c\x6f\x6f\x72'](_0x3c013c),duration=_0x51bec8,playTime=Math[_0x3ad952(0x1fb)](_0x3c013c));var _0x1cce2e=parseInt(this[_0x3ad952(0x234)]['\x73\x65\x65\x6b\x42\x61\x73\x65'][_0x3ad952(0x253)](_0x3ad952(0x223)),0xa),_0x47bf35=_0x1cce2e*(_0x2d3f3c/0x64),_0x32a6d4=this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'],_0x201b20=bugs['\x75\x74\x69\x6c\x73'][_0x3ad952(0x15a)][_0x3ad952(0x1ec)](parseInt(_0x3c013c),![],bugs[_0x3ad952(0x165)][_0x3ad952(0x33b)]=='\x6d\x6f\x62\x69\x6c\x65'?!![]:this[_0x3ad952(0x205)]()[_0x3ad952(0x228)]<0xe10);$(this[_0x3ad952(0x1be)])[_0x3ad952(0x181)](_0x3ad952(0x255))[_0x3ad952(0x276)](_0x3ad952(0x2cf)+_0x201b20);if(bugs[_0x3ad952(0x165)][_0x3ad952(0x33b)]==_0x3ad952(0x257))$(this['\x70\x61\x6e\x65\x6c\x50\x6c\x61\x79\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c'])[_0x3ad952(0x181)]('\x2e\x73\x65\x65\x6b\x20\x2e\x74\x69\x6d\x65\x43\x75\x72\x72\x65\x6e\x74')[_0x3ad952(0x276)](_0x3ad952(0x2cf)+_0x201b20);!this[_0x3ad952(0x174)][_0x3ad952(0x355)]&&(_0x32a6d4[_0x3ad952(0x2b5)][_0x3ad952(0x253)]({'\x77\x69\x64\x74\x68':_0x2d3f3c+'\x25'}),_0x32a6d4[_0x3ad952(0x18b)][_0x3ad952(0x253)]({'\x6c\x65\x66\x74':_0x47bf35-0x6})[_0x3ad952(0x2ab)](_0x3ad952(0x218),_0x2d3f3c+'\x25'));if(bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x3ad952(0x2e2)]=='\x61\x6e\x64\x72\x6f\x69\x64'||bugs[_0x3ad952(0x165)][_0x3ad952(0x33b)]==_0x3ad952(0x25f)){if(this[_0x3ad952(0x26a)]!=-0x1){if(this[_0x3ad952(0x26a)]<_0x3c013c){this[_0x3ad952(0x273)]=![],this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x3ad952(0x2a8)]['\x68\x69\x64\x65']();if(bugs[_0x3ad952(0x165)]['\x64\x65\x76\x69\x63\x65']==_0x3ad952(0x266)){if(this[_0x3ad952(0x251)]!=this[_0x3ad952(0x272)])this[_0x3ad952(0x234)]['\x70\x6c\x61\x79'][_0x3ad952(0x2ab)](_0x3ad952(0x1dd),_0x3ad952(0x1b1));this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x3ad952(0x1d4)][_0x3ad952(0x34e)](_0x3ad952(0x324))['\x61\x64\x64\x43\x6c\x61\x73\x73']('\x70\x61\x75\x73\x65'),this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x3ad952(0x1d4)]['\x73\x68\x6f\x77']();}this['\x6c\x61\x74\x65\x73\x74\x43\x75\x72\x72\x65\x6e\x74\x54\x69\x6d\x65']=-0x1;}}}if(bugs[_0x3ad952(0x165)][_0x3ad952(0x33b)]!=_0x3ad952(0x257)&&this[_0x3ad952(0x318)]){if(this[_0x3ad952(0x381)]['\x78']==this[_0x3ad952(0x2aa)]['\x78']&&this[_0x3ad952(0x381)]['\x79']==this[_0x3ad952(0x2aa)]['\x79']){if(this[_0x3ad952(0x170)]==null)return;new Date()-this[_0x3ad952(0x170)]>0x1388&&(this[_0x3ad952(0x170)]=null,this['\x73\x68\x6f\x77\x50\x61\x6e\x65\x6c'](this[_0x3ad952(0x272)]),this[_0x3ad952(0x318)]=![]);}else this[_0x3ad952(0x170)]=new Date(),this[_0x3ad952(0x2aa)]['\x78']=this[_0x3ad952(0x381)]['\x78'],this[_0x3ad952(0x2aa)]['\x79']=this['\x63\x75\x72\x4d\x6f\x75\x73\x65\x43\x75\x72\x73\x6f\x72']['\x79'];}}},'\x74\x69\x6d\x65\x46\x6f\x72\x6d\x61\x74':function(_0x459360,_0x3f2244){var _0x1ef232=parseInt(_0x459360/0xe10,0xa),_0x73b7dd=parseInt(_0x459360%0xe10/0x3c,0xa),_0x4c9076=_0x459360%0xe10%0x3c,_0x3a18dc='';if(!_0x3f2244)_0x3a18dc=(_0x1ef232>=0xa?_0x1ef232:_0x1ef232>0x0?'\x30'+_0x1ef232:'\x30\x30')+'\x3a';_0x3a18dc+=(_0x73b7dd>=0xa?_0x73b7dd:'\x30'+_0x73b7dd)+'\x3a',_0x3a18dc+=_0x4c9076>=0xa?_0x4c9076:'\x30'+_0x4c9076;try{return _0x3a18dc;}finally{_0x1ef232=null,_0x73b7dd=null,_0x4c9076=null,_0x3a18dc=null;}},'\x73\x65\x74\x55\x70\x61':function(_0x46468b){var _0x427ba4=_0x53579b;bugs[_0x427ba4(0x165)][_0x427ba4(0x33b)]=='\x6d\x6f\x62\x69\x6c\x65'?$[_0x427ba4(0x1b4)]({'\x74\x79\x70\x65':_0x427ba4(0x342),'\x75\x72\x6c':bugs[_0x427ba4(0x165)][_0x427ba4(0x2a7)]+_0x427ba4(0x19d),'\x73\x75\x63\x63\x65\x73\x73':function(_0x3f9be1){var _0x23e18f=_0x427ba4;typeof _0x46468b==_0x23e18f(0x1fe)&&_0x46468b();}[_0x427ba4(0x27a)](this),'\x61\x73\x79\x6e\x63':![]}):$[_0x427ba4(0x1b4)]({'\x74\x79\x70\x65':_0x427ba4(0x342),'\x75\x72\x6c':bugs[_0x427ba4(0x165)]['\x6d\x75\x73\x69\x63\x55\x72\x6c']+_0x427ba4(0x19d),'\x73\x75\x63\x63\x65\x73\x73':function(_0x3b1388){var _0x170d49=_0x427ba4;typeof _0x46468b==_0x170d49(0x1fe)&&_0x46468b();}[_0x427ba4(0x27a)](this),'\x61\x73\x79\x6e\x63':![]});},'\x76\x6f\x6c\x75\x6d\x65\x4d\x75\x74\x65':function(){var _0x5ba305=_0x53579b;bugs[_0x5ba305(0x1bc)][_0x5ba305(0x1c2)](0x0),$(_0x5ba305(0x20a))[_0x5ba305(0x398)](bugs[_0x5ba305(0x343)][_0x5ba305(0x195)]);},'\x67\x65\x74\x43\x75\x72\x73\x6f\x72\x58\x59':function(_0x33c7b6){var _0xb98d5d=_0x53579b;this[_0xb98d5d(0x381)]['\x78']=window[_0xb98d5d(0x314)]?_0x33c7b6['\x70\x61\x67\x65\x58']:event[_0xb98d5d(0x193)]+(document[_0xb98d5d(0x33c)][_0xb98d5d(0x2f2)]?document['\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74'][_0xb98d5d(0x2f2)]:document[_0xb98d5d(0x38e)]['\x73\x63\x72\x6f\x6c\x6c\x4c\x65\x66\x74']),this[_0xb98d5d(0x381)]['\x79']=window[_0xb98d5d(0x314)]?_0x33c7b6['\x70\x61\x67\x65\x59']:event[_0xb98d5d(0x1ba)]+(document[_0xb98d5d(0x33c)][_0xb98d5d(0x246)]?document[_0xb98d5d(0x33c)][_0xb98d5d(0x246)]:document['\x62\x6f\x64\x79'][_0xb98d5d(0x246)]);},'\x76\x6f\x6c\x75\x6d\x65\x55\x70':function(){var _0x20d494=_0x53579b;bugs['\x76\x6f\x6c\x75\x6d\x65\x53\x6c\x69\x64\x65\x72'][_0x20d494(0x1c2)](bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72\x44\x61\x74\x61']['\x6c\x61\x73\x74\x56\x6f\x6c\x75\x6d\x65\x56\x61\x6c\x75\x65']+0x1),$(_0x20d494(0x20a))[_0x20d494(0x398)](bugs[_0x20d494(0x343)]['\x6c\x61\x73\x74\x56\x6f\x6c\x75\x6d\x65\x56\x61\x6c\x75\x65']);},'\x76\x6f\x6c\x75\x6d\x65\x44\x6f\x77\x6e':function(){var _0x1c6974=_0x53579b;bugs[_0x1c6974(0x1bc)][_0x1c6974(0x1c2)](bugs[_0x1c6974(0x343)][_0x1c6974(0x195)]-0x1),$(_0x1c6974(0x20a))[_0x1c6974(0x398)](bugs[_0x1c6974(0x343)][_0x1c6974(0x195)]);},'\x73\x65\x74\x56\x69\x64\x65\x6f\x51\x75\x61\x6c\x69\x74\x79':function(_0x2e174e){var _0x4590ed=_0x53579b;if(_0x2e174e==='\x53\x44')this[_0x4590ed(0x234)][_0x4590ed(0x213)][_0x4590ed(0x398)][_0x4590ed(0x276)](_0x4590ed(0x35b));else{if(_0x2e174e==='\x48\x44')this[_0x4590ed(0x234)][_0x4590ed(0x213)]['\x74\x65\x78\x74'][_0x4590ed(0x276)]('\x3c\x73\x70\x61\x6e\x3e\ud604\uc7ac\ud654\uc9c8\x3c\x2f\x73\x70\x61\x6e\x3e\x37\x32\x30\x70');else this[_0x4590ed(0x234)][_0x4590ed(0x213)][_0x4590ed(0x398)][_0x4590ed(0x276)](_0x4590ed(0x2ce));}_0x2e174e!=this[_0x4590ed(0x370)]?(this['\x73\x65\x74\x44\x65\x66\x61\x75\x6c\x74\x4d\x65\x64\x69\x61\x46\x6f\x72\x6d\x61\x74'](_0x2e174e),this['\x69\x73\x50\x6c\x61\x79\x69\x6e\x67\x4d\x76']&&(this['\x69\x73\x50\x6c\x61\x79\x69\x6e\x67\x4d\x76']=![],this[_0x4590ed(0x1e8)](function(){var _0x39aedf=_0x4590ed;this[_0x39aedf(0x1e7)]=this[_0x39aedf(0x205)]()['\x63\x75\x72\x72\x65\x6e\x74\x54\x69\x6d\x65'],this[_0x39aedf(0x2e6)](this['\x6d\x76\x49\x64'],!![]);}[_0x4590ed(0x27a)](this)))):this[_0x4590ed(0x173)](_0x2e174e);},'\x63\x68\x61\x6e\x67\x65\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e':function(){var _0x72455b=_0x53579b;if(bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72']['\x64\x65\x76\x69\x63\x65']==_0x72455b(0x28b)||bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x72455b(0x2e2)]==_0x72455b(0x24a)){if(!this['\x69\x73\x50\x6c\x61\x79\x69\x6e\x67\x4d\x76'])return;bugs[_0x72455b(0x36c)][_0x72455b(0x2cd)](_0x72455b(0x258)),this[_0x72455b(0x205)]()[_0x72455b(0x324)](),this['\x67\x65\x74\x48\x74\x6d\x6c\x35\x50\x6c\x61\x79\x65\x72']()[_0x72455b(0x249)]();return;}else{if(bugs[_0x72455b(0x165)][_0x72455b(0x2e2)]==_0x72455b(0x266)){if(!this[_0x72455b(0x15f)])return;bugs[_0x72455b(0x36c)][_0x72455b(0x2cd)](_0x72455b(0x258));if(this['\x70\x6c\x61\x79\x65\x72\x54\x79\x70\x65']==_0x72455b(0x271))this[_0x72455b(0x205)]()[_0x72455b(0x324)](),this[_0x72455b(0x205)]()[_0x72455b(0x249)]();else{_0x4e0f19=this[_0x72455b(0x205)]();if(_0x4e0f19[_0x72455b(0x249)])_0x4e0f19['\x77\x65\x62\x6b\x69\x74\x45\x6e\x74\x65\x72\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e']();else _0x4e0f19[_0x72455b(0x239)]&&_0x4e0f19[_0x72455b(0x239)]();}return;}}if(this[_0x72455b(0x234)][_0x72455b(0x30b)][_0x72455b(0x349)](_0x72455b(0x270))){var _0x4e0f19=$(this['\x70\x61\x6e\x65\x6c'])[0x0];if(_0x4e0f19[_0x72455b(0x31d)])_0x4e0f19[_0x72455b(0x31d)]();else{if(_0x4e0f19[_0x72455b(0x38c)])_0x4e0f19[_0x72455b(0x38c)]();else{if(_0x4e0f19[_0x72455b(0x239)])_0x4e0f19['\x77\x65\x62\x6b\x69\x74\x52\x65\x71\x75\x65\x73\x74\x46\x75\x6c\x6c\x73\x63\x72\x65\x65\x6e']();else{if(_0x4e0f19['\x6d\x73\x52\x65\x71\x75\x65\x73\x74\x46\x75\x6c\x6c\x73\x63\x72\x65\x65\x6e'])_0x4e0f19['\x6d\x73\x52\x65\x71\x75\x65\x73\x74\x46\x75\x6c\x6c\x73\x63\x72\x65\x65\x6e']();else{alertLayer=new bugs['\x75\x69'][(_0x72455b(0x21a))]('\uc774\x20\ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c\x20\uc804\uccb4\x20\ud654\uba74\uc744\x20\uc9c0\uc6d0\ud558\uc9c0\x20\uc54a\uc2b5\ub2c8\ub2e4\x2e\x3c\x62\x72\x2f\x3e\x3c\x62\x72\x2f\x3e\x3c\x61\x20\x68\x72\x65\x66\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\x68\x65\x6c\x70\x2e\x62\x75\x67\x73\x2e\x63\x6f\x2e\x6b\x72\x2f\x73\x75\x62\x3f\x74\x61\x72\x67\x65\x74\x3d\x62\x75\x67\x73\x2f\x66\x61\x71\x2f\x6c\x69\x73\x74\x25\x33\x46\x66\x61\x71\x49\x64\x25\x33\x44\x33\x30\x35\x37\x36\x25\x32\x36\x63\x61\x74\x65\x67\x6f\x72\x79\x4e\x6f\x25\x33\x44\x34\x36\x31\x37\x27\x20\x74\x61\x72\x67\x65\x74\x3d\x27\x5f\x62\x6c\x61\x6e\x6b\x27\x3e\uc790\uc138\ud788\x20\ubcf4\uae30\x26\x67\x74\x3b\x3c\x2f\x61\x3e',{'\x63\x73\x73':_0x72455b(0x367)}),alertLayer[_0x72455b(0x34c)]();return;}}}}bugs['\x77\x69\x73\x65\x6c\x6f\x67'][_0x72455b(0x2cd)](_0x72455b(0x258)),this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x72455b(0x30b)][_0x72455b(0x34e)](_0x72455b(0x270)),this[_0x72455b(0x234)][_0x72455b(0x30b)][_0x72455b(0x1c5)](_0x72455b(0x348)),bugs[_0x72455b(0x165)]['\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x50\x6c\x61\x79\x65\x72\x49\x64'](this[_0x72455b(0x26d)]),_0x4e0f19[_0x72455b(0x220)][_0x72455b(0x292)]='\x62\x6c\x6f\x63\x6b',_0x4e0f19[_0x72455b(0x220)]['\x77\x69\x64\x74\x68']=_0x72455b(0x363),_0x4e0f19['\x73\x74\x79\x6c\x65'][_0x72455b(0x269)]=_0x72455b(0x363),this['\x67\x65\x74\x48\x74\x6d\x6c\x35\x50\x6c\x61\x79\x65\x72']()[_0x72455b(0x1b8)](_0x72455b(0x218)),this[_0x72455b(0x364)]=!![];}else{bugs[_0x72455b(0x36c)]['\x61\x72\x65\x61'](_0x72455b(0x386));if(document[_0x72455b(0x372)])document[_0x72455b(0x372)]();else{if(document[_0x72455b(0x226)])document[_0x72455b(0x226)]();else{if(document[_0x72455b(0x320)])document[_0x72455b(0x320)]();else{if(document[_0x72455b(0x1a9)])document[_0x72455b(0x1a9)]();}}}}setTimeout(function(){var _0x1b2851=_0x72455b;bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x1b2851(0x214)]();},0xc8);},'\x73\x68\x6f\x77\x53\x65\x6c\x65\x63\x74\x4d\x73\x67':function(_0x90fe54,_0x564574){var _0x53b0ab=_0x53579b;_0x90fe54=='\x74\x6f\x70'?this[_0x53b0ab(0x1f2)][_0x53b0ab(0x34e)](_0x53b0ab(0x1fc))['\x61\x64\x64\x43\x6c\x61\x73\x73'](_0x53b0ab(0x371))['\x63\x73\x73']({'\x6c\x65\x66\x74':_0x564574})[_0x53b0ab(0x211)](!![],!![])[_0x53b0ab(0x385)](0x12c)[_0x53b0ab(0x1e2)]({'\x67':0x1},0x3e8)[_0x53b0ab(0x33d)](0x12c):this[_0x53b0ab(0x1f2)][_0x53b0ab(0x1c5)]('\x62\x6f\x74\x74\x6f\x6d')[_0x53b0ab(0x34e)](_0x53b0ab(0x371))['\x63\x73\x73']({'\x6c\x65\x66\x74':_0x564574})[_0x53b0ab(0x211)](!![],!![])['\x66\x61\x64\x65\x49\x6e'](0x12c)['\x61\x6e\x69\x6d\x61\x74\x65']({'\x67':0x1},0x3e8)[_0x53b0ab(0x33d)](0x12c);},'\x6c\x6f\x67\x69\x6e\x43\x6f\x6d\x6d\x6f\x6e':function(){var _0x2698c1=_0x53579b;if(bugs[_0x2698c1(0x165)][_0x2698c1(0x33b)]=='\x6d\x6f\x62\x69\x6c\x65')bugs[_0x2698c1(0x257)][_0x2698c1(0x24c)](!![]);else bugs['\x75\x69']['\x73\x68\x6f\x77\x4c\x6f\x67\x69\x6e\x4c\x61\x79\x65\x72']();},'\x75\x70\x64\x61\x74\x65\x4c\x69\x6b\x65\x42\x75\x74\x74\x6f\x6e':function(){var _0x492a09=_0x53579b;bugs[_0x492a09(0x36c)][_0x492a09(0x2cd)](_0x492a09(0x2bc));if(!this[_0x492a09(0x224)]){if(this[_0x492a09(0x234)][_0x492a09(0x30b)]['\x68\x61\x73\x43\x6c\x61\x73\x73']('\x62\x74\x6e\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e\x43\x61\x6e\x63\x65\x6c')){if(document[_0x492a09(0x372)])document[_0x492a09(0x372)]();else{if(document['\x6d\x6f\x7a\x43\x61\x6e\x63\x65\x6c\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e'])document[_0x492a09(0x226)]();else{if(document[_0x492a09(0x320)])document['\x77\x65\x62\x6b\x69\x74\x43\x61\x6e\x63\x65\x6c\x46\x75\x6c\x6c\x53\x63\x72\x65\x65\x6e']();else{if(document[_0x492a09(0x1a9)])document[_0x492a09(0x1a9)]();}}}this[_0x492a09(0x394)][_0x492a09(0x253)](_0x492a09(0x223),'\x31\x30\x30\x25'),this['\x70\x61\x6e\x65\x6c'][_0x492a09(0x253)]('\x68\x65\x69\x67\x68\x74','\x31\x30\x30\x25'),this[_0x492a09(0x234)][_0x492a09(0x30b)]['\x72\x65\x6d\x6f\x76\x65\x43\x6c\x61\x73\x73'](_0x492a09(0x348)),this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c']['\x66\x75\x6c\x6c\x73\x63\x72\x65\x65\x6e'][_0x492a09(0x1c5)](_0x492a09(0x270));}return setTimeout(function(){var _0x49aeb8=_0x492a09;this[_0x49aeb8(0x164)]();}[_0x492a09(0x27a)](this),0xc8),![];}this[_0x492a09(0x1f1)]==!![]?likes[_0x492a09(0x202)](this[_0x492a09(0x180)],likes[_0x492a09(0x154)],{},function(){var _0x5009a5=_0x492a09;this[_0x5009a5(0x234)]['\x6c\x69\x6b\x65\x42\x75\x74\x74\x6f\x6e'][_0x5009a5(0x1c5)]('\x62\x74\x6e\x4c\x69\x6b\x65')[_0x5009a5(0x398)](_0x5009a5(0x283)),this[_0x5009a5(0x234)][_0x5009a5(0x1ac)][_0x5009a5(0x34e)](_0x5009a5(0x2ed)),this[_0x5009a5(0x1f1)]=![],(window[_0x5009a5(0x36d)][_0x5009a5(0x156)][_0x5009a5(0x284)]('\x6d\x75\x73\x69\x63\x2e\x62\x75\x67\x73\x2e\x63\x6f\x2e\x6b\x72\x2f\x6d\x76\x2f')>=0x0||window[_0x5009a5(0x36d)][_0x5009a5(0x156)]['\x69\x6e\x64\x65\x78\x4f\x66'](_0x5009a5(0x219))>=0x0)&&mvPageLikeUpdateCall(_0x5009a5(0x23a));}[_0x492a09(0x27a)](this),function(){}):likes[_0x492a09(0x2be)](this['\x6d\x76\x49\x64'],likes[_0x492a09(0x154)],{},function(){var _0x2f87ca=_0x492a09;this[_0x2f87ca(0x234)][_0x2f87ca(0x1ac)][_0x2f87ca(0x34e)]('\x62\x74\x6e\x4c\x69\x6b\x65'),this[_0x2f87ca(0x234)][_0x2f87ca(0x1ac)]['\x61\x64\x64\x43\x6c\x61\x73\x73'](_0x2f87ca(0x2ed))['\x74\x65\x78\x74']('\uc88b\uc544\uc694\x20\ucde8\uc18c'),this[_0x2f87ca(0x1f1)]=!![],(window[_0x2f87ca(0x36d)][_0x2f87ca(0x156)][_0x2f87ca(0x284)](_0x2f87ca(0x1b2))>=0x0||window[_0x2f87ca(0x36d)][_0x2f87ca(0x156)][_0x2f87ca(0x284)](_0x2f87ca(0x219))>=0x0)&&mvPageLikeUpdateCall(_0x2f87ca(0x300));}[_0x492a09(0x27a)](this),function(){});},'\x75\x70\x64\x61\x74\x65\x4c\x69\x6b\x65\x53\x74\x61\x74\x65':function(_0x238792){var _0x260484=_0x53579b;if(_0x238792=='\x6c\x69\x6b\x65')this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x260484(0x1ac)][_0x260484(0x34e)]('\x62\x74\x6e\x4c\x69\x6b\x65'),this[_0x260484(0x234)][_0x260484(0x1ac)][_0x260484(0x1c5)](_0x260484(0x2ed))[_0x260484(0x398)]('\uc88b\uc544\uc694\x20\ucde8\uc18c'),this[_0x260484(0x1f1)]=!![];else _0x238792==_0x260484(0x23a)&&(this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x260484(0x1ac)]['\x61\x64\x64\x43\x6c\x61\x73\x73']('\x62\x74\x6e\x4c\x69\x6b\x65')[_0x260484(0x398)](_0x260484(0x283)),this[_0x260484(0x234)][_0x260484(0x1ac)][_0x260484(0x34e)](_0x260484(0x2ed)),this[_0x260484(0x1f1)]=![]);},'\x73\x68\x6f\x77\x4c\x6f\x67\x69\x6e\x4c\x61\x79\x65\x72':function(){var _0xbe80dd=_0x53579b,_0x2637c6={'\x6f\x70\x65\x6e\x57\x69\x6e\x64\x6f\x77':!![],'\x63\x61\x6c\x6c\x62\x61\x63\x6b':function(){var _0x2d6cd6=_0x3000;try{if(bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72\x44\x61\x74\x61'][_0x2d6cd6(0x288)]())bugs[_0x2d6cd6(0x343)][_0x2d6cd6(0x288)]()[_0x2d6cd6(0x178)]();}catch(_0xfecf28){}}},_0x4e1bfc=bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72\x44\x61\x74\x61'][_0xbe80dd(0x1b7)]['\x6d\x76'];_0x4e1bfc&&(_0x2637c6[_0xbe80dd(0x334)]=bugs[_0xbe80dd(0x165)][_0xbe80dd(0x2a7)]+_0xbe80dd(0x2f3)+_0x4e1bfc[_0xbe80dd(0x2ae)]),bugs['\x75\x69'][_0xbe80dd(0x352)](_0x2637c6);},'\x67\x65\x74\x50\x6c\x61\x79\x65\x72':function(){var _0x7f8005=_0x53579b;if(this[_0x7f8005(0x2b8)]==null){var _0x5b9b9d=$(_0x7f8005(0x315))[0x0];return _0x5b9b9d&&_0x5b9b9d['\x74\x61\x67\x4e\x61\x6d\x65']!=_0x7f8005(0x274)&&typeof _0x5b9b9d[_0x7f8005(0x1fa)]==_0x7f8005(0x1fe)&&(this[_0x7f8005(0x2b8)]=_0x5b9b9d),null;}return this['\x70\x6c\x61\x79\x65\x72'];},'\x67\x65\x74\x48\x74\x6d\x6c\x35\x50\x6c\x61\x79\x65\x72':function(){var _0x4111bc=_0x53579b;return this[_0x4111bc(0x31a)];},'\x67\x65\x74\x53\x74\x72\x55\x72\x6c':function(_0x456753,_0x2a562b){},'\x67\x65\x74\x41\x64\x75\x6c\x74\x53\x74\x72':function(_0xe392db){var _0x24bf0d=_0x53579b;if(typeof _0xe392db!=_0x24bf0d(0x24d)&&_0xe392db=='\x59')return _0x24bf0d(0x30d);return'';},'\x67\x65\x74\x48\x6f\x6c\x64\x42\x61\x63\x6b\x53\x74\x72':function(_0x581732){var _0x3f8ee8=_0x53579b;if(_0x581732=='\x50\x52\x45\x4d\x49\x55\x4d')return _0x3f8ee8(0x14d);return'';},'\x73\x65\x74\x54\x68\x75\x6d\x62\x6e\x61\x69\x6c':function(_0x4ed1ca){var _0x282cd2=_0x53579b;this['\x74\x68\x75\x6d\x62\x6e\x61\x69\x6c\x50\x61\x74\x68']=_0x4ed1ca,bugs[_0x282cd2(0x165)][_0x282cd2(0x2db)]&&($(this[_0x282cd2(0x31a)])['\x61\x74\x74\x72'](_0x282cd2(0x1ef),this[_0x282cd2(0x2fe)]),$(this[_0x282cd2(0x1ca)])[_0x282cd2(0x2ab)]('\x73\x72\x63',this[_0x282cd2(0x2fe)])),this[_0x282cd2(0x35a)](this[_0x282cd2(0x2fe)]);},'\x73\x65\x74\x49\x6d\x61\x67\x65\x4d\x65\x74\x61':function(_0x1b2bd0){var _0x2aa5d3=_0x53579b;$(_0x2aa5d3(0x1a0),{'\x6c\x6f\x61\x64':function(_0x271c28){var _0x337616=_0x2aa5d3;this[_0x337616(0x241)][_0x337616(0x223)]=_0x271c28['\x74\x61\x72\x67\x65\x74'][_0x337616(0x223)],this[_0x337616(0x241)][_0x337616(0x269)]=_0x271c28[_0x337616(0x335)][_0x337616(0x269)];var _0x77161d=0x0,_0x3d3135=0x0;_0x271c28['\x74\x61\x72\x67\x65\x74'][_0x337616(0x223)]*0x9/0x10>=_0x271c28['\x74\x61\x72\x67\x65\x74']['\x68\x65\x69\x67\x68\x74']?(_0x77161d=this[_0x337616(0x332)],_0x3d3135=parseInt(_0x271c28[_0x337616(0x335)]['\x68\x65\x69\x67\x68\x74']*this[_0x337616(0x332)]/_0x271c28[_0x337616(0x335)][_0x337616(0x223)])):(_0x3d3135=this[_0x337616(0x221)],_0x77161d=parseInt(_0x271c28[_0x337616(0x335)][_0x337616(0x223)]*this[_0x337616(0x221)]/_0x271c28[_0x337616(0x335)][_0x337616(0x269)])),$(this['\x69\x6d\x61\x67\x65\x4f\x62\x6a'])[_0x337616(0x2ab)](_0x337616(0x33e),this['\x74\x68\x75\x6d\x62\x6e\x61\x69\x6c\x50\x61\x74\x68'])['\x77\x69\x64\x74\x68'](_0x77161d)[_0x337616(0x269)](_0x3d3135);}[_0x2aa5d3(0x27a)](this),'\x73\x72\x63':_0x1b2bd0});},'\x73\x65\x74\x44\x65\x66\x61\x75\x6c\x74\x4d\x65\x64\x69\x61\x46\x6f\x72\x6d\x61\x74':function(_0x8600e7){var _0x3432ee=_0x53579b;if(['\x53\x44','\x48\x44','\x46\x48\x44'][_0x3432ee(0x284)](_0x8600e7)<0x0)_0x8600e7='\x48\x44';this['\x6d\x65\x64\x69\x61\x46\x6f\x72\x6d\x61\x74']=_0x8600e7,localStorage[_0x3432ee(0x389)]('\x76\x69\x64\x65\x6f\x5f\x71\x75\x61\x6c\x69\x74\x79',_0x8600e7);},'\x67\x65\x74\x44\x65\x66\x61\x75\x6c\x74\x4d\x65\x64\x69\x61\x46\x6f\x72\x6d\x61\x74':function(){var _0x3c08de=_0x53579b;return localStorage[_0x3c08de(0x37a)](_0x3c08de(0x2ba))||'\x48\x44';},'\x75\x70\x64\x61\x74\x65\x42\x75\x66\x66\x65\x72\x42\x61\x72':function(){var _0x3c5444=_0x53579b,_0x47971d=this[_0x3c5444(0x205)]();try{var _0x572d4f=parseInt(this[_0x3c5444(0x234)][_0x3c5444(0x268)][_0x3c5444(0x253)]('\x77\x69\x64\x74\x68'),0xa);for(var _0x1bb10b=0x0;_0x1bb10b<_0x47971d[_0x3c5444(0x20b)][_0x3c5444(0x252)];_0x1bb10b++){if(_0x47971d[_0x3c5444(0x1d6)]>=_0x47971d[_0x3c5444(0x20b)]['\x73\x74\x61\x72\x74'](_0x1bb10b)&&_0x47971d['\x63\x75\x72\x72\x65\x6e\x74\x54\x69\x6d\x65']<=_0x47971d[_0x3c5444(0x20b)]['\x65\x6e\x64'](_0x1bb10b)){var _0xd58329=parseInt(_0x572d4f*_0x47971d[_0x3c5444(0x20b)][_0x3c5444(0x395)](_0x1bb10b)/_0x47971d[_0x3c5444(0x228)]);this[_0x3c5444(0x234)][_0x3c5444(0x35c)]['\x66\x69\x6e\x64']('\x2e\x62\x75\x66\x66\x65\x72\x69\x6e\x67')['\x63\x73\x73'](_0x3c5444(0x25c),0x0),this[_0x3c5444(0x234)][_0x3c5444(0x35c)][_0x3c5444(0x181)](_0x3c5444(0x38f))[_0x3c5444(0x253)](_0x3c5444(0x223),_0xd58329);break;}}}catch(_0x3d1001){return;}},'\x76\x69\x64\x65\x6f\x4f\x62\x6a\x65\x63\x74\x41\x64\x64\x45\x76\x65\x6e\x74':function(_0x234423){var _0x52fd01=_0x53579b;_0x234423[_0x52fd01(0x157)](_0x52fd01(0x172),this['\x68\x74\x6d\x6c\x35\x50\x72\x6f\x67\x72\x65\x73\x73\x48\x61\x6e\x64\x6c\x65\x72']['\x62\x69\x6e\x64'](this),![]),_0x234423[_0x52fd01(0x157)](_0x52fd01(0x24b),this[_0x52fd01(0x31f)][_0x52fd01(0x27a)](this),![]),_0x234423[_0x52fd01(0x157)](_0x52fd01(0x324),this['\x68\x74\x6d\x6c\x35\x50\x6c\x61\x79\x48\x61\x6e\x64\x6c\x65\x72']['\x62\x69\x6e\x64'](this),![]),_0x234423['\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72']('\x70\x6c\x61\x79\x69\x6e\x67',this['\x68\x74\x6d\x6c\x35\x70\x6c\x61\x79\x69\x6e\x67\x48\x61\x6e\x64\x6c\x65\x72']['\x62\x69\x6e\x64'](this),![]),_0x234423[_0x52fd01(0x157)]('\x74\x69\x6d\x65\x75\x70\x64\x61\x74\x65',this[_0x52fd01(0x207)][_0x52fd01(0x27a)](this),![]),_0x234423['\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72'](_0x52fd01(0x182),this[_0x52fd01(0x1e0)][_0x52fd01(0x27a)](this),![]),_0x234423[_0x52fd01(0x157)](_0x52fd01(0x19b),this[_0x52fd01(0x23e)]['\x62\x69\x6e\x64'](this),![]),_0x234423[_0x52fd01(0x157)](_0x52fd01(0x187),this[_0x52fd01(0x2b0)][_0x52fd01(0x27a)](this),![]),_0x234423[_0x52fd01(0x157)](_0x52fd01(0x17f),this['\x68\x74\x6d\x6c\x35\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x65\x72'][_0x52fd01(0x27a)](this),![]),_0x234423[_0x52fd01(0x157)](_0x52fd01(0x22c),this['\x68\x74\x6d\x6c\x35\x45\x6e\x64\x65\x64\x48\x61\x6e\x64\x6c\x65\x72'][_0x52fd01(0x27a)](this),![]);},'\x68\x74\x6d\x6c\x35\x50\x72\x6f\x67\x72\x65\x73\x73\x48\x61\x6e\x64\x6c\x65\x72':function(_0x16029c){var _0x4f7311=_0x53579b,_0x179fbf=this[_0x4f7311(0x205)]();(_0x179fbf[_0x4f7311(0x2cb)]==0x2||_0x179fbf[_0x4f7311(0x2cb)]==0x1)&&this[_0x4f7311(0x317)](_0x179fbf);},'\x68\x74\x6d\x6c\x35\x54\x69\x6d\x65\x75\x70\x64\x61\x74\x65\x48\x61\x6e\x64\x6c\x65\x72':function(_0x5dbb72){var _0x5485a1=_0x53579b;bugs[_0x5485a1(0x165)][_0x5485a1(0x208)]&&(!this[_0x5485a1(0x378)]&&(this[_0x5485a1(0x205)]()['\x70\x61\x75\x73\x65'](),this[_0x5485a1(0x205)]()['\x63\x75\x72\x72\x65\x6e\x74\x54\x69\x6d\x65']=0x0)),this['\x68\x61\x6e\x64\x6c\x65\x45\x76\x65\x6e\x74'](_0x5485a1(0x32f),this[_0x5485a1(0x205)]()[_0x5485a1(0x1d6)],this[_0x5485a1(0x205)]()['\x64\x75\x72\x61\x74\x69\x6f\x6e']);},'\x61\x75\x74\x6f\x70\x6c\x61\x79\x53\x74\x6f\x70':![],'\x68\x74\x6d\x6c\x35\x43\x61\x6e\x50\x6c\x61\x79\x48\x61\x6e\x64\x6c\x65\x72':function(_0x406188){var _0x2f14bc=_0x53579b;if(this[_0x2f14bc(0x344)])return;this[_0x2f14bc(0x273)]=![],this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x2f14bc(0x2a8)][_0x2f14bc(0x1fd)]();if(bugs[_0x2f14bc(0x165)]['\x64\x65\x76\x69\x63\x65']==_0x2f14bc(0x266))this[_0x2f14bc(0x251)]!=this[_0x2f14bc(0x272)]&&(this[_0x2f14bc(0x234)]['\x70\x6c\x61\x79'][_0x2f14bc(0x2ab)](_0x2f14bc(0x1dd),_0x2f14bc(0x1b1)),this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x2f14bc(0x1d4)][_0x2f14bc(0x34e)]('\x70\x6c\x61\x79')[_0x2f14bc(0x1c5)](_0x2f14bc(0x187)),this[_0x2f14bc(0x234)][_0x2f14bc(0x1d4)]['\x73\x68\x6f\x77']());else(bugs[_0x2f14bc(0x165)]['\x64\x65\x76\x69\x63\x65']==_0x2f14bc(0x28b)||bugs[_0x2f14bc(0x165)][_0x2f14bc(0x2e2)]==_0x2f14bc(0x24a))&&this[_0x2f14bc(0x234)][_0x2f14bc(0x1d4)]['\x73\x68\x6f\x77']();if(this[_0x2f14bc(0x15f)]!=!![]){this[_0x2f14bc(0x15f)]=!![],this[_0x2f14bc(0x26e)]=![],this[_0x2f14bc(0x192)]=![],this[_0x2f14bc(0x394)][_0x2f14bc(0x253)](_0x2f14bc(0x223),_0x2f14bc(0x363)),this[_0x2f14bc(0x394)][_0x2f14bc(0x253)](_0x2f14bc(0x269),_0x2f14bc(0x363));var _0x537474=this[_0x2f14bc(0x205)]();if($['\x62\x72\x6f\x77\x73\x65\x72']['\x63\x68\x72\x6f\x6d\x65']){var _0x1fb8a8=_0x537474[_0x2f14bc(0x324)]();_0x1fb8a8!==undefined&&_0x1fb8a8[_0x2f14bc(0x25d)](function(){})[_0x2f14bc(0x166)](function(){var _0x24d98a=_0x2f14bc;this[_0x24d98a(0x344)]=!![],this['\x69\x73\x50\x61\x75\x73\x65\x64']=!![],this[_0x24d98a(0x234)][_0x24d98a(0x1d4)][_0x24d98a(0x34e)](_0x24d98a(0x187))['\x61\x64\x64\x43\x6c\x61\x73\x73']('\x70\x6c\x61\x79'),this[_0x24d98a(0x234)][_0x24d98a(0x324)][_0x24d98a(0x2ab)](_0x24d98a(0x1dd),'\x62\x74\x6e\x50\x6c\x61\x79'),this[_0x24d98a(0x354)][_0x24d98a(0x2c7)]();return;}['\x62\x69\x6e\x64'](this));}else _0x537474[_0x2f14bc(0x324)]();this['\x73\x61\x76\x65\x64\x43\x75\x72\x72\x65\x6e\x74\x54\x69\x6d\x65']!=null?(this[_0x2f14bc(0x174)]['\x73\x65\x74\x53\x65\x65\x6b'](parseInt(this[_0x2f14bc(0x1e7)]/this['\x67\x65\x74\x48\x74\x6d\x6c\x35\x50\x6c\x61\x79\x65\x72']()['\x64\x75\x72\x61\x74\x69\x6f\x6e']*0x64)),this[_0x2f14bc(0x1e7)]=null):this['\x73\x74\x72\x65\x61\x6d\x69\x6e\x67\x4c\x6f\x67\x67\x65\x72'][_0x2f14bc(0x28e)](bugs[_0x2f14bc(0x165)][_0x2f14bc(0x399)]),this[_0x2f14bc(0x21d)](this[_0x2f14bc(0x2a5)]),bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x2f14bc(0x33b)]!=_0x2f14bc(0x257)&&(this['\x63\x6c\x65\x61\x72\x42\x61\x73\x69\x63\x54\x69\x6d\x65\x72\x53\x74\x61\x74\x65'](),this[_0x2f14bc(0x22b)]=setTimeout(function(){var _0x33445a=_0x2f14bc;if(!this[_0x33445a(0x318)])this[_0x33445a(0x21d)](this[_0x33445a(0x272)]);clearTimeout(this[_0x33445a(0x22b)]),this[_0x33445a(0x22b)]=null;}[_0x2f14bc(0x27a)](this),0x1388));}},'\x68\x74\x6d\x6c\x35\x50\x6c\x61\x79\x48\x61\x6e\x64\x6c\x65\x72':function(_0x6988e){var _0x29d8a9=_0x53579b;this[_0x29d8a9(0x26e)]=![],this['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c']['\x70\x6c\x61\x79\x43\x65\x6e\x74\x65\x72']['\x72\x65\x6d\x6f\x76\x65\x43\x6c\x61\x73\x73'](_0x29d8a9(0x324))['\x61\x64\x64\x43\x6c\x61\x73\x73'](_0x29d8a9(0x187)),this[_0x29d8a9(0x234)]['\x70\x6c\x61\x79'][_0x29d8a9(0x2ab)](_0x29d8a9(0x1dd),'\x62\x74\x6e\x50\x61\x75\x73\x65'),this['\x73\x74\x72\x65\x61\x6d\x69\x6e\x67\x4c\x6f\x67\x67\x65\x72'][_0x29d8a9(0x1c7)]();},'\x68\x74\x6d\x6c\x35\x70\x6c\x61\x79\x69\x6e\x67\x48\x61\x6e\x64\x6c\x65\x72':function(_0x1b6e01){},'\x68\x74\x6d\x6c\x35\x50\x61\x75\x73\x65\x48\x61\x6e\x64\x6c\x65\x72':function(_0x1427b0){var _0xdc1c84=_0x53579b;this['\x73\x68\x6f\x77\x50\x61\x6e\x65\x6c'](this[_0xdc1c84(0x2a5)]),this['\x63\x6c\x65\x61\x72\x42\x61\x73\x69\x63\x54\x69\x6d\x65\x72\x53\x74\x61\x74\x65'](),this[_0xdc1c84(0x26e)]=!![],this[_0xdc1c84(0x234)][_0xdc1c84(0x1d4)][_0xdc1c84(0x34e)](_0xdc1c84(0x187))['\x61\x64\x64\x43\x6c\x61\x73\x73'](_0xdc1c84(0x324)),this[_0xdc1c84(0x234)][_0xdc1c84(0x324)]['\x61\x74\x74\x72'](_0xdc1c84(0x1dd),_0xdc1c84(0x18f)),this[_0xdc1c84(0x354)][_0xdc1c84(0x2c7)]();},'\x68\x74\x6d\x6c\x35\x53\x65\x65\x6b\x69\x6e\x67\x48\x61\x6e\x64\x6c\x65\x72':function(_0xd39604){},'\x68\x74\x6d\x6c\x35\x53\x65\x65\x6b\x65\x64\x48\x61\x6e\x64\x6c\x65\x72':function(_0x3b07a3){var _0x13b4aa=_0x53579b;(bugs[_0x13b4aa(0x165)][_0x13b4aa(0x2e2)]==_0x13b4aa(0x266)||bugs[_0x13b4aa(0x165)][_0x13b4aa(0x33b)]==_0x13b4aa(0x25f))&&(this[_0x13b4aa(0x26a)]=this[_0x13b4aa(0x205)]()[_0x13b4aa(0x1d6)]);},'\x68\x74\x6d\x6c\x35\x45\x6e\x64\x65\x64\x48\x61\x6e\x64\x6c\x65\x72':function(_0x338af7){var _0x2de7b9=_0x53579b;if(bugs[_0x2de7b9(0x165)]['\x69\x73\x49\x4f\x53\x53\x61\x66\x61\x72\x69'])this['\x69\x73\x49\x4f\x50\x6c\x61\x79\x69\x6e\x67\x46\x6c\x61\x67']=![];this['\x68\x61\x6e\x64\x6c\x65\x45\x76\x65\x6e\x74'](_0x2de7b9(0x32f),0x0,0x0),this[_0x2de7b9(0x362)](_0x2de7b9(0x1de));},'\x48\x54\x4d\x4c\x35\x5f\x4d\x45\x44\x49\x41\x5f\x45\x52\x52\x5f\x41\x42\x4f\x41\x52\x54\x45\x44':0x1,'\x48\x54\x4d\x4c\x35\x5f\x4d\x45\x44\x49\x41\x5f\x45\x52\x52\x5f\x4e\x45\x54\x57\x4f\x52\x4b':0x2,'\x48\x54\x4d\x4c\x35\x5f\x4d\x45\x44\x49\x41\x5f\x45\x52\x52\x5f\x44\x45\x43\x4f\x44\x45':0x3,'\x48\x54\x4d\x4c\x35\x5f\x4d\x45\x44\x49\x41\x5f\x45\x52\x52\x5f\x53\x52\x43\x5f\x4e\x4f\x54\x5f\x53\x55\x50\x50\x4f\x52\x54\x45\x44':0x4,'\x68\x74\x6d\x6c\x35\x4d\x65\x64\x69\x61\x45\x72\x72\x6f\x72\x43\x6f\x75\x6e\x74':0x0,'\x68\x74\x6d\x6c\x35\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x65\x72':function(_0x49a909){var _0x53c696=_0x53579b,_0x3db53f=this['\x67\x65\x74\x48\x74\x6d\x6c\x35\x50\x6c\x61\x79\x65\x72']()[_0x53c696(0x17f)];if(_0x3db53f==null)return;var _0xb96c81;switch(_0x3db53f['\x63\x6f\x64\x65']){case this[_0x53c696(0x2ac)]:_0xb96c81=new bugs['\x75\x69'][(_0x53c696(0x21a))](_0x53c696(0x1cd),{'\x63\x73\x73':_0x53c696(0x367)}),_0xb96c81[_0x53c696(0x34c)]();break;case this[_0x53c696(0x2f4)]:break;case this[_0x53c696(0x2da)]:console['\x6c\x6f\x67'](_0x53c696(0x29d)+_0x3db53f['\x6d\x65\x73\x73\x61\x67\x65']),_0xb96c81=new bugs['\x75\x69'][(_0x53c696(0x21a))](_0x53c696(0x1ce),{'\x63\x73\x73':_0x53c696(0x367)}),_0xb96c81[_0x53c696(0x34c)]();break;case this[_0x53c696(0x27e)]:console[_0x53c696(0x194)](_0x53c696(0x29d)+_0x3db53f[_0x53c696(0x383)]),this[_0x53c696(0x14f)]++;if(this[_0x53c696(0x14f)]<0x2&&this[_0x53c696(0x15f)]==!![])console['\x6c\x6f\x67'](_0x53c696(0x17d)+new Date()),this[_0x53c696(0x15f)]=![],this[_0x53c696(0x2e6)](this[_0x53c696(0x180)]);else{if(this['\x67\x65\x74\x48\x74\x6d\x6c\x35\x50\x6c\x61\x79\x65\x72']()[_0x53c696(0x33e)][_0x53c696(0x284)](_0x53c696(0x23d))<0x0||this[_0x53c696(0x205)]()[_0x53c696(0x33e)]==''){}else{console[_0x53c696(0x194)](_0x53c696(0x35f)+new Date());var _0x31f91c=_0x53c696(0x237);bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x53c696(0x25b)]==6.1&&bugs[_0x53c696(0x165)][_0x53c696(0x2f6)]==0xb&&(this[_0x53c696(0x370)]==='\x48\x44'||this[_0x53c696(0x370)]===_0x53c696(0x345))&&(_0x31f91c+=_0x53c696(0x1f8)),_0xb96c81=new bugs['\x75\x69'][(_0x53c696(0x21a))](_0x31f91c,{'\x63\x73\x73':_0x53c696(0x367)}),_0xb96c81[_0x53c696(0x34c)]();}}break;default:_0xb96c81=new bugs['\x75\x69'][(_0x53c696(0x21a))](_0x53c696(0x396),{'\x63\x73\x73':_0x53c696(0x367)}),_0xb96c81[_0x53c696(0x34c)]();break;}return;},'\x73\x65\x6e\x64\x53\x74\x72\x65\x61\x6d\x69\x6e\x67\x4c\x6f\x67':function(_0x70f395,_0x26ffe0){var _0x2ba2cd=_0x53579b;if(typeof _0x70f395==_0x2ba2cd(0x20d)||_0x70f395=='')return;$[_0x2ba2cd(0x1b4)]({'\x74\x79\x70\x65':_0x2ba2cd(0x342),'\x75\x72\x6c':bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x2ba2cd(0x2a7)]+_0x2ba2cd(0x17e),'\x64\x61\x74\x61':{'\x64\x65\x63\x6f\x72\x61\x74\x6f\x72':'\x62\x6c\x61\x6e\x6b','\x6c\x6f\x67\x53\x74\x72':bugs[_0x2ba2cd(0x165)][_0x2ba2cd(0x2db)]==!![]?_0x70f395['\x6a\x6f\x69\x6e']('\x09'):_0x70f395[_0x2ba2cd(0x267)]('\x09')[_0x2ba2cd(0x2c4)]('\x09'),'\x6d\x65\x64\x69\x61\x46\x6f\x72\x6d\x61\x74':_0x26ffe0||''},'\x73\x75\x63\x63\x65\x73\x73':function(){},'\x65\x72\x72\x6f\x72':function(){},'\x64\x61\x74\x61\x54\x79\x70\x65':_0x2ba2cd(0x398),'\x63\x61\x63\x68\x65':![],'\x61\x73\x79\x6e\x63':bugs[_0x2ba2cd(0x165)]['\x70\x6c\x61\x74\x66\x6f\x72\x6d']==_0x2ba2cd(0x257)||$[_0x2ba2cd(0x2a3)]!=null&&$[_0x2ba2cd(0x2a3)][_0x2ba2cd(0x2a6)]===_0x2ba2cd(0x1cb)?![]:!![]});}},bugs[_0x53579b(0x354)]=bugs[_0x53579b(0x26c)](),bugs[_0x53579b(0x354)]['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']={'\x73\x74\x61\x72\x74\x54\x69\x6d\x65':0x0,'\x70\x61\x75\x73\x65\x53\x74\x61\x72\x74\x54\x69\x6d\x65':0x0,'\x70\x61\x75\x73\x65\x54\x69\x6d\x65':0x0,'\x65\x6e\x64\x54\x69\x6d\x65':0x0,'\x6c\x6f\x67\x54\x79\x70\x65':_0x53579b(0x395),'\x63\x75\x72\x72\x53\x74\x72\x54\x79\x70\x65':'','\x6d\x65\x64\x69\x61\x46\x6f\x72\x6d\x61\x74':'\x6d\x70\x33\x5f\x31\x39\x32','\x70\x6c\x61\x79\x65\x72':null,'\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65':function(_0x724428){var _0x26183c=_0x53579b;this[_0x26183c(0x2b8)]=_0x724428;},'\x73\x65\x74\x53\x74\x61\x72\x74':function(_0x28ed21){var _0x4cb24b=_0x53579b;this['\x6c\x6f\x67\x54\x79\x70\x65']==_0x4cb24b(0x2d3)&&this['\x73\x65\x74\x45\x6e\x64'](),this[_0x4cb24b(0x2ef)]=_0x28ed21,this[_0x4cb24b(0x16d)]=new Date()['\x67\x65\x74\x54\x69\x6d\x65'](),this[_0x4cb24b(0x316)]=_0x4cb24b(0x2d3),this['\x70\x61\x75\x73\x65\x54\x69\x6d\x65']=0x0,this[_0x4cb24b(0x19e)]=0x0;},'\x73\x65\x74\x45\x6e\x64':function(){var _0x563e96=_0x53579b;if(this['\x73\x74\x61\x72\x74\x54\x69\x6d\x65']<=0x0)return;this['\x6c\x6f\x67\x54\x79\x70\x65']=_0x563e96(0x395),this[_0x563e96(0x2fa)]=new Date()[_0x563e96(0x1e5)](),this[_0x563e96(0x303)]();},'\x73\x65\x74\x50\x61\x75\x73\x65':function(){var _0x36fc89=_0x53579b;this[_0x36fc89(0x19e)]=new Date()[_0x36fc89(0x1e5)]();},'\x73\x65\x74\x52\x65\x73\x75\x6d\x65':function(){var _0x353506=_0x53579b;if(this[_0x353506(0x19e)]<=0x0)return;this['\x70\x61\x75\x73\x65\x54\x69\x6d\x65']+=new Date()[_0x353506(0x1e5)]()-this['\x70\x61\x75\x73\x65\x53\x74\x61\x72\x74\x54\x69\x6d\x65'],this[_0x353506(0x19e)]=0x0;},'\x73\x65\x6e\x64\x4c\x6f\x67':function(){var _0x2879cf=_0x53579b;this['\x70\x61\x75\x73\x65\x53\x74\x61\x72\x74\x54\x69\x6d\x65']>0x0&&(this[_0x2879cf(0x290)]+=this['\x65\x6e\x64\x54\x69\x6d\x65']-this[_0x2879cf(0x19e)]);var _0xff8a05=0x0,_0x2885d3=null,_0x2a3158='';if(this[_0x2879cf(0x2ef)]==_0x2879cf(0x18d)){}else{if(this[_0x2879cf(0x2ef)]==_0x2879cf(0x15c)){}else{if(this[_0x2879cf(0x2ef)]==_0x2879cf(0x245)||this['\x63\x75\x72\x72\x53\x74\x72\x54\x79\x70\x65']=='\x4d\x57\x45\x42\x48\x4d'){var _0x5d0acd=this[_0x2879cf(0x2b8)][_0x2879cf(0x24e)];_0xff8a05=_0x5d0acd['\x6d\x76\x49\x64']['\x69\x64'],_0x2885d3=_0x5d0acd[_0x2879cf(0x264)][_0x2879cf(0x267)]('\x3a'),_0x2a3158=_0x2879cf(0x308);}else return;}}var _0x17bd88=_0xff8a05%0x3e8;if(_0x17bd88<0xa)_0x2a3158+='\x30\x30'+_0x17bd88;else{if(_0x17bd88<0x64)_0x2a3158+='\x30'+_0x17bd88;else _0x2a3158+=_0x17bd88;}var _0x269039=(_0x2885d3[0x0]*0x3c+parseInt(_0x2885d3[0x1],0xa))*0x3e8,_0x1fccf5=[];_0x1fccf5[_0x2879cf(0x1cc)](_0x2879cf(0x395)),_0x1fccf5[_0x2879cf(0x1cc)](g_msrl),_0x1fccf5[_0x2879cf(0x1cc)](_0x2a3158+'\x2f'+_0xff8a05+(this[_0x2879cf(0x2ef)]==_0x2879cf(0x245)||this[_0x2879cf(0x2ef)]==_0x2879cf(0x281)?_0x2879cf(0x1b0):'\x2e\x6d\x70\x33')),_0x1fccf5['\x70\x75\x73\x68'](this['\x70\x6c\x61\x79\x65\x72'][_0x2879cf(0x306)]),g_msrl<=0x0||this['\x70\x6c\x61\x79\x65\x72'][_0x2879cf(0x306)][_0x2879cf(0x284)]('\x45')>-0x1||this[_0x2879cf(0x2b8)][_0x2879cf(0x306)][_0x2879cf(0x284)]('\x46')>-0x1||this[_0x2879cf(0x2b8)][_0x2879cf(0x1e1)]<=0x0?_0x1fccf5[_0x2879cf(0x1cc)]('\x46'):_0x1fccf5[_0x2879cf(0x1cc)]('\x42'),_0x1fccf5[_0x2879cf(0x1cc)](_0x2879cf(0x1a1)),_0x1fccf5[_0x2879cf(0x1cc)](_0x2879cf(0x1a1)),_0x1fccf5['\x70\x75\x73\x68'](this[_0x2879cf(0x2fa)]-(this[_0x2879cf(0x16d)]+this[_0x2879cf(0x290)])),_0x1fccf5[_0x2879cf(0x1cc)](_0x269039),_0x1fccf5[_0x2879cf(0x1cc)](''),_0x1fccf5[_0x2879cf(0x1cc)](this[_0x2879cf(0x2ef)]),_0x1fccf5[_0x2879cf(0x1cc)](this[_0x2879cf(0x2b8)][_0x2879cf(0x1e1)]),this['\x70\x6c\x61\x79\x65\x72'][_0x2879cf(0x362)](_0x2879cf(0x2e4),_0x1fccf5,this[_0x2879cf(0x370)]['\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65']()),this['\x70\x6c\x61\x79\x65\x72']['\x73\x74\x72\x65\x61\x6d\x69\x6e\x67\x4c\x6f\x67\x67\x65\x72'][_0x2879cf(0x20f)]();},'\x63\x6c\x65\x61\x72':function(){var _0x50c31a=_0x53579b;this[_0x50c31a(0x16d)]=0x0,this[_0x50c31a(0x19e)]=0x0,this[_0x50c31a(0x290)]=0x0,this['\x65\x6e\x64\x54\x69\x6d\x65']=0x0,this['\x6c\x6f\x67\x54\x79\x70\x65']=_0x50c31a(0x395);}},bugs[_0x53579b(0x1bc)]=bugs[_0x53579b(0x26c)](),bugs['\x76\x6f\x6c\x75\x6d\x65\x53\x6c\x69\x64\x65\x72'][_0x53579b(0x1d5)]={'\x62\x61\x72\x53\x69\x7a\x65':0x0,'\x63\x6f\x6e\x74\x72\x6f\x6c':null,'\x70\x6c\x61\x79\x65\x72':null,'\x69\x73\x4d\x75\x74\x65\x64':![],'\x69\x73\x44\x72\x61\x67\x67\x69\x6e\x67':![],'\x69\x73\x4d\x6f\x75\x73\x65\x49\x6e':![],'\x6c\x61\x73\x74\x56\x6f\x6c\x75\x6d\x65\x56\x61\x6c\x75\x65':0x32,'\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65':function(_0x21b54f){var _0x1d1f38=_0x53579b,_0x7bed05=this;this[_0x1d1f38(0x200)]=_0x21b54f['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'],this[_0x1d1f38(0x2c6)]=_0x21b54f[_0x1d1f38(0x2c6)],this[_0x1d1f38(0x195)]=_0x21b54f['\x6c\x61\x73\x74\x56\x6f\x6c\x75\x6d\x65\x56\x61\x6c\x75\x65'],_0x7bed05[_0x1d1f38(0x1cf)]=0x37,this[_0x1d1f38(0x2b8)]=_0x21b54f['\x67\x65\x74\x48\x74\x6d\x6c\x35\x50\x6c\x61\x79\x65\x72'](),this['\x63\x6f\x6e\x74\x72\x6f\x6c']['\x76\x6f\x6c\x75\x6d\x65\x42\x75\x74\x74\x6f\x6e'][_0x1d1f38(0x1a6)]({'\x61\x78\x69\x73':'\x78','\x63\x6f\x6e\x74\x61\x69\x6e\x6d\x65\x6e\x74':_0x7bed05['\x63\x6f\x6e\x74\x72\x6f\x6c'][_0x1d1f38(0x278)][_0x1d1f38(0x15e)]()[_0x1d1f38(0x15e)](),'\x64\x69\x73\x74\x61\x6e\x63\x65':0x5,'\x64\x72\x61\x67':function(_0x4b8fb4,_0x3b0d87){var _0x11b3f5=_0x1d1f38,_0x4b09fe=$(this)['\x70\x6f\x73\x69\x74\x69\x6f\x6e']();_0x7bed05[_0x11b3f5(0x1c2)](parseInt(_0x4b09fe[_0x11b3f5(0x25c)]/_0x7bed05[_0x11b3f5(0x1cf)]*0x64)),_0x7bed05[_0x11b3f5(0x198)]=!![];},'\x73\x74\x6f\x70':function(_0x20abe7,_0x13d7fc){var _0x1007d8=_0x1d1f38,_0x63f7b8=$(this)['\x70\x6f\x73\x69\x74\x69\x6f\x6e']();_0x7bed05[_0x1007d8(0x1c2)](parseInt(_0x63f7b8[_0x1007d8(0x25c)]/_0x7bed05[_0x1007d8(0x1cf)]*0x64)),_0x7bed05['\x69\x73\x44\x72\x61\x67\x67\x69\x6e\x67']=![],!_0x7bed05['\x69\x73\x4d\x6f\x75\x73\x65\x49\x6e']&&(_0x21b54f[_0x1007d8(0x2c6)]?(_0x21b54f[_0x1007d8(0x234)][_0x1007d8(0x2d9)]['\x68\x69\x64\x65'](0x64),_0x21b54f[_0x1007d8(0x234)]['\x76\x6f\x6c\x75\x6d\x65\x43\x6f\x6e\x74\x72\x6f\x6c'][_0x1007d8(0x2dc)](_0x1007d8(0x26b))['\x73\x68\x6f\x77'](0x64)):(_0x21b54f[_0x1007d8(0x234)][_0x1007d8(0x2d9)]['\x73\x68\x6f\x77'](0x64),_0x21b54f['\x63\x6f\x6e\x74\x72\x6f\x6c\x50\x61\x6e\x65\x6c'][_0x1007d8(0x37f)][_0x1007d8(0x1fd)](0x64)),_0x21b54f[_0x1007d8(0x234)][_0x1007d8(0x29c)][_0x1007d8(0x2dc)]('\x70\x2e\x73\x65\x65\x6b')[_0x1007d8(0x1fd)](0x64)),bugs[_0x1007d8(0x36c)][_0x1007d8(0x2cd)](_0x1007d8(0x190));}}),this['\x63\x6f\x6e\x74\x72\x6f\x6c'][_0x1d1f38(0x356)][_0x1d1f38(0x34f)](function(_0x368c36){var _0x82d87a=_0x1d1f38,_0x1b3858=_0x368c36[_0x82d87a(0x390)]-this['\x63\x6f\x6e\x74\x72\x6f\x6c'][_0x82d87a(0x356)][_0x82d87a(0x2c0)]()[_0x82d87a(0x25c)];if(_0x1b3858<0x0)_0x1b3858=0x0;else{if(_0x1b3858>_0x7bed05['\x62\x61\x72\x53\x69\x7a\x65'])_0x1b3858=_0x7bed05[_0x82d87a(0x1cf)];}this['\x73\x65\x74\x56\x6f\x6c\x75\x6d\x65'](parseInt(_0x1b3858/this['\x62\x61\x72\x53\x69\x7a\x65']*0x64)),bugs[_0x82d87a(0x36c)]['\x61\x72\x65\x61'](_0x82d87a(0x190)),event[_0x82d87a(0x326)]();}['\x62\x69\x6e\x64'](this)),this[_0x1d1f38(0x1c2)](localStorage[_0x1d1f38(0x37a)]('\x6d\x76\x5f\x76\x6f\x6c\x75\x6d\x65')!=null?localStorage[_0x1d1f38(0x37a)](_0x1d1f38(0x22a)):0x32);},'\x73\x65\x74\x56\x6f\x6c\x75\x6d\x65':function(_0x5600bf){var _0x2f115b=_0x53579b;if(_0x5600bf<0x0)_0x5600bf=0x0;else{if(_0x5600bf>0x64)_0x5600bf=0x64;}var _0x6b3aaf=this['\x62\x61\x72\x53\x69\x7a\x65']*(_0x5600bf/0x64);this[_0x2f115b(0x200)][_0x2f115b(0x278)][_0x2f115b(0x253)]({'\x6c\x65\x66\x74':_0x6b3aaf})[_0x2f115b(0x2ab)](_0x2f115b(0x218),_0x5600bf+'\x25'),this['\x63\x6f\x6e\x74\x72\x6f\x6c']['\x76\x6f\x6c\x75\x6d\x65\x42\x61\x72']['\x77\x69\x64\x74\x68'](_0x6b3aaf);_0x5600bf==0x0?(this['\x69\x73\x4d\x75\x74\x65\x64']=!![],this[_0x2f115b(0x200)][_0x2f115b(0x2d9)][_0x2f115b(0x1fd)](),this['\x63\x6f\x6e\x74\x72\x6f\x6c'][_0x2f115b(0x37f)][_0x2f115b(0x34c)]()):(this['\x69\x73\x4d\x75\x74\x65\x64']=![],this[_0x2f115b(0x200)][_0x2f115b(0x2d9)][_0x2f115b(0x34c)](),this[_0x2f115b(0x200)][_0x2f115b(0x37f)][_0x2f115b(0x1fd)]());!this[_0x2f115b(0x200)][_0x2f115b(0x356)][_0x2f115b(0x349)](_0x2f115b(0x1aa))&&(this[_0x2f115b(0x195)]=_0x5600bf);this[_0x2f115b(0x2b8)][_0x2f115b(0x2ff)]=_0x5600bf/0x64;try{if(_0x5600bf==0x0)this[_0x2f115b(0x2b8)][_0x2f115b(0x167)]=!![];else this['\x70\x6c\x61\x79\x65\x72']['\x6d\x75\x74\x65\x64']=![];}catch(_0x1cc6ef){console['\x6c\x6f\x67'](_0x2f115b(0x185),_0x5600bf),console[_0x2f115b(0x194)](_0x1cc6ef);}localStorage['\x73\x65\x74\x49\x74\x65\x6d'](_0x2f115b(0x22a),_0x5600bf);}},bugs[_0x53579b(0x174)]=bugs[_0x53579b(0x26c)](),bugs[_0x53579b(0x174)][_0x53579b(0x1d5)]={'\x63\x6f\x6e\x74\x72\x6f\x6c':null,'\x70\x6c\x61\x79\x65\x72':null,'\x68\x74\x6d\x6c\x35\x50\x6c\x61\x79\x65\x72':null,'\x69\x73\x44\x72\x61\x67':![],'\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65':function(_0xe5f350){var _0x3c9e54=_0x53579b,_0x173e30=this;this['\x70\x6c\x61\x79\x65\x72']=_0xe5f350,this['\x68\x74\x6d\x6c\x35\x50\x6c\x61\x79\x65\x72']=this[_0x3c9e54(0x2b8)][_0x3c9e54(0x205)](),this[_0x3c9e54(0x200)]=this[_0x3c9e54(0x2b8)][_0x3c9e54(0x234)],bugs['\x6d\x76\x48\x50\x6c\x61\x79\x65\x72'][_0x3c9e54(0x33b)]==_0x3c9e54(0x25f)?this['\x63\x6f\x6e\x74\x72\x6f\x6c'][_0x3c9e54(0x18b)][_0x3c9e54(0x1a6)]({'\x61\x78\x69\x73':'\x78','\x63\x6f\x6e\x74\x61\x69\x6e\x6d\x65\x6e\x74':_0x173e30[_0x3c9e54(0x200)][_0x3c9e54(0x18b)]['\x70\x61\x72\x65\x6e\x74']()[_0x3c9e54(0x15e)](),'\x64\x69\x73\x74\x61\x6e\x63\x65':0x5,'\x73\x74\x61\x72\x74':function(){_0x173e30['\x69\x73\x44\x72\x61\x67']=!![];},'\x64\x72\x61\x67':function(_0x466039,_0x484151){var _0x5166f1=_0x3c9e54,_0x403541=$(this)[_0x5166f1(0x191)]();_0x173e30[_0x5166f1(0x200)][_0x5166f1(0x2b5)]['\x77\x69\x64\x74\x68'](_0x403541[_0x5166f1(0x25c)]);},'\x73\x74\x6f\x70':function(_0x2706e0,_0x2f3891){var _0x467798=_0x3c9e54,_0x399854=$(this)[_0x467798(0x191)]();_0x173e30[_0x467798(0x353)](_0x399854[_0x467798(0x25c)]/parseInt(_0x173e30[_0x467798(0x200)][_0x467798(0x268)][_0x467798(0x253)](_0x467798(0x223)))*0x64),_0x173e30[_0x467798(0x355)]=![];}}):(document[_0x3c9e54(0x1f7)]('\x23'+_0xe5f350[_0x3c9e54(0x26d)]+_0x3c9e54(0x2a9))[0x0][_0x3c9e54(0x157)](_0x3c9e54(0x307),this[_0x3c9e54(0x350)][_0x3c9e54(0x27a)](this),![]),document[_0x3c9e54(0x1f7)]('\x23'+_0xe5f350['\x70\x6c\x61\x79\x65\x72\x49\x64']+_0x3c9e54(0x2a9))[0x0][_0x3c9e54(0x157)](_0x3c9e54(0x232),this['\x64\x72\x61\x67\x49\x6e\x67'][_0x3c9e54(0x27a)](this),![]),document[_0x3c9e54(0x1f7)]('\x23'+_0xe5f350[_0x3c9e54(0x26d)]+_0x3c9e54(0x2a9))[0x0][_0x3c9e54(0x157)]('\x74\x6f\x75\x63\x68\x65\x6e\x64',this[_0x3c9e54(0x34a)][_0x3c9e54(0x27a)](this),![])),this[_0x3c9e54(0x200)][_0x3c9e54(0x346)]['\x63\x6c\x69\x63\x6b'](function(_0x2bd1e2){var _0x4a2b9f=_0x3c9e54,_0x3fa471=_0x2bd1e2[_0x4a2b9f(0x390)]-this[_0x4a2b9f(0x200)][_0x4a2b9f(0x346)]['\x6f\x66\x66\x73\x65\x74']()['\x6c\x65\x66\x74'],_0x4d2d55=parseInt(this[_0x4a2b9f(0x200)][_0x4a2b9f(0x268)][_0x4a2b9f(0x253)](_0x4a2b9f(0x223)),0xa);if(_0x3fa471<0x0)_0x3fa471=0x0;else{if(_0x3fa471>_0x4d2d55)_0x3fa471=_0x4d2d55;}this[_0x4a2b9f(0x353)](_0x3fa471/_0x4d2d55*0x64),event[_0x4a2b9f(0x326)]();}[_0x3c9e54(0x27a)](this));},'\x64\x72\x61\x67\x53\x74\x61\x72\x74':function(_0x41c71a){var _0x4b460d=_0x53579b;this[_0x4b460d(0x355)]=!![];},'\x64\x72\x61\x67\x49\x6e\x67':function(_0x30b391){var _0x2fd43b=_0x53579b;_0x30b391[_0x2fd43b(0x2d1)]();var _0x555f96=_0x30b391['\x74\x61\x72\x67\x65\x74\x54\x6f\x75\x63\x68\x65\x73'][0x0]['\x70\x61\x67\x65\x58'],_0x263176=parseInt(this[_0x2fd43b(0x200)][_0x2fd43b(0x268)]['\x63\x73\x73']('\x77\x69\x64\x74\x68')),_0x37ee7f=parseInt(this[_0x2fd43b(0x200)][_0x2fd43b(0x268)][_0x2fd43b(0x2c0)]()[_0x2fd43b(0x25c)]);if(_0x555f96<=_0x37ee7f)$($('\x23'+this[_0x2fd43b(0x2b8)]['\x70\x6c\x61\x79\x65\x72\x49\x64']+'\x20\x2e\x76\x69\x64\x65\x6f\x50\x6c\x61\x79\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c\x20\x2e\x73\x65\x65\x6b\x20\x2e\x63\x75\x72\x72\x65\x6e\x74\x20\x2e\x73\x65\x65\x6b\x62\x61\x72')[0x0])[_0x2fd43b(0x253)](_0x2fd43b(0x25c),-0x8),$($('\x23'+this[_0x2fd43b(0x2b8)]['\x70\x6c\x61\x79\x65\x72\x49\x64']+_0x2fd43b(0x2a9))[0x0])['\x70\x61\x72\x65\x6e\x74']()[_0x2fd43b(0x223)](0x0);else _0x555f96>=_0x263176+_0x37ee7f?($($('\x23'+this['\x70\x6c\x61\x79\x65\x72']['\x70\x6c\x61\x79\x65\x72\x49\x64']+_0x2fd43b(0x2a9))[0x0])[_0x2fd43b(0x253)](_0x2fd43b(0x25c),_0x263176-0x8),$($('\x23'+this[_0x2fd43b(0x2b8)][_0x2fd43b(0x26d)]+_0x2fd43b(0x2a9))[0x0])[_0x2fd43b(0x15e)]()[_0x2fd43b(0x223)](_0x263176)):($($('\x23'+this[_0x2fd43b(0x2b8)][_0x2fd43b(0x26d)]+_0x2fd43b(0x2a9))[0x0])[_0x2fd43b(0x253)](_0x2fd43b(0x25c),_0x555f96-_0x37ee7f-0x8),$($('\x23'+this[_0x2fd43b(0x2b8)][_0x2fd43b(0x26d)]+_0x2fd43b(0x2a9))[0x0])['\x70\x61\x72\x65\x6e\x74']()[_0x2fd43b(0x223)](_0x555f96-_0x37ee7f));},'\x64\x72\x61\x67\x45\x6e\x64':function(_0x133150){var _0x142980=_0x53579b,_0x35bf8f=_0x133150[_0x142980(0x254)][0x0]['\x70\x61\x67\x65\x58'],_0x51b5d3=parseInt(this[_0x142980(0x200)][_0x142980(0x268)][_0x142980(0x253)](_0x142980(0x223))),_0x2690ec=parseInt(this['\x63\x6f\x6e\x74\x72\x6f\x6c'][_0x142980(0x268)][_0x142980(0x2c0)]()[_0x142980(0x25c)]);if(_0x35bf8f<=_0x2690ec)this['\x73\x65\x74\x53\x65\x65\x6b'](0x0);else _0x35bf8f>=_0x51b5d3+_0x2690ec?this['\x73\x65\x74\x53\x65\x65\x6b'](0x64):this[_0x142980(0x353)](parseInt((_0x35bf8f-_0x2690ec)/_0x51b5d3*0x64));this['\x69\x73\x44\x72\x61\x67']=![];},'\x73\x65\x74\x53\x65\x65\x6b':function(_0x45db9b){var _0x380f81=_0x53579b;if(!this[_0x380f81(0x2b8)][_0x380f81(0x15f)])return;if(_0x45db9b<0x0)_0x45db9b=0x0;else{if(_0x45db9b>0x64)_0x45db9b=0x64;}var _0x3fe7da=parseInt(this[_0x380f81(0x200)][_0x380f81(0x268)][_0x380f81(0x253)](_0x380f81(0x223)),0xa)*(_0x45db9b/0x64);this[_0x380f81(0x200)][_0x380f81(0x2b5)][_0x380f81(0x223)](_0x3fe7da),this[_0x380f81(0x200)][_0x380f81(0x18b)][_0x380f81(0x253)]({'\x6c\x65\x66\x74':_0x3fe7da-0x6})[_0x380f81(0x2ab)](_0x380f81(0x218),_0x45db9b+'\x25'),this['\x70\x6c\x61\x79\x65\x72'][_0x380f81(0x273)]=!![];(bugs[_0x380f81(0x165)][_0x380f81(0x2e2)]!=_0x380f81(0x28b)&&bugs[_0x380f81(0x165)]['\x64\x65\x76\x69\x63\x65']!=_0x380f81(0x24a)&&bugs[_0x380f81(0x165)][_0x380f81(0x2e2)]!=_0x380f81(0x266)||bugs[_0x380f81(0x165)][_0x380f81(0x2e2)]==_0x380f81(0x266)&&this[_0x380f81(0x376)]!='\x66\x75\x6c\x6c')&&(this[_0x380f81(0x200)][_0x380f81(0x1d4)][_0x380f81(0x1fd)](),this['\x63\x6f\x6e\x74\x72\x6f\x6c']['\x6c\x6f\x61\x64\x69\x6e\x67'][_0x380f81(0x34c)]());if(this[_0x380f81(0x2af)]==null)this['\x68\x74\x6d\x6c\x35\x50\x6c\x61\x79\x65\x72']=this[_0x380f81(0x2b8)]['\x67\x65\x74\x48\x74\x6d\x6c\x35\x50\x6c\x61\x79\x65\x72']();var _0x448e26=0x0;if(!isNaN(this[_0x380f81(0x2af)][_0x380f81(0x228)])){this[_0x380f81(0x2b8)][_0x380f81(0x183)](),_0x448e26=parseInt(_0x45db9b*this[_0x380f81(0x2af)][_0x380f81(0x228)]/0x64),this[_0x380f81(0x2af)][_0x380f81(0x1d6)]=_0x448e26,this[_0x380f81(0x2af)][_0x380f81(0x324)]();if(bugs[_0x380f81(0x165)][_0x380f81(0x2e2)]==_0x380f81(0x28b))this[_0x380f81(0x2af)][_0x380f81(0x249)]();else{if(bugs[_0x380f81(0x165)][_0x380f81(0x2e2)]==_0x380f81(0x24a))this[_0x380f81(0x2af)][_0x380f81(0x249)]();else bugs[_0x380f81(0x165)][_0x380f81(0x2e2)]==_0x380f81(0x266)&&(this[_0x380f81(0x2b8)]['\x70\x6c\x61\x79\x65\x72\x54\x79\x70\x65']==_0x380f81(0x271)?this[_0x380f81(0x2af)][_0x380f81(0x249)]():(this['\x70\x6c\x61\x79\x65\x72']['\x73\x68\x6f\x77\x50\x61\x6e\x65\x6c'](this[_0x380f81(0x2b8)][_0x380f81(0x2a5)]),this[_0x380f81(0x2b8)][_0x380f81(0x22b)]!=null&&(clearTimeout(this['\x70\x6c\x61\x79\x65\x72'][_0x380f81(0x22b)]),this['\x70\x6c\x61\x79\x65\x72'][_0x380f81(0x22b)]=null),this[_0x380f81(0x2b8)][_0x380f81(0x22b)]=setTimeout(function(){var _0x4c0e22=_0x380f81;if(this[_0x4c0e22(0x2b8)]['\x69\x73\x50\x6c\x61\x79\x69\x6e\x67\x4d\x76']&&!this[_0x4c0e22(0x355)])this[_0x4c0e22(0x2b8)][_0x4c0e22(0x21d)](this[_0x4c0e22(0x2b8)][_0x4c0e22(0x272)]);clearTimeout(this['\x70\x6c\x61\x79\x65\x72'][_0x4c0e22(0x22b)]),this[_0x4c0e22(0x2b8)]['\x74\x69\x6d\x65\x72\x49\x64\x4d\x76\x50\x61\x6e\x65\x6c\x53\x74\x61\x74\x65']=null;}['\x62\x69\x6e\x64'](this),0x1388)));}}}});var classToggle=function(_0x3d403a,_0x79c145,_0x4cf092){var _0x54b19e=_0x53579b;if(typeof _0x3d403a!='\x6f\x62\x6a\x65\x63\x74')var _0x4da6c4=$(_0x3d403a);else var _0x4da6c4=_0x3d403a;_0x4da6c4[_0x54b19e(0x349)](_0x79c145)?_0x4da6c4['\x72\x65\x6d\x6f\x76\x65\x43\x6c\x61\x73\x73'](_0x79c145)['\x61\x64\x64\x43\x6c\x61\x73\x73'](_0x4cf092):_0x4da6c4[_0x54b19e(0x34e)](_0x4cf092)[_0x54b19e(0x1c5)](_0x79c145);};
/*-----/js/player/min/mvHtml5Player.min.js / end -----*/

/*-----/js/lib/kakao.min.js / start -----*/

!function(e,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():e.Kakao=t()}(this,function(){return function e(t,n,r){function o(a,s){if(!n[a]){if(!t[a]){var c="function"==typeof require&&require;if(!s&&c)return c(a,!0);if(i)return i(a,!0);throw new Error("Cannot find module '"+a+"'")}var u=n[a]={exports:{}};t[a][0].call(u.exports,function(e){var n=t[a][1][e];return o(n?n:e)},u,u.exports,e,t,n,r)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(e,t){function n(){}var r=t.exports={};r.nextTick=function(){var e="undefined"!=typeof window&&window.setImmediate,t="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(e)return function(e){return window.setImmediate(e)};if(t){var n=[];return window.addEventListener("message",function(e){var t=e.source;if((t===window||null===t)&&"process-tick"===e.data&&(e.stopPropagation(),n.length>0)){var r=n.shift();r()}},!0),function(e){n.push(e),window.postMessage("process-tick","*")}}return function(e){setTimeout(e,0)}}(),r.title="browser",r.browser=!0,r.env={},r.argv=[],r.on=n,r.addListener=n,r.once=n,r.off=n,r.removeListener=n,r.removeAllListeners=n,r.emit=n,r.binding=function(){throw new Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(){throw new Error("process.chdir is not supported")}},{}],2:[function(e,t){t.exports=function(){function t(){return i||(i=u.guardCreateEasyXDM(function(){return new s.Rpc({remote:u.URL.apiRemote},{remote:{request:{}}})})),i}function n(e){return"/v1/api/story/upload/multi"===e}function r(e){if(!c.isString(e))return!1;if(0===e.length||e.length>2048)throw new u.KakaoError("content length should be between 0 and 2048");return!0}function o(e){return c.isArray(e)?c.every(e,function(e){if(!c.isString(e))return!1;if(c.isURL(e))throw new u.KakaoError("url in image_url_list should be a kage url, obtained from '/v1/api/story/upload/multi'.");return!0}):!1}var i,a={},s=e("../vendor/easyXDM.js"),c=e("./util.js"),u=e("./common.js"),l=e("./auth.js");a.request=function(e){function r(){var t={};c.each(e.data,function(e,n){var r=c.isString(e)?e:JSON.stringify(e);t[n]=r});var r={url:a,method:h.api[a].method,headers:{KA:u.KAKAO_AGENT},data:t},i=h.api[a].authType||f.accessToken;return r.headers.Authorization=i(),new Promise(function(t,i){if(n(a)){if(!e.files)throw new u.KakaoError("'files' parameter should be set for "+a);o(e.files).then(function(e){r.file=e,t(r)},function(e){i(e)})}else t(r)})}function o(e){return new Promise(function(t,n){var r=c.map(e,function(e){return u.serializeFile(e).then(function(t){return{name:e.name,type:e.type,str:t}})});Promise.all(r).then(function(e){t({paramName:"file",data:e})},function(e){n(e)})})}function i(e){try{u.logDebug(e);var t=e.message;return JSON.parse(t.responseText)}catch(n){return{code:-777,msg:"Unknown error"}}}e=u.processRules(e,h.request,"API.request");var a=e.url,s=h.api[a].data;return s&&(e.data=u.processRules(e.data,h.api[a].data,"API.request - "+a)),new Promise(function(n,o){r().then(function(r){t().request(r,function(t){e.success(t),e.always(t),n(t)},function(t){var n=i(t);e.fail(n),e.always(n),o(n)})},function(e){o(e)})})},a.createAPIAlias=function(e){return function(t){return t=t||{},c.defaults(t,e),a.request(t)}};var f={accessToken:function(){return"Bearer "+l.getAccessToken()},appKey:function(){return"KakaoAK "+l.getAppKey()}},p={permission:c.isOneOf(["A","F","M"]),enable_share:c.isBoolean,android_exec_param:c.isString,ios_exec_param:c.isString,android_market_param:c.isString,ios_market_param:c.isString},d={secure_resource:c.isBoolean},h={request:{required:{url:function(e){return c.isOneOf(c.keys(h.api))(e)}},optional:{data:c.isObject,files:function(e){return c.passesOneOf([c.isArray,c.isFileList])(e)&&c.every(e,c.passesOneOf([c.isFile,c.isBlob]))},success:c.isFunction,fail:c.isFunction,always:c.isFunction},defaults:{data:{},success:c.emptyFunc,fail:c.emptyFunc,always:c.emptyFunc}},api:{"/v1/user/signup":{method:"post",data:{optional:{properties:c.isObject}}},"/v1/user/unlink":{method:"post"},"/v1/user/me":{method:"post",data:{optional:c.extend({propertyKeys:c.isArray},d)}},"/v1/user/logout":{method:"post",data:{}},"/v1/user/update_profile":{method:"post",data:{required:{properties:c.isObject}}},"/v1/api/talk/profile":{method:"get",data:{optional:d}},"/v1/api/story/profile":{method:"get",data:{optional:d}},"/v1/api/story/isstoryuser":{method:"get"},"/v1/api/story/mystory":{method:"get",data:{required:{id:c.isString}}},"/v1/api/story/mystories":{method:"get",data:{optional:{last_id:c.isString}}},"/v1/api/story/linkinfo":{method:"get",data:{required:{url:c.isString}}},"/v1/api/story/post/note":{method:"post",data:{required:{content:r},optional:p}},"/v1/api/story/post/photo":{method:"post",data:{required:{image_url_list:o},optional:c.extend({content:r},p)}},"/v1/api/story/post/link":{method:"post",data:{required:{link_info:c.isObject},optional:c.extend({content:r},p)}},"/v1/api/story/upload/multi":{method:"post",data:{}},"/v1/emoticon/my_items":{method:"get",data:{},authType:f.appKey},"/v1/emoticon/item_resources":{method:"get",data:{required:{id:c.isString}},authType:f.appKey},"/v1/api/story/delete/mystory":{method:"delete",data:{required:{id:c.isString}}}}};return a.cleanup=function(){i&&(i.destroy(),i=null)},a}()},{"../vendor/easyXDM.js":11,"./auth.js":3,"./common.js":4,"./util.js":9}],3:[function(e,t){t.exports=function(){function t(e,t){return v.extend(e,{remote:y.URL.loginWidget,channel:v.getRandomString()}),y.guardCreateEasyXDM(function(){var n=new m.Rpc(e,{local:{postResponse:t,getKakaoAgent:function(){return y.KAKAO_AGENT}},remote:{setClient:{},setStateToken:{},deleteAuthCookie:{}}});return n.channel=e.channel,n})}function n(e,t){if(!v.has(t,e.stateToken))throw new y.KakaoError("security error: #CST2");var n=t[e.stateToken];return delete t[e.stateToken],delete e.stateToken,n}function r(e,t){e.error?(h.setAccessToken(null),h.setRefreshToken(null)):(h.setAccessToken(e.access_token,t.persistAccessToken),h.setRefreshToken(e.refresh_token,t.persistRefreshToken)),o(e,t)}function o(e,t){y.logDebug(e),e.error?(t.fail(e),t.always(e)):(t.success(e),t.always(e))}function i(e){var t={client_id:y.RUNTIME.appKey};return e.approvalType&&(t.approval_type=e.approvalType),t}function a(e,t){var n=p(t,y.RUNTIME.appKey);v.localStorage.setItem(e,n)}function s(e){var t=v.localStorage.getItem(e);return t?d(t,y.RUNTIME.appKey):null}function c(e){v.localStorage.removeItem(e)}function u(){return M.accessTokenKey||(M.accessTokenKey="kakao_"+f("kat"+y.RUNTIME.appKey)),M.accessTokenKey}function l(){return M.refreshTokenKey||(M.refreshTokenKey="kakao_"+f("krt"+y.RUNTIME.appKey)),M.refreshTokenKey}function f(e){var t=g.MD5(e);return t.toString()}function p(e,t){var n=g.AES.encrypt(e,t);return n.toString()}function d(e,t){var n=g.AES.decrypt(e,t);return n.toString(g.enc.Utf8)}var h={};e("../vendor/es6-promise.js");var m=e("../vendor/easyXDM.js"),g=e("../vendor/CryptoJS.js"),v=e("./util.js"),y=e("./common.js"),w=[],k="kakao_login",b="kakaostory_channel_select",_="width=480, height=520";h.createLoginButton=function(e){function n(e){if(e.stateToken!==c)throw new y.KakaoError("security error: #CST");return delete e.stateToken,e}function o(){c=v.getRandomString(),u.setStateToken(c)}function a(){var t=i(e);u.setClient(e.lang,e.size,t,function(e){var t=s.getElementsByTagName("iframe")[0];t.style.width=e.width+"px",t.style.height=e.height+"px"})}e=y.processRules(e,R.createLoginButton,"Auth.createLoginButton");var s=v.getElement(e.container);if(!s)throw new y.KakaoError("container is required for Kakao login button: pass in element or id");var c="",u=t({container:s},function(t){n(t),r(t,e),o()});o(),a(),w.push(function(){u.destroy(),u=null})};var x,S={};h.login=function(e){function o(){var t=v.extend({redirect_uri:"kakaojs",response_type:"code",state:a,proxy:"easyXDM_Kakao_"+x.channel+"_provider"},i(e));return y.URL.authorize+"?"+v.buildQueryString(t)}e=y.processRules(e,R.login,"Auth.login"),x||(x=t({},function(e){var t=n(e,S);r(e,t)}),w.push(function(){x.destroy(),x=null}));var a=v.getRandomString();S[a]=e,window.open(o(),k,_)};var E,A={};h.selectStoryChannel=function(e){function r(){var t=v.extend({state:a,proxy:"easyXDM_Kakao_"+E.channel+"_provider",token:e.extendedToken||""},i(e));return y.URL.storyChannel+"?"+v.buildQueryString(t)}e=y.processRules(e,R.selectStoryChannel,"Auth.selectStoryChannel"),E||(E=t({},function(e){var t=n(e,A);o(e,t)}),w.push(function(){E.destroy(),E=null}));var a=v.getRandomString();A[a]=e,window.open(r(),b,_)};var O={success:v.emptyFunc,fail:v.emptyFunc,always:v.emptyFunc},T=v.extend({persistAccessToken:!0,persistRefreshToken:!1},O),j={success:v.isFunction,fail:v.isFunction,always:v.isFunction,persistAccessToken:v.isBoolean,persistRefreshToken:v.isBoolean,approvalType:v.isOneOf(["project"])},R={createLoginButton:{required:{container:v.passesOneOf([v.isElement,v.isString])},optional:v.extend({lang:v.isOneOf(["en","kr"]),size:v.isOneOf(["small","medium","large"])},j),defaults:v.extend({lang:"kr",size:"medium"},T)},login:{optional:j,defaults:T},selectStoryChannel:{optional:{extendedToken:v.isString,success:v.isFunction,fail:v.isFunction,always:v.isFunction},defaults:O}};h.logout=function(e){function n(){var n=t({},v.emptyFunc);n.deleteAuthCookie(function(){n.destroy(),e(!0)},function(){n.destroy(),e(!1)})}e=e||v.emptyFunc,y.validate(e,v.isFunction,"Auth.logout"),h.getAccessToken()?Kakao.API.request({url:"/v1/user/logout",always:function(){h.setAccessToken(null),h.setRefreshToken(null),n()}}):n()},h.setAccessToken=function(e,t){y.RUNTIME.accessToken=e,null===e||t===!1?c(u()):a(u(),e)},h.setRefreshToken=function(e,t){y.RUNTIME.refreshToken=e,null!==e&&t===!0?a(l(),e):c(l())},h.getAccessToken=function(){return y.RUNTIME.accessToken||(y.RUNTIME.accessToken=s(u())),y.RUNTIME.accessToken},h.getRefreshToken=function(){return y.RUNTIME.refreshToken||(y.RUNTIME.refreshToken=s(l())),y.RUNTIME.refreshToken};var M={};return h.getAppKey=function(){return y.RUNTIME.appKey},h.getStatus=function(e){y.validate(e,v.isFunction,"Auth.getStatus"),h.getAccessToken()?Kakao.API.request({url:"/v1/user/me",success:function(t){e({status:"connected",user:t})},fail:function(){e({status:"not_connected"})}}):e({status:"not_connected"})},h.cleanup=function(){v.each(w,function(e){e()}),w.length=0},h}()},{"../vendor/CryptoJS.js":10,"../vendor/easyXDM.js":11,"../vendor/es6-promise.js":12,"./common.js":4,"./util.js":9}],4:[function(e,t){t.exports=function(){var t={},n=e("./util.js"),r=e("../vendor/userAgent.js"),o=location.protocol+"//"+location.hostname+(location.port?":"+location.port:"");t.VERSION="1.0.45",t.KAKAO_AGENT="sdk/"+t.VERSION+" os/javascript lang/"+(navigator.userLanguage||navigator.language)+" device/"+navigator.platform.replace(/ /g,"_")+" origin/"+encodeURIComponent(o),t.URL={authorize:"https://kauth.kakao.com/oauth/authorize",loginWidget:"https://kauth.kakao.com/public/widget/login/kakaoLoginWidget.html",apiRemote:"https://kapi.kakao.com/cors/",storyChannel:"https://kauth.kakao.com/story/select_channel",storyShare:"https://story.kakao.com/s/share",channelFollow:"https://story.kakao.com/s/follow",storyIcon:"//dev.kakao.com/sdk/js/resources/story/icon_small.png"},t.RUNTIME={appKey:"",accessToken:"",refreshToken:""},t.DUMMY_KEY="YOUR APP KEY",t.UA=r();var i=function(e){Error.prototype.constructor.apply(this,arguments),this.name="KakaoError",this.message=e};return i.prototype=new Error,t.KakaoError=i,t.isDebug=function(){return!1},t.logDebug=function(e){t.isDebug()&&window.console&&console.log(JSON.stringify(e))},t.validate=function(e,t,n){if(t(e)!==!0)throw new i("Illegal argument for "+n)},t.processRules=function(e,r,o){e=e||{},r.before&&r.before(e),n.isFunction(r.defaults)?n.defaults(e,r.defaults(e)):n.defaults(e,r.defaults);var a=r.required||{},s=n.difference(n.keys(a),n.keys(e));if(s.length)throw new i("Missing required keys: "+s.join(",")+" at "+o);var c=r.optional||{},u=n.extend({},a,c),l=n.difference(n.keys(e),n.keys(u));if(l.length)throw new i("Invalid parameter keys: "+l.join(",")+" at "+o);return n.each(e,function(e,n){var r=u[n];t.validate(e,r,'"'+n+'" in '+o)}),r.after&&r.after(e),e},t.isRetinaDisplay=function(){var e="(-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (-o-min-device-pixel-ratio: 3/2), (min-resolution: 1.5dppx)";return window.devicePixelRatio>1?!0:window.matchMedia&&window.matchMedia(e).matches?!0:!1},t.createHiddenIframe=function(e,t){var n=document.getElementById(e);return null!==n&&n.parentNode.removeChild(n),n=document.createElement("iframe"),n.id=e,n.style.border="none",n.style.display="none",n.style.width="0px",n.style.height="0px",n.src=t,n},t.guardCreateEasyXDM=function(e){try{return e()}catch(t){throw t instanceof TypeError?new i("kakao.js should be loaded from a web server"):new i("EasyXDM -"+t.message)}},t.serializeFile=function(e){return new Promise(function(t,r){"undefined"==typeof FileReader&&r(new i("File API is not supported for this browser."));var o=new FileReader;o.onload=function(e){try{t(n.arrayBufferToString(e.target.result))}catch(e){r(e)}},o.onerror=function(){r(new i("Cannot read file: "+e.name))},o.readAsArrayBuffer(e)})},t}()},{"../vendor/userAgent.js":13,"./util.js":9}],5:[function(e,t){t.exports=function(){var t={},n=e("./util.js"),r=e("./api.js"),o=[];return t.getMyItems=r.createAPIAlias({url:"/v1/emoticon/my_items"}),t.getItemResources=r.createAPIAlias({url:"/v1/emoticon/item_resources",data:{}}),t.cleanup=function(){n.each(o,function(e){e()}),o.length=0},t}()},{"./api.js":2,"./util.js":9}],6:[function(e){!function(t){t.Kakao=t.Kakao||{};var n=t.Kakao,r=e("./util.js"),o=e("./common.js");n.VERSION=o.VERSION,n.Story=e("./story.js"),n.init=function(t){if(o.RUNTIME.appKey)throw new o.KakaoError("Kakao.init: Already initialized.");if(!r.isString(t)||t===o.DUMMY_KEY)throw new o.KakaoError("Kakao.init: App key must be provided");o.RUNTIME.appKey=t,n.Auth=e("./auth.js"),n.API=e("./api.js"),n.Link=e("./link.js"),n.Emoticon=e("./emoticon.js")},n.cleanup=function(){n.Auth&&n.Auth.cleanup(),n.API&&n.API.cleanup(),n.Link&&n.Link.cleanup(),n.Story&&n.Story.cleanup(),n.Emoticon&&n.Emoticon.cleanup(),r.nullify(o.RUNTIME)},window.kakaoAsyncInit&&window.kakaoAsyncInit()}(window)},{"./api.js":2,"./auth.js":3,"./common.js":4,"./emoticon.js":5,"./link.js":7,"./story.js":8,"./util.js":9}],7:[function(e,t){t.exports=function(){function t(e){var t=parseInt(e,10);if(isNaN(t)||80>t)throw new f.KakaoError("Illegal argument for image: width/height should be a number larger than 80");return!0}function n(e,t){var n=new d;return n.forwardable=e.forwardable,l.each(e,function(e,r){var o=w.talkLinkObjects[r];if(o){e=f.processRules(e,o,"parameter '"+r+"' in "+(t||"Link"));var i=o.builder(e);n.objs.push(i)}}),k+"://send?"+l.buildQueryString(n)}function r(e){return{objtype:"label",text:e.text}}function o(e,t){return{objtype:"image",src:t.src,width:t.width,height:t.height,action:s(e,t)}}function i(e,t){return{objtype:"button",text:t.text,action:s(e,t)}}function a(e,t){return{objtype:"link",text:t.text,action:s(e,t)}}function s(e,t){function n(){function e(e){return e.indexOf("://")>-1?e:"http://"+e}return{type:t.type,url:t.url?e(t.url):void 0,auth:t.auth}}function r(){function e(e,t){var n={android:{os:"android"},iphone:{os:"ios",devicetype:"phone"},ipad:{os:"ios",devicetype:"pad"}};e&&(e=f.processRules(e,w.appParams,"execParams in Kakao.Link")),t&&(t=f.processRules(t,w.appParams,"marketParams in Kakao.Link"));var r=[];return l.each(n,function(n,o){var i=l.extend({},n);e&&e[o]&&(i.execparam=l.buildQueryString(e[o],!1)),t&&t[o]&&(i.marketparam=l.buildQueryString(t[o],!1)),(i.execparam||i.marketparam)&&r.push(i)}),r}return{type:"app",url:t.webUrl,actioninfo:e(t.execParams,t.marketParams)}}switch(e){case"web":return n();case"app":return r();default:return void 0}}function c(e,t,n){function r(){if(f.UA.os.android){var e={appkey:f.RUNTIME.appKey,KA:f.KAKAO_AGENT};return"market://details?id=com.kakao.talk&referrer="+JSON.stringify(e)}return f.UA.os.ios?"http://itunes.apple.com/app/id362057947":location.href}var o={urlScheme:e,intentURI:"intent:"+e+"#Intent;package=com.kakao.talk;end;",appName:"KakaoTalk",storeURL:r(),onUnsupportedEnvironment:function(){t(e)}},i=f.UA.os.ios&&f.UA.ua.match(/KAKAOTALK/i);(!n||i)&&(o.onAppMissing=l.emptyFunc()),p(o)}var u={},l=e("./util.js"),f=e("./common.js"),p=e("../vendor/web2app.js"),d=function(){this.appkey=f.RUNTIME.appKey,this.appver="1.0",this.apiver="3.0",this.linkver="3.5",this.extras={KA:f.KAKAO_AGENT},this.objs=[]},h=[];u.createTalkLink=u.createTalkLinkButton=function(e){e=f.processRules(e,w.createTalkLink,"Link.createTalkLink");var t=l.getElement(e.container);if(!t)throw new f.KakaoError("container is required for KakaoTalk Link: pass in element or id");var r=n(e,"Link.createTalkLink"),o=function(){c(r,e.fail,e.installTalk)};l.addEvent(t,"click",o);var i=function(){l.removeEvent(t,"click",o)};h.push(i)},u.sendTalkLink=function(e){e=f.processRules(e,w.talkLink,"Link.sendTalkLink");var t=n(e,"Link.sendTalkLink");c(t,e.fail,e.installTalk)};var m={required:{src:l.isString,width:t,height:t},before:function(e){e.width=parseInt(e.width,10),e.height=parseInt(e.height,10)}},g={url:l.isString,auth:l.isBoolean,type:l.isOneOf(["web","inweb"])},v={type:"web"},y={webUrl:l.isString,execParams:l.isObject,marketParams:l.isObject},w={talkLink:{optional:{label:l.passesOneOf([l.isString,l.isObject]),image:l.isObject,webImage:l.isObject,webButton:l.isObject,webLink:l.isObject,appButton:l.isObject,appLink:l.isObject,fail:l.isFunction,installTalk:l.isBoolean,forwardable:l.isBoolean},before:function(e){l.isString(e.label)&&(e.label={text:e.label})},defaults:{installTalk:!0,forwardable:!1,fail:l.emptyFunc}},talkLinkObjects:{label:{required:{text:l.isString},builder:r},image:l.extend({builder:l.partial(o,null)},m),webImage:l.extend({optional:g,defaults:v,builder:l.partial(o,"web")},m),webButton:{optional:l.extend({text:l.isString},g),defaults:v,builder:l.partial(i,"web")},appButton:{optional:l.extend({text:l.isString},y),builder:l.partial(i,"app")},webLink:{required:{text:l.isString},optional:g,defaults:v,builder:l.partial(a,"web")},appLink:{required:{text:l.isString},optional:y,builder:l.partial(a,"app")}},appParams:{optional:{iphone:l.isObject,ipad:l.isObject,android:l.isObject}}};w.createTalkLink=l.extend({required:{container:l.passesOneOf([l.isElement,l.isString])}},w.talkLink);var k=function(){var e="release";return!f.UA.os.ios||"alpha"!==e&&"sandbox"!==e?"kakaolink":"alphalink"}();return u.cleanup=function(){l.each(h,function(e){e()}),h.length=0},u}()},{"../vendor/web2app.js":14,"./common.js":4,"./util.js":9}],8:[function(e,t){t.exports=function(){function t(e,t){var n={url:e};return t&&(n.text=t),i.extend(n,r()),a.URL.storyShare+"?"+i.buildQueryString(n)}function n(e,t){var n={id:e.id,type:e.type,hideFollower:!e.showFollowerCount,frameId:t};return i.extend(n,r()),a.URL.channelFollow+"?"+i.buildQueryString(n)}function r(){var e={kakao_agent:a.KAKAO_AGENT};return a.RUNTIME.appKey&&(e.app_key=a.RUNTIME.appKey),e}var o={},i=e("./util.js"),a=e("./common.js"),s="kakaostory_social_plugin",c="width=670, height=471",u=[];o.createShareButton=function(e){e=a.processRules(e,f.createShareButton,"Story.createShareButton");var n=i.getElement(e.container);if(!n)throw new a.KakaoError("container is required for KakaoStory share button: pass in element or id");var r=document.createElement("a"),o=document.createElement("img");r.appendChild(o);var l=t(e.url,e.text);r.setAttribute("href",l),r.setAttribute("target","_blank");var p=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1,window.open(l,s,c)};i.addEvent(r,"click",p);var d=function(){i.removeEvent(r,"click",p),n.removeChild(r)};u.push(d),o.onload=function(e){var t,i;n.appendChild(r),a.UA.browser.msie&&parseInt(a.UA.browser.version.major)<=10?(t=o.width,i=o.height):(t=e.target.width,i=e.target.height),o.width=t,o.height=i},o.src=a.URL.storyIcon},o.share=function(e){e=a.processRules(e,f.share,"Story.share");var n=t(e.url,e.text);window.open(n,s,c)};var l=0;o.createFollowButton=function(e){e=a.processRules(e,f.createFollowButton,"Story.createFollowButton");var t=i.getElement(e.container);if(!t)throw new a.KakaoError("container is required for KakaoStory follow button: pass in element or id");var r=document.createElement("iframe"),o=l++;r.src=n(e,o),r.setAttribute("frameborder","0"),r.setAttribute("marginwidth","0"),r.setAttribute("marginheight","0"),r.setAttribute("scrolling","no");var s=e.showFollowerCount&&"horizontal"===e.type?85:59,c=e.showFollowerCount&&"vertical"===e.type?46:20;r.style.width=s+"px",r.style.height=c+"px";var p=function(e){if(e.data&&/\.kakao\.com$/.test(e.origin)){var t=e.data.split(","),n=parseInt(t[0],10),i=parseInt(t[1],10),a=parseInt(t[2],10);if(n!==o)return;s!==i&&(s=i,r.style.width=i+"px"),c!==a&&(c=a,r.style.height=a+"px")}};t.appendChild(r),i.addEvent(window,"message",p);var d=function(){i.removeEvent(window,"message",p),t.removeChild(r)};u.push(d)};var f={createShareButton:{required:{container:i.passesOneOf([i.isElement,i.isString])},optional:{url:i.isString,text:i.isString},defaults:function(e){var t=i.getElement(e.container);return t?{url:t.getAttribute("data-url")||location.href}:null}},share:{optional:{url:i.isString,text:i.isString},defaults:{url:location.href}},createFollowButton:{required:{container:i.passesOneOf([i.isElement,i.isString]),id:i.isString},optional:{type:i.isOneOf(["horizontal","vertical"]),showFollowerCount:i.isBoolean},defaults:function(e){var t=i.getElement(e.container);if(t){var n={type:t.getAttribute("data-type")||"horizontal",showFollowerCount:"false"!==t.getAttribute("data-show-follower-count")},r=t.getAttribute("data-id");return r&&(n.id=r),n}return null},after:function(e){"@"!==e.id.substr(0,1)&&(e.id="@"+e.id)}}};return o.cleanup=function(){i.each(u,function(e){e()}),u.length=0},o}()},{"./common.js":4,"./util.js":9}],9:[function(e,t){t.exports=function(){var e={},t={},n=Array.prototype,r=Object.prototype,o=n.slice,i=n.concat,a=r.toString,s=r.hasOwnProperty,c=n.forEach,u=n.map,l=n.filter,f=n.every,p=n.some,d=n.indexOf,h=Array.isArray,m=Object.keys,g=e.each=function(n,r,o){if(null==n)return n;if(c&&n.forEach===c)n.forEach(r,o);else if(n.length===+n.length){for(var i=0,a=n.length;a>i;i++)if(r.call(o,n[i],i,n)===t)return}else for(var s=e.keys(n),i=0,a=s.length;a>i;i++)if(r.call(o,n[s[i]],s[i],n)===t)return;return n};e.map=function(e,t,n){var r=[];return null==e?r:u&&e.map===u?e.map(t,n):(g(e,function(e,o,i){r.push(t.call(n,e,o,i))}),r)},e.filter=function(e,t,n){var r=[];return null==e?r:l&&e.filter===l?e.filter(t,n):(g(e,function(e,o,i){t.call(n,e,o,i)&&r.push(e)}),r)},e.every=function(n,r,o){r||(r=e.identity);var i=!0;return null==n?i:f&&n.every===f?n.every(r,o):(g(n,function(e,n,a){return(i=i&&r.call(o,e,n,a))?void 0:t}),!!i)};var v=e.any=function(n,r,o){r||(r=e.identity);var i=!1;return null==n?i:p&&n.some===p?n.some(r,o):(g(n,function(e,n,a){return i||(i=r.call(o,e,n,a))?t:void 0}),!!i)};return e.contains=function(e,t){return null==e?!1:d&&e.indexOf===d?-1!=e.indexOf(t):v(e,function(e){return e===t})},e.difference=function(t){var r=i.apply(n,o.call(arguments,1));return e.filter(t,function(t){return!e.contains(r,t)})},e.partial=function(t){var n=o.call(arguments,1);return function(){for(var r=0,o=n.slice(),i=0,a=o.length;a>i;i++)o[i]===e&&(o[i]=arguments[r++]);for(;r<arguments.length;)o.push(arguments[r++]);return t.apply(this,o)}},e.after=function(e,t){return function(){return--e<1?t.apply(this,arguments):void 0}},e.keys=function(t){if(!e.isObject(t))return[];if(m)return m(t);var n=[];for(var r in t)e.has(t,r)&&n.push(r);return n},e.extend=function(e){return g(o.call(arguments,1),function(t){if(t)for(var n in t)e[n]=t[n]}),e},e.defaults=function(e){return g(o.call(arguments,1),function(t){if(t)for(var n in t)void 0===e[n]&&(e[n]=t[n])}),e},e.isElement=function(e){return!(!e||1!==e.nodeType)},e.isArray=h||function(e){return"[object Array]"==a.call(e)},e.isObject=function(e){return e===Object(e)},g(["Arguments","Function","String","Number","Date","RegExp","Blob","File","FileList"],function(t){e["is"+t]=function(e){return a.call(e)=="[object "+t+"]"}}),e.isBoolean=function(e){return e===!0||e===!1||"[object Boolean]"==a.call(e)},e.has=function(e,t){return s.call(e,t)},e.identity=function(e){return e},e.emptyFunc=function(){},e.getElement=function(t){return e.isElement(t)?t:e.isString(t)?document.querySelector(t):null},e.addEvent=function(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent&&e.attachEvent("on"+t,n)},e.removeEvent=function(e,t,n){e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent&&e.detachEvent("on"+t,n)},e.buildQueryString=function(t,n){var r=[];for(var o in t)if(t.hasOwnProperty(o)){var i=t[o];e.isObject(i)&&(i=JSON.stringify(i));var a=n===!1?o:encodeURIComponent(o),s=n===!1?i:encodeURIComponent(i);r.push(a+"="+s)}return r.join("&")},e.getRandomString=function(){return Math.random().toString(36).slice(2)},e.nullify=function(t){e.each(t,function(e,n){t[n]=null})},e.isOneOf=function(t){return e.partial(e.contains,t)},e.passesOneOf=function(t){if(!e.isArray(t))throw new Error("validators should be an Array");return function(n){return e.any(t,function(e){return e(n)})}},e.isURL=function(e){var t=/(http|ftp|https):\/\/[\w-]+(\.[\w-]+)+([\w.,@?^=%&amp;:\/~+#-]*[\w@?^=%&amp;\/~+#-])?/;return t.test(e)},e.arrayBufferToString=function(e){var t,n,r,o="",i=new Uint8Array(e),a=i.length,s=Math.pow(2,16);for(t=0;a>t;t+=s)n=Math.min(s,a-t),r=i.subarray(t,t+n),o+=String.fromCharCode.apply(null,r);return o},e.localStorage=function(){var e={_data:{},setItem:function(e,t){return this._data[e]=String(t)},getItem:function(e){return this._data.hasOwnProperty(e)?this._data[e]:null},removeItem:function(e){return delete this._data[e]},clear:function(){return this._data={}}};try{return"localStorage"in window?window.localStorage:e}catch(t){return e}}(),e}()},{}],10:[function(e,t){t.exports=function(){var e=e||function(e,t){var n={},r=n.lib={},o=function(){},i=r.Base={extend:function(e){o.prototype=this;var t=new o;return e&&t.mixIn(e),t.hasOwnProperty("init")||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},a=r.WordArray=i.extend({init:function(e,n){e=this.words=e||[],this.sigBytes=n!=t?n:4*e.length},toString:function(e){return(e||c).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes;if(e=e.sigBytes,this.clamp(),r%4)for(var o=0;e>o;o++)t[r+o>>>2]|=(n[o>>>2]>>>24-8*(o%4)&255)<<24-8*((r+o)%4);else if(65535<n.length)for(o=0;e>o;o+=4)t[r+o>>>2]=n[o>>>2];else t.push.apply(t,n);return this.sigBytes+=e,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-8*(n%4),t.length=e.ceil(n/4)},clone:function(){var e=i.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var n=[],r=0;t>r;r+=4)n.push(4294967296*e.random()|0);return new a.init(n,t)}}),s=n.enc={},c=s.Hex={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;e>r;r++){var o=t[r>>>2]>>>24-8*(r%4)&255;n.push((o>>>4).toString(16)),n.push((15&o).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;t>r;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-4*(r%8);return new a.init(n,t/2)}},u=s.Latin1={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;e>r;r++)n.push(String.fromCharCode(t[r>>>2]>>>24-8*(r%4)&255));return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;t>r;r++)n[r>>>2]|=(255&e.charCodeAt(r))<<24-8*(r%4);return new a.init(n,t)}},l=s.Utf8={stringify:function(e){try{return decodeURIComponent(escape(u.stringify(e)))}catch(t){throw Error("Malformed UTF-8 data")}},parse:function(e){return u.parse(unescape(encodeURIComponent(e)))}},f=r.BufferedBlockAlgorithm=i.extend({reset:function(){this._data=new a.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=l.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n=this._data,r=n.words,o=n.sigBytes,i=this.blockSize,s=o/(4*i),s=t?e.ceil(s):e.max((0|s)-this._minBufferSize,0);if(t=s*i,o=e.min(4*t,o),t){for(var c=0;t>c;c+=i)this._doProcessBlock(r,c);c=r.splice(0,t),n.sigBytes-=o}return new a.init(c,o)},clone:function(){var e=i.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});r.Hasher=f.extend({cfg:i.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){f.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,n){return new e.init(n).finalize(t)}},_createHmacHelper:function(e){return function(t,n){return new p.HMAC.init(e,n).finalize(t)}}});var p=n.algo={};return n}(Math);return function(){var t=e,n=t.lib.WordArray;t.enc.Base64={stringify:function(e){var t=e.words,n=e.sigBytes,r=this._map;e.clamp(),e=[];for(var o=0;n>o;o+=3)for(var i=(t[o>>>2]>>>24-8*(o%4)&255)<<16|(t[o+1>>>2]>>>24-8*((o+1)%4)&255)<<8|t[o+2>>>2]>>>24-8*((o+2)%4)&255,a=0;4>a&&n>o+.75*a;a++)e.push(r.charAt(i>>>6*(3-a)&63));if(t=r.charAt(64))for(;e.length%4;)e.push(t);return e.join("")},parse:function(e){var t=e.length,r=this._map,o=r.charAt(64);o&&(o=e.indexOf(o),-1!=o&&(t=o));for(var o=[],i=0,a=0;t>a;a++)if(a%4){var s=r.indexOf(e.charAt(a-1))<<2*(a%4),c=r.indexOf(e.charAt(a))>>>6-2*(a%4);o[i>>>2]|=(s|c)<<24-8*(i%4),i++}return n.create(o,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),function(t){function n(e,t,n,r,o,i,a){return e=e+(t&n|~t&r)+o+a,(e<<i|e>>>32-i)+t}function r(e,t,n,r,o,i,a){return e=e+(t&r|n&~r)+o+a,(e<<i|e>>>32-i)+t}function o(e,t,n,r,o,i,a){return e=e+(t^n^r)+o+a,(e<<i|e>>>32-i)+t}function i(e,t,n,r,o,i,a){return e=e+(n^(t|~r))+o+a,(e<<i|e>>>32-i)+t}for(var a=e,s=a.lib,c=s.WordArray,u=s.Hasher,s=a.algo,l=[],f=0;64>f;f++)l[f]=4294967296*t.abs(t.sin(f+1))|0;s=s.MD5=u.extend({_doReset:function(){this._hash=new c.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var a=0;16>a;a++){var s=t+a,c=e[s];e[s]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}var a=this._hash.words,s=e[t+0],c=e[t+1],u=e[t+2],f=e[t+3],p=e[t+4],d=e[t+5],h=e[t+6],m=e[t+7],g=e[t+8],v=e[t+9],y=e[t+10],w=e[t+11],k=e[t+12],b=e[t+13],_=e[t+14],x=e[t+15],S=a[0],E=a[1],A=a[2],O=a[3],S=n(S,E,A,O,s,7,l[0]),O=n(O,S,E,A,c,12,l[1]),A=n(A,O,S,E,u,17,l[2]),E=n(E,A,O,S,f,22,l[3]),S=n(S,E,A,O,p,7,l[4]),O=n(O,S,E,A,d,12,l[5]),A=n(A,O,S,E,h,17,l[6]),E=n(E,A,O,S,m,22,l[7]),S=n(S,E,A,O,g,7,l[8]),O=n(O,S,E,A,v,12,l[9]),A=n(A,O,S,E,y,17,l[10]),E=n(E,A,O,S,w,22,l[11]),S=n(S,E,A,O,k,7,l[12]),O=n(O,S,E,A,b,12,l[13]),A=n(A,O,S,E,_,17,l[14]),E=n(E,A,O,S,x,22,l[15]),S=r(S,E,A,O,c,5,l[16]),O=r(O,S,E,A,h,9,l[17]),A=r(A,O,S,E,w,14,l[18]),E=r(E,A,O,S,s,20,l[19]),S=r(S,E,A,O,d,5,l[20]),O=r(O,S,E,A,y,9,l[21]),A=r(A,O,S,E,x,14,l[22]),E=r(E,A,O,S,p,20,l[23]),S=r(S,E,A,O,v,5,l[24]),O=r(O,S,E,A,_,9,l[25]),A=r(A,O,S,E,f,14,l[26]),E=r(E,A,O,S,g,20,l[27]),S=r(S,E,A,O,b,5,l[28]),O=r(O,S,E,A,u,9,l[29]),A=r(A,O,S,E,m,14,l[30]),E=r(E,A,O,S,k,20,l[31]),S=o(S,E,A,O,d,4,l[32]),O=o(O,S,E,A,g,11,l[33]),A=o(A,O,S,E,w,16,l[34]),E=o(E,A,O,S,_,23,l[35]),S=o(S,E,A,O,c,4,l[36]),O=o(O,S,E,A,p,11,l[37]),A=o(A,O,S,E,m,16,l[38]),E=o(E,A,O,S,y,23,l[39]),S=o(S,E,A,O,b,4,l[40]),O=o(O,S,E,A,s,11,l[41]),A=o(A,O,S,E,f,16,l[42]),E=o(E,A,O,S,h,23,l[43]),S=o(S,E,A,O,v,4,l[44]),O=o(O,S,E,A,k,11,l[45]),A=o(A,O,S,E,x,16,l[46]),E=o(E,A,O,S,u,23,l[47]),S=i(S,E,A,O,s,6,l[48]),O=i(O,S,E,A,m,10,l[49]),A=i(A,O,S,E,_,15,l[50]),E=i(E,A,O,S,d,21,l[51]),S=i(S,E,A,O,k,6,l[52]),O=i(O,S,E,A,f,10,l[53]),A=i(A,O,S,E,y,15,l[54]),E=i(E,A,O,S,c,21,l[55]),S=i(S,E,A,O,g,6,l[56]),O=i(O,S,E,A,x,10,l[57]),A=i(A,O,S,E,h,15,l[58]),E=i(E,A,O,S,b,21,l[59]),S=i(S,E,A,O,p,6,l[60]),O=i(O,S,E,A,w,10,l[61]),A=i(A,O,S,E,u,15,l[62]),E=i(E,A,O,S,v,21,l[63]);
a[0]=a[0]+S|0,a[1]=a[1]+E|0,a[2]=a[2]+A|0,a[3]=a[3]+O|0},_doFinalize:function(){var e=this._data,n=e.words,r=8*this._nDataBytes,o=8*e.sigBytes;n[o>>>5]|=128<<24-o%32;var i=t.floor(r/4294967296);for(n[(o+64>>>9<<4)+15]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),n[(o+64>>>9<<4)+14]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),e.sigBytes=4*(n.length+1),this._process(),e=this._hash,n=e.words,r=0;4>r;r++)o=n[r],n[r]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8);return e},clone:function(){var e=u.clone.call(this);return e._hash=this._hash.clone(),e}}),a.MD5=u._createHelper(s),a.HmacMD5=u._createHmacHelper(s)}(Math),function(){var t=e,n=t.lib,r=n.Base,o=n.WordArray,n=t.algo,i=n.EvpKDF=r.extend({cfg:r.extend({keySize:4,hasher:n.MD5,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var n=this.cfg,r=n.hasher.create(),i=o.create(),a=i.words,s=n.keySize,n=n.iterations;a.length<s;){c&&r.update(c);var c=r.update(e).finalize(t);r.reset();for(var u=1;n>u;u++)c=r.finalize(c),r.reset();i.concat(c)}return i.sigBytes=4*s,i}});t.EvpKDF=function(e,t,n){return i.create(n).compute(e,t)}}(),e.lib.Cipher||function(t){var n=e,r=n.lib,o=r.Base,i=r.WordArray,a=r.BufferedBlockAlgorithm,s=n.enc.Base64,c=n.algo.EvpKDF,u=r.Cipher=a.extend({cfg:o.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,n){this.cfg=this.cfg.extend(n),this._xformMode=e,this._key=t,this.reset()},reset:function(){a.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(e){return{encrypt:function(t,n,r){return("string"==typeof n?m:h).encrypt(e,t,n,r)},decrypt:function(t,n,r){return("string"==typeof n?m:h).decrypt(e,t,n,r)}}}});r.StreamCipher=u.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var l=n.mode={},f=function(e,n,r){var o=this._iv;o?this._iv=t:o=this._prevBlock;for(var i=0;r>i;i++)e[n+i]^=o[i]},p=(r.BlockCipherMode=o.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}})).extend();p.Encryptor=p.extend({processBlock:function(e,t){var n=this._cipher,r=n.blockSize;f.call(this,e,t,r),n.encryptBlock(e,t),this._prevBlock=e.slice(t,t+r)}}),p.Decryptor=p.extend({processBlock:function(e,t){var n=this._cipher,r=n.blockSize,o=e.slice(t,t+r);n.decryptBlock(e,t),f.call(this,e,t,r),this._prevBlock=o}}),l=l.CBC=p,p=(n.pad={}).Pkcs7={pad:function(e,t){for(var n=4*t,n=n-e.sigBytes%n,r=n<<24|n<<16|n<<8|n,o=[],a=0;n>a;a+=4)o.push(r);n=i.create(o,n),e.concat(n)},unpad:function(e){e.sigBytes-=255&e.words[e.sigBytes-1>>>2]}},r.BlockCipher=u.extend({cfg:u.cfg.extend({mode:l,padding:p}),reset:function(){u.reset.call(this);var e=this.cfg,t=e.iv,e=e.mode;if(this._xformMode==this._ENC_XFORM_MODE)var n=e.createEncryptor;else n=e.createDecryptor,this._minBufferSize=1;this._mode=n.call(e,this,t&&t.words)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else t=this._process(!0),e.unpad(t);return t},blockSize:4});var d=r.CipherParams=o.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),l=(n.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext;return e=e.salt,(e?i.create([1398893684,1701076831]).concat(e).concat(t):t).toString(s)},parse:function(e){e=s.parse(e);var t=e.words;if(1398893684==t[0]&&1701076831==t[1]){var n=i.create(t.slice(2,4));t.splice(0,4),e.sigBytes-=16}return d.create({ciphertext:e,salt:n})}},h=r.SerializableCipher=o.extend({cfg:o.extend({format:l}),encrypt:function(e,t,n,r){r=this.cfg.extend(r);var o=e.createEncryptor(n,r);return t=o.finalize(t),o=o.cfg,d.create({ciphertext:t,key:n,iv:o.iv,algorithm:e,mode:o.mode,padding:o.padding,blockSize:e.blockSize,formatter:r.format})},decrypt:function(e,t,n,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),e.createDecryptor(n,r).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),n=(n.kdf={}).OpenSSL={execute:function(e,t,n,r){return r||(r=i.random(8)),e=c.create({keySize:t+n}).compute(e,r),n=i.create(e.words.slice(t),4*n),e.sigBytes=4*t,d.create({key:e,iv:n,salt:r})}},m=r.PasswordBasedCipher=h.extend({cfg:h.cfg.extend({kdf:n}),encrypt:function(e,t,n,r){return r=this.cfg.extend(r),n=r.kdf.execute(n,e.keySize,e.ivSize),r.iv=n.iv,e=h.encrypt.call(this,e,t,n.key,r),e.mixIn(n),e},decrypt:function(e,t,n,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),n=r.kdf.execute(n,e.keySize,e.ivSize,t.salt),r.iv=n.iv,h.decrypt.call(this,e,t,n.key,r)}})}(),function(){for(var t=e,n=t.lib.BlockCipher,r=t.algo,o=[],i=[],a=[],s=[],c=[],u=[],l=[],f=[],p=[],d=[],h=[],m=0;256>m;m++)h[m]=128>m?m<<1:m<<1^283;for(var g=0,v=0,m=0;256>m;m++){var y=v^v<<1^v<<2^v<<3^v<<4,y=y>>>8^255&y^99;o[g]=y,i[y]=g;var w=h[g],k=h[w],b=h[k],_=257*h[y]^16843008*y;a[g]=_<<24|_>>>8,s[g]=_<<16|_>>>16,c[g]=_<<8|_>>>24,u[g]=_,_=16843009*b^65537*k^257*w^16843008*g,l[y]=_<<24|_>>>8,f[y]=_<<16|_>>>16,p[y]=_<<8|_>>>24,d[y]=_,g?(g=w^h[h[h[b^w]]],v^=h[h[v]]):g=v=1}var x=[0,1,2,4,8,16,32,64,128,27,54],r=r.AES=n.extend({_doReset:function(){for(var e=this._key,t=e.words,n=e.sigBytes/4,e=4*((this._nRounds=n+6)+1),r=this._keySchedule=[],i=0;e>i;i++)if(n>i)r[i]=t[i];else{var a=r[i-1];i%n?n>6&&4==i%n&&(a=o[a>>>24]<<24|o[a>>>16&255]<<16|o[a>>>8&255]<<8|o[255&a]):(a=a<<8|a>>>24,a=o[a>>>24]<<24|o[a>>>16&255]<<16|o[a>>>8&255]<<8|o[255&a],a^=x[i/n|0]<<24),r[i]=r[i-n]^a}for(t=this._invKeySchedule=[],n=0;e>n;n++)i=e-n,a=n%4?r[i]:r[i-4],t[n]=4>n||4>=i?a:l[o[a>>>24]]^f[o[a>>>16&255]]^p[o[a>>>8&255]]^d[o[255&a]]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,a,s,c,u,o)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,l,f,p,d,i),n=e[t+1],e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,r,o,i,a,s){for(var c=this._nRounds,u=e[t]^n[0],l=e[t+1]^n[1],f=e[t+2]^n[2],p=e[t+3]^n[3],d=4,h=1;c>h;h++)var m=r[u>>>24]^o[l>>>16&255]^i[f>>>8&255]^a[255&p]^n[d++],g=r[l>>>24]^o[f>>>16&255]^i[p>>>8&255]^a[255&u]^n[d++],v=r[f>>>24]^o[p>>>16&255]^i[u>>>8&255]^a[255&l]^n[d++],p=r[p>>>24]^o[u>>>16&255]^i[l>>>8&255]^a[255&f]^n[d++],u=m,l=g,f=v;m=(s[u>>>24]<<24|s[l>>>16&255]<<16|s[f>>>8&255]<<8|s[255&p])^n[d++],g=(s[l>>>24]<<24|s[f>>>16&255]<<16|s[p>>>8&255]<<8|s[255&u])^n[d++],v=(s[f>>>24]<<24|s[p>>>16&255]<<16|s[u>>>8&255]<<8|s[255&l])^n[d++],p=(s[p>>>24]<<24|s[u>>>16&255]<<16|s[l>>>8&255]<<8|s[255&f])^n[d++],e[t]=m,e[t+1]=g,e[t+2]=v,e[t+3]=p},keySize:8});t.AES=n._createHelper(r)}(),e}()},{}],11:[function(e,t){t.exports=function(){return function(e,t,n,r,o,i){function a(e,t){var n=typeof e[t];return"function"==n||!("object"!=n||!e[t])||"unknown"==n}function s(e,t){return!("object"!=typeof e[t]||!e[t])}function c(e){return"[object Array]"===Object.prototype.toString.call(e)}function u(){var e="Shockwave Flash",t="application/x-shockwave-flash";if(!w(navigator.plugins)&&"object"==typeof navigator.plugins[e]){var n=navigator.plugins[e].description;n&&!w(navigator.mimeTypes)&&navigator.mimeTypes[t]&&navigator.mimeTypes[t].enabledPlugin&&(T=n.match(/\d+/g))}if(!T){var r;try{r=new ActiveXObject("ShockwaveFlash.ShockwaveFlash"),T=Array.prototype.slice.call(r.GetVariable("$version").match(/(\d+),(\d+),(\d+),(\d+)/),1),r=null}catch(o){}}if(!T)return!1;var i=parseInt(T[0],10),a=parseInt(T[1],10);return j=i>9&&a>0,!0}function l(){if(!H){H=!0;for(var e=0;e<X.length;e++)X[e]();X.length=0}}function f(e,t){return H?(e.call(t),void 0):(X.push(function(){e.call(t)}),void 0)}function p(){var e=parent;if(""!==N)for(var t=0,n=N.split(".");t<n.length;t++)e=e[n[t]];return e.easyXDM}function d(t){return e.easyXDM=U,N=t,N&&(D="easyXDM_"+N.replace(".","_")+"_"),P}function h(e){return e.match(F)[3]}function m(e){return e.match(F)[4]||""}function g(e){var t=e.toLowerCase().match(F),n=t[2],r=t[3],o=t[4]||"";return("http:"==n&&":80"==o||"https:"==n&&":443"==o)&&(o=""),n+"//"+r+o}function v(e){if(e=e.replace(L,"$1/"),!e.match(/^(http||https):\/\//)){var t="/"===e.substring(0,1)?"":n.pathname;"/"!==t.substring(t.length-1)&&(t=t.substring(0,t.lastIndexOf("/")+1)),e=n.protocol+"//"+n.host+t+e}for(;K.test(e);)e=e.replace(K,"");return e}function y(e,t){var n="",r=e.indexOf("#");-1!==r&&(n=e.substring(r),e=e.substring(0,r));var o=[];for(var a in t)t.hasOwnProperty(a)&&o.push(a+"="+i(t[a]));return e+(z?"#":-1==e.indexOf("?")?"?":"&")+o.join("&")+n}function w(e){return"undefined"==typeof e}function k(e,t,n){var r;for(var o in t)t.hasOwnProperty(o)&&(o in e?(r=t[o],"object"==typeof r?k(e[o],r,n):n||(e[o]=t[o])):e[o]=t[o]);return e}function b(){var e=t.body.appendChild(t.createElement("form")),n=e.appendChild(t.createElement("input"));n.name=D+"TEST"+I,O=n!==e.elements[n.name],t.body.removeChild(e)}function _(e){w(O)&&b();var n;O?n=t.createElement('<iframe name="'+e.props.name+'"/>'):(n=t.createElement("IFRAME"),n.name=e.props.name),n.id=n.name=e.props.name,delete e.props.name,"string"==typeof e.container&&(e.container=t.getElementById(e.container)),e.container||(k(n.style,{position:"absolute",top:"-2000px",left:"0px"}),e.container=t.body);var r=e.props.src;if(e.props.src="javascript:false",k(n,e.props),n.border=n.frameBorder=0,n.allowTransparency=!0,e.container.appendChild(n),e.onLoad&&R(n,"load",e.onLoad),e.usePost){var o,i=e.container.appendChild(t.createElement("form"));if(i.target=n.name,i.action=r,i.method="POST","object"==typeof e.usePost)for(var a in e.usePost)e.usePost.hasOwnProperty(a)&&(O?o=t.createElement('<input name="'+a+'"/>'):(o=t.createElement("INPUT"),o.name=a),o.value=e.usePost[a],i.appendChild(o));i.submit(),i.parentNode.removeChild(i)}else n.src=r;return e.props.src=r,n}function x(e,t){"string"==typeof e&&(e=[e]);for(var n,r=e.length;r--;)if(n=e[r],n=new RegExp("^"==n.substr(0,1)?n:"^"+n.replace(/(\*)/g,".$1").replace(/\?/g,".")+"$"),n.test(t))return!0;return!1}function S(r){var o,i=r.protocol;if(r.isHost=r.isHost||w(W.xdm_p),z=r.hash||!1,r.props||(r.props={}),r.isHost)r.remote=v(r.remote),r.channel=r.channel||"default"+I++,r.secret=Math.random().toString(16).substring(2),w(i)&&(i=g(n.href)==g(r.remote)?"4":a(e,"postMessage")||a(t,"postMessage")?"1":r.swf&&a(e,"ActiveXObject")&&u()?"6":"Gecko"===navigator.product&&"frameElement"in e&&-1==navigator.userAgent.indexOf("WebKit")?"5":r.remoteHelper?"2":"0");else if(r.channel=W.xdm_c.replace(/["'<>\\]/g,""),r.secret=W.xdm_s,r.remote=W.xdm_e.replace(/["'<>\\]/g,""),i=W.xdm_p,r.acl&&!x(r.acl,r.remote))throw new Error("Access denied for "+r.remote);switch(r.protocol=i,i){case"0":if(k(r,{interval:100,delay:2e3,useResize:!0,useParent:!1,usePolling:!1},!0),r.isHost){if(!r.local){for(var s,c=n.protocol+"//"+n.host,l=t.body.getElementsByTagName("img"),f=l.length;f--;)if(s=l[f],s.src.substring(0,c.length)===c){r.local=s.src;break}r.local||(r.local=e)}var p={xdm_c:r.channel,xdm_p:0};r.local===e?(r.usePolling=!0,r.useParent=!0,r.local=n.protocol+"//"+n.host+n.pathname+n.search,p.xdm_e=r.local,p.xdm_pa=1):p.xdm_e=v(r.local),r.container&&(r.useResize=!1,p.xdm_po=1),r.remote=y(r.remote,p)}else k(r,{channel:W.xdm_c,remote:W.xdm_e,useParent:!w(W.xdm_pa),usePolling:!w(W.xdm_po),useResize:r.useParent?!1:r.useResize});o=[new P.stack.HashTransport(r),new P.stack.ReliableBehavior({}),new P.stack.QueueBehavior({encode:!0,maxLength:4e3-r.remote.length}),new P.stack.VerifyBehavior({initiate:r.isHost})];break;case"1":o=[new P.stack.PostMessageTransport(r)];break;case"2":r.isHost&&(r.remoteHelper=v(r.remoteHelper)),o=[new P.stack.NameTransport(r),new P.stack.QueueBehavior,new P.stack.VerifyBehavior({initiate:r.isHost})];break;case"3":o=[new P.stack.NixTransport(r)];break;case"4":o=[new P.stack.SameOriginTransport(r)];break;case"5":o=[new P.stack.FrameElementTransport(r)];break;case"6":T||u(),o=[new P.stack.FlashTransport(r)]}return o.push(new P.stack.QueueBehavior({lazy:r.lazy,remove:!0})),o}function E(e){for(var t,n={incoming:function(e,t){this.up.incoming(e,t)},outgoing:function(e,t){this.down.outgoing(e,t)},callback:function(e){this.up.callback(e)},init:function(){this.down.init()},destroy:function(){this.down.destroy()}},r=0,o=e.length;o>r;r++)t=e[r],k(t,n,!0),0!==r&&(t.down=e[r-1]),r!==o-1&&(t.up=e[r+1]);return t}function A(e){e.up.down=e.down,e.down.up=e.up,e.up=e.down=null}var O,T,j,R,M,B=this,I=Math.floor(1e4*Math.random()),C=Function.prototype,F=/^((http.?:)\/\/([^:\/\s]+)(:\d+)*)/,K=/[\-\w]+\/\.\.\//,L=/([^:])\/\//g,N="",P={},U=e.easyXDM,D="easyXDM_",z=!1;if(a(e,"addEventListener"))R=function(e,t,n){e.addEventListener(t,n,!1)},M=function(e,t,n){e.removeEventListener(t,n,!1)};else{if(!a(e,"attachEvent"))throw new Error("Browser not supported");R=function(e,t,n){e.attachEvent("on"+t,n)},M=function(e,t,n){e.detachEvent("on"+t,n)}}var q,H=!1,X=[];if("readyState"in t?(q=t.readyState,H="complete"==q||~navigator.userAgent.indexOf("AppleWebKit/")&&("loaded"==q||"interactive"==q)):H=!!t.body,!H){if(a(e,"addEventListener"))R(t,"DOMContentLoaded",l);else if(R(t,"readystatechange",function(){"complete"==t.readyState&&l()}),t.documentElement.doScroll&&e===top){var J=function(){if(!H){try{t.documentElement.doScroll("left")}catch(e){return r(J,1),void 0}l()}};J()}R(e,"load",l)}var W=function(e){e=e.substring(1).split("&");for(var t,n={},r=e.length;r--;)t=e[r].split("="),n[t[0]]=o(t[1]);return n}(/xdm_e=/.test(n.search)?n.search:n.hash),Q=function(){var e={},t={a:[1,2,3]},n='{"a":[1,2,3]}';return"undefined"!=typeof JSON&&"function"==typeof JSON.stringify&&JSON.stringify(t).replace(/\s/g,"")===n?JSON:(Object.toJSON&&Object.toJSON(t).replace(/\s/g,"")===n&&(e.stringify=Object.toJSON),"function"==typeof String.prototype.evalJSON&&(t=n.evalJSON(),t.a&&3===t.a.length&&3===t.a[2]&&(e.parse=function(e){return e.evalJSON()})),e.stringify&&e.parse?(Q=function(){return e},e):null)};k(P,{version:"2.4.19.3",query:W,stack:{},apply:k,getJSONObject:Q,whenReady:f,noConflict:d}),P.DomHelper={on:R,un:M,requiresJSON:function(n){s(e,"JSON")||t.write('<script type="text/javascript" src="'+n+'"></script>')}},function(){var e={};P.Fn={set:function(t,n){e[t]=n},get:function(t,n){if(e.hasOwnProperty(t)){var r=e[t];return n&&delete e[t],r}}}}(),P.Socket=function(e){var t=E(S(e).concat([{incoming:function(t,n){e.onMessage(t,n)},callback:function(t){e.onReady&&e.onReady(t)}}])),n=g(e.remote);this.origin=g(e.remote),this.destroy=function(){t.destroy()},this.postMessage=function(e){t.outgoing(e,n)},t.init()},P.Rpc=function(e,t){if(t.local)for(var n in t.local)if(t.local.hasOwnProperty(n)){var r=t.local[n];"function"==typeof r&&(t.local[n]={method:r})}var o=E(S(e).concat([new P.stack.RpcBehavior(this,t),{callback:function(t){e.onReady&&e.onReady(t)}}]));this.origin=g(e.remote),this.destroy=function(){o.destroy()},o.init()},P.stack.SameOriginTransport=function(e){var t,o,i,a;return t={outgoing:function(e,t,n){i(e),n&&n()},destroy:function(){o&&(o.parentNode.removeChild(o),o=null)},onDOMReady:function(){a=g(e.remote),e.isHost?(k(e.props,{src:y(e.remote,{xdm_e:n.protocol+"//"+n.host+n.pathname,xdm_c:e.channel,xdm_p:4}),name:D+e.channel+"_provider"}),o=_(e),P.Fn.set(e.channel,function(e){return i=e,r(function(){t.up.callback(!0)},0),function(e){t.up.incoming(e,a)}})):(i=p().Fn.get(e.channel,!0)(function(e){t.up.incoming(e,a)}),r(function(){t.up.callback(!0)},0))},init:function(){f(t.onDOMReady,t)}}},P.stack.FlashTransport=function(e){function o(e){r(function(){s.up.incoming(e,u)},0)}function a(n){var r=e.swf+"?host="+e.isHost,o="easyXDM_swf_"+Math.floor(1e4*Math.random());P.Fn.set("flash_loaded"+n.replace(/[\-.]/g,"_"),function(){P.stack.FlashTransport[n].swf=l=p.firstChild;for(var e=P.stack.FlashTransport[n].queue,t=0;t<e.length;t++)e[t]();e.length=0}),e.swfContainer?p="string"==typeof e.swfContainer?t.getElementById(e.swfContainer):e.swfContainer:(p=t.createElement("div"),k(p.style,j&&e.swfNoThrottle?{height:"20px",width:"20px",position:"fixed",right:0,top:0}:{height:"1px",width:"1px",position:"absolute",overflow:"hidden",right:0,top:0}),t.body.appendChild(p));var a="callback=flash_loaded"+i(n.replace(/[\-.]/g,"_"))+"&proto="+B.location.protocol+"&domain="+i(h(B.location.href))+"&port="+i(m(B.location.href))+"&ns="+i(N);p.innerHTML="<object height='20' width='20' type='application/x-shockwave-flash' id='"+o+"' data='"+r+"'><param name='allowScriptAccess' value='always'></param><param name='wmode' value='transparent'><param name='movie' value='"+r+"'></param><param name='flashvars' value='"+a+"'></param><embed type='application/x-shockwave-flash' FlashVars='"+a+"' allowScriptAccess='always' wmode='transparent' src='"+r+"' height='1' width='1'></embed></object>"}var s,c,u,l,p;return s={outgoing:function(t,n,r){l.postMessage(e.channel,t.toString()),r&&r()},destroy:function(){try{l.destroyChannel(e.channel)}catch(t){}l=null,c&&(c.parentNode.removeChild(c),c=null)},onDOMReady:function(){u=e.remote,P.Fn.set("flash_"+e.channel+"_init",function(){r(function(){s.up.callback(!0)})}),P.Fn.set("flash_"+e.channel+"_onMessage",o),e.swf=v(e.swf);var t=h(e.swf),i=function(){P.stack.FlashTransport[t].init=!0,l=P.stack.FlashTransport[t].swf,l.createChannel(e.channel,e.secret,g(e.remote),e.isHost),e.isHost&&(j&&e.swfNoThrottle&&k(e.props,{position:"fixed",right:0,top:0,height:"20px",width:"20px"}),k(e.props,{src:y(e.remote,{xdm_e:g(n.href),xdm_c:e.channel,xdm_p:6,xdm_s:e.secret}),name:D+e.channel+"_provider"}),c=_(e))};P.stack.FlashTransport[t]&&P.stack.FlashTransport[t].init?i():P.stack.FlashTransport[t]?P.stack.FlashTransport[t].queue.push(i):(P.stack.FlashTransport[t]={queue:[i]},a(t))},init:function(){f(s.onDOMReady,s)}}},P.stack.PostMessageTransport=function(t){function o(e){if(e.origin)return g(e.origin);if(e.uri)return g(e.uri);if(e.domain)return n.protocol+"//"+e.domain;throw"Unable to retrieve the origin of the event"}function i(e){var n=o(e);n==u&&e.data.substring(0,t.channel.length+1)==t.channel+" "&&a.up.incoming(e.data.substring(t.channel.length+1),n)}var a,s,c,u;return a={outgoing:function(e,n,r){c.postMessage(t.channel+" "+e,n||u),r&&r()},destroy:function(){M(e,"message",i),s&&(c=null,s.parentNode.removeChild(s),s=null)},onDOMReady:function(){if(u=g(t.remote),t.isHost){var o=function(n){n.data==t.channel+"-ready"&&(c="postMessage"in s.contentWindow?s.contentWindow:s.contentWindow.document,M(e,"message",o),R(e,"message",i),r(function(){a.up.callback(!0)},0))};R(e,"message",o),k(t.props,{src:y(t.remote,{xdm_e:g(n.href),xdm_c:t.channel,xdm_p:1}),name:D+t.channel+"_provider"}),s=_(t)}else R(e,"message",i),c="postMessage"in e.parent?e.parent:e.parent.document,c.postMessage(t.channel+"-ready",u),r(function(){a.up.callback(!0)},0)},init:function(){f(a.onDOMReady,a)}}},P.stack.FrameElementTransport=function(o){var i,a,s,c;return i={outgoing:function(e,t,n){s.call(this,e),n&&n()},destroy:function(){a&&(a.parentNode.removeChild(a),a=null)},onDOMReady:function(){c=g(o.remote),o.isHost?(k(o.props,{src:y(o.remote,{xdm_e:g(n.href),xdm_c:o.channel,xdm_p:5}),name:D+o.channel+"_provider"}),a=_(o),a.fn=function(e){return delete a.fn,s=e,r(function(){i.up.callback(!0)},0),function(e){i.up.incoming(e,c)}}):(t.referrer&&g(t.referrer)!=W.xdm_e&&(e.top.location=W.xdm_e),s=e.frameElement.fn(function(e){i.up.incoming(e,c)}),i.up.callback(!0))},init:function(){f(i.onDOMReady,i)}}},P.stack.NameTransport=function(e){function t(t){var n=e.remoteHelper+(s?"#_3":"#_2")+e.channel;c.contentWindow.sendMessage(t,n)}function n(){s?2!==++l&&s||a.up.callback(!0):(t("ready"),a.up.callback(!0))}function o(e){a.up.incoming(e,d)}function i(){p&&r(function(){p(!0)},0)}var a,s,c,u,l,p,d,h;return a={outgoing:function(e,n,r){p=r,t(e)},destroy:function(){c.parentNode.removeChild(c),c=null,s&&(u.parentNode.removeChild(u),u=null)},onDOMReady:function(){s=e.isHost,l=0,d=g(e.remote),e.local=v(e.local),s?(P.Fn.set(e.channel,function(t){s&&"ready"===t&&(P.Fn.set(e.channel,o),n())}),h=y(e.remote,{xdm_e:e.local,xdm_c:e.channel,xdm_p:2}),k(e.props,{src:h+"#"+e.channel,name:D+e.channel+"_provider"}),u=_(e)):(e.remoteHelper=e.remote,P.Fn.set(e.channel,o));var t=function(){var o=c||this;M(o,"load",t),P.Fn.set(e.channel+"_load",i),function a(){"function"==typeof o.contentWindow.sendMessage?n():r(a,50)}()};c=_({props:{src:e.local+"#_4"+e.channel},onLoad:t})},init:function(){f(a.onDOMReady,a)}}},P.stack.HashTransport=function(t){function n(e){if(m){var n=t.remote+"#"+d++ +"_"+e;(c||!v?m.contentWindow:m).location=n}}function o(e){p=e,s.up.incoming(p.substring(p.indexOf("_")+1),y)}function i(){if(h){var e=h.location.href,t="",n=e.indexOf("#");-1!=n&&(t=e.substring(n)),t&&t!=p&&o(t)}}function a(){u=setInterval(i,l)}var s,c,u,l,p,d,h,m,v,y;return s={outgoing:function(e){n(e)},destroy:function(){e.clearInterval(u),(c||!v)&&m.parentNode.removeChild(m),m=null},onDOMReady:function(){if(c=t.isHost,l=t.interval,p="#"+t.channel,d=0,v=t.useParent,y=g(t.remote),c){if(k(t.props,{src:t.remote,name:D+t.channel+"_provider"}),v)t.onLoad=function(){h=e,a(),s.up.callback(!0)};else{var n=0,o=t.delay/50;!function i(){if(++n>o)throw new Error("Unable to reference listenerwindow");try{h=m.contentWindow.frames[D+t.channel+"_consumer"]}catch(e){}h?(a(),s.up.callback(!0)):r(i,50)}()}m=_(t)}else h=e,a(),v?(m=parent,s.up.callback(!0)):(k(t,{props:{src:t.remote+"#"+t.channel+new Date,name:D+t.channel+"_consumer"},onLoad:function(){s.up.callback(!0)}}),m=_(t))},init:function(){f(s.onDOMReady,s)}}},P.stack.ReliableBehavior=function(){var e,t,n=0,r=0,o="";return e={incoming:function(i,a){var s=i.indexOf("_"),c=i.substring(0,s).split(",");i=i.substring(s+1),c[0]==n&&(o="",t&&t(!0)),i.length>0&&(e.down.outgoing(c[1]+","+n+"_"+o,a),r!=c[1]&&(r=c[1],e.up.incoming(i,a)))},outgoing:function(i,a,s){o=i,t=s,e.down.outgoing(r+","+ ++n+"_"+i,a)}}},P.stack.QueueBehavior=function(e){function t(){if(e.remove&&0===s.length)return A(n),void 0;if(!c&&0!==s.length&&!a){c=!0;var o=s.shift();n.down.outgoing(o.data,o.origin,function(e){c=!1,o.callback&&r(function(){o.callback(e)},0),t()})}}var n,a,s=[],c=!0,u="",l=0,f=!1,p=!1;return n={init:function(){w(e)&&(e={}),e.maxLength&&(l=e.maxLength,p=!0),e.lazy?f=!0:n.down.init()},callback:function(e){c=!1;var r=n.up;t(),r.callback(e)},incoming:function(t,r){if(p){var i=t.indexOf("_"),a=parseInt(t.substring(0,i),10);u+=t.substring(i+1),0===a&&(e.encode&&(u=o(u)),n.up.incoming(u,r),u="")}else n.up.incoming(t,r)},outgoing:function(r,o,a){e.encode&&(r=i(r));var c,u=[];if(p){for(;0!==r.length;)c=r.substring(0,l),r=r.substring(c.length),u.push(c);for(;c=u.shift();)s.push({data:u.length+"_"+c,origin:o,callback:0===u.length?a:null})}else s.push({data:r,origin:o,callback:a});f?n.down.init():t()},destroy:function(){a=!0,n.down.destroy()}}},P.stack.VerifyBehavior=function(e){function t(){r=Math.random().toString(16).substring(2),n.down.outgoing(r)}var n,r,o;return n={incoming:function(i,a){var s=i.indexOf("_");-1===s?i===r?n.up.callback(!0):o||(o=i,e.initiate||t(),n.down.outgoing(i)):i.substring(0,s)===o&&n.up.incoming(i.substring(s+1),a)},outgoing:function(e,t,o){n.down.outgoing(r+"_"+e,t,o)},callback:function(){e.initiate&&t()}}},P.stack.RpcBehavior=function(e,t){function n(e){e.jsonrpc="2.0",i.down.outgoing(a.stringify(e))}function r(e,t){var r=Array.prototype.slice;return function(){var o,i=arguments.length,a={method:t};i>0&&"function"==typeof arguments[i-1]?(i>1&&"function"==typeof arguments[i-2]?(o={success:arguments[i-2],error:arguments[i-1]},a.params=r.call(arguments,0,i-2)):(o={success:arguments[i-1]},a.params=r.call(arguments,0,i-1)),u[""+ ++s]=o,a.id=s):a.params=r.call(arguments,0),e.namedParams&&1===a.params.length&&(a.params=a.params[0]),n(a)}}function o(e,t,r,o){if(!r)return t&&n({id:t,error:{code:-32601,message:"Procedure not found."}}),void 0;var i,a;t?(i=function(e){i=C,n({id:t,result:e})},a=function(e,r){a=C;var o={id:t,error:{code:-32099,message:e}};r&&(o.error.data=r),n(o)}):i=a=C,c(o)||(o=[o]);try{var s=r.method.apply(r.scope,o.concat([i,a]));w(s)||i(s)}catch(u){a(u.message)}}var i,a=t.serializer||Q(),s=0,u={};return i={incoming:function(e){var r=a.parse(e);if(r.method)t.handle?t.handle(r,n):o(r.method,r.id,t.local[r.method],r.params);else{var i=u[r.id];r.error?i.error&&i.error(r.error):i.success&&i.success(r.result),delete u[r.id]}},init:function(){if(t.remote)for(var n in t.remote)t.remote.hasOwnProperty(n)&&(e[n]=r(t.remote[n],n));i.down.init()},destroy:function(){for(var n in t.remote)t.remote.hasOwnProperty(n)&&e.hasOwnProperty(n)&&delete e[n];i.down.destroy()}}},B.easyXDM=P}(window,document,location,window.setTimeout,decodeURIComponent,encodeURIComponent),easyXDM.noConflict("Kakao")}()},{}],12:[function(e,t){(function(n,r){(function(){"use strict";function o(e){return"function"==typeof e||"object"==typeof e&&null!==e}function i(e){return"function"==typeof e}function a(e){return"object"==typeof e&&null!==e}function s(e,t){Z[J]=e,Z[J+1]=t,J+=2,2===J&&H()}function c(){var e=n.nextTick,t=n.versions.node.match(/^(?:(\d+)\.)?(?:(\d+)\.)?(\*|\d+)$/);return Array.isArray(t)&&"0"===t[1]&&"10"===t[2]&&(e=setImmediate),function(){e(d)}}function u(){return function(){q(d)}}function l(){var e=0,t=new V(d),n=document.createTextNode("");return t.observe(n,{characterData:!0}),function(){n.data=e=++e%2}}function f(){var e=new MessageChannel;return e.port1.onmessage=d,function(){e.port2.postMessage(0)}}function p(){return function(){setTimeout(d,1)}}function d(){for(var e=0;J>e;e+=2){var t=Z[e],n=Z[e+1];t(n),Z[e]=void 0,Z[e+1]=void 0}J=0}function h(){try{var t=e,n=t("vertx");return q=n.runOnLoop||n.runOnContext,u()}catch(r){return p()}}function m(){}function g(){return new TypeError("You cannot resolve a promise with itself")}function v(){return new TypeError("A promises callback cannot return that same promise.")}function y(e){try{return e.then}catch(t){return rt.error=t,rt}}function w(e,t,n,r){try{e.call(t,n,r)}catch(o){return o}}function k(e,t,n){W(function(e){var r=!1,o=w(n,t,function(n){r||(r=!0,t!==n?x(e,n):E(e,n))},function(t){r||(r=!0,A(e,t))},"Settle: "+(e._label||" unknown promise"));!r&&o&&(r=!0,A(e,o))},e)}function b(e,t){t._state===tt?E(e,t._result):t._state===nt?A(e,t._result):O(t,void 0,function(t){x(e,t)},function(t){A(e,t)})}function _(e,t){if(t.constructor===e.constructor)b(e,t);else{var n=y(t);n===rt?A(e,rt.error):void 0===n?E(e,t):i(n)?k(e,t,n):E(e,t)}}function x(e,t){e===t?A(e,g()):o(t)?_(e,t):E(e,t)}function S(e){e._onerror&&e._onerror(e._result),T(e)}function E(e,t){e._state===et&&(e._result=t,e._state=tt,0!==e._subscribers.length&&W(T,e))}function A(e,t){e._state===et&&(e._state=nt,e._result=t,W(S,e))}function O(e,t,n,r){var o=e._subscribers,i=o.length;e._onerror=null,o[i]=t,o[i+tt]=n,o[i+nt]=r,0===i&&e._state&&W(T,e)}function T(e){var t=e._subscribers,n=e._state;if(0!==t.length){for(var r,o,i=e._result,a=0;a<t.length;a+=3)r=t[a],o=t[a+n],r?M(n,r,o,i):o(i);e._subscribers.length=0}}function j(){this.error=null}function R(e,t){try{return e(t)}catch(n){return ot.error=n,ot}}function M(e,t,n,r){var o,a,s,c,u=i(n);if(u){if(o=R(n,r),o===ot?(c=!0,a=o.error,o=null):s=!0,t===o)return A(t,v()),void 0}else o=r,s=!0;t._state!==et||(u&&s?x(t,o):c?A(t,a):e===tt?E(t,o):e===nt&&A(t,o))}function B(e,t){try{t(function(t){x(e,t)},function(t){A(e,t)})}catch(n){A(e,n)}}function I(e,t){var n=this;n._instanceConstructor=e,n.promise=new e(m),n._validateInput(t)?(n._input=t,n.length=t.length,n._remaining=t.length,n._init(),0===n.length?E(n.promise,n._result):(n.length=n.length||0,n._enumerate(),0===n._remaining&&E(n.promise,n._result))):A(n.promise,n._validationError())}function C(e){return new it(this,e).promise}function F(e){function t(e){x(o,e)}function n(e){A(o,e)}var r=this,o=new r(m);if(!X(e))return A(o,new TypeError("You must pass an array to race.")),o;for(var i=e.length,a=0;o._state===et&&i>a;a++)O(r.resolve(e[a]),void 0,t,n);return o}function K(e){var t=this;if(e&&"object"==typeof e&&e.constructor===t)return e;var n=new t(m);return x(n,e),n}function L(e){var t=this,n=new t(m);return A(n,e),n}function N(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function P(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function U(e){this._id=lt++,this._state=void 0,this._result=void 0,this._subscribers=[],m!==e&&(i(e)||N(),this instanceof U||P(),B(this,e))}function D(){var e;if("undefined"!=typeof r)e=r;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(t){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=e.Promise;(!n||"[object Promise]"!==Object.prototype.toString.call(n.resolve())||n.cast)&&(e.Promise=ft)}var z;z=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)};var q,H,X=z,J=0,W=({}.toString,s),Q="undefined"!=typeof window?window:void 0,Y=Q||{},V=Y.MutationObserver||Y.WebKitMutationObserver,$="undefined"!=typeof n&&"[object process]"==={}.toString.call(n),G="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,Z=new Array(1e3);H=$?c():V?l():G?f():void 0===Q&&"function"==typeof e?h():p();var et=void 0,tt=1,nt=2,rt=new j,ot=new j;I.prototype._validateInput=function(e){return X(e)},I.prototype._validationError=function(){return new Error("Array Methods must be provided an Array")},I.prototype._init=function(){this._result=new Array(this.length)};var it=I;I.prototype._enumerate=function(){for(var e=this,t=e.length,n=e.promise,r=e._input,o=0;n._state===et&&t>o;o++)e._eachEntry(r[o],o)},I.prototype._eachEntry=function(e,t){var n=this,r=n._instanceConstructor;a(e)?e.constructor===r&&e._state!==et?(e._onerror=null,n._settledAt(e._state,t,e._result)):n._willSettleAt(r.resolve(e),t):(n._remaining--,n._result[t]=e)},I.prototype._settledAt=function(e,t,n){var r=this,o=r.promise;o._state===et&&(r._remaining--,e===nt?A(o,n):r._result[t]=n),0===r._remaining&&E(o,r._result)},I.prototype._willSettleAt=function(e,t){var n=this;O(e,void 0,function(e){n._settledAt(tt,t,e)},function(e){n._settledAt(nt,t,e)})};var at=C,st=F,ct=K,ut=L,lt=0,ft=U;U.all=at,U.race=st,U.resolve=ct,U.reject=ut,U.prototype={constructor:U,then:function(e,t){var n=this,r=n._state;if(r===tt&&!e||r===nt&&!t)return this;var o=new this.constructor(m),i=n._result;if(r){var a=arguments[r-1];W(function(){M(r,o,a,i)})}else O(n,o,e,t);return o},"catch":function(e){return this.then(null,e)}};var pt=D,dt={Promise:ft,polyfill:pt};"function"==typeof define&&define.amd?define(function(){return dt}):"undefined"!=typeof t&&t.exports?t.exports=dt:"undefined"!=typeof this&&(this.ES6Promise=dt),pt()}).call(this)}).call(this,e("1YiZ5S"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"1YiZ5S":1}],13:[function(e,t){t.exports=function(){var e=function(e){function t(e){var t={},r=/(dolfin)[ \/]([\w.]+)/.exec(e)||/(edge)[ \/]([\w.]+)/.exec(e)||/(chrome)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(e)||/(webkit)(?:.*version)?[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(e)||["","unknown"];return"webkit"===r[1]?r=/(iphone|ipad|ipod)[\S\s]*os ([\w._\-]+) like/.exec(e)||/(android)[ \/]([\w._\-]+);/.exec(e)||[r[0],"safari",r[2]]:"mozilla"===r[1]?r[1]=/trident/.test(e)?"msie":"firefox":"edge"===r[1]?r[1]="spartan":/polaris|natebrowser|([010|011|016|017|018|019]{3}\d{3,4}\d{4}$)/.test(e)&&(r[1]="polaris"),t[r[1]]=!0,t.name=r[1],t.version=n(r[2]),t}function n(e){var t={},n=e?e.split(/\.|-|_/):["0","0","0"];return t.info=n.join("."),t.major=n[0]||"0",t.minor=n[1]||"0",t.patch=n[2]||"0",t}function r(e){return o(e)?"pc":i(e)?"tablet":a(e)?"mobile":""
}function o(e){return e.match(/linux|windows (nt|98)|macintosh/)&&!e.match(/android|mobile|polaris|lgtelecom|uzard|natebrowser|ktf;|skt;/)?!0:!1}function i(e){return e.match(/ipad/)||e.match(/android/)&&!e.match(/mobi|mini|fennec/)?!0:!1}function a(e){return e.match(/ip(hone|od)|android.+mobile|windows (ce|phone)|blackberry|bb10|symbian|webos|firefox.+fennec|opera m(ob|in)i|polaris|iemobile|lgtelecom|nokia|sonyericsson|dolfin|uzard|natebrowser|ktf;|skt;/)?!0:!1}function s(e){var t={},r=/(iphone|ipad|ipod)[\S\s]*os ([\w._\-]+) like/.exec(e)||/(android)[ \/]([\w._\-]+);/.exec(e)||(/android/.test(e)?["","android","0.0.0"]:!1)||(/polaris|natebrowser|([010|011|016|017|018|019]{3}\d{3,4}\d{4}$)/.test(e)?["","polaris","0.0.0"]:!1)||/(windows)(?: nt | phone(?: os){0,1} | )([\w._\-]+)/.exec(e)||(/(windows)/.test(e)?["","windows","0.0.0"]:!1)||/(mac) os x ([\w._\-]+)/.exec(e)||(/(linux)/.test(e)?["","linux","0.0.0"]:!1)||(/webos/.test(e)?["","webos","0.0.0"]:!1)||/(bada)[ \/]([\w._\-]+)/.exec(e)||(/bada/.test(e)?["","bada","0.0.0"]:!1)||(/(rim|blackberry|bb10)/.test(e)?["","blackberry","0.0.0"]:!1)||["","unknown","0.0.0"];return"iphone"===r[1]||"ipad"===r[1]||"ipod"===r[1]?r[1]="ios":"windows"===r[1]&&"98"===r[2]&&(r[2]="0.98.0"),t[r[1]]=!0,t.name=r[1],t.version=n(r[2]),t}function c(e){var t={},r=/(crios)[ \/]([\w.]+)/.exec(e)||/(daumapps)[ \/]([\w.]+)/.exec(e)||["",""];return r[1]?(t.isApp=!0,t.name=r[1],t.version=n(r[2])):t.isApp=!1,t}return e=(e||window.navigator.userAgent).toString().toLowerCase(),{ua:e,browser:t(e),platform:r(e),os:s(e),app:c(e)}};return e}()},{}],14:[function(e,t){t.exports=function(){function t(e){window.location.href=e}function n(e){var n="function"==typeof e.willInvokeApp?e.willInvokeApp:function(){},i="function"==typeof e.onAppMissing?e.onAppMissing:t,c="function"==typeof e.onUnsupportedEnvironment?e.onUnsupportedEnvironment:function(){};n(),w.android?r()&&e.intentURI&&!e.useUrlScheme?a(e.intentURI):e.storeURL&&o(e.urlScheme,e.storeURL,i):w.ios&&e.storeURL?s(e.urlScheme,e.storeURL,i):setTimeout(function(){c()},100)}function r(){var e=y.browser.chrome&&+y.browser.version.major>=25,t=new RegExp(k.join("|"),"i");return e&&!t.test(y.ua)}function o(e,t,n){i(g,t,n),f(e)}function i(e,t,n){var r=(new Date).getTime();return setTimeout(function(){var o=(new Date).getTime();l()&&e+v>o-r&&n(t)},e)}function a(e){function t(){top.location.href=e}y.browser.chrome?t():setTimeout(t,100)}function s(e,n,r){var o;parseInt(y.os.version.major,10)<8?(o=i(m,n,r),c(o)):(o=t===r?i(h,n,r):i(m,n,r),u(o)),f(e)}function c(e){window.addEventListener("pagehide",function t(){l()&&(clearTimeout(e),window.removeEventListener("pagehide",t))})}function u(e){document.addEventListener("visibilitychange",function t(){l()&&(clearTimeout(e),document.removeEventListener("visibilitychange",t))})}function l(){for(var e=["hidden","webkitHidden"],t=0,n=e.length;n>t;t++)if("undefined"!==document[e[t]])return!document[e[t]];return!0}function f(e){setTimeout(function(){var t=p("appLauncher");t.src=e},100)}function p(e){var t=document.createElement("iframe");return t.id=e,t.style.border="none",t.style.width="0",t.style.height="0",t.style.display="none",t.style.overflow="hidden",document.body.appendChild(t),t}var d=e("./userAgent.js"),h=1e3,m=2e3,g=300,v=100,y=d(),w=y.os,k=["firefox","opr","fb_iab"];return n}()},{"./userAgent.js":13}]},{},[6]),Kakao});
/*-----/js/lib/kakao.min.js / end -----*/

/*-----/js/snackMusic/snackMusic.js / start -----*/
var SnackMusic = {};

SnackMusic.Swipe = {};

SnackMusic.Swipe.selector = ".swiper-container";

SnackMusic.Swipe.swiper = null;

SnackMusic.firstProps = {
	width : 0,
	height : 0
};

SnackMusic.playTrack = function(obj){
	track_id = $(obj).closest("[track_id]").attr("track_id");
	adultCheckVal = parseInt($(obj).closest("[adultCheckVal]").attr("adultCheckVal"));

	if(bugs.string.isEmpty(track_id))
		return null;

	checkAdultParam = {
		adultCheckVal : adultCheckVal,
		loginParams : {
			//popup : true
		}
	};
	if(!bugs.member.checkAdult(checkAdultParam))
		return;

	if($(obj).closest("[adultCheckVal]"))
    adultCheckVal = parseInt($(obj).closest("[adultCheckVal]").attr("adultCheckVal"));

    actview = SnackMusic.getActview(obj)

	bugs.play.tracks({
		trackIds : [track_id],
		autoplay : true,
		miniplay : true,
		index :  $(obj).closest(".btnPlayStop").attr("data") || "",
		adultYN :  $(obj).closest(".btnPlayStop").attr("adult_yn") || "",
        actview : actview
	});
};

SnackMusic.playerStop = function(obj){
	bugs.wiselog.area('snackm_contents_audio_02');
};

SnackMusic.playerPause = function(obj){
	alert("플레이어 일시정지");
};

SnackMusic.openContentLink = function(obj){
	content_link_type = $(obj).closest("[content_link_type]").attr("content_link_type");
	content_link_id = $(obj).closest("[content_link_id]").attr("content_link_id");

	params = {
		open : true	,
		mOpen : true,
		navi : true
	};

	if(content_link_type == "ALBUM"){
		bugs.location.goAlbum(content_link_id, params);
	}
	else if(content_link_type == "ARTIST"){
		bugs.location.goArtist(content_link_id, params);
	}
	else if(content_link_type == "ESALBUM"){
		bugs.location.goEsalbum(content_link_id, params);
	}
	else if(content_link_type == "SPECIAL"){
		bugs.location.goSpecial(content_link_id, params);
	}
};

var sn_sbs_video_list = [];

SnackMusic.viewMusicVideo = function(obj, isMobile){

	if(typeof isMobile == "undefined"){
		isMobile = true;
	}else if(typeof isMobile != "boolean"){
		return;
	}

	bugs_video = $(obj).closest("[bugs_video]").attr("bugs_video");
	usedatafree = $(obj).closest("[usedatafree]").attr("usedatafree")||"N";
	
	youtube_video = $($(obj).closest("[bugs_video]")).find("div[name=youtube_video]").length > 0 ? "Y" : "";
	sbs_video = $($(obj).closest("[bugs_video]")).find("div[name=sbs_video]").length > 0 ? "Y" : "";

	params = {};
	params.mvid = bugs_video;
    params.actview = SnackMusic.getActview(obj)

	if(usedatafree == "Y" && (bugs.string.isEmpty(bugs_video) || !bugs.app.isBugsApp() )){
		if(!bugs.play.checkDatafreeConfirm())
			return;

		params.checkDataFreeConfirm = true;
	}

	if(!bugs.string.isEmpty(bugs_video)){	// 벅스 영상
		bugs.play.video(params);
	} else if(!bugs.string.isEmpty(sbs_video)) {	// SBS 영상
		$(obj).closest("[name=frontImg]").hide();

		sbsVideo = $(obj).closest("[item_type]").find("[name=sbs_video]");
		sbsVideoId = sbsVideo.find("iframe").attr("id");
		sbsVideo.show();

        var controller = new Kollus.VideogatewayController({
            target_window: document.getElementById(sbsVideoId).contentWindow
        });
        
        
        if(bugs.useragent.isIE()){
	        setTimeout(function() {
	            this.play();
	       }.bind(controller), 1000);
        } else {
        	controller.play();
        }
        
        sn_sbs_video_list.push(controller);
        
	} else{	// 유튜브 영상
		$(obj).closest("[name=frontImg]").hide();

		ytVideo = $(obj).closest("[item_type]").find("[name=youtube_video]");
		ytVideo.show();
		id = ytVideo.find("[ytvid]").attr("id");

		var ytpParam = {};
		ytpParam.id = id;
		if(usedatafree == "Y")
			ytpParam.checkDataFreeConfirm = true;

		if(bugs.useragent.isIos() && bugs.useragent.isBugs())
			ytpParam.pauseBugsPlayer = true;

		bugs.play.ytpPlay(ytpParam);
	}

	if(isMobile){
		bugs.wiselog.area('snackm_contents_video_01');
	}else{
		bugs.wiselog.area('snackpc_contents_video_01');
	}

};

SnackMusic.playAllTracks = function(obj){
	trackids = $(obj).closest("[trackids]").attr("trackids");

	if(bugs.string.isEmpty(trackids))
		return null;

	trackArr = trackids.split(",");

    actview = SnackMusic.getActview(obj)

	if(bugs.useragent.isMobile()){
		bugs.app.runTracks(trackArr.join("|"), "전체듣기", true, true, actview);
	}
	else{
		bugs.play.tracks({
			trackIds : trackArr,
			autoplay : true,
			miniplay : true,
			title : "전체듣기",
            actview : actview
		});
	}
};

SnackMusic.playAddTracks = function(obj){
	trackids = $(obj).closest("[trackids]").attr("trackids");
	
	if(bugs.string.isEmpty(trackids))
		return null;
	
	trackArr = trackids.split(",");
	
	bugs.app.addTracks(trackArr.join("|"), "Bugs");
};

SnackMusic.getActview = function(obj){
    actview = null
    for(var i=1;;i++){
        propNm = "actview_" + i;
        if($(obj).closest("[" + propNm + "]").length == 0)
            break;
        if(!actview)
            actview = []
        currVar = $(obj).closest("[" + propNm + "]").attr(propNm)
        style = currVar.substr(0, currVar.indexOf("/"))
        id = currVar.substr(currVar.indexOf("/")+1)
        currActview = {
            id: id,
            style: style
        }
        actview.push(currActview)
    }
    // if(actview){
    //     console.log(actview)
    // }
    return actview
}


SnackMusic.hideAllLayer = function(exceptLayers){
	allLayerSel = "[layer=tracklist], [layer=comments], [layer=link], [layer=linkapp], [layer=modal]";
	if(!bugs.string.isEmpty(exceptLayers)){
		for(var i in exceptLayers.split(","))
			allLayerSel = allLayerSel.replace(exceptLayers.split(",")[i], "except");
	}

	$(allLayerSel).each(function(index){
		SnackMusic.hideLayer($(this).attr("layer"));
	});

	bugs.mplayer.initPlayingAnimation({size: 24, progressColor: "#fa4132", radius: 10.1});
	
	SnackMusic.setBodyScroll(true);
};

SnackMusic.showLayer = function(layers){
	SnackMusic.hideAllLayer(layers);
	for(var i in layers.split(",")){
		layer = layers.split(",")[i];
		$("[layer=" + layer + "]").show();
		SnackMusic.setDispOnLayer(layer, false);
	}

	if(layers == 'tracklist') {
		bugs.mobile.checkPlayAddButton('');
		bugs.mplayer.initPlayingAnimation({size: 21, progressColor: "#fa4132", radius: 9.1});
	}

	SnackMusic.setBodyScroll(false);
};

SnackMusic.hideLayer = function(layers){
	//$("[onlayer=hide]").show();
	for(var i in layers.split(",")){
		layer = layers.split(",")[i];
		$("[layer=" + layer + "]").hide();
		SnackMusic.setDispOnLayer(layer, true);
	}
};

SnackMusic.setDispOnLayer = function(layer, show){
	$("[hideOnLayer]").each(function(index){
		hideOnLayer = $(this).attr("hideOnLayer");
		if(hideOnLayer.indexOf(layer) >= 0){
			if(show)
				$(this).show();
			else
				$(this).hide();
		}
	});
};

SnackMusic.showLink = function(option){

	// option 변수 초기화
	option = option || {isMobile:true ,callback:function(){}};
	if(typeof option.isMobile != "boolean"){
		option.isMobile = true;
	}
	if(typeof option.callback != "function"){
		option.callback = function(){};
	}

	if(bugs.app.isBugsApp()){
		SnackMusic.showLayer("linkapp,modal");
	}
	else{
		$("#selectThisText").removeAttr("readonly");
		if(option.isMobile){
			SnackMusic.showLayer("link,modal");
		}else{
			$("[layer=link]").show();
		}
		$("#selectThisText").select();
		try{
			document.getElementById("selectThisText").setSelectionRange(0, 9999);
		}
		catch(e){}
		$("#selectThisText").attr("readonly", "y");

		option.callback();
	}
};

SnackMusic.shareFacebook = function(){
	//snsParam은 ftl
	bugs.sns.facebook(snsParam);
};

SnackMusic.copyLink = function(link){
	bugs.app.runClipboard(link, "URL이 복사되었습니다.");
};


SnackMusic.initViewer = function(){

	
	if($(SnackMusic.Swipe.selector).length == 0)
		return;


	$("img[data-src]").removeClass("swiper-lazy").addClass("swiper-lazy");
	$(".swiper-slide .innerbox")
		.has("img.swiper-lazy")
		.append("<div class='swiper-lazy-preloader swiper-lazy-preloader-white'></div>");

	swiperParams = {
		lazyLoading: true
	};

	bugsInfo = bugs.app.getBugsAppInfo();
	if(bugsInfo != null && /iphone/i.test(bugsInfo.deviceName)){
		swiperParams.speed = 400;
	}

	SnackMusic.Swipe.swiper = new Swiper(SnackMusic.Swipe.selector, swiperParams);
	SnackMusic.Swipe.swiper.on("slideChangeStart", function(swiper){
		//커버일 때만 클래스 추가
		if(swiper.activeIndex == 0) {
			$(".pgSnackMusic + nav").addClass("cover");
		}
	});
	SnackMusic.Swipe.swiper.on("slideChangeEnd", function(){

		currIdx = $(".swiper-slide-active").index(".swiper-slide");
		if(currIdx != 0)
			$(".pgSnackMusic + nav").removeClass("cover");
		
		
		maxSlide = $(".swiper-slide").length;
		if(currIdx == 1){
			bugs.wiselog.area('snackm_contents_page_02');
		}
		else if(currIdx == maxSlide-2){
			bugs.wiselog.area('snackm_contents_page_03');
		}
		else if(currIdx == maxSlide-1){
			bugs.wiselog.area('snackm_contents_page_04');
		}

		$(".swiper-slide").each(function(index){
			if($(this).attr("class") != "swiper-slide"){
				$(this).find("section").show();
			}
			else{
				$(this).find("section").hide();
			}

			
			if($(this).attr("class") != "swiper-slide-active"){
				ytPlayerId = $(this).find("[ytvid]").attr("id");
				if(ytPlayerId){
					try{
						bugs.play.ytpPause({id:ytPlayerId});
					}
					catch(e){}
				}
				
				// SBS 영상 재생 정지
				for(var i = 0; i < sn_sbs_video_list.length; i++) {
					sn_sbs_video_list[i].pause();
				}
			}
		});

		SnackMusic.makeCurrentYtPlayer();
	});

	
//	SnackMusic.initHtml5VideoPlayer();
	SnackMusic.initYouTube();


};

SnackMusic.getList = function(params, key){
	sendVars = {
		page : params.page
	};
	var uri = "/snack/m/ajax/list";
	if (key != undefined) {
		uri += "?key=" + key;
	}
	url = (g_urlAjax + uri).replace(/http:|https:/i, "");
	$.ajax({
		url : url,
		data : sendVars,
		success : function(data){
			// App 내에서는 key 조작이 불가능하므로 웹, 모바일웹만 고려하면 됨.
			if (key && (!data || data == "")) {
				location.href = g_urlMusic + "/snack/m/list"
			}
			if(params.success)
				params.success(data);
		},
		complete : function(data){
			if(params.complete)
				params.complete(data);
		}
	});
};

SnackMusic.goBugsHome = function(){
	bugs.location.goHome();
};

SnackMusic.goSnack = function(isMobile){
	if(typeof isMobile == "undefined"){
		isMobile = true;
	}else if(typeof isMobile != "boolean"){
		return;
	}
	if(isMobile){
		loc = g_urlMusic + "/snack/m/list";
	}else{
		loc = g_urlMusic + "/snack/list";
	}
	bugs.location.go({url:loc, navi:true});
};

SnackMusic.goSnackView = function(key, isMobile){
	if(typeof isMobile == "undefined"){
		isMobile = false;
	}else if(typeof isMobile != "boolean"){
		return;
	}
	if(isMobile){
		loc = g_urlMusic + "/snack/m/" + key;
	}else{
		loc = g_urlMusic + "/snack/" + key;
	}
	bugs.location.go({url:loc, navi:true});
};

SnackMusic.goMobileSnackList = function(key){
	loc = g_urlMusic + "/snack/m/list?key=" + key;
	bugs.location.go({url:loc, navi:true});
};

SnackMusic.goMobileSnackSeries = function(series_id) {
    loc = g_urlM + "/special/series/" + series_id;
    bugs.location.goWithUrlPattern(loc);
}

SnackMusic.goMoreContents = function(){
	SnackMusic.goSnack();
};

SnackMusic.login = function(){
	bugs.member.login();
};

SnackMusic.logout = function(){
	bugs.member.logout();
};

SnackMusic.nextSlide = function(){
	SnackMusic.Swipe.swiper.slideNext();
};

SnackMusic.prevSlide = function(){
	SnackMusic.Swipe.swiper.slidePrev();
};

SnackMusic.commentInputClick = function(obj){
	if(confirm("로그인 후 이용해 주세요.")){
		bugs.member.login({popup:true});
	}
};

SnackMusic.initHtml5VideoPlayer = function(){

	user_logged = $("[user_logged]").attr("user_logged") == "true";
	user_streaming = $("[user_streaming]").attr("user_streaming") == "true";
	//alert(user_logged + "/" + user_streaming);
	bugs.mvHPlayer.init(user_logged, user_streaming, g_urlMusic);

	$("[name=BugsVideoPlayer]").each(function(index){
		obj_id = $(this).closest("[id]").attr("id");
		bugs_video = $(this).closest("[bugs_video]").attr("bugs_video");
//		url = $(this).closest("[url]").attr("url");
		log_nm = $(this).closest("[log_nm]").attr("log_nm") || null;
		thumb = $(this).closest("[thumb]").attr("thumb") || null;
		//alert(obj_id + " / " + bugs_video + " / " + url + " / " + log_nm + " / " + thumb);
		bugs.mvHPlayer.addPlayer(obj_id,
				bugs_video,
				560,
//				url,
				"embed",
				log_nm,
				thumb
		);
	});
};

SnackMusic.initYouTube = function(){
	bugs.play.ytpInit();
	return null;

	if($("[name=youtube_video]").length == 0)
		return;

	initParams = {};
	if(!bugs.useragent.isIos()){
		initParams.onready = function(){
			$("[ytvid]").each(function(index){
				bugs.play.ytpMake({
					id : $(this).attr("id"),
					vid : $(this).attr("ytvid"),
					width : 560,
					height : 315
				});
			});
		}
	}

	bugs.play.ytpInit(initParams);
};

SnackMusic.setMobileResizeEvent = function(){
	bugs.mobile.setDispOnRotate({
		onRotate : function(){
			try{
				setDispSnackUI();
			}
			catch(e){}
		}
	});
};

SnackMusic.makeCurrentYtPlayer = function(){
	ytArea = $(".swiper-slide-active [name=youtube_video]")
	if(ytArea.length == 0)
		return;

	pinit = ytArea.attr("pinit")||"n";
	if(pinit == "y")
		return;

	vtype = ytArea.find("[vtype]").attr("vtype");
	if(vtype == "api"){
		ytpParams = {
			id : ytArea.find("[ytvid]").attr("id"),
			vid : ytArea.find("[ytvid]").attr("ytvid"),
			width : 560,
			height : 315
		};
		bugs.play.ytpMake(ytpParams);
	}
	else if(vtype == "iframe"){
		iframeTag = ytArea.find("[name=iframe]").val();
		ytArea.append(iframeTag);
	}

	ytArea.attr("pinit", "y");

};

SnackMusic.setBodyScroll = function(turnOn){
	if(turnOn){
		$(window).scrollTop(0);
		$('body').on('scroll touchmove mousewheel', SnackMusic._bodyScrollHandler);
	}
	else{
		$('body').off('scroll touchmove mousewheel', SnackMusic._bodyScrollHandler);
	}
};

SnackMusic._bodyScrollHandler = function(event){
	event.preventDefault();
	event.stopPropagation();
	return false;
}

$(document).ready(function(){
	SnackMusic.setMobileResizeEvent();
});

/*-----/js/snackMusic/snackMusic.js / end -----*/

/*----- / start -----*/

/*-----/js/bugs/bugs.navigator.js / start -----*/

var bugs = bugs||{};

bugs.navigator = {};

bugs.navigator.checkResult = null;

bugs.navigator.hyrendSelect = "a.hyrend";
bugs.navigator.hyrendTargetSelect = "#hyrendContentBody";
bugs.navigator.leftMenuSelect = "#gnb";
bugs.navigator.leftMenuBodySelect = "#gnbBody";
bugs.navigator.leftMenuHandleBtnSelect = "#gnbHandleBtn";
bugs.navigator.headerSelect = "#header";
bugs.navigator.headerHideSelect = "#header .top";
bugs.navigator.footerSelect = "#footer";
bugs.navigator.floatSubMenuSelect = ".floatSubMenu";
bugs.navigator.wholeAreaSelect = "#wrap";
bugs.navigator.contentAreaMinHeight = 500;
bugs.navigator.articleSelecter = "#container";
bugs.navigator.lineBreakSelector = ".lineBreakArea";
bugs.navigator.leftMenuShowCookieNm = "_lm_show";
bugs.navigator.removeLayerSelector = "";
bugs.navigator.resizeImageSelector = "img.resize";
bugs.navigator.pageTitleSelector = "[pagetitle]";
bugs.navigator.leftMenuIdSelector = "[lmid]";
bugs.navigator.landmarkWidth = 1260;
bugs.navigator.leftMenuFolderSelector = "#gnb li[folder]";
bugs.navigator.leftMenuFolderBtnSelector = "#gnb li[folder] .bu";
bugs.navigator.leftMenuFolderCookieNm = "_lm_folder_";
bugs.navigator.lastHyrendCookieNm = "_lh_time_";
bugs.navigator.lastHyrendRefreshInterval = 1000 * 60 * 5;


bugs.navigator.goStateDefaultParams = {
	goTop:true	
};


//항상 유지되야할 이벤트 목록
bugs.navigator.keepEventHandler = {
	"window":{},
	"document":{}
};

bugs.navigator.keepEvents = ["resize", "scroll", "click", "focus", "blur", "dbclick"];

//hyrend unload 
bugs.navigator.hyrendUnloadHandler = {};

//hyrend url change
bugs.navigator.hyrendUrlChangeHandler = {};


bugs.navigator._nowLoading = false; //지금 컨텐츠 로딩중인지, 다중 로드 방지용

bugs.navigator.wasGoState = false;


bugs.navigator.check = function(){
//	if(bugs.navigator.checkResult != null)
//		return bugs.navigator.checkResult;
	
	var checkResult = {};
	checkResult.pushStateEnable = (history.pushState)?true:false;

	trident = navigator.userAgent.match(/Trident\/(\d)/i);
	if( bugs.utils.getIEVersion() > 0 || trident != null)
		checkResult.hyrendEnable = false;
	else
		checkResult.hyrendEnable = true;
	
	if(bugs.navigator.needRefresh())
		checkResult.hyrendEnable = false;
	
	
	availBrowsers = navigator.userAgent.match(/chrome/i) || null;
	if(!availBrowsers)
		checkResult.hyrendEnable = false;
	
	try{
		ua = navigator.userAgent.toLowerCase();
		if(ua.indexOf("mobile") >= 0)
			checkResult.hyrendEnable = false;
	}
	catch(e){}

	bugs.navigator.checkResult = checkResult;
	
	return checkResult;
};

bugs.navigator.goUrl = function(url){
	location.href = url;
};

bugs.navigator._pushContent = function(url, param){
	
	param = param || {};

	bugs.navigator._setCommonEventHandler(true);
	
	bugs.navigator._hyrendAjax = $.ajax(url.replace(/http:|https:/i, ""),
		{
			data : {
				decorator:"hyrendContent"
			},
			dataType : 'jsonp',
			jsonp : "callback",
			//complete : function(data){ bugs.navigator._debugShow(data); },
			success : function(data){

				bugs.navigator._nowLoading = false;
				
				//if(!bugs.navigator.isValidContent(data.body)){
				//	bugs.navigator._debugShow("page error\n" + url, 3);
				//}
				
				bugs.navigator.removeLayer();
				
				var target = param.target || bugs.navigator.hyrendTargetSelect;
				var title = data.pageTitle || null;
				
				bugs.navigator.hyrendTargetSelect = target;
				
				var pushData = {};
				pushData.html = data.body;
				bugs.navigator._pushState(pushData, title, url);
				
				$(target).html(data.body);
				
				bugs.navigator._arrangeLayout(true);
				
				if(param.goTop)
					setTimeout(bugs.navigator.scrollTop, 100);
				
				bugs.navigator._setHyrendClick();
				
				bugs.navigator.setLeftMenuBtnSelected();
				
				bugs.navigator.runHyrendUrlChangeHandler(url);
				
				bugs.navigator.resizeImage();
				
				bugs.navigator.setPageTitle(data.pageTitle);

            },
			error : function(data){
				bugs.navigator._debugShow("hyrend content error\n" + url, 3);
			},
			complete : function(){
				bugs.navigator._nowLoading = false;
			}
		});

};

bugs.navigator.isValidContent = function(html){
	var result = true;

	var _test = $("<p></p>").html(html);

	var _firstNode = _test.find(":first")[0];
	if(!_firstNode)
		return false;

	_firstNode = $(_firstNode);

	if(_firstNode.prop("nodeName").toLowerCase() == "article")
		return true;

	var errMsgs = ["fail", "error"];

	if(_firstNode.prop("nodeName").toLowerCase() == "h3"){
		for(var idx in errMsgs){
			if(_firstNode.html().toLowerCase().indexOf(errMsgs[idx]) >= 0){
				result = false;
				break;
			}
		}
	}

	return result;
};

bugs.navigator.scrollTop = function(params){
	params = params || {};
	var _top = 0;
	if(params.target){
		_top = params.target.offset().top;
	}
	_top += (params.top || 0);

	var _duration = params.duration || 300;
	var _easing = params.easing || "easeOutCubic";

	if($("#header").length > 0)
		_top -= $("#header").outerHeight();

	$("body, html").animate( //크롬에서는 body, ie에서는 html
		{scrollTop:_top}, _duration, _easing,
		function() {
			if(params.complete)
				params.complete();
		});
};

bugs.navigator.scrollTopSel = function(selector, duration, complete){
	var params = {
		target:$(selector),
		top:-$(bugs.navigator.headerSelect).outerHeight(),
		duration:duration || 1000,
		easing:'easeOutQuart',
		complete:complete
	};
	bugs.navigator.scrollTop(params);
};


bugs.navigator.scrollTopTic = function(){
	bugs.navigator.scrollTop({top:$(window).scrollTop()-1});
	bugs.navigator.scrollTop({top:$(window).scrollTop()+1})
}

bugs.navigator._pushState = function(pushData, title, url){
	var checkResult = bugs.navigator.check();
	pushData.pushData = {
			title:title,
			url:url
	};
	if(checkResult.pushStateEnable){
		fixUrl = bugs.location.getCleanUrl(url);
		if(bugs.navigator.wasGoState)
			history.pushState(pushData, title, fixUrl);
		else
			history.replaceState(pushData, title, fixUrl);
	}
};

bugs.navigator._popContent = function(state){
	if(state == null) return;

	var target = bugs.navigator.hyrendTargetSelect;
	$(target).css("height", "auto");
	$(target).removeAttr("height");
	$(target).html(state.html);

	bugs.navigator._setHyrendClick();

	title = state.pushData.title || state.title || null;
	if(title){
		bugs.navigator.setPageTitle(title);
	}
};

bugs.navigator._isHyrendUrl = function(){
	var matchedUrl = bugs.navigator._getMatchedHyrendUrl();
	if(matchedUrl) return true;
	else return false;
};

bugs.navigator._getMatchedHyrendUrl = function(){
	var hyrendUrls = bugs.navigator.hyrendUrls;
	for(var idx in hyrendUrls){
		if(location.href.indexOf(hyrendUrls[idx]) == 0 ||
				location.href.indexOf(hyrendUrls[idx].replace("#", "")) == 0){
			return hyrendUrls[idx];
		}
	}
	return null;
};

bugs.navigator._usePushState = function(){
	var checkResult = bugs.navigator.check();
	var hasHash = (location.href.indexOf("#") >= 0);

	if(checkResult.pushStateEnable && !hasHash){
		return true;
	}
	else
		return false;
};

bugs.navigator._useHashChange = function(){
	var checkResult = bugs.navigator.check();
	var hasHash = (location.href.indexOf("#") >= 0);

	if(!checkResult.pushStateEnable && hasHash){
		return true;
	}
	else
		return false;
};

//url 에서 protocol, domain, tail 로 쪼개줌
bugs.navigator.getUrlInfo = function(url){
	url = url || location.href;

	var re_hashUrl = /(?:([^\/]+):){0,1}\/\/([\w\d\.:-]+)(.*)/i;
	var vars = re_hashUrl.exec(url);

	if(vars){
		var result = {};
		result.protocol = vars[1] || location.protocol.replace(":", "");
		result.domain = vars[2];
		result.tail = vars[3]||"/";

		//bugs.navigator._debugShow(result);

		return result;
	}
	else{
		return null;
	}
};

//벅스 url 체크
bugs.navigator.isBugsUrl = function(url){
	var urlInfo = bugs.navigator.getUrlInfo(url);

	if(urlInfo.domain.indexOf("bugs.co.kr") >= 0)
		return true;
	else
		return false;
};

//pushState용 url로 변경
bugs.navigator.getHyrendUrl_state = function(url){
	url = url || location.href;
	var hasHash = (url.indexOf("#") >= 0);

	if(!hasHash)
		return url;

	var urlInfo = bugs.navigator.getUrlInfo(url);
	if(urlInfo == null)
		return url;

	var re_hashUrl = /hr#([^\/]*)(.*)/i;
	var vars = re_hashUrl.exec(urlInfo.tail);

	var result = "";

	if(vars == null)
		return url;

	var domain;

	//bugs.navigator._debugShow(vars);

	if(bugs.navigator.isBugsUrl(url)){

		domain = (vars[1]||"www") + ".bugs.co.kr";

		result = urlInfo.protocol + "://" + domain + vars[2];
	}
	else{

		result = urlInfo.protocol + "://" + urlInfo.domain + "/" + vars[1] + vars[2];
	}

	return result;
};

//hash용 url로 변경
bugs.navigator.getHyrendUrl_hash = function(url){
	url = url || location.href;

	var urlInfo = bugs.navigator.getUrlInfo(url);
	if(urlInfo == null)
		return url;

	var re_Url = /\/([^\/]*)(.*)/i;
	var vars = re_Url.exec(urlInfo.tail);

	var result = "";

	if(vars == null)
		return url;

	var domain;

	//bugs.navigator._debugShow(vars);

	if(bugs.navigator.isBugsUrl()){
		var subDomain = urlInfo.domain.split(".")[0];
		if(subDomain == "www" || subDomain == "music")
			subDomain = "";
		domain = "music.bugs.co.kr/hr#" + subDomain + "/";
	}
	else{
		domain = urlInfo.domain + "/music/hr#";
	}

	result = urlInfo.protocol + "://" + domain + vars[1];
	if(vars[2] != "")
		result += vars[2];

	return result;
};

bugs.navigator.getHyrendUrl = function(url){
	url = url || location.href;

	var checkResult = bugs.navigator.check();
	var redirUrl;
	if(checkResult.pushStateEnable || !checkResult.hyrendEnable){
		redirUrl = bugs.navigator.getHyrendUrl_state(url);

		if(redirUrl == url)
			redirUrl = redirUrl.replace(/#/g, "");
	}
	else{
		redirUrl = bugs.navigator.getHyrendUrl_hash(url);

		if(redirUrl == url)
			redirUrl += "#";
	}

	return redirUrl;
};

bugs.navigator.needRedirect = function(url){
	url = url || location.href;

	var checkResult = bugs.navigator.check();
	var hasHash = (url.indexOf("/hr#") >= 0);

	if(checkResult.pushStateEnable && hasHash){
		return true;
	}
	else if(!checkResult.pushStateEnable && !hasHash){
		return true;
	}
	else if(!checkResult.hyrendEnable && hasHash){
		return true;
	}
	else
		return false;
};

bugs.navigator.getMatchedHyrendUrl = function(){
	var checkResult = bugs.navigator.check();
	var hasHash = (location.href.indexOf("#") >= 0);

	if(checkResult.pushStateEnable && hasHash){
		return true;
	}
	else if(!checkResult.pushStateEnable && !hasHash){
		return true;
	}
	else
		return false;
};

bugs.navigator.goState = function(url, newParams){

	var checkResult = bugs.navigator.check();
	if(!checkResult.hyrendEnable){
		location.href = url;
		return;
	}

	if(!url)
		return;
	if(bugs.navigator._nowLoading){
		bugs.navigator._debugShow("이동중..", 3);
		return;
	}

	url = bugs.navigator.getHyrendUrl_state(url);

	bugs.navigator._nowLoading = true;

	var params = {};
	for(var p in bugs.navigator.goStateDefaultParams){
		params[p] = bugs.navigator.goStateDefaultParams[p];
	}

	if(newParams){
		for(var p in newParams)
			params[p] = newParams[p];
	}

	bugs.navigator._goStateParams = params;

	if(params.unload){
		try{
			bugs.navigator.addHyrendUnloadHandler(params.unload);
		}catch(e){}
	}

	bugs.navigator.runHyrendUnloadHandler();


	if(!bugs.navigator.wasGoState)
		bugs.navigator.addHistory();

	bugs.navigator.wasGoState = true;


	if(checkResult.pushStateEnable){

		var cui = bugs.navigator.getUrlInfo(location.href);
		var nui = bugs.navigator.getUrlInfo(url);

		if(cui.domain != nui.domain || cui.protocol != nui.protocol){
			//도메인|프로토콜이 다르면 pushState 가 작동하지 않는다. document.domain 도 소용없음.
			location.href = url;
			return;
		}

		bugs.navigator._pushContent(url, params);
	}
	else{
		var hashUrl = bugs.navigator.getHyrendUrl(url);

		//해시가 동일하면 hashchange 이벤트가 발생하지 않기 때문에 timestamp 변수를 넣었음.
		if(location.href.split("#")[1] == hashUrl.split("#")[1]){
			if(hashUrl.indexOf("?") >= 0)
				hashUrl += "&";
			else
				hashUrl += "?";

			hashUrl += "_ts=" + (new Date()).getTime();
		}

		window.location.href = hashUrl;
	}
};

bugs.navigator._setHyrendClick = function(selectorObj){

	var checkResult = bugs.navigator.check();
	if(!checkResult.hyrendEnable)
		return;

	selector = bugs.navigator.hyrendSelect;
	if(typeof selectorObj != "undefined" && typeof selectorObj == "object"){
		selector = selectorObj;
	}

	$(selector).each(function(index){
		$(this)
			.off("click", bugs.navigator._setHyrendClickListener)
			.on("click", bugs.navigator._setHyrendClickListener);
	});
};

bugs.navigator._setHyrendClickListener = function(e){
	_this = e.currentTarget;

	url = $(_this).attr("href");
	urlInfo = bugs.navigator.getUrlInfo(url);
	if(urlInfo == null)
		return;

	e.preventDefault();

	loginRequired = ($(_this).attr("loginRequired") || "").toUpperCase();
	if(loginRequired){

		needLogin = false;

		try{
			needLogin = !g_isLogged;
		}catch(e){}

		if(needLogin && loginRequired){
			if(loginRequired == "LAYER"){
				bugs.ui.showLoginLayer();
			}
			else if(loginRequired == "PAGE"){
				bugs.navigator.goLoginPage({rUrl:url});
			}

			return;
		}
	}

	bugs.navigator._debugShow("a.hyrend -- " + url + "\n");

	newParams = {};
	newParams.goTop = "false,n".indexOf($(this).attr("goTop")||"true") >= 0 ? false : true; //기본값이 true라서 flase인지만 체크

	bugs.navigator.goState(url, newParams);
}


//스크롤 이벤트 핸들러
bugs.navigator._setHeadDisp = function(){
	//상단 해드 숨김
	var topHideH = 50;
	if($(window).scrollTop() > topHideH){
		$(bugs.navigator.headerHideSelect).hide();
	}
	else{
		$(bugs.navigator.headerHideSelect).show();
	}

	//상단 해드 숨기고 나면 왼쪽 메뉴 높이 조정
	$(bugs.navigator.leftMenuSelect).css("top", parseInt($(bugs.navigator.headerSelect).height()));
};


bugs.navigator._setHyrendStateEvent = function(){

	//hyrend 이벤트
	var checkResult = bugs.navigator.check();
	if(!checkResult.hyrendEnable)
		return;

	if(checkResult.pushStateEnable){
		$(window).on("popstate", function(event){
			var state = event.originalEvent.state;
			if(state){
				bugs.navigator._popContent(state);
				bugs.navigator.setLeftMenuBtnSelected();
				bugs.navigator.arrangeLayout(true);
			}
		});
	}
	else{
		$(window).hashchange(function(){
			//alert(location + " / " + location.hash);
			var url = bugs.navigator.getHyrendUrl_state(location.href);
			bugs.navigator._pushContent(url, bugs.navigator._goStateParams||{});
		});
		var hash = location.hash.replace("#", "");
		//var indexHash = "/, www";
		if(hash != ""){
			$(window).hashchange();
		}
	}
};




bugs.navigator.setLeftMenuOnResize = function(){
	if($(window).width() >= bugs.navigator.landmarkWidth){
		$("#gnbHandleBtn").hide();

		bugs.navigator.setLeftMenuShow(true);
	}
	else{
		$("#gnbHandleBtn").show();

		var cv = bugs.navigator.getLeftMenuCookie() || "Y";
		var show = (cv == "Y") ? true : false;

		bugs.navigator.setLeftMenuShow(show);
	}
};

bugs.navigator.setFloatSubMenu = function(){
	_fixedTop = $(bugs.navigator.headerSelect).height();

	$(bugs.navigator.floatSubMenuSelect).each(function(index){
		var obj = $(this);
		if(!obj.data("offsetTop"))
			obj.data("offsetTop", obj.offset().top);

		if(!obj.data("offsetParentHeight"))

		_floatTop = obj.data("offsetTop") - $(bugs.navigator.headerSelect).height();

		_floatBottom = _floatTop + obj.parent().height() - obj.height()*2;
		//bugs.navigator._debugShow(_floatTop + " / " + $(window).scrollTop() + "\n" );
		_floatAddClass = obj.attr("floatAddClass")||null;
		_islmPropWidth = obj.is("[lmProp*=width]");

		if($(window).scrollTop() > _floatTop && $(window).scrollTop() <= _floatBottom){
			obj.css({
				"position":"fixed",
				"top":_fixedTop,
				"margin-left":-$(window).scrollLeft()
			});

			if(_floatAddClass)
				obj.addClass(_floatAddClass);

			if(_islmPropWidth){
				obj.css("width", obj.parent().width());
			}
		}
		else{
			obj.css({
				"position":"",
				"top":"",
				"z-index":"",
				"maring-left":""
			});
			obj.parent().css({
				"z-index":""
			});

			if(_floatAddClass)
				obj.removeClass(_floatAddClass);

			if(_islmPropWidth)
				obj.css("width", "");
		}

	});
};

//첫페이지확인
bugs.navigator.checkFirstPage = function(){

	var saveState = false;

	if(document.referrer == "")
		saveState = true;

	if(saveState){
		//상태저장
		//bugs.navigator.addHistory();
	}

	//bugs.navigator.needRefresh(true);
};

bugs.navigator.addHistory = function(url, html){
	var url = url || location.href;
	var html = html || $(bugs.navigator.hyrendTargetSelect).html();

	bugs.navigator._pushState(
			{html:html}
			, document.title, url);
};

//lineBreak 세팅
bugs.navigator.setLineBreak = function(){
	$(bugs.navigator.lineBreakSelector)
		.each(function(index){

			var _curChild;
			var _lastTop = -1;
			var lineBreakIndex = 0;
			for(var i=1; i<=$(this).children().length; i++){
				_curChild = $($(this).children()[i-1]);
				lineBreakIndex = i;

				if(_lastTop < 0)
					_lastTop = _curChild.offset().top;

				if(_lastTop != _curChild.offset().top) {
					lineBreakIndex = i - 1;
					break;
				}
			}

			if(!document.addEventListener) {	// if ($.browser.msie && $.browser.version < 9) {
		    	if($(this).attr("id") == "newalbum_place")	    		lineBreakIndex = 5;
		    	else if($(this).attr("id") == "musiccard_container")		lineBreakIndex = 3;
		    	else if($(this).attr("id") == "main_musicvideo")    		lineBreakIndex = 4;
		    	else if($(this).attr("id") == "main_special")				lineBreakIndex = 3;
		    	else if($(this).attr("id") == "main_recomalbum")		lineBreakIndex = 3;
		    	else if($(this).attr("id") == "main_label")					lineBreakIndex = 3;
		    }

			for(var i=0; i<$(this).children().length; i++){
				_curChild = $($(this).children()[i]);

				_curChild.removeClass("lineBreak");

				if(i != 0 && (i+1)%lineBreakIndex == 0){
					if(!_curChild.hasClass('simple'))	// 뮤직PD앨범 에서 테마(simple) li는 lineBreak 제외 처리
						_curChild.addClass("lineBreak");
				}
			}
		});
};


bugs.navigator.arrangeLayout = function(isBodyContentChanged){

	if(window._arrLay_delay_tid){
		//bugs.navigator._debugShow("stop:" + window._arrLay_delay_tid, 3);
		return;
	}
	else{
		window._arrLay_delay_tid = setTimeout(function(){
			//bugs.navigator._debugShow("run:" + window._arrLay_delay_tid);
			window._arrLay_delay_tid = null;
			bugs.navigator._arrangeLayout(true);
		}, 100);
	}
};


bugs.navigator._arrangeLayout = function(isBodyContentChanged){

	bugs.navigator._debugShow("bugs.navigator.arrangeLayout");

    helpcenter = false;
    try{
        helpcenter = (location.href.indexOf('help.bugs.co.kr') >-1)? true:false;
    }catch(e){}

	if(isBodyContentChanged && !helpcenter){
		bugs.navigator._contentBodyOriginHeight = $(bugs.navigator.articleSelecter).outerHeight(); //아티클 영역 사이즈(패딩 값 50 추가)
		//bugs.navigator._debugShow("_contentBodyOriginHeight:" + bugs.navigator._contentBodyOriginHeight);

		$(bugs.navigator.hyrendTargetSelect).css("height", "");
		bugs.navigator._contentBodyOriginHeight = $(bugs.navigator.hyrendTargetSelect).outerHeight();
		//bugs.navigator._contentBodyOriginHeight = $(bugs.navigator.articleSelecter).height(); //아티클 영역 사이즈


		//가운데 영역
		var footerH = $(bugs.navigator.footerSelect).outerHeight();
		var bodyMinH = $(window).height() - $(bugs.navigator.headerSelect).outerHeight() - footerH; // 요건 윈도우 사이즈 기준 컨텐츠 영역 사이즈

		if(bugs.navigator.contentAreaMinHeight > bodyMinH){ //컨텐츠 영역 최소값이 윈도우사이즈 기준 컨턴츠 영억보다 큰 경우 값 교체
			bodyMinH = bugs.navigator.contentAreaMinHeight;
		}

		if(bugs.navigator._contentBodyOriginHeight < bodyMinH){
			$(bugs.navigator.hyrendTargetSelect).css("height", bodyMinH);
		}
		else{
			$(bugs.navigator.hyrendTargetSelect).css("height", bugs.navigator._contentBodyOriginHeight);

			if(window._tid_hyrendTargetSelect)
				clearTimeout(window._tid_hyrendTargetSelect);

//			window._tid_hyrendTargetSelect = setTimeout(function(){
//				$(bugs.navigator.hyrendTargetSelect).css("height", "");
//
//				window._tid_hyrendTargetSelect = null;
//			}, 500);
		}

		bugs.scroll.reinit();

		bugs.navigator._setHyrendClick();

		bugs.navigator.resizeImage();

        bugs.like.setToggleCommonLikeButton();

        //bugs.like.setNextCommonNextButton();
	}

	//왼쪽메뉴
	var lmH = $(window).height() - $(bugs.navigator.headerSelect).outerHeight();
	if($(bugs.navigator.leftMenuSelect).height() != lmH){
		$([bugs.navigator.leftMenuSelect, bugs.navigator.leftMenuBodySelect].join(",")).height(lmH);
		bugs.scroll.reinit();
	}

	bugs.navigator.setSizeClass();

	//bugs.navigator.setLineBreak();

	try{
		newEstBarFixed.checkFixed(); 
	}catch(e){}
};

bugs.navigator.setLeftMenuShow = function(visible, saveCookie, params){

	if($(bugs.navigator.leftMenuSelect).length == 0)
		return;

	if($(bugs.navigator.leftMenuHandleBtnSelect).attr("status")){
		var nowVisible =
			$(bugs.navigator.leftMenuHandleBtnSelect).attr("status") == "close" ? false : true;

		if(nowVisible == visible)
			return;
	}

	params = params || {};
	var duration = params.duration || 300;
	if(duration < 100)
		duration = 0;

	var moveVar = $(bugs.navigator.leftMenuSelect).outerWidth() || 220;

	var move_leftMenu = 0;
	var move_contents = 0;
	var move_floatMenu = 0;
	if(visible){
		move_leftMenu = 0;
		move_contents = moveVar;
		move_floatMenu = moveVar;
	}
	else{
		move_leftMenu = -moveVar;
		move_contents = 0;
		move_floatMenu = 0;
	}

	bugs.navigator.setleftMenuHandleBtnStatus(visible);

	if(duration > 0){

		var animateParam =
			{
				duration:duration,
				easing: "easeOutCubic",
				queue: false,
				complete : function(){
					$(bugs.navigator.leftMenuSelect).css("visibility","");
					bugs.navigator.arrangeLayout();
					bugs.navigator.setFloatSubMenu();

					$(window).resize();
				}
			};

		$(bugs.navigator.leftMenuSelect).animate(
				{"left":move_leftMenu},
				animateParam
			);

		$([bugs.navigator.hyrendTargetSelect,bugs.navigator.footerSelect].join(",")).animate(
				{"padding-left":move_contents},
				animateParam
			);

		$(bugs.navigator.floatSubMenuSelect + "[lmProp*=left]").animate(
				{"left":move_floatMenu},
				animateParam
			);

	}
	else{

		$(bugs.navigator.leftMenuSelect).css("left", move_leftMenu);
		$([bugs.navigator.hyrendTargetSelect,bugs.navigator.footerSelect].join(",")).css("padding-left", move_contents);
		$(bugs.navigator.leftMenuSelect).css("visibility","");
		$(bugs.navigator.floatSubMenuSelect + "[lmProp*=left]").css("left", move_floatMenu);

		bugs.navigator.arrangeLayout();
		bugs.navigator.setFloatSubMenu();

		$(window).resize();
	}

	if(saveCookie){
		var cv = visible ? "Y" : "N";
		bugs.navigator.setLeftMenuCookie(cv);
	}
};

bugs.navigator.setleftMenuHandleBtnStatus = function(visible){
	var statCls, status;
	if(visible){
		statCls = "btnMenuFolding open";
		status = "open";
	}
	else{
		statCls = "btnMenuFolding close";
		status = "close";
	}

	$(bugs.navigator.leftMenuHandleBtnSelect).attr("class", statCls);
	$(bugs.navigator.leftMenuHandleBtnSelect).attr("status", status);
};



bugs.navigator.setLeftMenuCookie = function(YorN){
	var cv = YorN;
	var params = {
		expires: 9999,
		path:"/"
	};
	if(document.domain.indexOf("localhost") < 0){
		params.domain = document.domain;
	}

	Cookies.set(bugs.navigator.leftMenuShowCookieNm, cv, params);
};

bugs.navigator.getLeftMenuCookie = function(){
	return Cookies.get(bugs.navigator.leftMenuShowCookieNm);
};

bugs.navigator.getLayoutStatus = function(){
	var params = {};

	params.showLeftMenu = false;
	params.showLeftMenuBtn = false;

	var cv = params.cookie = bugs.navigator.getLeftMenuCookie() || "Y";

	if($(window).width() >= bugs.navigator.landmarkWidth){
		params.showLeftMenu = true;
	}
	else if(cv == "Y"){
		params.showLeftMenu = true;
		params.showLeftMenuBtn = true;
	}
	else{
		params.showLeftMenuBtn = true;
	}

	return params;
};

bugs.navigator.setLeftMenuShowOnReady = function(){

	$(bugs.navigator.leftMenuHandleBtnSelect).click(function(){
		if($(this).hasClass("open")){
			bugs.navigator.setLeftMenuShow(false, true);
		}
		else{
			bugs.navigator.setLeftMenuShow(true, true);
		}
	});

};

bugs.navigator.setLeftMenuShowOnLoad = function(){
	if($(bugs.navigator.leftMenuSelect).length == 0)
		return; //왼쪽 메뉴가 없는 페이지일 경우

	var sts = bugs.navigator.getLayoutStatus();
	//bugs.navigator._debugShow(sts);

	var moveVar = 220;

	var move_leftMenu = 0;
	var move_contents = 0;
	var move_floatMenu = 0;

	if(sts.showLeftMenu){
		move_leftMenu = 0;
		move_contents = moveVar;
		move_floatMenu = moveVar;
	}
	else{
		move_leftMenu = -moveVar;
		move_contents = 0;
		move_floatMenu = 0;
	}

//	$([bugs.navigator.hyrendTargetSelect,bugs.navigator.footerSelect,bugs.navigator.leftMenuSelect].join(","))
//		.css("visibility", "hidden");

	$([bugs.navigator.hyrendTargetSelect,bugs.navigator.footerSelect].join(","))
		.css("padding-left", move_contents);

	bugs.navigator.setleftMenuHandleBtnStatus(sts.showLeftMenu);

	$(bugs.navigator.leftMenuSelect).css("left", move_leftMenu);
	$(bugs.navigator.leftMenuSelect).css("visibility","");

	$(bugs.navigator.floatSubMenuSelect + "[lmProp*=left]").css("left", move_floatMenu);

	if(sts.showLeftMenuBtn){
		$(bugs.navigator.leftMenuHandleBtnSelect).show();
	}
	else{
		$(bugs.navigator.leftMenuHandleBtnSelect).hide();
	}

//	setTimeout(function(){
//		$([bugs.navigator.hyrendTargetSelect,bugs.navigator.footerSelect,bugs.navigator.leftMenuSelect].join(","))
//			.css("visibility", "");
//	},300);

};

bugs.navigator._setCommonEventHandler = function(offOthers){

	offOthers = offOthers || false;

	

	bugs.navigator.scrollEvent = function(){
		if(bugs.navigator._tid_scrollEvent)
			return;
		else{
			bugs.navigator._tid_scrollEvent = setTimeout(function(){
				bugs.navigator._tid_scrollEvent = null;
				bugs.navigator._scrollEvent();
			}, 50);
		}
	};

	bugs.navigator._scrollEvent = function(){
		//bugs.navigator._debugShow($(window).scrollTop() + "\n");
		//bugs.navigator._setHeadDisp();
		bugs.navigator.setFloatSubMenu();
		bugs.navigator.arrangeLayout();
	};

	bugs.navigator.resizeEvent = function(){
		if(bugs.navigator._tid_resizeEvent)
			return;
		else{
			bugs.navigator._tid_resizeEvent = setTimeout(function(){
				bugs.navigator._tid_resizeEvent = null;
				bugs.navigator._resizeEvent();
			}, 100);
		}
	};

	bugs.navigator._resizeEvent = function(){
		bugs.navigator.setFloatSubMenu();
		bugs.navigator.arrangeLayout(true);
		bugs.navigator.setLeftMenuOnResize();
	};

	bugs.navigator.addEventHandler("window", "scroll", bugs.navigator.scrollEvent);
	bugs.navigator.addEventHandler("window", "resize", bugs.navigator.resizeEvent);

	var _keh = bugs.navigator.keepEventHandler;
	for(var _p1 in _keh){
		for(var _p2 in bugs.navigator.keepEvents){
			var _evt = bugs.navigator.keepEvents[_p2];

			//bugs.navigator._debugShow("off - " + _p1 + "." + _evt);
			if(offOthers)
				$(eval(_p1)).off(_evt);

			if(_keh[_p1][_evt]){
				//bugs.navigator._debugShow("on - " + _p1 + "." + _evt);
				$(eval(_p1)).on(_evt, function(event){
					var target = "";
					if(event.currentTarget == window)
						target = "window";
					else if(event.currentTarget == document)
						target = "document";
					bugs.navigator.runEventHandler(target, event.type);
				});
			}
		}
	}
};

bugs.navigator.runEventHandler = function(targetStr, eventStr){
	var _keh = bugs.navigator.keepEventHandler;
	for(var _f in _keh[targetStr][eventStr]){
		_keh[targetStr][eventStr][_f]();
	}
};

bugs.navigator.addEventHandler = function(targetStr, eventStr, func){
	var _keh = bugs.navigator.keepEventHandler;
	_keh[targetStr] = _keh[targetStr] || {};
	_keh[targetStr][eventStr] = _keh[targetStr][eventStr] || [];

	_keh[targetStr][eventStr].push(func);
};


bugs.navigator.addHyrendUnloadHandler = function(func, name, noEnd){
	name = name||"default_" + (new Date).getTime() + Math.round(Math.random()*1000);
	noEnd = noEnd||false;
	var _huh = bugs.navigator.hyrendUnloadHandler;
	if(_huh[name])
		return false;

	_huh[name] = {
		"func":func,
		"noEnd":noEnd
	};
	return true;
};


bugs.navigator.runHyrendUnloadHandler = function(){
	var _huh = bugs.navigator.hyrendUnloadHandler;
	for(var _n in _huh){
		try{
			_huh[_n]["func"]();
			if(!_huh[_n]["noEnd"])
				delete _huh[_n];
		}catch(e){}
	}
};


bugs.navigator.addHyrendUrlChangeHandler = function(func, name, noEnd){
	name = name||"default_" + (new Date).getTime() + Math.round(Math.random()*1000);
	noEnd = noEnd||false;
	var _huch = bugs.navigator.hyrendUrlChangeHandler;
	if(_huch[name])
		return false;

	_huch[name] = {
		"func":func,
		"noEnd":noEnd
	};
	return true;
};


bugs.navigator.runHyrendUrlChangeHandler = function(url){
	url = url || location.href;
	url = bugs.navigator.getHyrendUrl_state(url);

	var _huch = bugs.navigator.hyrendUrlChangeHandler;
	for(var _n in _huch){
		try{
			_huch[_n]["func"](url);
			if(!_huch[_n]["noEnd"])
				delete _huch[_n];
		}catch(e){}
	}
};

bugs.navigator.setLeftMenuBtnSelected = function(){
	window._slmbs_lastOne = null;
	$(bugs.navigator.leftMenuSelect).find("a").each(function(index){
		$(this).removeClass("selected");
		var compareUrl = bugs.navigator.getHyrendUrl_state(location.href);
		compareUrl = compareUrl.split("?")[0];
		var menuUrl = $(this).attr("href").split("?")[0];
		if(compareUrl.indexOf(menuUrl) >= 0){
			var change = false;
			if(!window._slmbs_lastOne){
				change =  true;
			}
			else{
				if($(this).attr("href").length > window._slmbs_lastOne.urlLength){
					change = true;
				}
			}
			if(change){
				window._slmbs_lastOne = {
						target : this,
						urlLength : $(this).attr("href").length
					};
			}
		}
	});
	if(window._slmbs_lastOne)
		$(window._slmbs_lastOne.target).addClass("selected");

	//lmid 속성이 발견된다면
	var gnbLmidSelector = bugs.navigator.leftMenuSelect + " " + bugs.navigator.leftMenuIdSelector;
	var bodyLmidSelector = bugs.navigator.hyrendTargetSelect + " " + bugs.navigator.leftMenuIdSelector + ":last";

	if($(bodyLmidSelector).length > 0){

		$(gnbLmidSelector).removeClass("selected");
		$(bugs.navigator.leftMenuSelect).find("a").removeClass("selected")

		_bodyLmid = $(bodyLmidSelector).attr("lmid") || "_none";
		_bodyLmidArr = _bodyLmid.split(",");

		for(var idx in _bodyLmidArr){
			$(bugs.navigator.leftMenuSelect + " [lmid=" + _bodyLmidArr[idx] + "]").addClass("selected");
		}
	}
};

bugs.navigator.removeLayer = function(){
	$(bugs.navigator.removeLayerSelector).remove();
};

bugs.navigator.resizeImage = function(){
	$(bugs.navigator.resizeImageSelector).resizeImage();
};


bugs.navigator.cleanBugsLink = function(){
	var linkForBugsSel = "link[for=bugs]";
	if($(linkForBugsSel).length == 1)
		return;

	$(linkForBugsSel + ":eq(1)").insertAfter(linkForBugsSel + ":eq(0)");
	setTimeout(function(){
        $(linkForBugsSel + ":eq(0)").remove();
	}, 5000);
};

bugs.navigator.setLeftMenuFolderCookie = function(num, YorN){
	var cn = bugs.navigator.leftMenuFolderCookieNm + num;
	var cv = YorN;
	var params = {
		expires: 9999, 
		path:"/"
	};
	if(document.domain.indexOf("localhost") < 0){
		params.domain = document.domain;
	}
	
	Cookies.set(cn, cv, params);
};

bugs.navigator.getLeftMenuFolderCookie = function(num){
	return Cookies.get(bugs.navigator.leftMenuFolderCookieNm + num);
};

bugs.navigator.initLeftMenuFolderBtn = function(){
	$(bugs.navigator.leftMenuFolderBtnSelector).click(function(){
		$(this).parent('li').toggleClass('close');
		
		num = $(this).parent('li').attr("folder");
		stt = $(this).parent('li').attr("stt") || "Y";
		
		stt = (stt == "Y") ? "N" : "Y";//toggle
		
		$(this).parent('li').attr("stt", stt);
		
		bugs.navigator.setLeftMenuFolderCookie(num, stt);
	});
};

bugs.navigator.setLeftMenuFolder = function(){
	$(bugs.navigator.leftMenuFolderSelector).each(function(index){
		_num = $(this).attr("folder");
		_cv = bugs.navigator.getLeftMenuFolderCookie(_num) || "Y";
		if(_cv == "N"){
			$(this).addClass("close");
			$(this).attr("stt", _cv);
		}
	});
};


bugs.navigator.setPageTitle = function(title){
	
	ttl = null;
	if(title){
		ttl = bugs.utils.htmlDecode(title);
	}
	else{		
		if($(bugs.navigator.pageTitleSelector).attr("pagetitle"))
			ttl = $(bugs.navigator.pageTitleSelector).attr("pagetitle");
	}
	
	if(ttl)
		document.title = ttl;
};

bugs.navigator.setSizeClass = function(){
	
	$("[cssWidth]").each(function(index){
		target = $(this);
		cssWidth = target.attr("cssWidth");
		
		props = cssWidth.split(";");
		for(var idx in props){
			kv = props[idx].split(":");
			if(kv.length != 2) continue;
			key = kv[0];
			
			minMax = kv[1].split("-");
			if(minMax.length != 2) continue;
			
			min = parseInt(minMax[0]);
			max = parseInt(minMax[1]);

			if($(window).width() <= max && $(window).width() >= min){
				target.addClass(key);
			}
			else
				target.removeClass(key);
		}
	});
	
};

bugs.navigator.needRefresh = function(forceRefresh){
	_needRefresh = forceRefresh || false;
	
	lastHyrendTime = Cookies.get(bugs.navigator.lastHyrendCookieNm);
	
	if(lastHyrendTime && !isNaN(lastHyrendTime && !_needRefresh)){
		diff = (new Date()).getTime() - lastHyrendTime;
		
		bugs.navigator._debugShow("lastHyrendTime:" + lastHyrendTime + "\ndiff:" + diff);
		if( diff > bugs.navigator.lastHyrendRefreshInterval ){
			_needRefresh = true;
		}
	}
	else{
		_needRefresh = true;
	}
	
	if(_needRefresh){
		cv = (new Date()).getTime();
		params = {
			expires: 1, 
			path:"/"
		};
		if(document.domain.indexOf("localhost") < 0){
			params.domain = document.domain;
		}
		
		Cookies.set(bugs.navigator.lastHyrendCookieNm, cv, params);
	}
	
	return _needRefresh;
};

bugs.navigator.goLoginPage = function(params){
	var params = params || {};
	params.rUrl = params.rUrl || location.href;
	
	var loginPage = g_urlMusic + "/member/loginview?rUrl=" + encodeURIComponent(params.rUrl);
	
	location.href = loginPage;
};

bugs.navigator.getDocBaseUrl = function(url){
	rUrl = url.replace(/http:|https:/i, location.protocal);
	return rUrl;
}

bugs.navigator._debugShow = function(msg, level){
	try{
		msg = "[bugs.navigator.js]\n" + msg;
		bugs.debug.show(msg, level);
	}
	catch(e){}
};

$(document).ready(function(){
	
	//bugs.navigator._debugShow("document.ready", 2);
	
	bugs.navigator._setCommonEventHandler();
	
	bugs.navigator._setHyrendStateEvent();
	
	bugs.navigator.checkFirstPage();
	//ajax 성공 시 dataType이 html인 경우만 레이아웃 컨텐츠 영역 다시 계산
	$(document).ajaxSuccess(function(e, xhr, settings){
		if(settings.dataType == "html" || settings.dataType == "HTML"){
			bugs.navigator.arrangeLayout(true);
		}
	});
	
	setTimeout(function(){
		bugs.navigator._arrangeLayout(true);
	}, 100);

	setTimeout(function(){
		bugs.navigator._setHyrendClick();
	}, 300);
	
	
	bugs.navigator.addHyrendUnloadHandler(function(){ 
		bugs.navigator._debugShow('unload hyrend default', 1);
		try{
			//popup layer hide
			$("aside.layer").hide();
			
			bugs.layermenu.removeOldLayer();

			// HTML5 영상 플레이어가 있다면 재생 종료하고 로그남기기
			if(bugs.music.useHtml5MvPlayer()) {
				if(bugs.mvHPlayer != undefined)
					bugs.mvHPlayer.stopVideo();
			}
		}
		catch(e){}
	}, "default", true);
	
	bugs.navigator.addHyrendUrlChangeHandler(function(url){
		bugs.navigator._debugShow('url change default', 1);
		try{
			headerCommonBannerLoad(url);
		}
		catch(e){}
		try{
			mainIssueBannerLoad(url);
		}
		catch(e){}
	}, "default", true);
	
	bugs.navigator.runHyrendUrlChangeHandler();
	
	bugs.navigator.setLeftMenuShowOnReady();
	
	bugs.navigator.setLeftMenuBtnSelected();
	
	bugs.navigator.initLeftMenuFolderBtn();
});



/*-----/js/bugs/bugs.navigator.js / end -----*/

/*-----/js/bugs/bugs.scroll.js / start -----*/

var bugs = bugs||{};

bugs.scroll = {};

bugs.scroll.scrollSelector = "#gnbBody, .innerScroll, .jScroll";

bugs.scroll.defaultInitProps = {
	//autoReinitialise: true,
	//autoReinitialiseDelay:100,
	animateScroll: true,
	animateDuration:300,
	mouseWheelPreventDefault: true,
	isVerticalScrollBarHide : true,
	contentWidth : '0px',
	verticalGutter : 0,
    verticalDragMinHeight: 50
};

//스크롤바 세팅
bugs.scroll.setScrollBar = function(selector, force){
	
	var select = selector || bugs.scroll.scrollSelector;
	var isForce = force || false;
	var autoScrollVar;
	$(select).each(function(){
		if(!isForce){
			autoScrollVar = $(this).attr("autoScroll") || null;
			if(autoScrollVar && autoScrollVar == "N")
				return true; //continue
		}
		
		initProps = bugs.object.copyProps(null, bugs.scroll.defaultInitProps);
		
		jsp_init = bugs.scroll.getElemetJspInit($(selector));
		
		if(jsp_init){
			for(var prop in jsp_init){
				initProps[prop] = jsp_init[prop];
			}
		}

		$(this).jScrollPane(
			initProps
		).on("mouseover", function(){
			$(this).find("div.jspVerticalBar").show();
		}).on("mouseout",function(){
			$(this).find("div.jspVerticalBar").hide();
		});
		
	});
	
};



bugs.scroll.reinit = function(selector, moveTarget, force){

	var selector = selector || bugs.scroll.scrollSelector;
	var isForce = force || false;
	var autoScrollVar;
	
	$(selector).each(function(index){

		if(!isForce){
			autoScrollVar = $(this).attr("autoScroll") || null;
			if(autoScrollVar && autoScrollVar == "N")
				return true; //continue
		}
		
		try{
			var isVerticalScrollBarHide = true;
			if(moveTarget)
				isVerticalScrollBarHide = false;
			
			initProps = {
				isVerticalScrollBarHide:isVerticalScrollBarHide
			};
			
			jsp_init = bugs.scroll.getElemetJspInit($(this));
			
			if(jsp_init){
				for(var prop in jsp_init){
					initProps[prop] = jsp_init[prop];
				}
			}
			
			$(this).data("jsp").reinitialise(initProps);
		}
		catch(e){}
		
		if(moveTarget){
			bugs.scroll.moveScroll($(this), moveTarget);
		}
		
	});
};

bugs.scroll.moveScroll = function(selector, target){
	var selector = selector || bugs.scroll.scrollSelector;
	
	try{
		//bugs.debug.show("bugs.scroll.reinit\n");
		if(typeof target =="object"){
			$(selector).data("jsp").scrollToElement(target, true);
		}else{
			$(selector).data("jsp").scrollToY(target);
		}
	}
	catch(e){}
};

bugs.scroll.getElemetJspInit = function(elem){
	jsp_init = null;
	
	try{
		jsp_init = $.parseJSON( $(elem).attr("jsp_init") );
	}catch(e){};
	
	return jsp_init;
};

$(document).ready(function(){
	setTimeout(function(){
		bugs.scroll.setScrollBar();
	}, 10);
});
/*-----/js/bugs/bugs.scroll.js / end -----*/

/*-----/js/bugs/bugs.datepicker.js / start -----*/
var bugs = bugs||{};

bugs.datepicker = {};

bugs.datepicker.defaultOption = {
	firstDay: 1,
	dateFormat: "yymmdd",
	dayNames:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],
	dayNamesMin:["S","M","T","W","T","F","S"],
	monthNames:["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
	showMonthAfterYear:true
};
isShowed = false;
bugs.datepicker.make = function(selector, option){
	
	var rOption = bugs.datepicker.defaultOption;
	
	if(option != null){
		for(var prop in option){
			rOption[prop] = option[prop];
		}
	}
	
	if(rOption.showButtonSelector){
		$(rOption.showButtonSelector).click(function(){
			if (isShowed){
				$(selector).datepicker("hide");
			}else {
				$(selector).datepicker("show");
			}
		});
	}
	
	return $(selector).datepicker(rOption);
};

bugs.datepicker.button = function(selector, option){
	option = option||{};
	option.showOn = "button";
	option.buttonText = "<p style='width:1px;height:1px;'>&nbsp;</p>";
	
	return bugs.datepicker.make(selector, option);
};

bugs.datepicker.chartWeek = function(selector, option){
	option = option||{};
	option.bugsWeek = true;
	
	return bugs.datepicker.button(selector, option);
};
/*-----/js/bugs/bugs.datepicker.js / end -----*/
