﻿document.domain = "jtbc.co.kr";

/* const define */
var TCMT_OS_DOMAIN = "jtbc.co.kr";
var TCMT_OS_BASE_DOMAIN = "jtbc.co.kr";
var TCMT_OS_SNS = 'https://news.jtbc.co.kr/Comment/SNS/';
var TCMT_OS_H = '/Comment/portal/';
var TCMT_OS_MX_CONT = 250;
var TCMT_OS_PGI = 1;
var TCMT_OS_PGS = 5;
var TCMT_OS_DEF = 0;
var TCMT_OS_PTG = '';
var tcnt = 0;
var listcnt = 0;
var TCMT_UI_DMSG = '의견 작성을 위해 원하시는 계정으로 로그인 해주십시요';
var JTBC_IMAGES_SVR_DOMAIN = "https://images." + TCMT_OS_BASE_DOMAIN + "/";
var ssoInfo = {};

/* public values */
var TCMT_JUCD; var TCMT_ATCNO;
var TCMT_TG; var TCMT_SelTab = ''; var TCMT_RANI = false; var TCMT_READONLY = " ";
var TCMT_UserID = ''; var TCMT_UserName = ''; var TCMT_UserImage = ''; var TCMT_UserLogin = false;
var TCMT_UserSnsType = '';

function getLoader() {
    return $("<div id='loader' style='width: 100%; display: none;'><table width=100%><tr><td width=100% height=50 align='center' valign='middle'><img src='https://images." + TCMT_OS_BASE_DOMAIN + "/ui_jtbc/common/loadingbar.gif' alt='로딩중' /></td></tr></table></div>");
}

function TCOMMENT(juCode, articleNo, tgobj, pgs, atcTitle) {
    TCOMMENT_NEW(juCode, articleNo, tgobj, pgs, atcTitle, pgs)
}

function TCOMMENT_NEW(juCode, articleNo, tgobj, pgs, atcTitle, def) {
    TCMT_JUCD = juCode;
    TCMT_ATCNO = articleNo;
    TCMT_TG = tgobj;
    TCMT_OS_PGS = pgs;
    TCMT_OS_DEF = def;    
    TCMT_LoadUserInfo();
    commentWriteForm(atcTitle);
    TCMT_AddTabMenu();

    TCMT_TG.append('<div id="TCMT_ContBox"></div><div id="paginate"></div>');
    TCMT_OnTabChange('A');
    
    if( $('div.dimm').length == 0 ){
        $('body').append( "<div class=\"dimm\"></div>");
    }
}
function TCMT_LoadUserInfo() {
    var jToken = getCookie('j_token');
    if ( jToken != null) {        
        ssoInfo = window.jwt_decode(jToken, '');
        TCMT_UserID = ssoInfo.user_id;
        TCMT_UserSnsType = ssoInfo.user_type.toLowerCase();
        TCMT_UserLogin = true;
    } else {
        TCMT_UserID = '<a href="https://joins">로그인</a>';
        TCMT_UserName = '로그인 후 이용가능합니다.';
        TCMT_READONLY = 'readOnly'; 
    }
}

function showReplyCommentForm(parentId) {
    var cmtId = '#cmtItm_' + parentId;    
    $( cmtId +" div.comment_reply").toggle();
    
    if (!TCMT_UserLogin) {
        var cmtReCont = 'cmtReCont' + parentId;
        var reforminput = $("#" + cmtReCont);
        reforminput.attr("readOnly", "true");
    }
    
    setIncludeIframeResize();
}

//대댓글 등록
function replayCommentSave(parentId) {
    if (!TCMT_LoginCheck()) { 
        return; 
    }

    var cmtTitle = $('#cmtTitle').val();
    var cmtReCont = $('#commentReplyContent_' + parentId);
    var cmtUrl = document.URL; // 현재 URL bit.ly로 축약

    if (document.URL != parent.document.URL) {
        cmtUrl = $('#bbs_article_shortcut_url').val();
    }
    
    if (cmtReCont.val().length <= 0) {
        alertLayer('내용을 입력하세요.');
        $(cmtReCont).focus();
        return;
    }

    $.post(TCMT_OS_H + 'cmt_a_writere.aspx?', 
        { 'pRepNo': parentId, 'ju_code': TCMT_JUCD, 'article_no': TCMT_ATCNO, 'cmtReCont': $(cmtReCont).val() },
        function (rtnv) {
        
            if (rtnv.REP_NO < 0) {
                alertLayer(rtnv.CMTCont);
                return;
            } else {
                alertLayer("등록 되었습니다.");
                TCMT_CommentReLoad();
                if( typeof newsAnalysis != "undefined") {
                    newsAnalysis.init('comment', TCMT_JUCD, '');
                }
            }
    });

}
function TCMT_OnDelComment(repNo, isReplayComment) {
    
    $.getJSON(TCMT_OS_H + 'cmt_a_delete.aspx?callback=?', {
        'repNo': repNo,
        'ju_code': TCMT_JUCD,
        'article_no': TCMT_ATCNO
    }, function (rtnv) {
        if (rtnv.length <= 0 || rtnv.ErrorMsg != '') {
            alertLayer(rtnv.ErrorMsg);

        } else {
            
            if ( isReplayComment == true) {
                var parentNode =  $('#cmtItm_' + repNo).parent();
                console.log(parentNode)
            } else {
                
            }

            $('#cmtItm_' + repNo).remove();            
            tcnt--;
            listcnt--;
            
            alertLayer("삭제되었습니다");

            if (typeof newsAnalysis != "undefined") {
                newsAnalysis.init('uncomment', TCMT_JUCD, '');
            }
            
            if ($('#TCMT_ContBox').find('.cmt_sort').length == 0) {
                TCMT_CommentReLoad();
            }
            
        }
    });
    
}
function TCMT_OnTabChange(st) {
    if (TCMT_SelTab == st) { return; }
    $('li#TCMTTabA').attr({ 'class': 'tab_a' + ((st != 'A') ? '' : ' on') });
    $('li#TCMTTabB').attr({ 'class': 'tab_b' + ((st != 'B') ? '' : ' on') });
    $('li#TCMTTabC').attr({ 'class': 'tab_c' + ((st != 'C') ? '' : ' on') });
    $('#TCMT_ContBox').html('');
    TCMT_SelTab = st;
    TCMT_OS_PGI = 1;
    var loader = getLoader();
    $("#TCMT_ContBox").append(loader);
    loader.slideDown(300, function () {
        TCMT_SetPaging();     
        TCMT_CommentLoad("");
    });
    loader.slideUp(300);
}

///// hs
function TCMT_OnVoteComment(repNo, val) {
    $.getJSON(TCMT_OS_H + 'cmt_a_vote.aspx?callback=?',
        { 'ju_code': TCMT_JUCD, 'article_no': TCMT_ATCNO, 'repNo': repNo, 'val': val },
        function (rtnv) {
            console.log('추천 / 반대 ' + rtnv.Cnt);
            if (rtnv.ErrorMsg == '') {
                if (val > 0) {
                    $('#cmtItm_' + repNo + ' div.act_wrap b').html(rtnv.Cnt);
                } else {
                    $('#cmtItm_' + repNo + ' div.act_wrap span').html(rtnv.Cnt);
                }
                alertLayer("참여해주셔서 감사합니다"); 
            } else {
                alertLayer(rtnv.ErrorMsg);
            } 
    }); 
    
}

function  commentReport(repNo) {
    var reportType =  $('div._report_comment_layer input[name=reportType]:checked').val();
    var report =  $('div._report_comment_layer input[name=report]:checked').val();
    
    $('div._report_comment_layer').remove();
    
    $.getJSON(TCMT_OS_H + 'cmt_a_Repo.aspx?callback=?'
        , { 'ju_code': TCMT_JUCD, 'article_no': TCMT_ATCNO, 'repNo': repNo, 'report' : report, 'reportType' :reportType }
        , function (rtnv) {
            if (rtnv.ErrorMsg == '') 
            {
                var commentId = '#cmtItm_'+repNo+' dd.txt >span';
                $(commentId).css('display','none');
                alertLayer('신고가 접수 되었습니다.', function(){
                    $('div._report_comment_layer').remove();
                });
                TCMT_CommentReLoad();
            } else {
                alertLayer(rtnv.ErrorMsg, function(){
                    $('div._report_comment_layer').remove();
                });
            } 
    });
}

function createConfirmLayer() {
    var strLayer = 
    "<div class=\"ly_pop_wrap popv2 pop_sm\">\n" +
    "        <div class=\"ly_cont\">\n" +
    "          <p class=\"txt_zone\">신고하시겠습니까?</p>\n" +
    "          <p class=\"txt_zone\">신고가 정상적으로 접수되었습니다.</p>\n" +
    "          <p class=\"txt_zone\">로그인이 필요한 서비스입니다.<br>로그인 하시겠습니까?</p>\n" +
    "          <div class=\"btn_area justify\">\n" +
    "            <a href=\"#\" onclick=\"return fnReporterCancel()\" class=\"btns\"><span>취소</span></a>\n" +
    "            <a href=\"#\" onclick=\"return fnReporterOk()\" class=\"btns gray\"><span>확인</span></a>\n" +
    "          </div>\n" +
    "        </div>\n" +
    "        \n" +
    "        <a href=\"/\" class=\"ly_close\"><span class=\"ico\"></span><span class=\"hide_txt\">닫기</span></a>\n" +
    "    </div>";
    $('body').append(strLayer);
}


function TCMT_CommentLoad(nc) {

    $('.cmt_add').remove();

    $.getJSON(TCMT_OS_H + 'cmt_a_list.aspx?callback=?'
        , { 'ju_code': TCMT_JUCD, 'article_no': TCMT_ATCNO, 'pgi': TCMT_OS_PGI, 'pgs': TCMT_OS_PGS, 'ot': TCMT_SelTab, 'nc': '', 'def': TCMT_OS_DEF }
        , function (data) {
            if( data.cc != null && data.cc == "null") return "";
            if( $('ul.comment_list').length < 1){
                $("#TCMT_ContBox").append("<ul class=\"comment_list\"></ul>");
                
            }
            $('ul.comment_list').append(createCommentList(data));
            listClickEventInit();
            
            if (TCMT_OS_DEF == 0) 
            {
                if (tcnt > TCMT_OS_PGI * TCMT_OS_PGS) {
                    var paging = '<div class="cmt_add" onclick="javascript:TCMT_GoPG(++TCMT_OS_PGI);"><a>더보기</a></div>';
                    $('#TCMT_ContBox').append(paging);
                }
            }
            else 
            {
                if (tcnt > TCMT_OS_DEF + (TCMT_OS_PGI - 1) * TCMT_OS_PGS) {
                    var paging = '<div class="cmt_add" onclick="javascript:TCMT_GoPG(++TCMT_OS_PGI);"><a>더보기</a></div>';
                    $('#TCMT_ContBox').append(paging);
                }
            }
            setIncludeIframeResize();
    });
}

function listClickEventInit(){
    // 코멘트 내용보기
    $(".toggle-content").on('click', function (e) {
        e.preventDefault();
        var status = $(this).hasClass('on');

        if (!status) {
            $(this).addClass('on').text('닫기');
        } else {
            $(this).removeClass('on').text('내용보기');
        }
        $(this).closest('.comment_head').siblings('.comment_body').find('.body_noty').toggleClass('hidden_content');
    });
}

function TCMT_CheckTextCount() {
    $('#cmtContCount').html('(' + $('textarea#cmtCont').val().length + '/' + TCMT_OS_MX_CONT + '자)');
}
function TCMT_KeyCheck(kc, fid) {
    if ($(fid).val().length < TCMT_OS_MX_CONT) return true;
    else {
        alertLayer(TCMT_OS_MX_CONT + '자 이내 입력바랍니다');
        var tmpCont = $(fid).val();
        tmpCont = tmpCont.substring(0, TCMT_OS_MX_CONT - 2);
        $(fid).val(tmpCont)
        TCMT_CheckTextCount();
        return false;
    }
}

function TCMT_LoginCheck() {
    console.log(document.cookie);
    if (getCookie('j_token') == null ) {
        confirmLayer('로그인이 필요한 서비스입니다.<br>로그인 하시겠습니까?',
            function(){
                location.href = "https://join.jtbc.co.kr/login?targetUrl=" +decodeURI(location.href);
            })
        return false; 
    }
    return true;
}

function TCMT_GoPG(npgi) {
    var loader = getLoader();
    $("#TCMT_ContBox").after(loader);
    loader.slideDown(300, function () {
        if (TCMT_OS_PTG.length > 0) { 
            window.location.href = TCMT_OS_PTG + '?ju_code=' + TCMT_JUCD + '&article_no=' + TCMT_ATCNO + '&pgi=' + npgi 
        }
        else 
        {
            TCMT_OS_PGI = npgi;
            TCMT_RANI = true; 
            TCMT_SetPaging();
            TCMT_CommentLoad("nc"); 
        }
    });
    loader.slideUp(300);
}

function TCMT_AddTabMenu() {
    var tabMenu = '';
    tabMenu ='<div class="comment">'
        + ' <div class="hd">'
        + '     <ul class="tab">'
		+ '         <li id="TCMTTabA" class="tab_a on"><a href="#" onclick="TCMT_OnTabChange(\'A\');return false;" id="commentTab" name="commentTab">최신순</a></li>'
		+ '         <li id="TCMTTabB" class="tab_b"><a href="#" onclick="TCMT_OnTabChange(\'B\');return false;">추천순</a></li>'
		+ '         <li id="TCMTTabC" class="tab_c"><a href="#" onclick="TCMT_OnTabChange(\'C\');return false;">반대순</a></li>'
		+ '     </ul>'
        + '     <span class="comment_refresh"><a href="javascript:TCMT_CommentReLoad();">새로고침</a></span>'
        + ' </div>'
        + ' <div class="ft"></div>'
        + '</div>';

    TCMT_TG.append(tabMenu);
}


function TCMT_SetPaging() {
    $.getJSON(TCMT_OS_H + 'cmt_a_listcount.aspx?callback=?',
        { 'ju_code': TCMT_JUCD, 'article_no': TCMT_ATCNO, 'nc': '' }, 
        function (rtnv) {
            tcnt = rtnv.TotalCount;
            listcnt = rtnv.TotalCount;
            
            $('#tCount').html(tcnt + '개');
            
            if (tcnt == "0" && $("div[id^=cmtItm]").length == 0) {
                $('#TCMT_ContBox').html('<div style="width:100%" align="center" id="divEmptyComment">등록된 댓글이 없습니다.</div>');
            }
    });
}

function TCMT_SetListPaging() {
    $.getJSON(TCMT_OS_H + 'cmt_a_listcount.aspx?callback=?', { 'ju_code': TCMT_JUCD, 'article_no': TCMT_ATCNO, 'nc': '', 'list': 'list' }, function (rtnv) {
        listcnt = rtnv.TotalCount;
    });
}

function fnCMTLogInOutClass() {
    if (!TCMT_UserLogin) {
        return 'txt';
    } else {
        return TCMT_UserSnsType;
    }
}

function fnCMTLogInOut() {
    if (!TCMT_UserLogin) return '<strong>로그인</strong> 선택하기'
    else return '<strong>댓글</strong> <a class="logout" href="javascript:logoutAction()">로그아웃</a>';
}

function fnCMT_Title_LogInOut() {
    if (!TCMT_UserLogin) return TCMT_UI_DMSG;
    else return '';
}

// 로그아웃 액션
function logoutAction() {
    var joins_validlogin = getCookie('Joins_ValidLogin');
    TCMT_UserName = "";
    TCMT_UserID = "";
    TCMT_UserLogin = false;
    TCMT_UserImage = JTBC_IMAGES_SVR_DOMAIN + "ui_jtbc/common/v_noimg_45_45.gif";

    $("#" + TCMT_UserSnsType).removeClass("on");

    TCMT_UserSnsType = "";

    $('#cmtCont').val(TCMT_UI_DMSG);
    $('#cmtCont').attr("readOnly", "true");
    $('#cmtCont').attr("onfocus", "");
    $("#userIcon").attr("src", TCMT_UserImage);
    $("#username").html("로그인 후 이용가능합니다.");
    $("#username").attr("class", "txt");
    $("#logcheck").html(fnCMTLogInOut());
    

    $('.txt_input').find('.txt').val(TCMT_UI_DMSG);
    $('.txt_input').find('.txt').attr("readOnly", "true");

    // 전체 사이트 로그아웃 처리
    var parentDocumentUrl = parent.document.URL.toLowerCase().toString();
    var documentUrl = document.URL.toLowerCase().toString();

    try {
        setDomainCookie("JCUBE_SOCIAL_ID", "", "", "/", TCMT_OS_DOMAIN, "");
        setDomainCookie("JCUBE_SOCIAL_NAME", "", "", "/", TCMT_OS_DOMAIN, "");
        setDomainCookie("JCUBE_SOCIAL_IMAGE", "", "", "/", TCMT_OS_DOMAIN, "");
        setDomainCookie("JCUBE_SOCIAL_TYPE", "", "", "/", TCMT_OS_DOMAIN, "");
        setDomainCookie("JCUBE_SOCIAL_USERKEY", "", "", "/", TCMT_OS_DOMAIN, "");

        setDomainCookie("Joins_LoginStatus", "", "", "/", TCMT_OS_DOMAIN, "");
        setDomainCookie("Joins_MemID", "", "", "/", TCMT_OS_DOMAIN, "");
        setDomainCookie("Joins_MemName", "", "", "/", TCMT_OS_DOMAIN, "");
        setDomainCookie("Joins_ValidLogin", "", "", "/", TCMT_OS_DOMAIN, "");
        setDomainCookie("SSOInfo", "", "", "/", TCMT_OS_DOMAIN, "");

        if (documentUrl == parentDocumentUrl) {
            fnTopGnLoginLogout();
        }
        else {
            parent.fnTopGnLoginLogout();
        }

    }
    catch (e) {
    }
}


// SNS 로그인
function fnCMT_snsSiteLogin(cmt_site) {
    if (cmt_site == TCMT_UserSnsType) return;

    setDomainCookie("SSOInfo", "", "", "/", TCMT_OS_DOMAIN, "");
    setDomainCookie("Joins_MemID", "", "", "/", TCMT_OS_DOMAIN, "");
    setDomainCookie("Joins_MemName", "", "", "/", TCMT_OS_DOMAIN, "");
    setDomainCookie("Joins_ValidLogin", "", "", "/", TCMT_OS_DOMAIN, "");

    setDomainCookie("JCUBE_SOCIAL_ID", "", "", "/", TCMT_OS_DOMAIN, "");
    setDomainCookie("JCUBE_SOCIAL_NAME", "", "", "/", TCMT_OS_DOMAIN, "");
    setDomainCookie("JCUBE_SOCIAL_IMAGE", "", "", "/", TCMT_OS_DOMAIN, "");
    setDomainCookie("JCUBE_SOCIAL_TYPE", "", "", "/", TCMT_OS_DOMAIN, "");
    setDomainCookie("JCUBE_SOCIAL_USERKEY", "", "", "/", TCMT_OS_DOMAIN, "");

    if (cmt_site == "joins") {
        var parentDocumentUrl = parent.document.URL.toLowerCase().toString();
        var documentUrl = document.URL.toLowerCase().toString();

        if (documentUrl == parentDocumentUrl) {
            // 일반 document 에서 호출하는 경우
            location.href = TCMT_OS_SNS + "cmt_a_sns_sitelogin.aspx?site=" + cmt_site + "&TargetUrl=" + encodeURIComponent(documentUrl);
        }
        else {
            // iframe내에서 호출
            var targetUrl = '';
            if (documentUrl.indexOf('http://bbs.' + TCMT_OS_BASE_DOMAIN, 0) >= 0) {
                // bbs. 에서 호출하는 경우
                var parentDivIndex = parent.document.URL.indexOf('?', 0);
                if (parentDivIndex < 0) {
                    parentDivIndex = parent.document.URL.length;
                }

                targetUrl = parent.document.URL.substring(0, parentDivIndex);

                var queryDivIndex = document.URL.indexOf('?', 0);

                if (queryDivIndex >= 0) {
                    targetUrl = targetUrl + document.URL.substring(queryDivIndex, document.URL.length);
                }
            }
            else {
                // bbs. 외의 곳에서 호출하는 경우
                targetUrl = parent.document.Url;
            }
            parent.location.href = TCMT_OS_SNS + "cmt_a_sns_sitelogin.aspx?site=" + cmt_site + "&TargetUrl=" + encodeURIComponent(targetUrl);
        }
    }
    else {
        var documentUrl = document.URL.toLowerCase().toString();
        if( cmt_site == 'twitter'){
            alertLayer( '<span>트위터 로그인 서비스가 종료될 예정입니다.<br>서비스 이용에 참고 부탁 드립니다.</span>', function(){
                parent.location.href = TCMT_OS_SNS + "cmt_a_sns_sitelogin_redir.aspx?site=" + cmt_site + "&TargetUrl=" + encodeURIComponent(documentUrl);
            });
        } else {
            parent.location.href = TCMT_OS_SNS + "cmt_a_sns_sitelogin_redir.aspx?site=" + cmt_site + "&TargetUrl=" + encodeURIComponent(documentUrl);
        }
    }
}

function fnErrorDisplay(xid) {
    $(xid).toggle();
}


function commentWriteForm(atcTitle) {

    TCMT_TG.append('<div id="cmt_reg">'
    + '				    <div class="bd">'
    + '					    <fieldset>'
    + '						    <legend>나도한마디</legend>'
    + '                         <div class="bd-title">' 
    + '                              <span class="comment-total">전체 댓글 <em id="tCount">0</em></span>'
    + '                              <a class="comment-rule" target="_blank" href="https://tv.jtbc.co.kr/board/principle">게시판 관리기준 </a>'
    + '                         </div>'    
    + '						    <dl>'
    + '							    <dd class="txt">'
    + '								    <div class="txt_input">'
    + '							            <textarea cols="90" rows="3" title="댓글 입력" name="" ' + TCMT_READONLY + ' ondragenter="return false;" onpaste="return false" id="cmtCont" onkeydown="return TCMT_KeyCheck(event,this);" onkeyup="TCMT_CheckTextCount();">' + fnCMT_Title_LogInOut() + '</textarea>'
    + '                                     <span class="byte"><var id="cmtContCount">(0/250자)</var></span>'
    + '								    </div>'
    + '							    <img alt="등록" id="reg_btn" class="btn" src="https://images.' + TCMT_OS_BASE_DOMAIN + '/ui_jtbc/common/b_register.gif" onclick="TCMT_OnAddComment()"  /></dd>'
    + '						    </dl>'
    + '						    <div class="btn">'
    + '						    <input type=hidden id="cmtTitle" name="cmtTitle" value="' + atcTitle + '">'    
    + '						    </div>'
    + '					    </fieldset>'
    + '					    <span class="partnership"></span>'
    + '				    </div>'
    + '			    </div>');

    
    $('#cmt_reg a.comment-rule').click(function(event) {
        event.preventDefault();
        var targetUrl = $(this).attr('href');
        window.open(targetUrl, 'board_principle', 'width=550, height=600, scrollbars=yes');
        return false;
    });

    if( TCMT_UserLogin) {
        console.log('placeholder');
        $('#cmtCont').attr('placeholder', '댓글을 입력해주세요.');
    }
}

function createCommentList(arrItem) {

    if( arrItem == null) {
        console.log("createCommentList is null");
        return "";
    }
    
    var commentFormat = '';
    $.each(arrItem, function (i, itm) {
        commentFormat += TCMT_getCommentFormat(itm);
    });
    return commentFormat;

}

function TCMT_getCommentFormat(itm) {    
    if (itm.REP_NO <= 0) {
        return "";
    }
    
    var commentFormat = '';
    
    console.log(itm);

    if( Object.keys(itm).length == 3){
        $('#cmtItm_'+ itm.P_REP_NO +' ul.reply_list').append(getReplyCommentList(itm, itm.CMTReList));
        $('#cmtItm_'+ itm.P_REP_NO +' ul.reply_list').show();
        return "";
    }
    
    commentFormat += '<li id="cmtItm_' + itm.REP_NO + '" class="item">';
    commentFormat += '<div class="comment_info">';
    if (itm.USED_YN == 'Y') {
        
        commentFormat += '    <div class="comment_head">';
        commentFormat += '      <div class="nick">';
        if( itm.REG_LOGIN_TYPE == 'joins') {
            commentFormat += '          <i class="iss iss-' + itm.REG_LOGIN_TYPE + '"></i> <b>' + itm.REG_ID_MASKED + '</b>';
        } else {
            commentFormat += '          <i class="iss iss-' + itm.REG_LOGIN_TYPE + '"></i> <b>' + itm.REG_NAME_MASKED + '</b>';
        }
        commentFormat += '          <span class="date">' + itm.REG_DT + '</span>';
        commentFormat += '      </div>';
        commentFormat += '      <div class="edit">';

        if( itm.BLOCK_NOTIFY != null && itm.BLOCK_NOTIFY != '') {
            commentFormat += '<a href="#" class="toggle-content">내용보기</a>';
        } else if( itm.BLOCK_ACCOUNT == 'Y') {
            commentFormat += '<a href="javascript:unBlockAccount(' + itm.REP_NO + ',\''+ (itm.REG_LOGIN_TYPE == 'joins'? itm.REG_ID_MASKED:itm.REG_NAME_MASKED) +'\')" class="unblock-account">차단해제</a>';
        } else if( itm.OWNER == "Y") {
            commentFormat += '<a href="javascript:deleteComment(' + itm.REP_NO + ')">삭제</a>';        
        } else {
            commentFormat += '<a href="javascript:reportLayer(' + itm.REP_NO + ')">신고</a>';
        }
        
        commentFormat += '      </div>'
        commentFormat += '  </div>';
        commentFormat += '  <div class="comment_body">'
        if( itm.BLOCK_NOTIFY != '') {
            commentFormat += '     <span class="body_noty">내가 신고한 댓글입니다</span>';
            commentFormat += '     <span class="body_noty hidden_content">' + itm.ARTICLE_REP + '</span>';
        } else if( itm.BLOCK_ACCOUNT == 'Y') {
            commentFormat += '     <span class="body_noty">내가 차단한 이용자의 댓글입니다.</span>';
        } else {
            commentFormat += '     <span>' + itm.ARTICLE_REP + '</span>';
        }
        commentFormat += '  </div>';
        
        commentFormat += '     <div class="comment_foot">';
        commentFormat += '         <div class="act_wrap">';
        commentFormat += '             <a href="javascript:TCMT_OnVoteComment(' + itm.REP_NO + ',1)">추천 <b>' + itm.RECOM_CNT + '</b></a>';
        commentFormat += '             <a href="javascript:TCMT_OnVoteComment(' + itm.REP_NO + ',-1)">반대 <span>' + itm.OPPOSITE_CNT + '</span></a>';
        commentFormat += '             <a href="javascript:showReplyCommentForm(' + itm.REP_NO + ');" class="add_reply">답글달기</a>';
        commentFormat += '         </div>';
        commentFormat += '     </div>';
    } else {
        commentFormat += '      <p class="notice">이 글은 작성자 또는 관리자에 의해 삭제된 댓글입니다.</p>';
    }
    commentFormat += '     <div class="comment_reply">';
    commentFormat += '         <div class="reply_input">';
    commentFormat += '             <textarea placeholder="답글을 남겨주세요." id="commentReplyContent_' + itm.REP_NO + '"></textarea>';
    commentFormat += '             <button type="button" class="btn_add_reply" onclick="return replayCommentSave(' + itm.REP_NO + ')">등록</button>';
    commentFormat += '         </div>';
    commentFormat += '     </div>';
    commentFormat += '     <ul class="reply_list" style="display:'+ (itm.CMTReList != null ? '' : 'none') +'">'+ getReplyCommentList(itm.REP_NO, itm.CMTReList) +'</ul>';
    commentFormat += ' </div>';
    commentFormat += '</li>';
    
    return commentFormat;
 
}

function getReplyCommentList(repNo, commentList){
    
    var strHtml = "";
    
    $.each(commentList, function (i, itm) {
        strHtml += '<li class="item" id="cmtItm_'+ itm.REP_NO +'">';
        if(itm.USED_YN != 'Y'){
            strHtml += '      <p class="notice">이 글은 작성자 또는 관리자에 의해 삭제된 댓글입니다.</p>';
        } else {
            strHtml += '    <div class="comment_head">';
            strHtml += '        <div class="nick">';
            if( itm.REG_LOGIN_TYPE == 'joins') {
                strHtml += '            <i class="iss iss-' + itm.REG_LOGIN_TYPE + '"></i> <b>' + itm.REG_ID_MASKED + '</b>';
            } else {
                strHtml += '            <i class="iss iss-' + itm.REG_LOGIN_TYPE + '"></i> <b>' + itm.REG_NAME_MASKED + '</b>';
            }
            strHtml += '            <span class="date">' + itm.REG_DT + '</span>';
            strHtml += '        </div>';
            strHtml += '        <div class="edit">';
            if (itm.OWNER == 'Y') {
                strHtml += '            <a href="javascript:deleteComment(' + itm.REP_NO + ')">삭제</a>';
            }else if (itm.BLOCK_NOTIFY != null && itm.BLOCK_NOTIFY != '') {
                strHtml += '            <a href="#" class="toggle-content">내용보기</a>';
            } else if( itm.BLOCK_ACCOUNT == 'Y') {
                strHtml += '            <a href="javascript:unBlockAccount(' + itm.REP_NO + ',\''+ (itm.REG_LOGIN_TYPE == 'joins'? itm.REG_ID_MASKED:itm.REG_NAME_MASKED) +'\')">차단해제</a>';
            } else {
                strHtml += '<a href="javascript:reportLayer(' + itm.REP_NO + ')">신고</a>';
            }
            strHtml += '        </div>';
            strHtml += '    </div>';
            strHtml += '    <div class="comment_body">';
            if (itm.BLOCK_NOTIFY != null && itm.BLOCK_NOTIFY != '') {
                strHtml += '            <span class="body_noty">내가 신고한 댓글입니다</span>';
                strHtml += '            <span class="body_noty hidden_content">' + itm.ARTICLE_REP + '</span>';
            } else if( itm.BLOCK_ACCOUNT == 'Y') {
                strHtml += '            <span class="body_noty">내가 차단한 이용자의 댓글입니다</span>';
            } else {
                strHtml += '            <span>' + itm.ARTICLE_REP + '</span>';
            }

            strHtml += '    </div>';
        }
        strHtml += '</li>';
    });
    return strHtml;
}

/* # # # # # # # # # # */
function TCMT_OnAddComment() {
    
    $("#reg_btn").attr("disabled", "disabled");
    if (!TCMT_LoginCheck()) { 
        return; 
    }
    var cmtUrl = document.URL; // 현재 URL bit.ly로 축약

    if (document.URL != parent.document.URL) {
        // 다를 경우는 게시판
        cmtUrl = $('#bbs_article_shortcut_url').val();
    }

    var cmtCont = $('#cmtCont').val();
    var cmtTitle = $('#cmtTitle').val();
    var cmtSnsSend = $('#same_time').is(':checked') ? "T" : null;

    if (cmtCont.length <= 0) {
        alertLayer('내용을 입력하세요.');
        $("#reg_btn").removeAttr("disabled");
        $('#cmtCont').focus();
        return; 
    }
    if (cmtCont.length > TCMT_OS_MX_CONT) {
        alertLayer(TCMT_OS_MX_CONT + '자 이내로 입력하세요.');
        $('#cmtCont').focus(); return; 
    }
    var loader = getLoader();
   
    $('#TCMT_ContBox').prepend(loader);
    $('#divEmptyComment').hide();

    loader.slideDown(300, function () {
        $.ajax({ 
            type:'POST',
            url: TCMT_OS_H + 'cmt_a_write.aspx', 
            data: { 'ju_code': TCMT_JUCD, 'article_no': TCMT_ATCNO, 'cmtCont': cmtCont, 'cmtUrl': cmtUrl, 'cmtTitle': cmtTitle, 'cmtSnsSend': cmtSnsSend },
            async: false,
            success: function(rtnv) {
                try {
                    if (rtnv.REP_NO < 0) {
                        alertLayer(rtnv.CMTCont);
                    } else {
                        alertLayer("등록 되었습니다.");
                        TCMT_CommentReLoad();
                        setIncludeIframeResize();

                        if (typeof newsAnalysis != "undefined") {
                            newsAnalysis.init('comment', TCMT_JUCD, '');
                        }
                    }
                } catch (e) {
                    alert(e);
                    console.log(e);
                }

                loader.slideUp(300);
            },
            error: function(request, status, error) {
                console.log("code: %s, msg: %s, error: %s", request.status, request.responseText, error);
            },
        });
    });
    $("#reg_btn").removeAttr("disabled");
}

// Json Object 문자열 변경
function JSONtoString(object) { var results = []; for (var property in object) { var value = object[property]; if (value) results.push(property.toString() + ': ' + value); } return '{' + results.join(', ') + '}'; }

// 도메인 쿠키 설정
function setDomainCookie(name, value, expires, path, domain, secure) {
    document.cookie = name + "=" + escape(value) +
				((expires) ? "; expires=" + expires.toGMTString() : "") +
				((path) ? "; path=" + path : "") +
				((domain) ? "; domain=" + domain : "") +
				((secure) ? "; secure" : "");
}

// iframe 내에 있을 경우 높이 조절
function setIncludeIframeResize() {
    var parentDocumentUrl = parent.document.URL.toLowerCase().toString();
    var documentUrl = document.URL.toLowerCase().toString();

    if (documentUrl != parentDocumentUrl) {
        var iframe = null;
        var innerDoc = null;
        var objToResize = null;
        try {
            iframe = parent.window.document.getElementById('BBSFrame');
            innerDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document;
            objToResize = (iframe.style) ? iframe.style : iframe;
            objToResize.height = innerDoc.body.scrollHeight + 10;
            objToResize.height = ($(document).height() + 10).toString() + "px";
        }
        catch (err) {
            //alert(err.message);
        }
    }
}

function TCMT_CommentReLoad() {
    var loader = getLoader();
    $('#cmtCont').val('');
    $('#TCMT_ContBox').html('');
    $("#TCMT_ContBox").append(loader);
    TCMT_OS_PGI = 1;
    loader.slideDown(300, function () {
        TCMT_SetPaging();
        TCMT_CommentLoad("nc");
    });
    loader.slideUp(300);
}


    function reportLayer(repNo){
        if (!TCMT_LoginCheck()) {
            return;
        }

        if( $('div.dimm').length == 0 ) {
            $('body').append( "<div style=\"display:block\" class=\"dimm \"></div>");
        }
        
        var strLayerHtml = 
            '<div class="ly_pop_wrap popv2 _report_comment_layer" tabindex="0" id="popupReport">\n' +
            '    <div class="ly_inner">\n' +
            '      <div class="ly_head">\n' +
            '        <h3>신고</h3>\n' +
            '      </div>\n' +
            '      <div class="ly_cont">\n' +
            '        <form>\n' +
            '          <div class="radio_group border_bottom">\n' +
            '            <b>신고 항목 선택</b>\n' +
            '            <ul class="radio_list col-3">\n' +
            '              <li>\n' +
            '                <span class="input_radio_v2 news">\n' +
            '                  <input type="radio" id="c1" name="reportType" value="1">\n' +
            '                  <label for="c1"><em>댓글 신고</em></label>\n' +
            '                </span>\n' +
            '              </li>\n' +
            '              <li>\n' +
            '                <span class="input_radio_v2 news">\n' +
            '                  <input type="radio" id="c2" name="reportType" value="2">\n' +
            '                  <label for="c2"><em>작성자 신고</em></label>\n' +
            '                </span>\n' +
            '              </li>\n' +
            '              <li>\n' +
            '                <span class="input_radio_v2 news">\n' +
            '                  <input type="radio" id="c3" name="reportType" value="3">\n' +
            '                  <label for="c3"><em>작성자 차단</em></label>\n' +
            '                </span>\n' +
            '              </li>\n' +
            '            </ul>\n' +
            '          </div>\n' +
            '          <div class="radio_group">\n' +
            '            <b>신고 사유 선택</b>\n' +
            '            <ul class="radio_list">\n' +
            '              <li>\n' +
            '                <span class="input_radio_v2 news">\n' +
            '                  <input type="radio" id="r1" name="report" value="2">\n' +
            '                  <label for="r1"><em>도배/스팸</em></label>\n' +
            '                </span>\n' +
            '              </li>\n' +
            '              <li>\n' +
            '                <span class="input_radio_v2 news">\n' +
            '                  <input type="radio" id="r2" name="report" value="4">\n' +
            '                  <label for="r2"><em>음란/폭력</em></label>\n' +
            '                </span>\n' +
            '              </li>\n' +
            '              <li>\n' +
            '                <span class="input_radio_v2 news">\n' +
            '                  <input type="radio" id="r3" name="report" value="1">\n' +
            '                  <label for="r3"><em>불법 정보</em></label>\n' +
            '                </span>\n' +
            '              </li>\n' +
            '              <li>\n' +
            '                <span class="input_radio_v2 news">\n' +
            '                  <input type="radio" id="r4" name="report" value="3">\n' +
            '                  <label for="r4"><em>홍보/영리 목적</em></label>\n' +
            '                </span>\n' +
            '              </li>\n' +
            '              <li>\n' +
            '                <span class="input_radio_v2 news">\n' +
            '                  <input type="radio" id="r5" name="report" value="5">\n' +
            '                  <label for="r5"><em>비방/욕설/차별/혐오</em></label>\n' +
            '                </span>\n' +
            '              </li>\n' +
            '              <li>\n' +
            '                <span class="input_radio_v2 news">\n' +
            '                  <input type="radio" id="r6" name="report" value="6">\n' +
            '                  <label for="r6"><em>저작권 침해</em></label>\n' +
            '                </span>\n' +
            '              </li>\n' +
            '              <li>\n' +
            '                <span class="input_radio_v2 news">\n' +
            '                  <input type="radio" id="r7" name="report" value="9">\n' +
            '                  <label for="r7"><em>기타</em></label>\n' +
            '                </span>\n' +
            '              </li>\n' +
            '            </ul>\n' +
            '          </div>\n' +
            '          <div class="bx_textarea">\n' +
            '            <textarea title="상세내용" placeholder="신고 사유 설명이 필요한 경우 작성해주세요. (선택)" maxlength="200"></textarea>\n' +
            '          </div>\n' +
            '          <ul class="bl_dot my-20 mb-40">\n' +
            '            <li>허위 신고시 신고자에게 불이익이 발생할 수 있으니 신중하게 판단 후 신고해 주시기 바랍니다.</li>\n' +
            '          </ul>\n' +
            '          <div class="btn_area">\n' +
            '            <button type="button" class="btns gray outline _btn_report_cancel" onclick="popupClose(this)"><span>취소</span></button>\n' +
            '            <button type="button" class="btns _btn_report_ok" disabled><span>신고</span></button>\n' +
            '          </div>\n' +
            '        </form>\n' +
            '      </div><a href="#;" class="ly_close _btn_report_close" onclick="popupClose(this)">닫기</a>\n' +
            '    </div>\n' +
            '  </div>';
        
        if($('div._report_comment_layer').length == 0 ) {
            $('body').append(strLayerHtml);
        }

        $("body").addClass('fixed');
        $('div._report_comment_layer input[type=radio]').prop('checked', false);        
        $('div._report_comment_layer textarea').val('');
        
        
        $('div._report_comment_layer button._btn_report_cancel').unbind("click");
        $("div._report_comment_layer button._btn_report_cancel").click( function (e) {
            e.preventDefault();
            $('div.dimm').removeClass('show');
            $("body").removeClass('fixed');
            $('div._report_comment_layer').remove();
        });

        $('div._report_comment_layer button._btn_report_ok').unbind("click");
        $("div._report_comment_layer button._btn_report_ok").click(function (e) {
            e.preventDefault();
            commentReport(repNo);
        });

        $('div._report_comment_layer a._btn_report_close').unbind("click");
        $("div._report_comment_layer a._btn_report_close").click(function (e) {
            e.preventDefault();
            $('div.dimm').removeClass('show');
            $("body").removeClass('fixed');
            
            $('div._report_comment_layer').remove();
        });

        $('div._report_comment_layer input[type=radio]').unbind("click");
        $('div._report_comment_layer input[type=radio]').click(function(e) {
            if( $('div._report_comment_layer input[name=reportType]:checked').val()
                && $('div._report_comment_layer input[name=report]:checked').val()) {
                $('div._report_comment_layer button._btn_report_ok').prop("disabled", false);
                
            }
        });

        $('div._report_comment_layer textarea').unbind("keyup");
        $('div._report_comment_layer textarea').keyup(function(e) {
            e.preventDefault();
            if(getByteB($('div._report_comment_layer textarea').val()) > 400 ){
                var desc = $('div._report_comment_layer textarea').val();
                $('div._report_comment_layer textarea').val(getCutStr(desc, 400));
            }
        });

        $('div.dimm').addClass('show');
        $('div._report_comment_layer').addClass('show');
        
    }
    
    function loginConfirmLayer( msg ) {
        var strLayer =
            "<div class=\"ly_pop_wrap popv2 pop_sm _login_confirm_layer\">\n" +
            "        <div class=\"ly_cont\">\n" +
            "          <p class=\"txt_zone\">" + msg +"</p>\n" +
            "          <div class=\"btn_area justify\">\n" +
            "            <a href=\"#\" onclick=\"return false\" class=\"btns _btn_login_cancel\"><span>취소</span></a>\n" +
            "            <a href=\"#\" onclick=\"return false\" class=\"btns gray _btn_login_ok\"><span>확인</span></a>\n" +
            "          </div>\n" +
            "        </div>\n" +
            "        \n" +
            "        <a href=\"/\" class=\"ly_close _btn_login_close\"><span class=\"ico\"></span><span class=\"hide_txt\">닫기</span></a>\n" +
            "    </div>";
        
        if($('div._login_confirm_layer').length == 0 ) {
            $('body').append(strLayer);

            $(document).on("click", "a._btn_login_close", function () {
                $('div._login_confirm_layer').css('display','none');
                $('div.dimm').css('display','none');
            });
            
            $(document).on("click", "a._btn_login_cancel", function () {
                $('div._login_confirm_layer').css('display','none');
                $('div.dimm').css('display','none');
            });
            
            $(document).on("click", "a._btn_login_ok", function () {
                $('div._login_confirm_layer').css('display','none');
            });

            
        } else {
            $('div._login_confirm_layer').css('display','');
        }
    }

function deleteComment(repNo) {
    
    if (!TCMT_LoginCheck()) {
        return;   
    }

    $('#cmtItm_' + repNo).addClass('_del_check');
    $('#cmtItm_' + repNo).data('repno', repNo);
    
    confirmLayer("삭제하시겠습니까?" , function(){
        
        var reqNo = $('._del_check').data('repno');
        $.getJSON(TCMT_OS_H + 'cmt_a_delete.aspx?callback=?', {
            'repNo': repNo,
            'ju_code': TCMT_JUCD,
            'article_no': TCMT_ATCNO
        }, function (rtnv) {
            if (rtnv.length <= 0 || rtnv.ErrorMsg != '') {
                alertLayer(rtnv.ErrorMsg);

            } else {
                alertLayer("삭제되었습니다");                
                TCMT_CommentReLoad();
            }
        });
    })
}

function unBlockAccount(repNo, nickName) {

    if (!TCMT_LoginCheck()) {
        return;
    }
    if ($('div.dimm').length == 0) {
        $('body').append('<div class="dimm"></div>');
    }
    $('div.dimm').addClass("show");
    
    
    $('#cmtItm_' + repNo).addClass('_select_check');
    $('#cmtItm_' + repNo).data('repno', repNo);

    confirmLayerBlockAccount(nickName+ '님을 차단 해제하시겠습니까?' , '차단 해제시 상대방의 댓글을<br />확인할 수 있습니다.', function() {

        var reqNo = $('._select_check').data('repno');
        $.getJSON(TCMT_OS_H + 'cmt_a_repo.aspx?callback=?', {
            'repNo': repNo,
            'ju_code': TCMT_JUCD,
            'article_no': TCMT_ATCNO,
            'unblcok': 'Y'
        }, function (rtnv) {
            if (rtnv.length <= 0 || rtnv.ErrorMsg != '') {
                alertLayer(rtnv.ErrorMsg);

            } else {
                alertLayer("차단 해제가 완료되었습니다.");
                TCMT_CommentReLoad();
            }
        });
    })
}


function alertLayer(msg, callback){
    if( $('div.dimm').length == 0 ) {
        $('body').append('<div class="dimm"></div>');
    }
    if( $('div._alertLayer').length == 0) {
        $('body').append('' +
            '<div class="ly_pop_wrap popv2 pop_sm _alertLayer">\n' +
            '   <div class="ly_cont">' +
            '       <p class="txt_zone">'+ msg +'</p>' +
            '       <div class="btn_area justify">' +
            '           <a href="#" class="btns gray _btn_alert_ok"><span>확인</span></a>' +
            '       </div>' +
            '   </div>' +
            '   <a href="#" class="ly_close"><span class="ico"></span><span class="hide_txt">닫기</span></a>' +
            '</div>');
    }
    $("body").addClass('fixed');
    $('div.dimm').addClass('show');
    $('div._alertLayer').addClass('show');
    $('div._alertLayer div.ly_cont p.txt_zone').html(msg);

    $('div._alertLayer a._btn_alert_ok').unbind("click");
    $('div._alertLayer a._btn_alert_ok').click(function(e) {
        e.preventDefault();

        if(typeof callback == 'function'){
            callback();
        } else {
            if( callback ) {
                eval( callback );
            }
        }
        
        $('div.dimm').removeClass('show');
        $('div._alertLayer').remove();
        $("body").removeClass('fixed');
    });

    $('div._alertLayer a.ly_close').unbind("click");
    $('div._alertLayer a.ly_close').click(function(e) {
        e.preventDefault();
        $('div.dimm').removeClass('show');
        $('div._alertLayer').remove();
        $("body").removeClass('fixed');
    });
}


function confirmLayerBlockAccount(title, msg, callback){
    if( $('div.dimm').length == 0 ) {
        $('body').append('<div class="dimm"></div>');
    }
    if( $('div._alertLayer').length == 0) {
        $('body').append('' +
            '<div class="ly_pop_wrap popv2 pop_sm _unblock-ban-user" id="popupRelease">\n' +
            '    <div class="ly_cont">\n' +
            '      <b class="title">'+ title +'</b>\n' +
            '      <p class="txt_zone sm">'+ msg +'</p>\n' +
            '      <div class="btn_area justify">\n' +
            '        <button type="button" class="btns gray outline _btn_cancel"><span>취소</span></button>\n' +
            '        <button type="button" class="btns gray _btn_ok"><span>확인</span></button>\n' +
            '      </div>\n' +
            '    </div>\n' +
            '    <a href="#;" class="ly_close"><span class="ico"></span><span class="hide_txt">닫기</span></a>\n' +
            '  </div>');            
    }
    
    $("body").addClass('fixed');
    $('div.dimm').addClass('show')
    $('div._unblock-ban-user').addClass('show');

    $('div._unblock-ban-user button._btn_ok').unbind("click");
    $('div._unblock-ban-user button._btn_ok').click(function(e) {
        e.preventDefault();
        $('div.dimm').removeClass('show')
        $("body").removeClass('fixed');
        if(typeof callback == 'function'){
            callback();
        } else {
            if( callback ) {
                eval( callback );
            }
        }
        $('div._unblock-ban-user').remove();
    });

    $('div._unblock-ban-user button._btn_cancel').unbind("click");
    $('div._unblock-ban-user button._btn_cancel').click(function(e) {
        e.preventDefault();
        $('div.dimm').removeClass('show');
        $("body").removeClass('fixed');
        $('div._unblock-ban-user').remove();
    });

    $('div._unblock-ban-user a.ly_close').unbind("click");
    $('div._unblock-ban-user a.ly_close').click(function(e) {
        e.preventDefault();
        $('div.dimm').removeClass('show')
        $("body").removeClass('fixed');
        $('div._unblock-ban-user').remove();
    });
}


function confirmLayer( msg, callback){
    if( $('div.dimm').length == 0 ) {
        $('body').append('<div class="dimm show"></div>');
    }
    if( $('div._confirmLayer').length == 0) {
        $('body').append('' +
            '<div class="ly_pop_wrap popv2 pop_sm _confirmLayer">\n' +
            '   <div class="ly_cont">' +
            '       <p class="txt_zone">'+ msg +'</p>' +
            '       <div class="btn_area justify">' +
            '           <a href="#" class="btns _btn_cancel"><span>취소</span></a>' +
            '           <a href="#" class="btns gray _btn_ok"><span>확인</span></a>' +
            '       </div>' +
            '   </div>' +
            '   <a href="#" class="ly_close"><span class="ico"></span><span class="hide_txt">닫기</span></a>' +
            '</div>');
    }

    $("body").addClass('fixed');
    $('div._confirmLayer div.ly_cont p.txt_zone').html(msg);
    $('div.dimm').addClass('show');
    $('div._confirmLayer').addClass('show');

    $('div._confirmLayer a._btn_ok').unbind("click");
    $('div._confirmLayer a._btn_ok').click(function(e) {
        e.preventDefault();
        $('div.dimm').removeClass('show');
        $("body").removeClass('fixed');
        $('div._confirmLayer').remove();

        if(typeof callback == 'function'){
            callback();
        } else {
            if( callback ) {
                eval( callback );
            }
        }
    });

    $('div._confirmLayer a._btn_cancel').unbind("click");
    $('div._confirmLayer a._btn_cancel').click(function(e) {
        e.preventDefault();
        $('div.dimm').removeClass('show');
        $("body").removeClass('fixed');
        $('div._confirmLayer').remove();
    });


    $('div._confirmLayer a.ly_close').unbind("click");
    $('div._confirmLayer a.ly_close').click(function(e) {
        e.preventDefault();
        $('div.dimm').removeClass('show');        
        $("body").removeClass('fixed');
        $('div._confirmLayer').remove();
    });    
}

function getByteB(str) {
    var byte = 0;
    for (var i=0; i < str.length; ++i) {
        (str.charCodeAt(i) > 127) ? byte += 2 : byte++;
    }
    return byte;
}

function getCutStr(str, maxlen) {
    var byte = 0;
    for (var i=0; i < str.length; ++i) {
        (str.charCodeAt(i) > 127) ? byte += 2 : byte++;

        if( byte >= maxlen){
            return str.substring(0, i);
        }
    }
    return str;
}