PageSourceSearch

https://lookgoodfeelbetter.co.uk/wp-content/themes/lookgoodfeelbetter/js/scripts_theme.js?cb=1790361684

js lookgoodfeelbetter.co.uk collected 2026-09-25 18:42:03 UTC 18,034 bytes, 680 lines download raw bytes

1/* Theme scripts */
2
3var allowedToSubmit = 0;
4
5jQuery( document ).ready(function() {
6    
7	if (top.location!= self.location) {
8   		top.location = self.location.href;
9	}
10	
11	//localStorage.removeItem("acceptcookies");
12	
13	setTimeout(function(){
14		allowedToSubmit = 1;
15	}, 1000);
16	
17	setup();
18	
19	doResize();
20	
21	checkcookies();
22	
23	jQuery(window).scroll(function() {
24		var top = jQuery(window).scrollTop();
25		
26    	if(top > 200){
27			jQuery("#mastheadfloat").css("top", "0px");
28		}else{
29			jQuery("#mastheadfloat").css("top", "-400px");
30		}
31		
32		if(top > 20){
33			jQuery("#mobnavfloat").css("top", "0px");
34		}else{
35			jQuery("#mobnavfloat").css("top", "24px");
36		}
37		
38	})
39	
40	jQuery( window ).resize(function() {
41  		//doResize();
42	});
43	
44	// Keep sub menu open where linked
45	openActiveMenu()
46	
47	jQuery("article iframe").removeAttr("height");
48	jQuery("article iframe").removeAttr("width");
49	jQuery("article iframe").wrap('<div class="videoWrapper"></div>');
50	jQuery("#CAFDonateWidgetContainer div").removeClass('videoWrapper');
51	
52	
53	// Replace # links
54	var str = jQuery("#mainnav").html();
55	var html = replaceAll(str, '#', 'javascript:void(0)');
56	jQuery("#mainnav").html(html);
57	
58	
59	jQuery("#mainnav li").mouseenter(function() {
60		jQuery("ul", this).slideDown("fast");
61	});
62	
63	jQuery("#mainnav > ul > li > a").mouseenter(function() {
64		jQuery("#mainnav > ul > li > ul").delay(100).slideUp("fast");
65	});
66	
67	jQuery("#mobnav li").click(function() {	
68		jQuery("ul", this).slideDown("fast");
69	});
70
71	jQuery("#mobnav > ul > li > a").click(function() {
72  		jQuery(".sub-menu").slideUp("fast");
73	});
74	
75	jQuery("#mobnavbutton").click(function() {
76  		jQuery("#mobnav").toggle();
77		jQuery("#mobnavbutton").hide();
78		jQuery("#mobNavClose").show();
79	});
80	
81	jQuery("#mobNavClose").click(function() {
82  		jQuery("#mobnav").toggle();
83		jQuery("#mobnavbutton").show();
84		jQuery("#mobNavClose").hide();
85	});
86	
87	jQuery(".cookiebutton").click(function() {
88  		acceptCookies();
89	});
90
91	// Enable search button
92    var int = setInterval("checkWsSearch()", 500);
93
94	jQuery("input[name=any]").click(function(){
95		if(jQuery("input[name=any]").prop("checked") == true){
96			jQuery("input[name=morning]").prop("checked", true);
97			jQuery("input[name=afternoon]").prop("checked", true);
98			jQuery("input[name=evening]").prop("checked", true);
99		}else{
100			jQuery("input[name=morning]").prop("checked", false);
101			jQuery("input[name=afternoon]").prop("checked", false);
102			jQuery("input[name=evening]").prop("checked", false);
103		}
104	})
105    
106    jQuery("input[name=iam]").click(function(){
107        jQuery("#myInterests input[type=checkbox]").attr("checked", false)
108        jQuery("#allInterests").attr("checked", false)
109		jQuery("#myInterests").slideDown();
110	})
111	
112    // All interests ticked
113    jQuery("#allInterests").click(function(){
114        if(jQuery("#allInterests").prop('checked') === true){
115            jQuery("#myInterests input[type=checkbox]").prop("checked", true)
116        }else{
117            jQuery("#myInterests input[type=checkbox]").prop("checked", false)
118        }
119	})
120    
121    
122    
123	
124	// WS search form submit 
125    jQuery("#wssearchform").submit(function(){
126
127        var ok = 1;
128        var type = jQuery('input[name="type"]:checked').val();
129        var postcode = jQuery("input[name=postcode]").val();
130        var iam = jQuery('input[name="iam"]:checked').val();
131        var counter = 0;
132        if(jQuery("input[name=morning]").prop("checked") == true){counter++;}
133        if(jQuery("input[name=afternoon]").prop("checked") == true){counter++;}
134        if(jQuery("input[name=evening]").prop("checked") == true){counter++;}
135		if(jQuery("input[name=any]").prop("checked") == true){
136			jQuery("input[name=morning]").prop("checked", true);
137			jQuery("input[name=morning]").prop("checked", true);
138			jQuery("input[name=morning]").prop("checked", true);
139			counter++;
140		}
141        
142        if(!iam){
143            iam = $("#iam").val();
144        }
145		
146        if(counter < 1){
147            //ok=0;
148        }
149
150        if(!type){ok=0;}
151        if(!postcode){
152            if(type != 'virtual'){
153                ok=0;
154            }
155        }
156        if(!iam){ok=0;}
157
158        if(ok!=1){
159            event.preventDefault()
160            return
161        }else{
162            jQuery(".narrowcontent").html('<p style="text-align:center; font-size:30px; padding:60px">Searching...<br/><br/><img src="https://lookgoodfeelbetter.co.uk/wp-content/themes/lookgoodfeelbetter/img/loading.gif"></p>'); 
163            jQuery("#wssearchform").hide(); 
164            window.scrollTo(0, 0);
165        }
166        
167
168    })
169	
170	jQuery("#locationSel").change(function(){
171		var urlParams = new URLSearchParams(window.location.search);
172		var time = urlParams.get('time');
173		var filter = urlParams.get('filter');
174		document.location.href = '/events/?filter='+filter+'&location='+jQuery("#locationSel").val()+'&time='+time
175	})
176	
177	jQuery("#timeSel").change(function(){
178		var urlParams = new URLSearchParams(window.location.search);
179		var location = urlParams.get('location');
180		var filter = urlParams.get('filter');
181		document.location.href = '/events/?filter='+filter+'&location='+location+'&time='+jQuery("#timeSel").val()
182	})
183	
184	// FAQs
185	jQuery(".faqItem").click(function(){
186		if(jQuery("div", this).css("display") == 'none'){
187			jQuery("i", this).removeClass('fa-plus');
188			jQuery("i", this).addClass('fa-minus');
189		   jQuery("div", this).slideDown();
190		}else{
191			jQuery("i", this).addClass('fa-plus');
192			jQuery("i", this).removeClass('fa-minus');
193			jQuery("div", this).slideUp();				 
194		}
195	})
196	
197    jQuery("#distance2 #distance").change(function(){
198		submitSearchForm2('Distance field change');
199	})
200    
201	jQuery("#iam2, #distance1 #distance").change(function(){
202		secondWsFormSub();
203	})
204    
205    jQuery("#wsSearchButton").click(function(){
206        submitSearchForm2('Search button pressed');
207    })
208	
209	jQuery("#volMenuToggle").click(function(){
210		jQuery("#volMenu").toggle();
211	})
212	
213    
214    
215});
216
217
218function replaceAll(str, term, replacement) {
219    return str.replace(new RegExp(escapeRegExp(term), 'g'), replacement);
220}
221
222function escapeRegExp(string){
223    return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
224}
225
226function setup(){
227	jQuery('p:empty'). remove();
228	jQuery("#mobnav").html( jQuery("#mainnav").html());
229	jQuery("#mobnav").append('<a href="/workshops/" class="button gradyellow">Book A Workshop</a>');
230	jQuery("#mobnav > ul > li").append('<i class="fas fa-sort-down"></i>');
231	jQuery("#mastheadfloat").html('<div>'+jQuery("#masthead").html()+'</div>')
232}
233
234function doResize(){
235	var w = jQuery(window).width();
236	var h = jQuery(window).height();
237}
238
239function linkto(url){
240	document.location.href=url;
241}
242
243function closeMobNav(){
244	jQuery("#mobnav").hide();
245}
246
247function checkcookies(){
248	var acceptcookies = localStorage.getItem("acceptcookies");
249	if(acceptcookies != 1){
250		jQuery(".cookiebar").fadeIn(1000);
251	}
252}
253
254function acceptCookies(){
255	jQuery(".cookiebar").fadeOut(200);
256	localStorage.setItem("acceptcookies", "1");
257}
258
259function checkWsSearch(){
260		var ok = 1;
261		var type = jQuery('input[name="type"]:checked').val();
262		var postcode = jQuery("input[name=postcode]").val();
263	
264		if(type != 'virtual'){
265			if(!postcode){
266				ok = 0;
267			}
268		}
269	
270		var iam = jQuery('input[name="iam"]:checked').val();
271		//console.log(iam);
272    
273        
274        if(iam === 'Woman'){
275            jQuery("#myInterests label").hide();
276            jQuery("#myInterests .women").show();
277
278        }else if(iam === 'Man'){
279            jQuery("#myInterests label").hide();
280            jQuery("#myInterests .men").show();
281
282        }else if(iam === 'youngadult'){
283            jQuery("#myInterests label").hide();
284        }else if(iam === 'other'){
285            jQuery("#myInterests label").hide();
286            jQuery("#myInterests .other").show(); 
287        }else{
288            jQuery("#myInterests label").show();
289        }
290    
291        var counter = 0;
292        if(jQuery("input[name=morning]").prop("checked") == true){counter++;}
293        if(jQuery("input[name=afternoon]").prop("checked") == true){counter++;}
294        if(jQuery("input[name=evening]").prop("checked") == true){counter++;}
295
296        if(counter < 1){
297            ok=0;
298        }
299
300
301        if(!type){ok=0;}
302
303        if(!iam){ok=0;}
304
305        if(ok==1){
306            jQuery("#wsSbmit1").hide();
307            jQuery("#wsSbmit2").show();
308        }else{
309            jQuery("#wsSbmit1").show();
310            jQuery("#wsSbmit2").hide();
311        }
312
313        if(type == 'virtual'){
314            jQuery("#locationSelect").slideUp();
315        }else{
316            jQuery("#locationSelect").fadeIn();
317        }
318
319}
320
321// Open active menu
322function openActiveMenu(){
323	
324	var domain = 'https://'+document.domain;
325	var url = jQuery(location).attr("href");
326	var uri = url.replace(domain, '');
327
328	if(uri == '/'){return}
329	
330	jQuery('#mainnav .sub-menu').each(function(i, obj) {
331		var str = jQuery(this).html();
332		
333		if (str.indexOf(uri) >= 0){
334			jQuery(this).show();
335		}
336	});
337	
338	jQuery('.sub-menu a').each(function(i, obj) {
339
340		var url = jQuery(location).attr("href");
341		var link = jQuery(this).attr('href');
342
343		if (url == link){
344			jQuery(this).addClass("activeNav");
345		}
346	});
347}
348
349function secondWsFormSub(){
350    
351	var iam = jQuery('#iam2').val();
352	var distance = jQuery('#distance').val();
353	var postcode = jQuery('#postcode').val();
354	var type = jQuery('#type').val();
355    
356	if(jQuery('input[name=morning]').prop('checked') == true){
357	   var morning = 1;
358	}
359	if(jQuery('input[name=afternoon]').prop('checked') == true){
360	   var afternoon = 1;
361	}
362	if(jQuery('input[name=evening]').prop('checked') == true){
363	   var evening = 1;
364	}
365	var url = '/workshops/?submit=1&type='+type+'&postcode='+postcode+'&iam='+iam+'&distance='+distance;
366	if(morning){
367		url += '&morning=1';
368	}
369	if(afternoon){
370		url += '&afternoon=1';
371	}
372	if(evening){
373		url += '&evening=1';
374	}
375    jQuery("#searchresults").html("<div></div><div style=\"padding:15px; text-align:center; font-size:30px\">Searching...<br/><br/><img src=\"https://lookgoodfeelbetter.co.uk/wp-content/themes/lookgoodfeelbetter/img/loading.gif\"></div><div></div");
376	jQuery(".otherWsSearchForm").css("opacity", "0.3");
377    
378	document.location.href = url;
379}
380
381function submitSearchForm2(reason){
382	if(!allowedToSubmit){
383		console.log("Search cancelled as not yet active");
384		return;
385	}
386	console.log("Submit search form: "+reason);
387    jQuery("#secondWsForm").submit();
388    return;
389}
390
391// Session booking modal for volunteers
392function openSessModal(id){
393	if(!id){return;}
394	jQuery(".sessModal").hide();
395	jQuery("#modal_"+id).show();
396}
397
398function closeSessModal(){
399	jQuery(".sessModal").hide();
400}
401
402function loadSessions(unix){
403	if(!unix){return;}
404	jQuery("#loader_"+unix).html('<p style="padding:15px">Please wait...</p>');
405	jQuery(".sessionLoader").slideUp();
406	jQuery("#loader_"+unix).slideDown();
407	
408	a_data = new Object();
409	a_data['action'] = 'loadSessions';
410	a_data['unix'] = unix;
411	jQuery.ajax({
412      type: "POST",
413      url: '../wp-content/themes/lookgoodfeelbetter/ajax.php',
414      dataType: "text",
415	  data : a_data,
416      success : function(data) {
417		if(data){
418			jQuery("#loader_"+unix).html(data);
419			
420         }
421	  }
422    });
423	
424}
425
426function confirmSession(obj){
427
428    var time = jQuery(obj).attr('workshop-time');
429    var date = jQuery(obj).attr('workshop-date');
430    var wsid =  jQuery(obj).attr('workshop-id');
431    var venue = jQuery(obj).attr('venue-name');
432
433    a_data = new Object();
434    a_data['action'] = 'confirmSession';
435    a_data['workshop_time'] = time;
436    a_data['workshop_date'] = date;
437    a_data['workshop_venue'] = venue;
438    a_data['Id'] = wsid;
439
440    jQuery.ajax({
441        type: "POST",
442        url: '../wp-content/themes/lookgoodfeelbetter/ajax.php',
443        dataType: "text",
444        data : a_data,
445        success : function(data) {
446			var obj = jQuery.parseJSON(data);
447			if(obj.status == false){
448				alert(obj.message)
449			}
450			if(obj.status == true){
451				closeSessModal()
452				jQuery("h1").html('Session Confirmed');
453				jQuery("article").html(obj.message);
454				jQuery("article").append('<p><a href="/volunteer-welcome/" class="button gradpink">Return to dashboard</a></p>');
455				
456			}
457        }
458    });	
459}
460
461function volunteerLoginSubmit(){
462	a_data = new Object();
463    a_data['action'] = 'volunteerLoginSubmit';
464    a_data['user_login'] = jQuery("#user_login").val();
465    a_data['password'] = jQuery("#password").val();
466
467    jQuery.ajax({
468        type: "POST",
469        url: '../wp-content/themes/lookgoodfeelbetter/ajax.php',
470        dataType: "text",
471        data : a_data,
472        success : function(data) {
473
474			var obj = jQuery.parseJSON(data);
475			
476			if(obj.loggedin === false){
477				jQuery(".loginError").html(obj.message);
478				jQuery(".loginError").show();
479			}else{
480				location.reload();
481			}
482
483        }
484    });	
485}
486
487function cancelVolunteerSession(id){
488	
489	if(!confirm("Are you sure you wish to cancel your place on this workshop?")){
490		return;
491	}
492	
493	a_data = new Object();
494    a_data['action'] = 'cancelVolunteerSession';
495    a_data['Id'] = id;
496
497    jQuery.ajax({
498        type: "POST",
499        url: '../wp-content/themes/lookgoodfeelbetter/ajax.php',
500        dataType: "text",
501        data : a_data,
502        success : function(data) {
503			var obj = jQuery.parseJSON(data);
504			if(obj.status == false){
505				alert(obj.message)
506			}
507			if(obj.status == true){
508				jQuery("h1").html('Session Cancelled');
509				jQuery("article").html(obj.message);
510				jQuery("article").append('<p><a href="/volunteer-welcome/" class="button gradpink">Return to dashboard</a></p>');
511				
512			}
513        }
514    });	
515}
516
517function updatePassword(){
518	var old_pw = jQuery("#old_pw").val();
519	var new_pw = jQuery("#new_pw").val();
520	var new_pw_conf = jQuery("#new_pw_conf").val();
521	jQuery("#error").html('');
522	if(!old_pw){
523		jQuery("#error").html("Please enter your current password");
524		return
525	}
526	if(!new_pw){
527		jQuery("#error").html("Please enter a new password");
528		return
529	}
530	if(new_pw.length < 6){
531		jQuery("#error").html("Your new password must be at least 6 characters long");
532		return
533	}
534	if(!new_pw_conf){
535		jQuery("#error").html("Please confirm your new password");
536		return
537	}
538	if(new_pw != new_pw_conf){
539		jQuery("#error").html("Your password and new password confirmation do not match");
540		return
541	}
542	
543	a_data = new Object();
544    a_data['action'] = 'updatePassword';
545    a_data['old_pw'] = old_pw;
546    a_data['new_pw'] = new_pw;
547
548    jQuery.ajax({
549        type: "POST",
550        url: '../wp-content/themes/lookgoodfeelbetter/ajax.php',
551        dataType: "text",
552        data : a_data,
553        success : function(data) {
554			if(data == '1'){
555				jQuery("article").html('<h1>Password Updated</h1><p>Thank you. We have updated your password.</p>')
556			}else{
557				jQuery("#error").html(data)
558			}
559        }
560    });	
561	
562}
563
564/* Beauty volunteer */
565function storeVolData(event){
566	localStorage.setItem("firstname", jQuery("#tfa_28").val());
567	localStorage.setItem("lastname", jQuery("#tfa_3").val());
568	localStorage.setItem("email", jQuery("#tfa_5").val());
569}
570
571function beautyVolunteerConfirm(){
572	a_data = new Object();
573    a_data['action'] = 'beautyVolunteerConfirm';
574    a_data['firstname'] = localStorage.getItem("firstname");
575    a_data['lastname'] = localStorage.getItem("lastname");
576	a_data['email'] = localStorage.getItem("email");
577	
578    jQuery.ajax({
579        type: "POST",
580        url: '../wp-content/themes/lookgoodfeelbetter/ajax.php',
581        dataType: "text",
582        data : a_data,
583        success : function(data) {
584			if(data == '1'){
585				localStorage.removeItem("firstname")
586				localStorage.removeItem("lastname")
587				localStorage.removeItem("email")
588			}
589        }
590    });	
591}
592
593function newsletterSignup(){
594	
595	jQuery("#newsletterformerrors").hide();
596	
597	var checkBox = document.getElementById("optin");
598	var email = jQuery("input[name=email]").val()
599	var county = jQuery("input[name=county]").val()
600	var firstname = jQuery("input[name=firstname]").val()
601	var lastname = jQuery("input[name=lastname]").val()
602	
603	if(!firstname || !lastname){
604		jQuery("#newsletterformerrors").html('Please enter your first and last name');
605		jQuery("#newsletterformerrors").fadeIn();
606		return;
607	}
608	if(!email){
609		jQuery("#newsletterformerrors").html('Please enter your email address');
610		jQuery("#newsletterformerrors").fadeIn();
611		return;
612	}
613	if(!county){
614		jQuery("#newsletterformerrors").html('Please enter your county');
615		jQuery("#newsletterformerrors").fadeIn();
616		return;
617	}
618	
619	if (checkBox.checked == false){
620		jQuery("#newsletterformerrors").html('Please indicate your acceptance');
621		jQuery("#newsletterformerrors").fadeIn();
622		return;
623  	}
624	
625	a_data = new Object();
626    a_data['action'] = 'newsletterSignup';
627	a_data['email'] = email;
628	a_data['county'] = county;
629	a_data['firstname'] = firstname;
630	a_data['lastname'] = lastname;
631    jQuery.ajax({
632        type: "POST",
633        url: '../wp-content/themes/lookgoodfeelbetter/ajax.php',
634        dataType: "text",
635        data : a_data,
636        success : function(data) {
637			console.log(data)
638			var obj = jQuery.parseJSON(data);
639			if(obj.success == false){
640				jQuery("#newsletterformerrors").html(obj.message);
641				jQuery("#newsletterformerrors").fadeIn();
642			}else{
643				jQuery(".subscribebox form").html(obj.message);
644			}
645        }
646    });	
647}
648
649function clearWorkstopData(){
650	localStorage.removeItem('firstname');
651	localStorage.removeItem('lastname');
652	localStorage.removeItem('email');
653}
654
655function linkto(url){
656	document.location.href = url;
657}
658
659function clearPatientFilter(){
660	jQuery("#searchterms").val('');
661	filterWorkshops()
662}
663
664function showInterestFields(){
665    if(jQuery("#interestFields").css("display") === 'block'){
666        jQuery("#keywordFields").slideUp();
667    }else{
668        jQuery("#keywordFields").slideDown();
669    }
670    
671}
672
673function resetFilters(){
674	console.log("Reseting filters");
675    jQuery("#keywordFields input[type=checkbox]").removeAttr('checked');
676    jQuery(".timeSlotSel input[type=checkbox]").attr('checked', 'checked');
677    jQuery('#distance option:nth-child(3)').attr('selected', 'selected');
678    jQuery("#keywordFields").slideDown();
679    //submitSearchForm2('Reset Filters called');
680}

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.