PageSourceSearch

https://internovatravel.com/assets/js/email_builder_compare_script.js

js internovatravel.com collected 2026-10-08 21:39:54 UTC 13,836 bytes, 413 lines download raw bytes

1/*****************
2
3	Script Handles All actions dealing adding and removing items to the email recommendation builder and the compare tool as well as rendering the UI 
4
5*****************/
6
7
8$(document).ready(function(){
9	/*************
10	
11		Handle Adding and removing  objects to the Email Builder
12		Used in search pages, and details pages
13	
14	*************/
15	$('body').on('click', '.add_email_recommendation_check', function(){ 
16		var type = $(this).attr('data-type');
17		var Id = $(this).attr('data-id');
18		var checkbox = $(this);
19
20
21		if($(this).prop("checked") == true){
22			var action = 'add-to-builder';
23		}else{
24			var action = 'remove-from-builder';
25		}
26
27		var data = {};
28		data['action'] = action;
29		data['type'] = type;
30		data['Id'] = Id;
31
32		var request = $.ajax({
33			url: "/framework/ajax/email-builder-compare/actions.php",
34			method: "POST",
35			data: data,
36			dataType: "json"
37		});
38
39		request.fail(function( jqXHR, textStatus ) {
40			console.log("Request failed: " + textStatus);
41		});
42
43		request.done(function(result) { 
44			if(result['result']){
45				initNoty(result['message'], 'info', 2000, 'topRight');
46				if(result['bottom_overlay']){
47					$('#bottom_overlay').replaceWith(result['bottom_overlay']);
48					$('#bottom_overlay_email_tab_button').click();
49					//$('.toggle-overlay-notch').click();
50				}else{
51					window.location.reload();
52				}
53				
54			}else{
55				initNoty(result['message'], 'error', 2000, 'topRight');
56				$(checkbox).attr("checked", false);
57			}
58				
59		});
60
61		// pop up recommend overlay once checkbox is clicked
62		if(type == 'villa' || 'hotel'){
63			$('#bottom_overlay_villas_tab_button').removeClass('active');
64			$('#bottom_overlay_email_tab_button').addClass('active');
65			$('#bottom_overlay_compare_tab_button').removeClass('active');
66
67			var toggle = $('.toggle-overlay-notch').find('i');
68
69			$('.bottom_overlay_email_objects_pane').fadeIn('fast');
70			$('.bottom_overlay_compare_objects_pane').fadeOut('fast');
71			$('.bottom_overlay_email_objects_pane').removeClass('hidden-bottom-overlay-pane');
72			$('.bottom_overlay_villas_objects_pane').fadeOut('fast');
73
74			if($(toggle).hasClass('fa-sort-up')){
75				$('#bottom_overlay').removeClass('bottom_overlay_collapsed');
76				$('#bottom_overlay').addClass('bottom_overlay_expanded');
77				$(toggle).removeClass('fa-sort-up');
78				$(toggle).addClass('fa-sort-down');
79				$('#inner_bottom_overlay').removeClass('inner-bottom-overlay-collapsed');
80				$('#inner_bottom_overlay').addClass('inner-bottom-overlay-expanded');
81			}else{
82			}
83
84			$('.bottom_overlay_email_objects_pane').removeClass('hidden-bottom-overlay-pane');
85			$('.bottom_overlay_email_objects_pane').fadeIn('fast');
86		}
87		
88	});
89	/*************
90	
91		Handle Adding and removing objects to the Comparison
92		Used in search pages, and details pages
93	
94	*************/
95	$('body').on('click', '.add_compare_check', function(){
96		var type = $(this).attr('data-type');
97		var Id = $(this).attr('data-id');
98		var checkbox = $(this);
99
100		if(type == 'villa'){  
101			$('#bottom_overlay_villas_tab_button').addClass('active');
102			$('#bottom_overlay_email_tab_button').removeClass('active');
103			$('#bottom_overlay_compare_tab_button').removeClass('active');
104
105			var toggle = $('.toggle-overlay-notch').find('i');
106
107			$('.bottom_overlay_email_objects_pane').fadeOut('fast');
108			$('.bottom_overlay_compare_objects_pane').fadeOut('fast');
109			$('.bottom_overlay_villas_objects_pane').removeClass('hidden-bottom-overlay-pane');
110			$('.bottom_overlay_villas_objects_pane').fadeIn('fast');
111	
112			if($(toggle).hasClass('fa-sort-up')){
113				$('#bottom_overlay').removeClass('bottom_overlay_collapsed');
114				$('#bottom_overlay').addClass('bottom_overlay_expanded');
115				$(toggle).removeClass('fa-sort-up');
116				$(toggle).addClass('fa-sort-down');
117				$('#inner_bottom_overlay').removeClass('inner-bottom-overlay-collapsed');
118				$('#inner_bottom_overlay').addClass('inner-bottom-overlay-expanded');
119			}else{
120			}
121
122			$('.bottom_overlay_villas_objects_pane').removeClass('hidden-bottom-overlay-pane');
123			$('.bottom_overlay_villas_objects_pane').fadeIn('fast');
124		}else if (type == 'hotel'){
125
126			$('#bottom_overlay_compare_tab_button').addClass('active');
127			$('#bottom_overlay_villas_tab_button').removeClass('active');
128			$('#bottom_overlay_email_tab_button').removeClass('active');
129			$('#bottom_overlay_email_tab_button').removeClass('active');
130
131			var toggle = $('.toggle-overlay-notch').find('i');
132			
133			$('.bottom_overlay_email_objects_pane').fadeOut('fast');
134			$('.bottom_overlay_villas_objects_pane').fadeOut('fast');
135			$('.bottom_overlay_compare_objects_pane').removeClass('hidden-bottom-overlay-pane');
136			$('.bottom_overlay_compare_objects_pane').fadeIn('fast');
137
138			
139	
140			if($(toggle).hasClass('fa-sort-up')){
141				$('#bottom_overlay').removeClass('bottom_overlay_collapsed');
142				$('#bottom_overlay').addClass('bottom_overlay_expanded');
143				$(toggle).removeClass('fa-sort-up');
144				$(toggle).addClass('fa-sort-down');
145				$('#inner_bottom_overlay').removeClass('inner-bottom-overlay-collapsed');
146				$('#inner_bottom_overlay').addClass('inner-bottom-overlay-expanded');
147			}else{
148				
149			}
150	
151		}
152
153		if($(this).prop("checked") == true){
154			var action = 'add-to-compare';
155		}else{
156			var action = 'remove-from-compare';
157		}
158		var data = {};
159		data['action'] = action;
160		data['type'] = type;
161		data['Id'] = Id;
162
163		var request = $.ajax({
164			url: "/framework/ajax/email-builder-compare/actions.php",
165			method: "POST",
166			data: data,
167			dataType: "json"
168		});
169		request.fail(function( jqXHR, textStatus ) {
170			console.log("Request failed: " + textStatus);
171		});
172		request.done(function(result) { 
173			if(result['result']){
174				initNoty(result['message'], 'info', 2000, 'topRight');
175				if(result['bottom_overlay']){
176					console.log(result['bottom_overlay']);
177					$('#bottom_overlay').replaceWith(result['bottom_overlay']);
178					if(type == 'hotel'){
179						$('#bottom_overlay_compare_tab_button').click();
180					}else{
181						$('#bottom_overlay_villas_tab_button').click();
182					}
183				}else{
184					window.location.reload();
185				}
186				
187			}else{
188				initNoty(result['message'], 'error', 2000, 'topRight');
189				$(checkbox).attr("checked", false);
190			}
191				
192		});
193	});
194	/*************
195	
196		Handle Removing Items from the Email Builder Bottom Overlay
197	
198	*************/
199	$('body').on('click', '.remove-from-email-builder-bottom-overlay', function(){
200		var type = $(this).attr('data-type');
201		var Id = $(this).attr('data-id');
202		var fromOverlay = $(this).attr('data-from-overlay');
203		var data = {};
204		data['action'] = 'remove-from-builder';
205		data['type'] = type;
206		data['Id'] = Id;
207		if(fromOverlay){
208			data['fromOverlay'] = fromOverlay;
209		}
210
211		var request = $.ajax({
212			url: "/framework/ajax/email-builder-compare/actions.php",
213			method: "POST",
214			data: data,
215			dataType: "json"
216		});
217		request.fail(function( jqXHR, textStatus ) {
218			console.log("Request failed: " + textStatus);
219		});
220		request.done(function(result) { 
221			if(result['result']){
222				window.location.reload();
223			}else{
224				initNoty(result['message'], 'error', 2000, 'topRight');
225			}
226		});
227	});
228	/*************
229	
230		Handle Removing Items from the Comparison Bottom Overlay
231	
232	*************/
233	$('body').on('click', '.remove-from-compare-bottom-overlay',  function(){
234		var type = $(this).attr('data-type');
235		var Id = $(this).attr('data-id');
236		var fromOverlay = $(this).attr('data-from-overlay');
237		var data = {};
238		data['action'] = 'remove-from-compare';
239		data['type'] = type;
240		data['Id'] = Id;
241		if(fromOverlay){
242			data['fromOverlay'] = fromOverlay;
243		}
244
245		var request = $.ajax({
246			url: "/framework/ajax/email-builder-compare/actions.php",
247			method: "POST",
248			data: data,
249			dataType: "json"
250		});
251		request.fail(function( jqXHR, textStatus ) {
252			console.log("Request failed: " + textStatus);
253		});
254		request.done(function(result) { 
255			if(result['result']){
256				window.location.reload();
257			}else{
258				initNoty(result['message'], 'error', 2000, 'topRight');
259			}
260				
261		});
262	})
263	/*************
264	
265		Handle the overlay notch that will collapse and expand the bottom overlay 
266	
267	*************/
268	$('body').on('click', '.toggle-overlay-notch', function(){
269		var toggle = $(this).find('i');
270
271		if($(toggle).hasClass('fa-sort-up')){
272			$('#bottom_overlay').removeClass('bottom_overlay_collapsed');
273			$('#bottom_overlay').addClass('bottom_overlay_expanded');
274			// $('#bottom_overlay_compare_tab_button').addClass('active');
275			$(toggle).removeClass('fa-sort-up');
276			$(toggle).addClass('fa-sort-down');
277			$('#inner_bottom_overlay').removeClass('inner-bottom-overlay-collapsed');
278			$('#inner_bottom_overlay').addClass('inner-bottom-overlay-expanded');
279		}else{
280			$('#bottom_overlay').addClass('bottom_overlay_collapsed');
281			$('#bottom_overlay').removeClass('bottom_overlay_expanded');
282			$(toggle).addClass('fa-sort-up');
283			$(toggle).removeClass('fa-sort-down');
284			$('#inner_bottom_overlay').addClass('inner-bottom-overlay-collapsed');
285			$('#inner_bottom_overlay').removeClass('inner-bottom-overlay-expanded');
286		}
287
288		
289	});
290	/*************
291	
292		Handle the tab buttons that are used to switch between email and compare items in the bottom overlay 
293	
294	*************/
295	$('body').on("click", '#bottom_overlay_email_tab_button', function(){
296
297		$('#bottom_overlay_email_tab_button').addClass('active');
298		$('#bottom_overlay_compare_tab_button').removeClass('active');
299		$('#bottom_overlay_villas_tab_button').removeClass('active');
300
301		var toggle = $('.toggle-overlay-notch').find('i');
302
303		$('.bottom_overlay_compare_objects_pane').fadeOut('fast');
304		$('.bottom_overlay_villas_objects_pane').fadeOut('fast');
305		$('.bottom_overlay_email_objects_pane').removeClass('hidden-bottom-overlay-pane');
306		$('.bottom_overlay_email_objects_pane').fadeIn('fast');
307
308		if($(toggle).hasClass('fa-sort-up')){
309			$('#bottom_overlay').removeClass('bottom_overlay_collapsed');
310			$('#bottom_overlay').addClass('bottom_overlay_expanded');
311			$(toggle).removeClass('fa-sort-up');
312			$(toggle).addClass('fa-sort-down');
313			$('#inner_bottom_overlay').removeClass('inner-bottom-overlay-collapsed');
314			$('#inner_bottom_overlay').addClass('inner-bottom-overlay-expanded');
315		}
316	});
317	// hotel tab overlay
318	$('body').on("click", '#bottom_overlay_compare_tab_button', function(){
319
320		$('#bottom_overlay_compare_tab_button').addClass('active');
321		$('#bottom_overlay_villas_tab_button').removeClass('active');
322		$('#bottom_overlay_email_tab_button').removeClass('active');
323						
324		$('#bottom_overlay_email_tab_button').removeClass('active');
325		
326		var toggle = $('.toggle-overlay-notch').find('i');
327
328		$('.bottom_overlay_email_objects_pane').fadeOut('fast');
329		$('.bottom_overlay_villas_objects_pane').fadeOut('fast');
330		$('.bottom_overlay_compare_objects_pane').removeClass('hidden-bottom-overlay-pane');
331		$('.bottom_overlay_compare_objects_pane').fadeIn('fast');
332
333		if($(toggle).hasClass('fa-sort-up')){
334			$('#bottom_overlay').removeClass('bottom_overlay_collapsed');
335			$('#bottom_overlay').addClass('bottom_overlay_expanded');
336			$(toggle).removeClass('fa-sort-up');
337			$(toggle).addClass('fa-sort-down');
338			$('#inner_bottom_overlay').removeClass('inner-bottom-overlay-collapsed');
339			$('#inner_bottom_overlay').addClass('inner-bottom-overlay-expanded');
340		}else{
341			
342		}
343	});
344
345
346	// villa tab on the bottom overlay
347	$('body').on("click", '#bottom_overlay_villas_tab_button', function(){
348		
349		$('#bottom_overlay_villas_tab_button').addClass('active');
350		$('#bottom_overlay_email_tab_button').removeClass('active');
351		$('#bottom_overlay_compare_tab_button').removeClass('active');
352
353		var toggle = $('.toggle-overlay-notch').find('i');
354
355		$('.bottom_overlay_email_objects_pane').fadeOut('fast');
356		$('.bottom_overlay_compare_objects_pane').fadeOut('fast');
357		$('.bottom_overlay_villas_objects_pane').removeClass('hidden-bottom-overlay-pane');
358		$('.bottom_overlay_villas_objects_pane').fadeIn('fast');
359
360		if($(toggle).hasClass('fa-sort-up')){
361			$('#bottom_overlay').removeClass('bottom_overlay_collapsed');
362			$('#bottom_overlay').addClass('bottom_overlay_expanded');
363			$(toggle).removeClass('fa-sort-up');
364			$(toggle).addClass('fa-sort-down');
365			$('#inner_bottom_overlay').removeClass('inner-bottom-overlay-collapsed');
366			$('#inner_bottom_overlay').addClass('inner-bottom-overlay-expanded');
367		}else{
368			
369		}
370
371		// if( $('#bottom_overlay_villas_tab_button').hasClass('active') ){
372		// 	$('#bottom_overlay_villas_tab_button').removeClass('active');
373		// }else{
374		// 	$('#bottom_overlay_villas_tab_button').addClass('active');
375		// 	$('.villa-inner-bottom-overlay-collapsed').css('display', 'block');
376		// 	$('.inner-bottom-overlay-expanded').css('display', 'none');
377		// 	if( $('#bottom_overlay_tab_button').hasClass('active') ){
378		// 		$('#bottom_overlay_tab_button').removeClass('active');
379		// 	}
380		// }
381
382
383		// $('#bottom_overlay_email_tab_button').removeClass('active');
384		
385		// var toggle = $('.toggle-overlay-notch').find('i');
386
387		// $('.bottom_overlay_email_objects_pane').fadeOut('fast');
388		// $('.bottom_overlay_compare_objects_pane').removeClass('hidden-bottom-overlay-pane');
389		// $('.bottom_overlay_compare_objects_pane').fadeIn('fast');
390
391		// if($(toggle).hasClass('fa-sort-up')){
392		// 	$('#bottom_overlay').removeClass('bottom_overlay_collapsed');
393		// 	$('#bottom_overlay').addClass('bottom_overlay_expanded');
394		// 	$(toggle).removeClass('fa-sort-up');
395		// 	$(toggle).addClass('fa-sort-down');
396		// 	$('#inner_bottom_overlay').removeClass('inner-bottom-overlay-collapsed');
397		// 	$('#inner_bottom_overlay').addClass('inner-bottom-overlay-expanded');
398		// }else{
399			
400		// }
401	});
402
403	// used to tab between hotels and villas comparison overlay
404	// if( $('#bottom_overlay_compare_villas_tab_button').hasClass('active') ){
405	// 	$('.compare_villas_overlay_div').css('display', 'flex');
406	// 	$('.compare_hotels_overlay_div').css('display', 'none');
407	// }
408
409});
410
411
412
413

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.