PageSourceSearch

https://goalsforyourlife.com/wp-content/plugins/DAP-WP-LiveLinks/includes/js/dap_livelink_chat.js?ver=24.3.1

js goalsforyourlife.com collected 2026-09-24 20:27:46 UTC 11,901 bytes, 345 lines download raw bytes

1var check_ajax_status = 0;
2var request_unread_message;
3var ajaxLoading = false;
4var chat_get_response = false;
5jQuery(document).ready(function(){
6
7	if (jQuery('#user-chat-popup').length){
8		dap_live_chat_html_content_ajax();
9	}
10
11	jQuery(window).on('storage', dap_message_receive);
12
13	 if (jQuery("#user-chat-popup").length && jQuery("#user-chat-popup").html().length > 0) {
14		jQuery(".dap-chat-visitor-body-div-messages-scroll-container-utv").animate({ scrollTop: jQuery('.dap-chat-visitor-body-div-messages-scroll-container-utv').prop("scrollHeight")}, 10);
15
16		jQuery('.dap-chat-visitor-body-expanding-widget-textarea').on('input', function() {
17			if (jQuery.trim(jQuery(this).val()) != '') {
18				jQuery('button.dap-chat-visitor-body-chat-send-button').addClass('dap-active');
19			}else{
20				jQuery('button.dap-chat-visitor-body-chat-send-button').removeClass('dap-active');
21			}
22		});
23
24		
25	}
26
27	
28
29});
30
31jQuery(document).on('click','button.dap-chat-visitor-body-chat-send-button', function(){
32	dap_message_ajax_send_message();
33});
34
35jQuery(document).on('click','.dap-chat-button-wrapper', function(){
36	jQuery('.dap-chat-application-wrapper').toggleClass('dap-chatbox-open');
37	
38	jQuery('.dap-chat-visitor-chat-widget').addClass('chat-message-loading');
39
40	if (jQuery('.dap-chat-application-wrapper').hasClass('dap-chatbox-open')) {
41	    jQuery('a.dap-chat-button-wrapper').removeClass('have-chat-msg');
42	   // request_unread_message.abort();
43      	ajaxLoading = false;
44	    dap_get_unread_message_ajax(1, 1);
45	}
46});
47jQuery(document).on('click','.dap-chat-close-icon', function(){
48	jQuery('.dap-chat-application-wrapper').removeClass('dap-chatbox-open');
49});
50
51function dap_chat_keypress_event(){
52	jQuery(".dap-chat-visitor-body-expanding-widget-textarea").keypress(function(event) {
53	    if (event.which == 13) {
54	        event.preventDefault();
55	        dap_message_ajax_send_message();
56	    }
57	});
58
59    jQuery('.dap-chat-visitor-body-div-messages-scroll-container-utv').on('scroll', function() {
60       if(jQuery(this).scrollTop() <= 1000){
61          var msg_count = jQuery('#message-total-count').val();
62          var start_from_count = jQuery('#message-start-from').val();
63          if (check_ajax_status == 0 && parseInt(msg_count) >= parseInt(start_from_count)) {
64          	request_unread_message.abort();
65          	ajaxLoading = false;
66            dap_message_ajax_get_message();
67          }
68       }
69	});
70
71  var ajax_request_time = 20000;
72  if (jQuery('#message-ajax-request').val() != '') {
73    ajax_request_time = parseInt(jQuery('#message-ajax-request').val())*1000;
74  }
75
76	setInterval(function() {
77		if (chat_get_response) {
78	 		dap_get_unread_message_ajax();
79		}
80	}, ajax_request_time);
81}
82
83function dap_live_chat_html_content_ajax(){
84  var ajaxurl = dap_livelink_common_ajax_object.ajax_url;
85  var course_id_define =  jQuery('#course_id_hidden').val();
86  var course_id = 0;
87	if (typeof course_id_define !== "undefined") {
88	   course_id = course_id_define;
89	}
90  var pageurl = jQuery('#user-chat-popup').attr('data-pageurl');
91    jQuery.ajax({
92      url: ajaxurl,
93      type:'POST',
94      data:{
95        action : 'dap_live_chat_html_content',
96        course_id : course_id,
97        permalink : pageurl
98      } ,
99      success: function(response){
100		if (response != '') {
101			jQuery('#user-chat-popup').html(response);
102			dap_message_ajax_get_message(1);
103			dap_get_unread_message_ajax();
104			chat_get_response = true;
105			dap_chat_keypress_event();
106		}
107		 
108
109      }
110  });
111}
112
113
114function dap_message_ajax_send_message(){
115	var chat_message = jQuery('.dap-chat-visitor-body-expanding-widget-textarea').val();
116	if (jQuery.trim(chat_message) != '') {
117
118		var dap_chat_today = new Date();
119    	var dap_chat_time = dap_chat_today.getHours() + ":" + dap_chat_today.getMinutes();
120
121		jQuery('.dap-chat-hidden-html-for-user .dap-chat-update-user-written-msg').text(chat_message);
122		jQuery('.dap-chat-hidden-html-for-user .dap-chat-message-send-time').text(dap_chat_time);
123
124		var user_msg = jQuery('.dap-chat-hidden-html-for-user').html();
125		jQuery('.dap-chat-visitor-body-primary-message').append(user_msg);
126
127		dap_message_broadcast({'command':'setsendmsg', 'user_msg': user_msg});
128
129		jQuery('.dap-chat-visitor-body-expanding-widget-textarea').val('');
130		jQuery('button.dap-chat-visitor-body-chat-send-button').removeClass('dap-active');
131		jQuery(".dap-chat-visitor-body-div-messages-scroll-container-utv").animate({ scrollTop: jQuery('.dap-chat-visitor-body-div-messages-scroll-container-utv').prop("scrollHeight")}, 10);
132		
133		const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
134
135
136		
137
138		var form_chat_data = new FormData();
139		form_chat_data.append("action", 'dap_add_user_chat_message' );
140		form_chat_data.append("user_msg", chat_message);
141		form_chat_data.append("timezone", timezone);
142
143		 var course_name =  jQuery('#course_name_hidden').val();
144		if (typeof course_name !== "undefined") {
145		   form_chat_data.append("course_name", course_name);
146		}
147
148		var lesson_name =  jQuery('#lesson_name_hidden').val();
149		if (typeof lesson_name !== "undefined") {
150		   form_chat_data.append("lesson_name", lesson_name);
151		}
152		form_chat_data.append("page_url", window.location.href);
153
154
155		var ajaxurl = dap_livelink_common_ajax_object.ajax_url;
156		jQuery.ajax({ 
157			url: ajaxurl,
158			method:"POST",
159			data: form_chat_data,
160			contentType: false,
161			cache: false,
162			processData: false,
163			beforeSend:function(){
164			 
165			},   
166			success:function(output){
167			},
168		    error: function (xhr, ajaxOptions, thrownError) {
169		    // ajaxLoading = false;
170		    }
171		});
172	}
173
174}
175
176
177function dap_message_ajax_get_message(stopscroll = 0){
178
179	if(!ajaxLoading) {
180		ajaxLoading = true;
181		jQuery('.chat-dot-typing-wrapper').show();
182		check_ajax_status = 1;
183		var start_from = jQuery('#message-start-from').val();
184	  	var chat_per_request = jQuery('#message-chat-per-request').val();
185
186		const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
187		var form_chat_data = new FormData();
188		form_chat_data.append("action", 'dap_get_user_chat_message' );
189		form_chat_data.append("timezone", timezone );
190		form_chat_data.append("start_from", start_from );
191		form_chat_data.append("chat_per_request", chat_per_request );
192		var ajaxurl = dap_livelink_common_ajax_object.ajax_url;
193		jQuery.ajax({ 
194			url: ajaxurl,
195			method:"POST",
196			data: form_chat_data,
197			contentType: false,
198			cache: false,
199			processData: false,
200			beforeSend:function(){
201			 
202			},   
203			success:function(response){
204				check_ajax_status = 0;
205				var response = JSON.parse(response);
206				jQuery('.chat-dot-typing-wrapper').hide();
207				
208				jQuery('#message-total-count').val(response.user_msg_count);
209				 var update_start_from = parseInt(start_from) + parseInt(chat_per_request);
210				 jQuery('#message-start-from').val(update_start_from);
211
212				var older_screen_height = jQuery('.dap-chat-visitor-body-div-messages-scroll-container-utv').prop("scrollHeight");
213				jQuery('.dap-chat-visitor-body-primary-message').prepend(response.user_msg);
214		        var new_screen_height = jQuery('.dap-chat-visitor-body-div-messages-scroll-container-utv').prop("scrollHeight");
215		        var final_scroll_height = new_screen_height - older_screen_height;
216		        
217
218		        if (start_from == 0 || stopscroll == 1) {
219		          jQuery(".dap-chat-visitor-body-div-messages-scroll-container-utv").animate({ scrollTop: jQuery('.dap-chat-visitor-body-div-messages-scroll-container-utv').prop("scrollHeight")}, 0);
220		        }else{
221		          jQuery(".dap-chat-visitor-body-div-messages-scroll-container-utv").animate({ scrollTop: final_scroll_height }, 0);
222		        }
223		        ajaxLoading = false;
224			},
225		    error: function (xhr, ajaxOptions, thrownError) {
226		     ajaxLoading = false;
227		    }
228		});
229	}
230}
231
232function dap_get_unread_message_ajax(update_unread_message_status = 0, scrolltobottom = 0){
233
234	if (jQuery('.dap-chat-application-wrapper').hasClass('dap-chatbox-open')) {
235		update_unread_message_status = 1;
236	}
237	if(!ajaxLoading) {
238		ajaxLoading = true;
239		//jQuery('.chat-dot-typing-wrapper').show();
240		check_ajax_status = 1;
241		const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
242		var form_chat_data = new FormData();
243		form_chat_data.append("action", 'dap_get_user_chat_message' );
244		form_chat_data.append("timezone", timezone );
245		form_chat_data.append("msg_read_type", 'unread' );
246		form_chat_data.append("update_unread_message_status", update_unread_message_status );
247		var ajaxurl = dap_livelink_common_ajax_object.ajax_url;
248		request_unread_message = jQuery.ajax({ 
249			url: ajaxurl,
250			method:"POST",
251			data: form_chat_data,
252			contentType: false,
253			cache: false,
254			processData: false,
255			beforeSend:function(){
256			 
257			},   
258			success:function(response){
259				check_ajax_status = 0;
260				var response = JSON.parse(response);
261				//jQuery('.chat-dot-typing-wrapper').hide();
262
263				
264				
265				var message_ids = response.message_ids;
266		        jQuery.each(message_ids, function(i, object) {
267		           jQuery('.dap-chat-visitor-body-primary-message #dap-chat-msg-'+object).remove();
268		        });
269
270		        if (update_unread_message_status == 1 ) {
271		        	if (response.user_msg != '') {
272		        		jQuery('.dap-chat-visitor-body-primary-message').append(response.user_msg);
273		        		dap_message_broadcast({'command':'setunreadmsg', 'user_msg': response.user_msg});
274		        	}
275		        	
276					}
277
278				
279
280				var total_record_found = response.total_record_found;
281				if (parseInt(total_record_found) != 0) {
282		          var total_record_found_org = parseInt(jQuery('#message-total-count').val());
283		          var record_start_from = parseInt(jQuery('#message-start-from').val());
284
285		          total_record_found_org = total_record_found_org + total_record_found;
286		          record_start_from = record_start_from + total_record_found;
287
288		          jQuery('#message-total-count').val(total_record_found_org);
289		          jQuery('#message-start-from').val(record_start_from);
290
291		          var scroll_area_height = jQuery('.dap-chat-visitor-body-div-messages-scroll-container-utv').prop("scrollHeight");
292		          jQuery(".dap-chat-visitor-body-div-messages-scroll-container-utv").animate({ scrollTop: scroll_area_height }, 0);
293
294		        }
295		        if (parseInt(response.total_record_found) >= 1 && !jQuery('.dap-chat-application-wrapper').hasClass('dap-chatbox-open')) {
296		        	jQuery('a.dap-chat-button-wrapper').attr('data-chatmsg', response.total_record_found);
297		        	jQuery('a.dap-chat-button-wrapper').addClass('have-chat-msg');
298		        }
299		        jQuery('.dap-chat-visitor-chat-widget').removeClass('chat-message-loading');
300
301		        if (scrolltobottom == 1) {
302					var scroll_area_height = jQuery('.dap-chat-visitor-body-div-messages-scroll-container-utv').prop("scrollHeight");
303		          	jQuery(".dap-chat-visitor-body-div-messages-scroll-container-utv").animate({ scrollTop: scroll_area_height }, 0);
304				}
305
306		        ajaxLoading = false;
307			},
308		    error: function (xhr, ajaxOptions, thrownError) {
309		     ajaxLoading = false;
310		     jQuery('.dap-chat-visitor-chat-widget').removeClass('chat-message-loading');
311
312
313		    }
314		});
315	}
316}
317
318
319function dap_message_broadcast(message)
320{
321    localStorage.setItem('user_msg',JSON.stringify(message));
322    localStorage.removeItem('user_msg');
323}
324
325
326// receive message
327//
328function dap_message_receive(ev)
329{
330    if (ev.originalEvent.key!='user_msg') return; // ignore other keys
331    var message=JSON.parse(ev.originalEvent.newValue);
332    if (!message) return; // ignore empty msg or msg reset
333
334    // here you act on messages.
335    // you can send objects like { 'command': 'doit', 'data': 'abcd' }
336    if (message.command == 'setunreadmsg'){
337    	jQuery('.dap-chat-visitor-body-primary-message').append(message.user_msg);
338    }
339
340    if (message.command == 'setsendmsg'){
341    	jQuery('.dap-chat-visitor-body-primary-message').append(message.user_msg);
342    }
343
344    // etc.
345}

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.