CINXE.COM
Home - My Red Cross
<!DOCTYPE html> <html lang="en-US" data-lang="en" crm-lang="en-US" dir="ltr" crm-lcid="1033" same-site-mode="None"> <head> <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /> <script type="text/javascript" > </script> <title> Home - My Red Cross </title> <script src="/_portal/6d6b3012-e709-4c45-a00d-df4b3befc518/Resources/ResourceManager?lang=en"></script> <script type="text/javascript"> // Refresh all powerBI Iframes on Login in one Iframe window.addEventListener('message', function (event) { if (event && event.data && event.data == 'refreshPowerBI') { $("iframe.powerbi").each(function () { this.src = this.src; }); } }); // Fix for incorrect viewport width setting in IE 10 on Windows Phone 8. if (navigator.userAgent.match(/IEMobile\/10\.0/)) { var msViewportStyle = document.createElement("style"); msViewportStyle.appendChild(document.createTextNode("@-ms-viewport{width:auto!important}")); document.getElementsByTagName("head")[0].appendChild(msViewportStyle); } </script> <link href="/css/bootstrap.min.css" rel="stylesheet" /> <link href="https://content.powerapps.com/resource/powerappsportal/dist/font-awesome.bundle-3d8a58a48f.css" onerror="javascript: var target = event.target; var link = document.createElement('link'); link.crossOrigin = target.crossOrigin; link.href = '/dist/font-awesome.bundle-3d8a58a48f.css'; link.rel = 'stylesheet'; target.insertAdjacentElement('afterend',link);" rel="stylesheet" /> <link href="https://content.powerapps.com/resource/powerappsportal/dist/preform.bundle-6ce0674302.css" onerror="javascript: var target = event.target; var link = document.createElement('link'); link.crossOrigin = target.crossOrigin; link.href = '/dist/preform.bundle-6ce0674302.css'; link.rel = 'stylesheet'; target.insertAdjacentElement('afterend',link);" rel="stylesheet" /> <link href="/PromotionDrawer.css?1714053049000" rel="stylesheet" /> <link href="/global.css?1693528847000" rel="stylesheet" /> <link href="/header.css?1702516967000" rel="stylesheet" /> <link href="/styles.css?1726142928000" rel="stylesheet" /> <link href="/globalModal.css?1701311963000" rel="stylesheet" /> <link href="/footer.css?1706795173000" rel="stylesheet" /> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-WHSKGB');</script> <!-- End Google Tag Manager --> <!-- clarity --> <script type="text/javascript"> (function(c,l,a,r,i,t,y){ c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); })(window, document, "clarity", "script", "lgl3vgttfc"); </script> <!-- end clarity --> <link href="https://content.powerapps.com/resource/powerappsportal/dist/pwa-style.bundle-2739c60227.css" onerror="javascript: var target = event.target; var link = document.createElement('link'); link.crossOrigin = target.crossOrigin; link.href = '/dist/pwa-style.bundle-2739c60227.css'; link.rel = 'stylesheet'; target.insertAdjacentElement('afterend',link);" rel="stylesheet" /> </head> <body data-sitemap-state="/" data-dateformat="yyyy-MM-dd" data-timeformat="h:mm tt" data-datetimeformat="yyyy-MM-dd h:mm tt" data-app-path="/" data-ckeditor-basepath="/js/BaseHtmlContentDesigner/Libs/msdyncrm_/libs/ckeditor/" data-case-deflection-url="/_services/search/6d6b3012-e709-4c45-a00d-df4b3befc518"> <link href="https://content.powerapps.com/resource/powerappsportal/dist/pcf-style.bundle-2659c6f064.css" onerror="javascript: var target = event.target; var link = document.createElement('link'); link.crossOrigin = target.crossOrigin; link.href = '/dist/pcf-style.bundle-2659c6f064.css'; link.rel = 'stylesheet'; target.insertAdjacentElement('afterend',link);" rel="stylesheet" /> <div id="offlineNotificationBar" style="display: none;"> <img alt="web" id="web" onerror="javascript: var target = event.target; var img = document.createElement('img'); img.src = '/css/images/web.png'; img.alt = 'web'; img.id = 'web' ; target.insertAdjacentElement('afterend',img); target.remove();" src="https://content.powerapps.com/resource/powerappsportal/img/web.png" /> <div id="message">You’re offline. This is a read only version of the page.</div> <div id="close" onclick="this.parentElement.style.display='none';"><img alt="close" onerror="javascript: var target = event.target; var img = document.createElement('img'); img.src = '/css/images/close.png'; img.alt = 'close'; img.id = '' ; target.insertAdjacentElement('afterend',img); target.remove();" src="https://content.powerapps.com/resource/powerappsportal/img/close.png" /></div> </div> <script type="text/javascript"> window.DisableCkEditor = window.DisableCkEditor || {}; DisableCkEditor.Value = 'False'; </script> <script type="text/javascript"> var enableOmniChannelWidgetWithSiteCopilot = 'False'; if (enableOmniChannelWidgetWithSiteCopilot === "True" || enableOmniChannelWidgetWithSiteCopilot === "true") { const authUrl = window.location.origin + "/_services/auth/portalusertoken"; const fetchWithRetries = async (url, options, retries) => { try { const authResponse = await fetch(url, options); const token = await authResponse.text(); sessionStorage['c2Token'] = token; } catch (err) { if (retries === 1) throw err; return await fetchWithRetries(url, options, retries - 1); } }; fetchWithRetries(authUrl, { method: "POST" }, 4); } </script> <script type="text/javascript"> var isPvaBotAuthenticated = sessionStorage['isPvaBotAuthenticated']; var isPortalUserLoggedIn = 'False'; if ((isPvaBotAuthenticated != null || isPvaBotAuthenticated != undefined) && isPvaBotAuthenticated != isPortalUserLoggedIn) { sessionStorage['triggerPvaBotSignOut'] = true; sessionStorage.removeItem('c2Token'); sessionStorage.removeItem('directLinetoken'); sessionStorage.removeItem('conversation_Id'); } sessionStorage['isPvaBotAuthenticated'] = isPortalUserLoggedIn; </script> <script type="text/javascript"> window["Microsoft"] = window["Microsoft"] || {}; window["Microsoft"].Dynamic365 = { Portal: { User: { userName: '', contactId: '' }, version: '9.6.9.39', type: 'CDSStarterPortal', id: 'a230cca8-ec01-437b-8e60-f21a8b30a3d5', geo: 'CAN', tenant: '222c4d15-07fc-46a6-8e2c-944649216ecd', correlationId: 'ed80346b-208a-46a7-8249-708c27570f91', orgEnvironmentId: '11685a31-22ab-4ac2-b021-ac40d1dae3e7', portalProductionOrTrialType: 'Production', isTelemetryEnabled: 'True', InstrumentationSettings: { instrumentationKey: '197418c5cb8c4426b201f9db2e87b914-87887378-2790-49b0-9295-51f43b6204b1-7172', collectorEndpoint: 'https://us-mobile.events.data.microsoft.com/OneCollector/1.0/' }, timerProfileForBatching: 'NEAR_REAL_TIME' } } // Mark request not cacheable if Dynamics365PortalAnalytics cookie is being refreshed by the server or if the cookie in request header is invalid // For client side telemetry intializing Dynamics365PortalAnalytics cookie object window["Microsoft"].Dynamic365.Portal.dynamics365PortalAnalytics = 'u7fRm_wkploMldzgmYT39fW_X6DeP2UTkUjBQGPKZpJlXkp27M8wPAvHWNCPa3PC8ZxNwudnDd-I87XHZKE-yXoY6mTtSiiD3sYQiLHzbxy-T5HIhpKMY2w8X-CLIQAGfzv5vpYDlfDxG0_1bBjfdQ2'; // CodeQL [SM00430] False Positive: only alphanumeric chars allowed, for non-alphanumeric char it will return INVALID_CHARACTERS_IN_COOKIE </script> <script type="text/javascript"> </script> <script src="/Jquery360.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script> <!--Donot move this script after WrapperSafeAjax --> <script> (function(webapi, $){ function safeAjax(ajaxOptions) { var deferredAjax = $.Deferred(); shell.getTokenDeferred().done(function (token) { // add headers for AJAX if (!ajaxOptions.headers) { $.extend(ajaxOptions, { headers: { "__RequestVerificationToken": token } }); } else { ajaxOptions.headers["__RequestVerificationToken"] = token; } $.ajax(ajaxOptions) .done(function(data, textStatus, jqXHR) { validateLoginSession(data, textStatus, jqXHR, deferredAjax.resolve); }).fail(deferredAjax.reject); //AJAX }).fail(function () { deferredAjax.rejectWith(this, arguments); // on token failure pass the token AJAX and args }); return deferredAjax.promise(); } webapi.safeAjax = safeAjax; })(window.webapi = window.webapi || {}, jQuery) </script> <div class="top-bar"> <nav> <div class="left-menu"> <div class="menu-item" style="border-left: 1px solid rgba(255, 255, 255, 0.5);"><a class="top-bar-link" href="https://www.redcross.ca">Redcross.ca</a></div> <div class="menu-item" style="background-color:#5E5E5E;"><a class="top-bar-link" href="https://myrc.redcross.ca">Training</a></div> <div class="menu-item"><a class="top-bar-link" href="https://www.redcross.ca/blog/category/first-aid">Blog</a></div> <div class="menu-item"><a class="top-bar-link" href="https://shop.redcross.ca/?_ga=2.23052155.1778236451.1700581524-611906114.1673620277">Shop</a></div> <div class="menu-item"><a class="top-bar-link" href="https://helpsupport.redcross.ca/hc/en-ca">Help & Support</a></div> </div> <div class="dropdown"> <span class="menu-item" style="border-right: none;font-weight:bold"><a class="top-bar-link" href="https://crcsb2c.b2clogin.com/crcsb2c.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1A_MYRC_SIGNUP_SIGNIN&client_id=e0ef264d-2d7a-4182-8e8b-dea60e9a408a&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fmyrc.redcross.ca%2FSignin&scope=openid&response_type=id_token&prompt=login">Sign In</a></span> </div> </nav> </div> <div class="container header-wrapper"> <header class="global-header global-header2"> <section class="logo-details-section"> <a class="logo" href="/" aria-label="My Red Cross homepage"> <img src="/crc_logo_en.svg" alt="Canadian Red Cross Logo" /> </a> <nav class="header-navigation"> <a class="header-link" href="/About-us/" title="ABOUT US">ABOUT US</a> <a class="header-link" href="/ValidateCertificate/" title="Validate Certificate">Validate Certificate</a> <a class="header-link" href="/contact-us/">Contact Us</a> <!--<a class="header-link" href="https://shop.redcross.ca/" target="_blank" title="Shop">Shop</a>--> <!--<a class="header-link" href="https://crcsb2c.b2clogin.com/crcsb2c.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1A_MYRC_DEV_SIGNUP_SIGNIN&client_id=4544ccd0-e9e5-44b0-bf82-2c61e4f558bf&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fmyrcdevone.powerappsportals.com&scope=openid&response_type=id_token&prompt=login">Sign In</a>--> <!--<a class="header-link" href="/Signin">Sign In</a>--> <!--<a class="header-link" style="border-right:0px;text-transform:capitalize;padding-right:0px" href="~/fr/">FRANÇAIS</a>--> <button type="reset" onclick="translateToFrench()" class="header-link" style="background: none; border: none; padding: 0; cursor: pointer; font-weight: normal;">Français</button> </nav> </section> </header> </div> <!-- DO NOT REMOVE anything below - GLOBAL CONSENT --> <!-- GLOBAL LOADER --> <div class="loader"> <div class="loading"> </div> </div> <div class="mobile-header-wrapper"> <header class="mobile-header-section"> <section class="logo-details-section head-wrapper"> <section class="logo-section"> <a class="logo" href="/" aria-label="My Red Cross homepage"> <img src="/crc_logo_en.svg" alt="Canadian Red Cross Logo" /> </a> </section> <section class="lang-section"> </section> <section class="icon-section" > <div style="display:inline-block;"> <!--<a class="header-link contact" style="text-transform:capitalize;float:right;padding-right:11px;" href="~/fr/">Français</a>--> <button type="reset" onclick="translateToFrench()" class="header-link"style="margin-bottom:6px;background: none; border: none; padding: 0; cursor: pointer; font-weight: normal;padding-right:3px;">Français</button> </div> <div style="border-left: thin solid black; height:30px;display:inline-block;padding-right:5px"></div> <div style="display:inline-block;"> <svg xmlns="http://www.w3.org/2000/svg" style="margin-right:11px;margin-bottom:5px;" onclick="mobileMenuOpenClose()" width="30" height="20" viewBox="0 0 30 20"> <rect width="30" height="2" rx="1" fill="#000"/> <rect y="9" width="30" height="2" rx="1" fill="#000"/> <rect y="18" width="30" height="2" rx="1" fill="#000"/> </svg> </div> </section> </section> <section class="mobile-menu-items"> <button class="close-mobile-menu" onclick="mobileMenuOpenClose()" aria-label="close button" autofocus>X</button> <nav class="mobile-header-navigation"> <a class="header-link signin" href="https://crcsb2c.b2clogin.com/crcsb2c.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1A_MYRC_SIGNUP_SIGNIN&client_id=e0ef264d-2d7a-4182-8e8b-dea60e9a408a&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fmyrc.redcross.ca%2FSignin&scope=openid&response_type=id_token&prompt=login">Sign In</a> <a class="header-link" href="/ValidateCertificate/" title="Validate Certificate">Validate Certificate</a> <a class="header-link contact" href="/contact-us/">Contact Us</a> <a class="header-link" href="https://shop.redcross.ca/" target="_blank" title="Shop">Shop</a> <nav aria-label="Main Navigation" class="navbar-right menu-bar " data-weblinks-maxdepth="2"> <ul class="nav navbar-nav weblinks"> <li onFocus="document.querySelector('.close-mobile-menu').focus()" class="sr-only" tabindex="0"></li> </ul> </nav> </nav> </section> </header> </div> <!-- <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>--> <script> function mobileMenuOpenClose(){ $(".mobile-menu-items").toggleClass("open"); } // var DEBUG = false; // if(!DEBUG){ // if(!window.console) window.console = {}; // var methods = ["log", "debug", "warn", "info", "dir", "dirxml", "trace", "profile"]; // for(var i=0;i<methods.length;i++){ // console[methods[i]] = function(){}; // } // } // window.alert = function() { }; // GLOBAL FUNCTIONS function createConsent() { $('.loader').show(); var contactid = ""; var fname = ""; var conDate = new Date(); var lsidnumber = $("#lsId").val(); // let yesNo = $("#yesNo").val(); let consentYes = document.getElementById('yes').checked; let consentNo = document.getElementById('no').checked; console.log('consentYes - ',consentYes,'consentNo - ',consentNo); console.log('result', consentYes ? 171120000 : consentNo ? 171120001 : undefined); let value = { "crc_name": fname, "crc_ContactId@odata.bind": "/contacts(" + contactid + ")", "crc_consenttosharedetails": consentYes ? 171120000 : consentNo ? 171120001 : undefined, "crc_dateofconsent": conDate, "crc_lsidnumber": lsidnumber }; webapi.safeAjax({ type: "POST", url: "/_api/crc_consents", contentType: "application/json", data: JSON.stringify(value), success: function (res, status, xhr) { $('.loader').hide(); location.reload(); }, error: function (error, status, xhr) { $('.loader').hide(); const properties = { bodyContent: "Something went wrong. Please try again later.", headerSection: false, } showGlobalModal(properties) } }); } function translateToEnglish() { var currentLocation = location.href; var x = currentLocation.replace("/fr", "/en"); window.location.href = x; } function translateToFrench() { let currentLocation = location.href; let x = currentLocation.replace("/en", "/fr"); window.location.href = x; } function getCurrentLanguageCode() { let path = location.pathname; if(path.includes("/en")) return 1033 else return 1036 } function getCurrentLanguage(){ let currentURL = window.location.pathname; if(currentURL.includes("/en")) return "en" else return "fr" } function getParentCustomerId(){ var parentCustomerId = ""; return parentCustomerId; } function getLoggedinuserId(){ var loggedinuserid = ""; return loggedinuserid; } function addDays(date, days) { var result = new Date(date); result.setDate(result.getDate() + days); return result; } function dataTablesSettings(oSettings, tableID) { $("#" + tableID + "_previous").text("<<"); $("#" + tableID + "_next").text(">>"); if (oSettings._iDisplayLength > oSettings.fnRecordsDisplay()) { $(oSettings.nTableWrapper).find('.dataTables_paginate').hide(); } else { $(oSettings.nTableWrapper).find('.dataTables_paginate').show(); } } function getTableTranslations() { let object; let currentLang = getCurrentLanguage(); if(currentLang == "en"){ object = {} } if(currentLang == "fr"){ object = { "sProcessing": "Traitement en cours...", "sSearch": "Rechercher :", "sLengthMenu": "Afficher _MENU_ éléments", "sInfo": "Affichage de l'élément _START_ à _END_ sur _TOTAL_ éléments", "sInfoEmpty": "Affichage de l'élément 0 à 0 sur 0 élément", "sInfoFiltered": "(filtré de _MAX_ éléments au total)", "sInfoPostFix": "", "sLoadingRecords": "Chargement en cours...", "sZeroRecords": "Aucun élément à afficher", "sEmptyTable": "Aucune donnée disponible dans le tableau", "oPaginate": { "sFirst": "Premier", "sPrevious": "Précédent", "sNext": "Suivant", "sLast": "Dernier" }, "oAria": { "sSortAscending": ": activer pour trier la colonne par ordre croissant", "sSortDescending": ": activer pour trier la colonne par ordre décroissant" }, "select": { "rows": { "_": "%d lignes sélectionnées", "0": "Aucune ligne sélectionnée", "1": "1 ligne sélectionnée" } } } } return object } function convertCurrency(currency, langCode) { return new Intl.NumberFormat(langCode, {style: "currency", currency: "CAD"}).format(currency); } function extractHTMLContentText(s) { var span = document.createElement('span'); span.innerHTML = s; return span.firstChild.text; }; </script> <!-- DO NOT REMOVE.... The below block is for the global MODAL to show all the Succes, Error and any other messages. --> <div class="global-modal-backdrop" id="globalModalBackdrop" hidden> <div class="global-modal-wrapper"> <div class="global-modal-header" id="globalModalHeaderSection"> <h2 class="header-two global-modal-header-title" id="globalModalHeaderTitle"></h2> <a class="crc__link--default global-modal-close-btn" id="globalModalHeaderCloseBtn">x</a> </div> <div class="global-modal-body"> <p class="blurb global-modal-body-content" id="globalModalBodyContent">Set something here </p> </div> <div class="global-modal-footer" id="globalFooterSection"> <button class="crc__global-button crc__global-button--primary global-modal-footer-btn" id="globalModalOkBtn">Ok</button> </div> </div> </div> <script> var globalModalBackdrop = $("#globalModalBackdrop"); var globalModalHeaderSection = $("#globalModalHeaderSection"); var globalModalHeaderTitle = $("#globalModalHeaderTitle"); var globalModalHeaderCloseBtn = $("#globalModalHeaderCloseBtn"); var globalModalBodyContent = $("#globalModalBodyContent"); var globalModalOkBtn = $("#globalModalOkBtn"); var globalFooterSection = $("#globalFooterSection"); function showGlobalModal(props) { // Modal Backdrop Event if (props?.modalBackdropEvent && props?.modalBackdropEvent !== true) { globalModalBackdrop.on("click", function () { props.modalBackdropEvent(); }) } else if (props?.modalBackdropEvent && props?.modalBackdropEvent === true) { globalModalBackdrop.on("click", modalCloseEvent); } else { globalModalBackdrop.on("click", () => { }); } // Modal Close Button Event if (props?.closeBtnEvent && props?.closeBtnEvent !== true) { globalModalHeaderCloseBtn.off("click"); globalModalHeaderCloseBtn.on("click", function () { props.closeBtnEvent(); }) } else { globalModalHeaderCloseBtn.attr("onclick", "modalCloseEvent()"); } // Modal OK Button Event if (props?.okBtnEvent && props?.okBtnEvent !== true) { globalModalOkBtn.off("click"); globalModalOkBtn.on("click", function () { props.okBtnEvent(); }) } else { globalModalOkBtn.attr("onclick", "modalCloseEvent()"); } // Modal Header and Title if (props?.headerSection === false) { globalModalHeaderSection.hide(); } if (props?.headerTitleText) { globalModalHeaderTitle.text(props.headerTitleText); } // Modal Footer Section if (props?.footerSection === false) { globalFooterSection.hide(); } // Modal Body Content if (props?.bodyContent) { globalModalBodyContent.text(props.bodyContent); } // Modal Body Content if (props?.okBtnText) { globalModalOkBtn.text(props.okBtnText); } globalModalBackdrop.show(); } function modalCloseEvent() { globalModalBackdrop.hide(); } </script> <!-- Google Tag Manager (noscript) --> <noscript><iframe src=https://www.googletagmanager.com/ns.html?id=GTM-WHSKGB height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <!-- add anti-forgery token--> <div id="antiforgerytoken" data-url="/_layout/tokenhtml"></div> <!-- Client Telemetry init if telemetry enabled--> <script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/client-telemetry.bundle-ecbf4ab0d0.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/client-telemetry.bundle-ecbf4ab0d0.js" type="text/javascript"></script> <!-- Client Telemetry Wrapper init --> <script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/client-telemetry-wrapper.bundle-633e70f51b.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/client-telemetry-wrapper.bundle-633e70f51b.js" type="text/javascript"></script> <script> window.clientLogWrapper = new ClientLogWrapper(); </script> <script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/preform.moment_2_29_4.bundle-4fdd3f639b.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/preform.moment_2_29_4.bundle-4fdd3f639b.js" type="text/javascript"></script> <script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/pcf-dependency.bundle-805a1661b7.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/pcf-dependency.bundle-805a1661b7.js" type="text/javascript"></script> <script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/pcf.bundle-9183da3d63.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/pcf.bundle-9183da3d63.js" type="text/javascript"></script> <script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/pcf-extended.bundle-e303d53553.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/pcf-extended.bundle-e303d53553.js" type="text/javascript"></script> <div class="container" role ="main" aria-label="Home"> <div class="page-heading"> <ul class="breadcrumb"> <li class="active">Home</li> </ul> <div class="page-header"> <h1>Home</h1> </div> </div> <div class="row"> <div class="col-md-12" id="mainContent"> <div class="xrm-editable-html xrm-attribute page-copy"><div class="xrm-attribute-value"><div class="row sectionBlockLayout text-left" style="box-sizing: border-box; display: flex; flex-wrap: wrap; margin: 0px; min-height: auto; padding: 8px;"> <div class="container" style="box-sizing: border-box; padding: 0px; display: flex; flex-wrap: wrap;"><div class="col-md-12 columnBlockLayout" style="box-sizing: border-box; flex-grow: 1; display: flex; flex-direction: column; min-width: 250px; word-break: break-word;"></div></div> </div> </div></div> </div> </div> </div> <div> <div class="ad-copy"><div class="notice" id="divNotice"> <style> /* Centered text class */ .maintenance { text-align: center; } /* Style the hyperlink (anchor) within the maintenance class */ .maintenance a { color: red; /* Set the text color to red */ text-decoration: none; /* Remove underlines from links */ } .maintenance a:hover { color: yellow; /* Set link color to yellow on hover */ text-decoration: underline; /* Add underline on hover */ } </style> <div class="maintenance"> <p> <b> November is CPR Month! Learn life-saving skills and be ready to respond. Sign up for a CPR course today! </p> </div> </div></div> </div> <div class="banner-section"> <img src="/home.png" alt="Banner image" style="width:100%;"> </div> <div class="container find-a-course-wrapper"> <div> <div class="Find-a-course"> <div class="title-section"> <h2>Find a Course</h2><br> A course catalog to find a course near you </div> </div> </div> <p class="blurb formDescription"></p> <div id="dialog" title="Attention" style="display:none">No active Training Partner selected. Please wait while we redirect you to select another partner.</div> <form class="find-a-course-search-wrapper" id="findACourseForm"> <section class="program-category"> <div class="progress-step-bar"> <div class="triangle-right"></div> </div> <div class="form-group select-program-cateogry"> <label for="dropdown" class="input-label">Select a Program</label> <select class="form-control form-select" name="selectAProgram" id="selectProgram"> <option value="-1">Select a course category..</option> <option value="103e2c6f-0fc2-e911-a811-000d3af46674">Babysitter and Children safety</option> <option value="123e2c6f-0fc2-e911-a811-000d3af46674">First Aid & CPR</option> <option value="07dcc292-10c2-e911-a811-000d3af46489">Instructor courses</option> <option value="1c3e2c6f-0fc2-e911-a811-000d3af46674">Occupational Health and Safety</option> <option value="163e2c6f-0fc2-e911-a811-000d3af46674">Psychological First Aid</option> </select> <select class="form-control form-select" name="selectACateogry" id="selectCateogry"> <option value="-1">Course Types..</option> <option value="f922b75e-10c2-e911-a812-000d3af462ef" name="103e2c6f-0fc2-e911-a811-000d3af46674" hidden>Babysitter</option> <option value="3240c726-68a4-e711-8125-480fcfea5041" name="0f4c6a0d-66a4-e711-8125-480fcff44551" hidden>Be Safe! Facilitator</option> <option value="3440c726-68a4-e711-8125-480fcfea5041" name="1a3e2c6f-0fc2-e911-a811-000d3af46674" hidden>Beyond The Hurt</option> <option value="e0f00320-8b38-ef11-a316-000d3a0a4be3" name="123e2c6f-0fc2-e911-a811-000d3af46674" hidden>Biker Down Motorcyclist First Aid</option> <option value="cb1d0012-7e09-ef11-9f89-6045bdcd1f0f" name="07dcc292-10c2-e911-a811-000d3af46489" hidden>Biker Down Motorcyclist First Aid Instructor</option> <option value="fd22b75e-10c2-e911-a812-000d3af462ef" name="123e2c6f-0fc2-e911-a811-000d3af46674" hidden>CPR/AED for Home and Work</option> <option value="2021f9b8-10c2-e911-a812-000d3af462ef" name="07dcc292-10c2-e911-a811-000d3af46489" hidden>First Aid & CPR Instructors</option> <option value="0123b75e-10c2-e911-a812-000d3af462ef" name="123e2c6f-0fc2-e911-a811-000d3af46674" hidden>First Aid for Childcare Workers</option> <option value="0323b75e-10c2-e911-a812-000d3af462ef" name="123e2c6f-0fc2-e911-a811-000d3af46674" hidden>First Aid for Home and Work</option> <option value="2221f9b8-10c2-e911-a812-000d3af462ef" name="07dcc292-10c2-e911-a811-000d3af46489" hidden>First Aid Programs Instructor Trainers</option> <option value="0723b75e-10c2-e911-a812-000d3af462ef" name="123e2c6f-0fc2-e911-a811-000d3af46674" hidden>First Aid/CPR BLS level for Healthcare (HCP)</option> <option value="0923b75e-10c2-e911-a812-000d3af462ef" name="123e2c6f-0fc2-e911-a811-000d3af46674" hidden>First Responder/Emergency Medical Responder</option> <option value="0b23b75e-10c2-e911-a812-000d3af462ef" name="1c3e2c6f-0fc2-e911-a811-000d3af46674" hidden>Health & Safety</option> <option value="0f23b75e-10c2-e911-a812-000d3af462ef" name="183e2c6f-0fc2-e911-a811-000d3af46674" hidden>Lifeguarding</option> <option value="1123b75e-10c2-e911-a812-000d3af462ef" name="183e2c6f-0fc2-e911-a811-000d3af46674" hidden>Lifeguarding Recertifications</option> <option value="1323b75e-10c2-e911-a812-000d3af462ef" name="123e2c6f-0fc2-e911-a811-000d3af46674" hidden>Marine First Aid</option> <option value="3a40c726-68a4-e711-8125-480fcfea5041" name="1a3e2c6f-0fc2-e911-a811-000d3af46674" hidden>Preventing Violence Against Children</option> <option value="2621f9b8-10c2-e911-a812-000d3af462ef" name="07dcc292-10c2-e911-a811-000d3af46489" hidden>Professional Responder Instructors</option> <option value="1723b75e-10c2-e911-a812-000d3af462ef" name="163e2c6f-0fc2-e911-a811-000d3af46674" hidden>Psychological First Aid</option> <option value="2821f9b8-10c2-e911-a812-000d3af462ef" name="07dcc292-10c2-e911-a811-000d3af46489" hidden>Psychological First Aid Instructor</option> <option value="38c551d2-9e17-ea11-a811-000d3af46cc5" name="123e2c6f-0fc2-e911-a811-000d3af46674" hidden>Public Education (Non-Certification)</option> <option value="1b23b75e-10c2-e911-a812-000d3af462ef" name="103e2c6f-0fc2-e911-a811-000d3af46674" hidden>Stay Safe!</option> <option value="1d23b75e-10c2-e911-a812-000d3af462ef" name="143e2c6f-0fc2-e911-a811-000d3af46674" hidden>Swimming and Water Safety Lessons</option> <option value="2323b75e-10c2-e911-a812-000d3af462ef" name="123e2c6f-0fc2-e911-a811-000d3af46674" hidden>Wilderness & Remote First Aid</option> <option value="2e21f9b8-10c2-e911-a812-000d3af462ef" name="07dcc292-10c2-e911-a811-000d3af46489" hidden>Wilderness First Aid Instructors</option> <option value="69a1943c-8a8c-ef11-8a6a-7c1e520621ea" name="07dcc292-10c2-e911-a811-000d3af46489" hidden>Youth Leader</option> </select> </div> </section> <section class="date-range-category"> <div class="progress-step-bar disable-fields"> <div class="triangle-right"></div> </div> <div class="form-group date-range-cateogry"> <label for="dateRange" class="input-label">Select your date range</label> <input type="date" class="form-control" id="startdateRange" name="dateStart" disabled> <input type="date" class="form-control" id="endDateRange" name="dateEnd" disabled> </div> </section> <section class="address-category" style="grid-row-gap:0.5rem;"> <div class="progress-step-bar disable-fields"> <div class="triangle-right"></div> </div> <div class="form-group address-cateogry"> <label for="addressRange" class="input-label" style="margin-bottom:0px;"> Enter your postal code, address or city <p style="letter-spacing:0.2px;font-size:12px;margin:0px;">(Use your postal code for the best results)</p> <!--<div class="help-tip"> <p>Use your postal code for the best results</p> </div>--> </label> <input placeholder="" class="form-control" type='text' id='searchBox' disabled/> <select class="form-control" name="distance" id="distance" disabled> <option value="5" selected>5 km</option> <option value="10">10 km</option> <option value="25" >25 km</option> <option value="50">50 km</option> <option value="100">100 km</option> <option value="250">250 km</option> <option value="6000">All Canada</option> </select> </div> </section> <section class="languages-category"> <select class="form-control form-select" name="selectLanguages" id="selectALanguage"> <option value="-1">All Languages</option> <option value="171120000">English</option> <option value="171120001">French</option> </select> </section> <section class="delivery-category"> <select class="form-control form-select" name="deliverMethod" id="selectADeliverMethod" class="form-control"> <option value="-1">All Delivery Methods</option> <option value="1">In person - Instructor Led</option> <option value="2">Virtual - Instructor Led</option> <option value="3">Self Directed - Online</option> </select> </section> <button type="submit" class="crc__global-button crc__global-button--primary find-a-course-search-button" disabled>Search</button> </form> <p class="search-alert hide"> Showing results for <strong class="kmRange"></strong> around <a href="#" class="selected-location"></a> . Looking for services in a different location? Enter a postal code, address, or city and province in the location field above. </p> <section class="search-results-section" hidden> <div class="result-section"> <h2 class="header-two">Results</h2> <p class="blurb">Clicking on the course name will open a new page with additional information about the course. If you click on "Go to Register", you will be redirected to the Training Partner's website..</p> </div> <select class="form-control form-select" name="selectOrder" id="selectOrder" onchange="changeTableOrder()"> <option value="true">Sort By Date</option> <option value="false">Closest Location</option> </select> <table id="findACourseSearchTable" class="display find-a-course-search-table"> <thead> <tr> <th class="set-max-width">Date and Time</th> <th>Course Name</th> <th class="set-max-width">Provided By</th> <th class="set-min-width">Language</th> <th class="set-min-width">Format</th> <th class="set-min-width">Virtual</th> <th class="set-min-width">Price</th> <th class="minimum-width no-sort"></th> <th hidden>Distance</th> </tr> </thead> <tbody id="courseDataTbody"> </tbody> </table> </section> <section class="search-results-message" hidden> <h3>No courses were found matching your search criteria. Please try broadening the search radius or date range and search again.</h3> </section> </div> <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.css" /> <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick-theme.min.css" /> <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css"> <script src="/JqueryUI.js" integrity="sha256-T0Vest3yCU7pafRw9r+settMBX6JkKN06dqBnpQ8d30=" crossorigin="anonymous"></script> <link href="https://atlas.microsoft.com/sdk/javascript/mapcontrol/2/atlas.min.css" rel="stylesheet" /> <script src="/Mapcontrolatlas.js" integrity="sha256-AIPTQQrOLhd6AwIkYCG+Y7F4GY/eoe1ep91+eGcp2DA=" crossorigin="anonymous"></script> <link rel="stylesheet" href="https://cdn.datatables.net/1.11.3/css/jquery.dataTables.min.css" /> <script src="/JqueryDatatables.js" integrity="sha256-gOJ/T3VMQ0Brwz7VYrLoVAQ+NE0a5vHoj1vXI1HUIzY=" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-U1DAWAznBHeqEIlVSCgzq+c9gqGAJn5c/t99JyeKa9xxaYpSvHU5awsuZVVFIhvj" crossorigin="anonymous"></script> <script type="text/javascript" src="//cdn.datatables.net/plug-ins/1.10.16/sorting/datetime-moment.js"></script> <style> .page-heading{ display: none; } .nav-list-container { border-bottom: none; } .formDescription { margin: 16px 0; } .ui-state-active { border:1px solid #007bff !important; background: none !important; background-color:#007bff !important; color: white !important; } .ui-menu .ui-menu-item { font-size: 13px; } .help-tip { position: relative; right: -5px; text-align: center; background-color: #808080; border-radius: 50%; width: 20px; height: 20px; font-size: 14px; line-height: 20px; cursor: default; float: right; } .help-tip::before { content: '?'; font-weight: bold; color: #fff; } .help-tip p { display: none; text-align: left; background-color: #1E2021; padding: 10px; width: 300px; position: absolute; border-radius: 3px; -webkit-box-shadow: 1px 1px 1px #00000033; box-shadow: 1px 1px 1px #00000033; right: -4px; color: #FFF; font-size: 13px; line-height: 1.4; } .help-tip p::before { position: absolute; content: ''; width: 0; height: 0; border: 6px solid transparent; border-bottom-color: #1E2021; right: 10px; top: -12px; } .help-tip p::after { width: 100%; height: 40px; content: ''; position: absolute; top: -40px; left: 0; } .help-tip:hover p { display: block; -webkit-transform-origin: 100% 0%; transform-origin: 100% 0%; -webkit-animation: fadeIn 0.3s ease-in-out; animation: fadeIn 0.3s ease-in-out; } .ui-widget-header{ background: none; border: none; } .ui-dialog .ui-dialog-title { font-size: 13px; } .ui-widget.ui-widget-content { width: auto !important; max-width: 450px !important; transform: translate(-50%, -50%); position: fixed !important; left: 70% !important; top: 60% !important; } .ui-dialog .ui-dialog-content { font-size: 13px; min-height: 70px !important; } .ui-dialog .ui-dialog-titlebar-close { font-weight: 500; font-size: 15px; background-color: inherit; } /*-----PROMOTION DRAWER --------*/ //css code removed and put into the PromotionDrawer.css file /*-----end PROMOTION DRAWER --------*/ </style> <script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js"></script> <script src="/PromotionDrawerScript.js"></script> <script> /*PROMOTION DRAWER*/ //js code removed and put into the PromotionDrawerScripts file /*END PROMOTION DRAWER*/ console.log(''); (function(webapi, $){ function safeAjax(ajaxOptions) { var deferredAjax = $.Deferred(); shell.getTokenDeferred().done(function (token) { // add headers for AJAX if (!ajaxOptions.headers) { $.extend(ajaxOptions, { headers: { "__RequestVerificationToken": token } }); } else { ajaxOptions.headers["__RequestVerificationToken"] = token; } $.ajax(ajaxOptions) .done(function(data, textStatus, jqXHR) { validateLoginSession(data, textStatus, jqXHR, deferredAjax.resolve); }).fail(deferredAjax.reject); //AJAX }).fail(function () { deferredAjax.rejectWith(this, arguments); // on token failure pass the token AJAX and args }); return deferredAjax.promise(); } webapi.safeAjax = safeAjax; })(window.webapi = window.webapi || {}, jQuery) const language = document.body.parentNode.dataset.lang; let currentPosition = {lat: null, lon: null}; let pointN = null; let pointE = null; let pointS = null; let pointW = null; var addresssGeocodeServiceUrlTemplate = 'https://atlas.microsoft.com/search/address/json?typeahead=true&api-version=1&query={query}&language={language}&countrySet={countrySet}&view=Auto&subscription-key={azureKey}'; async function PageLoaded() { let userSelected = false; // Flag to track if user has made a selection let autoPopulateAllowed = true; // Flag to control automatic population of the first item $("#searchBox").autocomplete({ minLength: 6, source: async function (request, response) { var requestUrl = addresssGeocodeServiceUrlTemplate.replace('{query}', encodeURIComponent(request.term)) .replace('{language}', `${language}-CA`) .replace('{azureKey}', "hGFUZDWnvElMQzHNHf_vUAalrnuWUWfhJ2IMztzP9tI") .replace('{countrySet}', 'CA'); fetch(requestUrl, { method: 'GET', mode: 'cors', headers: { 'Content-Type': 'application/json; charset=utf-8' } }).then(r => r.json()).then(data => { response($.map(data.results, function(item) { $('.find-a-course-search-button').prop('disabled', false); return { label: item.address.freeformAddress, value: item.address.freeformAddress, position: item.position }; })); }); }, autoFocus: true, search: function() { autoPopulateAllowed = true; // Allow auto-population when typing starts }, focus: function (event, ui) { var selection = ui.item; currentPosition = selection.position; mathDestination(); checkSubmit(); }, select: function (event, ui) { // Set the selected item’s address as the search box value $("#searchBox").val(ui.item.value); currentPosition = ui.item.position; userSelected = true; // Mark as user-selected autoPopulateAllowed = false; // Disable auto-population after manual selection return false; }, close: function() { // Only set the first item if no user selection was made and auto-population is allowed if (!userSelected && autoPopulateAllowed) { var firstItem = $("#searchBox").autocomplete("widget").children("li:first").data("ui-autocomplete-item"); if (firstItem) { $("#searchBox").val(firstItem.label); // Set the first result if available currentPosition = firstItem.position; mathDestination(); checkSubmit(); } } userSelected = false; // Reset the flag after close } }); // Reset the input to allow the user to manually clear without triggering auto-populate $("#searchBox").on("input", function() { if ($(this).val() === '') { autoPopulateAllowed = false; // Disable auto-population when cleared } }); } $(document).ready(function() { checkActiveTP(); PageLoaded(); }); $("#distance").on("change", function () { mathDestination(); checkAllCanadaField(); checkSubmit(); }); function changeTableOrder(){ let isDateOrder = $("#selectOrder").val(); //$.fn.dataTable.moment( 'HH:mm MMM D, YY' ); $.fn.dataTable.moment( 'MMMM, d YYYY' ); table = $('#findACourseSearchTable').DataTable(); if(isDateOrder=="true"){ table.order([0, 'asc']).draw(); } else { table.order([8, 'asc']).draw(); } } function mathDestination(){ if(currentPosition.lat != null){ pointN = llFromDistance(currentPosition.lat,currentPosition.lon, $("#distance").val(), 0); pointE = llFromDistance(currentPosition.lat,currentPosition.lon, $("#distance").val(), 90); pointS = llFromDistance(currentPosition.lat,currentPosition.lon, $("#distance").val(), 180); pointW = llFromDistance(currentPosition.lat,currentPosition.lon, $("#distance").val(), 270); checkSubmit(); } } function llFromDistance (latitude, longitude, distance, bearing) { const R = 6378.1; const brng = bearing * Math.PI / 180; let lat = latitude * Math.PI / 180; let lon = longitude * Math.PI / 180; lat = Math.asin(Math.sin(lat) * Math.cos(distance / R) + Math.cos(lat) * Math.sin(distance / R) * Math.cos(brng)); lon += Math.atan2(Math.sin(brng) * Math.sin(distance / R) * Math.cos(lat), Math.cos(distance / R) - Math.sin(lat) * Math.sin(lat)); return [(lat * 180 / Math.PI), (lon * 180 / Math.PI)]; } $.fn.dataTable.moment( 'MMM d, yyyy' ); var findACourseSearchTable = $('#findACourseSearchTable').DataTable({ "searching": false, "info": false, "ordering": true, "dom": 'Bfrtip', "autoWidth": false, "columnDefs": [ { type: 'date', orderable: false, width: '85px', targets: 0 }, { width: '130px', targets: 1 }, { width: '150px', targets: 2 }, { width: '60px', targets: 3 }, { width: '60px', targets: 4 }, { width: '60px', targets: 5 }, { width: '60px', targets: 6 }, { width: '100px', orderable: false, targets: 7 }, { width: '0px', targets: 8 } ], "fnDrawCallback": function(oSettings) { dataTablesSettings(oSettings, "findACourseSearchTable"); } }); $(".find-a-course-search-button").on("click", function (e) { e.preventDefault(); var paramObj = {}; $.each($('#findACourseForm').serializeArray(), function (_, kv) { if (paramObj.hasOwnProperty(kv.name)) { paramObj[kv.name] = $.makeArray(paramObj[kv.name]); paramObj[kv.name].push(kv.value); } else { paramObj[kv.name] = kv.value; } }); validateSearchFields(paramObj); }); function validateSearchFields(paramObj) { var selectProgram = $("#selectProgram").val(); var selectCateogry = $("#selectCateogry").val(); var mapResult = $("#searchBox").val(); var selectALanguage = $("#selectALanguage").val(); var selectADeliverMethod = $("#selectADeliverMethod").val(); var startdateRange = $("#startdateRange"); var endDateRange = $("#endDateRange"); var courseStartDateSelected = new Date(startdateRange.val()); var courseEndDateSelected = new Date(endDateRange.val()); // If Online Course if( selectADeliverMethod == 3 && selectProgram != -1 && selectCateogry != -1 ) { getSearchResults(paramObj); } //if not online Course if(selectADeliverMethod != 3) { if ( selectProgram != -1 && selectCateogry != -1 && startdateRange.val() != null && startdateRange.val() != "" && startdateRange.val() != undefined && endDateRange.val() != null && endDateRange.val() != "" && endDateRange.val() != undefined && ((mapResult != '' && mapResult != null && mapResult != undefined) || $("#distance").val() == 6000) ) { // End Date cannot be less than start date if (courseEndDateSelected < courseStartDateSelected) { alert("End Date is not valid"); } else { getSearchResults(paramObj); } } else { alert('enter values'); } } } function getSearchResults(d) { $('#findACourseSearchTable').DataTable().clear().draw(); $(".loader").show(); var searchData = d; let coords = ""; if ($("#distance").val() != 6000){ coords = "&latN=" + (pointN != null ? Number(pointN[0]).toFixed(4):null) + "&lonE=" + (pointE != null ? Number(pointE[1]).toFixed(4):null) + "&latS=" + (pointS != null ? Number(pointS[0]).toFixed(4):null) + "&lonW=" + (pointW != null ? Number(pointW[1]).toFixed(4):null); }; $.ajax({ type: "GET", url: "~/findacoursepublic/?prg=" + searchData.selectAProgram + "&ctg=" + searchData.selectACateogry + "&sd=" + searchData.dateStart + "&ed=" + searchData.dateEnd + coords + "&lang=" + searchData.selectLanguages + "&del=" + searchData.deliverMethod, data: "", contentType: "application/json; charset=utf-8", dataType: "json", success: function (res) { try { if (res && res.coursesfound) { var coursesFound = res.coursesfound; addItemstoTable(coursesFound); } else { console.error("Unexpected response format:", res); } } catch (error) { console.error("Error processing response:", error); } }, error: function(err, sCode, xhr) { $(".loader").hide(); console.error("AJAX request failed:", sCode, err); const properties = { bodyContent: "Something went wrong. Please try again later.", headerSection: false, } showGlobalModal(properties) } }) } /* function getDistanceFromLatLonInKm(lat1,lon1,lat2,lon2) { let languageCode = getCurrentLanguageCode(); if(languageCode != 1033) { lat1 = lat1.replace(",","."); lon1 = lon1.replace(",","."); } var R = 6371; var dLat = deg2rad(lat2-lat1); var dLon = deg2rad(lon2-lon1); var a = Math.sin(dLat/2) * Math.sin(dLat/2) + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * Math.sin(dLon/2) * Math.sin(dLon/2) ; var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); var d = R * c; return d; } function deg2rad(deg) { return deg * (Math.PI/180) }*/ function getDistanceFromLatLonInKm(lat1, lon1, lat2, lon2) { let languageCode = getCurrentLanguageCode(); if(languageCode != 1033) { lat1 = lat1.replace(",","."); lon1 = lon1.replace(",","."); } const R = 6371; // Radius of the Earth in km const dLat = deg2rad(lat2 - lat1); // Difference in latitude converted to radians const dLon = deg2rad(lon2 - lon1); // Difference in longitude converted to radians // Haversine formula components const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * Math.sin(dLon / 2) * Math.sin(dLon / 2); const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); const distance = R * c; // Distance in kilometers return distance; } // Helper function to convert degrees to radians function deg2rad(deg) { return deg * (Math.PI / 180); } function addItemstoTable(courses) { const lang = document.body.parentNode.dataset.lang; courses = courses.filter(item => item.SessionStatus !== "171120002"); var courseData = courses; courseData.forEach(d => { let languageCode = getCurrentLanguageCode(); if(d.Format == "Online" || d.Format == "En ligne") { d.DateandTime_startdate = "N/A" } else { if(languageCode == 1033) { //d.DateandTime_startdate = new Date(addDays(d.DateandTime_startdate, 1)).toLocaleString("en-CA"); d.DateandTime_startdate = new Date(addDays(d.DateandTime_startdate, 1)).toLocaleDateString('en-CA', { month: 'short', day: 'numeric', year: 'numeric'}).replace(/ /g, ' '); } else { //d.DateandTime_startdate = new Date(addDays(d.DateandTime_startdate, 1)).toLocaleString("fr-FR"); d.DateandTime_startdate = new Date(addDays(d.DateandTime_startdate, 1)).toLocaleDateString('fr-FR', { month: 'short', day: 'numeric', year: 'numeric'}).replace(/ /g, ' '); } } if(lang == "en") { (d.Virtual === "true") ? d.Virtual = "Yes" : d.Virtual = "No"; } else { (d.Virtual === "true") ? d.Virtual = "Oui" : d.Virtual = "Non"; } (d.Price === "0") ? d.Price = "" : d.Price = "$" + d.Price; // Calculate distance and add it to the object d.Distance = getDistanceFromLatLonInKm(d.Latitude, d.Longitude, currentPosition.lat, currentPosition.lon); // Parse the date for sorting if (d.DateandTime_startdate !== "N/A") { d.ParsedDate = new Date(addDays(d.DateandTime_startdate, 1)); // For sorting } else { d.ParsedDate = null; // If no date available, set as null } }); // Sort the courseData first by date and then by distance within each date courseData.sort((a, b) => { // If both courses have a valid date if (a.ParsedDate && b.ParsedDate) { // Sort by date first if (a.ParsedDate.getTime() !== b.ParsedDate.getTime()) { return a.ParsedDate - b.ParsedDate; } // If dates are the same, sort by distance return a.Distance - b.Distance; } // If only one course has a date, prioritize the one with a date if (a.ParsedDate) return -1; if (b.ParsedDate) return 1; // If neither has a date, sort by distance return a.Distance - b.Distance; }); let tbody = document.querySelector('tbody#courseDataTbody'); let rows = courseData.map(e => { let distance = getDistanceFromLatLonInKm(e.Latitude, e.Longitude, currentPosition.lat, currentPosition.lon); let tr = document.createElement('tr'); let dateTimeColumn = `<td><strong>${e.DateandTime_startdate}</strong> <br> <p class="blurb">${e.DateandTime_schedule}</p> </td>` let courseNameColumn; if(lang == "en"){ courseNameColumn = `<td><strong><a target="_blank" href="/en/${e.Url}" class="crc__link--default text-capitalize">${e.CourseName}</a></strong></td>`; } else { courseNameColumn = `<td><strong><a target="_blank" href="/fr/${e.UrlFr}" class="crc__link--default text-capitalize">${e.CourseName_French}</a></strong></td>`; }; let providedByColumn = `<td><p class="blurb"><strong>${e.Providedby_trainingpartner}</strong> </p> <p class="blurb margin-zero">${e.Providedby_registrationphone} </p> <p class="blurb margin-zero">${e.Providedby_registrationemail} </p> <p class="blurb margin-zero">${e.Providedby_address1} </p> <p class="blurb margin-zero">${e.Providedby_city} ${e.Providedby_postalcode}</p> </td>` let languageColumn = `<td><p class="blurb">${e.Language}</p></td>` let formatColumn = `<td><p class="blurb">${e.Format}</p></td>` let virtualColumn = `<td><p class="blurb">${e.Virtual}</p></td>` let priceColumn = `<td><p class="blurb">${e.Price}</p></td>` let buttonColumn = "<td></td>"; let distanceColumn = `<td hidden>${distance}</td>`; if(e.link_take) { let takeThisCourse = "Take this Course" buttonColumn = `<td><a href="${e.link_take}" target="_blank" class="crc__link--default text-capitalize">${takeThisCourse}</a></td>` } if(e.Providedby_registrationurl != ""){ if(e.link_3rdparty ) { let takeThisCourse = "Take this Course" buttonColumn = `<td><a href="${e.Providedby_registrationurl}" target="_blank" class="crc__link--default text-capitalize">${takeThisCourse}</a></td>` }} if(e.Providedby_registrationurl == ""){ let takeThisCourse = "Take this Course" buttonColumn = `<td><a href="${e.link_3rdparty}" target="_blank" class="crc__link--default text-capitalize">${takeThisCourse}</a></td>` } if(e.link_register) { let register = "Register" buttonColumn = `<td><a href="${e.link_register}" target="_blank" class="crc__link--as-button crc__global-button--primary text-capitalize">${register}</a></td>` } tr.innerHTML = dateTimeColumn + courseNameColumn + providedByColumn + languageColumn + formatColumn + virtualColumn + priceColumn + buttonColumn+ distanceColumn; return tr; }); if(rows.length > 0) { rows.forEach(n => $('#findACourseSearchTable').DataTable().row.add($(n)).draw()); $(".search-results-section").show(); $(".search-results-message").hide(); } else { $(".search-results-section").hide(); $(".search-results-message").show(); } $(".loader").hide(); // $(".search-alert").removeClass("hide"); } $("#selectProgram").on("change", function () { // For Category values let selectedProgramValue = $("#selectProgram :selected").val(); var selectedCategory = $("#selectCateogry").val(); let selectElement =$("#selectCateogry"); $("#selectCateogry > option:not(:first)").each(function(e) { if($(this).attr('name') !== selectedProgramValue){ $(this).attr("hidden", true); $(this).attr("disabled", "disabled"); } else{ $(this).removeAttr("hidden"); $(this).removeAttr("disabled"); } }); if(selectedProgramValue == "1c3e2c6f-0fc2-e911-a811-000d3af46674" && selectedCategory == "0b23b75e-10c2-e911-a812-000d3af462ef"){ $("#selectADeliverMethod").val(3); setOnlineDeliveryMethod(); }; checkOnlineDeliveryProgram(); checkSubmit(); }); function setOnlineDeliveryMethod() { $(".date-range-category .progress-step-bar").addClass("disable-fields"); $(".address-category .progress-step-bar").addClass("disable-fields"); $("#startdateRange").val(undefined); $("#endDateRange").val(undefined); $("#searchBox").val(''); $("#startdateRange, #endDateRange, #searchBox, #distance").prop("disabled", true); checkOnlineDeliveryProgram(); } function checkAllCanadaField() { if($("#distance").val() == 6000) { $("#searchBox").prop( "disabled", true ); // Check if the browser supports geolocation if (navigator.geolocation) { navigator.geolocation.getCurrentPosition( function (position) { // Success callback: position contains the user's current location var lat = position.coords.latitude; var lon = position.coords.longitude; console.log("User's current position: "); console.log("Latitude: " + lat); console.log("Longitude: " + lon); // You can now use lat and lon for further calculations currentPosition = { lat: lat, lon: lon }; }, function (error) { // Error callback console.error("Error getting geolocation: ", error.message); } ); } else { console.error("Geolocation is not supported by this browser."); } } else { $("#searchBox").prop( "disabled", false ); }; } function checkOnlineDeliveryProgram() { var selectedStartDateRange = $("#startdateRange").val(); var selectedEndDateRange = $("#endDateRange").val(); if ($("#selectProgram :selected").val() != -1 && $("#selectCateogry").val() !=-1 && $("#selectADeliverMethod :selected").val() != 3 && (selectedStartDateRange != null && selectedStartDateRange != undefined && selectedStartDateRange != "" && selectedEndDateRange != null && selectedEndDateRange != undefined && selectedEndDateRange != "")) { $(".address-category .progress-step-bar").removeClass("disable-fields"); $("#searchBox").prop("disabled", false); $("#distance").prop("disabled", false); checkAllCanadaField(); if($("#selectProgram :selected").val() != -1 && $("#selectCateogry").val() !=-1 && $("#selectADeliverMethod :selected").val() != 3){ $(".date-range-category .progress-step-bar").removeClass("disable-fields"); $("#startdateRange, #endDateRange").prop("disabled", false); }; } else { $(".address-category .progress-step-bar").addClass("disable-fields"); $("#searchBox").prop("disabled", true); $("#distance").prop("disabled", true); if(($("#selectProgram :selected").val() == -1 || $("#selectCateogry").val() ==-1) && $("#selectADeliverMethod :selected").val() != 3){ $(".date-range-category .progress-step-bar").addClass("disable-fields"); $("#startdateRange, #endDateRange").prop("disabled", true); }; } if($("#selectADeliverMethod :selected").val() == 3 && $("#selectProgram :selected").val() != -1 && $("#selectCateogry").val() !=-1){ $(".find-a-course-search-button").prop("disabled", false); } else if($("#selectADeliverMethod :selected").val() == 3) { $(".find-a-course-search-button").prop("disabled", true); }; } function checkSubmit(){ var selectedStartDateRange = $("#startdateRange").val(); var selectedEndDateRange = $("#endDateRange").val(); if($("#selectADeliverMethod :selected").val() != 3 && ($("#selectProgram :selected").val() == -1 || $("#selectCateogry").val() ==-1 || selectedStartDateRange == null || selectedStartDateRange == undefined || selectedStartDateRange == "" || selectedEndDateRange == null || selectedEndDateRange == undefined || selectedEndDateRange == "" || (currentPosition.lat == null && $("#distance").val() != 6000))){ $(".find-a-course-search-button").prop("disabled", true); } else if($("#selectADeliverMethod :selected").val() != 3){ $(".find-a-course-search-button").prop("disabled", false); }; } $("#selectCateogry").on("change", function () { var selectedCategory = $("#selectCateogry").val(); let selectedProgramValue = $("#selectProgram :selected").val(); if (selectedCategory != -1 && $("#selectADeliverMethod :selected").val() != 3) { $(".date-range-category .progress-step-bar").removeClass("disable-fields"); $("#startdateRange, #endDateRange").prop("disabled", false); } else { $(".date-range-category .progress-step-bar").addClass("disable-fields"); $("#startdateRange, #endDateRange").prop("disabled", true); }; if(selectedProgramValue == "1c3e2c6f-0fc2-e911-a811-000d3af46674" && selectedCategory == "0b23b75e-10c2-e911-a812-000d3af462ef"){ $("#selectADeliverMethod").val(3); setOnlineDeliveryMethod(); }; checkOnlineDeliveryProgram(); checkSubmit(); }); $("#selectADeliverMethod").on("change", function () { let selectADeliverMethod = $("#selectADeliverMethod :selected").val(); if(selectADeliverMethod == 3) { setOnlineDeliveryMethod(); }; if(selectADeliverMethod != 3 && currentPosition.lat==null) { $(".find-a-course-search-button").prop("disabled", true); }; if(selectADeliverMethod != 3 && $("#selectCateogry").val() != -1){ $(".date-range-category .progress-step-bar").removeClass("disable-fields"); $("#startdateRange, #endDateRange").prop("disabled", false); } }); $("#startdateRange").change(enableAddressFields); $("#endDateRange").change(enableAddressFields); function enableAddressFields() { var selectedStartDateRange = $("#startdateRange").val(); var selectedEndDateRange = $("#endDateRange").val(); if (selectedStartDateRange != null && selectedStartDateRange != undefined && selectedStartDateRange != "" && selectedEndDateRange != null && selectedEndDateRange != undefined && selectedEndDateRange != "") { $(".address-category .progress-step-bar").removeClass("disable-fields"); $("#searchBox").prop("disabled", false); $("#distance").prop("disabled", false); checkOnlineDeliveryProgram(); checkSubmit(); } else { $(".address-category .progress-step-bar").addClass("disable-fields"); $("#searchBox").prop("disabled", true); $("#distance").prop("disabled", true); checkOnlineDeliveryProgram(); checkSubmit(); } }; //Date validation var dateToday = new Date(); var dateTodayFormatted = new Date().toISOString().split("T")[0]; $("#startdateRange").on("change", function () { var selectedStartDate = $(this).val(); $("#endDateRange").attr("min", selectedStartDate); checkOnlineDeliveryProgram(); checkSubmit(); }); $("#enddateRange").on("change", function () { checkOnlineDeliveryProgram(); checkSubmit(); }); $("#startdateRange, #endDateRange").on( "blur", function () { var errorField = $(this)[0].id; if ( $(this).val() != null && $(this).val() != "" && $(this).val() != undefined ) { $("#" + errorField).removeClass("error-hide"); } else { $("#" + errorField).addClass("error-hide"); } }); function dateValidate() { var startdateRange = $("#startdateRange"); var endDateRange = $("#endDateRange"); var courseStartDateSelected = new Date(startdateRange.val()); var courseEndDateSelected = new Date(endDateRange.val()); //Check for null values if ( startdateRange.val() != null && startdateRange.val() != "" && startdateRange.val() != undefined && endDateRange.val() != null && endDateRange.val() != "" && endDateRange.val() != undefined ) { // End Date cannot be less than start date if (courseEndDateSelected < courseStartDateSelected) { alert("End Date is not valid"); } else { alert("success"); } } else { alert("enter values"); }; checkSubmit(); } function checkActiveTP(){ let companyId = ""; let userName = ""; let i = 0; if(companyId == "" && userName !== ""){ if( i>0 ){ $("#dialog").dialog(); $(".ui-dialog-titlebar-close").html("✖"); window.location.replace("/SelectTrainingPartner"); } }; } </script> <script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/pcf-loader.bundle-f4a0e619b8.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/pcf-loader.bundle-f4a0e619b8.js" type="text/javascript"></script> <div id="pp-native-controls-react-root"></div> <script>window._nativeControlConfig = { "publicPath":"https://content.powerapps.com/resource/powerappsportal/controls", "versions": {"pcf_loader":"0.0.27","pcf_controls":"3.2.6","mf_shared":"0.2.7","host":"0.2.0","data_grid":"1.1.26","controls_fluent_v9":"0.0.30"} }</script> <script defer="defer" src="https://content.powerapps.com/resource/powerappsportal/controls/host/main.04a618205e.chunk.js"></script> <div class="footer"> <div class="xrm-editable-html xrm-attribute" data-languageContext="English"><div class="xrm-attribute-value"><footer class="global-footer" style="box-sizing: border-box;"> <div class="nav-links" style="text-align:center;box-sizing: border-box;"><a href="~/Home-Findacourse" style="box-sizing: border-box;">Find a course</a><a href="/ValidateCertificate/" style="box-sizing: border-box;">Validate Certificate</a><a href="https://helpsupport.redcross.ca/hc/en-ca" target="_blank" aria-label="Link to FAQ, opens in a new tab" style="box-sizing: border-box;">HELP & SUPPORT</a><a href="https://www.redcross.ca/about-us/jobs" target="_blank" aria-label="Link to Jobs, opens in a new tab" style="box-sizing: border-box;">Jobs</a><a href="http://www.redcross.ca/volunteer" target="_blank" aria-label="Link to Volunteers, opens in a new tab" style="box-sizing: border-box;">Volunteers</a><a href="/contact-us/" class="contact-us" style="box-sizing: border-box;">Contact us</a> </div> <div class="footer-social" style="box-sizing: border-box;"> <ul style="padding-left:0px;box-sizing: border-box;"> <li style="box-sizing: border-box;"> <a aria-label="Check out our Facebook page." data-event="social-event" data-social-action="profile" data-social-network="facebook" data-social-target="https://www.facebook.com/canadianredcross" href="https://www.facebook.com/canadianredcross" id="social_facebook_sitemap" target="_blank" class="cp-social" style="box-sizing: border-box;"><span class="svg-wrapper facebook" style="box-sizing: border-box;"><svg viewBox="0 0 124 124" xmlns="http://www.w3.org/2000/svg" class="social_facebook" style="box-sizing: border-box;"> <defs style="box-sizing: border-box;"></defs> <g style="box-sizing: border-box;"><path d="M45.6,55h10V45.7a14.83,14.83,0,0,1,4.2-10.8c4.7-4.7,10.8-4.2,19.6-3.4V41.8H72.8a6.76,6.76,0,0,0-4.2,1.5,7.12,7.12,0,0,0-1.2,4.2V55H78.7L77.2,66.5h-10V96.4h-12V66.5h-10V55Z" class="grey" style="box-sizing: border-box; fill: rgb(51, 51, 51);"></path></g> </svg> </span> </a> </li> <li style="box-sizing: border-box;"> <a aria-label="Check out our Instagram account." data-event="social-event" data-social-action="profile" data-social-network="instagram" data-social-target="https://instagram.com/redcrosscanada" href="https://instagram.com/redcrosscanada/" id="social_instagram_sitemap" target="_blank" class="cp-social" style="box-sizing: border-box;"><span class="svg-wrapper instagram" style="box-sizing: border-box;"><svg viewBox="0 0 124 124" xmlns="http://www.w3.org/2000/svg" class="social_instagram" style="box-sizing: border-box;"> <defs style="box-sizing: border-box;"></defs> <g style="box-sizing: border-box;"> <path d="M63.08,31.76c10,0,11.08,0,15.09.24a20.22,20.22,0,0,1,7,1.41,8.46,8.46,0,0,1,4.12,2.83,10.33,10.33,0,0,1,2.83,4.13,24,24,0,0,1,1.42,7c.23,3.89.23,5.07.23,15.09s0,11.08-.23,15.09a20.23,20.23,0,0,1-1.42,7,8.42,8.42,0,0,1-2.83,4.13,10.4,10.4,0,0,1-4.12,2.83,23.62,23.62,0,0,1-7,1.41c-3.89.24-5.07.24-15.09.24S52,93.07,48,92.83a20.22,20.22,0,0,1-7-1.41,8.46,8.46,0,0,1-4.12-2.83,10.33,10.33,0,0,1-2.83-4.13,23.63,23.63,0,0,1-1.42-6.95c-.23-3.89-.23-5.07-.23-15.09s0-11.09.23-15.09a20.46,20.46,0,0,1,1.42-7,8.42,8.42,0,0,1,2.83-4.13A10.38,10.38,0,0,1,41,33.41,23.62,23.62,0,0,1,48,32c4-.24,5.07-.24,15.09-.24m0-6.6c-10,0-11.44,0-15.33.24a31,31,0,0,0-9,1.65A20.25,20.25,0,0,0,32,31.17a16,16,0,0,0-4,6.72,24.5,24.5,0,0,0-1.65,9c-.24,3.89-.24,5.31-.24,15.33s0,11.44.24,15.33a31,31,0,0,0,1.65,9,20.25,20.25,0,0,0,4.12,6.72,16,16,0,0,0,6.72,4.12,24.5,24.5,0,0,0,9,1.65c3.89.24,5.31.24,15.33.24s11.44,0,15.33-.24a31,31,0,0,0,9-1.65,20.25,20.25,0,0,0,6.72-4.12,16,16,0,0,0,4.12-6.72,24.5,24.5,0,0,0,1.65-9c.24-3.89.24-5.31.24-15.33s0-11.44-.24-15.33a31,31,0,0,0-1.65-9,20.25,20.25,0,0,0-4.12-6.72,16,16,0,0,0-6.72-4.12,24.5,24.5,0,0,0-9-1.65c-3.89-.24-5.31-.24-15.33-.24Z" class="grey" style="box-sizing: border-box; fill: rgb(51, 51, 51);"></path> <path d="M63.08,43.2a19,19,0,1,0,19,19A19,19,0,0,0,63.08,43.2Zm0,31.24A12.17,12.17,0,0,1,50.82,62.36v-.18A12.26,12.26,0,1,1,63.26,74.44Z" class="grey" style="box-sizing: border-box; fill: rgb(51, 51, 51);"></path> <circle cx="82.89" cy="42.37" r="4.48" class="grey" style="box-sizing: border-box; fill: rgb(51, 51, 51);"></circle> </g> </svg> </span> </a> </li> <li style="box-sizing: border-box;"> <a aria-label="Check out our LinkedIn page" data-event="social-event" data-social-action="profile" data-social-network="LinkedIn" data-social-target="https://ca.linkedin.com/company/redcrosscanada" href="https://ca.linkedin.com/company/redcrosscanada" id="social_linkedin_sitemap" target="_blank" class="cp-social" style="box-sizing: border-box;"><span class="svg-wrapper linkedIn" style="box-sizing: border-box;"><svg fill="none" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" class="social_linkedin" style="box-sizing: border-box;"> <defs style="box-sizing: border-box;"></defs> <rect height="32" rx="16" width="32" style="box-sizing: border-box;"></rect> <path d="M23.7381 6H9.2619C8.01333 6 7 7.01333 7 8.2619V22.7381C7 23.9867 8.01333 25 9.2619 25H23.7381C24.9867 25 26 23.9867 26 22.7381V8.2619C26 7.01333 24.9867 6 23.7381 6ZM12.881 13.2381V21.8333H10.1667V13.2381H12.881ZM10.1667 10.7364C10.1667 10.1031 10.7095 9.61905 11.5238 9.61905C12.3381 9.61905 12.8493 10.1031 12.881 10.7364C12.881 11.3698 12.3743 11.881 11.5238 11.881C10.7095 11.881 10.1667 11.3698 10.1667 10.7364ZM22.8333 21.8333H20.119C20.119 21.8333 20.119 17.6443 20.119 17.3095C20.119 16.4048 19.6667 15.5 18.5357 15.4819H18.4995C17.4048 15.4819 16.9524 16.4138 16.9524 17.3095C16.9524 17.7212 16.9524 21.8333 16.9524 21.8333H14.2381V13.2381H16.9524V14.3962C16.9524 14.3962 17.8255 13.2381 19.5807 13.2381C21.3767 13.2381 22.8333 14.4731 22.8333 16.9748V21.8333Z" class="grey" style="box-sizing: border-box; fill: rgb(51, 51, 51);"></path> </svg> </span> </a> </li> <li style="box-sizing: border-box;"> <a aria-label="Check out our YouTube page" data-event="social-event" data-social-action="profile" data-social-network="YouTube" data-social-target="https://www.youtube.com/channel/UCrWdm3Wfqpb7BYx0N_zg1rA" href="https://www.youtube.com/channel/UCrWdm3Wfqpb7BYx0N_zg1rA" id="social_YouTube_sitemap" target="_blank" class="cp-social" style="box-sizing: border-box;"><span class="svg-wrapper youtube" style="box-sizing: border-box;"><svg viewBox="0 0 800 800" xmlns="http://www.w3.org/2000/svg" class="social_youtube" style="box-sizing: border-box;"> <defs style="box-sizing: border-box;"></defs> <g style="box-sizing: border-box;"> <path d="M572.2,191.6H227.8c-67.6,0-122.3,54.8-122.3,122.3v172.1c0,67.6,54.8,122.3,122.3,122.3h344.3 c67.6,0,122.3-54.8,122.3-122.3V313.9C694.5,246.4,639.7,191.6,572.2,191.6z M489.4,408.4l-161.1,76.8c-4.3,2-9.2-1.1-9.2-5.8 V320.9c0-4.8,5.1-7.9,9.4-5.8l161.1,81.6C494.4,399.2,494.3,406.1,489.4,408.4z" class="grey" style="box-sizing: border-box; fill: rgb(51, 51, 51);"></path> </g> </svg> </span> </a> </li> <li style="box-sizing: border-box;"> <a aria-label="Check out our TikTok account." data-event="social-event" data-social-action="profile" data-social-network="tiktok" data-social-target="https://www.tiktok.com/@redcrosscanada?lang=en" href="https://www.tiktok.com/@redcrosscanada?lang=en" id="social_tiktok_sitemap" target="_blank" class="cp-social" style="box-sizing: border-box;"><span class="svg-wrapper tiktok" style="box-sizing: border-box;"><svg id="icons" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" class="social_tiktok" style="box-sizing: border-box;"> <defs style="box-sizing: border-box;"></defs> <path d="M412.19,118.66a109.27,109.27,0,0,1-9.45-5.5,132.87,132.87,0,0,1-24.27-20.62c-18.1-20.71-24.86-41.72-27.35-56.43h.1C349.14,23.9,350,16,350.13,16H267.69V334.78c0,4.28,0,8.51-.18,12.69,0,.52-.05,1-.08,1.56,0,.23,0,.47-.05.71,0,.06,0,.12,0,.18a70,70,0,0,1-35.22,55.56,68.8,68.8,0,0,1-34.11,9c-38.41,0-69.54-31.32-69.54-70s31.13-70,69.54-70a68.9,68.9,0,0,1,21.41,3.39l.1-83.94a153.14,153.14,0,0,0-118,34.52,161.79,161.79,0,0,0-35.3,43.53c-3.48,6-16.61,30.11-18.2,69.24-1,22.21,5.67,45.22,8.85,54.73v.2c2,5.6,9.75,24.71,22.38,40.82A167.53,167.53,0,0,0,115,470.66v-.2l.2.2C155.11,497.78,199.36,496,199.36,496c7.66-.31,33.32,0,62.46-13.81,32.32-15.31,50.72-38.12,50.72-38.12a158.46,158.46,0,0,0,27.64-45.93c7.46-19.61,9.95-43.13,9.95-52.53V176.49c1,.6,14.32,9.41,14.32,9.41s19.19,12.3,49.13,20.31c21.48,5.7,50.42,6.9,50.42,6.9V131.27C453.86,132.37,433.27,129.17,412.19,118.66Z" class="grey" style="box-sizing: border-box; fill: rgb(51, 51, 51);"></path> </svg> </span> </a> </li> </ul> </div> <p class="download-text" style="box-sizing: border-box;">Download the Canadian Red Cross First Aid app</p> <div class="badges" style="box-sizing: border-box;"> <a href=" https://apps.apple.com/app/id1312876691" target="_blank" aria-label="Link to Apple Appstore, opens in a new tab" style="box-sizing: border-box;"> <img alt="Get it on Apple Appstore" src="/appstore_badge_en.png" aria-hidden="true" style="box-sizing: border-box; max-height: 35px;"> </a> <a href=" https://play.google.com/store/apps/details?id=com.cube.gdpc.fa" target="_blank" aria-label="Link to Google Playstore, opens in a new tab" style="box-sizing: border-box;"> <img alt="Get it on Google Play" src="/google_playstore_badge_en.png" aria-hidden="true" style="box-sizing: border-box; max-height: 35px;"> </a> </div> <div class="privacy-terms" style="justify-content:center;box-sizing: border-box;"><a href="https://www.redcross.ca/privacy-policy" target="_blank" aria-label="Link to Privacy policy" style="box-sizing: border-box;">Privacy Policy</a><a href="https://www.redcross.ca/terms-and-conditions" target="_blank" aria-label="Link to Terms & Conditions, opens in a new tab" style="box-sizing: border-box;">Terms & Conditions</a><a href="https://www.redcross.ca/web-content-accessibility" target="_blank" aria-label="Link to Accessibility, opens in a new tab" style="box-sizing: border-box;">Accessibility</a> <button type="reset" onclick="translateToFrench()" class="language" style="box-sizing: border-box;">Français</button> </div> <p class="copyright" style="text-align:center;box-sizing: border-box;">All content copyright © 1999 - 2022 Canadian Red Cross. All rights reserved. Charity Registration Number: 119219814RR0001</p> </footer> </div></div> </div> <script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/bootstrap.bundle-105a4995b8.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/bootstrap.bundle-105a4995b8.js" type="text/javascript"></script> <script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/postpreform.bundle-184c77da50.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/postpreform.bundle-184c77da50.js" type="text/javascript"></script> <script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/app.bundle-0d23a48b21.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/app.bundle-0d23a48b21.js" type="text/javascript"></script> <script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/default-1033.moment_2_29_4.bundle-eda4e638fd.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/default-1033.moment_2_29_4.bundle-eda4e638fd.js" type="text/javascript"></script> <script> //this event will update the title of the page based on active breadcrumb $('.breadcrumb').ready(function () { if ($('.breadcrumb').is(':visible')) { document.querySelector('title').innerHTML = ($('.breadcrumb > li.active').text() + " - My Red Cross"); } }); function GoToNewEditor() { var editCmsUrlSegment = "EditInCms"; var currentUrl = window.location.href; if (currentUrl.indexOf('?') > -1) { var urlSegments = currentUrl.split("?"); window.location.href = window.location.origin + '/' + editCmsUrlSegment + window.location.pathname + '?' + urlSegments[1]; } else { window.location.href = window.location.origin + '/' + editCmsUrlSegment + window.location.pathname; } } </script> <script> if ('serviceWorker' in navigator) { navigator.serviceWorker.getRegistrations().then(function(registrations) { for(let registration of registrations) { registration.unregister(); }}).catch(function(err) { console.log('Service Worker unregister action failed: ', err); }); } </script> <!--Start Show Session Expire Warning Popup here --> </body> </html> <!-- Generated at 11/27/2024 6:07:08 AM --> <!-- Page OK -->