CINXE.COM

List of Groups

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US"> <script> var jsPageName = "List of Groups"; // pass strPageName to JavaScript, used in function setPageName() [accessibility.js] var jsAjaxRequest = ('0' === '1') ? true : false; </script> <!-- AX != 1 --> <script> var url = new URL(location.href); history.replaceState({type: "website"} , '', url.pathname + url.search); </script> <head> <!-- META TAGS --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1,requiresActiveX=true"> <meta name="apple-itunes-app" content="app-id=1523773785, affiliate-data=myAffiliateData, app-argument=myURL"> <title>List of Groups</title> <meta name="description" content="The campus engagement platform for Yale University - Powered by CampusGroups."> <meta name="title" content="Yale University"> <!-- Google Tag Manager --> <script> dataLayer = [{ 'signedIn': false }]; </script> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-548G27F');</script> <!-- End Google Tag Manager --> <!-- CSS IMPORT --> <!-- FONT FOR DEV --> <link href="/css/fonts/open-sans.css" rel="stylesheet" type="text/css" > <!-- FAVICON --> <link rel="icon" type="images/x-icon" href="/upload/yale/2020/s1_image_upload_1343502_Ferraro_YcWHITEjpg_617205012.jpeg"> <link rel="shortcut icon" type="images/x-icon" href="/upload/yale/2020/s1_image_upload_1343502_Ferraro_YcWHITEjpg_617205012.jpeg"> <!-- JQUERY UI --> <link rel="stylesheet" type="text/css" href="/bower_components/jquery-ui/themes/base/jquery-ui.min.css"> <!-- AUTOCOMPLETE --> <link rel="stylesheet" type="text/css" href="/js/jquery/jquery.autocomplete.css"> <!-- BOOTSTRAP & GLYPHICONS --> <link rel="stylesheet" type="text/css" href="/bower_components/bootstrap/dist/css/bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="/static/plugins/bootstrap-multiselect/dist/css/bootstrap-multiselect.css"> <link rel="stylesheet" type="text/css" href="/glyphicons-pro/css/glyphicons-filetypes.css"> <!-- THICKBOX --> <link rel="stylesheet" type="text/css" href="/js/thickbox/thickbox.css"> <!-- JQUERY & FONT --> <script src="/bower_components/jquery/dist/jquery.min.js"></script> <script src="/bower_components/jquery-ui/jquery-ui.min.js"></script> <!-- BOOTSTRAP --> <script src="/bower_components/bootstrap/dist/js/bootstrap.min.js"></script> <script src="/static/plugins/bootstrap-multiselect/dist/js/bootstrap-multiselect.js"></script> <script type="text/javascript" src="/js/accessibility.js?v=20240514.1"></script> <script type="text/javascript" src="/js/scripts.js?v=20230316.1"></script> <link rel="stylesheet" type="text/css" href="/bower_components/mdi/css/materialdesignicons.min.css"> <link rel="stylesheet" type="text/css" href="/static/css/materialdesigniconscustom.css"> <link rel="stylesheet" type="text/css" href="/static/css/header.css?v=20220425.1"> <link rel="stylesheet" type="text/css" href="/css/bootstrap-customV.css?v=20241007.1"> </head> <body class="body-background " data-menu=""> <!-- SKIP links - skip to top of main content --> <div id="div-skip-links" class="skip-link-container-mobile"> <span style="padding: 5px"><a id="a-skip-to-main-content" href="javascript:" class="skip-link" onclick="setFocusToContent(true);" aria-label="Skip to Main Content">Skip to Main Content</a></span> <span id="span-skip-to-left-navigation" style="padding: 5px; display: none;"><a id="a-skip-to-left-navigation" href="javascript:" class="skip-link" onclick="setFocusToSidebar();" aria-label="Skip to Navigation">Skip to Navigation</a></span> <!-- ACCESSIBILITY --> <script> // if we're on mobile we will not enable the skip links const isMobileDevice = /Mobi/i.test(window.navigator.userAgent); // console.log('> isMobileDevice=' + isMobileDevice); $(window).on('load', function () { if (!isMobileDevice) { var elem = document.getElementById('div-skip-links'); if (typeof elem !== undefined) { elem.classList.remove('skip-link-container-mobile'); elem.classList.add('skip-link-container'); } } }); </script> </div> <!-- School custom code --> <style> #div-upcoming-events-carousel-01 .card .event-slider__card-block {padding-top: 0; padding-left: 0; padding-right: 0;} #div-upcoming-events-carousel-01 .card .event-slider__card-block h5 {padding-top: 5px; padding-left: 15px; padding-right: 15px; background-color: #296dc0; color: #ffffff; } #div-upcoming-events-carousel-01 .card .event-slider__card-block table {margin-left: 15px; margin-right: 15px; } #div-upcoming-events-carousel-01 .card { border-color: #296dc0; } /* Meeting Scheduler: make the timezone selection more obvious (by atn6) */ #timetable form .form-timezone { color: white; font-size: 1em; background-color: #02366A; width: 80%; } /* Meeting Scheduler: Make the left/right arrows to switch months larger (by atn6) */ #calendar .glyphicon { font-size: 1.5em; } </style> <!-- End school custom code --> <!-- Google Tag Manager (noscript) --> <!-- <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-548G27F" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> --> <!-- End Google Tag Manager (noscript) --> <!-- Modal --> <div id="primary-modal" class="modal fade" role="dialog"> <div class="modal-dialog" role="document"> <div class="modal-content"> <p class="loader"> <img alt="Loading" src="/images/loader-big.gif"> <br> Loading... </p> </div> </div> </div> <div id="secondary-modal" class="modal fade" role="dialog"> <div class="modal-dialog" role="document"> <div class="modal-content"> <p class="loader"> <img alt="Loading" src="/images/loader-big.gif"> <br> Loading... </p> </div> </div> </div> <script> $("#primary-modal").on("hide.bs.modal", function (e) { $("#primary-modal .modal-content").html(writeLoading("Loading")); }); $("#secondary-modal").on("hide.bs.modal", function (e) { $("#secondary-modal .modal-content").html(writeLoading("Loading")); }); </script> <!-- End Modal --> <script src="/static/js/modernizr.min.js"></script> <script src="/js/jquery-validate/jquery.validate.min.js"></script> <script src="/static/js/polyfill.js"></script> <!-- HEADER --> <style> .btn--school { background-color: #00356b; color: #fff; } .btn--school:hover { background-color: #00356b; color: #fff; } .btn--school:focus { background-color: #00356b; color: #fff; } .topbar { background: #ffffff; border-color: #ffffff; } .topbar ul.nav > li > a:hover, .topbar ul.nav > li > button:hover { background-color: #00356b !important; } .topbar ul.nav > li > a:focus, .topbar ul.nav > li > button:focus { background-color: #00356b !important; outline: none; } .topbar .topbar__sidebar-toggle:hover { background-color: #00356b !important; } .topbar .topbar__sidebar-toggle:focus { background-color: #00356b !important; outline: none; } .topbar .open:not(.topbar__left) > a, .topbar .open:not(.topbar__left) > a:focus, .topbar > .open:not(.topbar__left) > a:hover, .topbar .open:not(.topbar__left) > button, .topbar .open:not(.topbar__left) > button:focus, .topbar > .open:not(.topbar__left) > button:hover { background-color: #00356b !important; } .topbar li:focus-within > button.mdi-menu { background-color: #00356b !important; } .topbar li.active > a, .topbar li.active > button { background-color: #00356b !important; } </style> <div id="generic">Loading</div> <div id="outer-shell" class="outer-shell "> <!-- Impersonate --> <!-- /.Impersonate --> <!-- Message / Maintenance --> <!-- /.Message --> <div id="topbar" class="topbar topbar-website topbar--light topbar--reverse" role="navigation" aria-label="Topbar"> <div class="topbar__left"> <div role="banner"> <a id="a-top-bar-logo" aria-label="Yale University Logo. Opens the members homepage." role="button" class="logo" href="/groups"> <img class="topbar__icon-large" src="/upload/yale/2020/image_upload_1343502_FerraroYConnect_blue_200x50jpg_617133518.jpeg" alt="Yale University Logo Image." aria-label="Yale University Logo Image. Clicking opens the members home page." style="max-height: 50px; max-width: 165px;"> <img class="topbar__icon-small" src="/upload/yale/2020/image_upload_34747_image_upload_1343502_FerraroYConnect_blue_200jpg_61713392_7291852.jpeg" alt="Yale University Logo Image." aria-label="Yale University Logo Image. Clicking opens the members home page." style="max-height: 35px; max-width: 35px; margin: 0 5px;"> </a> </div> </div> <div class="topbar__center"> <nav aria-label="Topbar"> <ul class="nav"> <li> <a href="/SAS/" style="display:flex; padding-top: 1rem; max-width: 100%;" role="button" aria-label="Student Accessibility Services"> <span class="mdi mdi-chevron-left" style="margin-top: 1.2rem;"></span> <img class="media-object--bordered" src="/upload/yale/2022/s2_logo_38686_1010134212.jpg" alt="Student Accessibility Services's logo" style="background:#fff; height: 40px; width: 40px; margin-right: 5px;"> <span class="hidden-xs" style="margin-top: 1.2rem;">Student Accessibility Services</span> </a> </li> <li class="spacer" role="presentation"></li> <!-- Login Button --> <li class=""> <a class="topbar__menu topbar__menu--row" href="/login_only" aria-label="Sign In Section" role="button"> <span class="mdi mdi-login-variant mdi-24px"></span> <span class="hidden-xs hidden-sm topbar__menu-text" style="overflow: initial;"> Sign In </span> </a> </li> <!-- /.Login Button --> <style> #a-top-bar-logo:focus > i { outline: 2px solid #ffffff; } </style> </ul> </nav> </div><!-- /.navbar-collapse --> </div><!-- /.topbar --> <div id="inner-shell" class="inner-shell"> <!-- END HEADER --> <div id="content-cont" class="content-cont container"> <div id="page-cont" class="content" role="main" aria-label="Main Content."> <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> <!-- Used in email_form --> <!-- END AX != 1 --> <style> @media(max-width:500px){ .row > div{ padding-left:10px !important; padding-right:10px !important; } #list-group-item_header{ display:none; } .container{ padding:0px !important; } #groups-cont{ margin-top: 30px !important; } #listing__header-cont h2 { margin-top: 0px; } .badge { font-size: 12px; } .media-left > a > img{ width:60px; height:60px; } .info_hidden_xxs{ display:none } #info_showed_xxs{ display:inline !important; } .listing-element__title-block{ margin-bottom:10px } .membership_type{ margin:0px !important; } .list-group-item{ padding-bottom:10px !important; } .row > .desc-block{ padding-left:30px !important; } } </style> <div id="listing__header-cont" class="row"> <div class="col-xs-12 col-sm-12 col-md-8 col-lg-8"> <h1 class="header-cg--h2"> <span id="listing__header--icon" class="mdi mdi-account-arrow-right color-cg--group"></span> <span id="listing__header--title">Join Group</span> <small id="clubsCount"></small> </h1> </div> </div> <div class="card-border border-cg--group"></div> <div> <div class="visually-hidden" role="region">This region is just before the group list results. Press Tab to continue.</div> <ul class="list-group" style="margin-bottom: 80px;"> <form action="club_signup_form" method="post" name="form_clubs" id="form_clubs"> <input type="hidden" name="_csrf" value="BzFDCYign/yQk/1/3vi1AAhBb60ey0mDViPAWzOc19x4"> <li class="list-group-item" style="padding: 20px 15px;"> <div class="row"> <div class="col-xxs-2_5 col-xs-2 col-sm-5 col-md-1 text-center"> <div class="checkbox checkbox-cg--group" style="margin-left:15px;margin-top:0px"> <input id="cb_club_38686" onclick="toggle_ecg('email_restriction_38686');toggle_ecg('div_waiver_38686', 'cb_club_38686', 'div_waiver_38686');onSelectClubToJoin(this);" type="checkbox" class="nb" name="clubs" value="38686" /> <label for="cb_club_38686"> <span class="visually-hidden">Select Student Accessibility Services's group. Select the group and click on the Join button at the bottom of the page to register for this group</span> </label> </div> </div> <div class="listing-element__title-block col-xxs-9_5 col-xs-19 col-sm-10_5 col-md-5_5"> <div class="media"> <div class="media-left"> <a target="_blank" href="https://sas.yale.edu/"> <img class="media-object media-object--bordered" width="80px" height="80px" alt="Student Accessibility Services's logo" src="/upload/yale/2022/s2_logo_38686_1010134212.jpg" onError="this.onerror=null;this.src='/images/listing-default.png';"> </a> </div> <div class="media-body"> <h2 class="media-heading header-cg--h4"> <a target="_blank" href="https://sas.yale.edu/"> Student Accessibility Services </a> </h4> <p class="h5 media-heading grey-element"> University Life Administration </p> <div style="word-break: break-word;"> <p class="h5 media-heading" style="margin-top: 10px;"> <a aria-label="Website" aria-description="Open the Student Accessibility Services website in a new tab." style="margin-right: 15px;" target="_blank" href="https://sas.yale.edu/"><span class="mdi mdi-web"></span>Website</a> <a id="a-mission_38686" aria-label="Mission" aria-description="Student Accessibility Services" style="margin-right: 15px;" href="javascript:toggle_ecg('club_38686', 'a-mission_38686', 'club_38686');"><span class="mdi mdi-checkbox-marked-circle-outline"></span>Mission</a> <div style="border-top:1px solid #ccc; margin-top:15px"> <p style="margin-top:10px"> <span class='mdi mdi-comment-text-outline' style='color: #337ab7;'></span> Contact: <a title='Send a message to the group:' href="javascript:;" onClick="openModal('/send_message_boot?club_uid=59091f3b-d64d-11ea-bc6e-0a85c368333a&club_id=38686&ax=1&async=1&modal=true');">Email group officers</a></p> </div> </p> <p style="display:none" class="noOutlineOnFocus" tabindex="0" id="club_38686" onclick="toggle_ecg('club_38686', 'a-mission_38686', 'a-mission_38686');"> <strong>Mission</strong><br> The primary mission of Student Accessibility Services (SAS) is to facilitate individual accommodations for all students with disabilities throughout the entire University, and by so doing, work to remove physical and attitudinal barriers, which may prevent their full participation in the University community. Section 504 of the Rehabilitation Act of 1973 and the Americans with Disabilities Act guide much of our work. <br /><br />Often, the physical barrier is the easiest to remove - the attitudinal barriers are much more difficult. To create a university community, which is truly accessible and inclusive of all persons, including people with disabilities requires the participation of each member of the community. If you have any questions about accessibility or our office, please contact us. </p> <script> $("#club_38686").on('focus', function() { $("#club_38686").keyup(null); setTimeout(function() { var isActive = false; $("#club_38686").keyup(function(event) { if (isActive) { return; } isActive = true; if (event.which === 13) { $("#club_38686").keyup(null); $("#club_38686").click(); } else { isActive = false; } }); }, 250); }); </script> <p style="display:none" class="noOutlineOnFocus" tabindex="0" id="club_whatwedo_38686" onclick="toggle_ecg('club_whatwedo_38686', 'a-member-benefits_38686', 'a-member-benefits_38686');"><strong>Membership Benefits</strong><br></p> <script> $("#club_whatwedo_38686").on('focus', function() { $("#club_whatwedo_38686").keyup(null); setTimeout(function() { var isActive = false; $("#club_whatwedo_38686").keyup(function(event) { if (isActive) { return; } isActive = true; if (event.which === 13) { $("#club_whatwedo_38686").keyup(null); $("#club_whatwedo_38686").click(); } else { isActive = false; } }); }, 250); }); </script> </div> </div> </div> <div> </div> </div> <div class="desc-block col-xxs-10 col-xxs-offset-2 col-xs-10 col-xs-offset-2 col-sm-10_5 col-sm-offset-1_5 col-md-offset-0 col-md-3_5 text-left"> <strong></strong><p><span style="color:#686868;"> Lifetime membership</span></p> </div> </div> </li> <script> $('document').ready(function(){ document.getElementById("cb_club_38686").click(); }); </script> <div class="visually-hidden" role="region">This region is just before the bottom page controls. Press Tab to continue.</div> <div class=" text-center"> <script type="text/javascript"> function check_more_details() { var arr_ids = []; $('input[name=clubs]:checked').map(function() { arr_ids.push($(this).val()); }); var submit = 1; for (x = 0; x < arr_ids.length; x++) { if ( document.getElementById("cb_club_" + arr_ids[x]).checked ) { if (document.getElementById("more_details_" + arr_ids[x]).value == "") { submit = 0; } } } if (submit == 0) { alert("You must fill out the More Details text boxes of the selected groups."); return false; } else { return true; } } function check_waiver() { var arr_ids = []; $('input[name=clubs]:checked').map(function() { arr_ids.push($(this).val()); }); var submit = 1; for (x = 0; x < arr_ids.length; x++) { if ( document.getElementById("cb_club_" + arr_ids[x]).checked && document.getElementById("waiver_" + arr_ids[x])) { if ((!document.getElementById("waiver_" + arr_ids[x]).checked && $("#waiver_" + arr_ids[x]).is(":visible")) || ($("#waiver_signature_" + arr_ids[x]).val() === "" && $("#waiver_signature_" + arr_ids[x]).is(":visible"))) { submit = 0; } } } if (submit == 0) { alert("You must agree and sign all the waivers of the groups you selected."); return false; } else { return true; } } function check_membership_option() { var arr_ids = []; $('input[name=clubs]:checked').map(function() { arr_ids.push($(this).val()); }); var submit = 1; for (x = 0; x < arr_ids.length; x++) { if ( document.getElementById("cb_club_" + arr_ids[x]).checked ) { if (document.getElementById("club_options_" + arr_ids[x])) { if (document.getElementById("club_options_" + arr_ids[x]).value == "") { submit = 0; } } } } if (submit == 0) { alert("You must select a Membership Option for each of the applicable selected groups."); return false; } else { return true; } } </script> <input onclick="javascript: var waiver = check_waiver(); var membership_option = check_membership_option(); if (waiver && membership_option) {return check_more_details();} else {return false;}" class="btn btn-cg--group" type="submit" role="button" name="Submit" value=" Join " style="margin-top: 10px;"/> </div> </form> </ul> </div> <script> function onSelectClubToJoin(checkbox) { if( $(checkbox).prop('checked') ) { $(checkbox).closest(".list-group-item").addClass("list-group-item--selected").addClass("border-cg--group") } else { $(checkbox).closest(".list-group-item").removeClass("list-group-item--selected").removeClass("border-cg--group") } } </script> <!-- LL - 10/03/2017: Moved up here so ckeditor can work in popups --> <script> //YT Viewer if (typeof arrYoutubePlayerObjects != "undefined") { $("#youtubeScript").remove(); $("#www-widgetapi-script").remove(); if (window['YT'] != undefined) { window.YT.loading = 0; window.YT.loaded = 0; } var youtubeTag = document.createElement('script'); youtubeTag.id = "youtubeScript"; youtubeTag.src = "https://www.youtube.com/iframe_api"; youtubeTag.async = false; // Get First Script Tag & Insert Vimeo Script before that. var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(youtubeTag, firstScriptTag); // Array of Players var arrYoutubePlayers = []; // Functions to work on Youtube Players function onYoutubePlayerReady(event) { var player = event.target; $(window).blur(function() { player.pauseVideo(); }); $(window).scroll(function() { if ( !isInViewport(document.getElementById("player--" + player.youtubeObject.cgID))) { player.pauseVideo(); } }); var startTime = new Date(player.youtubeObject.startTime * 1000).toISOString(); var totalTime = new Date(player.getDuration() * 1000).toISOString(); if (player.getDuration() >= 3600) { startTime = startTime.substr(11, 8); totalTime = totalTime.substr(11, 8); } else { startTime = startTime.substr(14, 5); totalTime = totalTime.substr(14, 5); } $("#player-btn--" + player.youtubeObject.cgID + " div.timer").html("<span id='player-time--" + player.youtubeObject.cgID + "'>" + startTime + "</span> / " + totalTime); } function onYoutubePlayerStateChange(event) { var player = event.target; if (event.data == YT.PlayerState.PLAYING) { // Change Buttons $("#player-btn--" + player.youtubeObject.cgID + " button.playpause").attr("data-status", "pause").attr("aria-label", "Pause"); $("#player-btn--" + player.youtubeObject.cgID + " button.playpause span.mdi").removeClass("mdi-play").addClass("mdi-pause"); } if (event.data == YT.PlayerState.PLAYING && player.intervalFunction == null) { // HACK For Window BLUR window.focus(); // AJAX Recurring Call player.intervalFunction = setInterval(function() { postVideoViews(player.youtubeObject.cgUID, player.youtubeObject.cgUID_s, player.getCurrentTime()); }, 10000); // Timer player.intervalTimerFunction = setInterval(function() { var currentTime = new Date(player.getCurrentTime() * 1000).toISOString(); if (player.getDuration() >= 3600) { currentTime = currentTime.substr(11, 8); } else { currentTime = currentTime.substr(14, 5); } $("#player-time--" + player.youtubeObject.cgID).html(currentTime); }, 1000) } else if (event.data == YT.PlayerState.PAUSED || event.data == YT.PlayerState.ENDED) { // Change Buttons $("#player-btn--" + player.youtubeObject.cgID + " button.playpause").attr("data-status", "play").attr("aria-label", "Play"); $("#player-btn--" + player.youtubeObject.cgID + " button.playpause span.mdi").removeClass("mdi-pause").addClass("mdi-play"); clearInterval(player.intervalFunction); clearInterval(player.intervalTimerFunction); player.intervalFunction = null; player.intervalTimerFunction = null; postVideoViews(player.youtubeObject.cgUID, player.youtubeObject.cgUID_s, player.getCurrentTime(), (event.data == YT.PlayerState.ENDED ? 'true' : '')); //if (event.data == YT.PlayerState.ENDED) { //if (typeof refreshTrackChecklist !== "undefined") { refreshTrackChecklist(); } //else if (typeof parent.refreshTrackChecklist !== "undefined") { parent.refreshTrackChecklist(); } //} } } function youtubePlayerPlayPause(player) { var currentStatus = $("#player-btn--" + player.youtubeObject.cgID + " button.playpause").attr("data-status"); if (currentStatus == "play") { player.playVideo(); } else if (currentStatus == "pause") { player.pauseVideo(); } } /* Function that checks localStorage for the Vimeo/YouTube closed captions load policy. Returns number values: * 0 - closed captions should be be disabled (do not load closed captions) * 1 - closed captions should be loaded when video loads * If the local storage key is not defined we return 0 (as a number). */ function getVideoPlayerCCLoadPolicy() { try { const lsKey = 'cg-video-player-cc-load-policy'; const ccLoadPolicy = localStorage.getItem(lsKey); return (ccLoadPolicy === '1') ? 1 : 0; } catch(e) { return 0; } } /* Function that toggles the video player CC load policy stored in local storage. Toggled values are (strings values): * '0' - closed captions should be be disabled (do not load closed captions) * '1' - closed captions should be loaded when video loads * If the local storage key is not defined it is treated as though the value were '0' and toggles to '1'. * */ function toggleVideoPlayerCCLoadPolicy() { try { const lsKey = 'cg-video-player-cc-load-policy'; const ccLoadPolicy = localStorage.getItem(lsKey); if (ccLoadPolicy === '1') { localStorage.setItem(lsKey, '0'); } else { localStorage.setItem(lsKey, '1'); } } catch(e) { return; } } /* Function that prompts the user for confirmation before toggling the video player closed caption load policy. * - If closed captions are currently turned off, the user will be prompted to confirm before turning them on (and vice versa) * - Video player CC load policy setting is stored in local storage (see above functions) * - Vimeo and YouTube video players require reload of the associated IFrames to change the setting, * if user confirms yes to reload, the page will be reloaded. */ function toggleClosedCaptionsAndReloadVideoIframes() { const turnClosedCaptionsOnOff = (typeof getVideoPlayerCCLoadPolicy !== 'undefined' && getVideoPlayerCCLoadPolicy() === 1) ? 'off' : 'on'; 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 + '?'; if (confirm(message)) { toggleVideoPlayerCCLoadPolicy(); location.reload(); } else { return false; } } // Called when the script is fully loaded. function onYouTubeIframeAPIReady() { // Loop through players arrYoutubePlayerObjects.forEach(function (youtubeObject, index) { arrYoutubePlayers[index] = new YT.Player("player--" + youtubeObject.cgID, { height: youtubeObject.height, width: youtubeObject.width, videoId: youtubeObject.videoID, playerVars: { modestbranding: 1, rel: 0, disablekb: 1, playsinline: 1, controls: 0, start: youtubeObject.startTime, cc_load_policy: (typeof getVideoPlayerCCLoadPolicy !== 'undefined') ? getVideoPlayerCCLoadPolicy() : 0 }, events: { 'onStateChange': onYoutubePlayerStateChange, 'onReady': onYoutubePlayerReady } }); arrYoutubePlayers[index].youtubeObject = youtubeObject; arrYoutubePlayers[index].intervalFunction = null; $("#player-btn--" + youtubeObject.cgID + " button.playpause").on('click', function() { youtubePlayerPlayPause(arrYoutubePlayers[index]); }); $("#player-btn--" + youtubeObject.cgID + " button.replay").on('click', function() { arrYoutubePlayers[index].seekTo(0); }); $("#player-btn--" + youtubeObject.cgID + " button.rewind").on('click', function() { arrYoutubePlayers[index].seekTo(arrYoutubePlayers[index].getCurrentTime() - 10); }); const turnClosedCaptionsOnOff = (typeof getVideoPlayerCCLoadPolicy !== 'undefined' && getVideoPlayerCCLoadPolicy() === 1) ? 'off' : 'on'; $("#player-btn--" + youtubeObject.cgID + " button.closedcaption").attr('aria-label', 'Turn ' + turnClosedCaptionsOnOff + ' closed captions. Note, this requires a reload of the current page.'); $("#player-btn--" + youtubeObject.cgID + " button.closedcaption").on('click', function() { toggleClosedCaptionsAndReloadVideoIframes(); }); $("#player-btn--" + youtubeObject.cgID + " button.fullscreen").on('click', function() { arrYoutubePlayers[index].pauseVideo(); tb_show("", "/video_player?embed=1&uid=" + youtubeObject.cgUID + "&width=995&height=680&modal=true&TB_iframe=1", ""); }); }); arrYoutubePlayerObjects = undefined; } } //Vimeo Viewer if (typeof arrVimeoPlayerObjects != "undefined") { $("#vimeoScript").remove(); var vimeoTag = document.createElement('script'); vimeoTag.id = "vimeoScript"; vimeoTag.src = "https://player.vimeo.com/api/player.js"; vimeoTag.async = false; // Get First Script Tag & Insert Vimeo Script before that. var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(vimeoTag, firstScriptTag); // Array of Players var arrVimeoPlayers = []; // Functions to work on Vimeo Players function vimeoPlayerPlay(player) { // Change Buttons $("#player-btn--" + player.vimeoObject.cgID + " button.playpause").attr("data-status", "pause").attr("aria-label", "Pause"); $("#player-btn--" + player.vimeoObject.cgID + " button.playpause span.mdi").removeClass("mdi-play").addClass("mdi-pause"); // AJAX Recurring Call player.intervalFunction = setInterval( function() { player.getCurrentTime().then( function(seconds) { postVideoViews(player.vimeoObject.cgUID, player.vimeoObject.cgUID_s, seconds); }) }, 10000) // Timer player.intervalTimerFunction = setInterval(function() { player.getCurrentTime().then( function(seconds) { var currentTime = new Date(seconds * 1000).toISOString(); if (player.totalDuration >= 3600) { currentTime = currentTime.substr(11, 8); } else { currentTime = currentTime.substr(14, 5); } $("#player-time--" + player.vimeoObject.cgID).html(currentTime); }) }, 1000) } function vimeoPlayerPause(player) { // Change Buttons $("#player-btn--" + player.vimeoObject.cgID + " button.playpause").attr("data-status", "play").attr("aria-label", "Play"); $("#player-btn--" + player.vimeoObject.cgID + " button.playpause span.mdi").removeClass("mdi-pause").addClass("mdi-play"); // Clear AJAX Recurring Call clearInterval(player.intervalFunction); clearInterval(player.intervalTimerFunction); player.intervalFunction = null; player.intervalTimerFunction = null; player.getCurrentTime().then( function(seconds) { postVideoViews(player.vimeoObject.cgUID, player.vimeoObject.cgUID_s, seconds); }); } function vimeoPlayerEnded(player) { // Change Buttons $("#player-btn--" + player.vimeoObject.cgID + " button.playpause").attr("data-status", "play").attr("aria-label", "Play"); $("#player-btn--" + player.vimeoObject.cgID + " button.playpause span.mdi").removeClass("mdi-pause").addClass("mdi-play"); // Clear AJAX Recurring Call clearInterval(player.intervalFunction); clearInterval(player.intervalTimerFunction); player.intervalFunction = null; player.intervalTimerFunction = null; player.getCurrentTime().then( function(seconds) { postVideoViews(player.vimeoObject.cgUID, player.vimeoObject.cgUID_s, seconds, 'true'); }); //if (typeof refreshTrackChecklist !== "undefined") { refreshTrackChecklist(); } //else if (typeof parent.refreshTrackChecklist !== "undefined") { parent.refreshTrackChecklist(); } } function vimeoPlayerPlayPause(player) { var currentStatus = $("#player-btn--" + player.vimeoObject.cgID + " button.playpause").attr("data-status"); if (currentStatus == "play") { player.play(); } else if (currentStatus == "pause") { player.pause(); } } // We wait until the script is fully loaded. $("#vimeoScript").on('load', function() { // Loop through players arrVimeoPlayerObjects.forEach(function (vimeoObject, index) { if (typeof getVideoPlayerCCLoadPolicy !== 'undefined' && getVideoPlayerCCLoadPolicy() === 1) { // load with closed captions enabled (set texttrack to 'en') arrVimeoPlayers[index] = new Vimeo.Player("player--" + vimeoObject.cgID, { url: vimeoObject.URL , height: vimeoObject.height, width: vimeoObject.width, controls: false, texttrack: 'en' }); } else { arrVimeoPlayers[index] = new Vimeo.Player("player--" + vimeoObject.cgID, { url: vimeoObject.URL , height: vimeoObject.height, width: vimeoObject.width, controls: false }); } arrVimeoPlayers[index].vimeoObject = vimeoObject; arrVimeoPlayers[index].intervalFunction = null; if (vimeoObject.startTime != 0) { arrVimeoPlayers[index].setCurrentTime(vimeoObject.startTime); } arrVimeoPlayers[index].on('play', function() { vimeoPlayerPlay(this) } ); arrVimeoPlayers[index].on('pause', function() { vimeoPlayerPause(this) } ); arrVimeoPlayers[index].on('ended', function() { vimeoPlayerEnded(this) } ); $("#player-btn--" + vimeoObject.cgID + " button.playpause").on('click', function() { vimeoPlayerPlayPause(arrVimeoPlayers[index]); }); $("#player-btn--" + vimeoObject.cgID + " button.replay").on('click', function() { arrVimeoPlayers[index].setCurrentTime(0) }); $("#player-btn--" + vimeoObject.cgID + " button.rewind").on('click', function() { arrVimeoPlayers[index].getCurrentTime().then(function(seconds) { arrVimeoPlayers[index].setCurrentTime(Math.max(0, seconds - 10)); }) }); const turnClosedCaptionsOnOff = (typeof getVideoPlayerCCLoadPolicy !== 'undefined' && getVideoPlayerCCLoadPolicy() === 1) ? 'off' : 'on'; $("#player-btn--" + vimeoObject.cgID + " button.closedcaption").attr('aria-label', 'Turn ' + turnClosedCaptionsOnOff + ' closed captions. Note, this requires a reload of the current page.'); $("#player-btn--" + vimeoObject.cgID + " button.closedcaption").on('click', function() { toggleClosedCaptionsAndReloadVideoIframes(); }); $("#player-btn--" + vimeoObject.cgID + " button.fullscreen").on('click', function() { arrVimeoPlayers[index].pause(); tb_show("", "/video_player?embed=1&uid=" + vimeoObject.cgUID + "&width=995&height=680&modal=true&TB_iframe=1", ""); }); $(window).blur(function() { arrVimeoPlayers[index].pause(); }); $(window).scroll(function() { if ( !isInViewport(document.getElementById("player--" + vimeoObject.cgID))) { arrVimeoPlayers[index].pause(); } }); var startTime = new Date(vimeoObject.startTime * 1000).toISOString(); var totalTime = 0; arrVimeoPlayers[index].getDuration().then(function(seconds) { arrVimeoPlayers[index].totalDuration = seconds; totalTime = new Date(seconds * 1000).toISOString(); if (seconds >= 3600) { startTime = startTime.substr(11, 8); totalTime = totalTime.substr(11, 8); } else { startTime = startTime.substr(14, 5); totalTime = totalTime.substr(14, 5); } $("#player-btn--" + vimeoObject.cgID + " div.timer").html("<span id='player-time--" + vimeoObject.cgID + "'>" + startTime + "</span> / " + totalTime); }); }); arrVimeoPlayerObjects = undefined; }); } </script> <script> $(document).ready(function(){ $("[data-toggle='tooltip']").tooltip(); $(".btn--loader").click(function() { loadButton($(this)); }); tb_init('a.thickbox, area.thickbox, input.thickbox'); // fix for the non editable input in ckeditor (ex: URL...) $(".modal").removeAttr("tabindex"); setupAjaxAccessibility(); }); </script> <!-- AX != 1 --> </div><!--/.content --> </div><!--/.content-page --> </div><!--/.inner-shell --> <script type="text/javascript" src="/js/jquery-migrate-1.2.1.js"></script> <!-- THICKBOX --> <script src="/js/thickbox/thickbox.js"></script> <script type="text/javascript" src="/static/js/metisMenuCustom.js?v=1"></script> <script type="text/javascript" src="/static/js/jquery.slimscroll.js"></script> <!--<link href="/static/css/scrollbar.css" rel="stylesheet"> <script type="text/javascript" src="/static/js/scrollbar.js"></script>--> <script type="text/javascript">function $$(strId) { return document.getElementById(strId); }</script> <script type="text/javascript" src="/static/plugins/clamp/clamp.min.js"></script> <script type="text/javascript" src="/static/js/core.js"></script> <script type="text/javascript" src="/static/js/menu.js"></script> <script type="text/javascript" src="/static/js/routing.js"></script> <script type="text/javascript">$.ajaxSetup({cache:true})</script> <!-- @TODO: This is for jPrompt. We might to see if an update is available or give it a better style --> <link href="/js/jquery-alerts/jquery.alerts.css" rel="stylesheet" type="text/css"> <script src="/js/jquery-alerts/jquery.alerts.js" type="text/javascript"></script> <!-- @TODO: Check if used : put directly on /r and student_password--> <script> </script> <!-- Google Analytics --> <script> var _customTask = function() { return function(model){ var piiRegex = [ { name: 'Email', regex: /.{4}@.{4}/g}, { name: 'Phone_Number', regex: /^(\+|\d)[0-9]{7,16}$/g}, { name: 'SSN', regex: /^\d{3}-\d{2}-\d{4}$}/g}, { name: 'Address', regex: /^\d+\s[A-z]+\s[A-z]+/g}]; var globalSendTaskName = '_' + model.get('trackingId') + '_sendHitTask'; // Fetch reference to the original sendHitTask var originalSendTask = window[globalSendTaskName] = window[globalSendTaskName] || model.get('sendHitTask'); var i, hitPayload, parts, val; // Overwrite sendHitTask with PII purger model.set('sendHitTask', function(sendModel) { hitPayload = sendModel.get('hitPayload').split('&'); for (i = 0; i < hitPayload.length; i++) { parts = hitPayload[i].split('='); // Double-decode, to account for web server encode + analytics.js encode try { val = decodeURIComponent(decodeURIComponent(parts[1])); } catch(e) { val = decodeURIComponent(parts[1]); } piiRegex.forEach(function(pii) { val = val.replace(pii.regex, '[REDACTED ' + pii.name + ']'); }); parts[1] = encodeURIComponent(val); hitPayload[i] = parts.join('='); } sendModel.set('hitPayload', hitPayload.join('&'), true); originalSendTask(sendModel); }); }; } </script> <!-- GA4 implementation --> <script async src='https://www.googletagmanager.com/gtag/js?id=G-HGDT2ZBJ87'></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-HGDT2ZBJ87', { 'send_page_view': true, 'name': 'school', custom_map: { 'dimension1': 'customTask' } }); gtag('event', 'page_view', { customTask: _customTask() }); </script> <!-- End Google Analytics --> <!-- Help --> <!-- End Help --> </body> <!-- END AX != 1 --> <style> /* Accessibility Mode OFF - Default outline on :focus (none) */ :focus { outline: none; } a:focus { outline: none; } button.close:focus { outline: none; } .button:focus { outline: none; } .button.focus { outline: none; } .btn.active.focus, .btn.active:focus, .btn.focus, .btn:active.focus, .btn:active:focus, .btn:focus { outline: none; } .dropdown-toggle:focus { outline: none; } #header__btn-cont--manage:focus, #header__btn-cont--manage:focus-within { outline: none; } /* no outline/focus on the following (various reasons including hover style on focus, other focus styles applied, etc.) */ h2:focus { outline: none; outline-offset: 0px; border: none; } /* .page__header--btns .btn:focus { outline: none !important; outline-offset: 0px !important; } */ /* a.btn--rounded:focus { outline: none !important; outline-offset: 0px !important; } */ </style> <!-- should always be last stylesheet loaded, version=yyyymmddx --> <link href="/static/css/accessibility.css?v=20220717.1" rel="stylesheet" /> </html>

Pages: 1 2 3 4 5 6 7 8 9 10