PageSourceSearch

https://givesome.org/auth/

html givesome.org collected 2026-10-02 00:12:31 UTC 62,722 bytes, 1,659 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head><!-- Global Site Tag (gtag.js) - Google Analytics -->
vendor: 65 bytes, lines 3-4
3
4<script async src="https://www.googletagmanager.com/gtag/js?id=
4UA-158189131-1
vendor: 13 bytes, line 4
4"></script>
5<script>
6  
vendor: 136 bytes, lines 6-9
6window.dataLayer = window.dataLayer || [];
7  function gtag(){dataLayer.push(arguments);}
8  gtag('js', new Date());
9  gtag('config', '
9UA-158189131-1
vendor: 5 bytes, line 9
9');
10</script>
10
11<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 11-12
11
12<script async src="https://www.googletagmanager.com/gtag/js?id=
12G-1659V86SES
vendor: 12 bytes, line 12
12"></script>
13<script>
14  
vendor: 134 bytes, lines 14-18
14window.dataLayer = window.dataLayer || [];
15  function gtag(){dataLayer.push(arguments);}
16  gtag('js', new Date());
17
18  gtag('config', '
18G-1659V86SES
vendor: 4 bytes, line 18
18');
19</script>
19
20<!-- Google Tag Manager -->
21<script>
vendor: 327 bytes, lines 21-25
21(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
22new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
23j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
24'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
25})(window,document,'script','dataLayer','
25GTM-58WX2PTB
vendor: 3 bytes, line 25
25');
25</script>
25
26<!-- End Google Tag Manager -->
27    <meta charset="utf-8">
28    <meta name="viewport" content="width=device-width, initial-scale=1.0">
29    <title>Authenticate &ndash; Givesome</title>
30    <link rel="icon" type="image/x-icon" href="/media/filer_public/cc/c0/ccc04d92-5923-4a79-b501-abea71d0d7e3/givesomeicon20.png">
31
32    <link rel="stylesheet" type="text/css" href="/static/givesome/givesome.css?v=2.10.2">
33
34    <link rel="stylesheet" href="/static/givesome_V1/vendors/themefy_icon/themify-icons.css" />
35    <link rel="stylesheet" href="/static/givesome_V1/vendors/niceselect/css/nice-select.css" />
36    <link rel="stylesheet" href="/static/givesome_V1/vendors/owl_carousel/css/owl.carousel.css" />
37    <link rel="stylesheet" href="/static/givesome_V1/css/metisMenu.css">
38    <link rel="stylesheet" href="/static/givesome_V1/css/style1.css" />
39    <link rel="stylesheet" href="/static/givesome_V1/css/colors/default.css" id="colorSkinCSS">
40    <link rel="stylesheet" href="/static/givesome_V1/css/project_card.css" id="colorSkinCSS">
41    <link href="https://cdn.jsdelivr.net/npm/@fontsource/[email protected]/index.min.css" rel="stylesheet">
42
43    
44
45    
46    
46<script>var ShuupFrontConfig = {"uploadUrl": null, "csrf": "YKKhivQcp95ykbRigj7kJp7ahJjQtYD4Nc6C6GXgqZyMbkOEO7TUtpLRuJsYXCxb"};</script>
46
47    
47<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.0/jquery.min.js"></script>
47
48    <style>
49     .hidesidebar
50     {
51        display:none
52     }
53     .givesome-signin-btns .firebaseui-idp-button{
54            padding: 3px 10px !important;      
55     }
56      .firebaseui-idp-text {
57                color: #111111 !important;
58            }
59            .firebaseui-idp-button{
60                border-radius: 10px !important;
61                border-color: #111111 !important;
62                border:1px;
63            }
64            .firebaseui-container{
65                max-width: unset !important;
66                margin: unset !important;
67            }
68  .inactive-loader{
69    display:none !important;
70  }
71  .active-loader{
72    display:flex !important;
73  }
74  .owl-loading-indicator_S {
75    position: fixed;
76    top: 0;
77    left: 0;
78    width: 100%;
79    height: 100%;
80    background-color: rgba(0,0,0,0.3);
81    z-index: 9999;
82    align-items: center;
83    justify-content: center;
84  }
85    </style>
86    
87
88    
88<script type="text/javascript" src="/i18n.js?lang=en"></script>
88
89
90    <style type="text/css">
91    </style>
92    <style>
93  .btn-danger{color:#fff;background-color:#61449b;border-color:#61449b}
94  .btn-danger:hover{color:#fff;background-color:#61449b;border-color:#61449b}
95
96  .btn-warning{color:#fff;background-color:#61449b;border-color:#61449b}
97  .btn-warning:hover{color:#fff;background-color:#61449b;border-color:#61449b}
98</style>
99<link href="/static/shuup-firebase-auth.css?v=2.6.1" rel="stylesheet">
99<script>
100    window.FirebaseAuthConfig = {'apiKey': 'AIzaSyDmQQ3mNkgIQPs4RKdSYjmrzy_23HlT1GY', 'authDomain': 'givesome.org', 'databaseURL': '', 'projectId': 'givesome-42109', 'storageBucket': 'givesome-42109.appspot.com', 'messagingSenderId': '393580763962', 'appId': '1:393580763962:web:456ad743eea07437044e03'};
101</script>
101<script src="/static/shuup-firebase-auth.js?v=2.6.1"></script>
101<style type="text/css">.product-list-view .single-product {
102    width: 25%!important;
103    float: left;
104}
105@media screen and (max-width: 500px){
106    .product-list-view .single-product {
107    width: 100%!important;
108}
109}
110 .footer-logo {
111    display: block;
112    max-width: 100%;
113    object-fit: contain;
114    height: auto;
115}
116.project-card .project-details .vendor-icon {
117    color: rgba(0,0,0,0);
118    background-repeat: no-repeat;
119    background-size: contain;
120    background-position: 50%;
121    border-radius: 100px;
122}
123.browse-section .logos-desktop img {
124    filter: none;
125    border-radius: 0!important;
126    max-width: 100%;
127    max-height: 100%;
128    width: 100%;
129    height: auto;
130}
131.browse-section .logos-desktop .single-logo {
132    background-color: #f6f7fa;
133    padding: 4px;
134    margin: .4rem;
135    border-radius: 0;
136}
137.browse-section .logos-desktop img {
138    filter: none;
139}
140.browse-section .logos-desktop .single-logo {
141    padding: 0 5px;
142}
143.project-card .project-details i {
144    width: 23px;
145    color: #62459c;
146    height: 23px;
147    color: var(--primary);
148    font-size: 18px;
149}
150.browse-section .logos-desktop a {
151    opacity: .85;
152    padding: 5px;
153}
154.main-footer .col.left {
155    display: flex;
156  	justify-content: flex-end;
157}
158.main-footer .col.right {
159    display: flex;
160  	justify-content: flex-start;
161}
162
163#xt-ph-homepage_banner p.lead:nth-child(5) {
164 display: none;
165}</style><link href="/static/shuup_wishlist/css/style.css?v=1.2.3" rel="stylesheet">
165<script src="https://js.stripe.com/v3/"></script>
165<link href="/static/stripe-multivendor/stripe-multivendor.css?v=2.16.2" rel="stylesheet"></head>
166
167<body class=" auth">
168    
168<script>
169    (function(){
170        try {
171            if (window.sessionStorage.getItem('authAction') === 'true' && window.sessionStorage.getItem('give') === 'true') {
172                var mask = document.createElement('div');
173                mask.id = 'gv-presignin-mask';
174                mask.setAttribute('style', 'position:fixed;top:0;left:0;width:100%;height:100%;z-index:2147483647;background:#fff;display:flex;align-items:center;justify-content:center;');
175                mask.innerHTML = '<i class="fa fa-spin fa-spinner text-muted fa-2x"></i>';
176                document.documentElement.appendChild(mask);
177                setTimeout(function(){
178                    var m = document.getElementById('gv-presignin-mask');
179                    if (m && m.parentNode) { m.parentNode.removeChild(m); }
180                }, 10000);
181            }
182        } catch (e) {}
183    })();
184    </script>
184
185    <a href="#main-content" class="sr-only">
186        Skip to main content
187    </a>
188
189    
190    
191    
192
193
194
195    <div class="content-wrap">
196
197        <div id="main" class="clear-top">
198
199            <div class="navigation-wrapper nav-overflow">
200                
201                    
202<nav class="sidebar hidesidebar menu-sidebar" id="sideBarNav">
203<ul id="sidebar_menu">
204 <li><a href="#" class="closebtn_S" onclick="closeNavButton()" style="justify-content: end;">&times;</a></li>
205   <li class="no-breaking_S">
206       <a  href="/">
207            Home
208        </a>
209   </li>
210   <li class="no-breaking_S">
211        <a href="//www.givesome.com" target="_blank">
212            About Givesome
213        </a>
214    </li>
215    <li class="no-breaking_S">
216        <a class="has-arrow" href="#" aria-expanded="false">
217            Explore Projects
218        </a>
219        <ul>
220            
221    <li class=" ">
222        <a href="/b/">
223            <div class="page-title">Browse by Company</div>
224            
225        </a>
226    </li>
227
228            
229    <li class="">
230        <a href="/v/">
231            <div class="page-title">Browse by Charity</div>
232            
233        </a>
234    </li>
235
236        </ul>
237    </li>
238     <li class="no-breaking_S">
239       <a  href="/cms/FAQs/" >
240            FAQ
241        </a>
242     </li>
243     
244
245                        <li class="no-breaking_S">
246                         <a href="/login/#login">
247                                 Login 
248                            </a>
249                        </li>
250     
251
252    <li class>
253       
254        <ul>
255           
256                    
257
258                        <li>
259                            <a href="/profile/">
260                                My Portfolio
261                            </a>
262                        </li>
263                
264                     <li>
265                           <a href="/register/#register">
266                                Sign Up
267                            </a>
268                        </li>
269                        <li>
270                           a href="/login/#login">
271                                Sign In
272                            </a>
273                        </li>
274                     
275        </ul>
276    </li>
277    <li class="no-breaking_S">
278        <a class="has-arrow" href="#" aria-expanded="false">
279            Language
280        </a>
281        
282            
283                
284            
285        
286            
287        
288
289                 <ul class="languages" id="language-changer" role="menu">
290                
291                 <a aria-expanded="false" href="#" style="display: none" class="dropdown-toggle" data-toggle="dropdown">
292                    <i class="menu-icon fa fa-globe"></i>
293                    en
294                </a>
295                    
296                        <li>
297                            <a href="#" class="language" data-value="en">
298<span lang="en">English</span> <i class="menu-icon fa fa-globe" style="padding-left: 20px;
299"></i>
300                            </a>
301                        </li>
302                    
303                        <li>
304                            <a href="#" class="language" data-value="fr-ca">
305<span lang="fr-ca">Français</span> 
306                            </a>
307                        </li>
308                    
309                </ul></li><li class="level-0 cms-link">
310                <a href="/cms/contact">
311                    Contact
312                </a>
313            </li></nav>
314    <nav class="site-nav" role="navigation">
315        <div class="container-fluid">
316            <div class="flex-row row">
317
318                <div class="logo-wrap">
319                    
320
321                    <div class="">
322                    
323    
324        
325
326        
327        
328
329        
330        
331
332        
333            
334            
335        
336
337        
338            
339        
340
341        
342    
343    <div class="logo has-image logo-horizontal">
344        <a href="/" data-toggle="tooltip" data-placement="bottom" title="Givesome Home">
345            
346                <img style="width:200px; height: 39px;" id="brand_logo" src="/media/filer_public_thumbnails/filer_public/f5/4c/f54c7052-7fb7-4f1e-8132-c2d208ee7946/givesomeiconandword2020-crop.png__604x120_q100_subsampling-2.png" alt="Givesome" class="hidden-xs hidden-sm visible-md visible-lg " onclick="clearSession()">
347                <img style="width:120px; height: auto;margin:auto;" id="brand_logo" src="/media/filer_public_thumbnails/filer_public/f5/4c/f54c7052-7fb7-4f1e-8132-c2d208ee7946/givesomeiconandword2020-crop.png__604x120_q100_subsampling-2.png" alt="Givesome" class="visible-xs visible-sm hidden-md hidden-lg" onclick="clearSession()">
348            
349        </a>
350    </div>
351<script>
352function clearSession () {
353     window.sessionStorage.removeItem("location");
354     window.sessionStorage.removeItem("authAction");
355     window.location.href = window.location.origin;
356}
357</script>
357
358
359                    </div>
360                </div>
361                
362
363
364                <div class="secondary-nav clearfix">
365                    <div class="secondary-nav-dropdowns">
366                        
367    
368
369    <div class="nav-givecard">
370        
371        
372        
373      
374        <div class="pages-wrap hidden-xs hidden-sm">
375            
376
377    <ul>
378        
379
380        
381    <li>
382        <a href="//www.givesome.com" target="_blank">
383            About Givesome
384        </a>
385    </li>
386     <li>
387        <a href="/cms/FAQs/" target="_blank">
388            FAQ
389        </a>
390    </li><li class="level-0 cms-link">
391                <a href="/cms/contact">
392                    Contact
393                </a>
394            </li>
395    </ul>
396
397        </div>
398        
399             <ul class="dropdown" style="display: none;">
400        <li>
401        <a aria-expanded="false" href="#" class="dropdown-toggle" data-toggle="dropdown" style="display: none;">
402        <button type="button" class="btn btn-block btn-rounded btn-redeem">
403                    Redeem PIN
404                    <span id="givecard-total-value" class="icon-button__badge hidden">$0</span>
405                </button></a>
406               <ul class="dropdown-menu" style="box-shadow: 0 2px 9px 2px !important;
407    border-radius: 8px !important;">
408<div style="width: 100%;padding: 25px;" class="redeem-content">
409 <form class="givecard-redeem-form" style="padding: 0px;!important">
410   <div class="" style="display: flex; align-items: center; justify-content: space-between;color:#000;"><p class="MuiTypography-root MuiTypography-body1 sub-head mb-10 css-9l3uo3">Redeem a Givecard PIN</p></div>
411    <div class="apply-amount mb-10">
412     <input type="hidden" name="csrfmiddlewaretoken" id="givecard-pin-csrf-token" value="YVXGzPS0N1JUzMy2MGaNDo9RKpnto2MkNnj1n0Z4ORc8qVvokuWnnoNyXpwBSGGr">
413    <input class="amount-input placeholder-text sub-head" type="text" placeholder="Enter 6 digit PIN" maxlength="6" id="givecard-pin-input" value="" style="text-transform: uppercase;">
414    <button class="normal-text apply-btn css-1hw9j7s" type="button" style="text-transform: capitalize; border-radius: 10px;" id="givecard-pin-button">Apply<span class="MuiTouchRipple-root css-w0pj6f"></span></button>
415    </div>
416
417    <p id="givecard-pin-error-text" class="text-danger"></p>
418
419            <div id="redeem-spinner" style="display: none;" class="my-3 text-center text-muted">
420                <i class="fa fa-spin fa-spinner fa-lg"></i>
421            </div>
422</form>
423   
424
425</div>
426               </ul>
427                </li>
428                </ul>
429        
430        
431    </div>
432    <a href="/profile/">
433    <div style="width: auto;margin-left: 15px;margin-right: 15px;">
434        <svg width="20" height="20" style="margin: auto;display: flex;" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
435<path d="M12.25 13C14.3211 13 16 11.3211 16 9.25C16 7.17893 14.3211 5.5 12.25 5.5C10.1789 5.5 8.5 7.17893 8.5 9.25C8.5 11.3211 10.1789 13 12.25 13Z" stroke="#5D4294" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
436<path d="M19.6793 20.6811C17.7158 16.5786 12.7973 14.8431 8.69481 16.8066C6.99981 17.6181 5.63181 18.9846 4.82031 20.6811" stroke="#5D4294" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
437<path d="M12.25 23.5C18.4632 23.5 23.5 18.4632 23.5 12.25C23.5 6.0368 18.4632 1 12.25 1C6.0368 1 1 6.0368 1 12.25C1 18.4632 6.0368 23.5 12.25 23.5Z" stroke="#5D4294" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
438</svg>
439
440        
441    </div>
442    </a>
443
444
445
446                        
447<div id="hide" class="line_icon open_miniSide d-none d-lg-block" style="cursor: pointer;">
448<img src="/static/givesome/img/givesomev1/menu_icon.png" class="notify-icon" id="settiing_icon" style="width: 50px; height: auto"></img>
449<div id="overlay_S" style="display: none;"></div>
450</div>
451<script>
452    // Function to toggle the display of overlay
453    function toggleOverlay() {
454        var overlay = document.getElementById('overlay_S');
455        if (overlay.style.display === 'none') {
456            overlay.style.display = 'block';
457        } else {
458            overlay.style.display = 'none';
459        }
460    }
461
462    // Function to close the sidebar and hide the overlay
463    function closeNavButton() {
464        $(".sidebar").toggle("hidesidebar");
465        document.getElementById('overlay_S').style.display = 'none';
466    }
467
468    var sideIconToggle = document.getElementById('hide');
469    sideIconToggle.addEventListener('click', function(event) {
470        if(event.target.id === 'settiing_icon') {
471            toggleOverlay(); // Toggle the overlay when the icon is clicked
472        } else {
473
474            closeNavButton(); // Close the sidebar and hide the overlay when close button is clicked
475        }
476    });
477
478</script>
478
479
480                    </div>
481                </div>
482
483            </div>
484        </div>
485    </nav>
486    
487    <div class="offcanvas-nav" id="offcanvas-nav" role="navigation" aria-label="Main menu">
488
489        <ul>
490            <li class="level-0">
491                <a href="/">
492                    Homepage
493                </a>
494            </li>
495
496            
497    <li class=" ">
498        <a href="/b/">
499            <div class="page-title">Browse by Company</div>
500            
501        </a>
502    </li>
503
504            
505    <li class="">
506        <a href="/v/">
507            <div class="page-title">Browse by Charity</div>
508            
509        </a>
510    </li>
511
512
513            
514    <li>
515        <a href="//www.givesome.com" target="_blank">
516            About Givesome
517        </a>
518    </li>
519     <li>
520        <a href="/cms/FAQs/" target="_blank">
521            FAQ
522        </a>
523    </li><li class="level-0 cms-link">
524                <a href="/cms/contact">
525                    Contact
526                </a>
527            </li>
528        </ul>
529    </div>
530
531
532                
533            </div>
534
535            <div class="main-messages-wrap">
536                <div class="container">
537                    
538    
539
540                    
541    
542        
543    
544
545                </div>
546            </div>
547
548            
549
550            
551            <div class="container">
552            
553
554                <main class="main-content " id="main-content">
555                    
556                    
557
558                    
559
560                    <div class="page-content">
561                        
562
563<div class="message-box">
564    <h1 class="text-center mt-0 mb-5" style="font-size: 63.15px;">Sign in</h1>
565
566    <div id="firebaseui-auth-container" class="text-center">
567        
568    </div>
569    <div id="step-initial-email" class="text-center" style="display: none;">
570        <label for="email" class="firebaseui-title">Sign Up or Sign In With Email</label><br>
571        <input type="email" id="email"
572         class="form-control mdl-textfield__input firebaseui-input email-input" placeholder="Email"><br><br>
573        <div class="button-row">
574             <button id="cancel-email-flow" class="mdl-button mdl-js-button mdl-button--primary" data-upgraded=",MaterialButton">Cancel</button>
575             <button id="check-email" class="btn btn-primary mdl-button mdl-js-button mdl-button--raised mdl-button--colored">Next</button>
576        </div>
577    </div>
578<!-- Email And Password Flow -->
579
580    <div id="step-password" class="text-center" style="display: none;">
581    <div><h1 class="firebaseui-title">Sign in</h1></div>
582        <div class="firebaseui-textfield mdl-textfield mdl-js-textfield mdl-textfield--floating-label is-dirty is-upgraded" data-upgraded=",MaterialTextfield">
583            <label class="mdl-textfield__label firebaseui-label" for="password-email">Email</label>
584            <input type="email" id="password-email" class="input-stl mdl-textfield__input firebaseui-input firebaseui-id-email" readonly>
585        </div>
586     <div class="firebaseui-textfield mdl-textfield mdl-js-textfield mdl-textfield--floating-label is-upgraded" data-upgraded=",MaterialTextfield">
587     <label class="mdl-textfield__label firebaseui-label label-floating" for="password"
588>Password</label>
589     <input type="password"  id="password" autocomplete="current-password" class="input-stl form-control mdl-textfield__input firebaseui-input firebaseui-id-password">
590     </div>
591  <div class="firebaseui-card-actions">
592      <div class="firebaseui-form-links">
593          <a id="forgot-password-link" class="firebaseui-link firebaseui-id-secondary-link" href="#">Trouble signing in?</a>
594      </div>
595      <div class="firebaseui-form-actions"><button id="sign-in-password" class="firebaseui-id-submit firebaseui-button mdl-button mdl-js-button mdl-button--raised mdl-button--colored" data-upgraded=",MaterialButton">Sign In</button></div>
596  </div>
597    </div>
598
599    <div id="step-forgot-password" class="text-center" style="display: none;">
600        <form onsubmit="return false;">
601            <div class="firebaseui-card-header"><h1 class="firebaseui-title">Recover password</h1></div>
602            <div class="firebaseui-card-content">
603                <div class="firebaseui-textfield mdl-textfield mdl-js-textfield mdl-textfield--floating-label is-dirty is-upgraded" data-upgraded=",MaterialTextfield">
604                    <label class="mdl-textfield__label firebaseui-label" for="forgot-password-email">Email</label>
605                    <input type="email" name="email" id="forgot-password-email" autocomplete="username" class="input-stl mdl-textfield__input firebaseui-input firebaseui-id-email" readonly>
606                </div>
607                <div class="firebaseui-error-wrapper"><p class="firebaseui-error firebaseui-text-input-error firebaseui-hidden firebaseui-id-email-error"></p></div>
608            </div>
609            <div class="firebaseui-card-actions">
610                <div class="firebaseui-form-actions">
611                    <button id="cancel-forgot-password" class="firebaseui-id-secondary-link firebaseui-button mdl-button mdl-js-button mdl-button--primary" data-upgraded=",MaterialButton">Cancel</button>
612                    <button type="submit" id="send-reset-otp" class="firebaseui-id-submit firebaseui-button mdl-button mdl-js-button mdl-button--raised mdl-button--colored" data-upgraded=",MaterialButton">Send Code</button>
613                </div>
614            </div>
615            <div class="firebaseui-card-footer"></div>
616        </form>
617    </div>
618
619<!--Verify OTP Flow -->
620
621
622       <div id="step-reset-password" class="text-center" style="display: none;">
623
624<div><h1 class="firebaseui-title">Recover password</h1></div>
625   <div class='flex-center' id="sign-in-text">
626                    <p class="normal-text mb-20 mt-10">We have emailed a security code to the following email address:
627</p>
628<p class="normal-text mb-20 mt-10"><b id="email-text"></b></p>
629                </div>
630        <div class="firebaseui-textfield mdl-textfield mdl-js-textfield mdl-textfield--floating-label is-dirty is-upgraded" data-upgraded=",MaterialTextfield">
631            <label class="mdl-textfield__label firebaseui-label" placeholder="Enter One Time Password" for="otp">Verification Code</label>
632<input type="password" id="reset-otp" maxlength="6" inputmode="numeric" autocomplete="one-time-code" class="input-stl form-control mdl-textfield__input firebaseui-input firebaseui-id-password">
633        </div>
634     <div class="firebaseui-textfield mdl-textfield mdl-js-textfield mdl-textfield--floating-label is-dirty is-upgraded" data-upgraded=",MaterialTextfield">
635     <label class="mdl-textfield__label firebaseui-label" for="reset-new-password">New Password</label>
636     <input type="password"  id="reset-new-password" autocomplete="current-password" class="input-stl form-control mdl-textfield__input firebaseui-input firebaseui-id-password">
637     </div>
638   <div class="firebaseui-card-actions" style="padding:0;">
639               <div class="firebaseui-form-actions" style="display: flex; justify-content: center; align-items: center; gap: 10px;">
640               <button type="submit" id="save-new-password" class="firebaseui-id-submit firebaseui-button mdl-button mdl-js-button mdl-button--raised mdl-button--colored">Change Password</button>
641<button type="button" id="resend-otp-resetpassword-link" 
642            class="firebaseui-button mdl-button mdl-js-button mdl-button--raised" 
643            style="background-color: transparent; color: #62459c; border: 0; border-radius: 20px;">
644      Send New Code</button>
645                </div>
646            </div>
647            </div>
648
649<!--Verify User Flow -->
650
651 <div id="step-register" class="registration-form" style="display: none;">
652<form onsubmit="return false;">
653  <div class="firebaseui-card-header"><h1 class="firebaseui-title">Create account</h1></div>
654
655  <div class="firebaseui-card-content">
656    <!-- Email -->
657    <div
658      class="firebaseui-textfield mdl-textfield mdl-js-textfield mdl-textfield--floating-label is-dirty is-upgraded"
659      data-upgraded=",MaterialTextfield"
660    >
661      <label class="mdl-textfield__label firebaseui-label" for="register_email">
662        Email
663      </label>
664      <input
665        type="email"
666        name="email"
667        id="register_email"
668        autocomplete="username"
669        class="input-stl mdl-textfield__input firebaseui-input firebaseui-id-email"
670      />
671    </div>
672    
673
674    <!-- Hidden Name Field -->
675    <input
676      type="hidden"
677      name="name"
678      id="ui-sign-in-name-input"
679      autocomplete="name"
680      class="mdl-textfield__input firebaseui-input firebaseui-id-name get-full-name"
681      value=""
682    />
683
684    <!-- First Name -->
685    <div
686      class="firebaseui-textfield mdl-textfield mdl-js-textfield mdl-textfield--floating-label is-upgraded"
687      data-upgraded=",MaterialTextfield"
688    >
689      <label class="mdl-textfield__label firebaseui-label label-floating"  for="first_name">
690        First Name
691      </label>
692      <input
693        type="text"
694        name="fname"
695        id="first_name"
696        autocomplete="fname"
697        onchange="Firstname(this)"
698        class="input-stl txt-field-ui mdl-textfield__input firebaseui-input firebaseui-id-name"
699        value=""
700      />
701    </div>
702    <div class="firebaseui-error-wrapper">
703      <p
704        class="firebaseui-error firebaseui-text-input-error firebaseui-hidden firebaseui-id-name-error"
705      ></p>
706    </div>
707
708    <!-- Last Name -->
709    <div
710      class="firebaseui-textfield mdl-textfield mdl-js-textfield mdl-textfield--floating-label is-upgraded"
711      data-upgraded=",MaterialTextfield"
712    >
713      <label class="mdl-textfield__label firebaseui-label label-floating"   for="last_name">
714        Last Name
715      </label>
716      <input
717        type="text"
718        name="lname"
719        id="last_name"
720        autocomplete="lname"
721        onchange="Lastname(this)"
722        class="input-stl txt-field-ui mdl-textfield__input firebaseui-input firebaseui-id-name"
723        value=""
724      />
725    </div>
726    <div class="firebaseui-error-wrapper">
727      <p
728        class="firebaseui-error firebaseui-text-input-error firebaseui-hidden firebaseui-id-name-error"
729      ></p>
730    </div>
731
732    <!-- Password -->
733    <div class="firebaseui-new-password-component">
734      <div
735        class="firebaseui-textfield mdl-textfield mdl-js-textfield mdl-textfield--floating-label is-upgraded"
736        data-upgraded=",MaterialTextfield">
737        <label
738          class="mdl-textfield__label firebaseui-label label-floating" 
739          for="new_password">
740          Create Password
741        </label>
742        <input
743          type="password"
744          name="newPassword"
745          id="new_password"
746          autocomplete="new-password"
747          class="input-stl mdl-textfield__input firebaseui-input firebaseui-id-new-password"/>
748      </div>
749      <a
750        href="javascript:void(0)"
751        class="firebaseui-input-floating-button firebaseui-id-password-toggle firebaseui-input-toggle-on firebaseui-input-toggle-blur"
752      ></a>
753      <div class="firebaseui-error-wrapper">
754        <p
755          class="firebaseui-error firebaseui-text-input-error firebaseui-hidden firebaseui-id-new-password-error"
756        ></p>
757      </div>
758    </div>
759  </div>
760
761  <!-- Actions -->
762  <div class="firebaseui-card-actions">
763    <div class="firebaseui-form-actions">
764      <button
765        id=cancel-btn
766        class="firebaseui-id-secondary-link firebaseui-button mdl-button mdl-js-button mdl-button--primary"
767        data-upgraded=",MaterialButton">
768        Cancel
769      </button>
770      <button
771        type="submit"
772        id=send-otp
773        class="firebaseui-id-submit firebaseui-button mdl-button mdl-js-button mdl-button--raised mdl-button--colored"
774        data-upgraded=",MaterialButton">
775        Save
776      </button>
777    </div>
778  </div>
779
780  <div class="firebaseui-card-footer"></div>
781</form>
782    </div>
783    <button id="show-email-flow" class="btn btn-secondary btn-block mt-3 mdl-button mdl-js-button mdl-button--raised firebaseui-idp-button" style="background:white;display: flex;gap: 15px;align-items: center;text-transform: none;">
784    <span class="firebaseui-idp-icon-wrapper"><img class="firebaseui-idp-icon" alt="" src="/static/svg/mail_icon.svg"></span>
785    Sign in with Email</button>
786
787    <div id="step-otp" class="text-center" style="display: none;">
788             <div class='flex-center',id="sign-in-text">
789                    <p class="normal-text mb-20 mt-10">We have emailed a security code to the following email address:
790</p>
791<p class="normal-text mb-20 mt-10"><b id="email-text"></b></p>
792                </div>
793<div class="firebaseui-textfield mdl-textfield mdl-js-textfield mdl-textfield--floating-label is-dirty is-upgraded" data-upgraded=",MaterialTextfield">
794            <label class="mdl-textfield__label firebaseui-label" placeholder="Enter One Time Password" for="otp">Verification Code</label>
795<input type="password" id="otp" maxlength="6" inputmode="numeric" autocomplete="one-time-code" class="input-stl form-control mdl-textfield__input firebaseui-input firebaseui-id-password">
796       </div><span class="normal-text mb-20 mt-10" style="font-size: 13px;text-align: left;line-height: 20px;margin-bottom: 30px;
796display: flex;color: #666;">The code is only valid for the next 2 minutes. When you receive the code, please enter it here and then click Submit.</span>
797               <div class="firebaseui-card-actions" style="padding:0;">
798               <div class="firebaseui-form-actions" style="display: flex; justify-content: center; align-items: center; gap: 10px;">
799               <button type="submit" id="verify-otp" style="background: #5d4294; border-radius: 20px;"
800                class="firebaseui-id-submit firebaseui-button mdl-button mdl-js-button mdl-button--raised mdl-button--colored verify-otp-submit-btn" disabled
801>Submit</button>
802<button type="button" id="resend-otp-link" 
803            class="firebaseui-button mdl-button mdl-js-button mdl-button--raised" 
804            style="background-color: transparent; color: #62459c; border: 0; border-radius: 20px;">
805      Send New Code</button>
806                </div>
807            </div>
808    </div>
809    <div id="message" class="text-center mt-3"></div>
810</div>
811<style>
812.input-stl:focus {
813    outline: none !important;
814    border-color: #62459c !important;
815    border-bottom: 2px solid #62459c !important;
816    border-width: 2px !important;
817}
818.label-floating {
819    top: 0px;
820    left: 0px;
821    font-size: 12px;
822    color: #757575;
823}
824.verify-otp-submit-btn:disabled {
825  background-color: #ccc !important;
826  color: #666 !important;
827  opacity: 0.6;
828box-shadow: none !important;
829cursor: not-allowed !important;
830}
831.auth-toast {
832    margin: 12px auto 0;
833    color: #d32f2f;
834    font-size: 14px;
835    font-weight: 500;
836    opacity: 0;
837    transform: translateY(-10px);
838    transition: opacity 0.3s ease, transform 0.3s ease;
839    max-width: calc(100% - 32px);
840    text-align: center;
841}
842.auth-toast--visible {
843    opacity: 1;
844    transform: translateY(0);
845}
846
847</style>
848<script>
849$(function() {
850   
851    // Function to get CSRF token from cookies
852            function getCookie(name) {
853                var cookieValue = null;
854                if (document.cookie && document.cookie !== '') {
855                    var cookies = document.cookie.split(';');
856                    for (var i = 0; i < cookies.length; i++) {
857                        var cookie = jQuery.trim(cookies[i]);
858                        if (cookie.substring(0, name.length + 1) === (name + '=')) {
859                            cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
860                            break;
861                        }
862                    }
863                }
864                return cookieValue;
865            }
866            var csrftoken = getCookie('csrftoken');
867
868            // Configure jQuery's AJAX to automatically send the CSRF token
869$.ajaxSetup({
870    beforeSend: function(xhr, settings) {
871        if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !settings.crossDomain) {
872            xhr.setRequestHeader("X-CSRFToken", csrftoken);
873        }
874    }
875});
876    var actionUrl = "/givesome-auth/";
877    const backendBase = "https://api.givesome.gives/auth";
878
879    $("#check-email").on("click", function() {
880        const email = $("#email").val().trim();
881        if (!email) {
882            $("#message").text("Please enter your email.").css("color", "red");
883            return;
884        }
885        //$("#message").text("Checking email...").css("color", "");
886
887        firebase.auth().fetchSignInMethodsForEmail(email)
888            .then(function(signInMethods) {
889                if (signInMethods.length > 0) {
890                    // User exists, ask for password
891                    $("#step-initial-email").hide();
892                    $("#step-password").show();
893                    $("#password-email").val(email);
894                    // Defer the checkDirty call to ensure MDL has upgraded the component.
895                    setTimeout(function() {
896                        var passwordTextField = document.querySelector('#password-email').parentElement;
897                        if (passwordTextField && passwordTextField.MaterialTextfield) {
898                            passwordTextField.MaterialTextfield.checkDirty();
899                        }
900                    }, 0);
901                    $("#message").text("").css("color", "");
902                } else {
903                    // User does not exist, show registration form
904                    $("#step-initial-email").hide();
905                    $("#step-register").show();
906                    $("#register_email").val(email);
907                   // $("#message").text("Create your account to continue.").css("color", "");
908                }
909            })
910            .catch(function(error) {
911                $("#message").text(error.message).css("color", "red");
912            });
913    });
914
915    $("#sign-in-password").on("click", function() {
916        const email = $("#email").val().trim();
917        const password = $("#password").val().trim();
918        if (!password) {
919            $("#message").text("Please enter your password.").css("color", "red");
920            return;
921        }
922        firebase.auth().signInWithEmailAndPassword(email, password)
923            .then(userCredential => userCredential.user.getIdToken(true))
924            .then(idToken => $.post(actionUrl, { id_token: idToken }))
925            .then(() => window.location.reload())
926            .catch(function(error) {
927                var msg = (error.code === 'auth/wrong-password' || error.code === 'auth/invalid-credential')
928                    ? 'Incorrect password. Please try again.'
929                    : error.message;
930                showAuthToast(msg);
931            });
932    });
933
934const otpInput = document.getElementById('otp');
935  const verifyBtn = document.getElementById('verify-otp');
936
937  otpInput.addEventListener('input', function () {
938    // Allow only digits, and limit to 6
939    this.value = this.value.replace(/[^0-9]/g, '').slice(0, 6);
940
941    // Enable button only if exactly 6 digits entered
942    if (this.value.length === 6) {
943      verifyBtn.removeAttribute('disabled');
944    } else {
945      verifyBtn.setAttribute('disabled', true);
946    }
947  });
948
949
950    $("#send-otp,  #resend-otp-link").on("click", function() {
951         const $clickedBtn = $(this);
952            if ($clickedBtn.is("#resend-otp-link")) {
953      // Clear OTP field
954      $("#otp").val("").focus();
955      $("#verify-otp").prop("disabled", true);
956      $("#message").html('<i class="fa fa-check" style="color: green; margin-right: 5px;"></i>Verification code has been sent')
957             .css({"color": "green", "font-weight": "bold"})
958             .fadeIn().delay(5000).fadeOut();
959    }
960        const $sendBtn = $(this);
961        const firstName = $("#first_name").val().trim();
962        const lastName = $("#last_name").val().trim();
963        const email = $("#register_email").val().trim();
964        const password = $("#new_password").val().trim();
965        if (!firstName || !lastName || !email || !password) {
966        //    $("#message").text("Please fill in all fields.").css("color", "red");
967            return;
968        }
969        $sendBtn.prop("disabled", true);
970        //$("#message").text("Sending OTP...").css("color", "");
971
972sessionStorage.setItem('firstName', firstName);
973sessionStorage.setItem('lastName', lastName);
974sessionStorage.setItem('email', email);
975sessionStorage.setItem('password',password);
976
977        $.ajax({
978            url: `${backendBase}/send-otp`,
979            type: "POST",
980            data: JSON.stringify({ email, firstName, lastName, password }),
981            contentType: "application/json",
982            success: function() {
983               // $("#message").text("OTP sent successfully!").css("color", "green");
984                $("#step-register").hide();
985                $("#step-otp").show();
986                const email = sessionStorage.getItem('email');
987                $('#email-text').text(email);
988            },
989            error: function(xhr) {
990                const errorMsg = xhr.responseJSON ? xhr.responseJSON.message : "Failed to send OTP. Please try again.";
991                $("#message").text(errorMsg).css("color", "red");
992                $sendBtn.prop("disabled", false);
993            }
994        });
995    });
996
997    $("#verify-otp").on("click", function() {
998        const email = $("#register_email").val().trim();
999        const firstName = sessionStorage.getItem('firstName');
1000        const lastName = sessionStorage.getItem('lastName');
1001       //const email = sessionStorage.getItem('email');
1002       const password = sessionStorage.getItem('password');
1003        const otp = $("#otp").val().trim();
1004        if (!otp) {
1005            //$("#message").text("Please enter the OTP.");
1006            return;
1007        }
1008       // $("#message").text("Verifying OTP...");
1009        $.ajax({
1010            url: `${backendBase}/verify-otp`,
1011            type: "POST",
1012            data: JSON.stringify({ email, otp,firstName, lastName, password}),
1013            contentType: "application/json",
1014        })
1015        .done((data) => {
1016                if (data.uid && data.customToken) {
1017                   // $("#message").text("Account created successfully. Logging in...");
1018                    // Call Firebase login API
1019                    // Call Firebase login API 
1020                    firebase.auth().signInWithCustomToken(data.customToken)
1021                        .then(function(userCredential) {
1022                    return userCredential.user.getIdToken(true);
1023                })
1024                .then(function(idToken) {
1025                    // Post token to server to create session
1026                    $.post(actionUrl, { id_token: idToken }).done(function() {
1027                        window.location.reload();
1028                     })
1029                    // Handle failure to log in to server after Firebase login
1030                    // .fail(function() { $("#message").text("Server login failed. Please try again.").css("color", "red"); });
1031                    })
1032                        .catch((err) => {
1033                            console.error(err);
1034                            $("#message").text("Firebase login failed.");
1035                        });
1036                } else {
1037                    $("#message").text("Invalid response from server.");
1038                }
1039            })
1040            .fail(() => $("#message").text("Invalid code. Please try again."));
1041    });
1042
1043    // --- Forgot Password Flow ---
1044
1045    // 1. User clicks "Forgot Password?"
1046    $("#forgot-password-link").on("click", function(e) {
1047        e.preventDefault();
1048        const email = $("#password-email").val().trim();
1049        $("#step-password").hide();
1050        $("#step-forgot-password").show();
1051        $("#forgot-password-email").val(email);
1052        // Defer the checkDirty call to ensure MDL has upgraded the component.
1053        setTimeout(function() {
1054            var forgotPasswordTextField = document.querySelector('#forgot-password-email').parentElement;
1055            if (forgotPasswordTextField && forgotPasswordTextField.MaterialTextfield) {
1056                forgotPasswordTextField.MaterialTextfield.checkDirty();
1057            }
1058        }, 0);
1059
1060        $("#message").text("").css("color", "");
1061    });
1062
1063    // 2. User clicks "Send OTP" for password reset
1064    $("#send-reset-otp, #resend-otp-resetpassword-link").on("click", function() {
1065 const $clickedBtn = $(this);
1066            if ($clickedBtn.is("#resend-otp-resetpassword-link")) {
1067      // Clear OTP field
1068      $("#reset-otp").val("").focus();
1069      $("#reset-password-verify-otp").prop("disabled", true);
1070      $("#message").html('<i class="fa fa-check" style="color: green; margin-right: 5px;"></i>Verification code has been sent')
1071             .css({"color": "green", "font-weight": "bold"})
1072             .fadeIn().delay(5000).fadeOut();
1073    }
1074        const $sendBtn = $(this);
1075        const email = $("#forgot-password-email").val().trim();
1076        if (!email) {
1077            $("#message").text("Email is missing. Please start over.").css("color", "red");
1078            return;
1079        }
1080        $sendBtn.prop("disabled", true);
1081       // $("#message").text("Sending OTP...").css("color", "");
1082
1083        $.ajax({
1084            url: `${backendBase}/reset-password-send-otp`,
1085            type: "POST",
1086            data: JSON.stringify({ email }), // Sending only email for password reset
1087            contentType: "application/json",
1088            success: function() {
1089               // $("#message").text("OTP sent successfully! Please check your email.").css("color", "green");
1090                $("#step-forgot-password").hide();
1091                $("#step-reset-password").show();
1092            },
1093            error: function(xhr) {
1094                const errorMsg = xhr.responseJSON ? xhr.responseJSON.message : "Failed to send OTP. Please try again.";
1095                $("#message").text(errorMsg).css("color", "red");
1096                $sendBtn.prop("disabled", false);
1097            }
1098        });
1099    });
1100
1101    // 3. User enters OTP and new password, then clicks "Change Password"
1102    $("#save-new-password").on("click", function() {
1103        const email = $("#forgot-password-email").val().trim();
1104        const otp = $("#reset-otp").val().trim();
1105        const newPassword = $("#reset-new-password").val().trim();
1106
1107        if (!otp || !newPassword) {
1108           // $("#message").text("Please enter the OTP and a new password.").css("color", "red");
1109            return;
1110        }
1111
1112        //$("#message").text("Resetting password...").css("color", "");
1113
1114        $.ajax({
1115            url: `${backendBase}/reset-password-verify-otp`,
1116            type: "POST",
1117            data: JSON.stringify({ email, otp, newPassword }),
1118            contentType: "application/json",
1119            success: function() {
1120                $("#message").text("Password reset successfully! Please log in with your new password.").css("color", "green");
1121                $("#step-reset-password").hide();
1122                $("#step-password").show(); // Show password login step
1123                $("#reset-otp").val(""); // Clear OTP input
1124                $("#reset-new-password").val(""); // Clear password input
1125                $("#send-reset-otp").prop("disabled", false); // Re-enable the send OTP button for next time
1126            },
1127            error: (xhr) => { $("#message").text(xhr.responseJSON.message || "Failed to reset password.").css("color", "red"); }
1128        });
1129    });
1130    $(document).ready(function() {
1131        const email = sessionStorage.getItem('email');
1132        $('#email-text').text(email);
1133    });
1134    if (window.firebaseui && window.firebase && window.configureUIAuth) {
1135        window.configureUIAuth(
1136            document.getElementById("firebaseui-auth-container"),
1137            {
1138                actionUrl: "/givesome-auth/",
1139                isShopAdmin: false,
1140                providers: ["google"],
1141                providerArgs: {"google": {"fullLabel": "Sign in with Google"}},
1142            }
1143        );
1144    }
1145
1146    $('#show-email-flow').on('click', function() {
1147        $('#firebaseui-auth-container').hide();
1148        $(this).hide();
1149        $('p:contains("or")').hide();
1150        $('#step-initial-email').show();
1151    });
1152
1153    $('#cancel-email-flow').on('click', function() {
1154        $('#step-initial-email').hide();
1155        $('#firebaseui-auth-container').show();
1156        $('#show-email-flow').show();
1157        $('p:contains("or")').show();
1158        $('#message').text(''); // Clear any previous messages
1159    });
1160
1161    $(document).on('click', '#cancel-btn', function() {
1162        $('#step-register').hide();
1163        $('#firebaseui-auth-container').show();
1164        $('#show-email-flow').show();
1165        $('p:contains("or")').show();
1166    });
1167
1168    // This was missing from the original file but is needed for the cancel button on the forgot password form
1169    $("#cancel-forgot-password").on("click", function() {
1170        $("#step-forgot-password").hide();
1171        $("#step-password").show(); // Go back to password entry
1172        $("#message").text("").css("color", "");
1173    });
1174
1175    function showAuthToast(message) {
1176        var $toast = $('<div class="auth-toast auth-toast--error" role="alert">
1176' + message + '</div>');
1177        $('#step-password .firebaseui-card-actions').first().after($toast);
1178        setTimeout(function() { $toast.addClass('auth-toast--visible'); }, 10);
1179        setTimeout(function() {
1180            $toast.removeClass('auth-toast--visible');
1181            setTimeout(function() { $toast.remove(); }, 400);
1182        }, 4000);
1183    }
1184
1185    // --- Password Visibility Toggle ---
1186    $(document).on('click', '.firebaseui-id-password-toggle', function() {
1187        var $toggle = $(this);
1188        var $input = $toggle.siblings('.firebaseui-textfield, .firebaseui-new-password-component').find('input[type="password"], input[type="text"]');
1189
1190        if ($input.attr('type') === 'password') {
1191            $input.attr('type', 'text');
1192            $toggle.removeClass('firebaseui-input-toggle-on').addClass('firebaseui-input-toggle-off');
1193        } else {
1194            $input.attr('type', 'password');
1195            $toggle.removeClass('firebaseui-input-toggle-off').addClass('firebaseui-input-toggle-on');
1196        }
1197    });
1198
1199});
1200</script>
1200
1201
1202
1203                    </div>
1204
1205                    
1206                </main>
1207
1208            
1209            </div>
1210            
1211
1212            
1213
1214        </div>
1215
1216        
1217    <footer class="main-footer">
1218        <div class="container">
1219            <div class="flex-row row">
1220                <div class="col-sm-4 col left">
1221                
1222                    <img src="/media/filer_public/f5/4c/f54c7052-7fb7-4f1e-8132-c2d208ee7946/givesomeiconandword2020-crop.png" alt="" class="img-responsive footer-logo">
1223                
1224                    <div class="placeholder-edit-wrap"><div class="xt-global-ph xt-ph" id="xt-ph-footer-left"></div><div class="xt-global-ph xt-ph" id="xt-ph-footer-left-xtheme-anonymous-contact-layout"></div></div>
1225                </div>
1226                <div class="col-sm-5 col center">
1227                    <div class="placeholder-edit-wrap"><div class="xt-global-ph xt-ph" id="xt-ph-footer-center"><div class="row xt-ph-row"><div class="  col-md-12 col-sm-12 xt-ph-cell"><p><span style="font-family: Arial; font-size: 14.6667px; white-space: pre-wrap;">Givesome Management Inc - all rights reserved</span><br></p></div></div>
1228</div><div class="xt-global-ph xt-ph" id="xt-ph-footer-center-xtheme-anonymous-contact-layout"></div></div>
1229                   
1230                    <div>
1231                        &copy; Givesome 
1231<script>document.write(new Date().getFullYear())</script>
1231
1232                    </div>
1233                </div>
1234                <div class="col-sm-3 col right footer-3-content" style="align-items:end;">
1235                    <p>
1236                        <a href="/b/register/">
1237                            Register as a Company
1238                        </a>
1239                    </p>
1240                    <p>
1241                        <a href="/v/register/">
1242                            Register as a Charity
1243                        </a>
1244                    </p>
1245                    <div class="placeholder-edit-wrap"><div class="xt-global-ph xt-ph" id="xt-ph-footer-right"><div class="row xt-ph-row"><div class="  col-md-12 col-sm-12 xt-ph-cell"><section class="cms-page-links-plugin">
1246    
1247    
1248        <ul>
1249        
1250            <li>
1251                <a href="/cms/Privacy/">Privacy</a>
1252            </li>
1253        
1254            <li>
1255                <a href="/cms/Terms%20and%20Conditions/">Terms and Conditions</a>
1256            </li>
1257        
1258            <li>
1259                <a href="/cms/contact/">Contact</a>
1260            </li>
1261        
1262            <li>
1263                <a href="/cms/FAQs/">FAQs</a>
1264            </li>
1265        
1266        </ul>
1267    
1268</section></div></div>
1269<div class="row xt-ph-row"><div class="col-sm-12 xt-ph-cell"></div></div>
1270</div><div class="xt-global-ph xt-ph" id="xt-ph-footer-right-xtheme-anonymous-contact-layout"></div></div>
1271                </div>
1272            </div>
1273        </div>
1274    </footer>
1275
1276
1277    </div>
1278
1279    
1280        
1281    
1282    
1283    <div class="modal fade" tabindex="-1" role="dialog" id="givecard-dialog" style="display: none;">
1284        
1285        <div class="modal-dialog modal-md" role="document">
1286            <div class="modal-content">
1287                <button type="button" class="modal-close hidden-xs" data-dismiss="modal" aria-label="Close" onclick="closealldiv()">
1288                    <span aria-hidden="true"></span>
1289                </button>
1290
1291                <div class="modal-body  no-close-icon">
1292                    
1293        <form class="givecard-redeem-form">
1294            <h2 class="h3">Redeem your PIN</h2>
1295
1296            <div class="custom-input-group mt-5">
1297                <input type="hidden" name="csrfmiddlewaretoken" id="givecard-pin-csrf-token" value="YVXGzPS0N1JUzMy2MGaNDo9RKpnto2MkNnj1n0Z4ORc8qVvokuWnnoNyXpwBSGGr">
1298                <input type="text" id="givecard-pin-input" class="form-control pl-4" placeholder="AAAAAA" aria-label="PIN" maxlength="6" pattern="[A-Z0-9]{6}">
1299                <button class="btn btn-primary btn-rounded" type="button" id="givecard-pin-button" >
1300                    Redeem
1301                </button>
1302            </div>
1303
1304            <button type="button" data-dismiss="modal" class="btn btn-modal-close visible-xs mt-3" id="cancel-redemption">
1305                Cancel
1306            </button>
1307
1308            <p id="givecard-pin-error-text" class="text-danger"></p>
1309
1310            <div id="redeem-spinner" style="display: none;" class="my-3 text-center text-muted">
1311                <i class="fa fa-spin fa-spinner fa-lg"></i>
1312            </div>
1313        </form>
1314    
1315                </div>
1316            </div>
1317        </div>
1318    </div>
1319
1320
1321        
1322        
1323    
1324    
1325    <div class="modal fade" tabindex="-1" role="dialog" id="givecard-balance-dialog" style="display: none;">
1326        
1327        <div class="modal-dialog modal-lg" role="document">
1328            <div class="modal-content">
1329                <button type="button" class="modal-close hidden-xs" data-dismiss="modal" aria-label="Close" onclick="closealldiv()">
1330                    <span aria-hidden="true"></span>
1331                </button>
1332
1333                <div class="modal-body givecard-balance-modal no-close-icon">
1334                    
1335        <h2 class="h3">Active PINs - <span id="givecard-wallet-total-value" class="weight-normal">$0</span></h2>
1336
1337        <table class="table givecard-balance-table my-5">
1338            <tbody>
1339            
1340            
1341            </tbody>
1342        </table>
1343
1344        
1345            <div class="modal-user-not-logged-in-block my-3">
1346                <i class="fa fa-info-circle fa-lg text-primary fa-fw mr-2 mt-1"></i>
1347                <p class="mb-0">
1348                    <p class="mb-0">
1349                    <a href="/register/#register" class="text-underline">
1350                        Create an account here
1351                    </a>
1351 to track your personal impact, receive project completion videos and save your Givecard PIN balance. Any unused balance way otherwise be lost!
1352                </p>
1353            </div>
1354        
1355
1356        <div class="row mt-3">
1357            <div class="col-sm-6 col-sm-push-6 mt-3">
1358                <button type="button" class="btn btn-primary btn-block btn-rounded open-modal-from-another" data-target="#givecard-dialog">
1359                    $ Redeem PIN
1360                </button>
1361            </div>
1362            <div class="col-sm-6 col-sm-pull-6 mt-3">
1363                <button type="button" data-dismiss="modal" class="btn btn-block btn-rounded btn-default">
1364                    Close
1365                </button>
1366            </div>
1367        </div>
1368    
1369                </div>
1370            </div>
1371        </div>
1372    </div>
1373
1374
1375        
1376
1377    
1378    
1379    <div class="modal fade" tabindex="-1" role="dialog" id="givecard-success-dialog" style="display: none;">
1380        
1381        <div class="modal-dialog modal-md" role="document">
1382            <div class="modal-content">
1383                <button type="button" class="modal-close hidden-xs" data-dismiss="modal" aria-label="Close" onclick="closealldiv()">
1384                    <span aria-hidden="true"></span>
1385                </button>
1386
1387                <div class="modal-body fund-modal no-close-icon">
1388                    
1389        
1390       
1391
1392    <div class="">
1393               <div style="padding-bottom: 5px;height: 260px;background-size: cover;border-top-left-radius:15px;border-top-right-radius:15px;box-shadow: 0px 1px #88888845;" class="campaign-img">
1394               <img id="givecard-success-campaign-image" src="">
1395                    <div class="image-over-text">
1396                        <p id="givecard-success-campaign-name" class="query-head" style="color: #fff; margin-bottom: 25px"></p>
1397                    </div>
1398                </div>
1399
1400<div class="camp-suc">
1401                <div style="margin-bottom: 35px;">
1402                    <strong style="color: #000;font-weight: bold;font-size: 20px;">PIN Redeemed!</strong>
1403                    <div style="display: inline;float: right;color: #000;"><span id="givecard-total-value-incard">$0</span>&nbsp Balance</div>
1404                </div>
1405                <div class="h6 font-givesome">
1406                    <strong id="givecard-success-campaign-name2"></strong> has given you <strong id="givecard-success-amount"></strong>
1407                </div>
1408                <div class="givecard-success-custom-text">
1409            <div id="givecard-success-campaign-message" style="color: #000;">Sample onboarding message goes here, happy giving!</div>
1410                </div>
1411
1412
1413                 <a id="givecard-success-link" href="#">
1414                <button class="normal-text next-btn flex-center mb-20 mt-20">
1415               Find A Project </button></a>
1416</div>
1417                </div>
1418            </div>
1419
1420
1421    
1422                </div>
1423            </div>
1424        </div>
1425    </div>
1426
1427
1428        
1429    
1430    
1431
1432        
1433    
1434    
1435
1436        
1437 <div class="owl-loading-indicator_S inactive-loader" id="PageLoader">
1438    <i class="fa fa-spin fa-spinner text-muted fa-2x"></i>
1439  </div>
1440
1441        
1442    
1443
1444    
1445
1446    <a href="#" id="scroll_top" class="scroll-top-btn" data-toggle="tooltip" data-placement="left" data-title="Scroll to top">
1447        <i class="fa fa-angle-up"></i>
1448        <span class="sr-only">Scroll to top</span>
1449    </a>
1450    
1450<script src="/static/givesome_V1/js/jquery1-3.4.1.min.js"></script>
1450
1451
1452    
1452<script src="/static/givesome_V1/js/popper1.min.js"></script>
1452
1453
1454    
1454<script src="/static/givesome_V1/js/metisMenu.js"></script>
1454
1455    
1455<script src="/static/givesome_V1/js/custom.js"></script>
1455
1456
1457    
1457<script src="/static/shuup/front/js/vendor.js?v=3.12.6"></script>
1457
1458    
1458<script src="/static/shuup/front/js/scripts.js?v=3.12.6"></script>
1458
1459    
1459<script src="/static/givesome/givesome.js?v=2.10.2"></script>
1459
1460    
1460<script>
1461        window.dashboard_url = "/profile/";
1462    </script>
1462   
1463    
1464    
1465
1466    
1467    
1467<script>
1468        var current = 'America/Toronto';
1469        var guessed = window.moment.tz.guess(true);
1470        if (current !== guessed) {
1471            $.ajax({
1472                type: 'POST',
1473                url: '/set-timezone/',
1474                data: {
1475                    name: guessed,
1476                    csrfmiddlewaretoken: 'YVXGzPS0N1JUzMy2MGaNDo9RKpnto2MkNnj1n0Z4ORc8qVvokuWnnoNyXpwBSGGr',
1477                }
1478            });
1479        }
1480    </script>
1480
1481
1482    
1483    
1483<script>
1484      function exp_givecards($modal, codes, localStorageKey) {
1485        if ($modal.length) {  
1486          var shownGivecards = localStorage.getItem(localStorageKey)
1487          var newGivecard = false
1488          if (shownGivecards) {  
1489            
1490            shownGivecards = shownGivecards.split(";")
1491            codes.split(";").forEach(function(code) {
1492              if (!shownGivecards.includes(code)) {
1493                newGivecard = true
1494              }
1495            })
1496          }
1497          
1498          if (!shownGivecards || newGivecard) {
1499            localStorage.setItem(localStorageKey, codes)
1500            $modal.modal('show');
1501            return true
1502          }
1503        }
1504        return false
1505      }
1506
1507      function expiringGivecardsNotification() {
1508        exp_givecards(
1509          expiringModal,
1510          "",
1511          "expiring_givecards"
1512        )
1513      }
1514
1515      function receiptingInformationNotificationSeen() {
1516        let showModal = localStorage.getItem("receipting-information");
1517        if (!showModal) {
1518          localStorage.setItem("receipting-information", true);
1519          return true;
1520        }
1521        return false;
1522      }
1523
1524      function handleGivecardModals() {
1525        expiredModal = $("#givecard-expired-dialog")
1526        expiringModal = $("#givecard-expiring-balance-dialog")
1527
1528        var modalShown = exp_givecards(
1529          expiredModal,
1530          "",
1531          "expired_givecards"
1532        )
1533        if (!modalShown) {
1534          expiringGivecardsNotification()
1535        } else {
1536          expiredModal.on('hidden.bs.modal', function() {
1537            expiringGivecardsNotification()
1538            expiredModal.off('hidden.bs.modal');
1539          });
1540        }
1541      }
1542
1543      $(document).ready(function() {
1544        let showModal = receiptingInformationNotificationSeen();
1545        if (!showModal) {
1546          handleGivecardModals();
1547        } else {
1548          let receiptingModal = $("#receipting-information-dialog")
1549          receiptingModal.on("hidden.bs.modal", function() {
1550            handleGivecardModals();
1551            receiptingModal.off("hidden.bs.modal");
1552          });
1553          receiptingModal.modal("show");
1554        }
1555      });
1556    </script>
1556
1557
1558    
1559    
1559<script>
1560    function handleTap(event) {
1561        let tapped = $(event.target);
1562        if (!tapped.data("tapped")) {
1563            event.preventDefault();
1564            tapped.data("tapped", true);
1565            tapped.parent().tooltip("show");
1566        }
1567    }
1568    </script>
1568
1569
1570
1571
1572<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-6000b35b4d5411f7"></script>
vendor: 1 bytes, line 1572
1572
1573<script type="text/javascript">
1574    var f_name = "";
1575    var l_name = "";
1576    function Firstname(e){
1577        $(".get-full-name").val("");
1578        f_name=$(e).val();
1579        $(".get-full-name").val(f_name+" "+l_name);
1580    }
1581    function Lastname(e){
1582        $(".get-full-name").val("");
1583        l_name=$(e).val();
1584        $(".get-full-name").val(f_name+" "+l_name);
1585    }
1586
1587 $(document).ready(function () {
1588 // $(".sidebar").css("display", "none")
1589 });
1590$('body').click((event) => {
1591    if (event.target.id == "settiing_icon") {
1592        $('.menu-sidebar').show()
1593    } else {
1594        if(event.target.offsetParent.id!='sideBarNav'){
1595            $('.menu-sidebar').hide()
1596    }
1597    }
1598});
1599 $("#hide").click(function () {
1600    $(".sidebar").toggleClass("hidesidebar")
1601    $(".sidebar").removeClass("mini_sidebar")
1602 });
1603
1604              let slideIndex = 1;
1605              showSlides(slideIndex);
1606
1607              function plusSlides(n) {
1608                showSlides(slideIndex += n);
1609              }
1610
1611              function currentSlide(n) {
1612                showSlides(slideIndex = n);
1613              }
1614
1615              function showSlides(n) {
1616                let i;
1617                let slides = document.getElementsByClassName("slide");
1618                if(slides.length != 0){
1619                let dots = document.getElementsByClassName("dot");
1620                if (n > slides.length) {slideIndex = 1}
1621                if (n < 1) {slideIndex = slides.length}
1622                for (i = 0; i < slides.length; i++) {
1623                  slides[i].style.display = "none";
1624                }
1625                for (i = 0; i < dots.length; i++) {
1626    dots[i].className = dots[i].className.replace(" active", "");
1627                }
1628                let count = slideIndex-1
1629                if(count == 0){
1630                var a=$(slides[slides.length-1]).find(".featured-project-image5");
1631                }
1632                else{
1633                var a=$(slides[count-1]).find(".featured-project-image5");
1634                }
1635                if (slides.length == count+1){
1636                    var b=$(slides[0]).find(".featured-project-image5");
1637                }
1638                else{
1639                var b=$(slides[count+1]).find(".featured-project-image5");
1640                }
1641                var left = $(a).attr('src');
1642                var right = $(b).attr('src');
1643                $('.featured-image-project-14').attr('src',left);
1644                $('.featured-image-project-24').attr('src',right);
1645                slides[slideIndex-1].style.display = "block";
1646                dots[slideIndex-1].className += " active";
1647                }
1648              }
1649
1650  document.querySelectorAll('.watermarked').forEach(function(el) {
1651        el.dataset.watermark = (el.dataset.watermark + ' ').repeat(10);
1652});
1653$(document).on('click', '.nav-givecard .dropdown-menu', function (e) {
1654    e.stopPropagation();
1655  });
1656
1657</script>
vendor: 1 bytes, line 1657
1657
1658<script>window.MULTIVENDOR_SETTINGS = {"gmaps_api_key": "AIzaSyAE1_6pLMP02gXQDEzOzD0LkjgGL34eqYs", "gmaps_countries": null, "distance_unit": "km", "customer_location": null};</script>
1658<script src="/static/shuup_multivendor/scripts.js?v=2.12.11"></script>
1658<script src="/static/shuup_wishlist/js/scripts.js?v=1.2.3"></script>
1658<script src="/static/stripe-multivendor/stripe-multivendor.js?v=2.16.2"></script>
1658<script src="/static/shuup_messages/send.js"></script>
1658</body>
1659</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.