PageSourceSearch

https://members.skatecanada.ca/en-US/

html skatecanada.ca collected 2026-10-02 04:04:43 UTC 41,593 bytes, 906 lines download raw bytes

1
2
3
4<!DOCTYPE html>
5<html lang="en-US" data-lang="en-US" crm-lang="en-US" dir="ltr" crm-lcid="1033"
6	same-site-mode="None">
7<head>
8		
9		<meta charset="utf-8" /><meta name="viewport" content="width=device-width,&#32;initial-scale=1.0" /><meta http-equiv="X-UA-Compatible" content="IE=edge" />
10		
10<script type="text/javascript" >
11				
12        </script>
12
13	<title>
14	
15		Home
16		· Skate Canada Membership Site
17</title>
18		
19		
19<script src="/_portal/d78574f9-20c3-4dcc-8d8d-85cf5b7ac141/Resources/ResourceManager?lang=en-US"></script>
19
20	
21	
21<script type="text/javascript">
22        // Refresh all powerBI Iframes on Login in one Iframe
23        window.addEventListener('message', function (event) {
24            if (event && event.data && event.data == 'refreshPowerBI') {
25                $("iframe.powerbi").each(function () {
26                    this.src = this.src;
27                });
28            }
29        });
30
31        // Fix for incorrect viewport width setting in IE 10 on Windows Phone 8.
32        if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
33            var msViewportStyle = document.createElement("style");
34            msViewportStyle.appendChild(document.createTextNode("@-ms-viewport{width:auto!important}"));
35            document.getElementsByTagName("head")[0].appendChild(msViewportStyle);
36        }
37    </script>
37
38		
39	
40		
41		<link href="/css/bootstrap.min.css" rel="stylesheet" />
42
43		<link href="https://content.powerapps.com/resource/powerappsportal/dist/font-awesome.bundle-3d8a58a48f.css" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;link&#32;=&#32;document.createElement(&#39;link&#39;);&#32;link.crossOrigin&#32;=&#32;target.crossOrigin;&#32;link.href&#32;=&#32;&#39;/dist/font-awesome.bundle-3d8a58a48f.css&#39;;&#32;link.rel&#32;=&#32;&#39;stylesheet&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,link);" rel="stylesheet" />
44
45				<link href="https://content.powerapps.com/resource/powerappsportal/dist/preform.bundle-b72a6ea21d.css" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;link&#32;=&#32;document.createElement(&#39;link&#39;);&#32;link.crossOrigin&#32;=&#32;target.crossOrigin;&#32;link.href&#32;=&#32;&#39;/dist/preform.bundle-b72a6ea21d.css&#39;;&#32;link.rel&#32;=&#32;&#39;stylesheet&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,link);" rel="stylesheet" />
46
47
48		
49		<link href="https://content.powerapps.com/resource/powerappsportal/dist/privatemode.bundle-049b12b66e.css" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;link&#32;=&#32;document.createElement(&#39;link&#39;);&#32;link.crossOrigin&#32;=&#32;target.crossOrigin;&#32;link.href&#32;=&#32;&#39;/dist/privatemode.bundle-049b12b66e.css&#39;;&#32;link.rel&#32;=&#32;&#39;stylesheet&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,link);" rel="stylesheet" />
50
51
52		
53			
54
55
56		
57		<link href="/theme.css?1660591221000" rel="stylesheet" />
58<link href="/sccustom.css?1757515106000" rel="stylesheet" />
59
60		<style type="text/css">body {
61    font-family: sans-serif
62}
63.dialog-overlay {
64    position: absolute;
65    top: 0;
66    left: 0;
67    right: 0;
68    bottom: 0;
69    background-color: rgba(0, 0, 0, 0.50);
70    z-index: 999999
71}
72.dialog-overlay .dialog {
73    width: 400px;
74    margin: 100px auto 0;
75    background-color: #fff;
76    box-shadow: 0 0 20px rgba(0,0,0,.2);
77    border-radius: 3px;
78    overflow: hidden
79}
80.dialog-overlay .dialog header {
81    padding: 10px 8px;
82    background-color: #f6f7f9;
83    border-bottom: 1px solid #e5e5e5
84}
85.dialog-overlay .dialog header h3 {
86    font-size: 14px;
87    margin: 0;
88    color: #555;
89    display: inline-block
90}
91.dialog-overlay .dialog header .fa-close {
92    float: right;
93    color: #c4c5c7;
94    cursor: pointer;
95    transition: all .5s ease;
96    padding: 0 2px;
97    border-radius: 1px    
98}
99.dialog-overlay .dialog header .fa-close:hover {
100    color: #b9b9b9
101}
102.dialog-overlay .dialog header .fa-close:active {
103    box-shadow: 0 0 5px #673AB7;
104    color: #a2a2a2
105}
106.dialog-overlay .dialog .dialog-msg {
107    padding: 12px 10px
108}
109.dialog-overlay .dialog .dialog-msg p{
110    margin: 0;
111    font-size: 15px;
112    color: #333
113}
114.dialog-overlay .dialog footer {
115    border-top: 1px solid #e5e5e5;
116    padding: 8px 10px
117}
118.dialog-overlay .dialog footer .controls {
119    direction: rtl
120}
121.dialog-overlay .dialog footer .controls .button {
122    padding: 5px 15px;
123    border-radius: 3px
124}
125.button {
126  cursor: pointer
127}
128.button-default {
129    background-color: rgb(248, 248, 248);
130    border: 1px solid rgba(204, 204, 204, 0.5);
131    color: #5D5D5D;
132}
133.button-danger {
134    background-color: #f44336;
135    border: 1px solid #d32f2f;
136    color: #f5f5f5
137}
138.link {
139  padding: 5px 10px;
140  cursor: pointer
141}</style>
142		
143		
144		
145		
146	
147		
148		<link href="https://content.powerapps.com/resource/powerappsportal/dist/pwa-style.bundle-55718a4c0d.css" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;link&#32;=&#32;document.createElement(&#39;link&#39;);&#32;link.crossOrigin&#32;=&#32;target.crossOrigin;&#32;link.href&#32;=&#32;&#39;/dist/pwa-style.bundle-55718a4c0d.css&#39;;&#32;link.rel&#32;=&#32;&#39;stylesheet&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,link);" rel="stylesheet" />
149
150		</head>
151<body data-sitemap-state="/"
152	data-dateformat="M/d/yyyy"
153	data-timeformat="h:mm tt"
154	data-datetimeformat="M/d/yyyy h:mm tt"
155	data-app-path="/"
156	data-ckeditor-basepath="/js/BaseHtmlContentDesigner/Libs/msdyncrm_/libs/ckeditor/"
157	data-case-deflection-url="/_services/search/d78574f9-20c3-4dcc-8d8d-85cf5b7ac141">
158
159
160	
161		<link href="https://content.powerapps.com/resource/powerappsportal/dist/pcf-style.bundle-373a0f4982.css" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;link&#32;=&#32;document.createElement(&#39;link&#39;);&#32;link.crossOrigin&#32;=&#32;target.crossOrigin;&#32;link.href&#32;=&#32;&#39;/dist/pcf-style.bundle-373a0f4982.css&#39;;&#32;link.rel&#32;=&#32;&#39;stylesheet&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,link);" rel="stylesheet" />
162
163			
164	
165		
166
167	<div id="offlineNotificationBar" class="displayNone">
168		<img alt="web" id="web" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;img&#32;=&#32;document.createElement(&#39;img&#39;);&#32;img.src&#32;=&#32;&#39;/css/images/web.png&#39;;&#32;img.alt&#32;=&#32;&#39;web&#39;;&#32;img.id&#32;=&#32;&#39;web&#39;&#32;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,img);&#32;target.remove();" src="https://content.powerapps.com/resource/powerappsportal/img/web.png" />
169		<div id="message">You&#8217;re offline. This is a read only version of the page.</div>
170		<div id="close" onclick="this.parentElement.style.display='none';"><img alt="close" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;img&#32;=&#32;document.createElement(&#39;img&#39;);&#32;img.src&#32;=&#32;&#39;/css/images/close.png&#39;;&#32;img.alt&#32;=&#32;&#39;close&#39;;&#32;img.id&#32;=&#32;&#39;&#39;&#32;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,img);&#32;target.remove();" src="https://content.powerapps.com/resource/powerappsportal/img/close.png" /></div>
171	</div>
172
173	
174
175	
175<script type="text/javascript">
176        window.DisableCkEditor = window.DisableCkEditor || {};
177		
178		DisableCkEditor.Value = 'False';
179    </script>
179
180
181	
181<script type="text/javascript">
182        var enableOmniChannelWidgetWithSiteCopilot = 'False';
183        if (enableOmniChannelWidgetWithSiteCopilot === "True" || enableOmniChannelWidgetWithSiteCopilot === "true") {
184            const authUrl = window.location.origin + "/_services/auth/portalusertoken";
185            const fetchWithRetries = async (url, options, retries) => {
186                try {
187                    const authResponse = await fetch(url, options);
188                    const token = await authResponse.text();
189                    sessionStorage['c2Token'] = token;
190                } catch (err) {
191                    if (retries === 1) throw err;
192                    return await fetchWithRetries(url, options, retries - 1);
193                }
194            };
195            fetchWithRetries(authUrl, { method: "POST" }, 4);
196
197            // Enable/disable Omnichannel session refresh on auth state change
198            // When enabled, closeChat() is called when user logs in/out to start a fresh session
199            var enableOmniChannelSessionRefreshSetting = 'True';
200            window.enableOmniChannelSessionRefresh = enableOmniChannelSessionRefreshSetting === 'True' || enableOmniChannelSessionRefreshSetting === 'true';
201        }
202    </script>
202
203
204	
204<script type="text/javascript">
205		var isPvaBotAuthenticated = sessionStorage['isPvaBotAuthenticated'];
206		var isPortalUserLoggedIn = 'False';
207
208        if ((isPvaBotAuthenticated != null || isPvaBotAuthenticated != undefined) && isPvaBotAuthenticated != isPortalUserLoggedIn) {
209			sessionStorage['triggerPvaBotSignOut'] = true;
210			sessionStorage.removeItem('c2Token');
211            sessionStorage.removeItem('directLinetoken');
212            sessionStorage.removeItem('conversation_Id');
213
214			sessionStorage.removeItem('bot_c2Token');
215			sessionStorage.removeItem('botdirectLinetoken');
216            sessionStorage.removeItem('botconversation_Id');
217		}
218		sessionStorage['isPvaBotAuthenticated'] = isPortalUserLoggedIn;
219    </script>
219
220
221	
221<script type="text/javascript">
222		window["CSPSettings"] = window["CSPSettings"] || {};
223		window["CSPSettings"].nonce = '';
224        window["FabricConfig"] = window["FabricConfig"] || {};
225        window["FabricConfig"].mergeStyles = window["FabricConfig"].mergeStyles || {};
226		window["FabricConfig"].mergeStyles.cspSettings = window["CSPSettings"];
227        window["Microsoft"] = window["Microsoft"] || {};
228		window["Microsoft"].Dynamic365 = {
229			Portal: {
230				
231				User: {
232					userName: '',
233					firstName: '',
234					lastName: '',
235					email: '',
236					contactId: '',
237					userRoles: [],
238				},
239				
240				type: 'StarterPortal',
241				id: 'eb044534-7834-4d70-a3b9-9c591e3948a3', 
242				geo: 'NAM', 
243				tenant: '8d0ac5fd-9b51-4d16-ab34-ebdad8f3e554', 
244				correlationId: 'ee2fb3e2-25b5-4a79-8f0f-663715c18e5f',
245                orgEnvironmentId: '8e9bf521-74af-4c00-878d-4064993e7459',
246                orgId: '82de2c0f-ca67-4785-9e35-86cece941d6d',
247                portalProductionOrTrialType: 'Production',
248                isTelemetryEnabled: 'True',
249                InstrumentationSettings: {
250                    instrumentationKey: '197418c5cb8c4426b201f9db2e87b914-87887378-2790-49b0-9295-51f43b6204b1-7172',
251                    collectorEndpoint: 'https://us-mobile.events.data.microsoft.com/OneCollector/1.0/'
252                },
253                timerProfileForBatching: 'NEAR_REAL_TIME',
254                activeLanguages: ["fr-FR","en-US"],
255                isClientApiEnabled: 'True',
256                isSpaSite: 'False'
257            }
258        };
259
260		window["Microsoft"].PowerPages = window["Microsoft"].PowerPages || {};
261		window["Microsoft"].PowerPages.onPagesClientApiReady = (callback) => {
262			return new Promise((resolve, reject) => {
263				let isComplete = false;
264				let timeoutId;
265				const timeoutInterval = 10000;
266		
267				function handleReady() {
268					if (!isComplete && window.$pages) {
269						isComplete = true;
270						clearTimeout(timeoutId);
271						try {
272							if (typeof callback === "function") {
273								callback(window.$pages);
274							}
275						} catch (e) {
276							console.error("onPagesClientApiReady callback error:", e);
277						}
278						resolve(window.$pages); // should we reject if callback throws an error
279					}
280				}
281		
282				if (window.$pages) {
283					handleReady();
284					return;
285				}
286		
287				function sdkListener() {
288					handleReady();
289					window.removeEventListener('pagesSDKInitialized', sdkListener);
290				}
291		
292				window.addEventListener('pagesSDKInitialized', sdkListener);
293		
294				timeoutId = setTimeout(() => {
295					if (!isComplete) {
296						window.removeEventListener('pagesSDKInitialized', sdkListener);
297						if (window.$pages) {
298							handleReady();
299						} else {
300							isComplete = true;
301							reject(new Error('window.$pages not available.'));
302						}
303					}
304				}, timeoutInterval);
305			});
306		};
307
308		// Deprecated alias: Microsoft.Dynamic365.Portal.onPagesClientApiReady.
309		// Remove once telemetry shows no callers remain.
310		(function () {
311			var _impl = window["Microsoft"].PowerPages.onPagesClientApiReady;
312			var _logged = false;
313
314			window["Microsoft"].Dynamic365.Portal.onPagesClientApiReady = function (callback) {
315				if (!_logged) {
316					_logged = true;
317					try {
318						if (window.clientLogWrapper && typeof window.clientLogWrapper.traceWarning === "function") {
319							window.clientLogWrapper.traceWarning(
320								"Microsoft.Dynamic365.Portal.onPagesClientApiReady invoked (deprecated)",
321								"DeprecatedApi",
322								"ClientApiReady",
323								"Invoke",
324								"DeprecationTracker"
325							);
326						}
327						if (typeof console !== "undefined" && console.warn) {
328							console.warn(
329								"[DEPRECATED] Microsoft.Dynamic365.Portal.onPagesClientApiReady is deprecated " +
330								"and will be removed in a future release. Use Microsoft.PowerPages.onPagesClientApiReady instead."
331							);
332						}
333					} catch (_) { /* never break the caller */ }
334				}
335
336				return _impl(callback);
337			};
338		})();
339
340        // Mark request not cacheable if Dynamics365PortalAnalytics cookie is being refreshed by the server or if the cookie in request header is invali
340d
341		
342
343        // For client side telemetry intializing Dynamics365PortalAnalytics cookie object
344		
345        window["Microsoft"].Dynamic365.Portal.dynamics365PortalAnalytics = 'qpZT1KIgDn5AjhzlYtUZyAoYKM2crsoYcWpoHRJin2N5xoFTcJPIfBQ_0giL95Q_l95Vlet2Ov0NQKxVeN11Hqz3jmxwBSOE6X17nRJ6l03DC2-M300VwgFSGSms95012cHm_WZ3JZycA0DdaV4QZw2'; // CodeQL [SM00430] False Positive: only alphanumeric chars allowed, for non-alphanumeric char it will return INVALID_CHARACTERS_IN_COOKIE 
346		
347
348	</script>
348
349	
350	
350<script type="text/javascript">
351
352		
353    </script>
353
354
355	
356		
356<script type="text/javascript" src="~/membershipportal.js"></script>
356
357
358
359 
360 
361 
362 
363 
364<input type="hidden" id="hdnusername" name="username" value="">
365<div class="navbar navbar-inverse navbar-static-top" role="navigation">
366  <div class="container">
367    <div class="navbar-header">
368      <div class="visible-xs-block">
369        <div class="xrm-editable-html&#32;xrm-attribute" data-languageContext="English"><div class="xrm-attribute-value"><div><a class="navbar-brand" href="~/" tabindex="-1" title="Skate Canada Membership Site">Skate Canada Membership Site</a></div>
370
371
372</div></div>
373      </div>
374      <div class="visible-sm-block visible-md-block visible-lg-block navbar-brand">
375        <div class="xrm-editable-html&#32;xrm-attribute" data-languageContext="English"><div class="xrm-attribute-value"><a href="/" title="Home">
376  <img alt="Skate Canada Membership Site" src="/sclogo_en_dark.png" style="height: 90px; margin-top:50px;">
377</a>
378
379</div></div>
380      </div>
381      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" onclick="setHeight();">
382        <span class="sr-only">Toggle navigation</span>
383        <span class="icon-bar"></span>
384        <span class="icon-bar"></span>
385        <span class="icon-bar"></span>
386      </button>
387    </div>
388    <div id="navbar" class="navbar-collapse collapse">
389      
390      
391        <div class="navbar-right menu-bar " data-weblinks-maxdepth="2">
392          <ul class="nav navbar-nav weblinks">
393            
394              
395              
396                
397              
398
399              <li class="weblink ">
400                <a                     href="/en-US/"
401 title="Home">
402                        <span class="fa fa-home" aria-hidden="true"></span>
403                </a>
404
405                
406              </li>
407
408            
409            
410            
411            <li class="divider-vertical"></li>
412            
413              <li class="dropdown">
414                <a class="dropdown-toggle" href="#" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false" title="English">
415                  <span class="drop_language">English</span>
416                  <span class="caret"></span>
417                </a>
418                <ul class="dropdown-menu" role="menu">�  �    <li>�      <a href="/fr-FR/" title="Français" data-code="fr-FR">Français</a>�    </li>�    �    <li>�      <a href="/en-US/" title="English" data-code="en-US">English</a>�    </li>�    �</ul>
419              </li>
420            <li class="divider-vertical"></li>
421            
422            
423              
424              
425                  <li>
426                <a href="/en-US/SignIn?returnUrl=%2Fen-US%2F">
427                  Sign in
428                </a>
429              </li>
430                
431            
432          </ul>
433          
434        </div>
435      
436      <div class="navbar-right hidden-xs">
437        <div class="xrm-editable-html&#32;xrm-attribute" data-languageContext="English"><div class="xrm-attribute-value">
437<script async="" src="https://cse.google.com/cse.js?cx=018049573713581560840:yaxmkx1tr74"></script>
437<div class="gcse-search"></div>
438<style>
439  div.navbar-right {
440    //max-width: 600px !important;
441    float: right !important;
442    clear: both;
443  }
444  div#___gcse_0 {
445    max-width: 400px;
446  }
447</style></div></div>
448      </div>
449    </div>
450  
451  �����  �  �    �      <div class="">�        <div class="list-group weblinks">�          �        </div>�        �      </div>�    � �
452  
453  </div>
454</div>
455
456
457  
458  
459  
460  
461  
462  
463
464
465<script type="text/javascript">
466function setHeight() {
467    var windowHeight = window.innerHeight - 140;
468    var navbar = document.getElementById("navbar");
469    if (navbar) {
470        navbar.style.maxHeight = windowHeight + "px";
471    }
472}
473
474window.addEventListener('resize', function (event) {
475    setHeight();
476});
477window.addEventListener("load", (event) => {
478    var username = $("#hdnusername").val();
479    var useridentity = getUserIdentityFlag(username);
480    if (username != '' && username != null) {
481        if (useridentity == "AD") {
482            $("a[href*='ChangePassword']").remove();
483            $("li.divider").hide();
484        } else if (useridentity == "B2C") {
485            setb2Cchangepasswordurl(username)
486        } else if (useridentity == null) {
487            getUserIdentityUsingApi(username).then(response => {
488                var useridentityapi = JSON.parse(response).useridentity
489                    setUserIdentityFlag(username, useridentityapi);
490                if (useridentityapi == "AD") {
491                    $("a[href*='ChangePassword']").remove();
492                    $("li.divider").hide();
493                } else if (useridentityapi == "B2C") {
494                    setb2Cchangepasswordurl(username);
495                }
496            });
497        }
498    }
499    
500    $("a[title='Profile']").parent().hide();
501
502});
503function setb2Cchangepasswordurl(username) {
504    var clientid = 'e72b2f79-14ed-4734-9fc7-4bf23b8b9d3f';
505    var tenantname = 'skatecanadab2c';
506    var passwordchangepolicyid = 'b2c_1a_passwordchange';
507    var currentURL = $(location).attr('href');
508    var language = currentURL.contains('/fr-FR') ? 'fr-FR' : 'en-US';
509    var hostname = $('<a>').prop('href', currentURL).prop('hostname');
510    var url = 'https://' + tenantname + '.b2clogin.com/' + tenantname + '.onmicrosoft.com/oauth2/v2.0/authorize?p=' + passwordchangepolicyid + '&client_id=' + clientid + '&nonce=defaultNonce&redirect_uri=https%3A%2F%2F' + hostname + '%2F' + language + '&scope=openid&response_type=id_token&login_hint=' + username + '&ui_locales=' + language;
511    $("a[href*='ChangePassword']").attr("href", url);
512}
513
514</script>
514
515	
516
517	<!-- add anti-forgery token-->
518	<div id="antiforgerytoken" data-url="/_layout/tokenhtml"></div>
519
520	
521			<!-- Client Telemetry init if telemetry enabled-->
522			
522<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/client-telemetry.bundle-d490766e4f.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://content.powerapps.com/resource/powerappsportal/dist/client-telemetry.bundle-d490766e4f.js" type="text/javascript"></script>
522
523
524		
525	
526		<!-- Client Telemetry Wrapper init -->
527		
527<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/client-telemetry-wrapper.bundle-633e70f51b.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://content.powerapps.com/resource/powerappsportal/dist/client-telemetry-wrapper.bundle-633e70f51b.js" type="text/javascript"></script>
527
528
529		
529<script>
530			window.clientLogWrapper = new ClientLogWrapper();
531		</script>
531
532		
532<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/preform.moment_2_29_4.bundle-750b699ecd.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://content.powerapps.com/resource/powerappsportal/dist/preform.moment_2_29_4.bundle-750b699ecd.js" type="text/javascript"></script>
532
533
534		
535
536		
536<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/pcf-dependency.bundle-805a1661b7.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://content.powerapps.com/resource/powerappsportal/dist/pcf-dependency.bundle-805a1661b7.js" type="text/javascript"></script>
536
537
538							   
538<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/pcf.bundle-60440c37cb.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://content.powerapps.com/resource/powerappsportal/dist/pcf.bundle-60440c37cb.js" type="text/javascript"></script>
538
539
540							   
540<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/pcf-extended.bundle-b0e01b5622.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://content.powerapps.com/resource/powerappsportal/dist/pcf-extended.bundle-b0e01b5622.js" type="text/javascript"></script>
540
541
542						
543	<section class="page_section">
544  <div class="layer_up">&nbsp;</div>
545  <div class="container">
546    <div class="content-home">
547      <!--<h2 class="content-heading"><span class="xrm-editable-text&#32;xrm-attribute" data-languageContext="English"><span class="xrm-attribute-value">Skate Canada Membership Site</span></span></h2>-->
548      <div class="container">
549        <img src="/parachute-image" style="width:100%;" />
550      </div>
551      <div class="page-copy">� <div class="xrm-editable-html&#32;xrm-attribute"><div class="xrm-attribute-value"><p></p>
552
553<h2 class="content-header" style="color:#e4002b; font-weight:bold; font-size:28px!important;">Welcome!</h2>
554
555<p><span>Thank you for visiting the Skate Canada Membership Website. This site houses the information and resources needed to make the most out of your membership with Skate Canada and to assist all our community members in experiencing the joy of skating.</span>
556</p>
557
558<div style="display:flex; justify-content: center; align-items: center; margin-top:40px;">
559  <div style="border-right:2px solid #e4002b; width:250px; text-align:center; padding:30px; position:relative;">
560    <a href="clubschoolapplication-en.pdf" target="_blank"><span style="position:absolute; width:100%; height:100%; top: 0; left: 0; z-index: 1;"></span></a>
561    <img src="icon_apply.png"><br>
562      <h2 class="content-header" style="color:#e4002b; font-weight:bold; font-size:28px!important;">Apply</h2>
563      Become a Club<br>or Skating School.
564  </div>
565  <div style="width:250px; text-align:center; padding:30px; position:relative;">
566    <a href="https://info.skatecanada.ca/" target="_blank"><span style="position:absolute; width:100%; height:100%; top: 0; left: 0; z-index: 1;"></span></a>
567    <img src="icon_infocentre.png"><br>
568      <h2 class="content-header" style="color:#e4002b; font-weight:bold; font-size:28px!important;">Info Centre</h2>
569      Rules, policies, procedures, and guides.
570  </div>
571  <div style="border-left:2px solid #e4002b; width:250px; text-align:center; padding:30px; position:relative;">
572    <a href="https://noticeboard.skatecanada.ca/" target="_blank"><span style="position:absolute; width:100%; height:100%; top: 0; left: 0; z-index: 1;"></span></a>
573    <img src="icon_board.png"><br>
574      <h2 class="content-header" style="color:#e4002b; font-weight:bold; font-size:28px!important;">News</h2>
575      The latest updates<br>from Skate Canada.
576  </div>
577</div>
578
579<p></p>
580
581<p style="text-align:center;"><strong>Quick Links:</strong><br>
582  <a href="https://members.skatecanada.ca/en-US/coach-check/">Verify a Coach's Standing</a><br>
583  <a href="suspended-en.pdf" target="_blank">Individuals suspended/expelled from Skate Canada</a><br>
584  <a href="/national-ranking">National Ranking</a>
585</p>
586
587<div style="width:100%; background-image:url('background_map.jpg'); height:250px; margin-top:40px; display:flex; align-items:center; justify-content:center; padding:30px; flex-wrap: wrap;">
588  <div style="flex-basis:100%; margin: 0 auto; display:flex; justify-content:center;"><img src="icon_pin.png" style="height:50px;"></div>
589  <div style="flex-basis:100%; margin: 0 auto; display:flex; justify-content:center;"><h2 style="color:#FFF; font-weight:bold;">Skate With Us</h2></div>
590  <div style="flex-basis:100%; margin: 0 auto; display:flex; justify-content:center;"><a href="https://skatecanada.ca/learn-to-skate/find-a-club/" target="_blank" style="display:flex; justify-content: center; align-items: center; width:150px; height:40px; border-radius:20px; background-color: #5b69d1; color: #FFFFFF; font-weight:bold;">Find a Club &gt;</a></div>
591</div></div></div>�</div>
592    </div>
593  </div>
594</section>
595
596
597	
597<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/pcf-loader.bundle-f4a0e619b8.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://content.powerapps.com/resource/powerappsportal/dist/pcf-loader.bundle-f4a0e619b8.js" type="text/javascript"></script>
597
598
599		
600		
601	
602
603	
604		<div id="pp-native-controls-react-root"></div>
605<script>window._nativeControlConfig = { "publicPath":"https://content.powerapps.com/resource/powerappsportal/controls", "versions": {"pcf_loader":"0.0.51","pcf_controls":"3.24.8","mf_shared":"0.2.32","host":"0.15.1","data_grid":"1.12.3","controls_fluent_v9":"0.0.54"}, "pvaEmbedded": { "defaultWidgetMode": "normal", "useCustomTypingIndicator": false, "skipSingleBotWelcomeScreen": false } }</script>
vendor: 1 bytes, line 605
605
606<script defer="defer" src="https://content.powerapps.com/resource/powerappsportal/controls/host/main.3ee2491f78.chunk.js"></script>
606
607		
608	
609	
610		<section id="gethelp" class="page_section section-diagonal-right color-inverse home-section hidden-print">
611  <div class="container">
612    <div class="row">
613    </div>
614  </div>
615</section>
616
617<footer role="contentinfo">
618  <!--<div class="footer-top hidden-print">
619    <div class="container">
620      <div class="row">
621        <div class="col-md-6 col-sm-12 col-xs-12 text-left">
622          <div class="xrm-editable-html&#32;xrm-attribute&#32;no-value"><div class="xrm-attribute-value"></div></div>
623        </div>
624        <div class="col-md-6 col-sm-12 col-xs-12 text-right">
625          <ul class="list-social-links">
626            <li><a href="#"><span class="sprite sprite-facebook_icon"></span></a></li>
627            <li><a href="#"><span class="sprite sprite-twitter_icon"></span></a></li>
628            <li><a href="#"><span class="sprite sprite-email_icon"></span></a></li>
629          </ul>
630        </div>
631      </div>
632    </div>
633  </div>-->
634
635  <div class="footer-bottom hidden-print">
636    <div class="container">
637      <div class="row">
638        <div class="col-md-4 col-sm-12 col-xs-12 text-left">
639          <div class="xrm-editable-html&#32;xrm-attribute" data-languageContext="English"><div class="xrm-attribute-value"><div class="col-sm-3"><a href="http://skatecanada.ca/our-privacy-commitment/">Privacy Code</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/refund-policy/">Refund Policy</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="#" onclick="window.open('https://skatecanada.wufoo.eu/forms/zfrjwxs0v5w9og/def/field104=' + encodeURI(window.location.href), '_blank');">Feedback</a>
640</div>
641<div class="col-sm-3">&nbsp;</div>
642<div class="col-sm-6">
643  <p class="pull-right">Copyright © 2026 Skate Canada | All Rights Reserved</p>
644</div>
645<script type="text/javascript">
646  $(document).ready(function() { // if not logged in
647    var userobj = "";
648    if (userobj != "") { // user is logged in
649      // add change password
650      $('ul.weblinks li a[title="Profile"]').closest('li').after('<li class=""><a href="/Account/Manage/ChangePassword" title="Change Password" aria-selected="false">Change Password</a></li>');
651    }
652    //$('a[href*="SignIn"]').each(function() {
653    //  $(this).attr('href', '/SignIn');
654    //});
655    $('a[href*="LogOff"]').each(function() {
656      $(this).attr('href', '/Account/Login/LogOff');
657    });
658
659    // javascript to fix display of dates across timezones
660    $("input.datetime").each(function() {
661      var a = moment($(this).val());
662      if (a != "Invalid Date") {
663        //$(this).val(a.utc().format("M/D/YYYY"));
664        $(this).siblings(".datetimepicker").find("input").val(a.utc().format("M/D/YYYY"));
665      }
666    });
667
668    $(".entity-grid").on("loaded", function() {
669      $("time").each(function() {
670        var tstamp = $(this).closest('td').attr('data-value');
671        var regExp = /\(([^)]+)\)/;
672        var matches = regExp.exec(tstamp);
673        var time = parseInt(matches[1]);
674        var a = moment(time);
675        if (a != "Invalid Date") {
676          $(this).text(a.utc().format("M/D/YYYY"));
677        }
678      });
679    });
680  });
681</script>
681
682<div id="portal-policies" style="display:none;"><span></span> 
683  
683<script type="text/javascript">
684    /*var userobj = "";
685var pathname = window.location.pathname;
686var cookieContent = getCookie('pacc');
687if(pathname != '/policy-acceptance/') {
688  if(userobj != "") { // user is logged in
689 if(cookieContent == "") {
690  // check expiry date
691  //var mdate = $("#portal-policies span:first-child").text();
692  var mdate = $("#portal-policies span").text();
693  var doredir = true;
694  if(mdate.length) {
695   var m = moment(mdate).utc();
696   var n = moment().utc();
697   var isvalid = m.isValid();
698   var isafter = m.isAfter(n);
699   if(isvalid && !isafter)
700    doredir = true;
701   else if(!isvalid)
702    doredir = true;
703   else
704    doredir = false;
705  }
706  if(doredir)
707   window.location.href = "/policy-acceptance/";
708 }
709  }
710}
711
712function getCookie(cname) {
713    var name = cname + "=";
714    var decodedCookie = decodeURIComponent(document.cookie);
715    var ca = decodedCookie.split(';');
716    for(var i = 0; i <ca.length; i++) {
717        var c = ca[i];
718        while (c.charAt(0) == ' ') {
719            c = c.substring(1);
720        }
721        if (c.indexOf(name) == 0) {
722            return c.substring(name.length, c.length);
723        }
724    }
725    return "";
726}*/
727  </script>
727
728</div></div></div>
729        </div>
730        
731        
732          <div class="col-md-8 col-sm-12 col-xs-12 text-left " data-weblinks-maxdepth="2">
733            <ul class="row list-unstyled">
734              
735            </ul>
736            
737          </div>
738        
739    </div>
740  </div>
741</footer>
742	
743
744	
744<script type="text/javascript">
745
746		function trackCopilotCustomUsage(botSchema) {
747			const request = {
748				botSchemaName: botSchema
749			}
750			var json = JSON.stringify(request);
751			shell.ajaxSafePost({
752				type: "POST",
753				contentType: "application/json",
754				url: "/_services/copilot/TrackUsage",
755				data: json
756			}).done(function () {
757			}).fail(function (jqXhr) {
758			});
759		}
760
761		function findAndLogCustomCopilotUsage() {
762			const pageSource = document.documentElement.outerHTML;
763			const customPvaBotWebchatRegex = /api\.(preprod\.|test\.)?powerplatform\.(com|us|cn|appsplatform\.us)\/powervirtualagents\/botsbyschema\/([^/]+)\/directline\/token/;
764			const customPvaBotIframeRegex = /powerva\.microsoft\.com\/environments\/([0-9a-fA-F\-]+)\/bots\/([^/]+)\/webchat/;
765			const omniChannelRegex = /livechatwidget\/scripts\/LiveChatBootstrapper\.js/;
766
767			const matchPvaBotWebchat = pageSource.match(customPvaBotWebchatRegex);
768			if (matchPvaBotWebchat && matchPvaBotWebchat[3]) {
769				trackCopilotCustomUsage(matchPvaBotWebchat[3]);
770			}
771
772			const matchPvaBotIframe = pageSource.match(customPvaBotIframeRegex);
773			if (matchPvaBotIframe && matchPvaBotIframe[2]) {
774				trackCopilotCustomUsage(matchPvaBotIframe[2]);
775			}
776
777			const matchOmniChannel = pageSource.match(omniChannelRegex);
778			if (matchOmniChannel && matchOmniChannel[0]) {
779				trackCopilotCustomUsage("omnichannelWidget");
780			}
781		}
782
783		window.addEventListener("load", function () {
784			findAndLogCustomCopilotUsage();
785		});
786	</script>
786
787
788		
789			
790			
791			
792			
793		
794	
794<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/bootstrap.bundle-105a4995b8.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://content.powerapps.com/resource/powerappsportal/dist/bootstrap.bundle-105a4995b8.js" type="text/javascript"></script>
794
795
796	
796<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/postpreform.bundle-4687dda8df.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://content.powerapps.com/resource/powerappsportal/dist/postpreform.bundle-4687dda8df.js" type="text/javascript"></script>
796
797
798	
798<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/app.bundle-1e948af604.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://content.powerapps.com/resource/powerappsportal/dist/app.bundle-1e948af604.js" type="text/javascript"></script>
798
799
800	
800<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/default-1033.moment_2_29_4.bundle-eda4e638fd.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://content.powerapps.com/resource/powerappsportal/dist/default-1033.moment_2_29_4.bundle-eda4e638fd.js" type="text/javascript"></script>
800
801
802	
803
804	
805	
805<script type="text/javascript">$(document).ready(function () {
806    var username = '';
807    getUserIdentity(username);
808
809});
810function getUserIdentity(username) {
811    var useridentityflg = getUserIdentityFlag(username);
812    if (useridentityflg != null) {
813        redirectToUserMigrationPage(useridentityflg);
814    } else {
815        getUserIdentityUsingApi(username).then(response => {
816            var useridentityapi = JSON.parse(response).useridentity
817                redirectToUserMigrationPage(useridentityapi);
818        });
819    }
820}
821function redirectToUserMigrationPage(useridentity) {
822    var forceexternalidentity = $("#forceexternalidentity").val();
823    if (forceexternalidentity == 'true' && useridentity == "Local") {
824        var useremail = '';
825        var isscemployee = isEmployee(useremail, $('#maildomain').val());
826        if (isscemployee)
827            window.location.href = '/user-login-migration-staff/';
828        else
829            window.location.href = '/user-login-migration/';
830    }
831}</script>
831
832	
832<script>
833  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
834  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
835  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
836  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
837
838  //console.log("User id found: " + window["Microsoft"].Dynamic365.Portal.User.contactId);
839  if (window["Microsoft"].Dynamic365.Portal.User.contactId) {
840    //console.log("Capturing User-ID to GA on create");
841    ga('create', 'UA-48283714-5', 'auto', {
842      userId: window["Microsoft"].Dynamic365.Portal.User.contactId
843    });
844  } else {
845    //console.log("Not Capturing to GA, but Creating PV Record, 5 second UID capture delay");
846    ga('create', 'UA-48283714-5', 'auto');
847    setTimeout(function() {
848      ga('set', 'userId', window["Microsoft"].Dynamic365.Portal.User.contactId);
849    },5000);
850  }
851  ga('send', 'pageview');
852
853</script>
853
854<!-- Start of skatecanada Zendesk Widget script -->
855<script>/*<![CDATA[*/window.zEmbed||function(e,t){var n,o,d,i,s,a=[],r=document.createElement("iframe");window.zEmbed=function(){a.push(arguments)},window.zE=window.zE||window.zEmbed,r.src="javascript:false",r.title="",r.role="presentation",(r.frameElement||r).style.cssText="display: none",d=document.getElementsByTagName("script"),d=d[d.length-1],d.parentNode.insertBefore(r,d),i=r.contentWindow,s=i.document;try{o=s}catch(e){n=document.domain,r.src='javascript:var d=document.open();d.domain="'+n+'";void(0);',o=s}o.open()._l=function(){var o=this.createElement("script");n&&(this.domain=n),o.id="js-iframe-async",o.src=e,this.t=+new Date,this.zendeskHost=t,this.zEQueue=a,this.body.appendChild(o)},o.write('<body onload="document._l();">'),o.close()}("https://assets.zendesk.com/embeddable_framework/main.js","skatecanada.zendesk.com");
856/*]]>*/</script>
856
857<!-- End of skatecanada Zendesk Widget script -->
858
859<script type="text/javascript" src="https://lamp.skatecanada.ca/jq-md5/jquery.md5.min.js" />
860	
860<script>
861        //this event will update the title of the page based on active breadcrumb
862        $('.breadcrumb').ready(function () {
863            if ($('.breadcrumb').is(':visible')) {
864                document.querySelector('title').innerHTML = ($('.breadcrumb > li.active').text() + "· Skate Canada Membership Site");
865            }
866        });
867
868        function GoToNewEditor() {
869            var editCmsUrlSegment = "EditInCms";
870            var currentUrl = window.location.href;
871            if (currentUrl.indexOf('?') > -1) {
872                var urlSegments = currentUrl.split("?");
873                window.location.href = window.location.origin + '/' + editCmsUrlSegment + window.location.pathname + '?' + urlSegments[1];
874            }
875            else {
876                window.location.href = window.location.origin + '/' + editCmsUrlSegment + window.location.pathname;
877            }
878        }
879    </script>
879
880	
881		
882		
883	
884		
885				
885<script>
886					if ('serviceWorker' in navigator) {
887						navigator.serviceWorker.getRegistrations().then(function (registrations) {
888							for (let registration of registrations) {
889								registration.unregister();
890							}
891						}).catch(function (err) {
892							console.log('Service Worker unregister action failed: ', err);
893						});
894					}
895				</script>
895
896			
897	
898		
899	<!--Start Show Session Expire Warning Popup here -->
900    
901		
902<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"4258cbfb9cb04d36936d5c943d10e93e","r":1,"spa":2}' crossorigin="anonymous"></script>
902
903</body>
904</html>
905<!-- Generated at 10/2/2026 4:04:42 AM -->
906<!-- Page OK -->

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.