jQuery.fn.highlight = function (text, o) {
return this.each( function(){
var replace = o || '$1';
jQuery(this).html( html.replace( new RegExp('('+text+'(?![\\w\\s?&.\\/;#~%"=-]*>))', "ig"), replace) );
});
}
jQuery.fn.autolink = function () {
return this.each( function(){
var re = /((http|https|ftp):\/\/[\w?=&.\/-;#~%-]+(?![\w\s?&.\/;#~%"=-]*>))/g;
jQuery(this).html( jQuery(this).html().replace(re, '$1') );
});
}
jQuery.fn.mailto = function () {
return this.each( function() {
var re = /(([a-z0-9*._+]){1,}\@(([a-z0-9]+[-]?){1,}[a-z0-9]+\.){1,}([a-z]{2,4}|museum)(?![\w\s?&.\/;#~%"=-]*>))/g
jQuery(this).html( jQuery(this).html().replace( re, '$1' ) );
});
}
jQuery.fn.trim = function(str) {
return typeof(str) == 'string' ? str.replace(/^\s\s*/, '').replace(/\s\s*$/, '') : '';
}
jQuery.extend({
getUrlVars: function(){
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
},
getUrlVar: function(name){
return jQuery.getUrlVars()[name];
}
});
var shortConsumerKey = null;
var cssPath = null;
var livereReply = null;
var result = null;
var listResult = null;
var replyResult = null;
var countResult = 0;
Livere = function( p_rep , p_targetDIV, p_title , p_tag , p_twitterAccount, p_s_id , p_skin_id, p_moreDefine, p_syncDomain, p_minimum_text, p_textLength ) {
this.rep = p_rep.indexOf("http://") == 0 ? escape(p_rep.substr(7)) : escape(p_rep);
this.moreDefine = !p_moreDefine ? 10 : p_moreDefine;
this.syncDomain = p_syncDomain;
this.skin_id = p_skin_id;
this.s_id = p_s_id;
this.targetDIV = p_targetDIV;
this.title = jQuery.trim(p_title);
this.titleInit = true;
this.tag = p_tag;
this.twitterAccount = p_twitterAccount;
this.textLength = !p_textLength ? 250 : p_textLength;
this.minimum_text = !p_minimum_text ? 5 : p_minimum_text;
this.defaultNewline = "
";
this.pageBlock = 10;
this.guestIcon = "http://www.livere.co.kr/public/icon/guest/a.png";
this.initMessage = {};
this.initMessage.secretContent = "관리자만 볼 수 있는 비밀 글 입니다";
this.initMessage.needLogin = "로그인 후 이용 가능합니다";
this.initMessage.snsid = "로그인 후 댓글을 작성하여 주세요";
this.initMessage.pltfrm_txt = "";
this.initMessage.writeCount = this.textLength;
this.initMessage.deleteConfirm = "삭제하시겠습니까?";
this.initMessage.deleteAuthFail = "본인 글만 삭제가능합니다";
this.initMessage.deleteFail = "삭제에 실패하였습니다";
this.initMessage.title = "로그인 후 작성 가능합니다";
this.initMessage.replyCount_txt = "전체댓글수 ";
this.initMessage.replyCount_txt2= "";
this.initMessage.textCount_txt = "";
this.initMessage.linkLivere = "라이브리에 연동하시겠습니까?";
this.initMessage.secret_txt = "비밀글쓰기";
this.initMessage.reactionA = "이미 참여하셨습니다";
this.initMessage.reactionB = "참여해주셔서 감사합니다";
this.initMessage.emptyReply = "본문없이 제목만 포스팅 하시겠습니까?";
this.initMessage.lowFlowMessage = "자 이상 입력해주세요";
this.initMessage.overFlowMessage = "자 까지만 입력 가능합니다";
this.initMessage.needNameAndPassword = "이름과 비밀번호를 입력하여 주세요";
this.initMessage.fire = function() {
jQuery(".primarySNS > strong").removeClass().addClass("snsid").text( this.snsid );
jQuery(".pltfrm_txt").html( this.pltfrm_txt );
jQuery(".logout").addClass("off");
livereReply.priObj._data = null;
jQuery(".primaryThumbnail").addClass("off");
jQuery("#contentText").val( this.title );
jQuery(".accountLayer").remove();
}
// 대표 도메인
this.priObj = Object();
this.priObj._data = null;
this.priObj.setData = function( obj ) {
if(this._data == obj) {
return;
}
if(obj.MEMBER_ISPRI) {
this._data = obj;
obj.USER_ICON = obj.MEMBER_ICON;
jQuery("#livereUserName").val( obj.MEMBER_NAME );
jQuery(".primaryThumbnail").removeClass("off").attr("src", obj.USER_ICON);
jQuery(".logout").removeClass("off");
jQuery(".primarySNS > strong").removeClass().addClass( obj.name ).text( obj.MEMBER_NAME );
jQuery(".sns_icons_wrapper > span").find("a").removeClass("primary").end().find("a." + obj.name).addClass("primary");
jQuery("#contentText").val( livereReply.titleInit ? livereReply.title + " " : "" );
if( livereReply.guestManager ) {
livereReply.guestManager.unset();
}
}
}
this.priObj.isLogged = function( withAlert ) {
var returnFlag = livereReply.priObj._data ? true : false;
if( !returnFlag && withAlert ) {
alert( livereReply.initMessage.needLogin );
}
return returnFlag;
}
this.accountManager = Object();
this.accountManager.sync = Object();
this.accountManager.sync.syncstart = function() {
var domain = eval(livereReply.syncDomain);
if( livereReply.forceSync || ( livereReply.accountManager.sync.need() && !domain.MEMBER_ISLOGIN ) ) {
setTimeout( "eval(livereReply.syncDomain).syncStart()" , 1000 );
}
}
this.accountManager.sync.syncoff = function() {
var syncDomain = livereReply.syncDomain;
var domainObject = livereReply.accountManager.getDomain( syncDomain );
if( domainObject && (domainObject.tryLogin || domainObject.MEMBER_ISLOGIN || domainObject.LOGIN_HISTORY) ) {
eval(livereReply.syncDomain).syncOff( livereReply.rep );
}
}
this.accountManager.sync.need = function() {
return (livereReply.syncDomain && !eval(livereReply.syncDomain).tryLogin && !livereReply.priObj.isLogged());
}
this.accountManager.isAbleAccount = function( member_seq ) {
var returnFlag = false;
jQuery( livereReply.accountManager.array ).each( function( idx , obj ) {
if( obj.MEMBER_SEQ == member_seq && obj.support ) {
returnFlag = true;
return false;
}
} );
return returnFlag;
}
this.accountManager.isMember = function( member_seq ) {
var returnFlag = false;
jQuery( livereReply.accountManager.array ).each( function( idx , obj ) {
if( obj.MEMBER_SEQ == member_seq ) {
returnFlag = true;
return false;
}
} );
return returnFlag;
}
this.accountManager.add = function( obj ) {
if(!this.array) this.array = Array();
this.array.push( obj );
}
this.accountManager.setAccount = function() {
var targetDIV = jQuery(".sns_icons_wrapper");
jQuery( this.array ).each( function( idx , obj ) {
if( obj.support ) {
var html = "";
obj.icon = jQuery(html);
jQuery( targetDIV ).append( obj.icon );
}
} );
}
this.accountManager.initArray = function() {
jQuery( this.array ).each( function( idx, obj ) {
obj.MEMBER_ISLOGIN = false;
});
}
this.accountManager.getDomain = function( domainName ) {
jQuery( this.array ).each( function( idx, obj ) {
if( obj.name == domainName )
return obj;
} );
return null;
}
this.accountManager.mergeAccount = function( jsonArr , justClear ) {
livereReply.initMessage.fire();
this.initArray();
if( justClear ) {
this.drawLoginData();
return;
}
var logged = false;
var target = null;
jQuery( this.array ).each( function( idx, obj ) {
if( obj.support ) {
jQuery( jsonArr ).each( function (idx2 , obj2) {
var cashDomain = obj;
var getDomain = obj2;
if(getDomain.MEMBER_DOMAIN && cashDomain.name == getDomain.MEMBER_DOMAIN.toLowerCase()) {
cashDomain = jQuery.extend( cashDomain , getDomain );
cashDomain.MEMBER_ISPRI = getDomain.MEMBER_ISPRI == "1" ? true : false;
cashDomain.MEMBER_ISLOGIN = getDomain.MEMBER_ISLOGIN == "1" ? true : false;
cashDomain.MEMBER_ISPOST = getDomain.MEMBER_ISPOST == "1" ? true : false;
cashDomain.LOGIN_HISTORY = true;
livereReply.priObj.setData( getDomain.MEMBER_ISPRI == "1" ? cashDomain : livereReply.priObj._data );
target = cashDomain.name;
return false;
}
logged = true;
});
}
});
if(logged && livereReply.priObj._data == null && target) {
livereReply.changePrimary( target , true );
}
livereReply.accountManager.sync.syncstart();
this.drawLoginData();
}
this.accountManager.drawLoginData = function() {
var manager = this;
jQuery( this.array ).each( function( idx, obj ) {
manager.loginControl( obj.name );
});
}
this.accountManager.loginControl = function( domain ) {
var target = this.getDomain( domain );
if(target.support) {
if(target.MEMBER_ISLOGIN && !target.MEMBER_ISPOST) {
target.icon.addClass("NotPost");
} else if ( target.MEMBER_ISLOGIN ) {
target.icon.removeClass("NotPost").addClass("on");
} else {
target.icon.removeClass("on");
target.icon.removeClass("NotPost");
}
}
}
this.accountManager.doLogout = function( domain ) {
var target = this.getDomain( domain );
target.MEMBER_ISLOGIN = false;
this.loginControl( target );
}
this.accountManager.doLogin = function( domain ) {
var target = this.getDomain( domain );
target.MEMBER_ISLOGIN = true;
this.loginControl( target );
}
this.accountManager.clickAction = function( domain ) {
var target = this.getDomain( domain );
if( target.MEMBER_ISLOGIN ) {
jQuery(".accountLayer").remove();
if(target.layer_isopen) {
target.layer_isopen = false;
return;
}
target.layer_isopen = true;
var actionControlBox = "";
actionControlBox += "
";
actionControlBox += "
";
actionControlBox += "
";
actionControlBox += " - " + target.MEMBER_NAME + "
";
actionControlBox += " - ";
actionControlBox += " ";
actionControlBox += " ";
actionControlBox += " ";
actionControlBox += "
";
actionControlBox += "
";
actionControlBox += "
";
target.icon.append( jQuery(actionControlBox) );
} else {
target.loginGate( livereReply.rep );
}
}
// accountManager util
this.accountManager.getDomain = function( domain ) {
return typeof(domain) == "string" ? eval(domain) : domain;
}
this.getFormHTML = function() {
var formHTML = "";
formHTML += "";
return formHTML;
}
this.attachFileComplete = function() {
var url = livereReply.url( "GetLivereAttached" );
jQuery.getJSON( url , function(data) {
var jsnReply = livereReply.convertJSON( data );
jQuery("#contentText").val( jQuery("#contentText").val() + " " + jsnReply.ATTACHITEM );
jQuery("#w_image").val( jsnReply.ATTACHITEM );
} );
}
this.attachAction = function( selected ) {
if(!livereReply.priObj.isLogged( true )) {
return;
}
var url = livereReply.url( "ver5/livereUploadwindow.jsp?custompath=" + cssPath + "&selected=" + selected , "exportURL=" + livereReply.rep );
livereReply.popup( url , 400, 170 );
livereReply.popup( url );
}
this.sendAction = function( parent_code ) {
if( !livereReply.priObj.isLogged( true ) || !livereReply.accountManager.isAbleAccount( livereReply.priObj._data.MEMBER_SEQ ) ) {
return;
}
var fm = jQuery("#livereForm");
var params = "";
var comment = "";
var useTitle = typeof(livereReply.title) == 'string' && livereReply.title.length > 0;
if(parent_code) {
var obj = document.getElementById("replyText");
if(obj.value.length > livereReply.textLength) {
alert( livereReply.textLength + livereReply.initMessage.overFlowMessage);
obj.value = obj.value.substring(0, (livereReply.textLength-2));
return;
}
jQuery("#w_parent").val( parent_code );
comment = jQuery("#replyText").val();
} else if( useTitle ) {
var comment = jQuery("#contentText").val();
comment = comment.replace( livereReply.title , '' );
} else {
comment = jQuery("#contentText").val();
}
if( comment.length < livereReply.minimum_text ) {
if( useTitle && comment.length < 2) {
if(!confirm(livereReply.initMessage.emptyReply)) return;
comment = livereReply.title;
} else {
alert( livereReply.minimum_text + livereReply.initMessage.lowFlowMessage);
return;
}
}
jQuery("#contentText").val( comment );
jQuery("#livereTitle").val( livereReply.title );
jQuery("#referer").val( unescape( livereReply.rep ) );
jQuery("#twitterAccount").val( livereReply.twitterAccount );
jQuery("#tag").val( livereReply.tag );
fm.children().each( function( idx , obj ) {
var value = jQuery(obj).val();
if(value != "") {
params += obj.name + "=" + encodeURIComponent(jQuery(obj).val()) + "&";
}
});
params = params.substr( params.length-1 ) == "&" ? params.substr( 0, params.length-1 ) : params;
var url = livereReply.url( "LivereInsert" , params );
jQuery.getJSON( url , function( data ) {
var param = {};
param['data'] = data;
return livereReply.fire('attachReply' , param);
});
}
this.attachReply = function( param ) {
var data = param['data'];
var jsnReply = livereReply.convertJSON( data , "FA" );
if(jsnReply == null) {
alert("도배는 나빠요~");
return false;
}
if(livereReply.priObj._data)
jQuery.extend( jsnReply , livereReply.priObj._data);
jsnReply.RE_CONTENT = jsnReply.CONTENTTEXT;
jsnReply.RE_PARENT = !jsnReply.W_PARENT ? jsnReply.RE_CODE : jsnReply.W_PARENT;
var d = new Date();
var date1 = livereReply.leadingZeros(d.getFullYear(), 4) + "-" + livereReply.leadingZeros((d.getMonth()+1), 2) + "-" + livereReply.leadingZeros(d.getDate(), 2);
var date2 = livereReply.leadingZeros(d.getHours(),2) + ":" + livereReply.leadingZeros(d.getMinutes(), 2) + ":" + livereReply.leadingZeros(d.getSeconds(), 2);
jsnReply.RE_REGDATE1 = date1;
jsnReply.RE_REGDATE2 = date2;
jsnReply.RE_AGREE = jsnReply.RE_BAD = "0";
var reObject = livereReply.listManager.getReplyHTML( jsnReply );
var param = {};
param['replyObject'] = reObject;
param['isNewReply'] = livereReply.listManager.totalCount == 0 ? false : true;
livereReply.fire( "addReply" , param );
//livereReply.listManager.addReply( reObject , livereReply.listManager.totalCount == 0 ? false : true );
jQuery("#w_parent").val( "" );
jQuery("#contentText").val( livereReply.titleInit ? livereReply.title : "" );
if( jsnReply.RE_CODE != jsnReply.RE_PARENT ) {
livereReply.listManager.drawReplyForm( jsnReply.RE_PARENT );
}
livereReply.listManager.totalCountControl( +1 );
return jsnReply;
}
this.textboxAction = function( obj ) {
if(!livereReply.priObj.isLogged()) {
obj.value = this.initMessage.needLogin;
return;
}
// active
if(livereReply.active) {
livereReply.active.write( obj.value );
}
var str_len = obj.value.length;
jQuery(".writeCount").html( str_len + "/" + livereReply.textLength );
if(str_len > livereReply.textLength) {
alert( livereReply.textLength + livereReply.initMessage.overFlowMessage);
obj.value = obj.value.substring(0, (livereReply.textLength-2));
livereReply.textboxAction(obj);
}
}
this.livereLogout = function() {
jQuery.getScript( this.url("LiveReLogOut" ), function( data ) {
livereReply.accountManager.mergeAccount( null , true );
livereReply.accountManager.sync.syncoff();
if(livereReply.guestManager) {
livereReply.guestManager.init();
}
});
}
this.changePrimary = function( domain , isDirect ) {
if(!isDirect) this.accountAction( domain );
domain = this.accountManager.getDomain( domain );
if( domain != null ) {
var url = this.url("SetPrimarySNS" , "member_seq=" + domain.MEMBER_SEQ);
jQuery.getScript( url, function() {
livereReply.renewMembership();
});
}
}
this.domainLogout = function( domain ) {
this.accountAction( domain );
domain = this.accountManager.getDomain( domain );
var param = "member_seq=" + domain.MEMBER_SEQ + "&logoutDomain=" + domain.MEMBER_DOMAIN;
jQuery.getScript( this.url("DomainLogOut" , param ), function() {
livereReply.renewMembership();
});
}
this.setPostingDomain = function( domain ) {
this.accountAction( domain );
domain = this.accountManager.getDomain( domain );
var isPost = domain.MEMBER_ISPOST != 0 ? 0 : 1;
var param = "member_seq=" + domain.MEMBER_SEQ + "&member_ispost=" + isPost;
jQuery.getScript( this.url("setPostingDomain" , param ), function() {
livereReply.renewMembership();
});
}
this.renewMembership = function() {
var param = "apitype=cookielogin";
var url = livereReply.url("LivereAPI" , param);
jQuery.getJSON( url , function(data) {
var result = livereReply.convertJSON( data );
livereReply.accountManager.mergeAccount( result );
});
}
this.accountAction = function( snsName ) {
this.accountManager.clickAction( snsName );
}
// livereUtils
this.replaceAll = function( source , stringToFind , stringToReplace ) {
var temp = source;
var index = temp.indexOf(stringToFind);
while(index != -1){
temp = temp.replace(stringToFind,stringToReplace);
index = temp.indexOf(stringToFind);
}
return temp;
}
this.autoLink = function( obj ) {
var re = /((http|https|ftp):\/\/[\w?=&.\/-;#~%-]+(?![\w\s?&.\/;#~%"=-]*>))/g;
return obj.replace(re, '$1');
}
this.popup = function(url, width, height) {
var left = (screen.width - width) / 2 ;
var top = (screen.height - height) / 2;
var popupProperties = "width="+ width + ",height=" + height + ",left="+ left +",top="+ top +",scrollbars=0";
window.open(url, "attach", popupProperties);
}
this.leadingZeros = function(n, digits) {
var zero = '';
n = n.toString();
if (n.length < digits) {
for (i = 0; i < digits - n.length; i++)
zero += '0';
}
return zero + n;
}
this.url = function( urlAddon , param , prefix) {
if(param == true) {
return urlAddon + prefix + "&dummy=" + Math.random() + "&domain=" + document.domain + "&re_refer=" + livereReply.rep;
}
urlAddon = livereReply.urlSet.getUrl( urlAddon );
var url = "http://www.livere.co.kr/" + urlAddon + "?dummy=" + Math.random() + "&livereCallback=?&domain=" + document.domain + "&re_refer=" + livereReply.rep;
return param ? url + "&" + param : url
}
this.setActiveAccount = function( object ) {
this.accountManager.add( object );
}
this.reInit = function( targetLayer ) {
jQuery("#" + targetLayer).append( jQuery("#livere_platform") );
jQuery("#contentText").val( livereReply.titleInit ? livereReply.title + " " : "" );
var param = "apitype=count";
var url = livereReply.url("LivereAPI" , param);
jQuery.getJSON( url , function(data) {
var data = livereReply.convertJSON( data );
livereReply.listManager.totalCount = 0;
livereReply.listManager.totalCountControl( parseInt(data.COUNT) );
var params = {};
params['sort'] = 'new';
params['page'] = 1;
params['needClear'] = true;
livereReply.fire('getArticle' , params);
} );
}
this.articleAction = function( re_code , type ) {
var obj = livereReply.listManager.getObject( re_code ).wrapper;
var param = "apitype=reaction&re_code=" + re_code + "&type=" + type;
var url = livereReply.url("LivereAPI" , param);
jQuery.getJSON( url , function(data) {
var result = livereReply.convertJSON( data );
switch ( result.RESULT ) {
case "-2" :
alert( livereReply.initMessage.reactionA );
break;
default :
var target = type == 'good' ? obj.find( ".recommend_count" ) : obj.find( ".sympathy_count" );
var no = parseInt( target.html() );
target.html( ++no );
alert( livereReply.initMessage.reactionB );
break;
}
} );
}
this.openPage = function( re_code ) {
var obj = livereReply.listManager.getObject( re_code );
var domain = eval( obj.MEMBER_DOMAIN );
if( domain && typeof(domain.openPage) == "function" ) {
domain.openPage( obj );
}
}
this.getArticle = function( params ) {
var sort = params['sort'];
var page = params['page'];
var needClear = params['needClear'];
sort = typeof(sort) == "string" ? sort : "new";
page = typeof(page) == "number" ? page : 1;
livereReply.listManager.currentPage = page;
var param = "apitype=list&sort=" + sort + "&page=" + page + "&pagesize=" + livereReply.moreDefine;
var url = livereReply.url("LivereAPI" , param);
jQuery.getJSON( url , function(data) {
if( needClear ) {
jQuery("#reply_list_wrapper").empty();
livereReply.listManager.replys = Array();
jQuery( ".sort_tab > li" ).removeClass();
jQuery( "#" + sort ).parent("li").addClass("on");
}
var listData = livereReply.convertJSON( data , "FA" );
if( listData == null ) {
return;
}
jQuery("#moreBtn").remove();
livereReply.listManager.drawList( listData );
livereReply.listFirstInited = true;
} );
}
this.addReply = function( re_code ) {
this.listManager.drawReplyForm( re_code );
}
this.fire = function( funName , params ) {
var chainFunction = livereReply.chainFunctionManager.getProcess( funName );
var livereFunction = null;
switch( funName ) {
case "addReply" :
livereFunction = livereReply.listManager.addReply;
break;
case "sendAction" :
livereFunction = livereReply.sendAction;
break;
case "attachReply" :
livereFunction = livereReply.attachReply;
break;
case "getArticle" :
livereFunction = livereReply.getArticle;
break;
default :
break;
}
if( livereFunction ) {
if( chainFunction ) {
return chainFunction( params , livereFunction );
} else {
return livereFunction( params );
}
}
}
// chainFunctionManager
this.chainFunctionManager = [];
this.chainFunctionManager.getProcess = function( funName ) {
for( var i = 0; i < livereReply.chainFunctionManager.length; i++ ) {
var chain = livereReply.chainFunctionManager[i];
if( chain.name == funName ) return chain.func;
}
return false;
}
this.listManager = [];
this.listManager.totalCount = null;
this.listManager.currentPage = 1;
this.listManager.listHeaderObject = null;
this.listManager.replys = Array();
this.listManager.totalCountControl = function (val) {
this.totalCount = this.totalCount + val;
jQuery("#totalCountDiv").html( this.totalCount );
}
this.listManager.drawList = function( listData ) {
var listManager = this;
jQuery( listData ).each( function( idx , obj ) {
var reObject = listManager.getReplyHTML(obj);
if( reObject ) {
var param = {};
param['replyObject'] = reObject;
livereReply.fire("addReply" , param);
}
});
var needMoreFlag = typeof(listData) == "object" && listData.length >= livereReply.moreDefine;
livereReply.listManager.navigation( needMoreFlag );
}
this.listManager.navigation = function( needMore ) {
var currentSort = jQuery( ".sort_tab > li" ).filter(".on").find("a").attr("id");
var pageSize = livereReply.moreDefine;
var pageBlock = livereReply.pageBlock;
var currentPage = livereReply.listManager.currentPage;
var totalRows = livereReply.listManager.totalCount;
if( livereReply.usePageNavigation ) {
var totalPage = totalRows % pageSize == 0 ? (totalRows / pageSize) : (totalRows / pageSize )+1;
totalPage = totalPage == 0 ? 1 : totalPage;
totalPage = Math.floor(totalPage);
var startBlock = 0;
var endBlock = 0;
if( currentPage < livereReply.pageBlock + 1 ) {
startBlock = 1;
endBlock = livereReply.pageBlock;
} else {
startBlock = currentPage % pageBlock == 0 ?
((currentPage / 10) - 1) * 10 + 1
: (Math.floor( currentPage / pageBlock ) * 10) + 1;
endBlock = startBlock + pageBlock - 1;
}
endBlock = totalPage < endBlock ? totalPage : endBlock;
var naviStr = "";
naviStr += currentPage > pageBlock ? "
" : "";
for(var i = startBlock; i <= endBlock; i++) {
naviStr += currentPage == i ? "
" + i + " " : "
" + i + "";
}
naviStr += endBlock >= totalPage ? "" : "
";
naviStr += "
";
var naviStrObject = jQuery( naviStr );
jQuery("#reply_list_wrapper").append( naviStrObject );
} else if(needMore) {
var moreBtnObject = jQuery("More");
jQuery( moreBtnObject ).click( function() {
var param = {};
param['sort'] = currentSort;
param['page'] = currentPage + 1;
livereReply.fire( 'getArticle' , param )
} );
jQuery("#reply_list_wrapper").append( moreBtnObject );
}
}
this.listManager.addReply = function ( params ) {
var replyObject = null;
var isNewReply = null;
if(params) {
replyObject = params['replyObject'];
isNewReply = params['isNewReply'];
}
var replyBody = replyObject.wrapper;
//replyBody.css("display" , "none");
if(replyObject.isSub) {
var parentReply = livereReply.listManager.getObject( replyObject.RE_PARENT );
parentReply.replyBody.append( replyBody );
} else {
if( livereReply.listManager.getNumChildren() == 0) {
jQuery("#reply_list_wrapper").append( replyBody );
} else if( isNewReply ) {
jQuery("#reply_list_wrapper :first").before( replyBody );
} else {
jQuery("#reply_list_wrapper").append( replyBody );
}
}
//replyBody.slideDown(400);
return params;
}
this.listManager.getNumChildren = function() {
return jQuery("#reply_list_wrapper").children().length;
}
this.listManager.getReplyHTML = function( re ) {
if(!this.listHeaderObject) {
var headerHTML = this.getListHeaderHTML();
this.listHeaderObject = jQuery(headerHTML);
this.listHeaderObject.ready( function() {
livereReply.listManager.listHeaderObject.find(".sort_tab").find("a").click( function() {
var params = {};
params['sort'] = jQuery(this).attr("id");
params['page'] = 1;
params['needClear'] = true;
livereReply.fire('getArticle' , params);
} );
} );
jQuery("#platform_wrapper").after( this.listHeaderObject );
}
re.owner = livereReply.accountManager.isMember( re.MEMBER_SEQ );
re.deleteAble = re.MEMBER_SEQ == "" || re.owner;
re.isSecret = re.RE_CONTENT == "secretContent" && !re.owner;
re.RE_CONTENT = re.isSecret ? livereReply.initMessage.secretContent : re.RE_CONTENT;
re.MEMBER_DOMAIN = re.MEMBER_DOMAIN == "" ? "guest" : re.MEMBER_DOMAIN.toLowerCase();
re.USER_ICON = re.USER_ICON == "" || typeof(re.USER_ICON) == "undefined" ? livereReply.guestIcon : re.USER_ICON;
re.RE_NAME = re.RE_NAME ? re.RE_NAME : re.MEMBER_NAME;
re = re.RE_CODE != re.RE_PARENT ? livereReply.listManager.makeSubReplyHTML( re ) : livereReply.listManager.makeParentReplyHTML( re );
this.replys.push( re );
return re;
}
this.listManager.makeParentReplyHTML = function( re , isEmptyObject ) {
var replyWrapper = "";
replyWrapper += "";
replyWrapper += "
";
var replyThumb = "";
if( !isEmptyObject ) {
replyThumb += " ";
replyThumb += "

";
replyThumb += "
";
}
var replyBody = "";
replyBody += " ";
replyBody += "
";
replyBody += "
";
if( !isEmptyObject ) {
replyBody += "
";
replyBody += " - ";
replyBody += " ";
replyBody += " " + re.RE_NAME + "";
replyBody += " " + re.RE_REGDATE1 + " " + re.RE_REGDATE2 + "";
replyBody += " ";
replyBody += "
";
replyBody += " - ";
if(re.deleteAble)
replyBody += " ";
replyBody += " ";
replyBody += " " + re.RE_BAD + "";
replyBody += " " + re.RE_AGREE + "";
replyBody += "
";
replyBody += " - ";
replyBody += " ";
if(re.RE_IMAGE != "") {
var movieURL = re.RE_IMAGE;
if( movieURL ) {
if(movieURL.indexOf("youtu.be") != -1){
movieURL = movieURL.replace("youtu.be", "www.youtube.com/embed");
movieURL = movieURL.indexOf("&") != -1 ? movieURL.substring(0, movieURL.indexOf("&")) : movieURL;
} else if( movieURL.indexOf("/watch?v=") != -1) {
movieURL = movieURL.replace("watch?v=", "embed/");
movieURL = movieURL.indexOf("&") != -1 ? movieURL.substring(0, movieURL.indexOf("&")) : movieURL;
}
var videoThumb = movieURL.replace( "http://www.youtube.com/embed/", "" );
if(movieURL.indexOf("youtu") != -1) {
replyBody += "
";
replyBody += "

";
replyBody += "
";
replyBody += "
";
replyBody += " " + movieURL + "";
replyBody += " ";
replyBody += " ";
replyBody += " ";
replyBody += "
";
} else {
replyBody += " ";
replyBody += "

";
replyBody += "
";
replyBody += " " + re.RE_IMAGE + "";
replyBody += " ";
replyBody += " ";
replyBody += " ";
replyBody += "
";
}
}
}
replyBody += re.RE_CONTENT + "";
replyBody += " ";
replyBody += "
";
}
replyBody += "
";
replyBody += "
";
replyBody += "
";
replyBody += "
";
var replyAddBtn = "";
replyAddBtn += " ";
re.wrapper = jQuery( replyWrapper );
re.replyThumb = jQuery( replyThumb );
//re.replyBody = jQuery( livereReply.autoLink(replyBody) );
re.replyBody = jQuery( replyBody );
re.replyAddBtn = jQuery( replyAddBtn );
re.replyBody.find(".re_content").append( re.replyAddBtn );
re.wrapper.append ( re.replyThumb );
re.wrapper.append ( re.replyBody );
re.child = Array();
re.isSub = false;
return re;
}
this.listManager.imageViewLayer = function( re_code, content ) {
var obj = livereReply.listManager.getObject( re_code ).replyBody;
if( content.indexOf("youtu") != -1 ) {
obj.find(".attach_image > img").hide();
obj.find(".attach_image > img").removeClass("thumbNail");
obj.find(".attach_image > iframe").addClass("overView");
obj.find(".attach_image > span").addClass("overViewNavi");
} else {
obj.find(".attach_image > img").removeClass("thumbNail");
obj.find(".attach_image > img").addClass("overView");
obj.find(".attach_image > span").addClass("overViewNavi");
}
}
this.listManager.imageViewLayerClose = function( re_code, content ) {
var obj = livereReply.listManager.getObject( re_code ).replyBody;
if( content.indexOf("youtu") != -1 ) {
obj.find(".attach_image > img").show();
obj.find(".attach_image > iframe").removeClass("overView");
obj.find(".attach_image > iframe").attr("src", content);
obj.find(".attach_image > span").removeClass("overViewNavi");
obj.find(".attach_image > img").addClass("thumbNail");
} else {
obj.find(".attach_image > img").removeClass("overView");
obj.find(".attach_image > span").removeClass("overViewNavi");
obj.find(".attach_image > img").addClass("thumbNail");
}
}
this.listManager.makeSubReplyHTML = function( re ) {
var subReply = "";
if(!livereReply.listManager.getObject( re.RE_PARENT )) {
var emptyRe = Object();
emptyRe.RE_CODE = re.RE_PARENT;
emptyRe = livereReply.listManager.makeParentReplyHTML( emptyRe , true );
livereReply.listManager.replys.push( emptyRe );
var param = {};
param['replyObject'] = emptyRe;
livereReply.fire("addReply" , param);
}
subReply += "";
//subReply += "
";
subReply += "
";
re.isSub = true;
livereReply.listManager.getObject( re.RE_PARENT ).child.push( re );
re.wrapper = jQuery( livereReply.autoLink(subReply) );
return re;
}
this.listManager.drawReplyForm = function( re_code ) {
var obj = this.getObject( re_code );
/*
jQuery(".re_reply").slideUp(400 , function() {
jQuery(this).remove();
});
*/
jQuery(".re_reply").remove();
if(obj.replyFormIsOpen) {
obj.replyFormIsOpen = false;
return;
}
var replyFormHTML = "";
replyFormHTML += "";
//replyFormHTML += "
";
replyFormHTML += "
";
var replyFormObj = jQuery( replyFormHTML );
//replyFormObj.css("display" , "none");
obj.replyBody.find(".articles_right_bottom").after( replyFormObj );
/*
replyFormObj.slideDown('300' , function() {
jQuery("#replyText").focus();
var domain = obj.MEMBER_DOMAIN;
if( domain == 'twitter' ) {
jQuery("#replyText").val( "@" + obj.RE_NAME + " " );
livereReply.changePrimary( domain , true );
} else if( domain == 'me2day' ) {
jQuery("#replyText").val( "\\" + obj.RE_NAME + "\\ " );
livereReply.changePrimary( domain , true );
}
});
*/
jQuery("#replyText").focus();
var domain = obj.MEMBER_DOMAIN;
if( domain == 'twitter' ) {
jQuery("#replyText").val( "@" + obj.RE_NAME + " " );
livereReply.changePrimary( domain , true );
} else if( domain == 'me2day' ) {
jQuery("#replyText").val( "\\" + obj.RE_NAME + "\\ " );
livereReply.changePrimary( domain , true );
}
obj.replyFormIsOpen = true;
}
this.listManager.getObject = function( re_code ) {
var returnObject = null;
jQuery( this.replys ).each( function( idx , obj ) {
if( obj.RE_CODE == re_code ) {
returnObject = obj;
}
} );
return returnObject;
}
this.listManager.getListHeaderHTML = function() {
var listHeaderHTML = "";
listHeaderHTML += "";
listHeaderHTML += "";
return listHeaderHTML;
}
this.listManager.deleteArticle = function ( re_code ) {
var targetObject = livereReply.listManager.getObject( re_code );
var deleteCount = targetObject.child ? (targetObject.child.length + 1) : 1;
livereReply.listManager.totalCountControl( -deleteCount );
/*
targetObject.wrapper.slideUp(400 , function() {
targetObject.wrapper.remove();
} );
*/
targetObject.wrapper.remove();
}
this.deleteArticle = function( re_code ) {
var targetObject = livereReply.listManager.getObject( re_code );
if( targetObject.MEMBER_SEQ == "" && livereReply.guestManager ) {
return livereReply.guestManager.deleteAction( targetObject );
}
if(!livereReply.accountManager.isMember( targetObject.MEMBER_SEQ )) {
alert( livereReply.initMessage.deleteAuthFail );
return;
} else if(!confirm( livereReply.initMessage.deleteConfirm ))
return;
var url = livereReply.url("LivereDelete" , "re_code=" + re_code);
jQuery.getScript( url , function() {
switch( deleteResult ) {
case "-1" :
alert( livereReply.initMessage.needLogin );
break;
default :
livereReply.listManager.deleteArticle( re_code );
break;
}
} );
}
this.urlSet = {};
this.urlSet.charset = typeof(document.charset) == "undefined" ? document.characterSet : document.charset;
this.urlSet.array = [
{'apiname' : 'RenewMembership' , 'replace' : 'RenewMembership_kr'},
{'apiname' : 'LivereAPI' , 'replace' : 'LivereAPI_kr'},
{'apiname' : 'LivereInsert' , 'replace' : 'LivereInsert_kr'},
{'apiname' : 'WriteGuest' , 'replace' : 'WriteGuest_kr'}
];
this.urlSet.getUrl = function( val ) {
var flag = (livereReply.urlSet.charset.toUpperCase() == "UTF-8" || livereReply.urlSet.charset.toUpperCase() == "UTF8" || livereReply.urlSet.charset.toUpperCase() == "UTF");
var returnAPIurl = null;
jQuery( livereReply.urlSet.array ).each( function(idx , vv) {
if( vv['apiname'] == val ) {
returnAPIurl = vv['replace'];
return false;
}
});
if( returnAPIurl == null )
return val;
return flag ? val : returnAPIurl;
}
this.pluginLauncherInit = function() {
var url = livereReply.url( "ver5/addon/plugin/loader.js" );
jQuery.getScript( url );
}
this.init = function () {
if( window.location.href.indexOf('ditto.gsshop.com') > -1 ) {
livereReply.livereLoader();
return;
}
jQuery(document).ready( function() {
livereReply.livereListener();
} );
jQuery(window).scroll( function() {
livereReply.livereListener();
} );
}
this.livereListener = function() {
if( !livereInited ) {
var compareValue = jQuery(window).scrollTop() + jQuery(window).height();
var livereTop = getCurrentPosition( document.getElementById( livereReply.targetDIV ) )['top'];
if( livereTop != -1 && compareValue >= livereTop ) {
livereReply.livereLoader();
}
}
}
var livereInited = false;
this.listFirstInited = false;
this.livereLoader = function() {
if( livereInited ) return;
livereInited = true;
//if( livereReply.skin_id == "default" ) {
var css = jQuery("");
jQuery("head").append( css );
//}
jQuery.getScript( this.url("GetCssPath" , "skin_id=" + livereReply.skin_id) , function() {
css = jQuery("");
jQuery("head").append( css );
});
var accounts = this.url( "LivereAccounts" , "s_id=" + livereReply.s_id );
jQuery.getScript( accounts , function() {
var html = livereReply.getFormHTML();
jQuery("#" + livereReply.targetDIV).append( jQuery(html) );
livereReply.pluginLauncherInit();
//livereReply.secondStep();
setTimeout("livereReply.secondStep", 500);
} );
}
this.secondStepInit = false;
this.secondStep = function() {
if( livereReply.secondStepInit ) return;
livereReply.secondStepInit = true;
livereReply.accountManager.setAccount();
livereReply.renewMembership();
if(livereReply.useGuest) {
var url = livereReply.url( "ver5/addon/guest/guest.jsp?dummy=" + Math.random() );
jQuery.getScript( url );
}
if( typeof(livereReply.listManager.totalCount) == 'object' ) {
var param = "apitype=count";
var url = livereReply.url("LivereAPI" , param);
jQuery.getJSON( url , function(data) {
data = livereReply.convertJSON( data );
livereReply.listManager.totalCount = parseInt( data.COUNT );
if( livereReply.listManager.totalCount > 0 ) livereReply.fire('getArticle' , {});
} );
} else if( typeof(livereReply.listManager.totalCount) == 'number' && livereReply.listManager.totalCount > 0 ){
livereReply.fire('getArticle' , {});
}
if(livereReply.shortConsumerKey) {
var hv = jQuery("");
jQuery("#livereForm").append( hv );
}
}
this.convertJSON = function( data , type ) {
data = jQuery.trim(data);
if( data != '' && data != '[]') {
var arrExp = /^\[/g; var objExp = /^{/g; var brExp = /\n|\r|\r\n|\n\r/g;
if( brExp.test( data ) ) {
data = data.replace( brExp , livereReply.defaultNewline );
}
try { if( type ) { return type == "FA" ? eval(data) : eval("("+data+")"); }} catch( err ) {};
if( arrExp.test(data) ) {
return eval( data );
} else if( objExp.test(data) ){
return eval("("+data+")");
}
return eval("("+data+")");
}
return null;
}
this.setCustomShortURL = function( shortConsumerKey ) {
this.shortConsumerKey = shortConsumerKey
}
}
function getCurrentPosition(e) {
var l = 0;
var t = 0;
while (e.offsetParent) {
l += e.offsetLeft + (e.currentStyle ? VL_int(e.currentStyle.borderLeftWidth) : 0);
t += e.offsetTop + (e.currentStyle ? VL_int(e.currentStyle.borderTopWidth) : 0);
e = e.offsetParent;
}
l += e.offsetLeft + (e.currentStyle ? VL_int(e.currentStyle.borderLeftWidth) : 0);
t += e.offsetTop + (e.currentStyle ? VL_int(e.currentStyle.borderTopWidth) : 0);
return { 'left': l, 'top': t };
}
function VL_int(v) {
v = parseInt(v);
return isNaN(v) ? 0 : v;
}