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 = "£"; 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 = "£"; 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 = "£"; 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">© 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">×</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">×</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">×</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">×</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">×</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">×</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">×</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">×</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">×</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">×</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">×</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">×</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’t do what we do without you. Donate to WildLife Foundation today!</div> 971<div> 972 </div> 973<div> 974 Your donations – however big or small – 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';">£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';">£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';">£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">×</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.