PageSourceSearch

https://cdn.nbntv.kr/script/reply.js

js nbntv.kr collected 2026-10-02 19:07:28 UTC 6,940 bytes, 226 lines download raw bytes

1var reply = {
2	parent_idxno:'',
3	captchaEnable:'',
4	replyAll:'',
5	reply_sc_order_by:'',
6	reply_page:'',
7	
8	reply_bbs_table:'',
9
10	// 모달 타이틀 및 비회원 폼 데이터 전달대상을 구한다. 
11	replyWrite:function(event){
12		var modalStr;	
13		switch($(this).data('mode')){
14			case "reply"  : 
15				modalStr = '댓글쓰기';
16				$("#nomember-info").data( "target", '');			
17				break;
18
19			case "sub_reply" : 
20				modalStr = '답글쓰기'; 			
21				$("#nomember-info").data( "target", event.data.reply_parent_idxno);
22				
23				break;			
24		}
25
26		$("#reply-modal .reveal-title").html(modalStr);	
27		$("#reply-modal").foundation('open');
28
29	},
30
31	// 댓글옵션 
32	viewOption:function(event) {
33
34		if($(this).siblings('.comments-more-option').css("display") == "none") {
35			$(".comments-more-option").hide();
36			$(this).siblings('.comments-more-option').show();
37		} else {		
38			$(this).siblings('.comments-more-option').hide();
39		}
40
41	},
42
43	// 삭제옵션 
44	setDeleteOption:function(event){
45
46		$("#reply-delete-mode").val( $(this).closest('article').data('mode') );
47		$("#reply-delete-idxno").val( $(this).closest('article').data('idxno') );
48		$("#reply-delete-reply-parent-idxno").val( $(this).closest('article').data('reply-parent-idxno') );
49
50		if( $(this).closest('article').data('is-member') == 'Y'){
51			$("#delete-password-field").hide();
52		}	
53
54		$("#reply-delete-modal").foundation('open');
55
56	},
57
58	// 추천
59	setVote:function(evnet){
60		var $o = $(this);
61		var idxno = $o.closest('article').data('idxno');
62
63		if($o.attr('id').indexOf('vote-up') != '-1'){
64			var voteType = "recommend";
65			var tempClass = "icon-thumbs-up-o";
66		}else if($o.attr('id').indexOf('vote-down') != '-1'){
67			var voteType = "dissent";
68			var tempClass = "icon-thumbs-down-o";
69		}
70		
71		
72		$o.find("i").removeClass(tempClass);
73		$o.find("i").addClass('icon-spinner animate-spin');
74					
75		$.ajax({
76					  type: "post",
77					  dataType: "json",
78					  url: "ajaxReplyVote.php",
79					  data:{
80						  idxno:idxno,
81						  voteType:voteType
82					  },
83					  success: function(json) {
84						  if(json.result == 'success'){
85							  var temp = $o.find("span:last").text();
86							  $o.find("span:last").text(parseInt(temp) + 1);
87						  }else{
88							  alert(json.msg);
89						  }
90					  },
91					  error: function(e) {
92						 alert('정상처리되지 않았습니다.');
93					  },
94					  complete:function(){
95						  $o.find("i").removeClass('icon-spinner animate-spin');
96						  $o.find("i").addClass(tempClass);
97					  }
98		});	
99	},
100
101	// 답글
102	getSubReplyView:function(evnet){
103		var $o = $(this);
104		var idxno = $o.closest('article').data('idxno');
105		var $target = $("#sub-view-" + idxno);
106		
107		
108
109		if($o.data('load') == 'on'){
110			$target.toggle();
111		}else{
112
113			$.ajax({
114				  type: "post",
115				  dataType: "html",
116				  url: "ajaxGetSubReply.php",
117				  data:{
118					  parent_idxno:reply.parent_idxno,
119					  reply_parent_idxno:idxno,
120					  captchaEnable:reply.captchaEnable,
121					  replyAll:reply.replyAll,
122					  reply_sc_order_by:reply.reply_sc_order_by,
123					  reply_page:reply.reply_page,
124					  table:reply.reply_bbs_table
125				  },
126				  success: function(data) {
127					 $target.html(data);
128					 $target.find(".comments-more-btn").on('click', reply.viewOption);									// 댓글옵션 이벤트
129					 $target.find(".reply-delete-btn").on('click', reply.setDeleteOption);								// 댓글삭제 이벤트
130					 $target.find(".reply-subwrite-btn, .reply-subwrite-text").on('click', {reply_parent_idxno:idxno}, reply.replyWrite);		// 답글달기 									 
131					 $target.find("#content-"+idxno).on('keyup', {reply_parent_idxno:idxno},  reply.getTextLength);		// 글자계산 											 
132					 $target.find(".vote-btn").on('click', reply.setVote);												// 추천반대
133
134					 $target.show();
135					 $o.attr('data-load','on');
136				  },
137				  error: function(e) {
138					 alert('정상처리되지 않았습니다.');
139				  }
140			});	
141		}
142	},
143
144	// 비회원 글쓰기
145	noMemberCheck:function(event){
146		
147		
148		var teget_idxno = $("#nomember-info").data('target');	
149		var $reply_container =			 (teget_idxno)?$("#reply-container-"+teget_idxno):$("#reply-container");
150		var $reply_container_dummy =	 (teget_idxno)?$("#reply-container-dummy-"+teget_idxno):$("#reply-container-dummy");
151		var $reply_write_btn =			 (teget_idxno)?$("#reply-write-btn-"+teget_idxno):$("#reply-write-btn");
152		var $nomember_name_target =	     (teget_idxno)?$("#reply-insert-name-"+teget_idxno):$("#reply-insert-name");
153		var $nomember_password_target =  (teget_idxno)?$("#reply-insert-password-"+teget_idxno):$("#reply-insert-password");
154		var $nomember_captcha_target =   (teget_idxno)?$("#g-recaptcha-response-"+teget_idxno):$("#g-recaptcha-response");
155		var $login_member =				 (teget_idxno)?$("#login-member-"+teget_idxno):$("#login-member");
156		var alidationflag = true;
157
158		//alert(("#reply-container"+teget_idxno) );
159
160		if($("#nomember-name").val() == ''){
161			alert('이름을 입력하세요');
162			$("#nomember-name").focus();
163			return false; 
164		}
165		
166		if($("#nomember-password").val() == ''){
167			alert('비밀번호를 입력하세요');
168			$("#nomember-password").focus();
169			return false; 
170		}	
171
172		if(!reCapVal || reCapVal == 'undefined') {
173			alert('자동등록방지 확인을 진행하세요');
174			return false; 
175		} 
176		
177		$login_member.html( "<i class=\"icon-profile\"></i>&nbsp;" + $("#nomember-name").val() + "님" );
178		
179		$nomember_name_target.val( $("#nomember-name").val() );
180		$nomember_password_target.val( $("#nomember-password").val() );	
181		$nomember_captcha_target.val( $("#nomember-captcha").val() );
182
183		// 댓글 부분에서 이미 캡챠 인증코드가 들어가있다면(인증을 했었다면) 그냥 다 교체해준다.
184		$('input:hidden[name=g-recaptcha-response]', 'article#reply').each(function($i) {
185			if($(this).val() != "") $(this).val($("#nomember-captcha").val());
186		});
187
188
189		$reply_container.show();
190		$reply_write_btn.hide();
191		$reply_container_dummy.hide();
192
193		$("#reply-modal").foundation('close');
194
195		
196	},
197
198	modalCloser:function(event){
199		
200	  var modal = $(this);
201	  switch(modal.attr('id')){
202		  case "reply-modal" : 
203			$("#nomember-info").hide();				// 비회원 입력폼 안보이도록 초기하
204			break;
205		  case "reply-delete-modal":
206			$("#delete-password-field").show();		// 댓글삭제 보이도록 초기화 
207			break;
208	  }
209
210	},
211
212	getTextLength:function(event){
213		o = $(this);
214		var cur = Math.min(o.val().length, 400);
215
216		if(event.data.reply_parent_idxno) $('#reply-cur-text-'+event.data.reply_parent_idxno).text(cur);
217		else $('#reply-cur-text').text(cur);
218
219		if(o.val().length > cur) o.val(  o.val().substring(0, cur) );
220		o.css('height', '40px');
221		o.css('height', o.prop('scrollHeight'));		
222	}
223
224}
225
226

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.