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.