1jQuery.fn.ignore = function (sel) { 2 return this.clone().find(sel || ">*").remove().end(); 3}; 4// 5jQuery(window).on('load', function () { 6 if (jQuery('.jobsearch-chat-emoji-picker').length > 0) { 7 jQuery('.jobsearch-chat-emoji-picker').lsxEmojiPicker({ 8 closeOnSelect: true, 9 twemoji: true, 10 width: 330, 11 onSelect: function (emoji) { 12 var txt = $.trim(emoji.value), _emoji_string; 13 _emoji_string = txt.replace('&#', '0'); 14 var _html = jQuery("textarea[name=message]").html(); 15 var box = $("textarea[name=message]"); 16 box.val(box.val() + String.fromCodePoint(_emoji_string)); 17 // 18 } 19 }); 20 } 21}); 22(function ($) { 23 24 var user_id = localStorage.getItem('load_user_chat_backend'), 25 user_chat_selector = jobsearch_ajchat_vars.is_admin == true ? jQuery(".jobsearch-chat-user-" + user_id) : jQuery(".jobsearch-chat-user-" + user_id + ':first-child .jobsearch-load-user-chat'); 26 27 if (user_id != null) { 28 setTimeout(function () { 29 //user_chat_selector.addClass("active"); 30 user_chat_selector.click(); 31 }, 100) 32 } 33 34 jQuery('.jobsearch-chat-user-list').scrollTop(0); 35 jQuery.fn.hasScrollBar = function () { 36 return this.get(0).scrollHeight > this.get(0).clientHeight; 37 }; 38 39 jQuery("#chat, .jobsearch-chat-user-employer, .jobsearch-chat-user-candidate").niceScroll({ 40 cursorborder: "", 41 cursorcolor: "#13b5ea", 42 boxzoom: false, 43 //cursorminheight: 100 44 }); 45 // 46 47})(jQuery); 48// 49jQuery(document).on('change', 'form[name="fileForm"] input[type=file]', function () { 50 jQuery(this).parent('form').submit(); 51}); 52 53var endofscroll = true; 54jQuery(document).on("keyup", "#jobsearch-chat-container #search_field", function () { 55 var _value = jQuery(this).val().toLowerCase(), _user_type = jQuery(this).attr('data-user-type'), _selector; 56 if (_value.length >= 1) { 57 jQuery.ajax({ 58 type: 'POST', 59 url: jobsearch_ajchat_vars.jobsearch_ajax_url, 60 data: { 61 string: _value, 62 user_type: _user_type, 63 get_all_users: "false", 64 action: 'jobsearch_chat_get_users_by_key' 65 }, 66 datatype: 'HTML', 67 success: function (msg) { 68 _selector = _user_type == 'emp' ? jQuery('.jobsearch-chat-user-employer').find('ul') : jQuery('.jobsearch-chat-user-candidate').find('ul'); 69 _selector.html(''); 70 _selector.append(msg) 71 72 } 73 }); 74 } else { 75 jQuery.ajax({ 76 type: 'POST', 77 url: jobsearch_ajchat_vars.jobsearch_ajax_url, 78 data: { 79 user_type: _user_type, 80 get_all_users: "true", 81 action: 'jobsearch_chat_get_users_by_key' 82 }, 83 datatype: 'HTML', 84 success: function (msg) { 85 _selector = _user_type == 'emp' ? jQuery('.jobsearch-chat-user-employer').find('ul') : jQuery('.jobsearch-chat-user-candidate').find('ul'); 86 _selector.html(''); 87 _selector.append(msg) 88 89 } 90 }); 91 } 92}); 93 94jQuery(document).on('click', '.jobsearch-chat-all-users', function () { 95 var _user_type = jQuery('#search_field').attr('data-user-type'), _selector; 96 97 jQuery('#search_field').val(''); 98 99 jQuery.ajax({ 100 type: 'POST', 101 url: jobsearch_ajchat_vars.jobsearch_ajax_url, 102 data: { 103 user_type: _user_type, 104 get_all_users: "true", 105 action: 'jobsearch_chat_get_users_by_key' 106 }, 107 108 datatype: 'HTML', 109 success: function (msg) { 110 _selector = _user_type == 'emp' ? jQuery('.jobsearch-chat-user-employer').find('ul') : jQuery('.jobsearch-chat-user-candidate').find('ul'); 111 _selector.html(''); 112 _selector.append(msg) 113 114 } 115 });
116}); 117 118function loadMessages(el) { 119 var _topOfScroll = jQuery("#chat").scrollTop(), _total_msgs, _data, _html, _loader_html; 120 121 if (_topOfScroll == 0 && endofscroll == true) { 122 _total_msgs = jQuery(document).find('ul#chat li').length; 123 // 124 _loader_html = '<li><div class="jobsearch-chat-loader"><span>' + jobsearch_ajchat_vars.loading + '<small class="jobsearch-chat-loader-dots">...</small></span></div></li>'; 125 if (!jQuery(el).hasClass('ajax-chat-loading')) { 126 jQuery(el).addClass('ajax-chat-loading') 127 jQuery(_loader_html).insertBefore("#chat li:first-child"); 128 jQuery.ajax({ 129 type: 'POST', 130 url: jobsearch_ajchat_vars.jobsearch_ajax_url, 131 data: { 132 reciever_id: jQuery('input[name=reciever_id]').val(), 133 limit: _total_msgs, 134 action: 'jobsearch_chat_load_current_user_chat' 135 }, 136 137 datatype: 'HTML', 138 success: function (msg) { 139 140 jQuery(el).removeClass('ajax-chat-loading') 141 _data = JSON.parse(msg); 142 _html = _data.html; 143 jQuery(".jobsearch-chat-loader").remove(); 144 if (false == _data.html) { 145 endofscroll = false; 146 _html = '<li id="jobsearch-chat-first-msg-date">' + _data.first_msg_date + '</li>'; 147 jQuery(_html).insertBefore("#chat li:first-child"); 148 } 149 150 jQuery(".jobsearch-chat-user-" + _data.reciever_id + " .jobsearch-chat-unread-message").text(_data.unread_messages); 151 if (_data.html != false) { 152 jQuery(_html).insertBefore("#chat li:first-child"); 153 jQuery(el).scrollTop(200); 154 } 155 } 156 }); 157 } 158 } 159} 160 161var scrollTopflag = false, 162 scrollTopCand = jQuery("input[name=scrollTop-cand]").val(), 163 scrollTopEmp = jQuery("input[name=scrollTop-emp]").val(); 164 165jQuery("#jobsearch-chat-container #search_field").on('click', function () { 166 endofscroll = false; 167}); 168jQuery("#jobsearch-chat-container #search_field").on('focusout', function () { 169 endofscroll = true; 170}); 171 172function slidechat(id) { 173 jQuery(".user-" + id + " .jobsearch-chat-floating-chat-list").slideToggle("fast") 174} 175 176function loadUsers(el) { 177 var _emp_user_list = jQuery('.jobsearch-chat-user-employer'), 178 _offset_emp = jQuery('input[name=employer-user-offset]'), 179 _offset_cand = jQuery('input[name=candidate-user-offset]'); 180 181 if ((jQuery(el).scrollTop() + jQuery(el).innerHeight() >= jQuery(el)[0].scrollHeight) && endofscroll == true) { 182 scrollTopEmp = parseInt(scrollTopEmp); 183 if (!_emp_user_list.hasClass("hidden")) { 184 jQuery.ajax({ 185 type: 'POST', 186 url: jobsearch_ajchat_vars.jobsearch_ajax_url, 187 data: { 188 offset: _offset_emp.val(), 189 action: 'jobsearch_chat_load_next_employers' 190 }, 191 datatype: 'html', 192 success: function (msg) { 193 if ('' == msg) { 194 endofscroll = false; 195 } 196 197 scrollTopEmp = jQuery(el)[0].scrollHeight - parseInt(700); 198 scrollTopflag = true; 199 _offset_emp.val(parseInt(_offset_emp.val()) + parseInt(50)); 200 jQuery(msg).insertAfter(".jobsearch-chat-user-employer ul li:last-child"); 201 jQuery(el).scrollTop(scrollTopEmp); 202 } 203 }); 204 } else { 205 scrollTopCand = parseInt(scrollTopCand); 206 jQuery.ajax({ 207 type: 'POST', 208 url: jobsearch_ajchat_vars.jobsearch_ajax_url, 209 data: { 210 offset: _offset_cand.val(), 211 action: 'jobsearch_chat_load_next_candidate' 212 }, 213 datatype: 'html', 214 success: function (msg) { 215 if ('' == msg) { 216 endofscroll = false; 217 } 218 scrollTopCand = jQuery(el)[0].scrollHeight - parseInt(700); 219 scrollTopflag = true; 220 _offset_cand.val(parseInt(_offset_cand.val()) + parseInt(50));
221 jQuery(msg).insertAfter(".jobsearch-chat-user-candidate ul li:last-child"); 222 jQuery(el).scrollTop(scrollTopCand); 223 } 224 }); 225 } 226 } 227} 228 229/* 230* Chat events 231* */ 232var isSoundMuted = ''; 233jQuery(document).on('click', '.disableSound', function () { 234 if (isSoundMuted == '') { 235 isSoundMuted = 'muted'; 236 jQuery(this).toggleClass("chat-icon chat-speaker chat-icon chat-mute"); 237 } else if (isSoundMuted == 'muted') { 238 jQuery(this).toggleClass("chat-icon chat-mute chat-icon chat-speaker"); 239 isSoundMuted = ''; 240 } 241}); 242// 243jQuery(document).on('click', '.jobsearch-chat-delete-user', function () { 244 var _user_id = jQuery(this).attr('data-user-id'), _user_selector_id = jQuery(this).attr('data-selector-id'); 245 jQuery('.jobsearch-chat-user-' + _user_selector_id).remove(); 246 jQuery.ajax({ 247 type: 'POST', 248 url: jobsearch_ajchat_vars.jobsearch_ajax_url, 249 data: { 250 f_user_id: _user_id, 251 user_real_id: _user_selector_id, 252 action: 'jobsearch_chat_delete_user_friend' 253 }, 254 datatype: 'html', 255 success: function (msg) { 256 257 } 258 }); 259}); 260 261jQuery(document).on('click', '.jobsearch-chat-emoji-picker-select-full-view', function () { 262 jQuery('.jobsearch-chat-emojis-box').fadeToggle(500) 263}); 264 265jQuery(".jobsearch-emoji").on('click', function () { 266 var _this = jQuery(this), _emoji_val = _this.attr('data-val'); 267 var box = jQuery('textarea[name=message]'); 268 box.val(box.val() + _emoji_val); 269}); 270 271jQuery('.jobsearch-chat-emoji-picker-select-full-view').click(function (e) { 272 e.preventDefault(); 273 e.stopPropagation(); 274 jQuery('.jobsearch-chat-emojis-box').toggle(); 275}); 276 277jQuery('.jobsearch-chat-emojis-box').click(function (e) { 278 e.stopPropagation(); 279}); 280 281jQuery('body').click(function () { 282 jQuery('.jobsearch-chat-emojis-box').hide(); 283}); 284 285jQuery(document).on('click', '.jobsearch-chat-send-message', function () { 286 var _html, _selector = jQuery("#chat li"), _user_img, _message = jQuery("textarea[name=message]"), 287 _no_message = jQuery("#jobsearch-chat-no-messages"), _data = { 288 message: _message.val(), 289 sender_id: jQuery("input[name=sender_id]").val(), 290 reciever_id: jQuery("input[name=reciever_id]").val(), 291 sender_image: jQuery("input[name=sender_image]").val(), 292 receiver_image: jQuery("input[name=receiver_image]").val(), 293 }; 294 jQuery('.jobsearch-chat-emojis-box').hide(); 295 if (_no_message.length > 0) { 296 _no_message.remove(); 297 } 298 if (_message.val() == '') { 299 _message.addClass('jobsearch-chat-error'); 300 return; 301 } else { 302 _message.removeClass('jobsearch-chat-error'); 303 } 304 _message.html(''); 305 // 306 if (_message.val().indexOf('youtube.com/watch?') == -1 && _message.val().indexOf('dailymotion.com/video/') == -1 && _message.val().indexOf('vimeo') == -1) { 307 _html = '<li class="you "><img src="' + _data.sender_image + '"><div class="jobsearch-chat-user-events"><a href="javascript:void(0)" class="jobsearch-chat-del-message" data-chat-id=""><i class="chat-icon chat-trash-fill"></i></a></div><div class="jobsearch-chat-user-events"><a href="javascript:void(0)" class="jobsearch-chat-del-message" data-chat-id=""><i class="chat-icon chat-trash-fill"></i></a></div><div class="jobsearch-chat-entete-wrapper"><p>' + _data.message.replace(/(<([^>]+)>)/ig, "") + '</p><div class="jobsearch-chat-entete"><h3>' + jobsearch_ajchat_vars.is_today + ' ' + formatAMPM(new Date) + '</h3><a href="javascript:void(0)" class="jobsearch-color jobsearch-chat-seen hidden">' + jobsearch_ajchat_vars.is_seen + '</a></div></div></li>'; 308 309 if (_selector.length != 1) { 310 _selector.last().after(_html); 311 } else { 312 jQuery("#chat").append(_html); 313 } 314 } 315 316 scroll_event(_data.reciever_id); 317 setTimeout(function () { 318 jQuery("textarea[name=message]").val("") 319 }, 100); 320});
321//ajax to send other user message 322jQuery(document).on('click', '.jobsearch-chat-send-message', function (e) { 323 e.preventDefault(); 324 jQuery('.res-success').addClass('hidden'); 325 playPushSound(); 326 327 var _form_data = { 328 message: jQuery("textarea[name=message]").val(), 329 sender_id: jQuery("input[name=sender_id]").val(), 330 reciever_id: jQuery("input[name=reciever_id]").val(), 331 sender_image: jQuery("input[name=sender_image]").val(), 332 receiver_image: jQuery("input[name=receiver_image]").val(), 333 action: 'jobsearch_chat_send_message' 334 }, _selector = jQuery("#chat li"), 335 _URL = jobsearch_ajchat_vars.jobsearch_ajax_url, 336 user_img = _form_data.user_img; 337 // 338 if (_form_data.message != '') { 339 jQuery.ajax({ 340 type: 'POST', 341 url: _URL, 342 data: _form_data, 343 datatype: 'HTML', 344 beforeSend: function () { 345 346 }, 347 success: function (res) { 348 var _res = JSON.parse(res); 349 if (_res.is_video != "") { 350 _html = '<li class="you "><img src="' + user_img + '"><div class="jobsearch-chat-entete-wrapper"><div class="jobsearch-chat-user-events"><a href="javascript:void(0)" class="jobsearch-chat-del-message" data-chat-id=""><i class="chat-icon chat-trash-fill"></i></a></div><p>' + _res.is_video + '</p><div class="jobsearch-chat-entete"><h3>' + jobsearch_ajchat_vars.is_today + ' ' + formatAMPM(new Date) + '</h3><a href="javascript:void(0)" class="jobsearch-color jobsearch-chat-seen hidden">' + jobsearch_ajchat_vars.is_seen + '</a></div></div></li>'; 351 if (_selector.length != 1) { 352 _selector.last().after(_html); 353 } else { 354 _selector.append(_html); 355 } 356 } 357 if (jQuery(".user-" + _form_data.reciever_id).find("#chat li").last().find(".jobsearch-chat-entete-wrapper").length > 0) { 358 jQuery(".user-" + _form_data.reciever_id).find("#chat li").last().find(".jobsearch-chat-entete-wrapper").addClass("chat-" + _res.last_id) 359 jQuery(".user-" + _form_data.reciever_id).find("#chat li").last().find(".jobsearch-chat-del-message").attr('data-chat-id', _res.last_id) 360 } 361 scroll_event(_form_data.reciever_id); 362 } 363 }); 364 } 365}); 366 367var typing = true; 368jQuery("textarea[name=message], input[name=message]").focusout(function () { 369 jQuery(this).parent('form').find("input[name=typing]").val("null"); 370 jQuery(this).removeClass('active'); 371 var _URL = jobsearch_ajchat_vars.jobsearch_ajax_url, 372 _form_data = { 373 message: jQuery(this).parent('form').find("textarea[name=message]").val(), 374 sender_id: jQuery(this).parent('form').find("input[name=sender_id]").val(), 375 typing: jQuery(this).parent('form').find("input[name=typing]").val(), 376 reciever_id: jQuery(this).parent('form').find("input[name=reciever_id]").val(), 377 action: 'jobsearch_chat_send_message' 378 }; 379 typing = false; 380 jQuery.ajax({ 381 type: 'POST', 382 url: _URL, 383 data: _form_data, 384 datatype: 'json', 385 beforeSend: function () { 386 387 }, 388 success: function (msg) { 389 390 } 391 }); 392}); 393/* 394* Backend Chat button 395* */ 396jQuery(document).on('click', '.jobsearch-chat-form textarea[name=message]', function (e) { 397 typing = true; 398 var _URL = jobsearch_ajchat_vars.jobsearch_ajax_url, 399 _form_data = { 400 sender_id: jQuery(this).parent('form').find("input[name=sender_id]").val(), 401 reciever_id: jQuery(this).parent('form').find("input[name=reciever_id]").val(), 402 action: 'jobsearch_chat_update_unread_messages' 403 }, 404 _count_selector_backend = jQuery(".jobsearch-chat-user-" + _form_data.reciever_id), 405 _totl_unread_messages_backend = _count_selector_backend.find(".jobsearch-ch
405at-unread-message").text(); 406 if (_totl_unread_messages_backend != 0) { 407 // 408 _count_selector_backend.find(".jobsearch-chat-unread-message").text(0); 409 _count_selector_backend.find(".jobsearch-chat-unread-message").addClass('hidden'); 410 // 411 jQuery.ajax({ 412 type: 'POST', 413 url: _URL, 414 data: _form_data, 415 datatype: 'JSON', 416 beforeSend: function () { 417 418 }, 419 success: function (msg) { 420 421 } 422 }); 423 } 424}); 425/* 426* frontend Chat button 427* */ 428jQuery(document).on('click', '.jobsearch-chat-frontend .messageForm input[name=message]', function (e) { 429 typing = true; 430 var _URL = jobsearch_ajchat_vars.jobsearch_ajax_url, 431 _form_data = { 432 sender_id: jQuery(this).parent('form').find("input[name=sender_id]").val(), 433 reciever_id: jQuery(this).parent('form').find("input[name=reciever_id]").val(), 434 action: 'jobsearch_chat_update_unread_messages' 435 }, 436 _count_selector_frontend = jQuery(".user-" + _form_data.reciever_id), 437 _totl_unread_messages_front = _count_selector_frontend.find(".notification-count").text(); 438 439 if (_totl_unread_messages_front != 0) { 440 _count_selector_frontend.find(".notification-box").addClass('hidden'); 441 _count_selector_frontend.find(".notification-count").text(0); 442 jQuery.ajax({ 443 type: 'POST', 444 url: _URL, 445 data: _form_data, 446 datatype: 'JSON', 447 beforeSend: function () { 448 449 }, 450 success: function (msg) { 451 452 } 453 }); 454 } 455}); 456 457jQuery(document).on('click', '.jobsearch-chat-del-message', function () { 458 // 459 var _this = jQuery(this), _chat_id = _this.attr('data-chat-id'), 460 _selector = jQuery('.chat-' + _chat_id), 461 _html, 462 _URL = jobsearch_ajchat_vars.jobsearch_ajax_url, 463 _form_data = { 464 chat_id: _chat_id, 465 action: 'jobsearch_chat_delete_message' 466 }; 467 _this.parent().parent().addClass('jobsearch-chat-is-deleted'); 468 _this.parent().addClass('hidden').delay(1000).remove(); 469 470 _html = '<p>' + jobsearch_ajchat_vars.del_full_message + '</p>'; 471 _selector.html(""); 472 _selector.append(_html); 473 jQuery.ajax({ 474 type: 'POST', 475 url: _URL, 476 data: _form_data, 477 datatype: 'JSON', 478 beforeSend: function (res) { 479 480 }, 481 success: function (msg) { 482 483 } 484 }); 485}) 486 487jQuery(document).on('keypress', '.jobsearch-chat-form textarea[name=message], .jobsearch-chat-frontend .messageForm input[name=message]', function (e) { 488 489 jQuery(this).parent('form').find("input[name=typing]").val("true"); 490 var key = e.which || e.charCode, 491 _this = jQuery(this), 492 _URL = jobsearch_ajchat_vars.jobsearch_ajax_url, 493 _form_data = { 494 message: jQuery(this).parent('form').find("textarea[name=message],input[name=message]").val(), 495 sender_id: jQuery(this).parent('form').find("input[name=sender_id]").val(), 496 sender_image: jQuery("input[name=sender_image]").val(), 497 receiver_image: jQuery("input[name=receiver_image]").val(), 498 typing: jQuery(this).parent('form').find("input[name=typing]").val(), 499 reciever_id: jQuery(this).parent('form').find("input[name=reciever_id]").val(), 500 action: 'jobsearch_chat_send_message' 501 }; 502 if (key == 13) // the enter key code 503 { 504 jQuery('.jobsearch-chat-send-message').click(); 505 jQuery(this).focusout(); 506 return false; 507 508 } else { 509 510 if (_this.val() != '') { 511 if (typing == true) { 512 jQuery.ajax({ 513 type: 'POST', 514 url: _URL, 515 data: _form_data, 516 datatype: 'JSON', 517 beforeSend: function () { 518 519 }, 520 success: function (msg) { 521 522 } 523 }); 524 } 525 typing = false; 526 } 527 } 528}); 529 530var d = new Date(), current_year = d.getFullYear();
531jQuery(document).on('click', '.jobsearch-chat-list', function () { 532 var _this = jQuery(this); 533 jQuery('.jobsearch-chat-nav li').removeClass('active'); 534 _this.parent('li').addClass('active'); 535 if (_this.attr('data-list') == 'jobsearch-chat-user-candidate') { 536 jQuery("#search_field").attr('data-user-type', 'cand'); 537 jQuery(".jobsearch-chat-user-employer,.jobsearch-chat-user-groups").addClass('hidden'); 538 jQuery('.' + _this.attr('data-list')).removeClass('hidden').hide().delay(100).fadeIn(500); 539 540 } else if (_this.attr('data-list') == 'jobsearch-chat-user-employer') { 541 jQuery("#search_field").attr('data-user-type', 'emp'); 542 jQuery(".jobsearch-chat-user-candidate, .jobsearch-chat-user-groups").addClass('hidden'); 543 jQuery('.' + _this.attr('data-list')).removeClass('hidden').hide().delay(100).fadeIn(500); 544 } else { 545 jQuery("#search_field").attr('data-user-type', 'group'); 546 jQuery(".jobsearch-chat-user-candidate, .jobsearch-chat-user-employer").addClass('hidden'); 547 jQuery('.' + _this.attr('data-list')).removeClass('hidden').hide().delay(100).fadeIn(500); 548 } 549}); 550 551jQuery(document).on('click', '.jobsearch-chat-filter-toggle', function () { 552 jQuery(".jobsearch-chat-filter-input-field").fadeToggle("slow"); 553 jQuery(".jobsearch-chat-selectize").fadeToggle("slow"); 554}); 555 556jQuery(document).on('click', '.feature-coming-soon', function (e) { 557 e.preventDefault(); 558 alert('feature coming soon') 559}); 560 561jQuery(document).on('click', '.jobsearch-load-user-chat', function () { 562 563 var _this = jQuery(this), _user_img, 564 _user_name, _user_id, _data, _class, 565 _html, _chat_selector = jQuery('ul#chat'), 566 _load_chat_selector = jQuery(".jobsearch-user-chat-messages"), _count_selector_backend, _loader_html, 567 _user_logged_status, _user_logged_status_text; 568 569 if (_this.hasClass("active") == true) { 570 return; 571 } 572 //jQuery('.jobsearch-chat-emoji-picker').click(); 573 _chat_selector.html(""); 574 _loader_html = '<li><div class="jobsearch-chat-loader"><span>' + jobsearch_ajchat_vars.loading + '<small class="jobsearch-chat-loader-dots">...</small></span></div></li>'; 575 _chat_selector.append(_loader_html); 576 577 // 578 jQuery('.jobsearch-load-user-chat').removeClass("active"); 579 jQuery('.jobsearch-load-user-chat').parent('li').removeClass("active"); 580 _load_chat_selector.removeClass("hidden"); 581 // 582 _user_id = _this.attr('data-user-chat'); 583 // 584 _count_selector_backend = jQuery(".jobsearch-chat-user-" + _user_id); 585 _count_selector_backend.find(".jobsearch-chat-unread-message").text(0); 586 _count_selector_backend.find(".jobsearch-chat-unread-message").addClass('hidden'); 587 localStorage.setItem("load_user_chat_backend", _user_id); 588 _load_chat_selector.attr("class", "jobsearch-user-chat-content jobsearch-user-chat-messages user-" + _user_id); 589 590 jQuery("input[name=reciever_id]").val(_user_id); 591 if (jobsearch_ajchat_vars.is_admin == true) { 592 _user_logged_status = _this.find('.status-with-thumb'); 593 if (_user_logged_status.hasClass('orange')) { 594 _class = 'status status-with-thumb orange'; 595 _user_logged_status_text = jobsearch_ajchat_vars.offline; 596 } else { 597 _user_logged_status_text = jobsearch_ajchat_vars.online; 598 _class = 'status status-with-thumb green'; 599 } 600 _user_img = _this.find("img").attr('src'); 601 _user_name = _this.find("h2").ignore("span").ignore("small").text(); 602 } else { 603 // 604 _user_logged_status = _this.parent().find('.status-with-thumb'); 605 606 if (_user_logged_status.hasClass('orange')) { 607 _class = 'status status-with-thumb orange'; 608 _user_logged_status_text = jobsearch_ajchat_vars.offline; 609 } else { 610 _user_logged_status_text = jobsearch_ajchat_vars.online; 611 _class = 'status status-with-thumb green'; 612 } 613 _user_img = _this.parent().parent().find("img").attr('src'); 614 _user_name = _this.parent().find("h2").ignore("span").ignore("small").text(); 615 } 616 617 _load_chat_selector.find(".jobsearch-user-chat-header").find(".status-with-thumb").attr("class", _class); 618 _load_chat_selector.find(".jobsearch-user-chat-header").find(".jobsearch-user-status-wrapper").find('span').text(_user_logged_status_text); 619 _load_chat_selector.find(".jobsearch-user-chat-header").find("img:first-child").attr("src", _user_img);
620 _load_chat_selector.find(".jobsearch-chat-form-wrapper").find("input[name=receiver_image]").val(_user_img); 621 _load_chat_selector.find(".jobsearch-user-chat-header").find("h2").text(_user_name); 622 // 623 _this.addClass("active"); 624 _this.parent('li').addClass("active"); 625 jQuery.ajax({ 626 type: 'POST', 627 url: jobsearch_ajchat_vars.jobsearch_ajax_url, 628 data: { 629 limit: 0, 630 reciever_id: _user_id, 631 action: "jobsearch_chat_load_current_user_chat" 632 }, 633 datatype: 'JSON', 634 success: function (msg) { 635 _data = JSON.parse(msg); 636 _html = _data.html; 637 jQuery(".jobsearch-chat-loader").parent('li').remove(); 638 _chat_selector.html(''); 639 640 if ('' == _html) { 641 _chat_selector.addClass("jobsearch-chat-not-messages-list") 642 _html = '<li id="jobsearch-chat-no-messages">' + jobsearch_ajchat_vars.no_chat_message + '</li>'; 643 } 644 645 jQuery(".jobsearch-chat-user-" + _data.reciever_id + " .jobsearch-chat-unread-message").text(_data.unread_messages); 646 _chat_selector.append(_html); 647 scroll_event(_user_id); 648 649 } 650 }); 651}); 652// 653jQuery(document).on('change', '.sort-contacts', function () { 654 var _this = jQuery(this); 655 656 if (_this.val() != 0) { 657 jQuery.ajax({ 658 type: 'POST', 659 url: jobsearch_ajchat_vars.jobsearch_ajax_url, 660 data: { 661 current_user_id: jobsearch_ajchat_vars.current_user, 662 sort_by: _this.val(), 663 action: "jobsearch_chat_sort_contact" 664 }, 665 datatype: 'JSON', 666 success: function (msg) { 667 668 } 669 }); 670 } 671}); 672/* 673* Helper Functions 674* */ 675var getSound = new Audio(jobsearch_ajchat_vars.jobsearch_plugin_url + 'includes/sound/push.mp3'); 676var isSoundMuted = ''; 677 678function playChatSound() { 679 return $( 680 '<audio class="sound-player" autoplay="autoplay" ' + isSoundMuted + ' style="display:none;">' + '<source src="' + arguments[0] + '" />' + '<embed src="' + arguments[0] + '" hidden="true" autostart="true" loop="false"/>' + '</audio>').appendTo('body'); 681} 682 683function stopSound() { 684 setTimeout(function () { 685 jQuery(".sound-player").remove(); 686 }, 1000); 687} 688 689function playPushSound() { 690 playChatSound(getSound.src); 691 stopSound(); 692} 693 694function triggerFile() { 695 jQuery('form[name="fileForm"] input:first').click(); 696} 697 698function scroll_event(user_id = '') { 699 var chat = jQuery(".user-" + user_id).find("#chat"), 700 _float_chat = jQuery(".jobsearch-chat-wrapper.user-" + user_id).find(".jobsearch-chat-scroll"); 701 if (chat.is(':visible') && chat.hasScrollBar()) chat.scrollTop(chat[0].scrollHeight); 702 if (_float_chat.is(':visible') && _float_chat.hasScrollBar()) _float_chat.scrollTop(_float_chat[0].scrollHeight); 703} 704 705function currentDate() { 706 var a = new Date(); 707 var days = new Array(7); 708 days[0] = "Sunday"; 709 days[1] = "Monday"; 710 days[2] = "Tuesday"; 711 days[3] = "Wednesday"; 712 days[4] = "Thursday"; 713 days[5] = "Friday"; 714 days[6] = "Saturday"; 715 return days[a.getDay()]; 716} 717 718function currentMonth() { 719 var month = new Array(), _d = new Date(); 720 month[0] = "January"; 721 month[1] = "February"; 722 month[2] = "March"; 723 month[3] = "April"; 724 month[4] = "May"; 725 month[5] = "June"; 726 month[6] = "July"; 727 month[7] = "August"; 728 month[8] = "September"; 729 month[9] = "October"; 730 month[10] = "November"; 731 month[11] = "December"; 732 return month[_d.getMonth()]; 733} 734 735function formatAMPM(date) { 736 var hours = date.getHours(), minutes = date.getMinutes(), ampm = hours >= 12 ? 'pm' : 'am', strTime; 737 hours = hours % 12; 738 hours = hours ? hours : 12; 739 minutes = minutes < 10 ? '0' + minutes : minutes; 740 strTime = hours + ':' + minutes + '' + ampm; 741 return strTime; 742} 743 744function uploadFileForm(form) { 745 jQuery('.jobsearch-chat-no-messages').remove(); 746 var fileForm = jQuery(form).children('input[type=file]')[0].files[0], 747 formId = jQuery(form).attr('id'), 748 reg_ser_form = jQuery(form)[0], 749 ext_not_allow = ['css', 'html', 'php', 'json'], 750 formData = new FormData(reg_ser_form); 751 752 if (fileForm.size > 10000000) { 753 alert("cannot upload more than 10mb"); 754 return; 755 } 756 var chat_message = fileForm.name, 757 last_element, 758 chat_message_ext = chat_message.split('.'); 759 if (chat_message_ext != '') { 760 last_element = chat_message_ext[chat_message_ext.length - 1]; 761 if (ext_not_allow.indexOf(last_element) != -1) { 762 alert("File of this extension is not allowed"); 763 return; 764 } 765 } 766 767 jQuery.ajax({ 768 type: 'POST', 769 url: jobsearch_ajchat_vars.jobsearch_ajax_url, 770 data: formData, 771 contentType: false, 772 cache: false, 773 processData: false, 774 datatype: 'json', 775 beforeSend: function () { 776 jQuery(".jobsearch-loading-section").removeClass("hidden"); 777 }, 778 success: function (r) { 779 780 jQuery(".jobsearch-loading-section").addClass("hidden"); 781 scroll_event(); 782 } 783 });
784 jQuery('form#' + formId).trigger("reset"); 785} 786 787function removeActiveUser(arr) { 788 var what, a = arguments, L = a.length, ax; 789 while (L > 1 && arr.length) { 790 what = a[--L]; 791 while ((ax = arr.indexOf(what)) !== -1) { 792 arr.splice(ax, 1); 793 } 794 } 795 return arr; 796} 797// 798window.addEventListener('online', handleConnectionChange); 799window.addEventListener('offline', handleConnectionChange); 800/*---------------* Live internet connection tracking *---------------*/ 801function handleConnectionChange(event) { 802 803 var conn_tracker = jQuery('.jobsearch-connection-field'); 804 if (event.type == "offline") { 805 conn_tracker.fadeIn(); 806 conn_tracker.children('i').addClass('blink'); 807 conn_tracker.css('background', '#f03d25'); 808 conn_tracker.children('i').fadeIn(); 809 jQuery(".jobsearch-chat-top").hide() 810 } 811 if (event.type == "online") { 812 conn_tracker.css('background', '#04cc04'); 813 conn_tracker.children('i').fadeIn(); 814 conn_tracker.children('i').removeClass('blink'); 815 conn_tracker.delay(4000).fadeOut(0, function () { 816 conn_tracker.children('i').fadeOut(); 817 jQuery(".jobsearch-chat-top").show() 818 }); 819 } 820} 821 822/*---------------* Internet connection navigator tracker *---------------*/ 823function internetConnectionCheck() { 824 return navigator.onLine ? true : false; 825} 826 827/* 828* Enable pusher logging - don't include this in production 829* */ 830 831//Pusher.logToConsole = true; 832var pusher = new Pusher(jobsearch_ajchat_vars.pusher_auth, { 833 cluster: jobsearch_ajchat_vars.pusher_cluster, 834 forceTLS: true, 835 disableStats: true, 836}); 837pusher.config.authEndpoint = jobsearch_ajchat_vars.jobsearch_ajax_client_auth; 838 839var presenceChannel = pusher.subscribe('presence-admin-chat'); 840var online_users = []; 841presenceChannel.bind('pusher:subscription_succeeded', function (data) { 842 843 jQuery.each(data.members, function (index, item) { 844 var _status_selector = jQuery(".jobsearch-chat-user-" + index + " , .user-" + index), 845 _front_status_selector = jQuery('.jobsearch-chat-front-user-' + index), 846 _front_chat_box_selector = jQuery('.jobsearch-chat-wrapper.user-' + index), 847 _chat_full_view_user_header_status = jQuery('.user-' + index); 848 // 849 if (_front_status_selector.length != 0) { 850 online_users.push(index); 851 } 852 // 853 _status_selector.find(".status").removeClass('orange').addClass('green'); 854 _front_status_selector.removeClass('ofline').addClass('online'); 855 _front_chat_box_selector.removeClass('ofline').addClass('online'); 856 _chat_full_view_user_header_status.find('.jobsearch-user-status-wrapper').find('span').text(jobsearch_ajchat_vars.online) 857 // 858 }); 859 860 jQuery(".jobsearch-chat-loggin-status").text(''); 861 jQuery(".jobsearch-chat-loggin-status").html('Online: ' + (online_users.length)) 862}); 863 864presenceChannel.bind('pusher:member_added', function (members) { 865 // 866 jQuery.ajax({ 867 type: 'POST', 868 url: jobsearch_ajchat_vars.jobsearch_ajax_url, 869 data: { 870 current_user_id: members.id, 871 action: "jobsearch_chat_user_is_login" 872 }, 873 datatype: 'json', 874 success: function (r) { 875 876 } 877 }); 878 // 879 var _status_selector_list_menu = jQuery(".jobsearch-chat-user-" + members.id + ""), 880 _front_status_selector = jQuery('.jobsearch-chat-front-user-' + members.id), 881 _front_toggle_chat_box_selector = jQuery('.jobsearch-chat-wrapper.user-' + members.id), 882 _chat_full_view_user_header_status = jQuery('.user-' + members.id); 883 884 if (_front_status_selector.length != 0) { 885 online_users.push(presenceChannel.members.me.id); 886 } 887 // 888 _chat_full_view_user_header_status.find('.jobsearch-user-status-wrapper').find('span').text(jobsearch_ajchat_vars.online) 889 _status_selector_list_menu.find(".status").removeClass('orange').addClass('green'); 890 _front_status_selector.removeClass('ofline').addClass('online'); 891 _chat_full_view_user_header_status.find('.status-with-thumb').removeClass('orange').addClass('green') 892 _front_toggle_chat_box_selector.removeClass('online').addClass('ofline');
893 jQuery(".jobsearch-chat-loggin-status").html(jobsearch_ajchat_vars.online + ': ' + (online_users.length)) 894}); 895 896presenceChannel.bind('pusher:member_removed', function (members) { 897 898 jQuery.ajax({ 899 type: 'POST', 900 url: jobsearch_ajchat_vars.jobsearch_ajax_url, 901 data: { 902 current_user_id: members.id, 903 action: "jobsearch_chat_user_is_log_out" 904 }, 905 datatype: 'json', 906 success: function (r) { 907 } 908 }); 909 // 910 var _status_selector = jQuery(".jobsearch-chat-user-" + members.id + ""), 911 _front_status_selector = jQuery('.jobsearch-chat-front-user-' + members.id), 912 _chat_full_view_user_header_status = jQuery('.user-' + members.id), 913 _front_chat_box_selector = jQuery('.jobsearch-chat-wrapper.user-' + members.id); 914 915 removeActiveUser(online_users, presenceChannel.members.me.id); 916 _chat_full_view_user_header_status.find('.jobsearch-user-status-wrapper').find('span').text(jobsearch_ajchat_vars.offline) 917 _status_selector.find(".status").removeClass('green').addClass('orange'); 918 _front_status_selector.removeClass('online').addClass('ofline'); 919 _front_chat_box_selector.removeClass('online').addClass('ofline'); 920 _chat_full_view_user_header_status.find('.status-with-thumb').removeClass('green').addClass('orange') 921 jQuery(".jobsearch-chat-loggin-status").html(jobsearch_ajchat_vars.online + ': ' + (online_users.length)) 922}); 923 924presenceChannel.bind('send-event', function (data) { 925 926 var _msg = data.chat_msg[0], _selector = jQuery(".user-" + _msg.sender_id + " #chat li"), _admin_message = '', 927 _front_message = '', 928 _no_message = jQuery(".user-" + _msg.sender_id + " #jobsearch-chat-no-messages"), 929 _front_selector = jQuery(".user-" + _msg.sender_id + " #float-chat li"), 930 _msg_count_selector_full_view = jQuery(".jobsearch-chat-user-" + _msg.sender_id), 931 _msg_count_selector_frontend_float = jQuery(".user-" + _msg.sender_id), _message, _small_text; 932 933 if (_no_message.length > 0) { 934 _no_message.remove(); 935 } 936 937 _small_text = _msg.small_text + '<span class="jobsearch-chat-unread-message">' + data.totl_receiver_msgs + '</span>'; 938 _message = _msg.is_video != undefined ? _msg.is_video : _msg.message; 939 if (jQuery(".jobsearch-chat-users-list").hasClass('hidden') == false) { 940 jQuery(".jobsearch-chat-users-list ul li").parent().prepend(_msg_count_selector_full_view); 941 _msg_count_selector_full_view.slice(1).remove(); 942 } 943 if (jobsearch_ajchat_vars.current_user == _msg.reciever_id) { 944 jQuery(".jobsearch-chat-user-" + _msg.sender_id).find('small').text(formatAMPM(new Date)); 945 jQuery(".jobsearch-chat-user-" + _msg.sender_id).find('p').html(''); 946 jQuery(".jobsearch-chat-user-" + _msg.sender_id).find('p').append(_small_text); 947 } 948 if (_msg.sender_id == jobsearch_ajchat_vars.current_user) { 949 _admin_message = '<li class="you"><img src="' + _msg.sender_image + '"><div class="jobsearch-chat-user-events"><a href="javascript:void(0)" class="jobsearch-chat-del-message" data-chat-id="' + _msg.last_id + '"><i class="chat-icon chat-trash-fill"></i></a></div><div class="jobsearch-chat-entete-wrapper chat-' + _msg.last_id + '"><p>' + _message + '</p><div class="jobsearch-chat-entete"><h3>' + jobsearch_ajchat_vars.is_today + ' ' + formatAMPM(new Date) + '</h3><a href="javascript:void(0)" class="jobsearch-color jobsearch-chat-seen hidden">' + jobsearch_ajchat_vars.is_seen + '</a></div></div></li>'; 950 _front_message = '<li class="conversation-me"><span><img src="' + _msg.sender_image + '" alt=""><div class="jobsearch-chat-user-events"><a href="javascript:void(0)" class="jobsearch-chat-del-message" data-chat-id="' + _msg.last_id + '"><i class="chat-icon chat-trash-fill"></i></a></div></span><div class="jobsearch-chat-list-thumb chat-' + _msg.last_id + '"><p>' + _message + '</p><small class="jobsearch-chat-msg-time">' + jobsearch_ajchat_vars.is_today + ' ' + formatAMPM(new Date) + '</small></div></li>'; 951 } 952 953 if (_msg.reciever_id == jobsearch_ajchat_vars.current_user) { 954 playPushSound(); 955 _admin_message = '<li class="me">
955<div class="jobsearch-chat-entete-wrapper chat-' + _msg.last_id + '"><p>' + _message + '</p><div class="jobsearch-chat-entete"><h3>' + jobsearch_ajchat_vars.is_today + ' ' + formatAMPM(new Date) + '</h3><a href="javascript:void(0)" class="jobsearch-color jobsearch-chat-seen hidden">' + jobsearch_ajchat_vars.is_seen + '</a></div></div><img src="' + _msg.sender_image + '"><div class="jobsearch-chat-user-events"><a href="javascript:void(0)" class="jobsearch-chat-del-message" data-chat-id="' + _msg.last_id + '"><i class="chat-icon chat-trash-fill"></i></a></div></li>'; 956 _front_message = '<li class="conversation-from"><span><img src="' + _msg.sender_image + '" alt=""></span><div class="jobsearch-chat-user-events"><a href="javascript:void(0)" class="jobsearch-chat-del-message" data-chat-id="' + _msg.last_id + '"><i class="chat-icon chat-trash-fill"></i></a></div><div class="jobsearch-chat-list-thumb chat-' + _msg.last_id + '"><p>' + _message + '</p><small class="jobsearch-chat-msg-time">' + jobsearch_ajchat_vars.is_today + ' ' + formatAMPM(new Date) + '</small></div></li>'; 957 } 958 // 959 if (_selector.length != 0 && _selector.is(':visible') == true) { 960 if (jobsearch_ajchat_vars.current_user == _msg.reciever_id) { 961 _msg_count_selector_full_view.find(".jobsearch-chat-unread-message").removeClass("hidden"); 962 _msg_count_selector_full_view.find(".jobsearch-chat-unread-message").text(data.totl_receiver_msgs); 963 } 964 if (data.chat_msg.logged_in_user != jobsearch_ajchat_vars.current_user) { 965 _selector.last().after(_admin_message); 966 } 967 968 } else { 969 if (jobsearch_ajchat_vars.current_user == _msg.reciever_id) { 970 _msg_count_selector_full_view.find(".jobsearch-chat-unread-message").removeClass("hidden"); 971 _msg_count_selector_full_view.find(".jobsearch-chat-unread-message").text(data.totl_receiver_msgs); 972 } 973 if (data.chat_msg.logged_in_user != jobsearch_ajchat_vars.current_user) { 974 jQuery(".user-" + _msg.sender_id + " #chat").append(_admin_message); 975 } 976 } 977 // 978 if (_front_selector.length != 0 && _front_selector.is(':visible') == true) { 979 980 _msg_count_selector_frontend_float.find(".notification-box").removeClass("hidden"); 981 _msg_count_selector_frontend_float.find(".notification-count").text(data.totl_receiver_msgs) 982 983 if (_msg.logged_in_user != jobsearch_ajchat_vars.current_user) { 984 _front_selector.last().after(_front_message); 985 } 986 } else { 987 988 _msg_count_selector_frontend_float.find(".notification-box").removeClass("hidden") 989 _msg_count_selector_frontend_float.find(".notification-count").text(data.totl_receiver_msgs) 990 991 if (data.chat_msg.logged_in_user != jobsearch_ajchat_vars.current_user && _front_selector.length != 0) { 992 jQuery(".user-" + _msg.sender_id + " #float-chat").append(_front_message); 993 } 994 } 995 scroll_event(_msg.sender_id) 996}); 997// 998presenceChannel.bind('admin-file-share', function (data) { 999 1000 var _selector, _selector_frontend, _html_admin = '', _html = '', 1001 _JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_URL = data.file_path, 1002 _msg_count_selector_backend = jQuery(".jobsearch-chat-user-" + data.sender_id), 1003 _msg_count_selector_frontend = jQuery(".user-" + data.sender_id), 1004 _no_message = jQuery(".user-" + data.sender_id + " #jobsearch-chat-no-messages"); 1005 1006 if (_no_message.length > 0) { 1007 _no_message.remove(); 1008 } 1009 1010 if (jQuery(".jobsearch-chat-users-list").hasClass('hidden') == false) { 1011 jQuery(".jobsearch-chat-users-list ul li").parent().prepend(_msg_count_selector_backend); 1012 _msg_count_selector_backend.slice(1).remove(); 1013 } 1014 1015 if (data.sender_id == jobsearch_ajchat_vars.current_user) { 1016 1017 _html_admin = '<li class="you"><img src="' + data.receiver_image + '"><div class="jobsearch-chat-user-events"><a href="javascript:void(0)" class="jobsearch-chat-del-message" data-chat-id="' + data.last_id + '"><i class="chat-icon chat-trash-fill"></i></a></div>
1017<div class="jobsearch-chat-entete-wrapper chat-' + data.last_id + '">'; 1018 if (data.file_type == 'file') { 1019 _html_admin += '<p><a href="' + _JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_URL + '' + data.message + '"><i class="' + data.file_icon + '"></i>' + data.message + '<br><small>' + data.file_size + ' KB</small></a></p>'; 1020 } else { 1021 _html_admin += '<a href="' + _JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_URL + '' + data.message + '"><img class="prchat_convertedImage" src="' + _JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_URL + '' + data.message + '"></a>'; 1022 } 1023 _html_admin += '<div class="jobsearch-chat-entete"><h3>' + jobsearch_ajchat_vars.is_today + ' ' + formatAMPM(new Date) + '</h3><a href="javascript:void(0)" class="jobsearch-color jobsearch-chat-seen hidden">' + jobsearch_ajchat_vars.is_seen + '</a></div></div></li>'; 1024 // 1025 _html = '<li class="conversation-me"><span><img src="' + data.sender_image + '"><div class="jobsearch-chat-user-events"><a href="javascript:void(0)" class="jobsearch-chat-del-message" data-chat-id="' + data.last_id + '"><i class="chat-icon chat-trash-fill"></i></a></div></span><div class="jobsearch-chat-list-thumb chat-' + data.last_id + '">'; 1026 if (data.file_type == 'file') { 1027 _html += '<p><a href="' + _JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_URL + ' ' + data.message + '">' + data.message + '</a></p>'; 1028 } else { 1029 _html += '<a href="' + _JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_URL + ' ' + data.message + '"><img class="prchat_convertedImage" src="' + _JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_URL + '' + data.message + '"></a>'; 1030 } 1031 1032 _html += '<small class="jobsearch-chat-msg-time">' + jobsearch_ajchat_vars.is_today + ' ' + formatAMPM(new Date) + '</small></div></li>'; 1033 _selector = jQuery(document).find(".user-" + data.reciever_id + " #chat li"); 1034 _selector_frontend = jQuery(document).find(".user-" + data.reciever_id + " #float-chat li"); 1035 } 1036 1037 if (data.reciever_id == jobsearch_ajchat_vars.current_user) { 1038 //chat full view file 1039 playPushSound(); 1040 _html_admin = '<li class="me "><div class="jobsearch-chat-entete-wrapper chat-' + data.last_id + '">'; 1041 if (data.file_type == 'file') { 1042 1043 _html_admin += '<p><a href="' + _JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_URL + '' + data.message + '"><i class="' + data.file_icon + '"></i>' + data.message + '<br><small>' + data.file_size + ' KB</small></a></p>'; 1044 } else { 1045 _html_admin += '<a href="' + _JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_URL + '' + data.message + '"><img class="prchat_convertedImage" src="' + _JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_URL + '' + data.message + '"></a>'; 1046 } 1047 _html_admin += '<div class="jobsearch-chat-entete"><h3>' + jobsearch_ajchat_vars.is_today + ' ' + formatAMPM(new Date) + '</h3><a href="javascript:void(0)" class="jobsearch-color jobsearch-chat-seen hidden">' + jobsearch_ajchat_vars.is_seen + '</a></div></div><img src="' + data.receiver_image + '"><div class="jobsearch-chat-user-events"><a href="javascript:void(0)" class="jobsearch-chat-del-message" data-chat-id="' + data.last_id + '"><i class="chat-icon chat-trash-fill"></i></a></div></li>'; 1048 //end chat full view 1049 1050 //floating chat view 1051 _html = '<li class="conversation-from"><span><img src="' + data.receiver_image + '"></span><div class="jobsearch-chat-user-events"><a href="javascript:void(0)" class="jobsearch-chat-del-message" data-chat-id="' + data.last_id + '"><i class="chat-icon chat-trash-fill"></i></a></div><div class="jobsearch-chat-list-thumb chat-' + data.last_id + '">'; 1052 if (data.file_type == 'file') { 1053 _html += '<p><a href="' + _JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_URL + ' ' + data.message + '">' + data.message + '<a></p>'; 1054 } else { 1055 _html += '<a href="' + _JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_URL + ' ' + data.message + '"><img class="prchat_convertedImage" src="' + _JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_URL + '' + data.message + '"></a>'; 1056 } 1057 // floating chat image 1058 _selector = jQuery(document).find(".user-" + data.sender_id + " #chat li"); 1059 _selector_frontend = jQuery(document).find(".jobsearch-ch
1059at-tab2.user-" + data.sender_id + " #float-chat li"); 1060 } 1061 1062 if (_selector != undefined && _selector.length != 0 && _selector.is(':visible')) { 1063 _msg_count_selector_backend.find(".jobsearch-chat-unread-message").removeClass("hidden"); 1064 _msg_count_selector_backend.find(".jobsearch-chat-unread-message").text(data.unread_messages_reciver); 1065 _selector.last().after(_html_admin); 1066 } else if (_selector_frontend != undefined && _selector_frontend.length != 0 && _selector.is(':visible')) { 1067 _msg_count_selector_backend.find(".jobsearch-chat-unread-message").removeClass("hidden"); 1068 _msg_count_selector_backend.find(".jobsearch-chat-unread-message").text(data.unread_messages_reciver); 1069 _selector_frontend.last().after(_html); 1070 1071 } else { 1072 _msg_count_selector_frontend.find(".notification-box").removeClass("hidden") 1073 _msg_count_selector_frontend.find(".notification-count").text(data.unread_messages_reciver) 1074 if (data.sender_id == jobsearch_ajchat_vars.current_user) { 1075 jQuery(document).find(".user-" + data.reciever_id + " #chat").append(_html_admin); 1076 jQuery(document).find(".jobsearch-chat-tab2.user-" + data.reciever_id + " #float-chat").append(_html); 1077 } 1078 if (data.reciever_id == jobsearch_ajchat_vars.current_user) { 1079 jQuery(document).find(".user-" + data.sender_id + " #chat").append(_html_admin); 1080 jQuery(document).find(".jobsearch-chat-tab2.user-" + data.sender_id + " #float-chat").append(_html); 1081 } 1082 } 1083 scroll_event(data.sender_id); 1084}); 1085presenceChannel.bind('typing-event', function (data) { 1086 1087 if (data.typing == 'true') { 1088 if (data.sender_id != jobsearch_ajchat_vars.current_user) { 1089 jQuery(document).find(".jobsearch-chat-frontend .user-" + data.sender_id + "").find(".jobsearch-chat-user-typing").show(); 1090 } 1091 if (data.reciever_id == jobsearch_ajchat_vars.current_user) { 1092 jQuery(document).find(".jobsearch-chat-backend .jobsearch-chat-user-typing").show(); 1093 } 1094 1095 } else { 1096 if (data.sender_id != jobsearch_ajchat_vars.current_user) { 1097 jQuery(document).find(".jobsearch-chat-frontend .user-" + data.sender_id + "").find(".jobsearch-chat-user-typing").hide(); 1098 } 1099 if (data.reciever_id == jobsearch_ajchat_vars.current_user) { 1100 jQuery(document).find(".jobsearch-chat-backend .jobsearch-chat-user-typing").hide(); 1101 } 1102 } 1103}); 1104// 1105presenceChannel.bind('del-message', function (data) { 1106 // 1107 var _selector = jQuery(".chat-" + data.chat_id), _html = '<p>' + jobsearch_ajchat_vars.del_full_message + '</p>'; 1108 _selector.parent().addClass('jobsearch-chat-is-deleted'); 1109 _selector.parent().find('.jobsearch-chat-user-events').remove(); 1110 _selector.html(""); 1111 _selector.append(_html); 1112}); 1113presenceChannel.bind('del-user-friend', function (data) { 1114 if (data.deleted_id == jobsearch_ajchat_vars.current_user) { 1115 jQuery('.jobsearch-chat-front-user-' + data.friend_id + ' , .jobsearch-chat-user-' + data.friend_id + ' , .user-' + data.friend_id).remove(); 1116 } 1117}); 1118// 1119presenceChannel.bind('add-candidate', function (data) { 1120 if (jobsearch_ajchat_vars.current_user == data.candidate_id) { 1121 jQuery(".jobsearch-chat-list-toggle-view").find('ul li').last().after(data.html) 1122 setTimeout(function () { 1123 location.reload(); 1124 }, 2000) 1125 } 1126}); 1127 1128presenceChannel.bind('updated-messages', function (data) { 1129 var _selector; 1130 if (data.length != 0) { 1131 jQuery.each(data, function (index, item) { 1132 _selector = jQuery("#chat").find('li .chat-' + item.chat_id).find('.jobsearch-chat-seen'); 1133 if (_selector.hasClass('hidden')) { 1134 _selector.removeClass("hidden") 1135 } 1136 }); 1137 } 1138}); 1139 1140 1141jQuery(document).on("click", ".class" , function(){ 1142 jQuery('p').append('<p>this is appand text<p>'); 1143});
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.