1<!DOCTYPE html> 2 <html lang="en" data-bs-theme=""> 3 <head> 4 <meta charset="utf-8" /> 5 <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 7 <meta http-equiv="cleartype" content="on"> 8 <meta name="viewport" content="width=device-width, initial-scale=1"> 9 <meta name="MobileOptimized" content="width"> 10 <meta name="HandheldFriendly" content="true"> 11 <meta property="og:url" content="https://www.homeradontest.ca/login?lang=en" /> 12 <meta property="og:type" content="website" /> 13 <meta property="og:locale" content="en_CA" /> 14 <meta property="og:locale:alternative" content="fr_CA" /> 15 <link rel="canonical" href="https://www.homeradontest.ca/login?lang=en" /> 16 <link rel="alternative" hreflang="en-CA" href="https://www.homeradontest.ca/login?lang=en" /> 17 <link rel="alternative" hreflang="fr-CA" href="https://www.homeradontest.ca/login?lang=fr" /> 18 <title>Login</title> 19 <meta name="apple-mobile-web-app-title" content="Home Radon Test Program"> 20 <meta name="application-name" content="Home Radon Test Program"> 21 <meta name="msapplication-TileColor" content="#603081"> 22 <meta name="theme-color" content="#4189dd"> 23 <meta data-name="session-length" content="1440" /> 24 <link rel="stylesheet" href="/css/style.css?20260106" /> 25 <link rel="stylesheet" href='/fwk/JavaScript/gnu/vidstack-1.12.12/player.css' /> 26 <link rel="stylesheet" href='/fwk/JavaScript/gnu/vidstack-1.12.12/plyr.css' /> 27 <link rel="stylesheet" href='/fwk/JavaScript/gnu/vidstack-1.12.12/tweaks.css' /> 28
28<script type='text/javascript' src='/fwk/JavaScript/gnu/jQuery/jquery-1.11.2.min.js'></script>
28 29
29<script src="/js/bootstrap.bundle.min.js"></script>
vendor: 1 bytes, line 29
29
30<script type="module" src="/fwk/JavaScript/gnu/vidstack-1.12.12/vidstack-init.js"></script>
vendor: 1 bytes, line 30
30
31<script> 32 document.addEventListener("DOMContentLoaded", (event) => { 33 if (typeof window.initVidstack === "function") { 34 window.initVidstack(); 35 } 36 }); 37</script>
37 38<!-- Facebook Pixel Code for advertisement tracking --> 39
39<script>
vendor: 407 bytes, lines 39-45
39 40 !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? 41 n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; 42 n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; 43 t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, 44 document,'script','https://connect.facebook.net/en_US/fbevents.js'); 45 fbq('init', '
45702922013564219
vendor: 4 bytes, line 45
45');
45// Insert your pixel ID here. 46 fbq('track', 'PageView'); 47 </script>
47 48 <!-- End Facebook Pixel Code --> 49 <!-- Matomo --> 50
50<script type='text/javascript'> 51 var _paq = _paq || []; 52 53 54 _paq.push(['trackPageView']); 55 _paq.push(['enableLinkTracking']); 56 (function() { 57 var u='https://matomo.lungsask.ca/'; 58 _paq.push(['setTrackerUrl', u+'matomo.php']); 59 _paq.push(['setSiteId', 23]); 60 var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; 61 g.type='text/javascript'; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); 62 })(); 63 </script>
63 64 <!-- End Matomo --> 65 <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 65 bytes, lines 65-66
65 66 <script async src="https://www.googletagmanager.com/gtag/js?id=
66AW-992419532
vendor: 13 bytes, lines 66-67
66"></script> 67
67<script> 68
vendor: 133 bytes, lines 68-71
68window.dataLayer = window.dataLayer || []; 69 function gtag(){dataLayer.push(arguments);} 70 gtag("js", new Date()); 71 gtag("config", "
71AW-992419532
vendor: 5 bytes, lines 71-72
71"); 72
72gtag("config", "AW-516685511"); 73 gtag("config", "G-LMXE5DHCCK"); 74 75 </script>
75 76
76<script src="/fwk/JavaScript/util/form.js"></script>
76 77 <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> 78 <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> 79 <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> 80 <link rel="manifest" href="/site.webmanifest"> 81 <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#603081"> 82 </head> 83<body> 84 <header class="text-white bg-black"> 85 <nav id="mainNavbar" class="navbar d-print-none navbar-dark navbar-expand-xl"> 86<div class="container"> 87<button type="button" class="navbar-toggler" aria-controls="mainNavbarCollapse" aria-expanded="false" aria-label="Toggle navigation" data-bs-toggle="collapse" data-bs-target="#mainNavbarCollapse"> 88<span class="navbar-toggler-icon"></span> 89</button> 90<div id="mainNavbarCollapse" class="collapse navbar-collapse justify-content-between"> 91<ul class="navbar-nav"> 92<li class="nav-item"> 93<a class="nav-link" href="/">Home</a> 94</li> 95<li class="nav-item dropdown"> 96<a role="button" class="nav-link dropdown-toggle" aria-expanded="false" data-bs-toggle="dropdown" href="#">Purchase</a> 97<ul class="dropdown-menu"> 98<li> 99<a class="dropdown-item" href="/order/kit">Single-use 90 Day Test</a> 100</li> 101<li> 102<a class="dropdown-item" href="/order/product">Electronic Radon Monitor</a> 103</li> 104<li> 105<hr class="dropdown-divider" /> 106</li> 107<li> 108<a class="dropdown-item" href="/order/compare">What's the difference?</a> 109</li> 110</ul> 111</li> 112<li class="nav-item"> 113<a class="nav-link" href="/kit/create">Start Test</a> 114</li> 115<li class="nav-item"> 116<a class="nav-link" href="/kit">End Test</a> 117</li> 118<li class="nav-item"> 119<a class="nav-link" href="/faq">FAQ</a> 120</li> 121<li class="nav-item"> 122<a class="nav-link" href="/contact">Contact Us</a> 123</li> 124</ul> 125<form class="d-flex flex-grow-1 ps-xl-2"> 126<a class="btn btn-light btn-sm" href="/story">My Radon Story</a> 127</form> 128</div> 129<ul class="navbar-nav flex-row nav-always-visible"> 130<li class="nav-item"> 131<a class="nav-link active" aria-current="page" href="/login">Login</a> 132</li> 133<li class="nav-item"> 134<a class="nav-link" href="/login?lang=fr">Français</a> 135</li> 136</ul> 137</div> 138</nav> <div id="page-title-bg"> 139 <div class="container"> 140 <div class="row align-items-center"> 141 <div class="col"> 142 <h1 id="page-title" class="text-center text-sm-start mb-0"> 143 <a href="/"> 144 <img src="/media/logo-hrt-inv.png" alt="HomeRadonTest.ca" id="englishLogo" class="img-fluid d-print-none" width="357" height="200" /> 145 <img src="/media/logo-hrt.jpg" alt="HomeRadonTest.ca" class="d-none d-print-block" width="357" height="200" style="height: 90px; width: auto; margin-bottom: 0;" /> 146 <span class="visually-hidden">Home Radon Test Program</span> 147 </a> 148 </h1> 149 </div> 150 <div class="col-5 col-lg-4 text-center text-sm-end text-lg-center"> 151 <img src="/fwk/media/images/logos/lungsask/lungsask-w-sm385.png" alt="Lung Sask" class="lungLogo img-fluid d-print-none" width="385" height="203" /> 152 <img src="/fwk/media/images/logos/lungsask/lungsask.png" alt="Lung Sask" class="lungLogo d-none d-print-inline-block" style="height: 90px; width: auto; margin-bottom: 0;" width="385" height="203" /> 153 </div> 154 </div> 155 </div> 156 </div> 157 </header> 158 <a id='prettyActions' rel='prettyPhoto' title='' href='' style='display:none'>prettyPhoto placeholder</a> 159 <div class='body-container text-body bg-body'> 160 <div class='container'> 161 <div class="row"> 162 <!-- main div --> 163 <div class="col-lg-4 offset-lg-4 col-md-6 offset-md-3 col-sm-8 offset-sm-2"> 164 <div class="page-header"> 165 <h2>Login</h2> 166 </div> 167 168 <div id="divResults_frmLogin" class="alert alert-info" style="display: none;" role="alert"></div> 169<form id="frmLogin" method="POST" action="/auth"> 170<fieldset class="row g-3 mb-3"> 171<div class="col-12"> 172<label class="form-label" for="emailFrmLogin">Email*</label> 173<input id="emailFrmLogin" type="email" class="form-control" aria-label="Email" name="email" placeholder="Email" required /> 174</div> 175<div class="col-12"> 176<label class="form-label" for="kitNumFrmLogin">Detector ID*</label> 177<input id="kitNumFrmLogin" type="text" class="form-control text-uppercase" aria-label="Detector ID" aria-describedby="kitNumFrmLoginHelp" name="kitNum" maxlength="6" placeholder="Detector ID" required /> 178<div id="kitNumFrmLoginHelp" class="form-text">Enter the 6 character detector ID printed on the foil bag and on the top of the detector.</div> 179</div> 180<div class="col-auto "> 181<button id="submitButtonFrmLogin" type="submit" class="btn btn-primary" data-loading-text="Processing..." name="submitButton" autocomplete="off"><span class="fa-solid fa-chevron-right" aria-hidden="true"></span> Login</button> 182</div> 183<div class="col-auto "> 184<button id="forgotIdFrmLogin" type="button" class="btn btn-outline-secondary" data-loading-text="Processing..." name="forgotId" autocomplete="off" onclick="forgotKitNum()"><span class="fa-solid fa-circle-question" aria-hidden="true"></span> Forgot ID</button> 185</div> 186<div class="col-auto d-none"> 187<input id="xsrfTokenFrmLogin" type="hidden" value="1d1351f966b0e0ac92eb8bb7b0c07e2200e7375f" name="xsrfToken" /> 188</div> 189<div class="col-auto d-none"> 190<input id="formIdFrmLogin" type="hidden" value="frmLogin" name="formId" /> 191</div> 192</fieldset> 193</form> </div> 194</div> 195
196<script> 197 function forgotKitNum() { 198 var email = $('#emailFrmLogin').val(); 199 console.log(email); 200 201 $('#divResults_frmLogin').hide(); 202 $('#divResults_frmLogin').text(''); 203 $('#divResults_frmLogin').removeClass('alert-warning'); 204 $('#forgotIdFrmLogin').button('loading'); 205 206 if (email.length == 0) { 207 $('#divResults_frmLogin').text('Please enter your email and we will send you a login link.'); 208 $('#divResults_frmLogin').show(); 209 $(document).scrollTop(0); 210 $('#forgotIdFrmLogin').button('reset'); 211 } else { 212 $.post('/forgotId', {email: email}, function(returnData){ 213 try { 214 var response = JSON.parse(returnData); 215 216 if( response.isError ) { 217 throw new Exception('Error'); 218 } else { 219 $('#divResults_frmLogin').html('<p>We have sent a login link to your email. If you don't receive an email from us, please contact <a href="mailto:[email protected]" class="alert-link">[email protected]</a> for assistance.</p>'); 220 $('#divResults_frmLogin').show(); 221 $(document).scrollTop(0); 222 $('#forgotIdFrmLogin').text('sent') 223 } 224 } catch(e) { 225 var returnMsg = '<p>Error: ' + e.message + '</p>'; 226 // returnMsg += '<p>Returned data:</p>' + returnData; 227 $('#divResults_frmLogin').html(returnMsg); 228 $('#divResults_frmLogin').addClass('alert-warning'); 229 $('#divResults_frmLogin').show(); 230 $(document).scrollTop(0); 231 } 232 }); 233 } 234 } 235</script>
235 236 </div> 237</div> 238<footer class="text-white bg-black"> 239 <div class="container"> 240 <div class="row align-items-center"> 241 <div class="col-sm-6 col-md-4 text-center text-sm-start"> 242 <a href="https://www.lungsask.ca" target="_blank" class="d-print-none "> 243 <img src="/fwk/media/images/logos/lungsask/lungsask-w-sm385.png" alt="Lung Sask" class="lungLogo img-fluid w-75" width="385" height="203" /> 244 </a> 245 <img src="/fwk/media/images/logos/lungsask/lungsask.png" alt="Lung Sask" class="lungLogo d-none d-print-inline-block" style="height: 90px; width: auto; margin-bottom: 0;" width="385" height="203" /> 246 </div> 247 <div class="col-sm-6 col-md-4 text-center text-sm-end text-md-center"> 248 <a href="https://www.src.sk.ca/" target="_blank" class="d-print-none"> 249 <img src="/media/logo-src-colour.png" alt="SRC Environmental Analytical Laboratories" class="srcLogo img-fluid center-block" width="93" height="60" /> 250 </a> 251 <img src="/media/logo-src-colour.png" class="srcLogo d-none d-print-inline-block" style="height: 90px; width: auto; margin-bottom: 0;" width="139" height="90" /> 252 </div> 253 <div class="col-md-4 text-center text-md-end"> 254 <address> 255 <strong>Lung Saskatchewan</strong><br> 256 2308 Arlington Ave<br />Saskatoon, SK S7J 3L3 </address> 257 <p><a href="mailto:[email protected]">[email protected]</a></p> 258 <ul class="list-inline d-print-none fa-width-auto"> 259 <li class="list-inline-item"> 260 <a href="https://www.facebook.com/LungSask" target="_blank"> 261 <span class="fa-brands fa-square-facebook fa-2x" aria-hidden="true"></span> </a> 262 </li> 263 <li class="list-inline-item"> 264 <a href="https://www.linkedin.com/company/lungsask/" target="_blank"> 265 <span class="fa-brands fa-square-linkedin fa-2x" aria-hidden="true"></span> </a> 266 </li> 267 <li class="list-inline-item"> 268 <a href="https://www.instagram.com/lungsask/" target="_blank"> 269 <span class="fa-brands fa-instagram fa-2x" aria-hidden="true"></span> </a> 270 </li> 271 <li class="list-inline-item"> 272 <a href="https://twitter.com/lungsask" target="_blank"> 273 <span class="fa-brands fa-square-x-twitter fa-2x text-white" aria-hidden="true"></span> </a> 274 </li> 275 <li class="list-inline-item"> 276 <a href="https://www.youtube.com/c/LungSask1" target="_blank"> 277 <span class="fa-brands fa-square-youtube fa-2x" aria-hidden="true"></span> </a> 278 </li> 279 </ul> 280 <p class="d-print-none"><a class="icon-link" href="/admin/login"> 281 <span><span class="fa-solid fa-lock" aria-hidden="true"></span></span> 282 Admin Login 283 </a></p> 284 </div> 285 </div> 286 </div> 287 <div class="container fs-6"> 288 <div class="scheme-toggle"> 289 <input type="checkbox" class="checkbox" id="scheme-checkbox"> 290 <label for="scheme-checkbox" class="checkbox-label"> 291 <svg class="fa-moon" aria-labelledby="svg-inline--fa-title-07XQJhgesXu7" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><title id="svg-inline--fa-title-07XQJhgesXu7">Toggle dark mode</title><!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--><path fill="currentColor" d="M320 64C178.6 64 64 178.6 64 320C64 461.4 178.6 576 320 576C388.8 576 451.3 548.8 497.3 504.6C504.6 497.6 506.7 486.7 502.6 477.5C498.5 468.3 488.9 462.6 478.8 463.4C473.9 463.8 469 464 464 464C362.4 464 280 381.6 280 280C280 207.9 321.5 145.4 382.1 115.2C391.2 110.7 396.4 100.9 395.2 90.8C394 80.7 386.6 72.5 376.7 70.3C358.4 66.2 339.4 64 320 64z"/></svg> 292 <svg class="fa-sun" aria-labelledby="svg-inline--fa-title-wTEruepx0xQM" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><title id="svg-inline--fa-title-wTEruepx0xQM">Toggle light mode</title><!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--><path fill="currentColor" d="M320 32C328.4 32 336.3 36.4 340.6 43.7L396.1 136.3L500.9 110C509.1 108 517.8 110.4 523.7 116.3C529.6 122.2 532 131 530 139.1L503.7 243.8L596.4 299.3C603.6 303.6 608.1 311.5 608.1 319.9C608.1 328.3 603.7 336.2 596.4 340.5L503.7 396.1L530 500.8C532 509 529.6 517.7 523.7 523.6C517.8 529.5 509 532 500.9 530L396.2 503.7L340.7 596.4C336.4 603.6 328.5 608.1 320.1 608.1C311.7 608.1 303.8 603.7 299.5 596.4L243.9 503.7L139.2 530C131 532 122.4 529.6 116.4 523.7C110.4 517.8 108 509 110 500.8L136.2 396.1L43.6 340.6C36.4 336.2 32 328.4 32 320C32 311.6 36.4 303.7 43.7 299.4L136.3 243.9L110 139.1C108 130.9 110.3 122.3 116.3 116.3C122.3 110.3 131 108 139.2 110L243.9 136.2L299.4 43.6L301.2 41C305.7 35.3 312.6 31.9 320 31.9zM320 176C240.5 176 176 240.5 176 320C176 399.5 240.5 464 320 464C399.5 464 464 399.5 464 320C464 240.5 399.5 176 320 176zM320 416C267 416 224 373 224 320C224 267 267 224 320 224C373 224 416 267 416 320C416 373 373 416 320 416z"/></svg> 293 <span class="ball"></span> 294 </label> 295</div> </div> 296</footer> 297 298 <div id="body-footer"> 299 <div class="container"> 300 <div class="row align-items-center"> 301 <div class="col text-start"> 302 <span class="nowrap">© 2026 Lung Saskatchewan Inc.</span> 303 </div> 304 <div class="col text-end"> 305 <a href="https://www.lungsask.ca/about-us/website-policies/copyright-notice" target="_blank">All Rights Reserved</a> | 306 <!-- Test. Reduce. Breathe Easy. | --> 307 <a href="https://www.lungsask.ca/about-us/website-policies/privacy-policy" target="_blank">Privacy Statement</a> | 308 <a href="https://www.lungsask.ca/about-us/website-policies/disclaimer" target="_blank">Disclaimer</a> 309 </div> 310 </div> 311 </div> 312</div> 313 314<div class="modal" id="luanas-legacy" tabindex="-1"> 315 <div class="modal-dialog modal-lg modal-fullscreen-lg-down"> 316 <div class="modal-content text-body"> 317 <div class="modal-header"> 318 <h2 class="h5 modal-title">Luana's Legacy</h2> 319 <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> 320 </div> 321 <div class="modal-body p-0 d-flex align-items-center"> 322 <div class="ratio ratio-16x9"> 323 <div id='youtube_6ac1b8fa4fe20' class='vidstack-pre' data-player-options='{"target":"#y
323outube_6ac1b8fa4fe20","logLevel":"error","crossOrigin":true,"playsInline":true,"src":"https:\/\/www.youtube-nocookie.com\/watch?v=apsqQzqXPbo","viewType":"video","streamType":"on-demand"}'></div> 324
324<script> 325 document.querySelectorAll("video").forEach( 326 (v) => v.addEventListener("loadedmetadata", function() { 327 if (v.buffered.length === 0) return; 328 329 var bufferedSeconds = v.buffered.end(0) - v.buffered.start(0); 330 console.log(bufferedSeconds + " seconds of video are ready to play!"); 331 }) 332 ); 333 </script>
333 </div> 334 </div> 335 <!-- <div class="modal-footer"> 336 <a href="https://www.lungsask.ca/make-impact/luanas-legacy" 337 class="btn btn-outline-primary me-sm-auto" 338 target="_blank"> 339 Learn more </a> 340 <button type="button" 341 class="btn btn-outline-secondary" 342 data-bs-dismiss="modal"> 343 Close </button> 344 <button type="button" 345 id="donate-rounded-amount" 346 class="btn btn-outline-success" 347 data-bs-dismiss="modal"> 348 Round Purchase to <span class="rounded-total-amount"></span> 349 </button> 350 <button type="button" 351 id="donate-other-amount" 352 class="btn btn-outline-success" 353 data-bs-dismiss="modal"> 354 Other amount… 355 </button> 356 </div> --> 357 </div> 358 </div> 359</div> 360
360<script> 361 /* 362 * Color mode toggler for Bootstrap's docs (https://getbootstrap.com/) 363 * Copyright 2011-2025 The Bootstrap Authors 364 * Licensed under the Creative Commons Attribution 3.0 Unported License. 365 * 366 * Adapted by Matthew Roberts for use in Lung Sask 367 */ 368 369 (() => { 370 'use strict' 371 372 const getStoredTheme = () => localStorage.getItem('theme') 373 const setStoredTheme = theme => localStorage.setItem('theme', theme) 374 const dispatchThemeChange = (theme, source) => { 375 document.dispatchEvent(new CustomEvent('themechange', { 376 detail: { 377 theme: theme, 378 source: source, 379 }, 380 })); 381 } 382 383 // adapted from: https://stackoverflow.com/a/56550819 384 //identify the toggle switch HTML element 385 const toggleSwitch = document.querySelector('input[type="checkbox"]#scheme-checkbox'); 386 if (!toggleSwitch) { 387 return; 388 } 389 390 const getPreferredTheme = () => { 391 const storedTheme = getStoredTheme() 392 if (storedTheme) { 393 return storedTheme 394 } 395 396 return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' 397 } 398 399 const setTheme = (theme, source = 'system') => { 400 const previousTheme = document.documentElement.getAttribute('data-bs-theme') 401 const appliedTheme = (theme === 'auto') 402 ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') 403 : theme 404 405 document.documentElement.setAttribute('data-bs-theme', appliedTheme) 406 407 if (previousTheme !== appliedTheme) { 408 dispatchThemeChange(appliedTheme, source) 409 } 410 } 411 412 setTheme(getPreferredTheme(), 'init') 413 if (document.documentElement.getAttribute("data-bs-theme") == "dark") { 414 toggleSwitch.checked = true; 415 } 416 417 const showActiveTheme = (theme, focus = false) => { 418 const themeSwitcher = document.querySelector('#bd-theme') 419 420 if (!themeSwitcher) { 421 return 422 } 423 424 const themeSwitcherText = document.querySelector('#bd-theme-text') 425 const activeThemeIcon = document.querySelector('.theme-icon-active use') 426 const btnToActive = document.querySelector(`[data-bs-theme-value="${theme}"]`) 427 const svgOfActiveBtn = btnToActive.querySelector('svg use').getAttribute('href') 428 429 document.querySelectorAll('[data-bs-theme-value]').forEach(element => { 430 element.classList.remove('active') 431 element.setAttribute('aria-pressed', 'false') 432 }) 433 434 btnToActive.classList.add('active') 435 btnToActive.setAttribute('aria-pressed', 'true') 436 activeThemeIcon.setAttribute('href', svgOfActiveBtn) 437 const themeSwitcherLabel = `${themeSwitcherText.textContent} (${btnToActive.dataset.bsThemeValue})` 438 themeSwitcher.setAttribute('aria-label', themeSwitcherLabel) 439 440 if (focus) { 441 themeSwitcher.focus() 442 } 443 } 444 445 window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => { 446 const storedTheme = getStoredTheme() 447 if (storedTheme !== 'light' && storedTheme !== 'dark') { 448 setTheme(getPreferredTheme(), 'system') 449 } 450 }) 451 452 window.addEventListener('DOMContentLoaded', () => { 453 const theme = getPreferredTheme(); 454 showActiveTheme(theme); 455 456 toggleSwitch.addEventListener('change', (e) => { 457 let theme; 458 if (toggleSwitch.checked) { 459 theme = 'dark'; 460 } else { 461 theme = 'light'; 462 } 463 464 setStoredTheme(theme); 465 setTheme(theme, 'toggle'); 466 showActiveTheme(theme, true); 467 }); 468 }) 469 })() 470</script>
470 471
471<script async type='text/javascript' src='/fwk/JavaScript/gnu/lazysizes/lazysizes.min.js'></script>
471 472<!-- Facebook Pixel Code for advertisement tracking --> 473 <noscript> 474 <img height='1' width='1' style='display:none' src='https://www.facebook.com/tr?id=702922013564219&ev=PageView&noscript=1' /> 475 </noscript> 476 <!-- End Facebook Pixel Code --> 477 <!-- Matomo Image Tracker--> 478 <noscript> 479 <img referrerpolicy='no-referrer-when-downgrade' src='https://matomo.lungsask.ca/matomo.php?idsite=23&rec=1&rand=cdef7d9d4caf112f&apiv=1' style='border:0' alt='' /> 480 </noscript> 481 <!-- End Matomo --> 482
482<script defer src='/fwk/JavaScript/util/util.js'></script>
482 483
483<script defer src='/js/radon.js?20231116'></script>
483 484
484<script src='/fwk/JavaScript/gnu/modernizr/modernizr.min.js'></script>
484 485
485<script> 486 if (!Modernizr.inputtypes.date) { 487 $('<link>') 488 .appendTo('head') 489 .attr({ 490 type: 'text/css', 491 rel: 'stylesheet', 492 href: '/fwk/JavaScript/gnu/jquery-ui-1.11.4/themes/smoothness/jquery-ui.min.css' 493 }); 494 $('input[type=date]').datepicker({ 495 dateFormat: 'yy-mm-dd' 496 }); 497 } 498 </script>
498</body></html>
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.