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, 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 - PV Cycle Portal 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="/bootstrap.min.css?1603464126000" rel="stylesheet" /> 42 43 <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" /> 44 45 <link href="https://content.powerapps.com/resource/powerappsportal/dist/preform.bundle-b72a6ea21d.css" onerror="javascript: var target = event.target; var link = document.createElement('link'); link.crossOrigin = target.crossOrigin; link.href = '/dist/preform.bundle-b72a6ea21d.css'; link.rel = 'stylesheet'; target.insertAdjacentElement('afterend',link);" rel="stylesheet" /> 46 47 48 49 <link href="https://content.powerapps.com/resource/powerappsportal/dist/privatemode.bundle-049b12b66e.css" onerror="javascript: var target = event.target; var link = document.createElement('link'); link.crossOrigin = target.crossOrigin; link.href = '/dist/privatemode.bundle-049b12b66e.css'; link.rel = 'stylesheet'; target.insertAdjacentElement('afterend',link);" rel="stylesheet" /> 50 51 52 53 54 55 56 57 58 <link rel="stylesheet" href="/Areas/Account/css/account.css"> 59 60 61 <link href="/theme.css?1643195534000" rel="stylesheet" /> 62<link href="/jquery.dataTables.min.css?1601591641000" rel="stylesheet" /> 63<link href="/pvcycletheme.css?1611909222000" rel="stylesheet" /> 64 65 66 67 68 69 70 71 72 <link href="https://content.powerapps.com/resource/powerappsportal/dist/pwa-style.bundle-55718a4c0d.css" onerror="javascript: var target = event.target; var link = document.createElement('link'); link.crossOrigin = target.crossOrigin; link.href = '/dist/pwa-style.bundle-55718a4c0d.css'; link.rel = 'stylesheet'; target.insertAdjacentElement('afterend',link);" rel="stylesheet" /> 73 74 </head> 75<body data-sitemap-state="/" 76 data-dateformat="dd/MM/yyyy" 77 data-timeformat="h:mm tt" 78 data-datetimeformat="dd/MM/yyyy HH:mm" 79 data-app-path="/" 80 data-ckeditor-basepath="/js/BaseHtmlContentDesigner/Libs/msdyncrm_/libs/ckeditor/" 81 data-case-deflection-url="/_services/search/d78574f9-20c3-4dcc-8d8d-85cf5b7ac141"> 82 83 84 85 <link href="https://content.powerapps.com/resource/powerappsportal/dist/pcf-style.bundle-373a0f4982.css" onerror="javascript: var target = event.target; var link = document.createElement('link'); link.crossOrigin = target.crossOrigin; link.href = '/dist/pcf-style.bundle-373a0f4982.css'; link.rel = 'stylesheet'; target.insertAdjacentElement('afterend',link);" rel="stylesheet" /> 86 87 88 89 90 91 <div id="offlineNotificationBar" class="displayNone"> 92 <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" /> 93 <div id="message">You’re offline. This is a read only version of the page.</div> 94 <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> 95 </div> 96 97
98 99
99<script type="text/javascript"> 100 window.DisableCkEditor = window.DisableCkEditor || {}; 101 102 DisableCkEditor.Value = 'False'; 103 </script>
103 104 105
105<script type="text/javascript"> 106 var enableOmniChannelWidgetWithSiteCopilot = 'False'; 107 if (enableOmniChannelWidgetWithSiteCopilot === "True" || enableOmniChannelWidgetWithSiteCopilot === "true") { 108 const authUrl = window.location.origin + "/_services/auth/portalusertoken"; 109 const fetchWithRetries = async (url, options, retries) => { 110 try { 111 const authResponse = await fetch(url, options); 112 const token = await authResponse.text(); 113 sessionStorage['c2Token'] = token; 114 } catch (err) { 115 if (retries === 1) throw err; 116 return await fetchWithRetries(url, options, retries - 1); 117 } 118 }; 119 fetchWithRetries(authUrl, { method: "POST" }, 4); 120 121 // Enable/disable Omnichannel session refresh on auth state change 122 // When enabled, closeChat() is called when user logs in/out to start a fresh session 123 var enableOmniChannelSessionRefreshSetting = 'True'; 124 window.enableOmniChannelSessionRefresh = enableOmniChannelSessionRefreshSetting === 'True' || enableOmniChannelSessionRefreshSetting === 'true'; 125 } 126 </script>
126 127 128
128<script type="text/javascript"> 129 var isPvaBotAuthenticated = sessionStorage['isPvaBotAuthenticated']; 130 var isPortalUserLoggedIn = 'False'; 131 132 if ((isPvaBotAuthenticated != null || isPvaBotAuthenticated != undefined) && isPvaBotAuthenticated != isPortalUserLoggedIn) { 133 sessionStorage['triggerPvaBotSignOut'] = true; 134 sessionStorage.removeItem('c2Token'); 135 sessionStorage.removeItem('directLinetoken'); 136 sessionStorage.removeItem('conversation_Id'); 137 138 sessionStorage.removeItem('bot_c2Token'); 139 sessionStorage.removeItem('botdirectLinetoken'); 140 sessionStorage.removeItem('botconversation_Id'); 141 } 142 sessionStorage['isPvaBotAuthenticated'] = isPortalUserLoggedIn; 143 </script>
143 144 145
145<script type="text/javascript"> 146 window["CSPSettings"] = window["CSPSettings"] || {}; 147 window["CSPSettings"].nonce = ''; 148 window["FabricConfig"] = window["FabricConfig"] || {}; 149 window["FabricConfig"].mergeStyles = window["FabricConfig"].mergeStyles || {}; 150 window["FabricConfig"].mergeStyles.cspSettings = window["CSPSettings"]; 151 window["Microsoft"] = window["Microsoft"] || {}; 152 window["Microsoft"].Dynamic365 = { 153 Portal: { 154 155 User: { 156 userName: '', 157 firstName: '', 158 lastName: '', 159 email: '', 160 contactId: '', 161 userRoles: [], 162 }, 163 164 type: 'StarterPortal', 165 id: '4a2a7e39-3ec4-4dd9-9882-dec9d51dcc8b', 166 geo: 'EUR', 167 tenant: 'd1cbbf95-9496-417d-8671-63f93e36af31', 168 correlationId: '99fe3ef2-2f3b-4983-b7e0-383787d0491a', 169 orgEnvironmentId: '14632e7b-69fa-466b-b7d6-d31afe8c07aa', 170 orgId: '1355c502-6c5d-4eba-ab72-fe96ec419a63', 171 portalProductionOrTrialType: 'Production', 172 isTelemetryEnabled: 'True', 173 InstrumentationSettings: { 174 instrumentationKey: '197418c5cb8c4426b201f9db2e87b914-87887378-2790-49b0-9295-51f43b6204b1-7172', 175 collectorEndpoint: 'https://eu-mobile.events.data.microsoft.com/OneCollector/1.0/' 176 }, 177 timerProfileForBatching: 'NEAR_REAL_TIME', 178 activeLanguages: ["en-US","nl-NL","it-IT","de-DE","fr-FR"], 179 isClientApiEnabled: 'True', 180 isSpaSite: 'False' 181 } 182 }; 183 184 window["Microsoft"].PowerPages = window["Microsoft"].PowerPages || {}; 185 window["Microsoft"].PowerPages.onPagesClientApiReady = (callback) => { 186 return new Promise((resolve, reject) => { 187 let isComplete = false; 188 let timeoutId; 189 const timeoutInterval = 10000; 190 191 function handleReady() { 192 if (!isComplete && window.$pages) { 193 isComplete = true; 194 clearTimeout(timeoutId); 195 try { 196 if (typeof callback === "function") { 197 callback(window.$pages); 198 } 199 } catch (e) { 200 console.error("onPagesClientApiReady callback error:", e); 201 } 202 resolve(window.$pages); // should we reject if callback throws an error 203 } 204 } 205 206 if (window.$pages) { 207 handleReady(); 208 return; 209 } 210 211 function sdkListener() { 212 handleReady(); 213 window.removeEventListener('pagesSDKInitialized', sdkListener); 214 } 215 216 window.addEventListener('pagesSDKInitialized', sdkListener); 217 218 timeoutId = setTimeout(() => { 219 if (!isComplete) { 220 window.removeEventListener('pagesSDKInitialized', sdkListener); 221 if (window.$pages) { 222 handleReady(); 223 } else { 224 isComplete = true; 225 reject(new Error('window.$pages not available.')); 226 } 227 } 228 }, timeoutInterval); 229 }); 230 }; 231 232 // Deprecated alias: Microsoft.Dynamic365.Portal.onPagesClientApiReady. 233 // Remove once telemetry shows no callers remain. 234 (function () { 235 var _impl = window["Microsoft"].PowerPages.onPagesClientApiReady; 236 var _logged = false; 237 238 window["Microsoft"].Dynamic365.Portal.onPagesClientApiReady = function (callback) { 239 if (!_logged) { 240 _logged = true; 241 try { 242 if (window.clientLogWrapper && typeof window.clientLogWrapper.traceWarning === "function") { 243 window.clientLogWrapper.traceWarning( 244 "Microsoft.Dynamic365.Portal.onPagesClientApiReady invoked (deprecated)", 245 "DeprecatedApi", 246 "ClientApiReady", 247 "Invoke", 248 "DeprecationTracker" 249 ); 250 } 251 if (typeof console !== "undefined" && console.warn) { 252 console.warn( 253 "[DEPRECATED] Microsoft.Dynamic365.Portal.onPagesClientApiReady is deprecated " + 254 "and will be removed in a future release. Use Microsoft.PowerPages.onPagesClientApiReady instead." 255 ); 256 } 257 } catch (_) { /* never break the caller */ } 258 } 259 260 return _impl(callback); 261 }; 262 })(); 263 264 // Mark request not cacheable if Dynamics365PortalAnalytics cookie is being refreshed by the server or if the cookie in request header is invali
264d 265 266 267 // For client side telemetry intializing Dynamics365PortalAnalytics cookie object 268 269 window["Microsoft"].Dynamic365.Portal.dynamics365PortalAnalytics = 'FVmMuUHomFxG9of_Nfr_zo2y1siKz2rK4sKGImJZBtrF4baGQ0K24Fedsm0B46HZwq__2SZxBw6n6WGbTCPIOjPg-peDyC3Y-ficz7Ys2gO2fWJ3XyrBwGbLz5ysAl4huCDsj1AymOmvEqCI2gn07w2'; // CodeQL [SM00430] False Positive: only alphanumeric chars allowed, for non-alphanumeric char it will return INVALID_CHARACTERS_IN_COOKIE 270 271 272 </script>
272 273 274
274<script type="text/javascript"> 275 276 277 </script>
277 278 279 280 281 282 283 284 285<div class="navbar navbar-inverse navbar-static-top" role="navigation"> 286 <div class="container"> 287 <div class="navbar-header"> 288 <!-- <div class="visible-xs-block"> 289 <div class="xrm-editable-html xrm-attribute" data-languageContext="English"><div class="xrm-attribute-value"><div><a class="navbar-brand" href="~/" tabindex="-1" title="Custom Portal">Custom Portal</a></div></div></div> 290 </div>--> 291 292 <!--<div class="visible-sm-block visible-md-block visible-lg-block navbar-brand"> --> 293 <!-- <div class="xrm-editable-html xrm-attribute" data-languageContext="English"><div class="xrm-attribute-value"><div class="spanBrand"> 294 <hgroup id="branding"> 295 <h1 id="site-title"><a href="https://portal.pvcycle.org" title="PV Cycle BE" rel="home">PV Cycle BE</a></h1> 296 </hgroup> 297</div></div></div> --> 298 <!-- </div> --> 299 300 <button type="button" class="navbar-toggle collapsed" title="Toggle navigation" data-toggle="collapse" data-target="#navbar" aria-expanded="false" onclick="setHeight();"> 301 <span class="sr-only">Toggle navigation</span> 302 <span class="icon-bar"></span> 303 <span class="icon-bar"></span> 304 <span class="icon-bar"></span> 305 </button> 306 </div> 307 <div id="navbar" class="navbar-collapse collapse"> 308 309 310 311 312 <div class="navbar-right menu-bar " data-weblinks-maxdepth="2"> 313 <ul class="nav navbar-nav weblinks" role="menubar"> 314 315 316 317 318 319 320 <li role="none" class="weblink "> 321 <a role="menuitem" 322 aria-label="Contact Us" 323 href="/en-US/contactfaq/contact-us/" 324 title="Contact Us"> 325 Contact Us 326 </a> 327 328 329 </li> 330 331 332 333 334 <li class="divider-vertical" aria-hidden="true"></li> 335 <!-- LANGUAGES DROPDOWN --> 336 337 338 <li class="dropdown" role="none"> 339 <a class="dropdown-toggle" href="#" data-toggle="dropdown" role="menuitem" aria-label="English" aria-haspopup="true" aria-expanded="false" title="English"> 340 <span class="drop_language">English</span> 341 <span class="caret"></span> 342 </a> 343 <ul class="dropdown-menu" role="menu">� � <li>� <a href="/en-US/SignIn" title="English" data-code="en-US">English</a>� </li>� � <li>� <a href="/nl-NL/SignIn" title="Nederlands" data-code="nl-NL">Nederlands</a>� </li>� � <li>� <a href="/it-IT/SignIn" title="Italiano" data-code="it-IT">Italiano</a>� </li>� � <li>� <a href="/de-DE/SignIn" title="Deutsch" data-code="de-DE">Deutsch</a>� </li>� � <li>� <a href="/fr-FR/SignIn" title="Français" data-code="fr-FR">Français</a>� </li>� �</ul> 344 </li> 345 <li class="divider-vertical" aria-hidden="true"></li> 346 347 348 349 350 <li role="none"> 351 <!-- 352 === ORIGINAL SIGN IN BUTTON === 353 <a role="menuitem" aria-label="Sign in" href="/en-US/SignIn?returnUrl=%2Fen-US%2FSignIn"> 354 Sign in 355 </a>--> 356 357 <!-- 358 === Custom button - Home url sitemarker (membershipportal.powerappsportals.com) 359 --> 360 <a role="menuitem" aria-label="Sign in" href="/SignIn?ReturnUrl=/en-US/"> 361 Sign in 362 </a> 363 </li> 364 365 </ul> 366 367 </div> 368 369 <div class="navbar-right hidden-xs"> 370 <div class="xrm-editable-html xrm-attribute no-value" data-languageContext="English"><div class="xrm-attribute-value"></div></div> 371 </div> 372 </div> 373 </div> 374</div> 375 376<section class="page_section section-landing" style="height: 75px;"> 377<!-- --> 378 <div class="container"> 379 <div class="row"> 380 <div class="col-sm-12 hidden-xs" style="margin-bottom: -30px"> 381 <div class="xrm-editable-html xrm-attribute" data-languageContext="English"><div class="xrm-attribute-value"><div class="spanBrand"> 382 <hgroup id="branding"> 383 <h1 id="site-title"><a href="https://portal.pvcycle.org" title="PV CYCLE PORTAL" rel="home">PV CYCLE PORTAL</a></h1> 384 </hgroup> 385</div></div></div> 386 </div> 387 <div class="col-md-12" style="display:none"> 388 <h1 class="section-landing-heading"> <!--<span class="xrm-editable-text xrm-attribute" data-languageContext="English"><span class="xrm-attribute-value">My Dashboard</span></span>--></h1> 389 <h2 class="section-landing-sub-heading"> <!--<span class="xrm-editable-text xrm-attribute" data-languageContext="English"><span class="xrm-attribute-value">Custom Portal</span></span>--></h2> 390 Template "Search" not found. 391 </div> 392 </div> 393 </div> 394 <!-- <div class="layer_down"> </div> --> 395</section> 396 397 398 399 400 401 402 403 404
405<script type="text/javascript"> 406 window.onload = function() { 407 if(window.navigator.appName == "Microsoft Internet Explorer" || window.navigator.userAgent.indexOf("Trident") > 0){ 408 var searchElement = document.getElementById("search"); 409 if (searchElement != null) searchElement.setAttribute("href", ""); 410 } 411 }; 412 413 function setHeight(){ 414 var windowHeight = window.innerHeight - 140; 415 var navbar = document.getElementById("navbar"); 416 if (navbar) { 417 navbar.style.maxHeight = windowHeight + "px"; 418 } 419 } 420 421 window.addEventListener('resize', function (event) { 422 setHeight(); 423 }); 424</script>
424 425 426 427 <!-- add anti-forgery token--> 428 <div id="antiforgerytoken" data-url="/_layout/tokenhtml"></div> 429 430 431 <!-- Client Telemetry init if telemetry enabled--> 432
432<script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/client-telemetry.bundle-d490766e4f.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/client-telemetry.bundle-d490766e4f.js" type="text/javascript"></script>
432 433 434 435 436 <!-- Client Telemetry Wrapper init --> 437
437<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>
437 438 439
439<script> 440 window.clientLogWrapper = new ClientLogWrapper(); 441 </script>
441 442
442<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-750b699ecd.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/preform.moment_2_29_4.bundle-750b699ecd.js" type="text/javascript"></script>
442 443 444 445 446
446<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>
446 447 448
448<script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/pcf.bundle-60440c37cb.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/pcf.bundle-60440c37cb.js" type="text/javascript"></script>
448 449 450
450<script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/pcf-extended.bundle-b0e01b5622.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/pcf-extended.bundle-b0e01b5622.js" type="text/javascript"></script>
450 451 452 453 454 <div id="content-container" class="container wrapper-body" role="main"> 455 <div id="content"> 456 457 458 459 <ul class="nav nav-tabs nav-account" role="tablist" onkeydown="navigation(event)"> 460 <li role="none" class="active"><a role="tab" aria-selected="True" href="javascript:void(0)" aria-label="Sign in" title="Sign in"><span class="fa fa-sign-in" aria-hidden="true"></span> Sign in</a></li> 461 462 <li role="none" class=""><a role="tab" aria-selected="False" href="/en-US/Register" aria-label="Redeem invitation" title="Redeem invitation">Redeem invitation</a></li> 463 464 </ul> 465
466<script type="text/javascript"> 467 468 const keyCodes = { 469 END: 35, 470 HOME: 36, 471 LEFT: 37, 472 RIGHT: 39, 473 SPACE: 32 474 }; 475 476 $(document).ready(function () { 477 //make the tabindex='0' for active tab and -1 for others 478 $(".nav.nav-tabs.nav-account > li > a").attr("tabindex", "-1"); 479 $(".nav.nav-tabs.nav-account > li > a").attr("aria-selected", "false"); 480 $(".nav.nav-tabs.nav-account > li.active > a").attr("tabindex", "0"); 481 $(".nav.nav-tabs.nav-account > li.active > a").trigger("focus"); 482 $(".nav.nav-tabs.nav-account > li.active > a").attr("aria-selected", "true"); 483 }); 484 485 function navigation(e) 486 { 487 //change tabindex dynamically for all the tabs on key press of left-right navigation keys or home/end keys 488 var tabs = $(".nav.nav-tabs.nav-account > li > a"); 489 if (e.keyCode === keyCodes.END || e.keyCode === keyCodes.HOME || e.keyCode === keyCodes.LEFT || e.keyCode === keyCodes.RIGHT) { 490 var currentTab = $(document.activeElement); 491 for (index = 0; index < tabs.length; index++) { 492 if ($(tabs[index]).text() === currentTab.text()) { 493 e.keyCode === keyCodes.LEFT || e.keyCode === keyCodes.END ? (index == 0 || e.keyCode === keyCodes.END ? $(tabs[tabs.length - 1]).trigger("focus") : 494 $(tabs[index - 1]).trigger("focus")) : (index == (tabs.length - 1) || e.keyCode === keyCodes.HOME ? $(tabs[0]).focus() : $(tabs[index + 1]).trigger("focus")); 495 } 496 } 497 } 498 //open tab on click of SPACE key 499 if (e.keyCode == keyCodes.SPACE) { 500 e.preventDefault(); 501 $(document.activeElement)[0].click(); 502 tabs.attr("tabindex", "-1").attr("aria-selected", "false"); 503 } 504 } 505</script>
505 506 507 508 <div class="page-content" id="mainContent"> 509 510 <div class="xrm-editable-html xrm-attribute page-copy" data-languageContext="English"><div class="xrm-attribute-value">
510<script type="text/javascript"> 511 512$(document).ready(function () { 513 514//$signinButton = $(".login-heading-section"); 515//$signinButton.parent().append("<div class='form-group' style='padding-top: 10px'><div class='col-sm-offset-4 col-sm-8'>Not a member yet? Click <a href='https://portal.pvcycle.org/en-US/contactfaq/contact-us/' style='text-decoration: underline'>here</a></div></div>"); 516//$signinButton.parent().append("<div class='form-group' style='padding-top: 10px'><div class='col-sm-offset-4 col-sm-8'>Not a member yet? Click <a href='https://portal.pvcycle.org/RegisterMember' style='text-decoration: underline'>here</a></div></div>"); 517//$signinButton.parent().append("<div class='form-group' style='padding-top: 10px'><div class='col-sm-offset-4 col-sm-8'>To verify your membership certificate, Click <a href='https://portal.pvcycle.org/VerifyMemberCertificate' style='text-decoration: underline'>here</a></div></div>"); 518 519var introtext = "Dear customer,"; 520introtext += "</br></br>"; 521introtext += "Welcome to PV CYCLE Membership Portal, where you can submit membership application and manage all your membership-related tasks."; 522introtext += "</br></br>"; 523introtext += "<b>Do you already have an account?</b> Just type in your user name and password and sign in."; 524introtext += "</br></br>"; 525introtext += "<b>Have your forgotten your user name and/or password?</b> Please click <a href='../en-US/Account/Login/ForgotPassword' style='text-decoration: underline'>Forgot your password?</a> and type in your registered email address used when creating your account. We will send the instructions to your email."; 526introtext += "</br></br>"; 527introtext += "<b>Do you want to become a member of PV CYCLE?</b> Click <a href='../en-US/RegisterMember' style='text-decoration: underline'>here</a>"; 528introtext += "</br></br>"; 529introtext += "<b>Do you want to check if a PV CYCLE membership certificate is valid and authentic?</b> Click <a href='../en-US/VerifyMemberCertificate' style='text-decoration: underline'>here</a>."; 530introtext += "</br></br>"; 531introtext += "Should you have any questions, please <a href='../en-US/contactfaq/contact-us' style='text-decoration: underline'>contact us</a>."; 532introtext += "</br></br>"; 533introtext += "Best regards,"; 534introtext += "</br>"; 535introtext += "PV CYCLE Team"; 536 537 538$("form").parent().parent().append("<div class='col-md-6' style='background-color: #F5F5F5; padding:25px;'>" + introtext + "</div>"); 539 540}); 541</script>
541</div></div> 542 543 544 545 <div class="row"> 546 547 <div class="col-md-6"> 548 549 550<form action="/en-US/SignIn" method="post"> 551 <input name="__RequestVerificationToken" type="hidden" value="A3N9M0y6bHoflGfez6TJnZycaQxVWnqiXD27B_a7wFWZgdPh3lVZEgClCr0VWD9j3mqcx-66Y2uO1OKWhiXXoCQPmv9gfZN2uIhOCYbHnWM1" /> 552 <div class="form-horizontal"> 553 <h2 class="login-heading-section" id="local-login-heading"> 554 <span class="xrm-editable-text xrm-attribute"><span class="xrm-attribute-value-encoded xrm-attribute-value">Sign in with a local account</span></span> 555 </h2> 556 <div class="validation-summary-valid listStyleTypeNone alert alert-block alert-danger" data-valmsg-summary="true" id="loginValidationSummary"><ul><li style="display:none"></li> 557</ul></div> 558 559 <div class="form-group"> 560 <label class="col-sm-4 control-label required" for="Username"><span class="xrm-editable-text xrm-attribute" data-languageContext="English"><span class="xrm-attribute-value-encoded xrm-attribute-value">User name</span></span></label> 561 <div class="col-sm-8"> 562 <input class="form-control" id="Username" name="Username" type="text" value="" /> 563 </div> 564 </div> 565 566 <div class="form-group"> 567 <label class="col-sm-4 control-label required" for="PasswordValue"><span class="xrm-editable-text xrm-attribute"><span class="xrm-attribute-value-encoded xrm-attribute-value">Password</span></span></label> 568 <div class="col-sm-8"> 569 <input autocomplete="new-password" class="form-control" id="PasswordValue" name="PasswordValue" type="password" /> 570 </div> 571 </div> 572 573 <div class="form-group"> 574 <div class="col-sm-offset-4 col-sm-8"> 575 <div class="checkbox"> 576 <label> 577 <input data-val="true" data-val-required="The RememberMe field is required." id="RememberMe" name="RememberMe" type="checkbox" value="true" /><input name="RememberMe" type="hidden" value="false" /> 578 <span class="xrm-editable-text xrm-attribute"><span class="xrm-attribute-value-encoded xrm-attribute-value">Remember me?</span></span> 579 </label> 580 </div> 581 </div> 582 </div> 583 584 <div class="form-group"> 585 <div class="col-sm-offset-4 col-sm-8"> 586 <button id="submit-signin-local" class="btn btn-primary" title="Sign in">Sign in</button> 587 588 <a class="btn btn-default" role="link" href="/en-US/Account/Login/ForgotPassword" title="Forgot your password?">Forgot your password?</a> 589 590 </div> 591 </div> 592 </div> 593</form>
594<script type="text/javascript"> 595 $(function() { 596 $("#submit-signin-local").on("click", function () { 597 $.blockUI({ message: null, overlayCSS: { opacity: .3 } }); 598 }); 599 }); 600 $(document).ready(function () { 601 if (portal) { 602 portal.UpdateValidationSummary("loginValidationSummary"); 603 } 604 }); 605</script>
605 606 607 </div> 608 609 </div> 610
610<script type="text/javascript"> 611 $(document).ready(function () { 612 document.querySelector('title').innerHTML = ($('.nav-tabs > li.active').text() + " - PV Cycle Portal"); 613 shell.refreshToken(); 614 }); 615</script>
615 616 617 </div> 618 619 </div> 620 </div> 621 622 623
623<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>
623 624 625 626 627 628 629 630 <div id="pp-native-controls-react-root"></div>
631<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 631
631
632<script defer="defer" src="https://content.powerapps.com/resource/powerappsportal/controls/host/main.3ee2491f78.chunk.js"></script>
632 633 634 635 636 <!--<section id="gethelp" class="page_section section-diagonal-right color-inverse hidden-print"> 637 <div class="container"> 638 <div class="row"> 639 </div> 640 </div> 641</section>--> 642 643<footer role="contentinfo"> 644 <!-- // original footer 645 <div class="footer-top hidden-print"> 646 <div class="container"> 647 <div class="row"> 648 649 650 <div class="col-md-12 col-sm-12 col-xs-12 text-left"> 651--> 652 653 <!--<div class="col-md-6 col-sm-12 col-xs-12 text-left">--> 654 655<!-- // original footer 656 <div class="xrm-editable-html xrm-attribute" data-languageContext="English"><div class="xrm-attribute-value"><div id="footer-seo"> 657 <div class="footer-container"> 658 <div class="intro"> 659 <h4>Waarom PV CYCLE?</h4> 660 <div> 661 <p>De leden van PV CYCLE BELGIUM genieten van alle voordelen die een collectieve regeling met zich meebrengt: van lagere kosten en grotere volumes tot risicospreiding en één enkele stem in en voor de sector.</p> 662 </div> 663 <ul> 664 <li> 665 <img src="http://www.pvcycle.be/wp-content/uploads/2013/09/non-profit.png"> 666 <p>Nonprofit</p> 667 </li> 668 <li> 669 <img src="http://www.pvcycle.be/wp-content/uploads/2013/09/one-stop.png"> 670 <p>Centraal</p> 671 </li> 672 <li> 673 <img src="http://www.pvcycle.be/wp-content/uploads/2013/09/collective.png"> 674 <p>Collectief</p> 675 </li> 676 <li> 677 <img src="http://www.pvcycle.be/wp-content/uploads/2013/09/transparent.png"> 678 <p>Transparant</p> 679 </li> 680 <li> 681 <img src="http://www.pvcycle.be/wp-content/uploads/2013/09/industry-driven.png"> 682 <p>Sectorgestuurd</p> 683 </li> 684 </ul> 685 </div> 686 687 <div class="the-tags"> 688 <div class="tags-column"> 689 <div class="tags-group"> 690 <h4>Afvalverwijdering</h4> 691 <ul> 692 <li> 693 <a href="http://www.pvcycle.be/map/">Kaart van Inzamelpunten</a> 694 </li> 695 696 <li> 697 <a href="http://www.pvcycle.be/diensten/word_inzamelpunt/"> 698 Word een Inzamelpunt 699 </a> 700 </li> 701 702 <li> 703 <a href="http://www.pvcycle.be/diensten/inzameling-zonnepanelen/"> 704 Instructies Inzameling 705 </a> 706 </li> 707 708 </ul> 709 </div> 710 711 <div class="tags-group"> 712 <ul> 713 714 <li> 715 <a href="http://www.pvcycle.be/diensten/inzameling-zonnepanelen/"> 716 Breng Zonnepanelen 717 </a> 718 </li> 719 720 <li> 721 <a href="http://www.pvcycle.be/diensten/inzameling-zonnepanelen/"> 722 Ophaal Zonnepanelen 723 </a> 724 </li> 725 726 <li> 727 <a href="http://www.pvcycle.be/milieubijdrage/"> 728 Kosten Afvalverwijdering 729 </a> 730 </li> 731 732 </ul> 733 </div> 734 735 </div> 736 <div class="tags-column"> 737 738 <div class="tags-group"> 739 <h4>Afvalwetgeving</h4> 740 741 <ul> 742 743 <li> 744 <a href="http://www.pvcycle.be/wetgeving/fabrikant-invoerder/"> 745 Verplichtingen 746 </a> 747 </li> 748 749 <li> 750 <a href="http://www.pvcycle.be/wetgeving/fabrikant-invoerder/"> 751 Verantwoordelijk 752 </a> 753 </li> 754 755 <li> 756 <a href="http://www.pvcycle.be/wetgeving/distributeur/"> 757 Aanvaardingsplicht 758 </a> 759 </li> 760 761 </ul> 762 </div> 763 764 <div class="tags-group"> 765 <ul> 766 767 <li> 768 <a href="http://extranet.pvcycle.org" target="_blank"> 769 Registratie Lid 770 </a> 771 </li> 772 773 <li> 774 <a href="http://extranet.pvcycle.org" target="_blank"> 775 Declaration 776 </a> 777 </li> 778 779 <li> 780 <a href="http://www.pvcycle.be/wetgeving/milieubijdrage/"> 781 Financiering 782 </a> 783 </li> 784 785 </ul> 786 </div> 787 788 </div> 789 <div class="tags-column"> 790 791 <div class="tags-group"> 792 <h4>Helpdesk</h4> 793 794 <ul> 795 796 <li> 797 <a href="http://www.pvcycle.be/downloads-2/"> 798 Downloads 799 </a> 800 </li> 801 802 <li> 803 <a href="http://www.pvcycle.be/news/"> 804 Events & Presse 805 </a> 806 </li> 807 808 <li> 809 <a href="http://www.pvcycle.org/help/" target="_blank"> 810 Technische Hulp 811 </a> 812 </li> 813 814 </ul> 815 </div> 816 817 <div class="tags-group"> 818 <ul> 819 820 <li> 821 <a href="http://www.pvcycle.be/pv-cycle-belgium/onze-mensen/"> 822 Onze Team 823 </a> 824 </li> 825 826 <li> 827 <a href="http://extranet.pvcycle.org" target="_blank"> 828 Extranet 829 </a> 830 </li> 831 832 <li> 833 <a href="http://www.pvcycle.org/suscribe-newsletter/" target="_blank"> 834 Newsletter 835 </a> 836 </li> 837 838 <li> 839 <a href="http://www.pvcycle.be/privacybeleid/"> 840 Privacybeleid 841 </a> 842 </li> 843 844 </ul> 845 </div> 846 </div> 847 </div> 848 849 <div class="elsewhere"> 850 <div class="address"> 851 <h4>PV CYCLE BELGIUM vzw</h4> 852 <p> 853 114, Brand Whitlock Laan 854 <br> 1200 Brussel, België 855 <br> T: +32/(0)2 880 7260 856 <br> F: +32/(0)2 880 7251 857 </p> 858 859 </div> 860 </div> 861 </div> 862 </div></div></div> 863 864 865 </div> 866--> 867 868 869 <!--<div class="col-md-6 col-sm-12 col-xs-12 text-right"> 870 <ul class="list-social-links"> 871 <li><a href="#"><span class="sprite sprite-facebook_icon"></span></a></li> 872 <li><a href="#"><span class="sprite sprite-twitter_icon"></span></a></li> 873 <li><a href="#"><span class="sprite sprite-email_icon"></span></a></li> 874 </ul> 875 --> 876 877<!-- // original footer 878 </div> 879 </div> 880 </div> 881 </div> 882--> 883 884 <div class="footer-bottom hidden-print"> 885 <div class="container"> 886 <div class="row"> 887 <div class="col-md-4 col-sm-12 col-xs-12 text-left"> 888 <div class="xrm-editable-html xrm-attribute" data-languageContext="English"><div class="xrm-attribute-value"><p>Copyright © 2026 PV CYCLE</p></div></div> 889 </div> 890 891 892 <div class="col-md-8 col-sm-12 col-xs-12 text-left " data-weblinks-maxdepth="2"> 893 <ul class="row list-unstyled"> 894 895 </ul> 896 897 </div> 898 899 900 </div> 901 </div> 902</footer> 903 904
905<script src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script>
vendor: 2 bytes, line 905
905
906<script src="https://cdn.datatables.net/1.10.22/js/dataTables.bootstrap.min.js"></script>
vendor: 2 bytes, line 906
906
907<script src="https://cdn.datatables.net/buttons/1.6.4/js/dataTables.buttons.min.js"></script>
vendor: 2 bytes, line 907
907
908<script src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.flash.min.js"></script>
vendor: 2 bytes, line 908
908
909<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
909 910<!--
910<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js"></script>
vendor: 2 bytes, line 910
910
911<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>
911-->
912<script src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.html5.min.js"></script>
912 913<!--
913<script src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.print.min.js"></script>
913--> 914<!--
914<script type="text/javascript" src="https://cdn.datatables.net/v/bs/jszip-2.5.0/dt-1.10.22/b-1.6.4/b-html5-1.6.4/datatables.min.js"></script>
914--> 915 916 917 918 919 920
920<script type="text/javascript"> 921 922 function trackCopilotCustomUsage(botSchema) { 923 const request = { 924 botSchemaName: botSchema 925 } 926 var json = JSON.stringify(request); 927 shell.ajaxSafePost({ 928 type: "POST", 929 contentType: "application/json", 930 url: "/_services/copilot/TrackUsage", 931 data: json 932 }).done(function () { 933 }).fail(function (jqXhr) { 934 }); 935 } 936 937 function findAndLogCustomCopilotUsage() { 938 const pageSource = document.documentElement.outerHTML; 939 const customPvaBotWebchatRegex = /api\.(preprod\.|test\.)?powerplatform\.(com|us|cn|appsplatform\.us)\/powervirtualagents\/botsbyschema\/([^/]+)\/directline\/token/; 940 const customPvaBotIframeRegex = /powerva\.microsoft\.com\/environments\/([0-9a-fA-F\-]+)\/bots\/([^/]+)\/webchat/; 941 const omniChannelRegex = /livechatwidget\/scripts\/LiveChatBootstrapper\.js/; 942 943 const matchPvaBotWebchat = pageSource.match(customPvaBotWebchatRegex); 944 if (matchPvaBotWebchat && matchPvaBotWebchat[3]) { 945 trackCopilotCustomUsage(matchPvaBotWebchat[3]); 946 } 947 948 const matchPvaBotIframe = pageSource.match(customPvaBotIframeRegex); 949 if (matchPvaBotIframe && matchPvaBotIframe[2]) { 950 trackCopilotCustomUsage(matchPvaBotIframe[2]); 951 } 952 953 const matchOmniChannel = pageSource.match(omniChannelRegex); 954 if (matchOmniChannel && matchOmniChannel[0]) { 955 trackCopilotCustomUsage("omnichannelWidget"); 956 } 957 } 958 959 window.addEventListener("load", function () { 960 findAndLogCustomCopilotUsage(); 961 }); 962 </script>
962 963 964 965 966 967 968 969 970
970<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>
970 971 972
972<script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/postpreform.bundle-4687dda8df.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/postpreform.bundle-4687dda8df.js" type="text/javascript"></script>
972 973 974
974<script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/app.bundle-1e948af604.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/app.bundle-1e948af604.js" type="text/javascript"></script>
974 975 976
976<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>
976 977 978 979 980 981 982 983
983<script> 984 //this event will update the title of the page based on active breadcrumb 985 $('.breadcrumb').ready(function () { 986 if ($('.breadcrumb').is(':visible')) { 987 document.querySelector('title').innerHTML = ($('.breadcrumb > li.active').text() + " - PV Cycle Portal"); 988 } 989 }); 990 991 function GoToNewEditor() { 992 var editCmsUrlSegment = "EditInCms"; 993 var currentUrl = window.location.href; 994 if (currentUrl.indexOf('?') > -1) { 995 var urlSegments = currentUrl.split("?"); 996 window.location.href = window.location.origin + '/' + editCmsUrlSegment + window.location.pathname + '?' + urlSegments[1]; 997 } 998 else { 999 window.location.href = window.location.origin + '/' + editCmsUrlSegment + window.location.pathname; 1000 } 1001 } 1002 </script>
1002 1003 1004 1005 1006 1007 1008
1008<script> 1009 if ('serviceWorker' in navigator) { 1010 navigator.serviceWorker.getRegistrations().then(function (registrations) { 1011 for (let registration of registrations) { 1012 registration.unregister(); 1013 } 1014 }).catch(function (err) { 1015 console.log('Service Worker unregister action failed: ', err); 1016 }); 1017 } 1018 </script>
1018 1019 1020 1021 1022 <!--Start Show Session Expire Warning Popup here --> 1023 1024 1025</body> 1026</html> 1027<!-- Generated at 9/24/2026 6:33:38 PM --> 1028<!-- 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.