PageSourceSearch

https://bookings.yorkshirewildlifepark.com/shop/basket

html yorkshirewildlifepark.com collected 2026-09-24 19:02:00 UTC 63,504 bytes, 1,219 lines download raw bytes

1<!doctype html><html lang="en" xmlns="http://www.w3.org/1999/xhtml">
2<head>
3	<link rel="stylesheet" href="/common/assets/css/basket.css?cc=1658228748">
4	
5	
5<script src='/common/assets/js/basket.js?cc=1689263557'></script>
5
6	
7				
8	<!-- Google Tag Manager -->
9	
9<script>
vendor: 341 bytes, lines 9-14
9
10		(function(w,d,s,l,i){ w[l]=w[l]||[];w[l].push({ 'gtm.start':
11		new Date().getTime(),event:'gtm.js' });var f=d.getElementsByTagName(s)[0],
12		j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
13		'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
14		})(window,document,'script','dataLayer','
14GTM-PZJ3XH7
vendor: 5 bytes, lines 14-15
14');
15	
15</script>
15
16	<!-- End Google Tag Manager -->		<!-- FMX TEST GTM Account -->
17	<!-- Google Tag -->
18	
18<script>
vendor: 341 bytes, lines 18-23
18
19		(function(w,d,s,l,i){ w[l]=w[l]||[];w[l].push({ 'gtm.start':
20		new Date().getTime(),event:'gtm.js' });var f=d.getElementsByTagName(s)[0],
21		j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
22		'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
23		})(window,document,'script','dataLayer','
23GTM-KZDQ29LH
vendor: 5 bytes, lines 23-24
23');
24	
24</script>
24
25	<!-- End Google Tag Manager -->
26		<title>Basket</title>
27	<meta charset="utf-8">
28	<meta name="description" content="">
29	<meta name="keywords" content="">
30	<meta property="og:locale" content="en_GB" />
31	<meta property="og:type" content="website" />
32	<meta property="og:title" content="Basket" />
33	<meta property="og:description" content="" />
34	<meta property="og:url" content="https://bookings.yorkshirewildlifepark.com/shop/basket" />
35	<meta property="og:site_name" content="" />	<meta property="og:image" content="" />
36	<meta name="twitter:card" content="summary" />
37	<meta name="twitter:description" content="" />
38	<meta name="twitter:title" content="Basket" />
39	<meta name="twitter:site" content="" />	<meta name="twitter:creator" content="" />	<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5">
40	<link rel="canonical" href="https://bookings.yorkshirewildlifepark.com/shop/basket" />
41	<!-- Favicon -->
42	<link rel="icon" type="image/png" href="/assets/favicon/favicon-96x96.png" sizes="96x96" />
43	<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg" />
44	<link rel="shortcut icon" href="/assets/favicon/favicon.ico" />
45	<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png" />
46	<link rel="manifest" href="/assets/favicon/site.webmanifest" />
47	<link href="/common/assets/bootstrap-4.6.2/css/bootstrap.min.css" rel="stylesheet" ><link href="/common/assets/fonts/fontawesome-pro-6.5.2-web/css/all.min.css" rel="stylesheet" media="none" onload="if(media!='all')media='all'">
48	<link  href="/assets/css/style.css?cc=1785359270" rel="stylesheet" type="text/css"  media="none" onload="if(media!='all')media='all'"/>
49	<noscript>
50		<link  href="/assets/css/style.css?cc=1785359270" rel="stylesheet" type="text/css"/>
51		<link href="/common/assets/fonts/fontawesome-pro-6.5.2-web/css/all.min.css" rel="stylesheet" type="text/css"/>
52	</noscript>
53
54	<!-- JS -->
55		<!-- GOOGLE RECAPTCHA V3!-->
vendor: 63 bytes, lines 55-56
55
56		<script src="https://www.google.com/recaptcha/api.js?render=
566Lc79t4UAAAAADG9jfzh4W-0wvQQiuux4mRnbyb-
vendor: 15 bytes, lines 56-58
56"></script>
57
58		
58<style>
59			.grecaptcha-badge {
60				opacity: 0 !important;
61				left: -9999px !important;
62			}
63		</style>
64		
64<script src="/common/assets/js/jquery-3.7.1.min.js"></script>
64
65	<!-- popper -->
66	
66<script src="/common/assets/bootstrap-4.6.2/js/popper.min.js"></script>
66
67	<!-- Bootstrap-->
68	
68<script src="/common/assets/bootstrap-4.6.2/js/bootstrap.min.js"></script>
68
69			
69<script nonce="NfoDRi0mkSG1zm4PhkX9gk1Ed/bGNqdSw+Qhv32LmJ0=">
70var WS_USER = "yorkshirewildlifepark";
71var BASE_CURRENCY = "GBP";
72var CURRENCY_STRING = "&pound;";
73var language = "";
74//console.log("Including /common/assets/js/common.tpl");
75</script>
75 
76
77
78<script src="/common/assets/js/common.js?v=1783678918" nonce="NfoDRi0mkSG1zm4PhkX9gk1Ed/bGNqdSw+Qhv32LmJ0=" ></script>
78
79		
79<script type="application/ld+json">
80	{ "@context":"http://schema.org",
81	"@type":"Organization",
82	"legalName":"",
83	"url":"",
84	"logo":"",
85	"contactPoint":[{
86		"@type":"ContactPoint",
87		"telephone":"",
88		"contactType":"customer service"
89	}]
90	}
91</script>
91	
92	<link type="text/css" rel="stylesheet" href="/shop/includes/css_include.css?v=136" />
93	
94	<link rel="canonical" href="/basket" />
95	
96	
97        
97<script nonce="NfoDRi0mkSG1zm4PhkX9gk1Ed/bGNqdSw+Qhv32LmJ0=">
98var WS_USER = "yorkshirewildlifepark";
99var BASE_CURRENCY = "GBP";
100var CURRENCY_STRING = "&pound;";
101var language = "";
102//console.log("Including /common/assets/js/common.tpl");
103</script>
103 
104
105
106<script src="/common/assets/js/common.js?v=1783678918" nonce="NfoDRi0mkSG1zm4PhkX9gk1Ed/bGNqdSw+Qhv32LmJ0=" ></script>
vendor: 1 bytes, line 106
106
107<script nonce="NfoDRi0mkSG1zm4PhkX9gk1Ed/bGNqdSw+Qhv32LmJ0=">
108var WS_USER = "yorkshirewildlifepark";
109var devmode = 0;
110var currency = "&pound;";
111var USE_V2_JOURNEY = 0;
112var userId = "";
113var FB_event_id = "";
114var ismobile = "";
115var displaySessionAlreadyStartedWarning = 0;
116var showActivityPricingBreakdown = 0;
117var todaysDate = '2026-09-24';
118var usePricingTypeColors = 0;
119var showSpacesFree  = 0; // Display spaces available on timeslots
120var showPricingTypes = 0; // Display pricing types under timeslots
121var displayVerifyMembershipDetails = 0;
122var accessCardNoPlusOneError = "Your access card is not eligible for an essential companion ticket. Please contact Nimbus Disability to reassess your requirements, or to check eligibility.";
123var isVouchersOnlyCategory = 0;
124</script>
124
125
126<script src="/shop/includes/js_include.js?v=1789729035" nonce="NfoDRi0mkSG1zm4PhkX9gk1Ed/bGNqdSw+Qhv32LmJ0=" ></script>
126	
127	<style>
128	#basket .basketIcon {
129		height: 15px;
130	}
131	#divMemberProducts .list-group input[type="checkbox"] + .list-group-item .btn::after {
132        content: 'Add Member';
133    }
134	</style>
135</head>
136<body id="basket">
137	<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 137-138
137
138<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
138GTM-PZJ3XH7
vendor: 83 bytes, line 138
138" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
139<!-- End Google Tag Manager (noscript) --><!-- FMX TEST GTM Account -->
vendor: 68 bytes, lines 139-140
139
140<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
140GTM-KZDQ29LH
vendor: 83 bytes, line 140
140" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
141<a href="#content" class="sr-only">Skip to content</a>
142<!-- wrapper -->
143<div id="wrapper" class="h-100 d-flex flex-column">
144	<div id="header">
145		<div id="topBar" class="d-none d-md-block">
146			<div class="container d-flex">
147				<ul class="nav w-100 justify-content-end">
148					<li class="nav-item">
149						<a class="nav-link" href="/user/my_account"><img src="/assets/images/YWP_Icon_Login.svg" height="20px" width="auto" alt="Login"></a>
150					</li>
151					<li class="nav-item">
152						<a class="nav-link basket-icon" href="/shop/basket">
153							<div class="position-relative">
154																<img src="/assets/images/YWP_Icon_Basket.svg" height="20px" width="auto" alt="Basket">
155							</div>
156						</a>
157					</li>
158				</ul>
159			</div>
160		</div>
161		
162		<nav id="headerContainer">
163			<div class="container">
164				<div class="navbar navbar-expand-md px-0">
165					<a class="navbar-brand mr-auto order-2 order-md-1" href="https://www.yorkshirewildlifepark.com/">
166						<img id="headerLogo" src="/assets/images/YWP_Primary Logo.svg" height="193px" width="auto" alt="Twycross Zoo Logo">
167					</a>
168
169					<ul class="nav justify-content-end d-md-none order-3  ml-auto">
170						<li class="nav-item d-none d-xs-block">
171							<a class="nav-link" href="/user/my_account"><img src="/assets/images/YWP_Icon_Login.svg" height="20px" width="auto" alt="Login"></a>
172						</li>
173						<li class="nav-item">
174							<a class="nav-link basket-icon" href="/shop/basket">
175								<div class="position-relative">
176																		<img src="/assets/images/YWP_Icon_Basket.svg" height="20px" width="auto" alt="Basket">
177								</div>
178							</a>
179						</li>
180					</ul>
181					
182					<button class="navbar-toggler order-4" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
183						<i class="fa-solid fa-bars" style="color: #FFF"></i>
184					</button> 
185					
186					<a href="/book" class="btn btn-outline-primary ml-md-3 order-1 order-md-5">Ticket Menu</a>
187
188					<div class="collapse navbar-collapse ml-auto ms-auto justify-content-end my-2 my-md-0 order-4 mt-4 mt-md-0" id="navbarSupportedContent">
189						<ul class="navbar-nav ml-auto ms-auto">
190														<li class="nav-item d-xs-none">
191								<a class="nav-link" href="/user/my_account">Login / Register</a>
192							</li>
193						</ul>
194						<a href="/booking/redeemmultiplevouchersNew" class="btn btn-outline-primary ml-md-3 mt-2 mt-md-0">Redeem Vouchers</a>
195					</div>
196				</div>
197			</div>
198		</nav>
199	</div>					<div id="content"  class="container py-4">
200					<h1>Basket</h1>
201			<div class="card  mb-3">
202				<div class="card-body text-center">
203					There are no items in your basket.<br/>
204					<a href="/book" id="" class="btn btn-primary mt-3">Continue Shopping</a>
205				</div>
206			</div>
207			</div>
208
209	<div id="footer" class="mt-auto py-3">
210	<div class="container d-flex flex-column align-items-center py-3">
211		<ul class="nav flex-column flex-md-row align-items-center justify-content-center">
212							<li class="nav-item">
213					<a class="nav-link" href="https://www.yorkshirewildlifepark.com/about-ywp/">About</a>
214				</li>
215							<li class="nav-item">
216					<a class="nav-link" href="https://www.yorkshirewildlifepark.com/news/">News</a>
217				</li>
218							<li class="nav-item">
219					<a class="nav-link" href="https://www.yorkshirewildlifepark.com/cookies-policy/">Cookies</a>
220				</li>
221							<li class="nav-item">
222					<a class="nav-link" href="https://www.yorkshirewildlifepark.com/privacy-policy/">Privacy</a>
223				</li>
224							<li class="nav-item">
225					<a class="nav-link" href="https://www.yorkshirewildlifepark.com/terms-of-entry/">Terms & Conditions</a>
226				</li>
227							<li class="nav-item">
228					<a class="nav-link" href="https://www.yorkshirewildlifepark.com/press-enquiries/">Press</a>
229				</li>
230							<li class="nav-item">
231					<a class="nav-link" href="https://www.yorkshirewildlifepark.com/careers-at-ywp/">Careers</a>
232				</li>
233							<li class="nav-item">
234					<a class="nav-link" href="https://www.yorkshirewildlifepark.com/contact/">Contact</a>
235				</li>
236					</ul>
237 
238		<ul class="nav align-items-center justify-content-center py-3">
239			<li class="nav-item">
240				<a class="nav-link" href="https://www.facebook.com/yorkshirewildlifepark"><img src="/assets/images/YWP_Social Media Icon_Facebook.svg" alt="" style="height: 50px;"/></a>
241			</li>
242			<li class="nav-item">
243				<a class="nav-link" href="https://twitter.com/YorkshireWP"><img src="/assets/images/YWP_Social Media Icon_X.svg" alt="" style="height: 50px;"/></a>
244			</li>
245			<li class="nav-item">
246				<a class="nav-link" href="https://www.tiktok.com/@yorkshirewildlifepark"><img src="/assets/images/YWP_Social Media Icon_TikTok.svg" alt="" style="height: 50px;"/></a>
247			</li>
248			<li class="nav-item">
249				<a class="nav-link" href="https://www.instagram.com/yorkshirewildlifepark/?hl=en"><img src="/assets/images/YWP_Social Media Icon_Instagram.svg" alt="" style="height: 50px;"/></a>
250			</li>
251			<li class="nav-item">
252				<a class="nav-link" href="https://www.linkedin.com/company/yorkshire-wildlife-park-ltd"><img src="/assets/images/YWP_Social Media Icon_Linked In.svg" alt="" style="height: 50px;"/></a>
253			</li>
254			
255			<li class="nav-item">
256				<a class="nav-link" href="https://www.youtube.com/channel/UCRehThdoYRRahD_gGhv5Ubg"><img src="/assets/images/YWP_Social Media Icon_YouTube.svg" alt="" style="height: 50px;"/></a>
257			</li>
258		</ul>
259
260		<p class="mt-1 text-center">&copy; 2026 Yorkshire Wildlife Park. Company No. 06531168</p>
261		<a href="https://www.fusemetrix.com" target="_blank" class="">
262			Powered by <img class="fmxlogo" src="/common/fmx-logos/logo-fmx-group-white.svg" height="40px" width="auto" alt="FuseMetrix Group logo">
263		</a>
264	</div>
265	
266</div> 	
267
268	<!-- footer includes file dev/common/footer-includes.php -->
269
270    
271
272    
272<script nonce="NfoDRi0mkSG1zm4PhkX9gk1Ed/bGNqdSw+Qhv32LmJ0=">
273    function genAlertMsg(title, msg, e = {}){
274        e.target ? e.preventDefault() : null;
275        
276        $('#genAlertModalTitle').html(title);
277        $('#genAlertModalBody').html(msg);
278        $('#genAlertModal').modal('show')
279    }
280</script>
280
281
282<div style='z-index: 1000000' id='genAlertModal' class="modal" tabindex="-1">
283  <div class="modal-dialog">
284    <div class="modal-content">
285      <div class="modal-header">
286        <h5 id='genAlertModalTitle' class="modal-title">Error</h5>
287        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
288          <span aria-hidden="true">&times;</span>
289        </button>
290      </div>
291      <div class="modal-body">
292        <p id='genAlertModalBody'></p>
293      </div>
294      <div class="modal-footer">
295        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
296      </div>
297    </div>
298  </div>
299</div>
300    <style>
301    #basketUpdateAlert {
302        position: fixed;
303        top: 0;
304        z-index: 99999;
305        right: 0;
306        top: 65px;
307        min-width: 350px;
308        background-color: #fff;
309        display: none;
310    }
311    #basketUpdateAlert p {
312        padding-bottom: 4px;
313        margin-bottom: 0px;
314    }
315</style>
316
317<section id='basketUpdateAlert' class='shadow p-3'>
318    <div class='d-flex align-items-center justify-content-between mb-2'>
319        <strong class='pl-3'>Added to Cart</strong>
320        <div data-action="basketUpdateAlertToggle" class="text-right font-weight-bold">&times;</div>
321    </div>
322    <div class='mx-auto d-flex'>
323        <div style='max-width: 100px'>
324            <img id='basketUpdateProductImage' src="" alt="placeholder image">
325        </div>
326        <div class='pl-3'>
327            <p id='basketUpdateProductName'></p>
328            <p id='basketUpdateProductPrice'></p>
329            <p>Qty: <span id='basketUpdateProductQty'></span></p>
330        </div>
331    </div>
332    <div class='mt-2'>
333        <a href="/shop/basket" class='btn basketAlert-btn btn-primary w-100'>Checkout</a>
334    </div>
335</section>
336
337<script nonce="NfoDRi0mkSG1zm4PhkX9gk1Ed/bGNqdSw+Qhv32LmJ0=">
338    $(document).on('click', '[data-action="basketUpdateAlertToggle"]', function (e) {
339        e.preventDefault();
340        $('#basketUpdateAlert').fadeOut()
341    });
342
343</script>
343
344
345
346
347			<!-- Dev\shop\includes\food-and-beverage-basket.tpl -->
348		
349	
350<!-- DEV/shop/includes/footer.php -->
351<div class="modal fade" id="voucherRedeemModalCenter" tabindex="-1" role="dialog" aria-labelledby="voucherRedeemModalTitle" aria-hidden="true">
352    <div class="modal-dialog modal-dialog-centered" role="document">
353        <div class="modal-content">
354            <div class="modal-header">
355                <h3 class="modal-title" id="voucherRedeemModalTitle">Voucher accepted</h3>
356                <button type="button" class="close" data-dismiss="modal" data-bs-dismiss="modal" aria-label="Close">
357                    <span aria-hidden="true">&times;</span>
358                </button>
359            </div>
360            <div class="modal-body">
361                Simply book one of our activities and the cost will be deducted in your basket
362            </div>
363            <div class="modal-footer">
364                <button type="button" class="btn btn-secondary" data-dismiss="modal" data-bs-dismiss="modal">Let's go</button>
365            </div>
366        </div>
367    </div>
368</div>
369
370<style>
371#divCustomerPhotoContainer {
372	width: 200px;
373	height: 200px;
374	border: 1px solid #a4a4a485;
375	border-radius:200px;
376	overflow: hidden;
377	display: flex;
378	justify-content: center;
379	align-items: center;
380    background: #efefef;
381}
382
383.modal-user-profile-picture[src="/common/assets/images/user-profile.png"] {
384  object-fit: contain;
385  width: 62%;
386  height: 62%;
387  filter: brightness(100);
388}
389
390</style>
391
392<div class="modal fade" id="modalCustomerPhoto" tabindex="-1" role="dialog" aria-hidden="true">
393	<div class="modal-dialog modal-dialog-centered" role="document">
394		<div class="modal-content">
395			<div class="modal-header">
396				<h5 class="modal-title">Customer Photo</h5>
397				<button type="button" class="close btn-close" data-dismiss="modal" data-bs-dismiss="modal" aria-label="Close"><span aria-hidden="true" class="visually-hidden">&times;</span></button>
398			</div>
399			<div class="modal-body">
400				<p>You can retake your photo as many times as you like, when you're happy with you photo press save. <span class="text-danger">Once your photo has been saved, if you need to change this please contact us.</span></p>
401				<div class="d-flex justify-content-center mb-3">
402					<div id="divCustomerPhotoContainer">
403						<img class="modal-user-profile-picture" src="/common/assets/images/user-profile.png" alt="User Photo"/>
404					</div>
405					<div id="divMyCamera"></div>
406					<input type="hidden" id="photoUserId">
407					<input type="hidden" id="photoUserKey">
408					<input type="hidden" id="photoOrderId">
409				</div>
410				
411									<div class="mx-3 mx-sm-5" id="divPhotoOptions">
412                <button type="button" class="btn btn-primary w-100" id="btnOpenCamera" data-action="openCamera">Take Photo</button>
413						<p class="text-center my-1">Or</p>
414						<button type="button" class="btn btn-primary w-100" id="btnUploadPhoto" data-action="uploadPhoto">Upload photo</button>
415					</div>
416					<div class="mx-3 mx-sm-5" id="divPhotoButtons">
417						<button type="button" class="btn btn-primary w-100 mb-2" id="btnTakePhoto" data-action="takePhoto">Capture</button>
418						<button type="button" class="btn btn-primary w-100 mb-2" id="btnRetakePhoto" data-action="resetPhoto">Retake</button>
419						<button type="button" class="btn btn-success w-100" id="btnSavePhoto" data-action="savePhoto">Save</button>
420					</div>
421								
422				<div class="alert alert-danger mb-2" role="alert" id="divUploadPhotoError"></div>
423				<div class="mx-2" id="divUploadPhoto">
424					<div class="input-group">
425						<div class="custom-file">
426							<input type="file" class="custom-file-input form-control" id="uploadCustomerPhoto" accept="image/*">
427							<label class="custom-file-label input-group-text  visually-hidden" for="uploadCustomerPhoto" aria-describedby="btnUploadCustomerPhoto">Choose file</label>
428						</div>
429						<div class="input-group-append ml-auto ms-auto">
430							<button type="button" class="btn btn-primary ml-3 ms-3" id="bt
430nUploadCustomerPhoto" data-action="savePhotoUploaded">Save</span>
431						</div>
432					</div>
433                    <small>Maximum upload file size: 2 MB</small>
434				</div>
435			</div>
436			<div class="modal-footer">
437				<button type="button" class="btn btn-secondary mr-auto me-auto" data-dismiss="modal" data-bs-dismiss="modal">Close</button>
438			</div>
439		</div>
440	</div>
441</div>
442
443<div class="modal fade" id="modalUserPhoto" tabindex="-1" role="dialog" aria-hidden="true">
444    <div class="modal-dialog modal-dialog-centered" role="document">
445        <div class="modal-content">
446            <div class="modal-header">
447                <h5 class="modal-title">Customer photo</h5>
448                <button type="button" class="close btn-close" data-dismiss="modal" data-bs-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
449            </div>
450            <div class="modal-body">
451                <p class="">You can retake your photo as many times as you like, when you're happy with you photo press save. <span class="text-danger">Once your photo has been saved, if you need to change this please contact us.</span></p>
452                <div class="d-flex justify-content-center  position-relative">
453                    <div id="divUserPhoto" class="position-absolute" style="width: 100%; height: 100%;top: 0;left: 0;display: flex;flex-direction: column;justify-content: center;align-items: center;">
454                        <img id="userPhotoPlaceholder" src="/common/assets/images/user-profile.png" style="object-fit: contain; width: 200px;height: 200px;" alt="User profile placeholder image">
455                        
456                    </div>
457                    <div id="divUserCamera"></div>
458                    
459                    <input type="hidden" id="photoUserKey">
460                </div>
461                <div class="text-center">
462                    <label for="upload" id="btnSelectUserPhoto" style="display:none" class="uploadButton btn btn-secondary mt-3">Select photo</label>
463                    <input type="file" name="upload" id="upload" class="d-none" onchange="loadUserPhoto(event)">
464                </div>
465            </div>
466            <div class="modal-footer justify-content-between">
467                <button type="button" class="btn btn-secondary" data-dismiss="modal" data-bs-dismiss="modal">Close</button>
468                <button type="button" class="btn btn-primary" id="btnTakeUserPhoto" data-action="takeUserPhoto">Take photo</button>
469                <button type="button" class="btn btn-primary" id="btnUploadUserPhoto" data-action="uploadUserPhoto" style="display:none" >Upload photo</button>
470                <button type="button" class="btn btn-primary" id="btnResetUserPhoto" onclick="resetUserPhoto();">Retake</button>
471                <button type="button" class="btn btn-success" id="btnSaveUserPhoto" onclick="saveUserPhoto();">Save</button>
472            </div>
473        </div>
474    </div>
475</div>
476
477<div class="modal fade" id="modalImage" tabindex="-1" role="dialog" aria-hidden="true">
478    <div class="modal-dialog modal-dialog-centered">
479        <div class="modal-content">
480            <div class="modal-body" id="divModalImage"></div>
481        </div>
482    </div>
483</div>
484
485<div class="modal fade" id="modalMemberBookNow" tabindex="-1" role="dialog" aria-hidden="true">
486    <div class="modal-dialog modal-lg modal-dialog-centered" role="document">
487        <div class="modal-content">
488            <form id="frmMemberBookNow" action="/booking/buildSessionGroup.php" method="post">
489                <input type="hidden" name="makeBooking" value="1">
490                <input type="hidden" name="userId" id="userId" value="">
491                <input type="hidden" name="categoryId" id="categoryId" value="">
492                <input type="hidden" name="locationId" id="locationId" value="1">
493                <div class="modal-header">
494                    <h5 class="modal-title">Book Now</h5>
495                    <button type="button" class="close btn-close" data-dismiss="modal" data-bs-dismiss="modal" aria-label="Close"><span class="visually-hidden" aria-hidden="true">&times;</span></button>
496                </div>
497                <div class="modal-body" id="divSingleProducts">
498                    <h3>Members</h3>
499                    <p id="extraDescription"></p>
500                    <p>Please select which member will be attending</p>
501                    <div id="divMemberProducts" class="mb-3"></div>
502                    <div id="divAdditionalProducts"></div>
503                </div>
504                <div class="modal-footer">
505                    <button type="submit" class="btn btn-primary" id="btnBookNow">Book now</button>
506                </div>
507            </form>
508        </div>
509    </div>
510</div>
511
512<div class="modal fade" id="modalAddFriendsMembership" tabindex="-1" role="dialog" aria-hidden="true">
513    <div class="modal-dialog modal-dialog-centered" role="document">
514        <div class="modal-content">
515            <form id="frmAddFriendsMembership" method="post">
516                <input type="submit" style="display:none;"  value="submit"/>
517                <input type="hidden" name="linkMembership" value="1">
518                <input type="hidden" name="categoryId" value="">
519                <input type="hidden" name="mainMembershipId" value="">
520                <input type="hidden" name="linkMembershipId" id="linkMembershipId">
521                <input type="hidden" name="addFriendSurname" id="linkMembershipSurn
521ame">
522               
523                <div class="modal-header">
524                    <h5 class="modal-title" id="modalAddFriendsMembershipTitle">Add a friend's membership</h5>
525                    <button type="button" class="close btn-close" data-dismiss="modal" data-bs-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
526                </div>
527                <div class="modal-body">
528                    <div class="form-row">
529                        <div class="form-group col-md-6">
530                            <label for="addFriendCardNumber">Your friend's card number</label>
531                            <input type="text" class="form-control" id="addFriendCardNumber" required>
532                        </div>
533                        <div class="form-group col-md-6">
534                            <label for="addFriendSurname">Your friend's surname</label>
535                            <input type="text" class="form-control" id="addFriendSurname" required>
536                        </div>
537                    </div>
538                    <div id="divAddFriendsMembership"></div>
539                </div>
540                <div class="modal-footer">
541                    <button type="button" class="btn btn-primary" onclick="searchFriendMemberships();">Search</button>
542                    <button type="submit" class="btn btn-success" style="display:none;" id="btnAddFriendsMembership">Add</button>
543                </div>
544            </form>
545        </div>
546    </div>
547</div>
548
549<div class="modal fade" id="modalBuyVoucher" tabindex="-1" role="dialog" aria-hidden="true">
550    <div class="modal-dialog modal-dialog-centered" role="document">
551        <input type="hidden" id="buyVoucherLocationId">
552        <input type="hidden" id="buyVoucherProductId">
553        <div class="modal-content">
554            <div class="modal-header">
555                <h5 class="modal-title mb-0">Buy voucher <span class="modalProductName"></span></h5>
556            </div>
557            <div class="modal-body p-0" id="divBuyVoucher">
558                <div class="p-3">
559                    <!-- productPrice is dynamic, it is in \Dev\shop\includes\js_include.php -->
560                    <div id="buyVoucherQtyWrap" class="form-group row mb-0">
561                        <label for="buyVoucherQty" class="col-sm-6 col-form-label font-weight-bold"><div class="d-table h-100"><div class="d-table-cell h-100 align-middle"><span id="productPrice"><span class="sr-only">product price</span></span></div></div></label>
562                        <div class="col-sm-6">
563                            <div class="input-group">
564                                <div class="input-group-prepend">
565                                    <button type="button" class="btn btn-primary qtyIncrement" data-add="-1">-</button>
566                                </div>
567                                <input type="text" class="form-control text-center border" id="buyVoucherQty" placeholder="0" value="0">
568                                <div class="input-group-append">
569                                    <button type="button" class="btn btn-primary qtyIncrement" data-add="1">+</button>
570                                </div>
571                            </div>
572                        </div>
573                    </div>
574                    <div class="form-group row mt-3" id="voucherTypeWrap">
575                        <label for="voucherType" class="col-sm-2 col-form-label font-weight-bold">Type</label>
576                        <div class="col-sm-10" id="divVoucherPricingTypes"></div>
577                    </div>
578                </div>
579                <div id="buyVoucherOptions" style="display:none;" class="border-top">
580                    <div class="row no-gutters">
581                        <div class="col-6 text-center border-right p-3">
582                            <input onclick="$('#buyVoucherPostedOptions').hide();" type="radio" name="type" value="digital" id="vouchertypeDigital" checked><label for="vouchertypeDigital" class="pl-1 cursor-pointer m-0">Digital (Free)</label>
583                        </div>
584                        <div class="col-6 text-center p-3">
585                            <input onclick="$('#buyVoucherPostedOptions').show();" type="radio" name="type" value="posted" id="vouchertypePosted"><label for="vouchertypePosted" class="pl-1 cursor-pointer m-0">Posted</label>
586                        </div>
587                        <div id="buyVoucherPostedOptionsContainer" class="col-12">
588                            <div id="buyVoucherPostedOptions" class="col-12 border-top" style="display:none;">
589                                <input type="hidden" id="voucherExtraId" name="voucherExtraId" value="
5890">
590                                <div style="width:100%; max-width:100%; overflow-x:auto;" class="p-3">
591                                    <div id="buyVoucherPostedProducts"></div>
592                                </div>
593                            </div>
594                        </div>
595                    </div>
596                </div>
597            </div>
598            <div class="modal-footer justify-content-between">
599                <button type="button" class="btn btn-secondary btn-noarrow" data-dismiss="modal" data-bs-dismiss="modal">Close</button>
600                <button type="button" class="btn btn-primary" style="display:none;" id="btnAddVoucher" onclick="addVoucher();">Add to basket</button>
601            </div>
602        </div>
603    </div>
604</div>
605
606<div class="modal fade" id="modalBuyMembershipVoucher" tabindex="-1" role="dialog" aria-hidden="true">
607    <div class="modal-dialog modal-dialog-centered" role="document">
608        <div class="modal-content">
609            <form class="m-0" id="frmBuyMembershipVoucher" method="post">
610                <input type="hidden" name="buyMembershipVoucher" value="1">
611                <input type="hidden" name="locationId" id="buyMembershipVoucherLocationId">
612                <input type="hidden" name="productId" id="buyMembershipVoucherProductId">
613                <input type="hidden" id="buyMembershipVoucherMaximumUsers">
614                <input type="hidden" id="buyMembershipVoucherOption">
615                <div class="modal-header">
616                    <h5 class="modal-title">Buy membership voucher</h5>
617                    <button type="button" class="close btn-close" data-dismiss="modal" data-bs-dismiss="modal" aria-label="Close"><span aria-hidden="true"class="visually-hidden">&times;</span></button>
618                </div>
619                <div class="modal-body" id="divBuyMembershipVoucher">
620                    <div class="alert alert-danger text-center" role="alert" id="divBuyMembershipVoucherError" style="display:none;"></div>
621                    <p class="card-text">We just need a few details about how many people it's for.</p>
622                    <div class="row mb-1 align-items-center" id="divBuyMembershipVoucherAdults">
623                        <label for="buyMembershipVoucherAdults" class="col-sm-4 font-weight-bold" style="line-height:1em;" id="lblBuyMembershipVoucherAdults"><span class="sr-only">membership voucher adults</span></label>
624                        <div class="col-sm-8">
625                            <div class="input-group">
626                                <div class="input-group-prepend">
627                                    <button type="button" class="btn btn-primary qtyIncrement" data-type="adults" data-add="-1">-</button>
628                                </div>
629                                <input type="text" class="form-control text-center border" name="adults" id="buyMembershipVoucherAdults" placeholder="0" value="">
630                                <div class="input-group-append">
631                                    <button type="button" class="btn btn-primary qtyIncrement" data-type="adults" data-add="1">+</button>
632                                </div>
633                            </div>
634                        </div>
635                    </div>
636                    <div class="row mb-1 align-items-center" id="divBuyMembershipVoucherChildren">
637                        <label for="buyMembershipVoucherChildren" class="col-sm-4 font-weight-bold" style="line-height:1em;" id="lblBuyMembershipVoucherChildren"><span class="sr-only">membership voucher children</span></label>
638                        <div class="col-sm-8">
639                            <div class="input-group">
640                                <div class="input-group-prepend">
641                                    <button type="button" class="btn btn-primary qtyIncrement" data-type="children" data-add="-1">-</button>
642                                </div>
643                                <input type="text" class="form-control text-center border" name="children" id="buyMembershipVoucherChildren" placeholder="0" value="">
644                                <div class="input-group-append">
645                                    <button type="button" class="btn btn-primary qtyIncrement" data-type="children" data-add="1">+</button>
646                                </div>
647                            </div>
648                        </div>
649                    </div>
650                    <div class="row mb-1 align-items-center" id="divBuyMembershipVoucherSeniors" style="display:none;">
651                        <label for="buyMembershipVoucherSeniors" class="col-sm-4 font-weight-bold" style="line-height:1em;" id="lblBuyMembershipVoucherSeniors"><span class="sr-only">membership voucher seniors</span></label>
652                        <div class="col-sm-8">
653                            <div class="input-group">
654                                <div class="input-group-prepend">
655                                    <button type="button" class="btn btn-primary qtyIncrement" data-type="seniors" data-add="-1">-</button>
656                                </div>
657                                <input type="text" class="form-control text-center border" name="seniors" id="buyMembershipVoucherSeniors" placeholder="0" value="">
658                                <div class="input-group-append">
659                                    <button type="button" class="btn btn-primary qtyIncrement" data-type="seniors" data-add="1">+</button>
660                                </div>
661                            </div>
662                        </div>
663                    </div>
664                    <div class="row mb-1 align-items-center" id="divBuyMembershipVoucherStudents" style="display:none;">
665                        <label for="buyMembershipVoucherStudents" class="col-sm-4 font-weight-bold" style="line-height:1em;" id="lblBuyMembershipVoucherStudents"><span class="sr-only">membership voucher students</span></label>
666                        <div class="col-sm-8">
667                            <div class="input-group">
668                                <div class="input-group-prepend">
669                                    <button type="button" class="btn btn-primary qtyIncrement" data-type="students" data-add="-1">-</button>
670                                </div>
671                                <input type="text" class="form-control text-center border" name="students" id="buyMembershipVoucherStudents" placeholder="0" value="">
672                                <div class="input-group-append">
673                                    <button type="button" class="btn btn-primary qtyIncrement" data-type="students" data-add="1">+</button>
674                                </div>
675                            </div>
676                        </div>
677                    </div>
678                    <div class="row mb-1 align-items-center" id="divBuyMembershipVoucherDisabled" style="display:none;">
679                        <label for="buyMembershipVoucherDisabled" class="col-sm-4 font-weight-bold" style="line-height:1em;" id="lblBuyMembershipVoucherDisabled"><span class="sr-only">membership voucher disabled</span></label>
680                        <div class="col-sm-8">
681                            <div class="input-group">
682                                <div class="input-group-prepend">
683                                    <button type="button" class="btn btn-primary qtyIncrement" data-type="disabled" data-add="-1">-</button>
684                                </div>
685                                <input type="text" class="form-control text-center border" name="disabled" id="buyMembershipVoucherDisabled" placeholder="0" value="">
686                                <div class="input-group-append">
687                                    <button type="button" class="btn btn-primary qtyIncrement" data-type="disabled" data-add="1">+</button>
688                                </div>
689                            </div>
690                        </div>
691                    </div>
692                    <div class="row mb-1 align-items-center" id="divBuyMembershipVoucherCarers" style="display:none;">
693                        <label for="buyMembershipVoucherCarers" class="col-sm-4 font-weight-bold" style="line-height:1em;" id="lblBuyMembershipVoucherCarers"><span class="sr-only">membership voucher carers</span></label>
694                        <div class="col-sm-8">
695                            <div class="input-group">
696                                <div class="input-group-prepend">
697                                    <button type="button" class="btn btn-primary qtyIncrement" data-type="carers" data-add="-1">-</button>
698                                </div>
699                                <input type="text" class="form-control text-center border" name="carers" id="buyMembershipVoucherCarers" placeholder="0" value="">
700                                <div class="input-group-append">
701                                    <button type="button" class="btn btn-primary qtyIncrement" data-type="carers" data-add="1">+</button>
702                                </div>
703                            </div>
704                        </div>
705                    </div>
706                    <div class="row mb-1 align-items-center" id="divBuyMembershipVoucherChildminders" style="display:none;">
707                        <label for="buyMembershipVoucherChildminders" class="col-sm-4 font-weight-bold" style="line-height:1em;" id="lblBuyMembershipVoucherChildminders"><span class="sr-only">membership voucher childminders</span></label>
708                        <div class="col-sm-8">
709                            <div class="input-group">
710                                <div class="input-group-prepend">
711                                    <button type="button" class="btn btn-primary qtyIncrement" data-type="childminders" data-add="-1">-</button>
712                                </div>
713                                <input type="text" class="form-control text-center border" name="childminders" id="buyMembershipVoucherChildminders" placeholder="0" value="">
714                                <div class="input-group-append">
715                                    <button type="button" class="btn btn-primary qtyIncrement" data-type="childminders" data-add="1">+</button>
716                                </div>
717                            </div>
718                        </div>
719                    </div>
720                    
721                </div>
722                <div class="modal-footer justify-content-between">
723                    <button type="button" class="btn btn-secondary" data-dismiss="modal" data-bs-dismiss="modal">Cancel</button>
724                    <button type="button" class="btn btn-primary" style="display:none;
724" id="btnAddMembershipVoucher" onclick="addMembershipVoucher();">Add to basket</button>
725                </div> 
726            </form>
727        </div>
728    </div>
729</div>
730
731<div class="modal fade" id="modalBuyVoucherSuccess" tabindex="-1" role="dialog" aria-hidden="true">
732    <div class="modal-dialog modal-dialog-centered" role="document">
733        <div class="modal-content">
734            <div class="modal-header">
735                <h5 class="modal-title mx-auto">Success</h5>
736            </div>
737			            <div class="modal-body text-center py-4">
738                Voucher added to your basket
739            </div>
740			            <div class="modal-footer justify-content-between">
741                <button type="button" class="btn btn-secondary btn-noarrow" data-dismiss="modal" data-bs-dismiss="modal">Continue shopping</button>
742                <a href="/shop/basket" class="btn btn-primary" id="modalSuccessCTAButton">Checkout</a>
743            </div>
744        </div>
745    </div>
746</div>
747
748<div class="modal fade" id="modalAvailableProductsSummary" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
749    <div class="modal-dialog modal-dialog-centered" role="document">
750        <div class="modal-content">
751            <form id="frmModalAvailableProducts" action="/booking/activityGrouped.php" method="get">
752                <input type="hidden" name="addAllToBasket" value="1">
753                <div class="modal-header">
754                    <h3 class="modal-title" id="exampleModalLongTitle">Booking summary</h3>
755                    <button type="button" class="close btn-close" data-dismiss="modal" data-bs-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
756                </div>
757                <div class="modal-body">
758                    <div class="row">
759                        <div class="col-12">
760                            <p class="text-center" id="timeRem">You have <span id="minsRem">05</span>:<span id="secsRem">00</span> to complete your booking</p>
761                        </div>
762                    </div>
763                    <div class="row">
764                        <div class="col-12">
765                            <strong>Activities:</strong><br>
766                            <div id="availSummaryActivities"></div>
767                        </div>
768                    </div>
769                    <div class="row mt-2">
770                        <div class="col-6">
771                            <div class="row">
772                                <div class="col-12 col-md-6 font-weight-bold">Date:</div>
773                                <div class="col-12 col-md-6 text-md-right" id="availSummaryDate"></div>
774                            </div>
775                        </div>
776                        <div class="col-6">
777                            <div class="row">
778                                <div class="col-12 col-md-6 font-weight-bold">Time:</div>
779                                <div class="col-12 col-md-6 text-md-right" id="availSummaryTime"></div>
780                            </div>
781                        </div>
782                                            </div>
783                    <hr />
784                    <div class="row justify-content-md-end mt-2">
785                        <div class="col-6">
786                            <div class="row">
787                                <div class="col-12 col-md-6 font-weight-bold">Total:</div>
788                                <div class="col-12 col-md-6 text-md-right">
789                                    <span id="availSummaryTotalPrice"></span>
790                                </div>
791                            </div>
792                        </div>
793                    </div>
794                </div>
795                <div class="modal-footer justify-content-between">
796                    <a class="btn btn-secondary text-white" data-dismiss="modal" data-bs-dismiss="modal">Change Date/Time</a>
797                    <a href="#" onclick="$('#frmModalAvailableProducts').submit(); return false;" class="btn btn-primary allow-navigation">Book now</a>
798                </div>
799            </form>
800        </div>
801    </div>
802</div>
803
804<!-- Modal -->
805<div class="modal fade" id="addtobasketmodal" tabindex="-1" role="dialog" aria-labelledby="AddToBasketModalTitle" aria-hidden="true" data-keyboard="false" data-backdrop="static">
806    <div class="modal-dialog modal-dialog-centered" role="document">
807        <div class="modal-content">
808            <div class="modal-header">
809                <h3 class="modal-title" id="AddToBasketModalTitle">Your basket has been updated.</h3>
810            </div>
811            <div class="modal-body">
812                <div class="row">
813                    <div class="col-4">
814                        <img src="" alt="" id="addToBasketImage" />
815                    </div>
816                    <div class="col-8">
817                        <span id="addToBasketName">Product</span> has been added to your basket.
818                    </div>
819                </div>
820            </div>
821            <div class="modal-footer justify-content-between">
822                <button type="button" class="btn btn-secondary" data-dismiss="modal" data-bs-dismiss="modal">Continue shopping</button>
823                <a class="btn btn-primary" href="/shop/basket">Checkout</a>
824            </div>
825        </div>
826    </div>
827</div>
828
829
830<div class="modal fade" id="buyCashGiftVoucherModal" tabindex="-1" role="dialog" aria-labelledby="buyCGVoucherModalTitle" aria-hidden="true">
831	<div class="modal-dialog modal-dialog-centered" role="document">
832		<div class="modal-content">
833			<div class="modal-header">
834				<h4 class="modal-title" id="buyCGVoucherModalTitle">Let's customise your voucher!</h4>
835				<button type="button" class="close" data-dismiss="modal" data-bs-dismiss="modal" aria-label="Close">
836					<span aria-hidden="true">&times;</span>
837				</button>
838			</div>
839			<div class="modal-body">
840				<input type="hidden" class="form-control" id="modal-voucher-product-id">
841				<div id="modalGiftVoucherToWrapper" class="form-group">
842					<label for="modal-voucher-to" class="col-form-label">To: <span class="text-danger">*</span></label>
843					<input type="text" class="form-control required" id="modal-voucher-to">
844					<small class="invalid-feedback">This field is mandatory.</small>
845				</div>
846				<div id="modalGiftVoucherFromWrapper" class="form-group">
847					<label for="modal-voucher-from" class="col-form-label">From:  <span class="text-danger">*</span></label>
848					<textarea class="form-control" id="modal-voucher-from"></textarea>
849					<small class="invalid-feedback">This field is mandatory.</small>
850				</div>
851				<div id="modalGiftVoucherMessageWrapper" class="form-group">
852					<label for="modal-voucher-message" class="col-form-label">Message:  <span class="text-danger">*</span></label>
853					<textarea class="form-control" id="modal-voucher-message"></textarea>
854				</div>
855			</div>
856			<div class="modal-footer justify-content-between">
857				<button type="button" class="btn btn-secondary" data-dismiss="modal" data-bs-dimiss="modal">Close</button>
858				<button type="button" class="btn btn-primary" onclick="buyGiftVoucher()" id="buyCashGiftVoucherButton">Buy voucher</button>
859			</div>
860		</div>
861	</div>
862</div>
863
864<div class="modal fade" id="modalEssentialCompanionTicket" tabindex="-1" role="dialog" aria-hidden="true">
865	<div class="modal-dialog modal-dialog-centered" role="document">
866		<div class="modal-content">
867			<div class="modal-header">
868				<h5 class="modal-title">Essential Companion Ticket</h5>
869			</div>
870			<div class="modal-body">
871                
872                    <p class="card-text">We're proud to join the Access Card scheme and continue our mission of creating unforgettable days out for everyone. From standing and queuing assistance to urgent toilet access, the Access Card allows us to make reasonable adjustments to meet your needs.<p>
873                    <p class="card-text">If you have any questions or would like more details about the Access Card or our free registration option, please have a look at the Accessibility page on our website.</p>
874                    <a href="/shop/essential-companion" target="_blank" class="btn btn-primary mb-3">Accessibility</a>
875                    <p class="card-text">Please enter your Access Card details below in order for us to grant you an Essential Companion ticket for Access Cards with a +1 or +2 symbol.</p>
876                
877				<form class="m-0" id="frmModalAccessCard">
878                    <input type="submit" style="display:none;" value="submit"/>
879                    <input type="hidden" id="essentialCompanionCategoryId">
880                    <div class="alert alert-danger text-center" style="display:none;" id="divModalAccessCardError" role="alert"></div>
881                    <div class="alert alert-warning text-center" style="display:none;" id="divModalAccessCardWarning" role="alert"></div>
882                    <div class="alert alert-success text-center" style="display:none;" id="divModalAccessCardSuccess" role="alert">
883                        Thank you, your Access Card has been accepted and you are entitled to an Essential Companion ticket for Access Cards with a +1 or +2 symbol.
884                    </div>
885                    <div class="form-group">
886                        <label class="mb-1" for="modalAccessCardFirstName">First Name</label>
887                        <input type="text" class="form-control" name="modalAccessCardFirstName" id="modalAccessCardFirstName" required>
888                    </div>
889                    <div class="form-group">
890                        <label class="mb-1" for="modalAccessCardLastName">Last Name</label>
891                        <input type="text" class="form-control" name="modalAccessCardLastName" id="modalAccessCardLastName" required>
892                    </div>
893                    <div class="form-group">
894                        <label class="mb-1" for="modalAccessCardID">Access Card ID</label>
895                        <input type="number" class="form-control" name="modalAccessCardID" id="modalAccessCardID" required>
896                    </div>
897                </form>
898			</div>
899			<div class="modal-footer justify-content-between">
900				<button type="button" class="btn btn-secondary" data-dismiss="modal" data-bs-dismiss="modal">Close</button>
901                <button type="button" class="btn btn-primary" id="btnCheckModalAccessCard" data-action="checkModalAccessCard">Submit</button>
902                <button type="button" class="btn btn-primary" id="btnAddAnotherAccessCard" data-action="addAccessCard" data-addinganother="true" data-categoryid="">Add Another Card</button>
903			</div>
904		</div>
905	</div>
906</div>
907
908<div class="modal fade" id="modalMembershipUpgrades" tabindex="-1" role="dialog" aria-hidden="true">
909	<div class="modal-dialog modal-lg modal-dialog-centered" role="document">
910		<div class="modal-content">
911			<div class="modal-header">
912				<h5 class="modal-title">Available Membership Upgrades</h5>
913				<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
914			</div>
915			<div class="modal-body">
916                <div class="row justify-content-start justify-content-md-center">
917                                    </div>
918			</div>
919            <div class="modal-footer">
920                <button type="button" class="btn btn-secondary" data-dismiss="modal" data-bs-dismiss="modal">Close</button>
921            </div>
922		</div>
923	</div>
924</div>
925
926<div class="modal fade" id="modalVerifyMembershipDetails" tabindex="-1" role="dialog" aria-hidden="true">
927	<div class="modal-dialog modal-dialog-centered" role="document">
928		<div class="modal-content">
929			<div class="modal-header">
930				<h5 class="modal-title">Verify Membership Details</h5>
931				<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
932			</div>
933			<div class="modal-body" id="divVerifyMembershipDetails">
934                <p class="card-text">Please verify your membership information below for membership <b></b>.</p>
935                <form class="m-0" id="frmModalVerifyMembershipDetails">
936                    <input type="submit" style="display:none;" value="submit"/>
937                    <input type="hidden" id="verifyMembershipCardNumber" value="">
938                    <div class="alert alert-danger text-center" style="display:none;" id="divModalVerifyMembershipError" role="alert"></div>
939                    <div class="form-group">
940                        <label class="mb-0" for="verifyMembershipFirstName">First Name</label>
941                        <input type="text" class="form-control" id="verifyMembershipFirstName" required>
942                    </div>
943                    <div class="form-group">
944                        <label class="mb-0" for="verifyMembershipLastName">Last Name</label>
945                        <input type="text" class="form-control" id="verifyMembershipLastName" required>
946                    </div>
947                    <div class="form-group">
948                        <label class="mb-0" for="verifyMembershipEmailAddress">Email Address</label>
949                        <input type="email" class="form-control" id="verifyMembershipEmailAddress" required>
950                    </div>
951                </form>
952			</div>
953            <div class="modal-footer justify-content-between">
954                <button type="button" class="btn btn-secondary" data-dismiss="modal" data-bs-dismiss="modal">Close</button>
955                <button type="button" class="btn btn-primary" id="btnVerifyMembershipDetails" onclick="verifyMembershipDetails(); return false;">Submit</button>
956                <button type="button" class="btn btn-primary" id="btnUpdateBasketUsingMembership" onclick="updateBasketUsingMembership(); return false;">Submit</button>
957            </div>
958		</div>
959	</div>
960</div>
961
962<div class="modal fade" id="modalCharityDonation" tabindex="-1" role="dialog" aria-hidden="true">
963	<div class="modal-dialog modal-dialog-centered" role="document">
964		<div class="modal-content">
965			<div class="modal-header">
966				<h5 class="modal-title">WildLife Foundation Donation<span class="sr-only">charity product</span></h5>
967			</div>
968			<div class="modal-body">
969                                <p class="card-text"><div>
970	We can&rsquo;t do what we do without you. Donate to WildLife Foundation today!</div>
971<div>
972	&nbsp;</div>
973<div>
974	Your donations &ndash; however big or small &ndash; make a HUGE difference to animals around the world that really need our help</div></p>                <p class="card-text">Charity registration number: 1152642</p>                
975                                
976                                    <button type="button" class="p-2 btn btn-primary rounded mt-2 mr-2" onclick="window.location.href='/shop/basket.php?addCharityDonation=true&amount=5.00';">&pound;5.00</button>
977                                    <button type="button" class="p-2 btn btn-primary rounded mt-2 mr-2" onclick="window.location.href='/shop/basket.php?addCharityDonation=true&amount=10.00';">&pound;10.00</button>
978                                    <button type="button" class="p-2 btn btn-primary rounded mt-2 mr-2" onclick="window.location.href='/shop/basket.php?addCharityDonation=true&amount=15.00';">&pound;15.00</button>
979                                
980                                    <button onclick="$('#customCharityDonationContainer').slideToggle('fast'); $('#customCharityDonation').select();" type="button" class="p-2 btn btn-outline-primary rounded mt-2 mr-2">Custom</button>
981                    <div id="customCharityDonationContainer" style="display:none;" class="py-3">
982                        <form class="m-0" id="frmCharityDonation" action="/shop/basket.php" >
983                            <input type="hidden" name="addCharityDonation" value="true">
984                            <div class="d-inline-block mx-auto">
985                                <label>How much would you like to give?</label>
986                                <div class="input-group mt-1">
987                                    <input type="text" class="form-control" name="amount" id="customCharityDonation" placeholder="0.00" required>
988                                    <div class="input-group-append">
989                                        <button type="submit" class="btn btn-primary">Donate</button>
990                                    </div>
991                                </div>
992                            </div>
993                        </form>
994                    </div>
995                			</div>
996			<div class="modal-footer justify-content-between">
997				<button type="button" class="btn btn-secondary" data-dismiss="modal" data-bs-dismiss="modal">Close</button>
998			</div>
999		</div>
1000	</div>
1001</div>
1002
1003<script nonce="NfoDRi0mkSG1zm4PhkX9gk1Ed/bGNqdSw+Qhv32LmJ0=">
1004    window.dataLayer = window.dataLayer || [];
1005</script>
1005
1006 
1007
1008	<div class="modal fade" id="deleteModal" tabindex="-1" role="dialog" aria-hidden="true">
1009		<div class="modal-dialog modal-dialog-centered" role="document">
1010			<div class="modal-content">
1011				<div class="modal-header">
1012					<h3 class="modal-title" id="exampleModalLongTitle">Are you sure?</h3>
1013					<button type="button" class="close btn-close" data-bs-dismiss="modal" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
1014				</div>
1015				<div class="modal-body">
1016					<div class="alert alert-danger text-center" role="alert" id="divDeleteProductError"></div>
1017					<div id="divDeleteProductBody">Are you sure you want to remove <span class="delete-name"></span> from your basket?</div>
1018				</div>
1019				<div class="modal-footer justify-content-between">
1020					<button type="button" class="btn btn-secondary" data-dismiss="modal" data-bs-dismiss="modal">No, cancel</button>
1021					<a tabindex="-1" class="btn btn-primary" id="deleteLink">Yes, remove</a>
1022					<a tabindex="-1" class="btn btn-primary" id="btnDeleteGroup">Ok, remove all products</a>
1023				</div>
1024			</div>
1025		</div>
1026	</div>
1027	
1028	
1029	
1029<script nonce="NfoDRi0mkSG1zm4PhkX9gk1Ed/bGNqdSw+Qhv32LmJ0=">
1030		window.dataLayer = window.dataLayer || [];
1031		var deleteKey = "";
1032		var categoryId = 0, locationId = 0;
1033
1034		$(function() {
1035			$('[data-toggle="tooltip"]').tooltip();
1036		})
1037		$("#deleteModal").on("show.bs.modal", function(event) {
1038			$("#divDeleteProductBody").show();
1039			$("#divDeleteProductError").html("").hide();
1040			$("#btnDeleteGroup").hide();
1041			$("#deleteLink").show();
1042			
1043			var button = $(event.relatedTarget) // Button that triggered the modal
1044			deleteKey = button.data("productkey"); // Extract info from data-* attributes
1045			categoryId = button.data("categoryid");
1046			locationId = button.data("locationid");
1047			var productname = button.data('productname');
1048			// If necessary, you could initiate an AJAX request here (and then do the updating in a callback).
1049			// Update the modal's content. We'll use jQuery here, but you could use a data binding library or other methods instead.
1050			var modal = $(this)
1051			//modal.find('#deleteLink').attr("href", "/shop/basket.php?delete_product=1&product_key=" + deleteKey);
1052			//modal.find('#deleteLink').attr("href", "/shop/basket.php?delete_product=1&product_key=" + deleteKey);
1053			modal.find('.modal-body .delete-name').text(productname);
1054		});
1055		
1056		$("#deleteLink").click(function() {
1057			console.log("delete "+deleteKey);
1058			$.ajax({
1059				method: "POST",
1060				url: "/shop/ajax.php",
1061				data: { deleteProduct: 1, basketKey: deleteKey, categoryId: categoryId, locationId: locationId },
1062				dataType: "json",
1063			}).done(function(data) {
1064				if(data.error == 0) {
1065					removeFromCartTrackingEvents(deleteKey);
1066				} else if(data.error > 0) {
1067					if(data.restrictionError != "" && data.restrictionError != null) {
1068						$("#divDeleteProductBody").hide();
1069						$("#deleteLink").hide();
1070						
1071						if(data.canDeleteGroup) {
1072							$("#divDeleteProductError").html("<b>Sorry, you cannot delete this product</b><br><br>"+data.restrictionError+"<br><br>To remove this, either remove all products or empty the basket").slideDown();
1073							$("#btnDeleteGroup").show();
1074						} else {
1075							$("#divDeleteProductError").html("<b>Sorry, you cannot delete this product</b><br><br>"+data.restrictionError+"<br><br>To remove this, either remove the product it's linked to or empty the basket").slideDown();
1076						}
1077						
1078					}
1079				}
1080			})
1081		});
1082		
1083		$("#btnDeleteGroup").click(function() {
1084			$.ajax({
1085				method: "POST",
1086				url: "/shop/ajax.php",
1087				data: { deleteProductGroup: 1, basketKey: deleteKey },
1088				dataType: "json",
1089			}).done(function(data) {
1090				removeFromCartTrackingEvents(deleteKey);
1091			});
1092		});
1093
1094		$('#storebalancetoken').click(function() {
1095		    if(this.checked) {
1096				$('#payDepositButton').attr("disabled", false);
1097		    } else {
1098				$('#payDepositButton').attr("disabled", true);
1099		    }
1100		});
1101
1102		function removeFromCartTrackingEvents(){
1103			console.log("removeFromCartTrackingEvents");
1104			const itemData = $("#deleteItem_"+deleteKey).data('productdata');
1105			var item = JSON.parse(decodeURIComponent(itemData));
1106			locationname = $("#deleteItem_"+deleteKey).data('locationname');
1107			productname = item.name.replace(/\+/g, " ");
1108			console.log(item);
1109			/*
1110			waitForFbq(function() {
1111				fbq('track', 'AddToCart', {
1112					content_name: "",
1113					content_category: 'Activities',
1114					content_ids: "",
1115					content_type: 'product',
1116					value: activityPrice,
1117					currency: 'GBP"' 
1118				});  
1119			});
1120			*/
1121			dataLayer.push({ ecommerce: null });  // Clear the previous ecommerce object.
1122			dataLayer.push({
1123				event: "remove_from_cart",
1124				ecommerce: {
1125					currency: "GBP",
1126					value: item.grosstotal_noextras,
1127					items: [
1128						{
1129						item_id: item.code,
1130						item_name: productname,
1131						affiliation: locationname,
1132						coupon: "",
1133						discount: 0,
1134						index: 0,
1135						item_brand: "",
1136						item_category: "",
1137						item_category2: "",
1138						item_category3: "",
1139						item_category4: "",
1140						item_category5: "",
1141						item_list_id: "",
1142						item_list_name: "",
1143						item_variant: "",
1144						item_location: locationname,
1145						location_id: "",
1146						price: item.grosstotal_noextras,
1147						quantity: item.qty
1148						}
1149					]
1150				}
1151			});
1152			window.location.href = "/shop/basket";
1153		}
1154		
1155		
1156		function waitForFbq(callback){
1157			if(typeof fbq !== 'undefined'){
1158				callback()
1159			} else {
1160				setTimeout(function () {
1161					waitForFbq(callback)
1162				}, 100)
1163			}
1164		};
1165
1166
1167		function openmodal(){
1168			console.log('here');
1169		}
1170		function increaseQuantity(productid) {
1171			currentQty = $('#qty_' + productid).val();
1172
1173			var qty = parseInt(parseInt($('#qty_' + productid).val()) + 1);
1174
1175			//var maxqty = $('#qty_'+productid).attr('rel');
1176			//console.log(maxqty);
1177			//if (qty <= maxqty){
1178			$('#qty_' + productid).val(qty);
1179			//}  
1180		}
1181
1182		function decreaseQuantity(productid) {
1183			currentQty = $('#qty_' + productid).val();
1184			if (currentQty < 1) {
1185				var qty = 0;
1186			} else {
1187				var qty = parseInt(parseInt($('#qty_' + productid).val()) - 1);
1188			}
1189			var minqty = 1;
1190			if (qty >
1190= minqty) {
1191				$('#qty_' + productid).val(qty);
1192			}
1193		}
1194	</script>
1194
1195	
1195<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"3298d3cc761247edbedc25ed7b299bcd","spa":2}' crossorigin="anonymous"></script>
1195
1196</body>
1197
1198</html>
1199    
1199<script nonce="NfoDRi0mkSG1zm4PhkX9gk1Ed/bGNqdSw+Qhv32LmJ0=">
1200
1201      $(document).ready(function() {
1202        updateDeviceInfo();
1203      });
1204
1205      function updateDeviceInfo() {
1206        var screenX = window.screen.availWidth;
1207        var screenY = window.screen.availHeight;
1208        var windowX = $(window).width();
1209        var windowY = $(window).height();
1210
1211        $.get('/shop/ajax.php', {ajax: true, method: 'updateDeviceInfo', screenX: screenX, screenY: screenY, windowX: windowX, windowY: windowY}).done(function(response) {
1212          if(response == 'OK') {
1213            console.log('Device info updated');
1214          }
1215        });
1216      }
1217
1218    </script>
1218
1219    

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.