PageSourceSearch

https://www.ftaport.com/wp-content/plugins/kboard/template/js/script.js?ver=5.4.2

js ftaport.com collected 2026-10-08 23:29:49 UTC 12,369 bytes, 355 lines download raw bytes

1/**
2 * @author https://www.cosmosfarm.com
3 */
4
5/**
6 * inViewport jQuery plugin by Roko C.B.
7 * http://stackoverflow.com/a/26831113/383904 Returns a callback function with
8 * an argument holding the current amount of px an element is visible in
9 * viewport (The min returned value is 0 (element outside of viewport)
10 */
11(function($, win){
12	$.fn.kboardViewport = function(cb){
13		return this.each(function(i, el){
14			function visPx(){
15				var elH = $(el).outerHeight(), H = $(win).height(), r = el.getBoundingClientRect(), t = r.top, b = r.bottom;
16				return cb.call(el, Math.max(0, t > 0 ? Math.min(elH, H - t) : (b < H ? b : H)));
17			}
18			visPx();
19			$(win).on("resize scroll", visPx);
20		});
21	};
22}(jQuery, window));
23
24var kboard_ajax_lock = false;
25
26jQuery(document).ready(function(){
27	var kboard_mod = jQuery('input[name=mod]', '.kboard-form').val();
28	if(kboard_mod == 'editor' && kboard_current.use_tree_category == 'yes'){
29		kboard_tree_category_parents();
30	}
31});
32
33function kboard_tree_category_search(index, value){
34	var length = jQuery('.kboard-search-option-wrap').length;
35	var tree_category_index = parseInt(index) +1;
36
37	if(value){
38		jQuery('input[name="kboard_search_option[tree_category_'+index+'][value]"]').val(value);
39	}
40	else{
41		jQuery('input[name="kboard_search_option[tree_category_'+index+'][value]"]').val('');
42	}
43	
44	for(var i=tree_category_index; i<=length; i++){
45		jQuery('.kboard-search-option-wrap-'+i).remove();
46	}
47	jQuery('#kboard-tree-category-search-form-'+kboard_current.board_id).submit();
48	
49	return false;
50}
51
52function kboard_tree_category_parents(){
53	if(kboard_current.use_tree_category){
54		var tree_category = kboard_current.tree_category;
55		var tree_category_name;
56		var tree_category_index = 1;
57		
58		tree_category_name = 'kboard_option_tree_category_';
59		
60		jQuery('.kboard-tree-category-wrap').prepend('<select id="kboard-tree-category-'+tree_category_index+'" class="kboard-tree-category kboard-tree-category-'+tree_category_index+'"></select>');
61		jQuery('#kboard-tree-category-'+tree_category_index).append('<option value="">카테고리 선택</option>');
62		jQuery('#kboard-tree-category-'+tree_category_index).after('<input type="hidden" id="'+tree_category_name+tree_category_index+'" name="'+tree_category_name+tree_category_index+'" class="kboard-tree-category-hidden-'+tree_category_index+'">');
63		
64		jQuery('#kboard-tree-category-'+tree_category_index).change(function(){
65			kboard_tree_category_children(this.value, tree_category_index, tree_category_name);
66			jQuery('#kboard-tree-category-search-form-'+kboard_current.board_id).submit();
67		});
68		
69		jQuery.each(tree_category, function(index, element){
70			if(!element.parent_id){
71				jQuery('#kboard-tree-category-'+tree_category_index).append('<option value="'+element.id+'">'+element.category_name+'</option>');
72			}
73		});
74
75		kboard_tree_category_selected(tree_category_index, tree_category_name);
76	}
77}
78
79function kboard_tree_category_children(category_id, tree_category_index, tree_category_name){
80	var tree_category = kboard_current.tree_category;
81	var length = jQuery('.kboard-tree-category').length;
82	var check = 0;
83	
84	for(var i=tree_category_index+1; i<=length; i++){
85		jQuery('.kboard-tree-category-'+i).remove();
86		jQuery('.kboard-tree-category-hidden-'+i).remove();
87	}
88	
89	jQuery.each(tree_category, function(index, element){
90		if(jQuery('#kboard-tree-category-'+tree_category_index).val() == element.id){
91			jQuery('#'+tree_category_name+tree_category_index).val(element.category_name);
92		}
93	});
94	
95	if(jQuery('#kboard-tree-category-'+tree_category_index).val()){
96		jQuery.each(tree_category, function(index, element){
97			if(category_id === element.parent_id){
98				if(check==0){
99					jQuery('#kboard-tree-category-'+tree_category_index).after('<select id="kboard-tree-category-'+(tree_category_index+1)+'" class="kboard-tree-category kboard-tree-category-'+(tree_category_index+1)+'"></select>');
100					jQuery('#kboard-tree-category-'+(tree_category_index+1)).append('<option value="">카테고리 선택</option>');
101					
102					jQuery('#kboard-tree-category-'+(tree_category_index+1)).after('<input type="hidden" id="'+tree_category_name+(tree_category_index+1)+'" name="'+tree_category_name+(tree_category_index+1)+'" class="kboard-tree-category-hidden-'+(tree_category_index+1)+'">');
103					
104					jQuery('#kboard-tree-category-'+(tree_category_index+1)).change(function(){
105						kboard_tree_category_children(this.value, (tree_category_index+1), tree_category_name);
106						jQuery('#kboard-tree-category-search-form-'+kboard_current.board_id).submit();
107					});
108				}
109				check++;
110				jQuery('#kboard-tree-category-'+(tree_category_index+1)).append('<option value="'+element.i
110d+'">'+element.category_name+'</option>');
111			}
112		});
113		kboard_tree_category_selected(tree_category_index+1, tree_category_name);
114	}
115	else{
116		for(var i=tree_category_index; i<=length; i++){
117			jQuery('.kboard-tree-category-hidden-'+i).val('');
118			jQuery('.kboard-tree-category-hidden-'+(i+1)).remove();
119		}
120	}
121	
122	if(jQuery('.kboard-tree-category-search').length){
123		jQuery('input[name="kboard_search_option[tree_category_'+tree_category_index+'][value]"').val(jQuery('#'+tree_category_name+tree_category_index).val());
124		jQuery('input[name="kboard_search_option[tree_category_'+tree_category_index+'][key]"').val('tree_category_'+tree_category_index);
125	}
126}
127
128function kboard_tree_category_selected(tree_category_index, tree_category_name){
129	var check = jQuery('#tree-category-check-'+tree_category_index).val();
130	
131	if(check){
132		jQuery('#kboard-tree-category-'+tree_category_index+' option').each(function(index, element){
133			if(jQuery(element).text() == check){
134				jQuery(element).attr('selected', 'selected');
135				kboard_tree_category_children(this.value, tree_category_index, tree_category_name);
136			}
137		});
138	}
139	return false;
140}
141
142function kboard_editor_open_media(){
143	var w = 900;
144	var h = 500;
145	var media_popup_url = kboard_current.add_media_url;
146	
147	if(kboard_current.board_id){
148		if(jQuery('#kboard_media_wrapper').length){
149			jQuery('#kboard_media_wrapper').show();
150			jQuery('#kboard_media_wrapper').html(jQuery('<iframe frameborder="0"></iframe>').attr('src', media_popup_url));
151			jQuery('#kboard_media_background').show();
152		}
153		else{
154			var wrapper = jQuery('<div id="kboard_media_wrapper"></div>');
155			var background = jQuery('<div id="kboard_media_background"></div>').css({opacity:'0.5'}).click(function(){
156				kboard_media_close();
157			});
158			
159			function init_window_size(){
160				if(window.innerWidth <= 900){
161					wrapper.css({left:0, top:0, margin:'10px', width:(window.innerWidth-20), height:(window.innerHeight-20)});
162				}
163				else{
164					wrapper.css({left:'50%', top:'50%', margin:0, 'margin-left':(w/2)*-1, 'margin-top':(h/2)*-1, width:w, height:h});
165				}
166			}
167			init_window_size();
168			jQuery(window).resize(init_window_size);
169			
170			wrapper.html(jQuery('<iframe frameborder="0"></iframe>').attr('src', media_popup_url));
171			jQuery('body').append(background);
172			jQuery('body').append(wrapper);
173			
174			if(!jQuery('input[name="media_group"]').filter(function(){return this.value==kboard_settings.media_group}).length){
175				jQuery('[name="board_id"]').parents('form').append(jQuery('<input type="hidden" name="media_group">').val(kboard_settings.media_group));
176			}
177		}
178	}
179}
180
181function kboard_editor_insert_media(url){
182	if(typeof tinyMCE != 'undefined' && tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden()){
183		tinyMCE.activeEditor.execCommand('mceInsertContent', false, "<img id=\"last_kboard_media_content\" src=\""+url+"\" alt=\"\">");
184		tinyMCE.activeEditor.focus();
185		tinyMCE.activeEditor.selection.select(tinyMCE.activeEditor.dom.select('#last_kboard_media_content')[0], true);
186		tinyMCE.activeEditor.selection.collapse(false);
187		tinyMCE.activeEditor.dom.setAttrib('last_kboard_media_content', 'id', '');
188	}
189	else if(jQuery('#kboard_content').length){
190		jQuery('#kboard_content').val(function(index, value){
191			return value + (!value?'':' ') + "<img src=\""+url+"\" alt=\"\">";
192		});
193	}
194}
195
196function kboard_media_close(){
197	jQuery('#kboard_media_wrapper').hide();
198	jQuery('#kboard_media_background').hide();
199}
200
201function kboard_document_print(url){
202	window.open(url, 'kboard_document_print');
203	return false;
204}
205
206function kboard_document_like(button, callback){
207	if(!kboard_ajax_lock){
208		kboard_ajax_lock = true;
209		jQuery.post(kboard_settings.ajax_url, {'action':'kboard_document_like', 'document_uid':jQuery(button).data('uid'), 'security':kboard_settings.ajax_security}, function(res){
210			kboard_ajax_lock = false;
211			if(typeof callback === 'function'){
212				callback(res);
213			}
214			else{
215				if(res.result == 'error'){
216					alert(res.message);
217				}
218				else{
219					jQuery('.kboard-document-like-count', button).text(res.data.like);
220				}
221			}
222		});
223	}
224	else{
225		alert(kboard_localize_strings.please_wait);
226	}
227	return false;
228}
229
230function kboard_document_unlike(button, callback){
231	if(!kboard_ajax_lock){
232		kboard_ajax_lock = true;
233		jQuery.post(kboard_settings.ajax_url, {'action':'kboard_document_unlike', 'document_uid':jQuery(button).data('uid'), 'security':kboard_settings.ajax_security}, function(res){
234			kboard_ajax_lock = false;
235			if(typeof callback === 'function'){
236				callback(res);
237			}
238			else{
239				if(res.result == 'error'){
240					alert(res.message);
241				}
242				else{
243					jQuery('.kboard-document-unlike-count', button).text(res.data.unlike);
244				}
245			}
246		});
247	}
248	else{
249		alert(kboard_localize_strings.please_wait);
250	}
251	return false;
252}
253
254function kboard_comment_like(button, callback){
255	if(!kboard_ajax_lock){
256		kboard_ajax_lock = true;
257		jQuery.post(kboard_settings.ajax_url, {'action':'kboard_comment_like', 'comment_uid':jQuery(button).data('uid'), 'security':kboard_settings.ajax_security}, function(res){
258			kboard_ajax_lock = false;
259			if(typeof callback === 'function'){
260				callback(res);
261			}
262			else{
263				if(res.result == 'error'){
264					alert(res.message);
265				}
266				else{
267					jQuery('.kboard-comment-like-count', button).text(res.data.like);
268				}
269			}
270		});
271	}
272	else{
273		alert(kboard_localize_strings.please_wait);
274	}
275	return false;
276}
277
278function kboard_comment_unlike(button, callback){
279	if(!kboard_ajax_lock){
280		kboard_ajax_lock = true;
281		jQuery.post(kboard_settings.ajax_url, {'action':'kboard_comment_unlike', 'comment_uid':jQuery(button).data('uid'), 'security':kboard_settings.ajax_security}, function(res){
282			kboard_ajax_lock = false;
283			if(typeof callback === 'function'){
284				callback(res);
285			}
286			else{
287				if(res.result == 'error'){
288					alert(res.message);
289				}
290				else{
291					jQuery('.kboard-comment-unlike-count', button).text(res.data.unlike);
292				}
293			}
294		});
295	}
296	else{
297		alert(kboard_localize_strings.please_wait);
298	}
299	return false;
300}
301
302function kboard_fields_validation(form, callback){
303	jQuery('.kboard-attr-row.required', form).each(function(index, element){
304		var required = jQuery(element).find('.required');
305		
306		if(jQuery(required).length == 1 && jQuery(required).val() == 'default' || !jQuery(required).val()){
307			alert(kboard_localize_strings.required.replace('%s', jQuery(element).find('.field-name').text()));
308			callback(required);
309			
310			return false;
311		}
312		else if(jQuery(required).length > 1 && jQuery(element).find('.required:checked').length == 0){
313			alert(kboard_localize_strings.required.replace('%s', jQuery(element).find('.field-name').text()));
314			callback(jQuery(required).eq(0));
315			
316			return false;
317		}
318	});
319}
320
321function kboard_content_update(content_uid, data, callback){
322	if(!kboard_ajax_lock){
323		kboard_ajax_lock = true;
324		jQuery.post(kboard_settings.ajax_url, {'action':'kboard_content_update', 'content_uid':content_uid, 'data':data, 'security':kboard_settings.ajax_security}, function(res){
325			kboard_ajax_lock = false;
326			if(typeof callback === 'function'){
327				callback(res);
328			}
329		});
330	}
331	else{
332		alert(kboard_localize_strings.please_wait);
333	}
334	return false;
335}
336
337function kboard_ajax_builder(args, callback){
338	if(!kboard_ajax_lock){
339		kboard_ajax_lock = true;
340		var callback2 = (typeof callback === 'function') ? callback : args['callback'];
341		args['action'] = 'kboard_ajax_builder';
342		args['callback'] = '';
343		args['security'] = kboard_settings.ajax_security;
344		jQuery.get(kboard_settings.ajax_url, args, function(res){
345			kboard_ajax_lock = false;
346			if(typeof callback2 === 'function'){
347				callback2(res);
348			}
349		});
350	}
351	else{
352		alert(kboard_localize_strings.please_wait);
353	}
354	return false;
355}

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.