This is a markdown document.
/**
* JavaScript
Required JS :
In Order :
//ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js
https://cdnjs.cloudflare.com/ajax/libs/gsap/1.20.3/TweenMax.min.js
https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.5/ScrollMagic.min.js
https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.5/plugins/animation.gsap.min.js
https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.5/plugins/debug.addIndicators.min.js
[[path]]/toolkit.js
PLEASE NOTE :
toolkit.js includes the following minified plugin sources as well as the custom code below :
fancybox.js
slick.js
select2.js
stacktable.js
toolkit.js
mixitup.js
mixitup-multifilter.js
weather.js
*/
jQuery(document).ready(function($) {
jQuery('body').css("opacity", "1");
//External icon automatically added to new window links
// $('a[target="_blank"]').each(function(){
// $(this).append('<img class="external" src="http://push10dev.com/pennlaw/assets/toolkit/images/external.png" />')
// });
//ADA Tab, when the body of the site is focused, the sub navigation will close if open
$('#site a').focus(function(){
$('.focused').removeClass('focused');
});
$('.mobile-link-active').on('click', function(e){
e.preventDefault();
$('.sidebar-container').toggleClass('mobile-open');
})
if (!$('.sidebar-container').length) {
$('.main-page-content').addClass('non-sidebar');
}
if ($('.side-nav-container').length) {
$('body').addClass('side-nav-active');
$('.close-sidenav').on('click', function(e){
e.preventDefault();
$('body').addClass('hide-sidenav');
});
$('.open-sidebav').on('click', function (e) {
e.preventDefault();
$('body').removeClass('hide-sidenav');
});
if ($(window).width() < 651) {
$('body').addClass('hide-sidenav');
}
}
// Main Navigation Scroll effect
if ($('h1').length) {
var distance = $('h1').offset().top;
} else {
var distance = $('#site').offset().top;
}
$(window).scroll(function() {
if ( $(window).scrollTop() >= distance ) {
$('body').addClass('active-scroll');
}
if ( $(window).scrollTop() < distance ) {
$('body').removeClass('active-scroll');
}
});
//Scroll to Top
$(".back-to-top").on('click', function() {
$("html, body").animate({ scrollTop: 0 }, "slow");
$('header').focus();
return false;
});
//Mixitup
if ($('.filter-items-container').length) {
var $nomessage = $('#noItemsFoundMessage');
var $filterSelect = $('#filter-select'),
$container = $('#filterContainer');
var mixer = mixitup($container, {
selectors: {
target: '.mix'
},
animation: {
duration: 300
},
callbacks: {
onMixEnd: function (state) {
if (state.hasFailed) {
$nomessage.addClass('active-nomessage');
}
else {
$nomessage.removeClass('active-nomessage');
}
}
}
});
$filterSelect.on('change', function () {
mixer.filter(this.value);
});
}
$('#search-scholarship').on('focus', function(){
$(this).parent().addClass('push-active-label');
});
$('#search-scholarship').on('blur', function () {
if ($(this).val() === '') {
$(this).parent().removeClass('push-active-label');
}
});
if ($("#temp").length) {
getWeather(40.0343, -75.1213);
}
function getWeather(lat, long) {
$.ajax({
url:
"https://fcc-weather-api.glitch.me/api/current?lat=" +
lat +
"&lon=" +
long,
type: "get",
success: function (data) {
var temp = data.main.temp,
tempF = Math.round(temp * 9 / 5 + 32) + "℉",
status = data.weather[0].main + " / " + data.weather[0].description;
$("#status").html(status);
$("#temp").html(tempF);
},
error: function (error) {
console.log(JSON.stringify(error));
}
});
}
if ($('.opportunities-wrap').length) {
var $filterForm = $('#filter-select'),
$nomessage = $('#noItemsFoundMessage'),
$container = $('#opportunitiesContainer');
var mixer = mixitup($container, {
multifilter: {
enable: true,
parseOn: 'submit'
},
selectors: {
target: '.opportunity-item'
},
animation: {
duration: 300
},
callbacks: {
onMixEnd: function (state) {
if (state.hasFailed) {
$nomessage.addClass('active-nomessage');
}
else {
$nomessage.removeClass('active-nomessage');
}
}
}
});
$('#opportunitiesForm').on('submit', function(){
var val = $('#skills').val();
var val2 = $('#topic').val();
mixer.setFilterGroupSelectors('skills', val);
mixer.setFilterGroupSelectors('topics', val2);
mixer.parseFilterGroups();
$('.results-container').addClass('active-results-container');
});
}
//Mobile Navigation Functionality
$('.mobile-menu-trigger').on('click', function(e){
e.preventDefault();
$('body').toggleClass('mobile-nav-active');
});
$('.mobile-search-trigger').on('click', function(e){
e.preventDefault();
$('body').toggleClass('mobile-search-active');
});
$('.mobile-search-form-container').find('input[type="text"]').focus(function() {
$(this).prev('label').addClass('active-label');
});
$('.mobile-search-form-container').find('input[type="text"]').blur(function() {
if ($(this).val() === '') {
$(this).prev('label').removeClass('active-label');
}
});
$(window).resize(function() {
if ($(window).width() > 11101) {
$('body').removeClass('mobile-nav-active');
$('body').removeClass('mobile-search-active');
}
});
$('nav.mobile-navigation a[aria-haspopup="true"]').each(function(){
$(this).after('<button class="mobile-dropdown-button" aria-label="Sub Navigation Dropdown Toggle"></button>')
});
$(document).on('click', '.mobile-dropdown-button', function(){
$(this).parent().toggleClass('focused');
});
//ADA Tab Focus fix for main navigation
$('nav.main-navigation > ul > li > a').focus(function(){
$('.focused').removeClass('focused');
$(this).parent().addClass('focused');
});
$('nav.main-navigation > ul > li > a').on('click', function(e){
if ($(window).width() < 1101) {
e.preventDefault();
$('.focused').removeClass('focused');
$(this).parent().addClass('focused');
}
});
//On Blur / Focus, add class to search label
$('input[name="search"]').on('focus', function () {
$(this).prev('label').addClass('push-active-label');
});
$('input[name="search"]').on('blur', function () {
if ($(this).val() === '') {
$(this).prev('label').removeClass('push-active-label');
}
});
//Custom Select Dropdown
$('select').each(function(){
if ($(this).attr('multiple')) {
$(this).select2({
closeOnSelect: false,
dropdownPosition: 'below',
tags: false
});
$(this).on('change', function () {
$('.filter-selection-container').show();
var values = [];
var selectionContainer = $(this).attr('data-selectContainer');
$('.filter-select-item[data-id="' + selectionContainer+'"]').empty();
var $selectedOptions = $(this).find('option:selected');
$selectedOptions.each(function () {
values.push($(this).text());
});
$.each(values, function (index, item) {
$('.filter-select-item[data-id="' + selectionContainer + '"]').append('<div class="db-selection"><span class="selection-value">' + item + '</span> <a class="remove-selection" href="javascript:void(0);" data-selectTarget="' + selectionContainer+'" aria-label="Remove ' + item + ' Selection"><svg width="24px" height="23px" viewBox="0 0 24 23" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="square"> <g transform="translate(-624.000000, -577.000000)" stroke="#D21200" stroke-width="2"> <g transform="translate(635.930718, 588.430718) rotate(-315.000000) translate(-635.930718, -588.430718) translate(628.430718, 580.930718)"> <line x1="7.7879759" y1="0.651001085" x2="7.7879759" y2="14.2313582"></line> <line x1="7.65199383" y1="0.000904827274" x2="7.65199383" y2="14.6162894" transform="translate(7.651994, 7.308597) rotate(90.000000) translate(-7.651994, -7.308597) "></line> </g> </g> </g> </svg></a></div>');
});
});
} else {
$(this).select2({
dropdownPosition: 'below'
});
}
});
$('.close-social-modal').on('click', function(e){
e.preventDefault();
$.fancybox.close();
});
$(document).on('click', '.remove-selection', function(e){
e.preventDefault();
var item = $(this).prev('.selection-value').text();
var selectTargetAttr = $(this).attr('data-selectTarget');
var $selectTarget = $('select[data-selectContainer="'+selectTargetAttr+'"]');
$selectTarget.find('option[value="' + item + '"]').prop('selected', false);
$selectTarget.trigger('change');
});
$('.filter-clear').on('click', function(e){
e.preventDefault();
// $('#multi-filter').val(null).trigger('change');
$('#multi-filter').select2('data', null)
});
$('#topic').on('change', function () {
var data = $('#topic').select2('data').map(function (elem) {
return elem.text
});
var topics = data.join(', ');
$('#topic-list').text(topics);
});
$('#skills').on('change', function () {
var data = $('#skills').select2('data').map(function (elem) {
return elem.text
});
var skills = data.join(', ');
$('#skills-list').text(skills);
});
$('.clear-opportunity-filter').on('click', function(e){
e.preventDefault();
$('.results-container').removeClass('active-results-container');
$('#skills').val(null).trigger('change');
$('#topic').val(null).trigger('change');
$('#skills-list').text('');
$('#topic-list').text('');
var val = $('#skills').val();
var val2 = $('#topic').val();
mixer.setFilterGroupSelectors('skills', val);
mixer.setFilterGroupSelectors('topics', val2);
mixer.parseFilterGroups();
});
//Weather
// if($('#degrees').length) {
// var apiKey = "59ab0c99756a7a712f5dce170a12c198";
// Weather.setApiKey(apiKey);
// Weather.getCurrent("Philadelphia", function (current) {
// document.querySelector('#degrees').innerHTML = "<b>Temperature:</b> " + Math.round(current.temperature()) + " °K or " +
// Math.round(Weather.kelvinToFahrenheit(current.temperature())) + " °F or " +
// Math.round(Weather.kelvinToCelsius(current.temperature())) + " °C" +
// "<br /><b>Current Conditions:</b> " + current.conditions();
// });
// }
$('.content-slider').slick({
infinite: true,
arrows: true,
dots: false,
slidesToShow: 1,
slidesToScroll: 1
});
$('.page-header-slider').slick({
infinite: true,
arrows: true,
dots: false,
slidesToShow: 1,
slidesToScroll: 1
});
$('.gallery-slider-wrap').slick({
infinite: true,
arrows: true,
dots: false,
slidesToShow: 3,
slidesToScroll: 1,
responsive: [
{
breakpoint: 651,
settings: {
slidesToShow: 1
}
}
]
});
//Slick Slider Default
$('.slick').slick({
adaptiveHeight: true
});
$('.image-slider-wrap').slick({
infinite: true,
arrows: true,
dots: false,
slidesToShow: 1,
centerMode: true,
slidesToScroll: 1
});
$('.video-slider-wrap').slick({
infinite: true,
arrows: true,
dots: false,
slidesToShow: 1,
centerMode: true,
slidesToScroll: 1
});
$('a.image-slider-nav').on('click', function (e) {
e.preventDefault();
var slideno = $(this).data('slide');
$('.image-slider-wrap').slick('slickGoTo', slideno - 1);
});
$('#slider-year').on('change', function () {
var slideno = $(this).val();
$('.image-slider-wrap').slick('slickGoTo', slideno - 1);
});
//Form Tabs
$('.form-tab').on('click', function(){
var target = $(this).attr('data-id');
$('.active-form-wrapper').removeClass('active-form-wrapper');
$('.active-form-tab').removeClass('active-form-tab');
$(this).addClass('active-form-tab');
$('.form-wrapper[data-id="'+target+'"]').addClass('active-form-wrapper');
});
//Image Gallery with Nav Slider
var imgSliderMain = $('.image-gallery-slider-main').slick({
asNavFor: '.image-gallery-slider-nav',
infinite: true,
arrows:false,
slidesToShow: 1,
slidesToScroll: 1,
fade:true,
dots:false
});
var sliderNav = $('.image-gallery-slider-nav').slick({
arrows: false,
dots:false,
slidesToShow: 4,
slidesToScroll: 1,
focusOnSelect: true,
asNavFor: '.image-gallery-slider-main',
responsive: [
{
breakpoint: 651,
settings: {
slidesToShow: 3
}
},
{
breakpoint: 480,
settings: {
slidesToShow: 2,
slidesToScroll: 1
}
}
]
});
$(".image-gallery-next").on('click', function (e) {
imgSliderMain.slick("slickNext");
sliderNav.slick("slickNext");
});
$(".image-gallery-prev").on('click', function (e) {
imgSliderMain.slick("slickPrev");
sliderNav.slick("slickPrev");
});
//Mobile Slick Slider
if ($(window).width() < 651) {
$('.news-container').slick({
autoplay:true,
arrows:false
});
$('.accordion-trigger').remove();
$('.accordion-triggers').slick({
adaptiveHeight: true
});
}
//Dynamic Accordion Functionality (adjusted height of content container)
$('.dynamic-accordion').each(function () {
var init_height = $(this).children('.active-accordion-content').height();
$(this).css('padding-bottom', init_height);
});
if ($('.accordion-tabs-container').length) {
$('.accordion-tabs-container').find('.tab-controls-wrapper .accordion-trigger-container:first-child, .tab-parent-wrapper .tab-parent-container:first-child').addClass('active');
}
$('body').on('click', '.accordion-drawer-link', function (e) {
e.preventDefault();
var identifier = $(this).attr('data-id');
var target = $('.accordion-content[data-id="' + identifier + '"]');
$(this).siblings().removeClass('active-accordion-trigger');
$(this).addClass('active-accordion-trigger');
target.siblings().removeClass('active-accordion-content');
target.addClass('active-accordion-content');
if (target.find('.iframe-container').length !== 0) {
$('.iframe-container').html('');
$('.active-video-section').removeClass('active-video-section');
} else {
var new_height = target.height();
$(this).closest('.accordion-triggers').css('padding-bottom', new_height);
}
});
// $('.accordion-trigger').on('click', function(e){
// e.preventDefault();
// var identifier = $(this).attr('data-id');
// var target = $('.accordion-content[data-id="'+identifier+'"]');
// $(this).siblings().removeClass('active-accordion-trigger');
// $(this).addClass('active-accordion-trigger');
// target.siblings().removeClass('active-accordion-content');
// target.addClass('active-accordion-content');
// if(target.find('.iframe-container').length !== 0) {
// $('.iframe-container').html('');
// $('.active-video-section').removeClass('active-video-section');
// } else {
// var new_height = target.height();
// $(this).closest('.accordion-triggers').css('padding-bottom', new_height);
// }
// });
// Responsive Tables
$('table').stacktable({ myClass: 'small-only' });
//Caption Limiter
function getWords(str, amount) {
return str.split(/\s+/).slice(0, amount).join(" ");
}
if ($('.caption').length) {
$('.caption').each(function(){
var words = $(this).text().split(' ');
var string = $(this).text();
if (words.length > 10) {
var content = getWords(string, 10);
$(this).wrapInner('<span class="hidden-content"></span>');
$(this).append('<span class="preview-content">' + content + '</span><a href="javascript:void(0);" aria-label="Read More" class="more">... +</a>');
}
});
}
if ($('.expand-container').length) {
$('.expand-container').each(function(){
var words = $(this).children('p').text().split(' ');
var string = $(this).children('p').html();
if ($(this).hasClass('expand-container-small')) {
var expandClass = 'expand-p';
} else {
var expandClass = 'large-intro-p';
}
if (words.length > 100) {
var content = getWords(string, 100);
$(this).wrapInner('<span class="hidden-content"></span>');
$(this).append('<p class="' + expandClass +' preview-content">' + content + '</p><a href="javascript:void(0);" aria-label="Read More" class="more expand-add">Expand +</a>');
}
});
}
if ($('.opportunity-content').length) {
$('.opportunity-content').each(function(){
var shownContent = $(this).children('p:first-child');
$(this).children('p').not(':first-child').wrapAll('<div class="hidden-opportunity-content" />');
});
$(document).on("click", ".opportunity-toggle", function () {
$(this).parent().parent().toggleClass('full-opportunity').blur();
if ($(this).parent().parent().hasClass('full-opportunity')) {
$(this).html('Collapse <span>-</span>');
} else {
$(this).html('Expand <span>+</span>');
}
});
}
function moreClick(thisObj, parent, negativeText, positiveText) {
console.log('working');
thisObj.closest(parent).toggleClass('full-caption');
if (thisObj.closest(parent).hasClass('full-caption')) {
thisObj.text(negativeText);
} else {
thisObj.text(positiveText);
}
}
$(document).on("click", ".more", function () {
if ($(this).hasClass('expand-add')) {
console.log('expand-add');
moreClick($(this), '.expand-container', 'Collapse -', 'Expand +');
} else {
console.log('standard');
moreClick($(this), 'figcaption', '... -', '... +');
}
});
//Video Play Functionality
$('.pause-trigger').on('click', function(){
$(this).parent().toggleClass('paused');
if ($(this).parent().hasClass('paused')) {
$(this).prev('video').trigger('pause');
} else {
$(this).prev('video').trigger('play');
}
});
// fallback: show controls if autoplay fails
// (needed for Samsung Internet for Android, as of v6.4)
window.addEventListener('load', async () => {
let video = document.querySelector('video[muted][autoplay]');
if(video) {
try {
await video.play();
} catch (err) {
video.controls = true;
}
}
});
function autoPlayVideo(vcode, target){
"use strict";
target.html('<iframe src="https://www.youtube.com/embed/'+vcode+'?autoplay=1&rel=0&wmode=transparent&start=1" frameborder="0" allowfullscreen wmode="Opaque"></iframe>');
}
function jumpVideo(vcode, target, timestamp){
"use strict";
target.html('<iframe src="https://www.youtube.com/embed/'+vcode+'?autoplay=1&rel=0&wmode=transparent&start='+timestamp+'" frameborder="0" allowfullscreen wmode="Opaque" class="active-iframe"></iframe>');
}
$('.video-play-overlay').on('click', function(e){
e.preventDefault();
var vcode = $(this).closest('.video-id-container').attr('data-video-id');
var target = $(this).siblings('.iframe-container');
autoPlayVideo(vcode, target);
$(this).closest('.video-wrapper').addClass('active-video-section');
});
$('.video-triggers a').on('click', function(){
var vcode = $(this).closest('.video-id-container').attr('data-video-id');
var stamp = $(this).attr('data-timestamp');
var targetID = $(this).closest('.video-id-container').attr('data-iframe');
var target = $('.iframe-container[data-iframe="'+targetID+'"]');
target.closest('.video-wrapper').addClass('active-video-section');
jumpVideo(vcode, target, stamp);
});
//Page Accordion Functionality
$('.accordion-drawer-link').on('click', function(e){
e.preventDefault();
$(this).closest('.accordion-item').toggleClass('active-accordion-item');
})
//Tabbed Accordion Functionality
if ($('.tab-controls-wrapper').length) {
$('a.accordion-tab-trigger[data-id="tab-1"]').parent().addClass('active');
$('.tab-parent-container[data-id="tab-1"]').addClass('active');
}
$('.accordion-tab-trigger').on('click', function(e){
e.preventDefault();
$('.accordion-trigger-container').removeClass('active');
$('.tab-parent-container').removeClass('active');
$(this).parent().addClass('active');
var target = $(this).attr('data-id');
$('html, body').animate({
scrollTop: $('.tab-parent-wrapper').offset().top
}, 1000, function () {
$('.tab-parent-wrapper').focus();
if ($('.tab-parent-wrapper').is(":focus")) {
return false;
} else {
$('.tab-parent-wrapper').attr('tabindex', '-1');
$('.tab-parent-wrapper').focus();
};
});
$('.tab-parent-container[data-id="'+target+'"]').addClass('active');
});
// ScrollMagic Scene Controls
var controller = new ScrollMagic.Controller();
// Scroll Magic SVG Drawing
function pathPrepare ($el) {
var lineLength = $el[0].getTotalLength();
$el.css("stroke-dasharray", lineLength);
$el.css("stroke-dashoffset", lineLength);
}
var $circle1 = $("path#circle-1");
var $circle2 = $("path#circle-2");
if ($circle1.length && $circle2.length) {
pathPrepare($circle1);
pathPrepare($circle2);
}
// Scroll Magic Scene
var wipeAnimation = new TimelineMax()
.fromTo(".header-cta", 1, { opacity:1}, { opacity:0 , ease:Power1.easeInOut }, 1)
.add(TweenMax.to($circle1, 2, {strokeDashoffset: 0, ease:Linear.easeNone}), 2)
.fromTo(".circle-content-1", 2, { opacity:0}, { opacity:1 }, 2)
.add(TweenMax.to($circle2, 4, {strokeDashoffset: 0, ease:Linear.easeNone}), 4)
.fromTo(".circle-content-1 h2", 4, { opacity:1}, { opacity:0 }, 4)
.fromTo(".circle-content-1 h3", 4, { opacity:1}, { opacity:0 }, 4)
.fromTo(".circle-content-2", 5, { opacity:0}, { opacity:1 }, 5);
new ScrollMagic.Scene({
triggerElement: "#scroll-trigger",
tweenChanges: true,
triggerHook: "onLeave",
duration: "500%",
})
.setClassToggle("body", "scroll-init")
.setPin("#scroll-trigger")
.setTween(wipeAnimation)
.addTo(controller);
});