PageSourceSearch

https://mypridenet.springfield.edu/home_login

html springfield.edu collected 2026-09-24 09:21:25 UTC 84,863 bytes, 1,924 lines download raw bytes

1
2
3
4
5
6<!DOCTYPE html>
7<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
8
9
10<script>
11    var jsPageName = "Login"; // pass strPageName to JavaScript, used in function setPageName() [accessibility.js]
12    var jsAjaxRequest = ('0' === '1') ? true : false;
13</script>
13
14
15 <!-- AX != 1 -->
16
17    
17<script>
18        var url = new URL(location.href);
19        history.replaceState({type: ""} , '', url.pathname + url.search);
20    </script>
20
21    
22    
23
24    <head>
25        <!-- META TAGS -->
26        <meta charset="utf-8">
27        <meta name="viewport" content="width=device-width, initial-scale=1">
28        
29        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1,requiresActiveX=true">
30        <meta name="apple-itunes-app" content="app-id=566688504, affiliate-data=myAffiliateData, app-argument=myURL">
31
32        <title>Login</title>
33        <meta name="description" content="The campus engagement platform for Springfield College - Powered by CampusGroups.">
34        <meta name="title" content="Springfield College">
35
36        
37
38        <!-- CSS IMPORT -->
39        
40
41            <!-- FONT FOR DEV -->
42            <link href="/css/fonts/open-sans.css" rel="stylesheet" type="text/css" >
43
44            <!-- FAVICON -->
45            <link rel="icon" type="images/x-icon" href="/upload/springfield/2024/s1_image_upload_599692_Gulick_Triangle25x25px_102310142.png">
46            <link rel="shortcut icon" type="images/x-icon" href="/upload/springfield/2024/s1_image_upload_599692_Gulick_Triangle25x25px_102310142.png">
47
48            <!-- JQUERY UI -->
49            <link rel="stylesheet" type="text/css" href="/bower_components/jquery-ui/themes/base/jquery-ui.min.css">
50
51            <!-- AUTOCOMPLETE -->
52            <link rel="stylesheet" type="text/css" href="/js/jquery/jquery.autocomplete.css">
53
54            <!-- BOOTSTRAP & GLYPHICONS -->
55            <link rel="stylesheet" type="text/css" href="/bower_components/bootstrap/dist/css/bootstrap.min.css">
56            <link rel="stylesheet" type="text/css" href="/static/plugins/bootstrap-multiselect/dist/css/bootstrap-multiselect.css">
57            <link rel="stylesheet" type="text/css" href="/glyphicons-pro/css/glyphicons-filetypes.css">
58
59            <!-- THICKBOX -->
60            <link rel="stylesheet" type="text/css" href="/js/thickbox/thickbox.css">
61        
62
63        <!-- JQUERY & FONT -->
64        
64<script src="/bower_components/jquery/dist/jquery.min.js"></script>
64
65        
65<script src="/bower_components/jquery-ui/jquery-ui.min.js"></script>
65
66
67        <!-- BOOTSTRAP -->
68        
68<script src="/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
68
69        
69<script src="/static/plugins/bootstrap-multiselect/dist/js/bootstrap-multiselect.js"></script>
69
70        
70<script src="/static/js/bootstrap.cg.js"></script>
70
71
72        
72<script type="text/javascript" src="/js/accessibility.js?v=20251112.1"></script>
72
73        
73<script type="text/javascript" src="/js/scripts.js?v=20251007.1"></script>
73
74
75        <link rel="stylesheet" type="text/css" href="/bower_components/mdi/css/materialdesignicons.min.css">
76        <link rel="stylesheet" type="text/css" href="/static/css/materialdesigniconscustom.css">
77        
78        <link rel="stylesheet" type="text/css" href="/static/css/header.css?v=20220425.1">
79        <link rel="stylesheet" type="text/css" href="/css/bootstrap-customV.css?v=20250729.1">
80        
81        
82    </head>
83
84    <body class="body-background " data-menu="">
85
86        <!-- SKIP links - skip to top of main content -->
87        <div id="div-skip-links" class="skip-link-container-mobile">
88                
89            <span style="padding: 5px"><a id="a-skip-to-main-content" href="javascript:void('skip-to-main-content');" class="skip-link" onclick="setFocusToContent(true);" aria-label="Skip to Main Content">Skip to Main Content</a></span>
90
91            <span id="span-skip-to-left-navigation" style="padding: 5px; display: none;"><a id="a-skip-to-left-navigation" href="javascript:void('skip-to-navigation');" class="skip-link" onclick="setFocusToSidebar();" aria-label="Skip to Navigation">Skip to Navigation</a></span>
92
93            <!-- ACCESSIBILITY -->
94            
95
96            
96<script>
97                // if we're on mobile we will not enable the skip links
98                const isMobileDevice = /Mobi/i.test(window.navigator.userAgent);
99                // console.log('> isMobileDevice=' + isMobileDevice);
100
101                $(window).on('load', function () {
102                    if (!isMobileDevice) {
103                        var elem = document.getElementById('div-skip-links');
104                        if (typeof elem !== undefined) {
105                            elem.classList.remove('skip-link-container-mobile');
106                            elem.classList.add('skip-link-container');
107                        }
108                    }
109                });
110            </script>
110
111        </div>
112
113        <!-- School custom code -->
114        
114<script>
115// START: Put Arrow On Reservation Form Submit Button
116$(document).ready(function(){
117    // Only run on pages with the URL "/survey?answerer_uid="
118    if(window.location.pathname === "/survey" && window.location.search.indexOf("answerer_uid=") !== -1){
119      // Find the Submit button using its name attribute
120    var $submitButton = $('input[name="Submit"]');
121    
122    // Only proceed if the button exists
123    if ($submitButton.length) {
124      // Create an arrow element with a downward arrow Unicode character
125      var $arrow = $('<div id="animated-arrow">&#x2193;</div>');
126      
127      // Basic arrow styles: adjust font size, position, and z-index as needed
128      $arrow.css({
129        'position': 'absolute',
130        'font-size': '40px',
131        'z-index': 1000,
132        'color': '#f00' // adjust color as needed
133      });
134      
135      // Variable to store the base top position of the arrow
136      var baseTop = 0;
137      
138      // Function to position the arrow relative to the Submit button
139      function positionArrow() {
140        var offset = $submitButton.offset();
141        var arrowLeft = offset.left + ($submitButton.outerWidth() / 2) - 10;
142        baseTop = offset.top - 50; // adjust to position above the button
143        $arrow.css({
144          'left': arrowLeft,
145          'top': baseTop
146        });
147      }
148      
149      // Initially position the arrow
150      positionArrow();
151      
152      // Append the arrow to the body
153      $('body').append($arrow);
154      
155      // Animate the arrow: a simple up and down loop
156      (function animateArrow() {
157        $arrow.animate({ top: baseTop - 10 }, 500)
158              .animate({ top: baseTop }, 500, animateArrow);
159      })();
160      
161      // Reposition the arrow when the window is resized or scrolled
162      $(window).on('resize scroll', function() {
163        positionArrow();
164      });
165    }
166    }
167});
168// END: Put Arrow On Reservation Form Submit Button
169
170// Wait until all the CG processing is done (this is after load is complete)
171$(window).ajaxComplete(function() {
172
173    //=============================================
174    // START: REMOVE UNWANTED NAVIGATION
175    //=============================================
176    // Remove Change Password from menu
177    $("ul.dropdown-menu.dropdown-menu-right > li > a").remove(":contains('Password')");
178    // Remove CG Communities from menu
179    $("ul.dropdown-menu.dropdown-menu-right > li > a").remove(":contains('Users Community')");
180    // Remove Change Password from profile menu
181    $("#side-menu > li > a").remove(":contains('Password')");
182    // Remove "My Schedule" from navigation
183    $('li a[data-pendo="my_schedule"]').closest('li').remove(); 
184    // Remove More from navigation (contains inbox and my transactions)
185    $('li a#a-left-nav-more').closest('li').remove();
186    //=============================================
187    // END: REMOVE UNWANTED NAVIGATION
188    //=============================================
189    
190    //=============================================
191    // START: FIX CALENDAR WEEK VIEW
192    //=============================================
193    // Create a function so it can be re-called when the window changes size
194    function adjustSidebarRows() {
195        // Check if we are on the "web_app" page and the URL contains "view=day" so only applies to this page
196        if (window.location.pathname === '/web_app' && window.location.search.includes('view=day')) {
197            // Select all div elements with the room names using the specified classes (even or odd)
198            $('.rct-sidebar-row.rct-sidebar-row-even, .rct-sidebar-row.rct-sidebar-row-odd').each(function() {
199                // Check the room text length in the anchor tags and add ellipsis if necessary
200                $(this).find('a').each(function() {
201                    var text = $(this).text();
202                    if (text.length > 20) {
203                        var start = text.slice(0, 12); // Get the first 12 characters
204                        var end = text.slice(-5);      // Get the last 5 characters
205                        var newText = start + '...' + end; // Combine with ellipsis in the middle
206                        $(this).text(newText); // Set the new shortened text
207                    }
208                });
209            });
210        }
211    }
212
213    // Apply adjustments on page load
214    adjustSidebarRows();
215
216    // Reapply adjustments when the window is resized
217    $(window).resize(function() {
218        setTimeout(function() {
219            adjustSidebarRows();
220        }, 100); // Delay of 100ms to allow other resize events to finish
221    });
222    //=============================================
223    // END: FIX CALENDAR WEEK VIEW
224    //=============================================
225    
226	//=============================================
227	// START: MAKE FIRST PAGE IN WEBSITE TEMPLATE ONLY DUPLICATABLE & REMOVE CREATE PAGE BUTTON
228	//=============================================
229	
230	// Check if the current URL contains "web_site" and has the URL variable "edittemplate=true"
231	if (window.location.href.indexOf("web_site") !== -1 && window.location.href.indexOf("edittemplate=true") === -1) {
232	
233		// Remove Create Page From Website
234		$("a[onclick=\"openModal('/create_web_page?ax=1&theme_id=1194');\"]").remove();
235	
236		// Remove Create Page from the Menu item on the page
237		$('a.btn.btn-grey[onclick*="createWebPageForMenu"]').remove();
238	
239		// Find all 'li' children in the 'ul' with ID 'divAllItems' that contain an anchor tag
240		// with text equal to or starting with "Site Template"
241		$('#divAllItems li').filter(function() {
242			return $(this).find('a').filter(function() {
243				var linkText = $(this).text()
244					.replace(/\u00a0/g, ' ')
245					.replace(/\s+/g, ' ')
246					.trim();
247	
248				return linkText.indexOf("Site Template") === 0;
249			}).length > 0;
250		}).each(function() {
251	
252			// Change the background color to yellow so I know what I've selected
253			$(this).css('background-color', 'yellow');
254	
255			// Remove all dropdown options except the one that contains "Duplicate"
256			$(this).find('.dropdown-menu li').each(function() {
257				if ($(this).text().trim().toLowerCase().indexOf('duplicate') === -1) {
258					$(this).remove();
259				}
260			});
261	
262			// Remove the 'Edit' node based on text content
263			$(this).find('a.btn.btn-grey').filter(function() {
264				return $(this).text().trim() === "Edit";
265			}).remove();
266	
267			// Remove the specified 'Drag' node
268			$(this).find('a.btn.btn-grey.handle[href="javascript:void(0);"]').remove();
269	
270			// Uncheck and disable the checkbox with the label "Publish"
271			$(this).find('input[type="checkbox"]').filter(function() {
272				return $(this).next('label').text().trim() === "Publish";
273			}).prop('checked', false).prop('disabled', true);
274	
275			// Check and disable the checkbox with the label "Hide in Menu"
276			$(this).find('input[type="checkbox"]').filter(function() {
277				return $(this).next('label').text().trim() === "Hide in Menu";
278			}).prop('checked', true).prop('disabled', true);
279	
280			// Remove all the links on the page title so you can't change the name
281			$(this).find('h4.media-heading a').each(function() {
282				$(this).contents().unwrap();
283			});
284	
285			// Remove the edit pencil near the name
286			$(this).find('h4.media-heading span.small.mdi.mdi-pencil.aria-decorative').remove();
287	
288			// Disable the checkbox on the left under the page name
289			$(this).find('input[type="checkbox"][name="checkbox_listing"]').prop('disabled', true);
290	
291			// Disable the home radio button
292			$(this).find('input[type="radio"][name="home"]').prop('disabled', true);
293	
294			// Disable the menu selection Select menu
295			$(this).find('select[name="web_menus"]').prop('disabled', true);
296		});
297	}
298	
299	//=============================================
300	// END: MAKE FIRST PAGE IN WEBSITE TEMPLATE ONLY DUPLICATABLE
301	//=============================================
302
303    //=============================================
304    // START: HIDE SECTIONS & FILTER ACCOUNT TYPE CHECKBOXES INSIDE DIRECTORY IFRAME
305    //=============================================
306	var $iframe = $("iframe");
307    if ($iframe.length && !$iframe.data("iframeObserverAttached")) {
308        // Mark that the observer has been attached so it's not reattached on subsequent ajaxComplete events.
309        $iframe.data("iframeObserverAttached", true);
310        $iframe.one("load", function() {
311            try {
312                var iframeUrl = $iframe.prop("contentWindow").location.href;
313                // Build the target URL dynamically using the current subdomain.
314                var currentSubdomain = window.location.hostname;
315                var targetUrl = "https://" + currentSubdomain + "/webapp/directory";
316                
317                // Ensure the iframe URL starts with our target URL.
318                if (iframeUrl.indexOf(targetUrl) === 0) {
319                    var $iframeDoc = $($iframe.prop("contentWindow").document);
320                    
321                    // Define your modification functions.
322                    function hideUnwantedSections() {
323                        var hideStrings = [
324                            "Job Title",
325                            "Year of Graduation",
326                            "Looking For",
327                            "City",
328                            "State",
329                            "Company"
330                        ];
331                        $iframeDoc.find("div.section.bordered").each(function() {
332                            var text = $(this).text();
333                            for (var i = 0; i < hideStrings.length; i++) {
334                                if (text.indexOf(hideStrings[i]) !== -1) {
335                                    $(this).hide();
336                                    console.log("Hid section containing: " + hideStrings[i]);
337                                    break;
338                                }
339                            }
340                        });
341                    }
342                    
343                    function filterAccountType() {
344                        var allowedAccountTypes = ["Student", "Staff", "Faculty", "Emeritus"];
345                        // Locate the container that includes "Account Type"
346                        var $accountTypeContainer = $iframeDoc.find("div.section.bordered").filter(function() {
347                            return $(this).text().indexOf("Account Type") !== -1;
348                        });
349                        if ($accountTypeContainer.length) {
350                            // If the "See more" button is visible, click it.
351                            var $seeMoreButton = $accountTypeContainer.find("button.see-more-button");
352                            if ($seeMoreButton.length && $seeMoreButton.is(":visible")) {
353                                $seeMoreButton.trigger("click");
354                                console.log("Triggered 'See more' button.");
355                            }
356                            // Allow time for the list to expand, then filter the checkboxes.
357                            setTimeout(function() {
358                                $accountTypeContainer.find("ul.default > li").each(function() {
359                                    var labelText = $(this).find("label").text().trim();
360                                    if (allowedAccountTypes.indexOf(labelText) === -1) {
361                                        $(this).hide();
362                                        console.log("Hid account type: " + labelText);
363                                    }
364                                });
365                                // Remove the "See more" button.
366                                $accountTypeContainer.find("button.see-more-button").remove();
367                            }, 500);
368                        }
369                    }
370                    
371                    // Create a function to apply your changes with the observer temporarily disconnected.
372                    function applyModifications() {
373                        observer.disconnect(); // Temporarily disconnect to prevent infinite loops.
374                        hideUnwantedSections();
375                        filterAccountType();
376                        // Reattach the observer after a short delay.
377                        setTimeout(function() {
378                            observer.observe($iframeDoc[0].body, {
379                                childList: true,
380                                subtree: true
381                            });
382                        }, 500);
383                    }
384                    
385                    // Run the modifications initially.
386                    hideUnwantedSections();
387                    filterAccountType();
388                    
389                    // Set up the MutationObserver.
390                    var observer = new MutationObserver(function(mutations) {
391                        applyModifications();
392                    });
393                    
394                    observer.observe($iframeDoc[0].body, {
395                        childList: true,
396                        subtree: true
397                    });
398                    
399                    console.log("MutationObserver attached to iframe content.");
400                } else {
401                    console.log("Iframe URL does not match target: " + iframeUrl);
402                }
403            } catch (err) {
404                console.error("Error accessing iframe content: ", err);
405            }
406        });
407    }
408    //=============================================
409    // END: HIDE SECTIONS & FILTER ACCOUNT TYPE CHECKBOXES INSIDE DIRECTORY IFRAME
410    //=============================================
411});
412</script>
412
413
414<style>
415.card-header h2.h4.header-cg--h4.cg-custom-content{margin-top:1px !important;margin-bottom:1px !important;}
416.card-header{
417border-radius:6px 6px 0 0;
418box-shadow: 0 2px 2px rgba(204, 197, 185, 0.5);
419-webkit-box-shadow: 0 2px 2px rgba(204, 197, 185, 0.5);
420  -moz-box-shadow: 0 2px 2px rgba(204, 197, 185, 0.5);
421  background-color: #9e2f35;
422  font-family: 'raleway';
423  background: linear-gradient(-90deg, rgba(1, 1, 1, 0.01) 0%, rgba(1, 1, 1, 0.01) 55%, transparent 55%, transparent 100%), linear-gradient(90deg, rgba(1, 1, 1, 0.07) 0%, rgba(1, 1, 1, 0.07) 19%, transparent 19%, transparent 100%), linear-gradient(112.5deg, rgba(0, 0, 0, 0.04) 0%, rgba(0, 0, 0, 0.04) 37%, transparent 37%, transparent 100%), linear-gradient(67.5deg, rgba(1, 1, 1, 0.05) 0%, rgba(1, 1, 1, 0.05) 81%, transparent 81%, transparent 100%), linear-gradient(22.5deg, rgba(0, 0, 0, 0.02) 0%, rgba(0, 0, 0, 0.02) 16%, transparent 16%, transparent 100%), linear-gradient(45deg, transparent 0%, transparent 31%, transparent 31%, transparent 100%), linear-gradient(135deg, rgba(1, 1, 1, 0.04) 0%, rgba(1, 1, 1, 0.04) 8%, transparent 8%, transparent 100%), linear-gradient(112.5deg, rgba(0, 0, 0, 0.03) 0%, rgba(0, 0, 0, 0.03) 81%, transparent 81%, transparent 100%), linear-gradient(157.5deg, rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.05) 17%, transparent 17%, transparent 100%), linear-gradient(157.5deg, rgba(1, 1, 1, 0.02) 0%, rgba(1, 1, 1, 0.02) 76%, transparent 76%, transparent 100%), linear-gradient(22.5deg, rgba(1, 1, 1, 0.06) 0%, rgba(1, 1, 1, 0.06) 38%, transparent 38%, transparent 100%), linear-gradient(135deg, rgba(1, 1, 1, 0.01) 0%, rgba(1, 1, 1, 0.01) 92%, transparent 92%, transparent 100%), linear-gradient(157.5deg, rgba(1, 1, 1, 0.03) 0%, rgba(1, 1, 1, 0.03) 95%, transparent 95%, transparent 100%), linear-gradient(135deg, rgba(1, 1, 1, 0.05) 0%, rgba(1, 1, 1, 0.05) 95%, transparent 95%, transparent 100%), linear-gradient(0deg, rgba(1, 1, 1, 0.01) 0%, rgba(1, 1, 1, 0.01) 91%, transparent 91%, transparent 100%), linear-gradient(90deg, rgba(0, 0, 0, 0.04) 0%, rgba(0, 0, 0, 0.04) 5%, transparent 5%, transparent 100%), linear-gradient(22.5deg, rgba(0, 0, 0, 0.03) 0%, rgba(0, 0, 0, 0.03) 36%, transparent 36%, transparent 100%), linear-gradient(45deg, rgba(1, 1, 1, 0.01) 0%, rgba(1, 1, 1, 0.01) 20%, transparent 20%, transparent 100%), linear-gradient(0deg, rgba(1, 1, 1, 0) 0%, rgba(1, 1, 1, 0) 41%, transparent 41%, transparent 100%), linear-gradient(157.5deg, rgba(0, 0, 0, 0.02) 0%, rgba(0, 0, 0, 0.02) 93%, transparent 93%, transparent 100%), linear-gradient(90deg, rgba(1, 1, 1, 0.06) 0%, rgba(1, 1, 1, 0.06) 18%, transparent 18%, transparent 100%), linear-gradient(67.5deg, rgba(1, 1, 1, 0.04) 0%, rgba(1, 1, 1, 0.04) 10%, transparent 10%, transparent 100%), linear-gradient(22.5deg, rgba(0, 0, 0, 0.02) 0%, rgba(0, 0, 0, 0.02) 47%, transparent 47%, transparent 100%), linear-gradient(112.5deg, rgba(0, 0, 0, 0.06) 0%, rgba(0, 0, 0, 0.06) 49%, transparent 49%, transparent 100%), linear-gradient(67.5deg, rgba(1, 1, 1, 0.03) 0%, rgba(1, 1, 1, 0.03) 30%, transparent 30%, transparent 100%), linear-gradient(112.5deg, rgba(0, 0, 0, 0.07) 0%, rgba(0, 0, 0, 0.07) 26%, transparent 26%, transparent 100%), linear-gradient(45deg, rgba(0, 0, 0, 0.03) 0%, rgba(0, 0, 0, 0.03) 24%, transparent 24%, transparent 100%), linear-gradient(135deg, rgba(0, 0, 0, 0.04) 0%, rgba(0, 0, 0, 0.04) 93%, transparent 93%, transparent 100%), linear-gradient(45deg, rgba(1, 1, 1, 0.03) 0%, rgba(1, 1, 1, 0.03) 82%, transparent 82%, transparent 100%), linear-gradient(90deg, rgba(1, 1, 1, 0) 0%, rgba(1, 1, 1, 0) 4%, transparent 4%, transparent 100%), linear-gradient(157.5deg, rgba(1, 1, 1, 0.05) 0%, rgba(1, 1, 1, 0.05) 22%, transparent 22%, transparent 100%), linear-gradient(45deg, rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.05) 19%, transparent 19%, transparent 100%), linear-gradient(45deg, rgba(1, 1, 1, 0.04) 0%, rgba(1, 1, 1, 0.04) 14%, transparent 14%, transparent 100%), linear-gradient(157.5deg, rgba(0, 0, 0, 0.01) 0%, rgba(0, 0, 0, 0.01) 21%, transparent 21%, transparent 100%), linear-gradient(-20deg, #c5002e, #ff325f);}
424
425/**! 01. Reset **/
426body {
427  -webkit-font-smoothing: antialiased;
428  -moz-osx-font-smoothing: grayscale;
429  font-family: 'Open Sans', 'Helvetica', 'Arial', sans-serif;
430  font-weight: 400;
431}
432h1,
433h2,
434h3,
435h4,
436h5,
437h6,
438.h1,
439.h2,
440.h3,
441.h4,
442.h5,
443.h6 {
444  font-family: 'Open Sans', 'Helvetica', 'Arial', sans-serif;
445  font-weight: 300;
446  font-variant-ligatures: common-ligatures;
447  margin-top: 0;
448  margin-bottom: 0;
449}
450h1,
451.h1 {
452  font-size: 3.14285714em;
453  line-height: 1.31818182em;
454}
455h2,
456.h2 {
457  font-size: 2.35714286em;
458  line-height: 1.36363636em;
459}
460h3,
461.h3 {
462  font-size: 1.78571429em;
463  line-height: 1.5em;
464}
465h4,
466.h4 {
467  font-size: 1.35714286em;
468  line-height: 1.36842105em;
469}
470h5,
471.h5 {
472  font-size: 1em;
473  line-height: 1.85714286em;
474}
475h6,
476.h6 {
477  font-size: 0.85714286em;
478  line-height: 2.16666667em;
479}
480
481
482strong {
483  font-weight: 600;
484}
485hr {
486  margin: 1.85714286em 0;
487  border-color: #fafafa;
488}
489
490h2.card-header, h3.card-header, h4.card-header{color:white;}
491
492/**! 06. Buttons **/
493.btn {
494  font-family: 'Open Sans', 'Helvetica', 'Arial', sans-serif;
495  transition: 0.1s linear;
496  -webkit-transition: 0.1s linear;
497  -moz-transition: 0.1s linear;
498  border-radius: 6px;
499  padding-top: 0.46428571em;
500  padding-bottom: 0.46428571em;
501  padding-right: 2.78571429em;
502  padding-left: 2.78571429em;
503  border: 1px solid #252525;
504  border-width: 1px;
505  font-size: inherit;
506  line-height: 1.85714286em;
507}
508.btn .btn__text,
509.btn i {
510  color: #252525;
511  border-color: #252525;
512  font-weight: 700;
513  font-size: 0.85714286em;
514}
515.btn[class*='col-'] {
516  margin-left: 0;
517  margin-right: 0;
518}
519.btn:active {
520  box-shadow: none;
521  -webkit-box-shadow: none;
522}
523.btn.bg--facebook,
524.btn.bg--twitter,
525.btn.bg--instagram,
526.btn.bg--googleplus,
527.btn.bg--pinterest,
528.btn.bg--dribbble,
529.btn.bg--behance,
530.btn.bg--dark {
531  border-color: rgba(0, 0, 0, 0) !important;
532}
533.btn.bg--facebook .btn__text,
534.btn.bg--twitter .btn__text,
535.btn.bg--instagram .btn__text,
536.btn.bg--googleplus .btn__text,
537.btn.bg--pinterest .btn__text,
538.btn.bg--dribbble .btn__text,
539.btn.bg--behance .btn__text,
540.btn.bg--dark .btn__text {
541  color: #fff;
542}
543.btn.bg--facebook .btn__text i,
544.btn.bg--twitter .btn__text i,
545.btn.bg--instagram .btn__text i,
546.btn.bg--googleplus .btn__text i,
547.btn.bg--pinterest .btn__text i,
548.btn.bg--dribbble .btn__text i,
549.btn.bg--behance .btn__text i,
550.btn.bg--dark .btn__text i {
551  color: #fff;
552}
553.btn.bg--facebook:hover,
554.btn.bg--twitter:hover,
555.btn.bg--instagram:hover,
556.btn.bg--googleplus:hover,
557.btn.bg--pinterest:hover,
558.btn.bg--dribbble:hover,
559.btn.bg--behance:hover,
560.btn.bg--dark:hover {
561  opacity: .9;
562}
563.btn.bg--error {
564  background: #e23636;
565  border-color: #e23636 !important;
566}
567.btn.bg--error:hover {
568  background: #e54c4c;
569  border-color: #e54c4c !important;
570  color: #fff !important;
571}
572.btn.bg--error .btn__text {
573  color: #fff;
574}
575.btn.bg--error .btn__text i {
576  color: #fff;
577}
578@media all and (min-width: 768px) {
579  .btn + .btn {
580    margin-left: 1.85714286em;
581  }
582}
583.btn:first-child {
584  margin-left: 0;
585}
586.btn:last-child {
587  margin-right: 0;
588}
589.btn--xs {
590  padding-top: 0;
591  padding-bottom: 0;
592  padding-right: 1.39285714em;
593  padding-left: 1.39285714em;
594}
595.btn--sm {
596  padding-top: 0.30952381em;
597  padding-bottom: 0.30952381em;
598  padding-right: 1.85714286em;
599  padding-left: 1.85714286em;
600}
601.btn--lg {
602  padding-top: 0.58035714em;
603  padding-bottom: 0.58035714em;
604  padding-right: 3.48214286em;
605  padding-left: 3.48214286em;
606}
607.btn--lg .btn__text {
608  font-size: 1.07142857em;
609}
610.btn--primary,
611.btn--primary:visited {
612  background: #4a90e2;
613  border-color: #4a90e2;
614}
615.btn--primary .btn__text,
616.btn--primary:visited .btn__text {
617  color: #fff;
618}
619.btn--primary .btn__text i,
620.btn--primary:visited .btn__text i {
621  color: #fff;
622}
623.btn--primary:hover {
624  background: #609de6;
625}
626.btn--primary:active {
627  background: #3483de;
628}
629.btn--primary-1,
630.btn--primary-1:visited {
631  background: #31639c;
632  border-color: #31639c;
633}
634.btn--primary-1 .btn__text,
635.btn--primary-1:visited .btn__text {
636  color: #fff;
637}
638.btn--primary-1:hover {
639  background: #376faf;
640}
641.btn--primary-1:active {
642  background: #2b5789;
643}
644.btn--primary-2,
645.btn--primary-2:visited {
646  background: #465773;
647  border-color: #465773;
648}
649.btn--primary-2 .btn__text,
650.btn--primary-2:visited .btn__text {
651  color: #fff;
652}
653.btn--primary-2:hover {
654  background: #506383;
655}
656.btn--primary-2:active {
657  background: #3c4b63;
658}
659.btn--secondary {
660  background: #fafafa;
661  border-color: #fafafa;
662}
663.btn--secondary:hover {
664  background: #ffffff;
665}
666.btn--secondary:active {
667  background: #f5f5f5;
668}
669.btn--white {
670  background: #fff;
671  color: #252525;
672  border-color: #fff;
673}
674.btn--white i {
675  color: #252525;
676}
677.btn--transparent {
678  background: none;
679  border-color: rgba(0, 0, 0, 0);
680  padding-left: 0;
681  padding-right: 0;
682}
683.btn--transparent.btn--white .btn__text {
684  color: #fff;
685}
686.btn--unfilled {
687  background: none;
688}
689.btn--unfilled.btn--white .btn__text {
690  color: #fff;
691}
692.btn--unfilled.btn--white i {
693  color: #fff;
694}
695.btn--floating {
696  position: fixed;
697  bottom: 3.71428571em;
698  right: 3.71428571em;
699  z-index: 10;
700}
701.dark-blue-btn span, .dark-blue-btn .btn--primary {
702background: #862633;
703border-color: #862633;
704
705}
706
707/*START: Fix for Survey Submit buttons */
708.btn-large{font-size: 0.85em !important;}
709   
710/*END: Fix for Survey Submit buttons */
711
712#web_white_bkgrnd_wrapper{background-color:white;margin:-2em;padding:2em;margin-top:-0.8em;}
713#a-sign-in-button_1 {font-size:14pt !important;}
714
715/* Safari Day Room Schedule Fix*/
716.tui-full-calendar-vlayout-container {
717position: relative;
718overflow: visible;
719height: auto !important;
720}
721
722/*Hide Logo in footer on homepage */
723footer.footer__home .col-md-offset-1_5 img {
724    display: none;
725}
726
727/* BETA: Hide Campus Groups Ad Lightboxes
728#pendo-base._pendo-step-container {
729  display: none !important;
730}*/
731
732</style>
733        
734        <!-- End school custom code -->
735    
736
737        <!-- Modal -->
738        <div id="primary-modal" class="modal fade" role="dialog">
739            <div class="modal-dialog" role="document">
740                <div class="modal-content">
741                    <p class="loader">
742                        <img alt="" aria-hidden="true" src="/images/loader-big.gif">
743                        <br> Loading...
744                    </p>
745                </div>
746            </div>
747        </div>
748        <div id="secondary-modal" class="modal fade" role="dialog">
749            <div class="modal-dialog" role="document">
750                <div class="modal-content">
751                    <p class="loader">
752                        <img alt="" aria-hidden="true" src="/images/loader-big.gif">
753                        <br> Loading...
754                    </p>
755                </div>
756            </div>
757        </div>
758        
758<script>
759            $("#primary-modal").on("hide.bs.modal", function (e) {
760                $("#primary-modal .modal-content").html(writeLoading("Loading"));
761            });
762            $("#secondary-modal").on("hide.bs.modal", function (e) {
763                $("#secondary-modal .modal-content").html(writeLoading("Loading"));
764            });
765        </script>
765
766        <!-- End Modal -->
767
768        
769
770        
770<script src="/static/js/modernizr.min.js"></script>
770
771        
772            
772<script src="/js/jquery-validate/jquery.validate.min.js"></script>
772
773        
774        
774<script src="/static/js/polyfill.js"></script>
774
775
776        
777
778        <!-- HEADER -->
779        
780            <style>
781                .btn--school { background-color: #862633; color: #fff; }
782                .btn--school:hover { background-color: #862633; color: #fff; }
783                .btn--school:focus { background-color: #862633; color: #fff; }
784
785                .topbar { background: #862633; border-color: #862633; }
786                .topbar ul.nav > li > a:hover, .topbar ul.nav > li > button:hover  { background-color: #ffffff !important; }
787                .topbar ul.nav > li > a:focus, .topbar ul.nav > li > button:focus  { background-color: #ffffff !important; outline: none; }
788                .topbar .topbar__sidebar-toggle:hover  { background-color: #ffffff !important; }
789                .topbar .topbar__sidebar-toggle:focus  { background-color: #ffffff !important; outline: none; }
790                .topbar.topbar-fair .topbar__left button:hover, .topbar.topbar-fair .topbar__left button:focus { background-color: #ffffff !important; color: #000000 !important; }
791
792                .topbar .open:not(.topbar__left) > a,
793                .topbar .open:not(.topbar__left) > a:focus, 
794                .topbar > .open:not(.topbar__left) > a:hover,
795                .topbar .open:not(.topbar__left) > button, 
796                .topbar .open:not(.topbar__left) > button:focus, 
797                .topbar > .open:not(.topbar__left) > button:hover { background-color: #ffffff !important; }
798                .topbar li:focus-within > button.mdi-menu { background-color: #ffffff !important; }
799                .topbar li.active > a, .topbar li.active > button { background-color: #ffffff !important; }
800            </style>
801
802            <div id="generic"></div>
803
804            
805            <div id="outer-shell" class="outer-shell  ">
806
807                <!-- Impersonate -->
808                
809                <!-- /.Impersonate -->
810
811                <!-- Message / Maintenance -->
812                
813                <!-- /.Message -->
814
815                
816                <style>
817                    nav.topbar { 
818                        display: block; height: inherit; --navbar-height: 5.8rem; 
819                        align-items: center;
820                        display: grid;
821                        grid-template-rows: repeat(2, auto);
822                        grid-template-columns: 1fr auto;
823                        grid-auto-flow: column;
824                    }
825                    @media (min-width: 768px) {
826                        nav.topbar { display: flex; }
827                    }
828                    .topbar.topbar--has-toggle .logo { margin-left: 0; padding-right: 1.2rem; padding-left: 1.2rem; display: flex; align-items: center;}
829                    nav.topbar .topbar__sidebar-toggle { 
830                        padding: 0; width: var(--navbar-height); height: var(--navbar-height); display: flex; align-items: center; justify-content: center;
831                    }
832                    nav.topbar .navbar-header .logo:not(.dropdown-toggle) { margin-right: 10px; }
833                    nav.topbar #header__switch { height: var(--navbar-height); }
834                    .topbar__sidebar-toggle .mdi,
835                    .topbar__menu .topbar__menu-icon > .mdi { display: block; }
836                    .topbar__sidebar-toggle .mdi:before,
837                    .topbar__menu .topbar__menu-icon > .mdi::before,
838                    nav.topbar .navbar-toggle .mdi::before  { display: block; line-height: 1; }
839                    nav.topbar .navbar-toggle { height: var(--navbar-height); align-items: center; justify-content: center; margin-left: 15px;
840                                                        float: none; margin-top: 0; margin-right: 0; margin-bottom: 0; padding-left: 15px; padding-right: 15px;}
841                    
842                    
843                    /* Shared backgrounds */
844                    nav.topbar .navbar-toggle.collapsed {
845                        background-color: #862633;
846                    }
847                    nav.topbar .navbar-toggle:not(.collapsed),
848                    nav.topbar .navbar-toggle:focus,
849                    nav.topbar .navbar-toggle:hover {
850                        background-color: #ffffff;
851                    }
852
853                    nav.topbar,
854                    nav.topbar.topbar--light.topbar--reverse { --btn-text-color: white; }
855                    nav.topbar.topbar--light, nav.topbar.topbar--reverse { --btn-text-color: #333; }
856
857                    nav.topbar #button-menu-mobile:focus-visible,
858                    nav.topbar #header__switch:focus-visible,
859                    nav.topbar .navbar-toggle:focus-visible,
860                    nav.topbar ul.nav.nav-right > li > .topbar__menu:focus-visible,
861                    .acc-keyboard-mode nav.topbar #header__switch:focus {
862                        outline: 2px solid var(--btn-text-color) !important;
863                        outline-offset: -2px;
864                    }
865                    @media (min-width: 768px) {
866                        nav.topbar #main-navbar-collapse ul.nav > li > .topbar__menu:focus-visible {
867                            outline: 2px solid var(--btn-text-color);
868                            outline-offset: -2px;
869                        }
870                    }
871
872                    /* Default text color (dark theme) */
873                    nav.topbar .navbar-toggle { color: white; }
874
875                    /* Light: text becomes #333 */
876                    nav.topbar.topbar--light .navbar-toggle { color: #333; }
877
878                    /* Reverse: hover flips to #333 */
879                    nav.topbar.topbar--light .navbar-toggle,
880                    nav.topbar.topbar--reverse .navbar-toggle:not(.collapsed),
881                    nav.topbar.topbar--reverse .navbar-toggle:focus,
882                    nav.topbar.topbar--reverse .navbar-toggle:hover { color: #333; }
883
884                    /* Light + Reverse: hover flips back to white */
885                    nav.topbar.topbar--light.topbar--reverse .navbar-toggle:not(.collapsed),
886                    nav.topbar.topbar--light.topbar--reverse .navbar-toggle:focus,
887                    nav.topbar.topbar--light.topbar--reverse .navbar-toggle:hover { color: white; }
888                    
889                    @media (max-width: 767px) {
890                        nav.topbar .navbar-toggle { display: flex; }
891                        nav.topbar .navbar-collapse { background-color: #f0f2f5; border-bottom: 1px solid gray; max-height: calc(100vh - 5.8rem - 1.5rem); }
892                        nav.topbar .navbar-collapse ul.navbar-nav { flex-wrap: wrap; gap: 1.5rem; padding: 1.5rem; }
893                        nav.topbar .navbar-collapse ul.nav::before { content: initial; }
894                        nav.topbar .navbar-collapse ul.nav > li > .topbar__menu { height: 75px; border-radius: 15px; min-width: 8rem; }
895                        nav.topbar .navbar-collapse ul.nav > li:not(.active) > .topbar__menu:not(:hover):not(:focus) { background-color: white !important; color: #333333 !important; }
896                        nav.topbar .navbar-collapse ul.nav > li.active > .topbar__menu, 
897                        nav.topbar .navbar-collapse ul.nav > li > .topbar__menu:hover, 
898                        nav.topbar .navbar-collapse ul.nav > li > .topbar__menu:focus { border: 2px solid #862633; }
899                        nav.topbar ul.nav.nav-right > li .topbar__menu { padding-left: 0.5rem; padding-right: 0.5rem; min-width: 3rem; }
900                    }
901                    nav.topbar ul.nav > li { height: inherit; }
902                    nav.topbar ul.nav > li .topbar__menu { height: var(--navbar-height); }
903                </style>
904                
905                <nav
906                    id="topbar"
907                    class="
908                        topbar topbar-
909                         topbar--reverse 
910                    "
911                    role="navigation" aria-label="Topbar"
912                    style="align-items: center;"
913                >
914                    <div class="navbar-header topbar__left" style="float: none; display: flex; align-items: center;">
915                        
916                                <div role="banner">
917                                    <a id="a-top-bar-logo" aria-label="Springfield College Logo. Opens the members homepage." role="button" class="logo" href="/groups">
918                                        <img class="topbar__icon-large" src="/upload/springfield/2024/image_upload_599692_pridenetlogoinversebkgrnd_91714182.png" alt="Springfield College Logo Image." aria-label="Springfield College Logo Image. Clicking opens the members home page." style="max-height: 50px; max-width: 165px;">
919                                        <img class="topbar__icon-small" src="/upload/springfield/2024/image_upload_599694_highresseal_72694523.png" alt="Springfield College Logo Image." aria-label="Springfield College Logo Image. Clicking opens the members home page." style="max-height: 35px; max-width: 35px; margin: 0 5px;">
920                                    </a>
921                                </div>
922                            
923                            <button id="main-navbar-toggler" type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#main-navbar-collapse" aria-expanded="false">
924                                <div>
925                                    <div>
926                                        <span class="mdi mdi-apps mdi-24px"></span>
927                                    </div>
928                                    <div>Menu</div>
929                                </div>
930                                <div>
931                                    <span class="caret aria-decorative" role="presentation" aria-hidden="true"></span>
932                                </div>
933                            </button>
934                        
935                    </div>
936                    
937
938
939
940<div style="grid-column: span 2 / span 2">
941    <div class="collapse navbar-collapse" id="main-navbar-collapse" style="padding: 0;">
942        <ul class="nav navbar-nav">
943            
944                <!-- Not Logged Buttons -->
945                
946                    <!-- Home Website Buttons -->
947                    
948                        <li class="active">
949                            <a class="topbar__menu topbar__menu--large" href="/home_login" aria-label="Home" role="button">Home</a>
950                        </li>
951                                    <li class="hidden-xs dropdown  hasNoSubMenu">
952                <a class="topbar__menu topbar__menu--large" href="/home/admissions/" style="max-width: inherit">
953                    Admissions
954                </a>
955                
956                <ul class="dropdown-menu dropdown-menu-left arrow-dropdown-menu arrow-menu-right user-list notify-list" style="overflow-y: auto;max-height: 80vh;">
957
958                </ul>
959            </li>            <li class="hidden-xs dropdown  hasNoSubMenu">
960                <a class="topbar__menu topbar__menu--large" href="/home/pride-card/" style="max-width: inherit">
961                    Pride Card
962                </a>
963                
964                <ul class="dropdown-menu dropdown-menu-left arrow-dropdown-menu arrow-menu-right user-list notify-list" style="overflow-y: auto;max-height: 80vh;">
965
966                </ul>
967            </li>            <li class="hidden-xs dropdown  hasNoSubMenu">
968                <a class="topbar__menu topbar__menu--large" href="/home/techhelp/" style="max-width: inherit">
969                    TechHelp
970                </a>
971                
972                <ul class="dropdown-menu dropdown-menu-left arrow-dropdown-menu arrow-menu-right user-list notify-list" style="overflow-y: auto;max-height: 80vh;">
973
974                </ul>
975            </li>            <li class="hidden-xs dropdown  hasNoSubMenu">
976                <a class="topbar__menu topbar__menu--large" href="/home/parent-portal/" style="max-width: inherit">
977                    Parent Portal
978                </a>
979                
980                <ul class="dropdown-menu dropdown-menu-left arrow-dropdown-menu arrow-menu-right user-list notify-list" style="overflow-y: auto;max-height: 80vh;">
981
982                </ul>
983            </li>
984                        
985                            <li>
986                                <a 
987                                    class="topbar__menu topbar__menu--large hidden-sm hidden-md hidden-lg"
988                                    href="/home/admissions/" 
989                                    aria-label="Admissions Section" 
990                                    role="button" 
991                                    tabindex="0"
992                                >Admissions</a>
993                            </li>
994                        
995                            <li>
996                                <a 
997                                    class="topbar__menu topbar__menu--large hidden-sm hidden-md hidden-lg"
998                                    href="/home/pride-card/" 
999                                    aria-label="Pride Card Section" 
1000                                    role="button" 
1001                                    tabindex="0"
1002                                >Pride Card</a>
1003                            </li>
1004                        
1005                            <li>
1006                                <a 
1007                                    class="topbar__menu topbar__menu--large hidden-sm hidden-md hidden-lg"
1008                                    href="/home/techhelp/" 
1009                                    aria-label="TechHelp Section" 
1010                                    role="button" 
1011                                    tabindex="0"
1012                                >TechHelp</a>
1013                            </li>
1014                        
1015                            <li>
1016                                <a 
1017                                    class="topbar__menu topbar__menu--large hidden-sm hidden-md hidden-lg"
1018                                    href="/home/parent-portal/" 
1019                                    aria-label="Parent Portal Section" 
1020                                    role="button" 
1021                                    tabindex="0"
1022                                >Parent Portal</a>
1023                            </li>
1024                        
1025                    <!-- /.Home Website Buttons -->
1026
1027                    <!-- Group & Event Buttons -->
1028                    
1029                    <!-- /.Group & Event Buttons -->
1030                
1031                <!-- /.Not Logged Buttons -->
1032
1033                <!-- Home Button -->
1034                
1035                <!-- /.Home Button -->
1036
1037                <!-- Group Button -->
1038                
1039                <!-- /.Group Button -->
1040
1041                <!-- Manage Button -->
1042                
1043
1044                <!-- Event Button -->
1045                
1046                <!-- /.Event Button -->
1047               
1048                <!-- Chat Button -->
1049                
1050                <!-- /.Chat Button -->
1051                
1052                
1053                <!-- Admin / Setup Button -->
1054                
1055                <!-- /.Admin Button -->
1056            
1057        </ul>
1058    </div>
1059</div>
1060<div style="color: white; margin-left: auto;">
1061    <ul class="nav nav-right">
1062        
1063            <!-- Login Button -->
1064            <li class="">
1065                <a class="topbar__menu topbar__menu--row" href="/webapp/auth/login" aria-label="Sign In Section" role="button">
1066                    <span class="mdi mdi-login-variant mdi-24px"></span> 
1067                    <span class="hidden-xs hidden-sm topbar__menu-text" style="overflow: initial;"> Sign In </span>
1068                </a>
1069            </li>
1070            <!-- /.Login Button -->
1071        
1072    </ul>
1073    <style>
1074        #a-top-bar-logo:focus > i { outline: 2px solid #ffffff; }
1075    </style>
1076</div>
1077
1078                    
1079                </nav>
1080                
1080<script>
1081                    $('#topbar').on('focusout', '.dropdown-menu, .navbar-collapse', function (ev) {
1082                        if (!ev.currentTarget.contains(ev.relatedTarget)) {
1083                            if ($(ev.currentTarget).hasClass('dropdown-menu')) {
1084                                $(ev.currentTarget).parent().find('[data-toggle="dropdown"]').dropdown('close');
1085                            } else if ($(ev.currentTarget).hasClass('navbar-collapse')) {
1086                                $(ev.currentTarget).collapse('hide');
1087                            }
1088                        }
1089                    });
1090                    $(document).on('click', function (e) {
1091                        var $navbar = $('#main-navbar-collapse');
1092                        if ($navbar.hasClass('in') && !$(e.target).closest('#main-navbar-collapse, #main-navbar-toggler').length) {
1093                            $navbar.collapse('hide');
1094                        }
1095                    });
1096                    $('#topbar').on('show.bs.dropdown', function () {
1097                        $('#main-navbar-collapse').collapse('hide');
1098                    });
1099                </script>
1099
1100
1101
1102                <div id="inner-shell" class="inner-shell">
1103
1104                     
1105
1106        <!-- END HEADER -->
1107
1108        
1109            <div id="content-cont" class="content-cont container-fluid">
1110        
1111            <div id="page-cont" class="content" role="main" aria-label="Main Content.">
1112                <div style="position: relative;"><span id="span-top-of-main-content--0" class="content__top-element" tabindex="0" aria-label="Top of Main Content." style="display: none;">Top of Main Content</span></div>
1113
1114
1115                
1116                <!-- Used in email_form -->
1117                
1118<!-- END AX != 1 -->
1119
1120                
1121
1122	
1123	<div class="login__slideshow-container">
1124		
1125		<div class="login__slideshow">
1126			
1127			<div class="login__cover-container" aria-label="PrideNET.">
1128				<img class="login__cover-img" style="height:calc(100vh - 70px);" alt="No image description provided" tabindex="-1" src="/upload/springfield/2024/image_upload_599694_04202023campus44JPG_101192648.jpeg" >
1129				<div class="login__cover-overlay"></div>
1130				<div class="login__cover-text">
1131					<div>
1132						
1133						<h1 class="ufocus" style="font-size:50px;color:white">PrideNET</h1>
1134						<div class="text__subtitle"></div>
1135						<div class="btn-container">
1136							
1137								
1137<script>
1138									function addSignInButtonClass() {
1139										var style = document.createElement('style');
1140										style.type = 'text/css';
1141										var mainColor = '#862633';
1142										var hoverColor = '#' + generateColor('', '#862633', 20)[0];
1143										// console.log('> addSignInButtonClass() begins...');
1144										// console.log('> mainColor=' + mainColor);
1145										// console.log('> hoverColor=' + hoverColor);
1146										var cssText = '#a-sign-in-button_1 {background-color: ' + mainColor + ';} ';
1147										cssText += '#a-sign-in-button_1:hover, #a-sign-in-button_1:focus {background-color: ' + hoverColor + ';} ';
1148										style.innerHTML = cssText;
1149										document.getElementsByTagName('head')[0].appendChild(style);
1150										// console.log('addSignInButtonClass() added #a-sign-in-button_1 class info');
1151									}
1152									addSignInButtonClass();
1153								</script>
1153
1154								<a id="a-sign-in-button_1" class="btn btn--rounded action-btn" onclick="loadButton($(this))" href="/login_only?redirect=" aria-label="Sign In. PrideNET. Click to go to Sign In."><div style="padding: 0 20px;"><span class="mdi mdi-login"></span> Sign In</div></a>
1155							
1156						</div>
1157					</div>
1158				</div>
1159				
1160					<span class="mdi mdi-chevron-down discover-btn" onclick="$('html, body').animate({ scrollTop: $('.login__slideshow-container').height() }, 700);" tabindex="-1" role="presentation" aria-hidden="true"></span>
1161				
1162			</div>
1163
1164			
1165		</div>
1166		
1167	</div>
1168
1169	<div class="login__event-container">
1170		<div class="login__event-slider">
1171			<div class="row">
1172				<div class="col-xs-6 col-sm-6 col-md-6">
1173					<h2 class="header-cg--h3" style="margin-top:0;margin-left:20px">Upcoming Events <small>(1570)</small></h2>
1174				</div>
1175				<div class="col-xs-6 col-sm-6 col-md-6 text-right">
1176					
1177				</div>
1178			</div>
1179			<div id="event_slider_container" style="padding: 0px 30px 0px 30px;" role="region" aria-label="Upcoming Events Carousel"><div class="text-center"><span style="position:absolute;top:45%" class="glyphicon glyphicon-refresh mdi-custom_spin grey-element"></span></div></div>
1180		</div>
1181	</div>
1182	
1183
1184<div height="50px"></div>
1185
1186<script>
1187// Home Page JS Logic after Group Pinned
1188$(document).ready(function() {
1189	clampText('text-clamp', true);
1190	getContent('event_slider_container', 'ajax_event_slider2?nb_events=4');
1191	$('.login__slideshow').slick({
1192		dots: false,
1193		arrows:false,
1194		infinite: true,
1195		fade: true,
1196		adaptiveHeight: true,
1197		autoplay: false,
1198		speed:700,
1199		autoplaySpeed: 900000,
1200		slidesToScroll: 1,
1201		cssEase: 'linear',
1202		slidesToShow: 1,
1203		initialSlide: 0
1204	});
1205});
1206</script>
1206
1207
1208<style>
1209
1210	.outer-shell > .container,.container-fluid {width: 100%;margin-left:0;margin-right:0}
1211	.groups_preview-container {
1212		width: 100%;
1213	}
1214	@media (min-width: 1200px) {
1215		.news-container, .groups_preview-container {
1216			padding: 0 35px;
1217			width: 1200px;
1218			margin: auto;
1219		}
1220	}
1221
1222	
1223	.discover-btn {
1224		position: absolute;
1225		bottom: 0.5vh;
1226		color: #F5F5F8;
1227		cursor: pointer;
1228		transition-duration: 0.4s;
1229	}
1230	.discover-btn:before {
1231		font-size: 90px;
1232	}
1233	.discover-btn:hover {
1234		bottom:0vh;
1235	}
1236	.list-group-item:hover {
1237		border-color: #d0d0d0;
1238		background-color: #f9f9f9;
1239		-webkit-transition: background-color 150ms ease-out;
1240		-ms-transition: background-color 150ms ease-out;
1241		transition: background-color 150ms ease-out;
1242	}
1243	.action-btn {
1244		color:white;
1245		background-color:#862633;
1246		box-shadow: 0px 0px 0px 1px rgba(255,255,255, 0.5);
1247		display:block;
1248	}
1249	.action-btn:hover, .action-btn:focus {
1250		color:white;
1251	}
1252	.btn-container {
1253		margin-top:5%;
1254		display: flex;
1255		justify-content: center;
1256	}
1257
1258	.login__slideshow--next-arrow :before, .login__slideshow--previous-arrow :before {
1259		background-color: #862633;
1260		color:#d2d2d2;
1261	}
1262
1263	.login__slideshow--next-arrow:focus :before, .login__slideshow--previous-arrow:focus :before {
1264		background-color: #ffffff;
1265		color: #862633 !important;
1266	}
1267
1268	.acc-keyboard-mode a.btn--rounded:focus { text-decoration: underline; text-decoration-style: solid; }
1269	.acc-keyboard-mode div.login__cover-container:focus h1.ufocus { text-decoration: underline; text-decoration-style: solid; }
1270	.acc-keyboard-mode a.a-slick-card-link:focus h3 { text-decoration: underline; text-decoration-style: solid; }
1271	.acc-keyboard-mode a.group-card:focus h3, a.badge:focus { text-decoration: underline; text-decoration-style: solid; }
1272
1273</style>
1274
1275<link rel="stylesheet" type="text/css" href="/static/plugins/slick/slick.css"/>
1276<link rel="stylesheet" type="text/css" href="/static/plugins/slick/slick-theme.css"/>
1277<script type="text/javascript" src="static/plugins/slick/slick.min.js"></script>
1277
1278
1279
1280<!-- Rich text editor: CKEditor (default) or Lexical (feature flag) -->
1281
1282
1283<script>
1284	//YT Viewer
1285	if (typeof arrYoutubePlayerObjects != "undefined") { 
1286
1287		$("#youtubeScript").remove();
1288		$("#www-widgetapi-script").remove();
1289		if (window['YT'] != undefined) { window.YT.loading = 0; window.YT.loaded = 0; }
1290				
1291 		var youtubeTag   = document.createElement('script');
1292		youtubeTag.id    = "youtubeScript";
1293		youtubeTag.src   = "https://www.youtube.com/iframe_api";
1294		youtubeTag.async = false;
1295
1296		// Get First Script Tag & Insert Vimeo Script before that.
1297		var firstScriptTag = document.getElementsByTagName('script')[0];
1298      	firstScriptTag.parentNode.insertBefore(youtubeTag, firstScriptTag);
1299
1300      	// Array of Players
1301      	var arrYoutubePlayers = [];
1302
1303      	// Functions to work on Youtube Players
1304      	function onYoutubePlayerReady(event) {
1305			var player = event.target;
1306			$(window).blur(function() { player.pauseVideo(); });
1307			$(window).scroll(function() { 
1308				if ( !isInViewport(document.getElementById("player--" + player.youtubeObject.cgID))) { 
1309					player.pauseVideo(); 
1310				} 
1311			});
1312
1313			var startTime = new Date(player.youtubeObject.startTime * 1000).toISOString();
1314			var totalTime = new Date(player.getDuration() * 1000).toISOString();
1315			if (player.getDuration() >= 3600) {
1316				startTime = startTime.substr(11, 8);
1317				totalTime = totalTime.substr(11, 8);
1318			}
1319			else {
1320				startTime = startTime.substr(14, 5);
1321				totalTime = totalTime.substr(14, 5);
1322			}
1323			$("#player-btn--" + player.youtubeObject.cgID + " div.timer").html("<span id='player-time--" + player.youtubeObject.cgID + "'>" + startTime + "</span> / " + totalTime);
1324      	}
1325
1326      	function onYoutubePlayerStateChange(event) {
1327      		var player = event.target;
1328
1329      		if (event.data == YT.PlayerState.PLAYING) {
1330				// Change Buttons
1331				$("#player-btn--" + player.youtubeObject.cgID + " button.playpause").attr("data-status", "pause").attr("aria-label", "Pause");
1332				$("#player-btn--" + player.youtubeObject.cgID + " button.playpause span.mdi").removeClass("mdi-play").addClass("mdi-pause");
1333      		}
1334
1335      		if (event.data == YT.PlayerState.PLAYING && player.intervalFunction == null) {
1336	            // HACK For Window BLUR
1337	            window.focus();
1338
1339	            // AJAX Recurring Call
1340	            player.intervalFunction = setInterval(function() {
1341	                postVideoViews(player.youtubeObject.cgUID, player.youtubeObject.cgUID_s, player.getCurrentTime());
1342	            }, 10000);
1343
1344	            // Timer
1345	            player.intervalTimerFunction = setInterval(function() { 
1346	            	var currentTime = new Date(player.getCurrentTime() * 1000).toISOString();
1347	            	if (player.getDuration() >= 3600) {
1348	            		currentTime = currentTime.substr(11, 8);
1349	            	}
1350	            	else {
1351	            		currentTime = currentTime.substr(14, 5);
1352	            	}
1353	            	$("#player-time--" + player.youtubeObject.cgID).html(currentTime);
1354	            }, 1000) 
1355	        }
1356	        else if (event.data == YT.PlayerState.PAUSED || event.data == YT.PlayerState.ENDED) {
1357				// Change Buttons
1358				$("#player-btn--" + player.youtubeObject.cgID + " button.playpause").attr("data-status", "play").attr("aria-label", "Play");
1359				$("#player-btn--" + player.youtubeObject.cgID + " button.playpause span.mdi").removeClass("mdi-pause").addClass("mdi-play");
1360
1361	            clearInterval(player.intervalFunction);
1362	            clearInterval(player.intervalTimerFunction);
1363				player.intervalFunction = null;
1364				player.intervalTimerFunction = null;
1365				postVideoViews(player.youtubeObject.cgUID, player.youtubeObject.cgUID_s, player.getCurrentTime(), (event.data == YT.PlayerState.ENDED ? 'true' : ''));
1366				//if (event.data == YT.PlayerState.ENDED) { 
1367				    //if (typeof refreshTrackChecklist !== "undefined") { refreshTrackChecklist(); }
1368					//else if (typeof parent.refreshTrackChecklist !== "undefined") { parent.refreshTrackChecklist(); }
1369				//}
1370	        }
1371      	}
1372
1373		function youtubePlayerPlayPause(player) {
1374			var currentStatus = $("#player-btn--" + player.youtubeObject.cgID + " button.playpause").attr("data-status");
1375			if (currentStatus == "play") { player.playVideo(); }
1376			else if (currentStatus == "pause") { player.pauseVideo(); }
1377		}
1378
1379        /* Function that checks localStorage for the Vimeo/YouTube closed captions load policy. Returns number values:
1380         *   0 - closed captions should be be disabled (do not load closed captions)
1381         *   1 - closed captions should be loaded when video loads
1382         * If the local storage key is not defined we return 0 (as a number).
1383         */
1384        function getVideoPlayerCCLoadPolicy() {
1385            try {
1386                const lsKey = 'cg-video-player-cc-load-policy';
1387                const ccLoadPolicy = localStorage.getItem(lsKey);
1388                return (ccLoadPolicy === '1') ? 1 : 0;
1389            } catch(e) {
1390                return 0;
1391            }
1392        }
1393
1394        /* Function that toggles the video player CC load policy stored in local storage. Toggled values are (strings values):
1395         *   '0' - closed captions should be be disabled (do not load closed captions)
1396         *   '1' - closed captions should be loaded when video loads
1397         * If the local storage key is not defined it is treated as though the value were '0' and toggles to '1'.
1398         * */
1399        function toggleVideoPlayerCCLoadPolicy() {
1400            try {
1401                const lsKey = 'cg-video-player-cc-load-policy';
1402                const ccLoadPolicy = localStorage.getItem(lsKey);
1403                if (ccLoadPolicy === '1') {
1404                    localStorage.setItem(lsKey, '0');
1405                } else {
1406                    localStorage.setItem(lsKey, '1');
1407                }
1408            } catch(e) {
1409                return;
1410            }
1411        }
1412
1413        /* Function that prompts the user for confirmation before toggling the video player closed caption load policy.
1414         * - If closed captions are currently turned off, the user will be prompted to confirm before turning them on (and vice versa)
1415         * - Video player CC load policy setting is stored in local storage (see above functions)
1416         * - Vimeo and YouTube video players require reload of the associated IFrames to change the setting, 
1417         *   if user confirms yes to reload, the page will be reloaded.
1418         */
1419        function toggleClosedCaptionsAndReloadVideoIframes() {
1420            const turnClosedCaptionsOnOff = (typeof getVideoPlayerCCLoadPolicy !== 'undefined' && getVideoPlayerCCLoadPolicy() === 1) ? 'off' : 'on';
1421            const message = 'Turning ' + turnClosedCaptionsOnOff + ' closed captions will reload this page, please save any outstanding changes before you choose to turn closed captions ' + turnClosedCaptionsOnOff + '. Are you sure you want to turn closed captions ' + turnClosedCaptionsOnOff + '?';
1422            if (confirm(message)) {
1423                toggleVideoPlayerCCLoadPolicy();
1424                location.reload();
1425            } else {
1426                return false;
1427            }
1428        }
1429
1430      	// Called when the script is fully loaded.
1431      	function onYouTubeIframeAPIReady() {
1432
1433      		// Loop through players
1434	  		arrYoutubePlayerObjects.forEach(function (youtubeObject, index) {
1435	  			arrYoutubePlayers[index] = new YT.Player("player--" + youtubeObject.cgID, {
1436                                                        	height: youtubeObject.height,
1437                                                        	width:  youtubeObject.width,
1438                                                        	videoId: youtubeObject.videoID,
1439                                                        	playerVars: {
1440	                                                            modestbranding: 1,
1441	                                                            rel: 0,
1442	                                                            disablekb: 1,
1443	                                                            playsinline: 1,
1444	                                                            controls: 0,
1445	                                                            start: youtubeObject.startTime,
1446                                                                cc_load_policy: (typeof getVideoPlayerCCLoadPolicy !== 'undefined') ? getVideoPlayerCCLoadPolicy() : 0
1447                                                        	},
1448	                                                        events: {
1449	                                                            'onStateChange': onYoutubePlayerStateChange,
1450	                                                            'onReady': onYoutubePlayerReady
1451	                                                        }
1452                                                    	});
1453	  			arrYoutubePlayers[index].youtubeObject = youtubeObject;
1454	  			arrYoutubePlayers[index].intervalFunction = null;
1455
1456				$("#player-btn--" + youtubeObject.cgID + " button.playpause").on('click', function() { 
1457					youtubePlayerPlayPause(arrYoutubePlayers[index]); 
1458				});
1459				$("#player-btn--" + youtubeObject.cgID + " button.replay").on('click', function() { 
1460					arrYoutubePlayers[index].seekTo(0); 
1461				});
1462				$("#player-btn--" + youtubeObject.cgID + " button.rewind").on('click', function() { 
1463					arrYoutubePlayers[index].seekTo(arrYoutubePlayers[index].getCurrentTime() - 10);
1464				});
1465                const turnClosedCaptionsOnOff = (typeof getVideoPlayerCCLoadPolicy !== 'undefined' && getVideoPlayerCCLoadPolicy() === 1) ? 'off' : 'on';
1466                $("#player-btn--" + youtubeObject.cgID + " button.closedcaption").attr('aria-label', 'Turn ' + turnClosedCaptionsOnOff + ' closed captions. Note, this requires a reload of the current page.');
1467				$("#player-btn--" + youtubeObject.cgID + " button.closedcaption").on('click', function() { 
1468                    toggleClosedCaptionsAndReloadVideoIframes();
1469				});
1470				$("#player-btn--" + youtubeObject.cgID + " button.fullscreen").on('click', function() {
1471					arrYoutubePlayers[index].pauseVideo();
1472					tb_show("", "/video_player?embed=1&uid=" + youtubeObject.cgUID + "&width=995&height=680&modal=true&TB_iframe=1", "");
1473				});
1474
1475  			});
1476
1477  			arrYoutubePlayerObjects = undefined;
1478  		}
1479	} 
1480
1481
1482	//Vimeo Viewer
1483	if (typeof arrVimeoPlayerObjects != "undefined") {
1484
1485        $("#vimeoScript").remove();
1486
1487		var vimeoTag   = document.createElement('script');
1488		vimeoTag.id    = "vimeoScript";
1489		vimeoTag.src   = "https://player.vimeo.com/api/player.js";
1490		vimeoTag.async = false;
1491
1492		// Get First Script Tag & Insert Vimeo Script before that.
1493		var firstScriptTag = document.getElementsByTagName('script')[0];
1494      	firstScriptTag.parentNode.insertBefore(vimeoTag, firstScriptTag);
1495
1496      	// Array of Players
1497      	var arrVimeoPlayers = [];
1498
1499      	// Functions to work on Vimeo Players
1500		function vimeoPlayerPlay(player) {
1501			// Change Buttons
1502			$("#player-btn--" + player.vimeoObject.cgID + " button.playpause").attr("data-status", "pause").attr("aria-label", "Pause");
1503			$("#player-btn--" + player.vimeoObject.cgID + " button.playpause span.mdi").removeClass("mdi-play").addClass("mdi-pause");
1504
1505			// AJAX Recurring Call
1506			player.intervalFunction  = setInterval( function() { 
1507				player.getCurrentTime().then( function(seconds) {
1508					postVideoViews(player.vimeoObject.cgUID, player.vimeoObject.cgUID_s, seconds);
1509				}) 
1510			}, 10000)
1511
1512			// Timer
1513            player.intervalTimerFunction = setInterval(function() { 
1514            	player.getCurrentTime().then( function(seconds) {
1515	            	var currentTime = new Date(seconds * 1000).toISOString();
1516	            	if (player.totalDuration >= 3600) {
1517	            		currentTime = currentTime.substr(11, 8);
1518	            	}
1519	            	else {
1520	            		currentTime = currentTime.substr(14, 5);
1521	            	}
1522	            	$("#player-time--" + player.vimeoObject.cgID).html(currentTime);
1523				}) 
1524            }, 1000) 
1525		}
1526
1527		function vimeoPlayerPause(player) { 
1528			// Change Buttons
1529			$("#player-btn--" + player.vimeoObject.cgID + " button.playpause").attr("data-status", "play").attr("aria-label", "Play");
1530			$("#player-btn--" + player.vimeoObject.cgID + " button.playpause span.mdi").removeClass("mdi-pause").addClass("mdi-play");
1531
1532			// Clear AJAX Recurring Call
1533			clearInterval(player.intervalFunction);
1534			clearInterval(player.intervalTimerFunction);
1535			player.intervalFunction = null;
1536			player.intervalTimerFunction = null;
1537			
1538			player.getCurrentTime().then( function(seconds) {
1539				postVideoViews(player.vimeoObject.cgUID, player.vimeoObject.cgUID_s, seconds);
1540			});		
1541		}
1542
1543		function vimeoPlayerEnded(player) {
1544			// Change Buttons
1545			$("#player-btn--" + player.vimeoObject.cgID + " button.playpause").attr("data-status", "play").attr("aria-label", "Play");
1546			$("#player-btn--" + player.vimeoObject.cgID + " button.playpause span.mdi").removeClass("mdi-pause").addClass("mdi-play");
1547
1548			// Clear AJAX Recurring Call
1549			clearInterval(player.intervalFunction);
1550			clearInterval(player.intervalTimerFunction);
1551			player.intervalFunction = null;
1552			player.intervalTimerFunction = null;
1553
1554			player.getCurrentTime().then( function(seconds) {
1555				postVideoViews(player.vimeoObject.cgUID, player.vimeoObject.cgUID_s, seconds, 'true');
1556			});
1557
1558			//if (typeof refreshTrackChecklist !== "undefined") { refreshTrackChecklist(); }
1559			//else if (typeof parent.refreshTrackChecklist !== "undefined") { parent.refreshTrackChecklist(); }
1560		}
1561
1562		function vimeoPlayerPlayPause(player) {
1563			var currentStatus = $("#player-btn--" + player.vimeoObject.cgID + " button.playpause").attr("data-status");
1564			if (currentStatus == "play") {
1565				player.play();
1566			}
1567			else if (currentStatus == "pause") {
1568				player.pause();
1569			}
1570		}
1571
1572      	// We wait until the script is fully loaded.
1573      	$("#vimeoScript").on('load', function() {
1574		  	
1575		  	// Loop through players
1576	  		arrVimeoPlayerObjects.forEach(function (vimeoObject, index) {
1577
1578                if (typeof getVideoPlayerCCLoadPolicy !== 'undefined' && getVideoPlayerCCLoadPolicy() === 1) {
1579                    // load with closed captions enabled (set texttrack to 'en')
1580	      			arrVimeoPlayers[index] = new Vimeo.Player("player--" + vimeoObject.cgID, { url: vimeoObject.URL , height: vimeoObject.height, width: vimeoObject.width, controls: false, texttrack: 'en' });
1581                } else {
1582    	  			arrVimeoPlayers[index] = new Vimeo.Player("player--" + vimeoObject.cgID, { url: vimeoObject.URL , height: vimeoObject.height, width: vimeoObject.width, controls: false });
1583                }
1584	  			arrVimeoPlayers[index].vimeoObject = vimeoObject;
1585	  			arrVimeoPlayers[index].intervalFunction = null;
1586
1587	  			if (vimeoObject.startTime != 0) {
1588	  				arrVimeoPlayers[index].setCurrentTime(vimeoObject.startTime);
1589	  			}
1590
1591				arrVimeoPlayers[index].on('play',  function() { vimeoPlayerPlay(this)  } );
1592				arrVimeoPlayers[index].on('pause', function() { vimeoPlayerPause(this) } );
1593				arrVimeoPlayers[index].on('ended', function() { vimeoPlayerEnded(this) } );
1594
1595				$("#player-btn--" + vimeoObject.cgID + " button.playpause").on('click', function() { 
1596					vimeoPlayerPlayPause(arrVimeoPlayers[index]); 
1597				});
1598				$("#player-btn--" + vimeoObject.cgID + " button.replay").on('click', function() { 
1599					arrVimeoPlayers[index].setCurrentTime(0) 
1600				});
1601				$("#player-btn--" + vimeoObject.cgID + " button.rewind").on('click', function() { 
1602					arrVimeoPlayers[index].getCurrentTime().then(function(seconds) {
1603						arrVimeoPlayers[index].setCurrentTime(Math.max(0, seconds - 10));
1604					})
1605				});
1606                const turnClosedCaptionsOnOff = (typeof getVideoPlayerCCLoadPolicy !== 'undefined' && getVideoPlayerCCLoadPolicy() === 1) ? 'off' : 'on';
1607                $("#player-btn--" + vimeoObject.cgID + " button.closedcaption").attr('aria-label', 'Turn ' + turnClosedCaptionsOnOff + ' closed captions. Note, this requires a reload of the current page.');
1608				$("#player-btn--" + vimeoObject.cgID + " button.closedcaption").on('click', function() {
1609                    toggleClosedCaptionsAndReloadVideoIframes();
1610				});
1611				$("#player-btn--" + vimeoObject.cgID + " button.fullscreen").on('click', function() {
1612					arrVimeoPlayers[index].pause();
1613					tb_show("", "/video_player?embed=1&uid=" + vimeoObject.cgUID + "&width=995&height=680&modal=true&TB_iframe=1", "");
1614				});
1615
1616				$(window).blur(function() { 
1617					arrVimeoPlayers[index].pause(); 
1618				});
1619				$(window).scroll(function() { 
1620					if ( !isInViewport(document.getElementById("player--" + vimeoObject.cgID))) { 
1621						arrVimeoPlayers[index].pause(); 
1622					} 
1623				});
1624
1625
1626				var startTime = new Date(vimeoObject.startTime * 1000).toISOString();
1627				var totalTime = 0;
1628				arrVimeoPlayers[index].getDuration().then(function(seconds) { 
1629					arrVimeoPlayers[index].totalDuration = seconds;
1630
1631					totalTime = new Date(seconds * 1000).toISOString();
1632					if (seconds >= 3600) {
1633						startTime = startTime.substr(11, 8);
1634						totalTime = totalTime.substr(11, 8);
1635					}
1636					else {
1637						startTime = startTime.substr(14, 5);
1638						totalTime = totalTime.substr(14, 5);
1639					}
1640					$("#player-btn--" + vimeoObject.cgID + " div.timer").html("<span id='player-time--" + vimeoObject.cgID + "'>" + startTime + "</span> / " + totalTime);
1641				});
1642			});
1643
1644			arrVimeoPlayerObjects = undefined;
1645
1646		});
1647
1648	}
1649</script>
1649
1650
1651<script>
1652	$(document).ready(function(){
1653		$("[data-toggle='tooltip']").tooltip(); 	
1654		$(".btn--loader").click(function() {
1655			loadButton($(this));
1656		});
1657		tb_init('a.thickbox, area.thickbox, input.thickbox');
1658
1659         // fix for the non editable input in ckeditor (ex: URL...)
1660         $(".modal").removeAttr("tabindex");
1661		 // second hack to fix ckeditor links, especially the 'edit link' option
1662		 if ($.fn.modal && $.fn.modal.Constructor && $.fn.modal.Constructor.prototype) {
1663			 $.fn.modal.Constructor.prototype.enforceFocus = function() {
1664				modal_this = this
1665				$(document).on('focusin.modal', function (e) {
1666					if (modal_this.$element[0] !== e.target && !modal_this.$element.has(e.target).length
1667					&& !$(e.target.parentNode).hasClass('cke_dialog_ui_input_select')
1668					&& !$(e.target.parentNode).hasClass('cke_dialog_ui_input_text')
1669					&& !$(e.target).closest('.cg-le-image-dialog-overlay, .cg-le-raw-html-dialog-overlay').length
1670					// the calendar sits on <body>, not in the modal: iOS throws it off screen inside a -webkit-overflow-scrolling:touch scroller (CGPES-4806)
1671					&& !$(e.target).closest('#ui-datepicker-div').length) {
1672					modal_this.$element.focus()
1673					}
1674				})
1675			 };
1676		 }
1677
1678         setupAjaxAccessibility();
1679	});
1680</script>
1680
1681
1682 <!-- AX != 1 -->
1683
1684			</div><!--/.content -->
1685		</div><!--/.content-page -->
1686	</div><!--/.inner-shell -->
1687
1688	
1689				<style>
1690					.outer-shell { display:flex; flex-direction:column; min-height: 100vh; }
1691					@-moz-document url-prefix() {
1692						.inner-shell  {flex:1; }
1693					}
1694					@media screen and (-webkit-min-device-pixel-ratio:0) {
1695						.inner-shell { flex:1; }
1696					}
1697					body.enlarged { min-height:initial; position:relative; }
1698					body.enlarged > .outer-shell { display:flex; flex-direction:column; min-height: 100vh; }
1699				</style>
1700				<footer class="footer__home">
1701					<div>
1702						
1703						<div id="footer-links" class="row footer__cont" style="background: transparent;">
1704							<div class="col-md-offset-1_5 col-md-3 col-sm-12 col-xs-12 text-center" style="padding-top:10px;">
1705								<img alt="Springfield College Website Logo" src="/upload/springfield/2024/image_upload_599692_pridenetlogoinversebkgrnd_91714182.png" style="max-width:150px;max-height:50px;border-radius:6px;">
1706							</div>
1707							<div class="text-xs-center text-sm-left text-md-left col-md-3 col-sm-6 col-xs-12" style="display:flex;padding: 10px 10px;">
1708								<div style="margin:auto" role="group" aria-label="Contact information.">
1709									<h2 class="footer__home--title" style="margin-top: 0; margin-bottom: 10px;">Contact</h2>
1710									<span>Springfield College</span><br>
1711									<span style="line-height:1.7">263 Alden Street<br>Springfield, Massachusetts 01109<br>United States</span><br>
1712									
1713								</div>
1714							</div>
1715							<div class="text-xs-center text-sm-left text-md-left col-md-3 col-sm-6 col-xs-12" style="display:flex;vertical-align:top;padding: 10px 10px;">
1716								<div style="margin:auto" role="group" aria-label="Links">
1717									<h2 class="footer__home--title" style="margin-top: 0; margin-bottom: 10px;">Links</h2>
1718									<a class="a-footer-contact-links" href="/home_login">Home</a><br>
1719									
1720										<a class="a-footer-contact-links" href="/home/admissions/">Admissions</a><br>
1721									
1722										<a class="a-footer-contact-links" href="/home/pride-card/">Pride Card</a><br>
1723									
1724										<a class="a-footer-contact-links" href="/home/techhelp/">TechHelp</a><br>
1725									
1726										<a class="a-footer-contact-links" href="/home/parent-portal/">Parent Portal</a><br>
1727									
1728                                    <a class="a-footer-contact-links" target="_blank" href="https://helpcenter.readyeducation.com/migration/knowledge" aria-describedby="desc--new-tab">Support Center</a>
1729								</div>
1730							</div>
1731							
1732						</div>
1733						<div class="row" style="padding:15px 20px 0 20px;border-top:1px solid #5a5a5a;margin-top: 10px;" role="group" aria-label="Footer Bar Links">
1734							<div class="col-sm-6 col-xs-12 text-xs-center text-sm-left"></div>
1735							<div class="col-sm-6 col-xs-12 text-xs-center text-sm-right">
1736								<a class="a-footer-contact-links" href="https://www.readyeducation.com/">&copy;2026 Ready Education</a>
1737							</div>
1738						</div>
1739					</div>
1740				</footer>
1741			
1742
1743	
1743<script type="text/javascript" src="/js/jquery-migrate-1.2.1.js"></script>
1743
1744
1745	<!-- THICKBOX -->
1746	
1746<script src="/js/thickbox/thickbox.js"></script>
1746
1747
1748    
1748<script type="text/javascript" src="/static/js/metisMenuCustom.js?v=1"></script>
1748
1749    
1749<script type="text/javascript" src="/static/js/jquery.slimscroll.js"></script>
1749 
1750    <!--<link href="/static/css/scrollbar.css" rel="stylesheet">
1751    
1751<script type="text/javascript" src="/static/js/scrollbar.js"></script>
1751-->
1752
1753	
1753<script type="text/javascript">function $$(strId) { return document.getElementById(strId); }</script>
1753
1754	
1754<script type="text/javascript" src="/static/plugins/clamp/clamp.min.js"></script>
1754
1755    
1755<script type="text/javascript" src="/static/js/core.js"></script>
1755
1756    
1756<script type="text/javascript" src="/static/js/menu.js"></script>
1756
1757    
1757<script type="text/javascript" src="/static/js/routing.js"></script>
1757
1758
1759
1760	
1761		
1761<script type="text/javascript">$.ajaxSetup({cache:true})</script>
1761
1762	
1763
1764	<!-- @TODO: This is for jPrompt. We might to see if an update is available or give it a better style -->
1765	
1766	    <link href="/js/jquery-alerts/jquery.alerts.css" rel="stylesheet" type="text/css">
1767	    
1767<script src="/js/jquery-alerts/jquery.alerts.js" type="text/javascript"></script>
1767
1768	
1769
1770	<!-- @TODO: Check if used : put directly on /r and student_password-->
1771	
1772	    
1772<script>
1773	        
1774	    </script>
1774
1775	
1776
1777	<!-- Google Analytics -->
1778	
1778<script>
1779	var _customTask = function() {
1780	  return function(model){
1781	    var piiRegex = [
1782	    	{ name: 'Email', regex: /.{4}@.{4}/g},
1783	       	{ name: 'Phone_Number', regex: /^(\+|\d)[0-9]{7,16}$/g},
1784	       	{ name: 'SSN', regex: /^\d{3}-\d{2}-\d{4}$}/g},
1785	       	{ name: 'Address', regex: /^\d+\s[A-z]+\s[A-z]+/g}];
1786
1787	    var globalSendTaskName = '_' + model.get('trackingId') + '_sendHitTask';
1788
1789	    // Fetch reference to the original sendHitTask
1790	    var originalSendTask = window[globalSendTaskName] = window[globalSendTaskName] || model.get('sendHitTask');
1791	    var i, hitPayload, parts, val;
1792
1793	    // Overwrite sendHitTask with PII purger
1794	    model.set('sendHitTask', function(sendModel) {
1795
1796	      hitPayload = sendModel.get('hitPayload').split('&');
1797
1798	      for (i = 0; i < hitPayload.length; i++) {
1799	        parts = hitPayload[i].split('=');
1800
1801	        // Double-decode, to account for web server encode + analytics.js encode
1802	        try {
1803	          val = decodeURIComponent(decodeURIComponent(parts[1]));
1804	        } catch(e) {
1805	          val = decodeURIComponent(parts[1]);
1806	        }
1807
1808	        piiRegex.forEach(function(pii) {
1809	          val = val.replace(pii.regex, '[REDACTED ' + pii.name + ']');
1810	        });
1811
1812	        parts[1] = encodeURIComponent(val);
1813	        hitPayload[i] = parts.join('=');
1814	      }
1815
1816	      sendModel.set('hitPayload', hitPayload.join('&'), true);
1817	      originalSendTask(sendModel);
1818	    });
1819	  };
1820	}
1821	</script>
1821
1822
1823	
1824	<!-- End Google Analytics -->
1825
1826	
1827
1828    <!-- Help -->
1829	
1830    <!-- End Help -->
1831
1832	<!-- A11Y Descriptions -->
1833	<div id="a11y-description-blocks" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0;">
1834		<div id="desc--archive-record">Archived records can be found by switching the status filter from Active to Archived.</div>
1835		<div id="desc--auto-submit">Auto submit on change.</div>
1836		<div id="desc--changing-end-time">Note: changing the start time may automatically update other time fields on the page</div>
1837		<div id="desc--changing-start-time">Note: changing the end time may automatically update other time fields on the page</div>
1838		<div id="desc--changing-timezone">Note: changing the timezone may automatically update other time fields on the page</div>
1839		<div id="desc--chat">Chat</div>
1840		<div id="desc--club-website">Open the group website in a new tab.</div>
1841		<div id="desc--delete-cannot-be-undone">This action permanently removes the record and cannot be undone.</div>
1842		<div id="desc--download">Download</div>
1843		<div id="desc--drag-drop">Press Enter or Space to grab or drop items, arrow keys to move, escape to restore original position, and Ctrl plus Enter or Space to add items to top of active menu.</div>
1844		<div id="desc--duplicate-record-with-copy">Creates a duplicate record and adds COPY to the title in parentheses.</div>
1845		<div id="desc--edit-delete-options">Enables edit and delete options</div>
1846		<div id="desc--escape-to-exit-dropdown">Press escape to collapse and exit the dropdown.</div>
1847		<div id="desc--expandable-sub-menu">Expandable sub-menu.</div>
1848		<div id="desc--immediate-action-reload">This will take immediate action and reload the page.</div>
1849		<div id="desc--making-selection-auto-save">Making a selection will automatically save the new status.</div>
1850		<div id="desc--making-selection-auto-save-tag">Making a selection will automatically add the tag.</div>
1851		<div id="desc--new-tab">New tab</div>
1852		<div id="desc--opens-email-builder">Opens the email builder for the selected groups.</div>
1853		<div id="desc--opens-email-client">Opens the default email client.</div>
1854		<div id="desc--paste-emails">Paste emails in the text box separated by a line or a comma.</div>
1855		<div id="desc--reload-page-filter-by">Reloads page and filters by this entry</div>
1856		<div id="desc--no-delete--group-registration">This checklist cannot be deleted because it is used for a Group Registration or Group Re-Registration approval process.</div>
1857		<div id="desc--selecting-will-reload-page">Changing the selection will reload the page</div>
1858		<div id="desc--selecting-will-update-form">Changing the selection will update the form</div>
1859		<div id="desc--selecting-will-update-page">Changing the selection will update the page</div>
1860		<div id="desc--selecting-will-update-row">Changing the selection will update the row</div>
1861		<div id="desc--slider-next">Click to get the next slides then shift-tab back to the slide deck.</div>
1862		<div id="desc--slider-prev">Click to get the previous slides then tab forward.</div>
1863		<div id="desc--stop-following">Stop following</div>
1864		<div id="desc--unarchive-record">Moves this record back into the Active status.</div>
1865		<div id="desc--use-arrow-keys">Use arrow keys</div>
1866		<div id="desc--video-conference-link">Video conferencing link, new tab.</div>
1867		<div id="desc--view-my-calendar">View my entire calendar or schedule.</div>
1868		<div id="desc--view-profile">Opens member profile</div>
1869		<div id="desc--you-are-attending-event">You are attending this event.</div>
1870	</div>
1871
1872	
1872<script>
1873		const messagesToAnnounce = ["#div-top-warning-msg", "#div-top-ok-msg", "#div-top-info-msg"]
1874			.map(s => document.querySelector(`${s} > span[role="status"]`))
1875			.filter(Boolean)
1876			.map(node => node.innerText);
1877		if(messagesToAnnounce.length > 0){
1878			a11yAnnounceToScreenReader(messagesToAnnounce.join(". "))
1879		}
1880	</script>
1880
1881
1882</body>
1883
1884 <!-- END AX != 1 -->
1885
1886	<style>
1887
1888		/* acc-keyboard-mode (OFF) - Default outline on :focus (none) */
1889		body:not(.acc-keyboard-mode) :focus { outline: none; }
1890		body:not(.acc-keyboard-mode) a:focus { outline: none; }
1891
1892        body:not(.acc-keyboard-mode) button.close:focus { outline: none; }
1893
1894		body:not(.acc-keyboard-mode) .button:focus { outline: none; }
1895		body:not(.acc-keyboard-mode) .button.focus { outline: none; }
1896
1897		body:not(.acc-keyboard-mode) .btn.active.focus,
1898        body:not(.acc-keyboard-mode) .btn.active:focus,
1899        body:not(.acc-keyboard-mode) .btn.focus,
1900        body:not(.acc-keyboard-mode) .btn:active.focus,
1901        body:not(.acc-keyboard-mode) .btn:active:focus,
1902        body:not(.acc-keyboard-mode) .btn:focus { outline: none; }
1903
1904		body:not(.acc-keyboard-mode) .dropdown-toggle:focus { outline: none; }
1905		#header__btn-cont--manage:focus, #header__btn-cont--manage:focus-within { outline: none; }
1906
1907		/* no outline/focus on the following (various reasons including hover style on focus, other focus styles applied, etc.) */
1908		body:not(.acc-keyboard-mode) h2:focus { outline: none; outline-offset: 0px; border: none; }
1909		/* .page__header--btns .btn:focus { outline: none !important; outline-offset: 0px !important; } */
1910		/* a.btn--rounded:focus { outline: none !important; outline-offset: 0px !important; } */
1911
1912		/* acc-keyboard-mode (ON) - Default outline on :focus (2px solid #000000) */
1913		.acc-keyboard-mode a:focus {
1914			outline: 2px solid #000000;
1915			outline-offset: 2px;
1916		}
1917
1918	</style>
1919
1920    <!-- should always be last stylesheet loaded -->
1921    <link href="/static/css/accessibility.css?v=20251008.3" rel="stylesheet" />
1922
1923</html>
1924

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.