1 2 3<!doctype html> 4<html id="ctl00_html" lang="en" class=" wide"> 5 <head><!-- Transcend IAB frameworks --> 6<!-- GPP -->
7<script type='text/javascript'> 8 window.__gpp_addFrame=function(e){if(!window.frames[e]){if(document.body){var t=document.createElement('iframe');t.style.cssText='display:none',t.name=e,document.body.appendChild(t)}else window.setTimeout(window.__gppaddFrame,10,e)}},window.__gpp_stub=function(){var e=arguments;if(__gpp.queue=__gpp.queue||[],!e.length)return __gpp.queue;var t=e[0],a=e.length>1?e[1]:null,n=e.length>2?e[2]:null;if('ping'===t)return{gppVersion:'1.1',cmpStatus:'stub',cmpDisplayStatus:'hidden',supportedAPIs:['2:tcfeuv2','5:tcfcav1','6:uspv1'],cmpId:31,sectionList:[],applicableSections:[-1],gppString:''};if('events'===t)return __gpp.events;if('addEventListener'===t){__gpp.events=__gpp.events||[],'lastId'in __gpp||(__gpp.lastId=0),__gpp.lastId++;var s=__gpp.lastId;return __gpp.events.push({id:s,callback:a,parameter:n}),{eventName:'listenerRegistered',listenerId:s,data:!0,pingData:{gppVersion:'1.1',cmpStatus:'stub',cmpDisplayStatus:'hidden',supportedAPIs:['2:tcfeuv2','5:tcfcav1','9:usva','7:usnat'],cmpId:31,sectionList:[],applicableSections:[-1],gppString:''}}}if('removeEventListener'===t){var p=!1;__gpp.events=__gpp.events||[];for(var i=0;i<__gpp.events.length;i++)if(__gpp.events[i].id==n){__gpp.events[i].splice(i,1),p=!0;break}return{eventName:'listenerRemoved',listenerId:n,data:p,pingData:{gppVersion:'1.1',cmpStatus:'stub',cmpDisplayStatus:'hidden',supportedAPIs:['2:tcfeuv2','5:tcfcav1','9:usva','7:usnat'],cmpId:31,sectionList:[],applicableSections:[-1],gppString:''}}}if('hasSection'===t||'getSection'===t||'getField'===t)return null;__gpp.queue.push([].slice.apply(e))},window.__gpp_msghandler=function(e){var t='string'==typeof e.data;try{var a=t?JSON.parse(e.data):e.data}catch(n){var a=null}if('object'==typeof a&&null!==a&&'__gppCall'in a){var s=a.__gppCall;window.__gpp(s.command,function(a,n){var p={__gppReturn:{returnValue:a,success:n,callId:s.callId}};e.source.postMessage(t?JSON.stringify(p):p,'*')},'parameter'in s?s.parameter:null,'version'in s?s.version:'1.1')}},'__gpp'in window&&'function'==typeof window.__gpp||(window.__gpp=window.__gpp_stub,window.addEventListener('message',window.__gpp_msghandler,!1),window.__gpp_addFrame('__gppLocator')); 9</script>
vendor: 2 bytes, line 9
9
10<script data-cfasync='false' onload='window.airgapLoadEvent=event' data-sync='off' src='https://transcend-cdn.com/cm/30fbff84-b0e3-4e26-9084-0b5158fdb1ed/airgap.js'></script>
10<script>window.client_hostname = "jmudukeclub.com";window.client_title = "James Madison University";window.server_name = "939744-APP67";window.client_division = "SPECIALPROJECTS";window.targetting_criteria = {"page_template":"staff","sport_name":"0","sport_name_custom":"0","site":"dukeclub","cbs_site_code":"dukeclub","content_id":null,"sect":"ot","gender":"0"};window.client_shortname = "dukeclub";window.dfp_network_code = "21708449227";window.img_dfp_unit_name = "";window.ad_full_unit_name = "SAExtended/dukeclub";window.block_dfp = false;window.reactions = null;window.cbs_ads_activated = true;window.site_colors = {"safe_text_white":"#000000","safe_text_black":"#ffffff","primary_background":"#3b1d81","primary_text":"#ffffff","secondary_background":"#ccbc77","secondary_text":"#3b1d81"};window.inactive_tab_title = "";window.site_in_dev_mode = false;window.sidearm_header_bidding_enabled = false; 11 window.utagData = function() { 12 return { 13 embedPageUrl: location.href, 14 brandPlatformId: "sidearm_site_" + (document.documentElement.clientWidth > 600 ? "desktop" : "mweb"), 15 pageViewGuid: PageTargetting.getPageviewGuid(), 16 _pageViewGuid: PageTargetting.getPageviewGuid() // cbs says they need it both /shrug 17 }; 18 }; 19 </script>
19<!-- Begin comScore Tag -->
20<script> 21 var _comscore = _comscore || []; 22 _comscore.push({ c1: "2", c2: "3005086" }); 23 (function() { 24 var s = document.createElement("script"), el = document.getElementsByTagName("script")[0]; s.async = true; 25 s.src = (document.location.protocol == "https:" ? "https://sb" : "http://b") + ".scorecardresearch.com/beacon.js"; 26 el.parentNode.insertBefore(s, el); 27 })(); 28</script>
28 29<!-- End comScore Tag --><link rel="preload" as="script" href="https://dbukjj6eu5tsf.cloudfront.net/assets.sidearmsports.com/responsive/js/main.1787938569747.js"><link rel="preload" as="style" href="https://fonts.sidearmsports.com/sidearm_v2/2024-09-30-644885/sidearm_font_v2.css"><link rel="preload" as="style" href="https://fonts.sidearmsports.com/sidearm/2020-05-12-535576/sidearm_font.css"><link rel="preload" as="script" href="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"><link rel="preload" as="script" href="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js"><link rel="preload" as="script" href="https://dbukjj6eu5tsf.cloudfront.net/assets.sidearmsports.com/responsive/js/bundle.1787938169445.js"><link rel="preconnect" href="https://cdnjs.cloudflare.com"><link rel="preconnect" href="https://dbukjj6eu5tsf.cloudfront.net/"><link rel="preconnect" href="http://s3.amazonaws.com"><link rel="preconnect" href="https://s3.amazonaws.com"><link rel="preconnect" href="https://fonts.gstatic.com"><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Anek+Malayalam:[email protected]&family=Saira:ital,wght@0,100..900;1,100..900&display=swap"><link rel="stylesheet" href="https://htlbid.com/stage/v3/jmudukeclub.com/htlbid.css"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.9/slick.min.css"><link rel="stylesheet" href="https://fonts.sidearmsports.com/sidearm/2020-05-12-535576/sidearm_font.css"><link rel="stylesheet" href="https://fonts.sidearmsports.com/sidearm_v2/2024-09-30-644885/sidearm_font_v2.css"><link rel="stylesheet" href="/less/sidearm-responsive-grid.less?_=639125349518748351"><link rel="apple-touch-icon" href="https://dxbhsrqyrr690.cloudfront.net/sidearm.nextgen.sites/dukeclub.sidearmsports.com/images/logos/site/site.png"><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> 30 <meta name="theme-color" content="#3b1d81"> 31 32 <link href="/site/site.less?_=638507016348199803 " rel='stylesheet' type='text/css'> 33 34 <link rel="stylesheet" href="/less/responsive/staff.less?_=638744346282377072"> 35<meta name="twitter:card" content="summary"><meta name="og:title" content="Staff Directory"><meta name="description" content="The official Roster for the James Madison University Dukes"><meta name="og:description" content="The official staff directory for the James Madison University Dukes"><meta name="og:image" content="https://images.sidearmdev.com/convert?url=https%3a%2f%2fdxbhsrqyrr690.cloudfront.net%2fsidearm.nextgen.sites%2fdukeclub.sidearmsports.com%2fimages%2flogos%2fsite%2fsite.png&type=jpeg"><meta name="og:image:alt" content="James Madison University Athletics Logo">
35<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
35<script>var require = {"config":{"options":{"sport_id":0,"dummy_ads":false,"all_ads":[]}}}; 36 var isSameOrigin = false; 37 try { isSameOrigin = window.top.location.hostname === window.self.location.hostname; } catch(err) {}; 38 if (!isSameOrigin && window.top != window.self) { 39 var makeTopLevelTimeout = setTimeout(function() { 40 window.top.location = window.self.location; 41 }, 250) 42 window.top.postMessage('sidearm-iframe-interrogation', '*') 43 window.addEventListener('message', function(ev) { 44 if (ev.data === 'sidearm-iframe-request-allow') { 45 clearTimeout(makeTopLevelTimeout) 46 } 47 }) 48 } 49 window.s3_bucket_path = 'https://dxbhsrqyrr690.cloudfront.net/sidearm.nextgen.sites/dukeclub.sidearmsports.com';window.cdn_path = 'https://dbukjj6eu5tsf.cloudfront.net/';window.custom_cdn_url = '';window.urlArgs = '639027754374029246';window.cbs_school = false;window.has_alerts = false;window.disable_ad_blocker_check = false;</script>
49<meta property="og:determiner" content="the"><meta property="og:locale" content="en_US"><meta property="og:site_name" content="James Madison University Athletics"><meta property="og:url" content="https://jmudukeclub.com/staff-directory?utm_medium=email&elq_cid=543281&ehash=699a2a0cd877e0beea9bf10dfe4b35b6f5cc8f4df2053f470f3bde7c47cf85ea&aid=16039&pid=jmuemaileloquaeloqua&rid=3031"><title> 50 Staff Directory - James Madison University Athletics 51</title>
51<script type="text/javascript"> 52var _elqQ = _elqQ || []; 53_elqQ.push(['elqSetSiteId', '2334089']); 54_elqQ.push(['elqUseFirstPartyCookie', 't.jmusports.com']); 55_elqQ.push(['elqTrackPageView']); 56(function() { 57function async_load() { 58var s = document.createElement('script'); s.type = 'text/javascript'; 59s.async = true; 60s.src = '//img.en25.com/i/elqCfg.min.js'; 61var x = document.getElementsByTagName('script')[0]; 62x.parentNode.insertBefore(s, x); 63} 64async_load(); //modification for GTM compatibility 65})(); 66</script>
66<!-- Google Tag Manager --> 67
67<script>
vendor: 415 bytes, lines 67-72
67 68 (function(w, d, s, l, i){ 69 w[l] = w[l] ||[]; w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f = d.getElementsByTagName(s)[0], 70 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async=true;j.src= 71 '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 72 })(window,document,'script','dataLayer','
72GTM-54NFNZ5
vendor: 17 bytes, lines 72-73
72'); 73
73</script>
73 74 <!-- End Google Tag Manager --><!-- Google Tag Manager --> 75
75<script>
vendor: 415 bytes, lines 75-80
75 76 (function(w, d, s, l, i){ 77 w[l] = w[l] ||[]; w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f = d.getElementsByTagName(s)[0], 78 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async=true;j.src= 79 '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 80 })(window,document,'script','dataLayer','
80GTM-K3TH4CC
vendor: 17 bytes, lines 80-81
80'); 81
81</script>
81 82 <!-- End Google Tag Manager --><!-- Google Tag Manager --> 83
83<script>
vendor: 415 bytes, lines 83-88
83 84 (function(w, d, s, l, i){ 85 w[l] = w[l] ||[]; w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f = d.getElementsByTagName(s)[0], 86 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async=true;j.src= 87 '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 88 })(window,document,'script','dataLayer','
88GTM-TW6R675
vendor: 17 bytes, lines 88-89
88'); 89
89</script>
89 90 <!-- End Google Tag Manager -->
90<script> 91 Date.prototype.to_iso_with_offset = function() { 92 var time_zone_offset = -this.getTimezoneOffset(), 93 time_zone_diff = time_zone_offset >= 0 ? '+' : '-', 94 pad = function(num) { 95 var norm = Math.floor(Math.abs(num)); 96 return (norm < 10 ? '0' : '') + norm; 97 }; 98 return this.getFullYear() + 99 '-' + pad(this.getMonth() + 1) + 100 '-' + pad(this.getDate()) + 101 'T' + pad(this.getHours()) + 102 ':' + pad(this.getMinutes()) + 103 ':' + pad(this.getSeconds()) + 104 time_zone_diff + pad(time_zone_offset / 60) + 105 ':' + pad(time_zone_offset % 60); 106 } 107 window.dataLayer = window.dataLayer || []; window.dataLayer.push({"event":"dataLayerLoaded","timestamp":new Date().to_iso_with_offset(),"non_interaction_flag":true,"page_related_sport":undefined,"gaPropertyID":"UA-195103076-9","schoolAttributes":{"Name":"James Madison University Duke Club","Division":"SPECIALPROJECTS","Conference":"Sun Belt","ssClientID":"951"},"pageAttributes":{"pageName":"Staff Directory - James Madison University Athletics","pageCategory":"staff","site":"dukeclub","sport_name":undefined,"sport_name_custom":undefined,"sect":"ot"},"siteAttributes":{"P5":false,"All_Access":false,"Paciolan_Marketing":false,"ticketingProvider":undefined,"region":undefined,"Fanbase_Partner":false,"SIDEARM_Extended":false,"MMR":"LFIMGC"}});
107 window.dataLayer.push({"timestamp":new Date().to_iso_with_offset(),"non_interaction_flag":true,"page_related_sport":undefined,"ga_property_id":"UA-195103076-9","school_name":"James Madison University Duke Club","school_division":"SPECIALPROJECTS","school_conference":"Sun Belt","ss_client_id":"951","page_name":"Staff Directory - James Madison University Athletics","page_category":"staff","site_name":"dukeclub","site_section":"ot","power_five":false,"all_access":false,"paciolan_marketing":false,"ticketing_provider":undefined,"school_region":undefined,"fanbase_partner":false,"sidearm_extended":false,"mmr":"LFIMGC","user_id":undefined,"logged_in_status":undefined,"membership_type":undefined,"account_signup_date":undefined,"subscription_exp_date":undefined}); </script>
107<!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 63 bytes, line 107
107<script async src="https://www.googletagmanager.com/gtag/js?id=
107G-HJBFZJKV25
vendor: 11 bytes, line 107
107"></script>
107<script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date());const pageSessionId = crypto.randomUUID();gtag('config', 'G-HJBFZJKV25', {user_id: pageSessionId});</script>
107<script>
vendor: 323 bytes, line 107
107(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');ga('create', '
107UA-48771750-3
vendor: 24 bytes, line 107
107', 'auto', 'tracker0');
107ga('require', 'linkid'); location.search.indexOf('dontSendPageview=1') > -1 || ga('tracker0.send', 'pageview', {'page': '/staff-directory?utm_medium=email&elq_cid=543281&ehash=699a2a0cd877e0beea9bf10dfe4b35b6f5cc8f4df2053f470f3bde7c47cf85ea&aid=16039&pid=jmuemaileloquaeloqua&rid=3031', title: document.title }); window.ID5EspConfig = { partnerId: 1083 };</script>
107</head> 108 <body><!-- Google Tag Manager (noscript) --> 109 <noscript><iframe src='//www.googletagmanager.com/ns.html?id=GTM-54NFNZ5' title='Google Tag Manager' 110 height ='0' width ='0' style = 'display:none;visibility:hidden'></iframe> 111 </noscript> 112 <!-- End Google Tag Manager (noscript) --><!-- Google Tag Manager (noscript) --> 113 <noscript><iframe src='//www.googletagmanager.com/ns.html?id=GTM-K3TH4CC' title='Google Tag Manager' 114 height ='0' width ='0' style = 'display:none;visibility:hidden'></iframe> 115 </noscript> 116 <!-- End Google Tag Manager (noscript) --><!-- Google Tag Manager (noscript) --> 117 <noscript><iframe src='//www.googletagmanager.com/ns.html?id=GTM-TW6R675' title='Google Tag Manager' 118 height ='0' width ='0' style = 'display:none;visibility:hidden'></iframe> 119 </noscript> 120 <!-- End Google Tag Manager (noscript) --><div style='position: fixed; left: -10000px'></div> 121
121<script> 122 function setStylesOnSkipPauseLink(skipLink) { 123 skipLink.style.left = '0'; 124 skipLink.style.zIndex='99999999'; 125 skipLink.style.outlineStyle='solid'; 126 skipLink.style.outlineColor='#000'; 127 skipLink.style.outlineWidth='2px'; 128 skipLink.style.outlineOffset='0'; 129 skipLink.style.transition='none'; 130 skipLink.style.border='2px solid #fff'; 131 skipLink.style.textDecoration='underline'; 132 } 133 function removeStylesOnSkipPauseLink(skipLink) { 134 skipLink.style.left = '-99999px'; 135 skipLink.style.zIndex='-99999'; 136 } 137 </script>
137 138 <section aria-label='Landmark links'> 139 <a 140 href='#main-content' 141 tabindex='0' 142 style='position: absolute !important; display: inline-block !important; left: -32000px !important; top: 0; background: #000 !important; padding: 10px !important; color: #fff !important; border: 0 !important; margin: 5px !important;' 143 onfocus = 'setStylesOnSkipPauseLink(this)' 144 onblur = 'removeStylesOnSkipPauseLink(this)'> 145 Skip To Main Content 146 </a> 147 <button 148 class='sidearm-accessible-slick-pause-all' 149 id='sidearm-accessible-slick-pause-all' 150 aria-live='off' 151 tabindex='0' 152 style='position: absolute !important; display: inline-block !important; left: -32000px !important; top: 0; background: #000 !important; padding: 10px !important; color: #fff !important; border: 0 !important; margin: 5px !important;' 153 onfocus = 'setStylesOnSkipPauseLink(this)' 154 onblur = 'removeStylesOnSkipPauseLink(this)'> 155 Pause All Rotators 156 </button> 157 <span 158 href = 'javascript:void(0);' 159 aria-live='polite' 160 tabindex='-1' 161 style='display: block; text-align: center; position: absolute; background-color: white; z-index: 9999;' 162 onfocus = 'setStylesOnSkipPauseLink(this)' 163 onblur = 'removeStylesOnSkipPauseLink(this)'> 164 </span> 165 </section> 166 <!-- Begin comScore Tag --> 167<noscript><img src="https://sb.scorecardresearch.com/p?c1=2&c2=3005086&cv=2.0&cj=1" alt="" aria-hidden="true" /></noscript> 168<!-- End comScore Tag --> 169 170 <form name="aspnetForm" method="post" action="./staff.aspx?utm_medium=email&elq_cid=543281&ehash=699a2a0cd877e0beea9bf10dfe4b35b6f5cc8f4df2053f470f3bde7c47cf85ea&aid=16039&pid=jmu_email_eloqua_eloqua&rid=3031" id="aspnetForm"> 171<div> 172<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTk5NDk3MzA5NGQYAQUdY3RsMDAkY3BsaE1haW5Db250ZW50JG12X21haW4PD2RmZMnW2tWPcwaaDYFWoBo97gY5JHukLU+7qWUhGEjeXHk3"> 173</div> 174 175
176<script src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js" type="text/javascript"></script>
vendor: 2 bytes, line 176
176
177<script src="https://dbukjj6eu5tsf.cloudfront.net/assets.sidearmsports.com/responsive/js/main.1787938569747.js" type="text/javascript"></script>
177 178<div> 179 180 <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="8FD2A73E"> 181</div> 182 183 <header class="main-header"> 184 <h1 class="hide">James Madison University Athletics</h1> 185 <div class="main-header__inner flex row row-wide"> 186 <div class="main-header__logo"> 187 <a href="/" class="main-header__logo-link"> 188 <img class="main-header__logo--main" src="https://dxbhsrqyrr690.cloudfront.net/sidearm.nextgen.sites/dukeclub.sidearmsports.com/images/responsive_2024/logo_main.svg" alt="Duke Club, Supporting JMU Student Athletes"> 189 <img class="main-header__logo--scroll" src="https://dxbhsrqyrr690.cloudfront.net/sidearm.nextgen.sites/dukeclub.sidearmsports.com/images/responsive_2024/logo_secondary.svg" alt="Duke Club"> 190 </a> 191 </div> 192 <nav class="main-header__navigation" aria-labelledby="h2_nav"> 193 <h2 class="hide" id="h2_nav">Main</h2> 194 195
196<script> 197 var obj = {"start":0,"count":10,"name":"","sport_id":null,"count_breakpoints":null,"css_class":"","pinned_id":"","extra":{"watch_badge":false},"context":null,"dummy":false,"type":"main-navigation","id":"a00f083d-b1ed-4aaa-8824-d87696f8d5d6","data":[{"id":2,"title":"About Us","rank":2,"url":"","open_in_new_window":false,"include_social_media":false,"include_schedule_roster_news":false,"include_stats":false,"include_tickets":false,"include_youtube":false,"class_name":null,"items":[{"id":60,"title":"ABOUT THE DUKE CLUB","short_title":null,"rank":1,"column":1,"url":"","separator":true,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":206,"title":"Duke Club Mission","short_title":null,"rank":4,"column":1,"url":"https://jmudukeclub.com/sports/2018/11/27/About.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":205,"title":"Duke Club Team","short_title":null,"rank":5,"column":1,"url":"https://jmudukeclub.com/staff-directory","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":9,"title":"Duke Club FAQS","short_title":null,"rank":6,"column":1,"url":"https://jmudukeclub.com/sports/2020/12/4/FAQ%20.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":207,"title":"DUKE CLUB NEWS","short_title":null,"rank":8,"column":1,"url":"","separator":true,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":165,"title":"News Stories","short_title":null,"rank":12,"column":1,"url":"https://jmudukeclub.com/archives","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":167,"title":"DC Monthly Newsletters","short_title":null,"rank":13,"column":1,"url":"https://jmudukeclub.com/sports/2023/4/7/dc-monthly-newsletter-archives.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":208,"title":"DUKE CLUB EVENTS","short_title":null,"rank":1,"column":3,"url":"","separator":true,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":157,"title":"Events Calendar","short_title":null,"rank":2,"column":3,"url":"https://jmudukeclub.com/sports/duke-club-events/schedule","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":177,"title":"Duke Club (DC) Socials","short_title":null,"rank":3,"column":3,"url":"/sports/2026/7/7/2026-dc-socials.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":199,"title":"Duke Club Golf Classic","short_title":null,"rank":4,"column":3,"url":"/sports/2025/8/9/40th-annual-duke-club-golf-classic.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":200,"title":"Coaches Caravan","short_title":null,"rank":5,"column":3,"url":"/sports/2026/4/7/coaches-caravan-2026.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":214,"title":"Friday Night Flights","short_title":null,"rank":6,"column":3,"url":"/sports/2023/7/7/2026-Friday-Night-Flights.aspx","separator":false,"open_in_new_window":false,"sport_id_association":2,"sport":{"id":2,"title":"Duke Club Events","abbreviation":"DCE","shortname":"duke_club_events","short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":215,"title":"Letterwinner Weekend 2026","short_title":null,"rank":7,"column":3,"url":"https://jmudukeclub.com/sports/2023/7/25/2026-Letter
197winnerWeekend.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null}],"columns":[{"column":1,"items":[{"id":60,"title":"ABOUT THE DUKE CLUB","short_title":null,"rank":1,"column":1,"url":"","separator":true,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":206,"title":"Duke Club Mission","short_title":null,"rank":4,"column":1,"url":"https://jmudukeclub.com/sports/2018/11/27/About.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":205,"title":"Duke Club Team","short_title":null,"rank":5,"column":1,"url":"https://jmudukeclub.com/staff-directory","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":9,"title":"Duke Club FAQS","short_title":null,"rank":6,"column":1,"url":"https://jmudukeclub.com/sports/2020/12/4/FAQ%20.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":207,"title":"DUKE CLUB NEWS","short_title":null,"rank":8,"column":1,"url":"","separator":true,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":165,"title":"News Stories","short_title":null,"rank":12,"column":1,"url":"https://jmudukeclub.com/archives","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":167,"title":"DC Monthly Newsletters","short_title":null,"rank":13,"column":1,"url":"https://jmudukeclub.com/sports/2023/4/7/dc-monthly-newsletter-archives.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null}]},{"column":3,"items":[{"id":208,"title":"DUKE CLUB EVENTS","short_title":null,"rank":1,"column":3,"url":"","separator":true,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":157,"title":"Events Calendar","short_title":null,"rank":2,"column":3,"url":"https://jmudukeclub.com/sports/duke-club-events/schedule","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":177,"title":"Duke Club (DC) Socials","short_title":null,"rank":3,"column":3,"url":"/sports/2026/7/7/2026-dc-socials.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":199,"title":"Duke Club Golf Classic","short_title":null,"rank":4,"column":3,"url":"/sports/2025/8/9/40th-annual-duke-club-golf-classic.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":200,"title":"Coaches Caravan","short_title":null,"rank":5,"column":3,"url":"/sports/2026/4/7/coaches-caravan-2026.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":214,"title":"Friday Night Flights","short_title":null,"rank":6,"column":3,"url":"/sports/2023/7/7/2026-Friday-Night-Flights.aspx","separator":false,"open_in_new_window":false,"sport_id_association":2,"sport":{"id":2,"title":"Duke Club Events","abbreviation":"DCE","shortname":"duke_club_events","short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":215,"title":"Letterwinner Weekend 2026","short_title":null,"rank":7,"column":3,"url":"https://jmudukeclub.com/sports/2023/7/25/2026-Letter
197winnerWeekend.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null}]}],"ad":null},{"id":20,"title":"Make an Impact","rank":3,"url":"","open_in_new_window":false,"include_social_media":false,"include_schedule_roster_news":false,"include_stats":false,"include_tickets":false,"include_youtube":false,"class_name":null,"items":[{"id":210,"title":"PROUD & TRUE FUND","short_title":null,"rank":2,"column":1,"url":"","separator":true,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":123,"title":"Duke Club Member ($75+)","short_title":null,"rank":3,"column":1,"url":"https://jmudukeclub.com/sports/2022/12/12/Proud%20and%20True%20Giving%20Levels.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":143,"title":"Priority Points","short_title":null,"rank":8,"column":1,"url":"https://jmudukeclub.com/sports/2018/11/29/priority-points","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":211,"title":"STUDENT-ATHLETE ENHANCEMENT FUND","short_title":null,"rank":9,"column":1,"url":"","separator":true,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":204,"title":"Student-Athlete Enhancement Fund","short_title":null,"rank":10,"column":1,"url":"https://jmudukeclub.com/sports/2025/6/17/student-athlete%20enhancement%20fund.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":212,"title":"SPORT SPECIFIC GIVING","short_title":null,"rank":11,"column":1,"url":"","separator":true,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":116,"title":"Sport Specific Giving","short_title":null,"rank":13,"column":1,"url":"https://jmudukeclub.com/sports/2019/1/6/sport-program-giving.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":140,"title":"MEMBERSHIPS","short_title":null,"rank":5,"column":2,"url":"","separator":true,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":145,"title":"Morrison-Ehlers Athletics Society","short_title":null,"rank":12,"column":2,"url":"/sports/2018/11/28/morrison-ehlers-athletics-society.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":117,"title":"Student Duke Club","short_title":null,"rank":16,"column":2,"url":"https://jmudukeclub.com/sports/2018/11/28/student-duke-club","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":136,"title":"Circle of Champions ","short_title":null,"rank":17,"column":2,"url":"https://jmudukeclub.com/sports/2019/2/18/circle-of-champions.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":213,"title":"Letterwinner","short_title":null,"rank":18,"column":2,"url":"","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":121,"title":"LASTING IMPACT","short_title":null,"rank":1,"column":3,"url":"/sports/2020/4/7/where-to-give-test","separator":true,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":130,"title":"Duke Dog Paver Campaign","short_title":null,"rank":4,"column":3,"url":"/sports/2020/12/11/duke-dog-plaza-paver-campaign","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":126,"title":"Planned Giving","short_title":null,"rank":15,"column":3,"url":"/sports/2018/11/28/morrison-ehlers-athletics-society.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":127,"title":"Endowments","short_title":null,"rank":19,"column":3,"url":"/sports/2022/3/11/endowments","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null}],"columns":[{"column":1,"items":[{"id":210,"title":"PROUD & TRUE FUND","short_title":null,"rank":2,"column":1,"url":"","separator":true,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":123,"title":"Duke Club Member ($75+)","short_title":null,"rank":3,"column":1,"url":"https://jmudukeclub.com/sports/2022/12/12/Proud%20and%20True%20Giving%20Levels.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":143,"title":"Priority Points","short_title":null,"rank":8,"column":1,"url":"https://jmudukeclub.com/sports/2018/11/29/priority-points","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":211,"title":"STUDENT-ATHLETE ENHANCEMENT FUND","short_title":null,"rank":9,"column":1,"url":"","separator":true,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":204,"title":"Student-Athlete Enhancement Fund","short_title":null,"rank":10,"column":1,"url":"https://jmudukeclub.com/sports/2025/6/17/student-athlete%20enhancement%20fund.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":212,"title":"SPORT SPECIFIC GIVING","short_title":null,"rank":11,"column":1,"url":"","separator":true,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":116,"title":"Sport Specific Giving","short_title":null,"rank":13,"column":1,"url":"https://jmudukeclub.com/sports/2019/1/6/sport-program-giving.aspx","separator":false,"open_in_new_window":false
197,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null}]},{"column":2,"items":[{"id":140,"title":"MEMBERSHIPS","short_title":null,"rank":5,"column":2,"url":"","separator":true,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":145,"title":"Morrison-Ehlers Athletics Society","short_title":null,"rank":12,"column":2,"url":"/sports/2018/11/28/morrison-ehlers-athletics-society.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":117,"title":"Student Duke Club","short_title":null,"rank":16,"column":2,"url":"https://jmudukeclub.com/sports/2018/11/28/student-duke-club","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":136,"title":"Circle of Champions ","short_title":null,"rank":17,"column":2,"url":"https://jmudukeclub.com/sports/2019/2/18/circle-of-champions.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":213,"title":"Letterwinner","short_title":null,"rank":18,"column":2,"url":"","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null}]},{"column":3,"items":[{"id":121,"title":"LASTING IMPACT","short_title":null,"rank":1,"column":3,"url":"/sports/2020/4/7/where-to-give-test","separator":true,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":130,"title":"Duke Dog Paver Campaign","short_title":null,"rank":4,"column":3,"url":"/sports/2020/12/11/duke-dog-plaza-paver-campaign","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":126,"title":"Planned Giving","short_title":null,"rank":15,"column":3,"url":"/sports/2018/11/28/morrison-ehlers-athletics-society.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":127,"title":"Endowments","short_title":null,"rank":19,"column":3,"url":"/sports/2022/3/11/endowments","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null}]}],"ad":null},{"id":16,"title":"Tickets & Parking","rank":6,"url":"","open_in_new_window":false,"include_social_media":false,"include_schedule_roster_news":false,"include_stats":false,"include_tickets":false,"include_youtube":false,"class_name":null,"items":[{"id":95,"title":"FOOTBALL","short_title":null,"rank":2,"column":1,"url":"","separator":true,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":96,"title":"Season Tickets","short_title":null,"rank":3,"column":1,"url":"https://app.jmusports.com/2026football","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":97,"title":"Premium Seating","short_title":null,"rank":10,"column":1,"url":"/sports/2018/11/29/premium-seating.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":171,"title":"Reseating & Reparking","short_title":null,"rank":11,"column":1,"url":"/sports/2018/11/29/reseating-reparking-information.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":193,"title":"Duke Club Seat Contribution","short_title":null,"rank":12,"column":1,"url":"/sports/2024/7/9/duke-club-seat-contribution.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null}
197,{"id":99,"title":"BASKETBALL","short_title":null,"rank":1,"column":2,"url":"","separator":true,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":100,"title":"Season Tickets","short_title":null,"rank":4,"column":2,"url":"https://app.jmusports.com/2025basketball?xd_co_f=YzBmNjQ4YjQtMDAwZC00MmZhLTk0MDEtNTY0MmJmMzBlYmJl&_gl=1*fpd7f1*_gcl_au*MTE4MTg0NDg2Ny4xNzQwNDEyNzE4","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":101,"title":"Premium Seating","short_title":null,"rank":5,"column":2,"url":"/sports/2025/10/23/BasketballPremium.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":102,"title":"Reseating & Reparking","short_title":null,"rank":7,"column":2,"url":"/sports/2018/11/29/reseating-reparking-information","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":194,"title":"Duke Club Seat Contribution","short_title":null,"rank":9,"column":2,"url":"/sports/2024/7/9/duke-club-seat-contribution.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":103,"title":"MAPS","short_title":null,"rank":6,"column":3,"url":"","separator":true,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":106,"title":"Game Day Parking","short_title":null,"rank":8,"column":3,"url":"https://jmusports.com/sports/2020/6/22/parking-information.aspx","separator":false,"open_in_new_window":true,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":105,"title":"Campus Map","short_title":null,"rank":13,"column":3,"url":"https://www.jmu.edu/map/","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":108,"title":"Bridgeforth Stadium Map","short_title":null,"rank":14,"column":3,"url":"https://jmusports.com/facilities/br
197idgeforth-stadium-zane-showker-field/1","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":107,"title":"Atlantic Union Bank Center Map","short_title":null,"rank":15,"column":3,"url":"https://jmusports.com/facilities/atlantic-union-bank-center/31","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null}],"columns":[{"column":1,"items":[{"id":95,"title":"FOOTBALL","short_title":null,"rank":2,"column":1,"url":"","separator":true,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":96,"title":"Season Tickets","short_title":null,"rank":3,"column":1,"url":"https://app.jmusports.com/2026football","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":97,"title":"Premium Seating","short_title":null,"rank":10,"column":1,"url":"/sports/2018/11/29/premium-seating.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":171,"title":"Reseating & Reparking","short_title":null,"rank":11,"column":1,"url":"/sports/2018/11/29/reseating-reparking-information.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":193,"title":"Duke Club Seat Contribution","short_title":null,"rank":12,"column":1,"url":"/sports/2024/7/9/duke-club-seat-contribution.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null}]}
197,{"column":2,"items":[{"id":99,"title":"BASKETBALL","short_title":null,"rank":1,"column":2,"url":"","separator":true,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":100,"title":"Season Tickets","short_title":null,"rank":4,"column":2,"url":"https://app.jmusports.com/2025basketball?xd_co_f=YzBmNjQ4YjQtMDAwZC00MmZhLTk0MDEtNTY0MmJmMzBlYmJl&_gl=1*fpd7f1*_gcl_au*MTE4MTg0NDg2Ny4xNzQwNDEyNzE4","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":101,"title":"Premium Seating","short_title":null,"rank":5,"column":2,"url":"/sports/2025/10/23/BasketballPremium.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":102,"title":"Reseating & Reparking","short_title":null,"rank":7,"column":2,"url":"/sports/2018/11/29/reseating-reparking-information","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":194,"title":"Duke Club Seat Contribution","short_title":null,"rank":9,"column":2,"url":"/sports/2024/7/9/duke-club-seat-contribution.aspx","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null}]},{"column":3,"items":[{"id":103,"title":"MAPS","short_title":null,"rank":6,"column":3,"url":"","separator":true,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":106,"title":"Game Day Parking","short_title":null,"rank":8,"column":3,"url":"https://jmusports.com/sports/2020/6/22/parking-information.aspx","separator":false,"open_in_new_window":true,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":105,"title":"Campus Map","short_title":null,"rank":13,"column":3,"url":"https://www.jmu.edu/map/","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":108,"title":"Bridgeforth Stadium Map","short_title":null,"rank":14,"column":3,"url":"https://jmusports.com/facilities/br
197idgeforth-stadium-zane-showker-field/1","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null},{"id":107,"title":"Atlantic Union Bank Center Map","short_title":null,"rank":15,"column":3,"url":"https://jmusports.com/facilities/atlantic-union-bank-center/31","separator":false,"open_in_new_window":false,"sport_id_association":null,"sport":{"id":0,"title":null,"abbreviation":null,"shortname":null,"short_title":null,"global_sport_id":null,"non_sport":false,"show_at_vs":false,"global_sport_shortname":null,"gender":null,"youtube":null,"facebook":null,"twitter":null,"instagram":null,"pinterest":null,"tickets":null,"global_sport_name_slug":null,"url":null,"ranking":null,"game_synonym":null},"class_name":null,"social_media_links":null,"schedule_roster_news_links":null,"items":[],"stats":null,"tickets":null,"youtube":null}]}],"ad":null},{"id":21,"title":"Diggin'Dukes","rank":8,"url":"/sports/2025/10/13/diggin-dukes-sport-program-information.aspx","open_in_new_window":false,"include_social_media":false,"include_schedule_roster_news":false,"include_stats":false,"include_tickets":false,"include_youtube":false,"class_name":null,"items":[],"columns":[],"ad":null}],"mode":"web"}; 198 if (!("sidearmComponents" in window)) 199 window.sidearmComponents = []; 200 window.sidearmComponents.push(obj); 201</script>
201 202 203<navigation-component params="{ id: 'a00f083d-b1ed-4aaa-8824-d87696f8d5d6' }"></navigation-component> 204 205 206 207<!-- ko if: false --> 208<div class="hide"> 209 210 <a href="https://jmudukeclub.com/sports/2018/11/27/About.aspx">Duke Club Mission</a> 211 212 <a href="https://jmudukeclub.com/staff-directory">Duke Club Team</a> 213 214 <a href="https://jmudukeclub.com/sports/2020/12/4/FAQ%20.aspx">Duke Club FAQS</a> 215 216 <a href="https://jmudukeclub.com/archives">News Stories</a> 217 218 <a href="https://jmudukeclub.com/sports/2023/4/7/dc-monthly-newsletter-archives.aspx">DC Monthly Newsletters</a> 219 220 <a href="https://jmudukeclub.com/sports/duke-club-events/schedule">Events Calendar</a> 221 222 <a href="/sports/2026/7/7/2026-dc-socials.aspx">Duke Club (DC) Socials</a> 223 224 <a href="/sports/2025/8/9/40th-annual-duke-club-golf-classic.aspx">Duke Club Golf Classic</a> 225 226 <a href="/sports/2026/4/7/coaches-caravan-2026.aspx">Coaches Caravan</a> 227 228 <a href="/sports/2023/7/7/2026-Friday-Night-Flights.aspx">Friday Night Flights</a> 229 230 <a href="https://jmudukeclub.com/sports/2023/7/25/2026-LetterwinnerWeekend.aspx">Letterwinner Weekend 2026</a> 231 232 <a href="https://jmudukeclub.com/sports/2022/12/12/Proud%20and%20True%20Giving%20Levels.aspx">Duke Club Member ($75+)</a> 233 234 <a href="https://jmudukeclub.com/sports/2018/11/29/priority-points">Priority Points</a> 235 236 <a href="https://jmudukeclub.com/sports/2025/6/17/student-athlete%20enhancement%20fund.aspx">Student-Athlete Enhancement Fund</a> 237 238 <a href="https://jmudukeclub.com/sports/2019/1/6/sport-program-giving.aspx">Sport Specific Giving</a> 239 240 <a href="/sports/2018/11/28/morrison-ehlers-athletics-society.aspx">Morrison-Ehlers Athletics Society</a> 241 242 <a href="https://jmudukeclub.com/sports/2018/11/28/student-duke-club">Student Duke Club</a> 243 244 <a href="https://jmudukeclub.com/sports/2019/2/18/circle-of-champions.aspx">Circle of Champions </a> 245 246 <a href="/sports/2020/4/7/where-to-give-test">LASTING IMPACT</a> 247 248 <a href="/sports/2020/12/11/duke-dog-plaza-paver-campaign">Duke Dog Paver Campaign</a> 249 250 <a href="/sports/2018/11/28/morrison-ehlers-athletics-society.aspx">Planned Giving</a> 251 252 <a href="/sports/2022/3/11/endowments">Endowments</a> 253 254 <a href="https://app.jmusports.com/2026football">Season Tickets</a> 255 256 <a href="/sports/2018/11/29/premium-seating.aspx">Premium Seating</a> 257 258 <a href="/sports/2018/11/29/reseating-reparking-information.aspx">Reseating & Reparking</a> 259 260 <a href="/sports/2024/7/9/duke-club-seat-contribution.aspx">Duke Club Seat Contribution</a> 261 262 <a href="https://app.jmusports.com/2025basketball?xd_co_f=YzBmNjQ4YjQtMDAwZC00MmZhLTk0MDEtNTY0MmJmMzBlYmJl&_gl=1*fpd7f1*_gcl_au*MTE4MTg0NDg2Ny4xNzQwNDEyNzE4">Season Tickets</a> 263 264 <a href="/sports/2025/10/23/BasketballPremium.aspx">Premium Seating</a> 265 266 <a href="/sports/2018/11/29/reseating-reparking-information">Reseating & Reparking</a> 267 268 <a href="/sports/2024/7/9/duke-club-seat-contribution.aspx">Duke Club Seat Contribution</a> 269 270 <a href="https://jmusports.com/sports/2020/6/22/parking-information.aspx">Game Day Parking</a> 271 272 <a href="https://www.jmu.edu/map/">Campus Map</a> 273 274 <a href="https://jmusports.com/facilities/bridgeforth-stadium-zane-showker-field/1">Bridgeforth Stadium Map</a> 275 276 <a href="https://jmusports.com/facilities/atlantic-union-bank-center/31">Atlantic Union Bank Center Map</a> 277 278</div> 279<!-- /ko --> 280 </nav> 281 <div class="main-header__search"> 282 <search-component data-gist-id="" params="{name:'main-search'}"></search-component> 283 </div> 284 <div class="main-header__additional"> 285 286
287<script> 288 var obj = {"start":0,"count":10,"name":"navigation---additional-button-a56970","sport_id":null,"count_breakpoints":null,"css_class":"","pinned_id":"","extra":{},"context":null,"dummy":false,"type":"ads","id":"c3cd5807-d206-4b95-b1f4-1c6a546fdf05","data":{"location":{"id":172,"title":"Navigation - Additional Button","type":"icons","effect":"none","fixed_image_sizes":false,"excluded_sport_ids":[],"slick":false,"dfp":false,"sidearm_dfp":false,"common_page":false,"html_template":null,"name":"navigation---additional-button-a56970","autoplay_speed":8,"accessibility_icons":true,"sizes":null,"slick_options":null,"dfp_sizes":null},"campaigns":[{"id":9,"title":"My Account","start_date":"2024-04-05T00:00:00","end_date":null,"open_in_new_window":true,"link":"/common/controls/adhandler.aspx?ad_id=9&target=https://jmusports.evenue.net/signin?$$continue=https%3A%2F%2Fjmusports.evenue.net%2Fcgi-bin%2Fncommerce3%2FEVExecMacro%3FlinkID%3Djmu%26evm%3Dmyac%26entry%3DMyAccount.html","icon":null,"html":null,"picture":null,"css_class":null,"is_dummy":false,"hover_text":null}],"content_id":"navigation---additional-button-a56970","content_title":"navigation---additional-button-a56970","content_date":null,"content_url":null,"content_image_url":null},"mode":"web"}; 289 if (!("sidearmComponents" in window)) 290 window.sidearmComponents = []; 291 window.sidearmComponents.push(obj); 292</script>
292 293 294<ads-component params="{ id: 'c3cd5807-d206-4b95-b1f4-1c6a546fdf05' }"></ads-component> 295 </div> 296 </div> 297 </header> 298 299 300 301 <main class="main-content-placeholder" id="main-content"> 302 303 304 305 306 <article class="sidearm-staff sidearm-common"> 307 308 <div class="sidearm-common-promotion"> 309 310
311<script> 312 var obj = {"start":0,"count":10,"name":"staff-above-header-1","sport_id":null,"count_breakpoints":null,"css_class":"","pinned_id":"","extra":{},"context":null,"dummy":false,"type":"ads","id":"ff10960f-4033-46b2-b475-c9293e69bbad","data":{"location":{"id":0,"title":null,"type":null,"effect":null,"fixed_image_sizes":false,"excluded_sport_ids":null,"slick":false,"dfp":false,"sidearm_dfp":false,"common_page":false,"html_template":null,"name":null,"autoplay_speed":0,"accessibility_icons":false,"sizes":null,"slick_options":null,"dfp_sizes":null},"campaigns":[],"content_id":null,"content_title":null,"content_date":null,"content_url":null,"content_image_url":null},"mode":"web"}; 313 if (!("sidearmComponents" in window)) 314 window.sidearmComponents = []; 315 window.sidearmComponents.push(obj); 316</script>
316 317 318<ads-component params="{ id: 'ff10960f-4033-46b2-b475-c9293e69bbad' }"></ads-component> 319 320 </div> 321 322 323 <h2>Staff Directory</h2> 324 325 326 <header class="sidearm-staff-header sidearm-common-header flex row flex-column large-flex-row large-flex-justify-between noprint"> 327 <div class="sidearm-staff-share sidearm-common-header-share large-6 columns"> 328 <ul class="sidearm-staff-share-list sidearm-common-header-share-list flex"> 329 <li class="sidearm-staff-header-print sidearm-common-header-print flex text-no-wrap"> 330 <a href="/staff-directory?print=true" onclick="window.open(this.href, null, 'menubar=no,location=no,status=no,scrollbars=yes,width=800,height=800');return false;" target="_blank">Print</a> 331 </li> 332 </ul> 333 </div> 334 <div class="sidearm-staff-select sidearm-common-header-select flex large-6 columns"> 335 <ul class="sidearm-staff-select-list sidearm-common-header-select-list flex flex-column medium-flex-row flex-item-1"> 336 <li class="sidearm-staff-select-search flex flex-item-1"> 337 <label for="ctl00_cplhMainContent_txt_keyword_search" class="hide">Keyword Search:</label> 338 <input name="ctl00$cplhMainContent$txt_keyword_search" type="text" id="ctl00_cplhMainContent_txt_keyword_search" class="sidearm-common-header-remove-right-radius" placeholder="Search..."> 339 <input type="submit" name="ctl00$cplhMainContent$btn_keyword_search" value="Go" id="ctl00_cplhMainContent_btn_keyword_search" title="Keyword Search" class="sidearm-common-header-remove-left-radius" aria-label="Go Search by Keyword"> 340 </li> 341 <li class="sidearm-staff-select-filter flex flex-item-1"> 342 <label for="ctl00_cplhMainContent_ddl_filter_categories" class="hide">Filter By:</label> 343 <select name="ctl00$cplhMainContent$ddl_filter_categories" id="ctl00_cplhMainContent_ddl_filter_categories" class="sidearm-common-header-remove-right-radius"> 344 <option value="">All Categories 345 <option value="2">Duke Club Staff 346 347</select> 348 <input type="submit" name="ctl00$cplhMainContent$btn_filter_categories" value="Go" onclick="return false;" id="ctl00_cplhMainContent_btn_filter_categories" class="sidearm-common-header-remove-left-radius" aria-label="Go Filter by Categories"> 349 </li> 350 </ul> 351 </div> 352 </header> 353 354 355 <div class="sidearm-common-promotion"> 356 357
358<script> 359 var obj = {"start":0,"count":10,"name":"staff-below-header-1","sport_id":null,"count_breakpoints":null,"css_class":"","pinned_id":"","extra":{},"context":null,"dummy":false,"type":"ads","id":"093ab005-fc56-41d2-b4a1-d0e5ecccf028","data":{"location":{"id":0,"title":null,"type":null,"effect":null,"fixed_image_sizes":false,"excluded_sport_ids":null,"slick":false,"dfp":false,"sidearm_dfp":false,"common_page":false,"html_template":null,"name":null,"autoplay_speed":0,"accessibility_icons":false,"sizes":null,"slick_options":null,"dfp_sizes":null},"campaigns":[],"content_id":null,"content_title":null,"content_date":null,"content_url":null,"content_image_url":null},"mode":"web"}; 360 if (!("sidearmComponents" in window)) 361 window.sidearmComponents = []; 362 window.sidearmComponents.push(obj); 363</script>
363 364 365<ads-component params="{ id: '093ab005-fc56-41d2-b4a1-d0e5ecccf028' }"></ads-component> 366 367 </div> 368 369 <div class="sidearm-staff-information"> 370 <br> 371<span style="font-size:14px;"></span><span style="font-size:16px;"><strong><span style="color:#4B0082;">JMU Duke Club</span></strong></span><br> 372<span style="font-size:14px;"><strong>MSC 0402<br> 373380 University Blvd<br> 374Harrisonburg, VA 22807<br> 375Main Phone: (540) 568-6461<br> 376<br> 377Student Experience Form:</strong> <a href="https://jmudukeclub.com/sb_output.aspx?form=198">https://jmudukeclub.com/sb_output.aspx?form=198</a><br> 378<strong>Career Opportunities:</strong> <a href="https://jmudukeclub.com/sports/2023/7/13/career-opportunities.aspx">https://jmudukeclub.com/sports/2023/7/13/career-opportunities.aspx</a></span> 379 </div> 380 381 382 <table class="sidearm-table collapse-on-large"> 383 <caption class="hide">Staff Directory Members By Category/Department</caption> 384 <thead class="sidearm-primary"> 385 <tr> 386 387 <th class="text-left text-uppercase" id="col-image_combined_path" scope="col"> 388 <span class="accessible-hide">Image</span> 389 </th> 390 391 <th class="text-left text-uppercase" id="col-fullname" scope="col"> 392 <span class="">Name</span> 393 </th> 394 395 <th class="text-left text-uppercase" id="col-staff_title" scope="col"> 396 <span class="">Title</span> 397 </th> 398 399 <th class="text-left text-uppercase" id="col-staff_phone" scope="col"> 400 <span class="">Phone</span> 401 </th> 402 403 <th class="text-left text-uppercase" id="col-staff_email" scope="col"> 404 <span class="">Email Address</span> 405 </th> 406 407 </tr> 408 </thead> 409 <tbody> 410 411 <tr class="sidearm-staff-category " data-category-id="2"> 412 <th id="category-0" class="fake-heading" scope="col" colspan="5">Duke Club Staff</th> 413 </tr> 414 415 <tr class="sidearm-staff-member " data-member-id="24" data-category-id="2"> 416 417 <td headers="col-image_combined_path category-0" class="sidearm-staff-image-cell"> 418 <img src='/images/2019/1/30/renkin_scooter_17_gL2V2.jpg?width=100' alt='Scooter Renkin'> 419 </td> 420 421 <td headers="col-fullname category-0" class=""> 422 <a aria-label='Scooter Renkin, Duke Club Staff, Senior Associate A.D. for Development and Strategic Revenue' class='text-no-wrap' href='/staff-directory/scooter-renkin/24'>Scooter Renkin</a> 423 424 </td> 425 426 <td headers="col-staff_title category-0" class=""> 427 Senior Associate A.D. for Development and Strategic Revenue 428 </td> 429 430 <td headers="col-staff_phone category-0" class=""> 431 432 <a href="tel:(540) 568-5173">(540) 568-5173</a> 433 434 </td> 435 436 <td headers="col-staff_email category-0" class=""> 437 438 <a id="staff_email_0" href="#"></a> 439 440
440<script type="text/javascript"> 441 var placeholder = document.getElementById("staff_email_0"); 442 var firstHalf = "renkinsg"; 443 var secondHalf = "jmu.edu"; 444 var full_email = firstHalf + '@' + secondHalf; 445 placeholder.href = 'mailto:' + full_email; 446 placeholder.innerText = full_email; 447 </script>
447 448 449 </td> 450 451 </tr> 452 453 <tr class="sidearm-staff-member " data-member-id="29" data-category-id="2"> 454 455 <td headers="col-image_combined_path category-0" class="sidearm-staff-image-cell"> 456 <img src='/images/2025/5/14/Grace_Sheldon_-_Headshot_7Eotq.jpg?width=100' alt='Grace Sheldon'> 457 </td> 458 459 <td headers="col-fullname category-0" class=""> 460 <a aria-label='Grace Sheldon, Duke Club Staff, Director of Internal Operations and Events' class='text-no-wrap' href='/staff-directory/grace-sheldon/29'>Grace Sheldon</a> 461 462 </td> 463 464 <td headers="col-staff_title category-0" class=""> 465 Director of Internal Operations and Events 466 </td> 467 468 <td headers="col-staff_phone category-0" class=""> 469 470 <a href="tel:(540) 568-3267">(540) 568-3267</a> 471 472 </td> 473 474 <td headers="col-staff_email category-0" class=""> 475 476 <a id="staff_email_1" href="#"></a> 477 478
478<script type="text/javascript"> 479 var placeholder = document.getElementById("staff_email_1"); 480 var firstHalf = "sgs6mn"; 481 var secondHalf = "jmu.edu"; 482 var full_email = firstHalf + '@' + secondHalf; 483 placeholder.href = 'mailto:' + full_email; 484 placeholder.innerText = full_email; 485 </script>
485 486 487 </td> 488 489 </tr> 490 491 <tr class="sidearm-staff-member " data-member-id="27" data-category-id="2"> 492 493 <td headers="col-image_combined_path category-0" class="sidearm-staff-image-cell"> 494 <img src='/images/2024/8/8/gordon-sean-24_bazQB.jpg?width=100' alt='Sean Gordon'> 495 </td> 496 497 <td headers="col-fullname category-0" class=""> 498 <a aria-label='Sean Gordon, Duke Club Staff, Senior Athletic Development Officer (WTEN, MTEN, VB, MSOC)' class='text-no-wrap' href='/staff-directory/sean-gordon/27'>Sean Gordon</a> 499 500 </td> 501 502 <td headers="col-staff_title category-0" class=""> 503 Senior Athletic Development Officer (WTEN, MTEN, VB, MSOC) 504 </td> 505 506 <td headers="col-staff_phone category-0" class=""> 507 508 <a href="tel:(540) 568-6365">(540) 568-6365</a> 509 510 </td> 511 512 <td headers="col-staff_email category-0" class=""> 513 514 <a id="staff_email_2" href="#"></a> 515 516
516<script type="text/javascript"> 517 var placeholder = document.getElementById("staff_email_2"); 518 var firstHalf = "gordo4sa"; 519 var secondHalf = "jmu.edu "; 520 var full_email = firstHalf + '@' + secondHalf; 521 placeholder.href = 'mailto:' + full_email; 522 placeholder.innerText = full_email; 523 </script>
523 524 525 </td> 526 527 </tr> 528 529 <tr class="sidearm-staff-member " data-member-id="18" data-category-id="2"> 530 531 <td headers="col-image_combined_path category-0" class="sidearm-staff-image-cell"> 532 <img src='/images/2026/3/25/thomas-dillon-26.jpg_j2knd.jpeg?width=100' alt='Dillon Thomas'> 533 </td> 534 535 <td headers="col-fullname category-0" class=""> 536 <a aria-label='Dillon Thomas, Duke Club Staff, Assistant Director of Donor Experience' class='text-no-wrap' href='/staff-directory/dillon-thomas/18'>Dillon Thomas</a> 537 538 </td> 539 540 <td headers="col-staff_title category-0" class=""> 541 Assistant Director of Donor Experience 542 </td> 543 544 <td headers="col-staff_phone category-0" class=""> 545 546 <a href="tel:(540) 568-3906">(540) 568-3906</a> 547 548 </td> 549 550 <td headers="col-staff_email category-0" class=""> 551 552 <a id="staff_email_3" href="#"></a> 553 554
554<script type="text/javascript"> 555 var placeholder = document.getElementById("staff_email_3"); 556 var firstHalf = "thoma6ds"; 557 var secondHalf = "jmu.edu"; 558 var full_email = firstHalf + '@' + secondHalf; 559 placeholder.href = 'mailto:' + full_email; 560 placeholder.innerText = full_email; 561 </script>
561 562 563 </td> 564 565 </tr> 566 567 <tr class="sidearm-staff-member " data-member-id="33" data-category-id="2"> 568 569 <td headers="col-image_combined_path category-0" class="sidearm-staff-image-cell"> 570 <img src='/images/2026/7/30/alley-madi-26.jpg?width=100' alt='Madi Alley'> 571 </td> 572 573 <td headers="col-fullname category-0" class=""> 574 <a aria-label='Madi Alley, Duke Club Staff, Assistant Director of Internal Operations' class='text-no-wrap' href='/staff-directory/madi-alley/33'>Madi Alley</a> 575 576 </td> 577 578 <td headers="col-staff_title category-0" class=""> 579 Assistant Director of Internal Operations 580 </td> 581 582 <td headers="col-staff_phone category-0" class=""> 583 584 <a href="tel:(540) 568-7636">(540) 568-7636</a> 585 586 </td> 587 588 <td headers="col-staff_email category-0" class=""> 589 590 <a id="staff_email_4" href="#"></a> 591 592
592<script type="text/javascript"> 593 var placeholder = document.getElementById("staff_email_4"); 594 var firstHalf = "alleyml"; 595 var secondHalf = "jmu.edu"; 596 var full_email = firstHalf + '@' + secondHalf; 597 placeholder.href = 'mailto:' + full_email; 598 placeholder.innerText = full_email; 599 </script>
599 600 601 </td> 602 603 </tr> 604 605 <tr class="sidearm-staff-member " data-member-id="20" data-category-id="2"> 606 607 <td headers="col-image_combined_path category-0" class="sidearm-staff-image-cell"> 608 <img src='/images/2026/3/25/dean-alana-26.jpg_fbIrP.jpeg?width=100' alt='Alana Dean'> 609 </td> 610 611 <td headers="col-fullname category-0" class=""> 612 <a aria-label='Alana Dean, Duke Club Staff, Administrative Assistant for External Operations' class='text-no-wrap' href='/staff-directory/alana-dean/20'>Alana Dean</a> 613 614 </td> 615 616 <td headers="col-staff_title category-0" class=""> 617 Administrative Assistant for External Operations 618 </td> 619 620 <td headers="col-staff_phone category-0" class=""> 621 622 <a href="tel:(540) 568-3359">(540) 568-3359</a> 623 624 </td> 625 626 <td headers="col-staff_email category-0" class=""> 627 628 <a id="staff_email_5" href="#"></a> 629 630
630<script type="text/javascript"> 631 var placeholder = document.getElementById("staff_email_5"); 632 var firstHalf = "dean3at"; 633 var secondHalf = "jmu.edu"; 634 var full_email = firstHalf + '@' + secondHalf; 635 placeholder.href = 'mailto:' + full_email; 636 placeholder.innerText = full_email; 637 </script>
637 638 639 </td> 640 641 </tr> 642 643 <tr class="sidearm-staff-member " data-member-id="23" data-category-id="2"> 644 645 <td headers="col-image_combined_path category-0" class="sidearm-staff-image-cell"> 646 <img src='/images/2022/12/14/yeager_kyle_15_16_300X450_GQ6dc.jpg?width=100' alt='Kyle Yeager'> 647 </td> 648 649 <td headers="col-fullname category-0" class=""> 650 <a aria-label='Kyle Yeager, Duke Club Staff, Athletics Liaison - University Advancement' class='text-no-wrap' href='/staff-directory/kyle-yeager/23'>Kyle Yeager</a> 651 652 </td> 653 654 <td headers="col-staff_title category-0" class=""> 655 Athletics Liaison - University Advancement 656 </td> 657 658 <td headers="col-staff_phone category-0" class=""> 659 660 <a href="tel:(540) 568-6398">(540) 568-6398</a> 661 662 </td> 663 664 <td headers="col-staff_email category-0" class=""> 665 666 <a id="staff_email_6" href="#"></a> 667 668
668<script type="text/javascript"> 669 var placeholder = document.getElementById("staff_email_6"); 670 var firstHalf = "yeagerkr"; 671 var secondHalf = "jmu.edu "; 672 var full_email = firstHalf + '@' + secondHalf; 673 placeholder.href = 'mailto:' + full_email; 674 placeholder.innerText = full_email; 675 </script>
675 676 677 </td> 678 679 </tr> 680 681 <tr class="sidearm-staff-member " data-member-id="32" data-category-id="2"> 682 683 <td headers="col-image_combined_path category-0" class="sidearm-staff-image-cell"> 684 <img src='/images/2026/2/27/hunter-adam-26_P7Pcs.jpg?width=100' alt='Adam Hunter'> 685 </td> 686 687 <td headers="col-fullname category-0" class=""> 688 <a aria-label='Adam Hunter, Duke Club Staff, Graduate Assistant' class='text-no-wrap' href='/staff-directory/adam-hunter/32'>Adam Hunter</a> 689 690 </td> 691 692 <td headers="col-staff_title category-0" class=""> 693 Graduate Assistant 694 </td> 695 696 <td headers="col-staff_phone category-0" class=""> 697 698 <a href="tel:(540) 568-6381">(540) 568-6381</a> 699 700 </td> 701 702 <td headers="col-staff_email category-0" class=""> 703 704 <a id="staff_email_7" href="#"></a> 705 706
706<script type="text/javascript"> 707 var placeholder = document.getElementById("staff_email_7"); 708 var firstHalf = "hunte3ar"; 709 var secondHalf = "jmu.edu"; 710 var full_email = firstHalf + '@' + secondHalf; 711 placeholder.href = 'mailto:' + full_email; 712 placeholder.innerText = full_email; 713 </script>
713 714 715 </td> 716 717 </tr> 718 719 <tr class="sidearm-staff-member " data-member-id="28" data-category-id="2"> 720 721 <td headers="col-image_combined_path category-0" class="sidearm-staff-image-cell"> 722 <img src='/images/2026/6/15/DClogo_MarkOnly_FullColor.png?width=100' alt='Carsen Sanders'> 723 </td> 724 725 <td headers="col-fullname category-0" class=""> 726 <a aria-label='Carsen Sanders, Duke Club Staff, Graduate Assistant ' class='text-no-wrap' href='/staff-directory/carsen-sanders/28'>Carsen Sanders</a> 727 728 </td> 729 730 <td headers="col-staff_title category-0" class=""> 731 Graduate Assistant 732 </td> 733 734 <td headers="col-staff_phone category-0" class=""> 735 736 <a href="tel:(540) 568-5725">(540) 568-5725</a> 737 738 </td> 739 740 <td headers="col-staff_email category-0" class=""> 741 742 <a id="staff_email_8" href="#"></a> 743 744
744<script type="text/javascript"> 745 var placeholder = document.getElementById("staff_email_8"); 746 var firstHalf = "sandercg"; 747 var secondHalf = "jmu.edu"; 748 var full_email = firstHalf + '@' + secondHalf; 749 placeholder.href = 'mailto:' + full_email; 750 placeholder.innerText = full_email; 751 </script>
751 752 753 </td> 754 755 </tr> 756 757 </tbody> 758 </table> 759 760 <div class="sidearm-common-promotion"> 761 762
763<script> 764 var obj = {"start":0,"count":10,"name":"staff-below-content-1","sport_id":null,"count_breakpoints":null,"css_class":"","pinned_id":"","extra":{},"context":null,"dummy":false,"type":"ads","id":"a0a86bb7-5cd1-48e1-847d-ae540bbeb19e","data":{"location":{"id":0,"title":null,"type":null,"effect":null,"fixed_image_sizes":false,"excluded_sport_ids":null,"slick":false,"dfp":false,"sidearm_dfp":false,"common_page":false,"html_template":null,"name":null,"autoplay_speed":0,"accessibility_icons":false,"sizes":null,"slick_options":null,"dfp_sizes":null},"campaigns":[],"content_id":null,"content_title":null,"content_date":null,"content_url":null,"content_image_url":null},"mode":"web"}; 765 if (!("sidearmComponents" in window)) 766 window.sidearmComponents = []; 767 window.sidearmComponents.push(obj); 768</script>
768 769 770<ads-component params="{ id: 'a0a86bb7-5cd1-48e1-847d-ae540bbeb19e' }"></ads-component> 771 772 </div> 773 774 </article> 775 776
776<script> 777 require(['jquery', 'jquery-ui'], function ($) { 778 require(['sidearm-responsive'], function () { 779 $(window).on('load', function() { 780 $(window).sidearmResponsive(); 781 782 var staff = [{"label":"Scooter Renkin","value":24},{"label":"Grace Sheldon","value":29},{"label":"Sean Gordon","value":27},{"label":"Dillon Thomas","value":18},{"label":"Madi Alley","value":33},{"label":"Alana Dean","value":20},{"label":"Kyle Yeager","value":23},{"label":"Adam Hunter","value":32},{"label":"Carsen Sanders","value":28}]; 783 784 $('#ctl00_cplhMainContent_txt_keyword_search').autocomplete({ 785 appendTo: '.sidearm-staff-select-search', 786 source: staff, 787 select: function(event, ui) { 788 event.preventDefault(); 789 $(this).val(ui.item.label); 790 $(this).data('ui-autocomplete').search(); 791 }, 792 focus: function(event, ui) { 793 event.preventDefault(); 794 $(this).val(ui.item.label); 795 } 796 }).on("keypress", function(e) { 797 if (e.keyCode == 13) { 798 e.preventDefault(); 799 searchStaff(); 800 } 801 }); 802 803 $('#ctl00_cplhMainContent_btn_keyword_search').click(function(e) { 804 e.preventDefault(); 805 searchStaff(); 806 }); 807 808 function searchStaff() { 809 var _list = $('#ctl00_cplhMainContent_txt_keyword_search').data('ui-autocomplete').menu.element[0]; 810 811 if (_list.children) { 812 var _matches = []; 813 $.each(_list.children, function(index, _item) { 814 _matches.push(_item.innerText); 815 }); 816 817 var _staff = staff.filter(function(_member) { 818 if ($.inArray(_member.label, _matches) > -1) 819 return _member; 820 }); 821 822 if (_staff.length === 0) return; 823 824 var $members = $('.sidearm-staff-member'); 825 $members.addClass('hide'); 826 827 var $categories = $('.sidearm-staff-category'); 828 $categories.addClass('hide'); 829 830 $.each(_staff, function(index, member) { 831 var $search = $members.filter('[data-member-id=' + member.value + ']'); 832 $search.removeClass('hide'); 833 834 $.each($search, function(index, search) { 835 var _category = $(search).data("category-id"); 836 $categories.filter('[data-category-id=' + _category + ']').removeClass('hide'); 837 }); 838 }); 839 } 840 } 841 842 $('#ctl00_cplhMainContent_btn_filter_categories').click(function(e) { 843 e.preventDefault(); 844 filterStaffByCategory(); 845 }); 846 847 function filterStaffByCategory(){ 848 var _category = $('#ctl00_cplhMainContent_ddl_filter_categories').val(); 849 var $members = $('.sidearm-staff-member'); 850 var $categories = $('.sidearm-staff-category'); 851 852 if(_category === ""){ 853 $members.removeClass('hide'); 854 $categories.removeClass('hide'); 855 return; 856 } 857 858 $members.addClass('hide'); 859 $categories.addClass('hide'); 860 861 $members.filter('[data-category-id=' + _category + ']').removeClass('hide'); 862 $categories.filter('[data-category-id=' + _category + ']').removeClass('hide'); 863 } 864 }); 865 }); 866 }); 867 </script>
867 868 869 870 871 </main> 872 873 <footer class="main-footer" aria-labelledby="h2_footer"> 874 <h2 class="hide" id="h2_footer">Footer</h2> 875 <div class="main-footer__inner row"> 876 <div class="flex flex-align-center"> 877 <div class="main-footer__content"> 878 <div class="main-footer__logo"> 879 <a href="/" class="main-footer__logo-link"> 880 <img class="lazyload" src="https://dxbhsrqyrr690.cloudfront.net/sidearm.nextgen.sites/dukeclub.sidearmsports.com/images/responsive_2024/footer_logo_duke-club.svg" alt="Duke Club, Supporting JMU Student Athletes"> 881 </a> 882 </div> 883 <p class="main-footer__trademark"> 884 The Duke Club is the fundraising arm for JMU Athletics, providing financial support to all of the 18 varsity sport programs. Duke Club members are Proud & True Fund (PATF) donors who recognize the value of the student-athlete experience and the JMU education - helping to keep JMU Athletics programs among the best in the nation. 885 </p> 886 <div class="main-footer__social"> 887 888
889<script> 890 var obj = {"start":0,"count":10,"name":"templated-social-icons","sport_id":null,"count_breakpoints":null,"css_class":"","pinned_id":"","extra":{},"context":null,"dummy":false,"type":"ads","id":"5745e68a-dcec-44be-a86e-3ba95e5e943d","data":{"location":{"id":154,"title":"Social Media Icons","type":"icons","effect":"none","fixed_image_sizes":false,"excluded_sport_ids":[],"slick":false,"dfp":false,"sidearm_dfp":false,"common_page":false,"html_template":null,"name":"templated-social-icons","autoplay_speed":8,"accessibility_icons":true,"sizes":null,"slick_options":null,"dfp_sizes":null},"campaigns":[{"id":2,"title":"Facebook","start_date":"2024-04-02T00:00:00","end_date":null,"open_in_new_window":true,"link":"/common/controls/adhandler.aspx?ad_id=2&target=https://www.facebook.com/JMUDukeClub/","icon":"sf-facebook-2","html":null,"picture":null,"css_class":null,"is_dummy":false,"hover_text":null},{"id":3,"title":"Twitter","start_date":"2024-04-02T00:00:00","end_date":null,"open_in_new_window":true,"link":"/common/controls/adhandler.aspx?ad_id=3&target=https://twitter.com/JMUDukeClub","icon":"sf-twitter","html":null,"picture":null,"css_class":null,"is_dummy":false,"hover_text":null},{"id":4,"title":"Instagram","start_date":"2024-04-02T00:00:00","end_date":null,"open_in_new_window":true,"link":"/common/controls/adhandler.aspx?ad_id=4&target=https://www.instagram.com/jmudukeclub/","icon":"sf-instagram","html":null,"picture":null,"css_class":null,"is_dummy":false,"hover_text":null}],"content_id":"templated-social-icons","content_title":"templated-social-icons","content_date":null,"content_url":null,"content_image_url":null},"mode":"web"}; 891 if (!("sidearmComponents" in window)) 892 window.sidearmComponents = []; 893 window.sidearmComponents.push(obj); 894</script>
894 895 896<ads-component params="{ id: '5745e68a-dcec-44be-a86e-3ba95e5e943d' }"></ads-component> 897 </div> 898 </div> 899 <div class="main-footer__links"> 900 901
902<script> 903 var obj = {"start":0,"count":10,"name":"footer-links-4c884b","sport_id":null,"count_breakpoints":null,"css_class":"","pinned_id":"","extra":{},"context":null,"dummy":false,"type":"ads","id":"50e463c7-ee47-47e1-9a33-6d7171196a63","data":{"location":{"id":165,"title":"Footer Links","type":"html","effect":"none","fixed_image_sizes":false,"excluded_sport_ids":[],"slick":false,"dfp":false,"sidearm_dfp":false,"common_page":false,"html_template":null,"name":"footer-links-4c884b","autoplay_speed":8,"accessibility_icons":true,"sizes":null,"slick_options":null,"dfp_sizes":null},"campaigns":[{"id":1,"title":"Footer Links","start_date":"2024-04-02T00:00:00","end_date":null,"open_in_new_window":true,"link":"#","icon":null,"html":"<div class="flex">\r\n<ul class="reset-list">\r\n\t<li><a href="https://jmudukeclub.com/sports/2018/11/27/About.aspx">About Us</a></li>\r\n\t<li><a href="https://jmudukeclub.com/sports/2014/6/27/GEN_0627145540.aspx">Contact Us</a></li>\r\n</ul>\r\n</div>\r\n","picture":null,"css_class":null,"is_dummy":false,"hover_text":null}],"content_id":"footer-links-4c884b","content_title":"footer-links-4c884b","content_date":null,"content_url":null,"content_image_url":null},"mode":"web"}; 904 if (!("sidearmComponents" in window)) 905 window.sidearmComponents = []; 906 window.sidearmComponents.push(obj); 907</script>
907 908 909<ads-component params="{ id: '50e463c7-ee47-47e1-9a33-6d7171196a63' }"></ads-component> 910 </div> 911 </div> 912 <div class="main-footer__copy"> 913 <p><span>Copyright © 2026</span> James Madison University Duke Club</p> 914 </div> 915 </div> 916 <div class="main-footer__sidearm"> 917 <div class="main-footer__sidearm__inner row"> 918 919<style> 920 .c-common-footer{ line-height:1.5; padding:0;flex-direction:column !important;} 921 .c-common-footer .c-common-footer__list-items{margin:0; padding:0; list-style:none;flex-direction:column;} 922 .c-common-footer .c-common-footer__list-item{padding:12px 24px; border-top:solid 1px;} 923 .c-common-footer .c-common-footer__list-item:first-child{ border-top:none;} 924 /* .c-common-footer .c-common-footer__list-item:nth-child(n+3){width:100%;} */ 925 .c-common-footer .c-common-footer__list-link{font-weight:400; font-size:1rem;} 926 .c-common-footer .c-common-footer__list-link:hover{text-decoration:underline;} 927 .c-common-footer .c-common-footer__logos{ flex: 0 0 auto; -webkit-flex: 0 0 auto; border-top:solid 1px;} 928 .c-common-footer .c-common-footer__logo-item{ padding:24px; flex: 1 1 50%; -webkit-flex: 1 1 50%; text-align:center;} 929 .c-common-footer .c-common-footer__logo-link { display:inline-block;} 930 .c-common-footer .c-common-footer__logo-item:nth-child(n+2){ border-left:solid 1px; } 931 .c-common-footer .c-common-footer__logo-item svg{ max-height:30px; width:100%;} 932 933 .c-common-footer--black{ background:black; } 934 .c-common-footer--black .c-common-footer__list-link{ color:white;} 935 .c-common-footer--black .c-common-footer__list-item{border-top-color:#474952;} 936 .c-common-footer--black .c-common-footer__list-item:nth-child(2) { border-left-color:#474952; } 937 .c-common-footer--black .c-common-footer__list-item:nth-child(3) { border-left-color:#474952; } 938 .c-common-footer--black .c-common-footer__list-item:nth-child(4) { border-left-color:#474952; } 939 .c-common-footer--black .c-common-footer__logos{ border-top-color:#474952;} 940 .c-common-footer--black .c-common-footer__logo-item:nth-child(n+2){ border-left-color:#474952; } 941 942 .c-common-footer--white{ background:white; } 943 .c-common-footer--white .c-common-footer__list-link{ color:black;} 944 .c-common-footer--white .c-common-footer__list-item{border-top-color:#d9d9db;} 945 .c-common-footer--white .c-common-footer__list-item:nth-child(2) { border-left-color: #d9d9db; } 946 .c-common-footer--white .c-common-footer__list-item:nth-child(3) { border-left-color: #d9d9db; } 947 .c-common-footer--white .c-common-footer__list-item:nth-child(4) { border-left-color: #d9d9db; } 948 .c-common-footer--white .c-common-footer__logos{ border-top-color:#d9d9db;} 949 .c-common-footer--white .c-common-footer__logo-item:nth-child(n+2){ border-left-color:#d9d9db; } 950 951 .c-common-footer--gray{ background:#f5f5f5; } 952 .c-common-footer--gray .c-common-footer__list-link{ color:black;} 953 .c-common-footer--gray .c-common-footer__list-item{border-top-color:#d9d9db;} 954 .c-common-footer--gray .c-common-footer__list-item:nth-child(2) { border-left-color: #d9d9db; } 955 .c-common-footer--gray .c-common-footer__list-item:nth-child(3) { border-left-color: #d9d9db; } 956 .c-common-footer--gray .c-common-footer__list-item:nth-child(4) { border-left-color: #d9d9db; } 957 .c-common-footer--gray .c-common-footer__logos{ border-top-color:#d9d9db;} 958 .c-common-footer--gray .c-common-footer__logo-item:nth-child(n+2){ border-left-color:#d9d9db; } 959 960 @media all and (min-width:768px) { 961 .c-common-footer {padding:24px 0; flex-direction:row !important;} 962 .c-common-footer .c-common-footer__links{ padding: 24px 12px; flex: 1 1 auto; -webkit-flex: 1 1 auto;} 963 .c-common-footer .c-common-footer__list-items{flex-direction:row;} 964 .c-common-footer .c-common-footer__list-item{padding:0 12px; margin-bottom:4px; border-top:none;} 965 .c-common-footer .c-common-footer__list-item:nth-child(2){ border-left-style:solid; border-left-width: 1px;} 966 .c-common-footer .c-common-footer__list-item:nth-child(3){ border-left-style:solid; border-left-width: 1px;} 967 .c-common-footer .c-common-footer__list-item:nth-child(4){ border-left-style:solid; border-left-width: 1px;} 968 .c-common-footer .c-common-footer__logos{border-top: none;} 969 .c-common-footer .c-common-footer__logo-item{padding:6px 24px; flex: 0 0 auto; -webkit-flex: 0 0 auto;} 970 .c-common-footer .c-common-footer__logo-item svg{ height:36px; width:auto; max-height:none;} 971 .c-common-footer .c-common-footer__logo-item .c-common-footer__logo-learfield{ height:30px; width:auto; max-height:none;} 972 .c-common-footer .c-common-footer__logo-item .c-common-footer__logo-sidearm{ height:48px; width:auto; max-height:none;} 973 .c-common-footer .c-common-footer__logo-item .c-common-footer__logo-sidearm--alt { height:auto; width:170px; max-height:none;} 974 .c-common-footer--learfield .c-common-footer__logos{border-top-style:solid; border-top-width: 1px; } 975 } 976</style> 977<div class="component c-common-footer c-common-footer--white flex flex-column flex-align-stretch flex-justify-between medium-flex-row"> 978 <div class="c-common-footer__links"> 979 <ul class="c-common-footer__list-items flex flex-column flex-align-stretch medium-flex-row flex-wrap"> 980 <li class="c-common-footer__list-item"> 981 <a class="c-common-footer__list-link" href="http://sidearmsports.com/terms-of-service" target="_blank">Terms of Service<span class="accessible-hide">, opens in new window</span></a> 982 </li> 983 <li class="c-common-footer__list-item"> 984 <a class="c-common-footer__list-link" href="http://sidearmsports.com/privacypolicy" target="_blank">Privacy Policy<span class="accessible-hide">, opens in new window</span></a> 985 </li> 986 <li class="c-common-footer__list-item"> 987 <a class="c-common-footer__list-link" href="https://sidearmsports.com/accessibility-statement" target="_blank" aria-label="Accessibility at SIDEARM, opens in new tab">Accessibility</a> 988 </li> 989 <li class="c-common-footer__list-item"> 990 <a id="cpra_button" class="c-common-footer__list-link" href="#" aria-label="Do Not Sell or Share My Personal Information, opens in modal">Do Not Sell or Share My Personal Information</a> 991 </li> 992 993 994 </ul> 995 </div> 996 <div class="c-common-footer__logos flex flex-align-center"> 997 998 <div class="c-common-footer__logo-item"> 999 <a class="c-common-footer__logo-link" href="https://www.sidearmsports.com" aria-label="Sidearm Sports, Powered by Learfield, opens a new window" target="_blank"> 1000 1001 <svg class="c-common-footer__logo-sidearm" fill="none" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 200 57" xmlns:xlink="http://www.w3.org/1999/xlink" role="img" aria-label="Sidearm Sports website, opens a new tab"><g clip-path="url(#clip6)"><title>Sidearm Sports, opens a new window</title><path d="M126.192 3.382c-.61 0-.924.558-.924 1.674v.662c0 .855.61 1.64 1.865 2.371 1.743 1.03 2.894 1.866 3.469 2.511 1.273 1.465 1.9 3.487 1.9 6.067 0 3.62
10016-2.126 5.44-6.362 5.44-2.092 0-3.609-.384-4.515-1.168-.977-.855-1.465-2.302-1.465-4.36v-2.65h5.108c0 .245-.017.611-.052 1.1a16.89 16.89 0 00-.053 1.098c0 1.726.349 2.58 1.046 2.58.698 0 1.029-.663 1.029-1.988 0-.906-.105-1.621-.349-2.127-.244-.505-.732-.993-1.482-1.499-1.952-1.29-3.085-2.11-3.381-2.423-1.221-1.308-1.831-3.104-1.831-5.405 0-3.522 2.005-5.265 5.997-5.265 2.475 0 4.114.523 4.916 1.552.697.871 1.028 2.58 1.028 5.108h-4.881V5.352c0-1.307-.348-1.97-1.063-1.97zm12.621 5.998h.993c.907 0 1.36-.454 1.36-1.343V5.038c0-.889-.453-1.325-1.36-1.325h-.993V9.38zM133.566 0h7.199c3.487 0 5.23 1.691 5.23 5.038v2.72c0 2.406-.645 3.94-1.918 4.638-.819.453-2.58.68-5.264.68v9.013h-5.247V0zm18.949 17.138c0 .924.348 1.394 1.046 1.394.697 0 1.045-.47 1.045-1.394V4.968c0-.923-.348-1.394-1.045-1.394-.698 0-1.046.47-1.046 1.395v12.169zm-5.457-10.565c0-2.232.523-3.888 1.569-4.97C149.673.523 151.329 0 153.561 0c2.248 0 3.887.523 4.933 1.604 1.046 1.063 1.569 2.72 1.569 4.969v8.96c0 2.232-.523 3.889-1.569 4.97-1.046 1.063-2.685 1.604-4.933 1.604-2.232 0-3.888-.54-4.934-1.604-1.046-1.064-1.569-2.72-1.569-4.97v-8.96zm19.577 1.883h.436c1.133 0 1.708-.506 1.708-1.552v-1.83c0-1.03-.575-1.552-1.708-1.552h-.436v4.934zM161.388 0h6.031c2.754 0 4.515.384 5.3 1.168.784.785 1.168 2.545 1.168 5.3 0 1.238-.245 2.162-.75 2.772-.506.61-1.377.994-2.597 1.133 1.307.175 2.231.558 2.754 1.151.54.61.802 1.552.802 2.842v7.74h-5.317v-8.385c0-1.273-.488-1.918-1.447-1.918h-.68v10.303h-5.247V0h-.017zm16.525 4.463h-3.382V0h12.447v4.463h-3.382v17.644h-5.683V4.463zm15.759-1.081c-.61 0-.924.558-.924 1.674v.662c0 .855.628 1.64 1.865 2.371 1.744 1.03 2.894 1.866 3.47 2.511 1.272 1.464 1.9 3.487 1.9 6.067 0 3.62
10016-2.11 5.44-6.363 5.44-2.092 0-3.591-.384-4.515-1.169-.959-.854-1.447-2.3-1.447-4.358v-2.65h5.108c0 .244-.018.61-.053 1.098a17.48 17.48 0 00-.052 1.099c0 1.726.331 2.58 1.029 2.58.697 0 1.046-.663 1.046-1.988 0-.906-.123-1.621-.367-2.127-.226-.505-.732-.993-1.464-1.499-1.97-1.307-3.103-2.127-3.399-2.44-1.22-1.308-1.831-3.104-1.831-5.405 0-3.505 2.005-5.265 6.015-5.265 2.475 0 4.114.523 4.915 1.551.698.872 1.029 2.58 1.029 5.108h-4.898v-1.29c.017-1.307-.349-1.97-1.064-1.97z" fill="#EE7623"></path><path d="M29.844 3.382c-.645 0-.959.558-.959 1.656v.646c0 .854.645 1.638 1.953 2.37 1.813 1.03 3.015 1.866 3.608 2.511 1.325 1.465 1.97 3.47 1.97 6.05 0 3.609-2.197 5.422-6.607 5.422-2.179 0-3.748-.384-4.69-1.15-1.01-.855-1.516-2.302-1.516-4.36v-2.632h5.317c0 .244-.017.61-.07 1.098-.035.489-.07.855-.07 1.099 0 1.726.367 2.58 1.081 2.58.715 0 1.081-.663 1.081-1.988 0-.906-.122-1.62-.366-2.109-.244-.506-.767-1.011-1.534-1.5-2.057-1.307-3.225-2.109-3.539-2.423-1.272-1.307-1.9-3.103-1.9-5.387C23.603 1.743 25.678 0 29.861 0c2.563 0 4.271.506 5.108 1.534.715.872 1.08 2.563 1.08 5.091h-5.09v-1.29c0-1.308-.383-1.953-1.115-1.953zM37.776.07h5.682v22.037h-5.682V.07zM50.78 18.393h.837c.889 0 1.325-.61 1.325-1.813V5.579c0-1.22-.436-1.83-1.325-1.83h-.837v14.644zM45.097.07h7.165c2.249 0 3.835.366 4.759 1.115 1.063.837 1.604 2.354 1.604 4.533v12.17c0 2.824-1.674 4.236-5.038 4.236h-8.49V.07zm20.849 17.59v-4.846h4.811l.54-4.254h-5.35V4.515h5.856L72.361.07h-13.51s1.343.75 1.412 1.952v18.15c-.07 1.185-1.412 1.952-1.412 1.952H69.59l.557-4.446h-4.2v-.017zm13.196-4.88l-.993-8.822-.994 8.821h1.987zM73.982.07h8.176l3.033 22.037h-5.386l-.576-5.945h-2.074l-.627 5.945h-5.335L73.983.07zm16.945 8.42h.435c1.133 0 1.691-.505 1.691-1.551V5.126c0-1.029-.558-1.552-1.69-1.552h-.436V8.49zM83.797.07h7.897c2.736 0 4.497.383 5.281 1.168.785.784 1.169 2.545 1.169 5.282 0 1.238-.245 2.162-.75 2.755-.506.61-1.36.976-2.58 1.133 1.29.157 2.214.54 2.754 1.15.54.594.802 1.553.802 2.843v7.723h-5.317v-7.305c0-1.273-.488-2.04-1.447-2.04h-.68v9.328h-4.148L83.797.07zm15.95 0h7.566l1.482 12.448L110.172.07h7.652v22.037h-4.811V5.736l-2.458 16.37h-3.608l-2.389-16.37v16.37h-4.81V.07zM6.31 17.33l4.707 4.707 6.572-6.573-2.214-2.197L6.31 17.33zM4.445 6.573L6.66 8.787l9.065-4.08L11.017 0 4.445 6.573z" fill="#003057"></path><path d="M6.24 10.548L3.365 7.67 0 11.018l5.23 5.23 10.564-4.759 2.893 2.894 3.347-3.365-5.212-5.212-10.581 4.742z" fill="#EE7623"></path><path d="M19.158 44.23h2.075c.366 0 .697.035.993.105.296.07.54.175.75.331.209.157.366.35.488.576.122.226.174.523.174.837 0 .348-.07.645-.192.889-.14.244-.313.436-.54.575-.227.14-.488.244-.784.314a4.14 4.14 0 01-.96.104h-.87v2.633h-1.134V44.23zm1.918 2.773c.191 0 .366-.018.523-.035a1.73 1.73 0 00.453-.14.704.704 0 00.314-.279.939.939 0 00.122-.47c0-.192-.035-.332-.122-.454a.704.704 0 00-.314-.279 1.153 1.153 0 00-.436-.122 4.588 4.588 0 00-.506-.035h-.819v1.831h.785v-.017zm4.009.383c0-.506.087-.976.261-1.377.175-.401.401-.767.715-1.046a3.22 3.22 0 011.081-.663 3.837 3.837 0 011.36-.226c.488 0 .959.07 1.377.226a3.22 3.22 0 011.08.663c.314.279.541.627.715 1.046.175.4.262.871.262 1.377 0 .488-.087.941-.262 1.36-.174.401-.4.767-.714 1.063a3.494 3.494 0 01-1.081.698c-.419.174-.872.244-1.377.244-.488 0-.942-.087-1.36-.244a3.205 3.205 0 01-1.08-.697 3.261 3.261 0 01-.716-1.064 3.38 3.38 0 01-.261-1.36zm1.238 0c0 .349.052.663.157.941.104.28.261.524.453.733.192.209.418.366.697.488.262.122.558.174.89.174.33 0 .627-.052.888-.174.262-.122.506-.279.697-.488.192-.21.35-.454.454-.733a2.67 2.67 0 00.157-.94c0-.332-.053-.629-.157-.925a2.208 2.208 0 00-.436-.732 2.01 2.01 0 00-.697-.488 2.187 2.187 0 00-.89-.175c-.313 0-.627.053-.889.175a2.113 2.113 0 00-.68.488c-.191.21-.33.453-.435.732a1.89 1.89 0 00-.21.924zm6.816-3.156h1.237l1.238 4.673h.018l1.394-4.672h1.168l1.377 4.672h.018l1.255-4.672h1.203l-1.866 6.346h-1.098l-1.482-4.76h-.017l-1.482 4.76h-1.098l-1.865-6.346zm10.407 0h4.2v.994h-3.085v1.622h2.911v.959h-2.91V49.6h3.242v1.011h-4.376v-6.38h.018zm6.24 0H52c.297 0 .593.035.872.088.279.07.523.174.75.314.226.139.4.33.523.557.139.227.191.523.191.855 0 .453-.122.837-.383 1.133-.262.296-.61.488-1.064.593l1.691 2.824h-1.36l-1.464-2.685h-.819v2.685h-1.133V44.23h-.018zm2.057 2.738c.157 0 .332-.018.489-.035.157-.018.313-.07.435-.14a.957.957 0 00.314-.279c.087-.122.122-.279.122-.47 0-.175-.035-.314-.122-.419a.868.868 0 00-.296-.261 1.556 1.556 0 00-.401-.14c-.157-.017-.297-.035-.453-.035h-1.029v1.779h.941zm4.359-2.738h4.2v.994h-3.085v1.622h2.911v.959h-2.91V49.6h3.242v1.011h-4.376v-6.38h.018zm6.223 0h2.249c.418 0 .836.053 1.255.157.418.105.802.28 1.133.54.331.245.61.576.82.977.208.401.313.907.313 1.5 0 .557-.105 1.028-.314 1.43-.21.4-.488.731-.82.993a3.316 3.316 0 01-1.132.575 4.475 4.475 0 01-1.255.192h-2.25V44.23zm2.074 5.37c.297 0 .593-.035.872-.104.296-.07.558-.192.802-.349.244-.157.436-.384.575-.663.157-.279.227-.645.227-1.063 0-.453-.07-.82-.227-1.116a2.208 2.208 0 00-.575-.68 2.173 2.173 0 00-.802-.331 5.093 5.093 0 00-.872-.087h-.941V49.6h.941zm8.559-5.37h2.476c.244 0 .47.035.715.088.226.052.435.157.627.279a1.6 1.6 0 01.453.505c.105.21.175.454.175.733 0 .366-.105.662-.314.889a1.81 1.81 0 01-.802.505v.018c.4.052.732.209.994.47.261.262.383.61.383 1.029 0 .349-.07.645-.209.872a1.72 1.72 0 01-.54.575c-.227.14-.489.244-.767.314-.297.07-.593.087-.89.087h-2.283V44.23h-.018zm1.133 2.58h1.012c.383 0 .662-.069.854-.226a.787.787 0 00.296-.645c0-.279-.104-.488-.296-.61-.21-.122-.523-.175-.959-.175h-.906v1.657zm0 2.825h1.012c.14 0 .296-.017.47-.035.175-.017.314-.07.47-.122a.918.918 0 00.35-.279.87.87 0 00.139-.505c0-.332-.105-.576-.349-.698-.226-.14-.575-.192-1.028-.192h-1.063v1.831zm6.974-1.813l-2.389-3.592h1.377l1.604 2.668 1.621-2.668h1.308l-2.388 3.592v2.755h-1.133v-2.755zm35.474-4.132h-1.325v7.427h5.857V49.81h-4.532v-6.12zm6.258 7.427h5.857v-1.325h-4.532v-1.726h3.225v-1.325h-3.225v-1.063a.662.662 0 00-.662-.663h5.194V43.69h-5.857v7.427zm10.006-7.427l-2.615 7.427h1.395l2.162-6.102 1.063 3.051h-1.412l-.471 1.325h2.354l.61 1.726h1.412l-2.615-7.427h-1.883zm11.889 3.068v-1.743c0-.732-.593-1.325-1.325-1.325h-4.532v7.427h1.325v-3.051h2.057l1.412 3.051h1.447l-1.43-3.086a1.29 1.29 0 001.046-1.273zm-1.325-.017h-3.207v-1.063a.663.663 0 00-.663-.663h3.87v1.726zm3.853 4.376h1.325v-3.051h3.207v-1.325h-3.207v-1.063a.663.663 0 00-.663-.663h5.195V43.69h-5.857v7.427zm8.89-7.427h-1.325v7.427h1.325V43.69zm2.545 7.427h5.858v-1.325h-4.533v-1.726h3.208v-1.325h-3.208v-1.063a.662.662 0 00-.662-.663h5.195V43.69h-5.858v7.427zm9.518-7.427h-1.325v7.427h5.858V49.81h-4.533v-6.12zm9.832 0h-3.591v7.427h3.591a2.742 2.742 0 002.737-2.737v-1.97c0-1.5-1.22-2.72-2.737-2.72zm1.412 4.707c0 .785-.627 1.413-1.412 1.413h-2.266v-4.132a.662.662 0 00-.663-.663h2.929c.785 0 1.412.628 1.412 1.412v1.97zm-88.242 7.759h17.485V38.669H91.275v17.487zm7.304-5.039l2.807-2.807 5.997 2.807h-8.804zm-.244
1001-7.427h6.189l-7.427 7.427h-4.445l6.555-6.555-.872-.872zM200 30.876H0v.715h200v-.715z" fill="#003057"></path></g><defs><clippath id="clip6"><path fill="#fff" d="M0 0h200v56.156H0z"></path></clippath></defs></svg> 1002 1003 </a> 1004 </div> 1005 1006 </div> 1007</div> 1008
1009<script type="text/javascript"> 1010 if (typeof airgap !== 'undefined') { 1011 window.airgap.ready((airgap) => { 1012 airgap.addEventListener('consent-change', ({ detail: { consent, oldConsent } }) => { 1013 if ( 1014 oldConsent.purposes['Functional'] == false && 1015 consent.purposes['Functional'] == true 1016 ) { 1017 airgap.setConsent(window.airgapScriptLoadEvent, { 1018 Functional: false, 1019 }); 1020 } 1021 }); 1022 }); 1023 } 1024 1025 document.addEventListener("DOMContentLoaded", function () { 1026 if ('airgap' in window && 'transcend' in window) { 1027 const cpraButton = document.getElementById('cpra_button'); 1028 cpraButton.onclick = (e) => { 1029 e.preventDefault(); 1030 transcend.showConsentManager({ viewState: 'AcceptAllRejectAllToggle' }); 1031 }; 1032 1033 window.airgap.ready(async (airgap) => { 1034 //await airgap.sync(); 1035 let userConsent = airgap.getConsent(); 1036 console.info('airgap --> userConsent', userConsent); 1037 }); 1038 } 1039 }); 1040</script>
1040 1041 1042 </div> 1043 </div> 1044 </footer> 1045
1046<script type="text/javascript">window.accessibility_focus_outline_style = 'solid'; window.accessibility_focus_outline_color = '#00FFFF'; window.accessibility_focus_outline_width = '5px'; window.accessibility_light_mode = 'true'.toLowerCase();</script>
1046</form> 1047
1047<script> 1048 require(['jquery', 'headroom', 'jquery-headroom'], function($) { 1049 $(window).on("load, resize", function () { 1050 let pageHeader = $('.main-header').outerHeight(); 1051 $('html').headroom('destroy').removeData('headroom').headroom({ "offset": pageHeader }); 1052 }).trigger('resize'); 1053 }); 1054 </script>
1054 1055
1055<script type='text/html' id='template-promotions'><!-- ko ifnot: isInitializing() --> 1056 1057 <!-- ko switch --> 1058 1059 <!-- ko case: ad.location.type === 'single' --> 1060 <!-- ko with: single --> 1061 <div class="ad single-ad" data-bind="css: css_class"> 1062 <!-- ko if: link === '' || link === '#' --> 1063 <span> 1064 <picture data-bind="html5Picture: picture, alt: ((typeof picture.images[0] != 'undefined') ? (picture.images[0].alt) : (hover_text ? hover_text : title))"></picture> 1065 </span> 1066 <!-- /ko --> 1067 <!-- ko if: link !== '' && link !== '#' --> 1068 <a data-bind=" 1069 attr:{ 1070 'aria-label': ((typeof picture.images[0] != 'undefined') ? (picture.images[0].alt) : (hover_text ? hover_text : title)), 1071 href: link, 1072 title: hover_text ? hover_text : title, 1073 target: open_in_new_window ? '_blank' : '', 1074 click: $component.trackEvent.bind($data, 'click', $data.title), 1075 'tabindex' : ko.computed(function() { 1076 var index = 1077 $parents.findIndex(function(item) { 1078 return Object.keys(item).length > 0 && item.component; 1079 }); 1080 if(index < 0) 1081 return 0; 1082 1083 var model = $parents[index]; 1084 if(model.component.name != 'main-nav') 1085 return 0; 1086 if (model.component.name === 'main-nav') 1087 return model.isMenuOpen() ? '0' : '-1'; 1088 return 0; 1089 }) 1090 }, 1091 event: { 1092 focus: function() { 1093 var index = 1094 $parents.findIndex(function(item) { 1095 return Object.keys(item).length > 0 && item.component; 1096 }); 1097 if(index < 0) 1098 return; 1099 1100 var model = $parents[index]; 1101 if (model.component.name === 'main-nav') { 1102 model.openMenu(); 1103 } 1104 return; 1105 }, 1106 blur: function() { 1107 var index = 1108 $parents.findIndex(function(item) { 1109 return Object.keys(item).length > 0 && item.component; 1110 }); 1111 if(index < 0) 1112 return; 1113 1114 var model = $parents[index]; 1115 if (model.component.name === 'main-nav') { 1116 model.closeMenu(); 1117 } 1118 return; 1119 } 1120 } 1121 "> 1122 <picture data-bind="html5Picture: picture, alt: ((typeof picture.images[0] != 'undefined') ? (picture.images[0].alt) : (hover_text ? hover_text : title))"></picture> 1123 <!-- ko if: open_in_new_window --> 1124 <span class="external-link a11y-hide">Opens in new window</span> 1125 <!-- /ko --> 1126 </a> 1127 <!-- /ko --> 1128 </div> 1129 <!-- /ko --> 1130 <!-- /ko --> 1131 1132 <!-- ko case: ad.location.type === 'multi' --> 1133 <!-- ko if: ad.location.effect === 'slide' || ad.location.effect === 'fade' --> 1134 <div class="ads-container on-focus-outline" data-bind="afterBind: { c
1134allback: function() { $component.slick($element, slickOptions) }, foreach: ad.campaigns }"> 1135 <div class="ad multi-ad" data-bind="css: css_class"> 1136 <!-- ko if: link === '' || link === '#' --> 1137 <span> 1138 <picture data-bind="html5Picture: picture, alt: ((typeof picture.images[0] != 'undefined') ? (picture.images[0].alt) : (hover_text ? hover_text : title))"></picture> 1139 </span> 1140 <!-- /ko --> 1141 <!-- ko if: link !== '' && link !== '#' --> 1142 <a data-bind="attr:{'aria-label': ((typeof picture.images[0] != 'undefined') ? (picture.images[0].alt) : (hover_text ? hover_text : title)), href: link, title: hover_text ? hover_text : title, target: open_in_new_window ? '_blank' : '' }, click: $component.trackEvent.bind($data, 'click', $data.title)"> 1143 <picture data-bind="html5Picture: picture, alt: ((typeof picture.images[0] != 'undefined') ? (picture.images[0].alt) : (hover_text ? hover_text : title))"></picture> 1144 <!-- ko if: open_in_new_window --> 1145 <span class="external-link a11y-hide">Opens in new window</span> 1146 <!-- /ko --> 1147 </a> 1148 <!-- /ko --> 1149 </div> 1150 </div> 1151 <!-- /ko --> 1152 <!-- ko if: ad.location.effect === 'none' --> 1153 <div class="ads-container" data-bind="foreach: ad.campaigns"> 1154 <div class="ad multi-ad" data-bind="css: css_class"> 1155 <!-- ko if: link === '' || link === '#' --> 1156 <span> 1157 <picture data-bind="html5Picture: picture, alt: ((typeof picture.images[0] != 'undefined') ? (picture.images[0].alt) : (hover_text ? hover_text : title))"></picture> 1158 </span> 1159 <!-- /ko --> 1160 <!-- ko if: link !== '' && link !== '#' --> 1161 <a data-bind="attr: { 'aria-label': ((typeof picture.images[0] != 'undefined') ? (picture.images[0].alt) : (hover_text ? hover_text : title)), href: link, title: hover_text ? hover_text : title, target: open_in_new_window ? '_blank' : '' }, click: $component.trackEvent.bind($data, 'click', $data.title)"> 1162 <picture data-bind="html5Picture: picture, alt: ((typeof picture.images[0] != 'undefined') ? (picture.images[0].alt) : (hover_text ? hover_text : title))"></picture> 1163 <!-- ko if: open_in_new_window --> 1164 <span class="external-link a11y-hide">Opens in new window</span> 1165 <!-- /ko --> 1166 </a> 1167 <!-- /ko --> 1168 </div> 1169 </div> 1170 <!-- /ko --> 1171 <!-- ko if: ad.location.effect === 'random' --> 1172 <div class="ads-container" aria-hidden="true" aria-live="off" data-bind="foreach: ad.campaigns"> 1173 <!-- ko if: $parent.randomSlide === $index() --> 1174 <div class="ad multi-ad" data-bind="css: css_class"> 1175 <!-- ko if: link === '' || link === '#' --> 1176 <span> 1177 <picture data-bind="html5Picture: picture, alt: ((typeof picture.images[0] != 'undefined') ? (picture.images[0].alt) : (hover_text ? hover_text : title))"></picture> 1178 </span> 1179 <!-- /ko --> 1180 <!-- ko if: link !== '' && link !== '#' --> 1181 <a data-bind="attr: { 'aria-label': ((typeof picture.images[0] != 'undefined') ? (picture.images[0].alt) : (hover_text ? hover_text : title)), href: link, title: hover_text ? hover_text : title, target: open_in_new_window ? '_blank' : '' }, click: $component.trackEvent.bind($data, 'click', $data.title)"> 1182 <picture data-bind="html5Picture: picture, alt: ((typeof picture.images[0] != 'undefined') ? (picture.images[0].alt) : (hover_text ? hover_text : title))"></picture> 1183 <!-- ko if: open_in_new_window -->
1184 <span class="external-link a11y-hide">Opens in new window</span> 1185 <!-- /ko --> 1186 </a> 1187 <!-- /ko --> 1188 </div> 1189 <!-- /ko --> 1190 </div> 1191 <!-- /ko --> 1192 <!-- /ko --> 1193 1194 <!-- ko case: ad.location.type === 'html' --> 1195 <!-- ko with: single --> 1196 <div class="ad html-ad" data-bind="css: css_class, html: html"> 1197 </div> 1198 <!-- /ko --> 1199 <!-- /ko --> 1200 1201 <!-- ko case: ad.location.type === 'icons' --> 1202 <div class="ads-container" data-bind="foreach: ad.campaigns, css:{ 'is-accessible': ad.location.accessibility_icons }"> 1203 <div class="ad icons-ad" data-bind="css: css_class"> 1204 1205 <!-- ko if: $component.ad.location.accessibility_icons --> 1206 <!-- ko if: link === '' || link === '#' --> 1207 <span class="sidearm-icon" aria-hidden="true" data-bind="css: icon"></span> 1208 <span class="icons-ad__label" data-bind="text: title"></span> 1209 <!-- /ko --> 1210 <!-- ko if: link !== '' && link !== '#' --> 1211 <a class="icons-ad__link" data-bind=" 1212 attr:{ 1213 href: link, 1214 title: hover_text ? hover_text : title, target: open_in_new_window ? '_blank' : '', 1215 'tabindex' : ko.computed(function() { 1216 var index = 1217 $parents.findIndex(function(item) { 1218 return Object.keys(item).length > 0 && item.component; 1219 }); 1220 if(index < 0) 1221 return 0; 1222 1223 var model = $parents[index]; 1224 if(model.component.name != 'main-nav') 1225 return 0; 1226 if (model.component.name === 'main-nav') 1227 return model.isMenuOpen() ? '0' : '-1'; 1228 return 0; 1229 }) 1230 }, 1231 click: $component.trackEvent.bind($data, 'click', $data.title), 1232 event: { 1233 focus: function() { 1234 var index = 1235 $parents.findIndex(function(item) { 1236 return Object.keys(item).length > 0 && item.component; 1237 }); 1238 if(index < 0) 1239 return; 1240 1241 var model = $parents[index]; 1242 if (model.component.name === 'main-nav') { 1243 model.openMenu(); 1244 } 1245 return; 1246 }, 1247 blur: function() { 1248 var index = 1249 $parents.findIndex(function(item) { 1250 return Object.keys(item).length > 0 && item.component; 1251 }); 1252 if(index < 0) 1253 return; 1254 1255 var model = $parents[index]; 1256 if (model.component.name === 'main-nav') { 1257 model.closeMenu(); 1258 } 1259 return; 1260 } 1261 }">
1262 <span class="sidearm-icon" aria-hidden="true" data-bind="css: icon"></span> 1263 <span class="icons-ad__label" data-bind="text: title"></span> 1264 <!-- ko if: open_in_new_window --> 1265 <span class="external-link a11y-hide">Opens in new window</span> 1266 <!-- /ko --> 1267 </a> 1268 <!-- /ko --> 1269 <!-- /ko --> 1270 1271 <!-- ko if: !$component.ad.location.accessibility_icons --> 1272 <!-- ko if: link === '' || link === '#' --> 1273 <span> 1274 <span data-bind="css: icon"> 1275 <span data-bind="text: title"></span> 1276 </span> 1277 </span> 1278 <!-- /ko --> 1279 <!-- ko if: link !== '' && link !== '#' --> 1280 <a data-bind="attr: { 1281 href: link, 1282 title: hover_text ? hover_text : title, 1283 target: open_in_new_window ? '_blank' : '', 1284 'tabindex' : ko.computed(function() { 1285 var index = 1286 $parents.findIndex(function(item) { 1287 return Object.keys(item).length > 0 && item.component; 1288 }); 1289 if(index < 0) 1290 return 0; 1291 1292 var model = $parents[index]; 1293 if(model.component.name != 'main-nav') 1294 return 0; 1295 if (model.component.name === 'main-nav') 1296 return model.isMenuOpen() ? '0' : '-1'; 1297 return 0; 1298 }) 1299 }, 1300 click: $component.trackEvent.bind($data, 'click', $data.title), 1301 event: { 1302 focus: function() { 1303 var index = 1304 $parents.findIndex(function(item) { 1305 return Object.keys(item).length > 0 && item.component; 1306 }); 1307 if(index < 0) 1308 return; 1309 1310 var model = $parents[index]; 1311 if (model.component.name === 'main-nav') { 1312 model.openMenu(); 1313 } 1314 return; 1315 }, 1316 blur: function() { 1317 var index = 1318 $parents.findIndex(function(item) { 1319 return Object.keys(item).length > 0 && item.component; 1320 }); 1321 if(index < 0) 1322 return; 1323 1324 var model = $parents[index]; 1325 if (model.component.name === 'main-nav') { 1326 model.closeMenu(); 1327 } 1328 return; 1329 } 1330 }"> 1331 <span data-bind="css: icon"> 1332 <span data-bind="text: title"></span> 1333 </span> 1334 <!-- ko if: open_in_new_window -->
1335 <span class="external-link a11y-hide">Opens in new window</span> 1336 <!-- /ko --> 1337 </a> 1338 <!-- /ko --> 1339 <!-- /ko --> 1340 1341 </div> 1342 </div> 1343 <!-- /ko --> 1344 1345 <!-- ko case: ad.location.type === 'dfp' --> 1346 <div data-bind='component: { 1347 name: "dfp-component", 1348 params: DFPParams 1349 }'></div> 1350 <!-- /ko --> 1351 1352 <!-- /ko --> 1353 1354<!-- /ko --></script>
1354<script type='text/html' id='template-evergreen'><div class="dfp-ad" data-bind=" attr: { id: id, 'class' : (sidearm_dfp ? 'sidearm-dfp-ad' : 'dfp-ad') }, style: { width: width() + 'px', height: height() === 0 ? 'auto' : height() + 'px', 'background-color' : window.site_in_dev_mode === 'true' ? '#ccc' : '' }, afterBind: { callback: renderAd, foreach: data }"> 1355 1356 1357</div></script>
1357<script type='text/html' id='template-navigation'><div class="component c-navigation c-navigation--main flex"> 1358 <!-- ko if: ko.observable().matchMedia("(min-width: 1025px)")--> 1359 <div class="c-navigation-desktop flex-item-1"> 1360 <ul class="c-navigation__level-1 flex" data-bind="afterBind: { fastForEach: data, callback: navOverflow }"> 1361 <!-- ko if: !isHidden() --> 1362 <li data-bind=" 1363 attr: { 1364 'class': ko.computed(function() { return class_name ? class_name + ' c-navigation__item c-navigation__item--level-1': 'c-navigation__item c-navigation__item--level-1' }) 1365 }, 1366 css: { 1367 'c-navigation__parent': items && items.length > 0, 1368 'is-open': isItemOpen() 1369 }"> 1370 <!-- ko if: url === "" || url === "#" --> 1371 <button class="c-navigation__url c-navigation__url--level-1" data-bind=" 1372 html: title, 1373 css: {'is-toggled':isItemOpen() }, 1374 click: function() { 1375 let currentTarget = event.currentTarget; 1376 let menuItems = document.querySelectorAll('.c-navigation__url--level-1'); 1377 1378 menuItems.forEach((element) => { 1379 if(!currentTarget.isSameNode(element)) { 1380 let navdata = ko.dataFor(element); 1381 navdata.closeMenuItem(); 1382 } 1383 }); 1384 1385 toggleMenuItem(); 1386 }, 1387 attr: { 1388 'aria-expanded': isItemOpen() ? 'true' : 'false', 1389 'aria-controls': (typeof title === 'function' ? title() : title).replace(/[^a-zA-Z0-9_]/g, '_') 1390 }" tabindex="0"></button> 1391 <!-- /ko --> 1392 1393 <!-- ko if: url !== "" && url !== "#" --> 1394 <a class="c-navigation__url c-navigation__url--level-1" data-bind=" 1395 html: title, 1396 attr: { 1397 href: url, target: open_in_new_window ? '_blank' : '' 1398 }, 1399 onEnter: toggleMenuItem"></a> 1400 <!-- /ko --> 1401 1402 <!-- ko if: columns.length > 0 --> 1403 <div class="c-navigation__level-2" data-bind=" 1404 css: { 'is-open' : isItemOpen() }, 1405 attr: { 1406 'aria-hidden' : isItemOpen() ? 'false' : 'true', 1407 'id': (typeof title === 'function' ? title() : title).replace(/[^a-zA-Z0-9_]/g, '_') 1408 }, 1409 onEscape:closeMenuItem"> 1410 <div class="c-navigation__level-2-inner"> 1411 <div class="flex"> 1412 <!-- ko fastForEach: columns --> 1413 <ul class="c-navigation__column reset-list" data-bind="fastForEach: items, attr: { 'aria-label': $parent.title }"> 1414 <li class="c-navigation__item c-navigation__item--level-2" data-bind="css: {'c-navigation__separator': separator, 'c-navigation__parent':items && items.length > 0}"> 1415 <!-- ko if: separator --> 1416 <span data-bind="text: title" role="heading" aria-level="3"></span> 1417 <!-- /ko --> 1418 1419 <!-- ko ifnot: separator --> 1420 <a class="c-navigation__url c-navigation__url--level-2" data-bind=" 1421 text: title, 1422 attr: { 1423 href: url, 1424 target: open_in_new_window ? '_blank' : '', 1425 'aria-label': ($parent.items[0].separator === false ? '' : $parent.items[0].title + ' ') + (sport.title !== null ? sport.title : title) + (open_in_new_window ? ', opens in new tab.' : ''), 1426 tabindex: $parents[1].isItemOpen() ? 0 : -1 1427 }, 1428 event: { 1429 focus: function() { $parents[1].openMenuItem(); }, 1430 blur: function() { $parents[1].closeMenuItem(); }, 1431 keyup: function(data, event) { 1432 if(event.key == 'Escape') { 1433 $parents[1].closeMenuItem(); 1434 let parentElement = event.currentTarget.closest('.c-navigation__item--level-1'); 1435 let focusableElement = parentElement.querySelector('.c-navigation__url--level-1'); 1436 focusableElement.focus(); 1437 } 1438 } 1439 }, 1440 css: class_name"></a> 1441 <!-- /ko --> 1442 1443 <!-- ko if: schedule_roster_news_links --> 1444 <!-- ko fastForEach: schedule_roster_news_links --> 1445 <a class="c-navigation__url c-navigation__url--level-2 c-navigation__schedule-roster-news" data-bind=" 1446 text: title, 1447 attr: { 1448 href: url, 1449 'aria-label': ($parents[1].items[0].separator === false ? '' : $parents[1].items[0].title + ' ') + $parent.title + ' ' + title + (open_in_new_window ? ', opens in new tab.' : ''), 1450 'aria-hidden': !url ? 'true' : 'false', 1451 tabindex: $parents[2].isItemOpen() ? 0 : -1 1452 }, 1453 event: { 1454 focus: function() { $parents[2].openMenuItem(); }, 1455 blur: function() { $parents[2].closeMenuItem(); }, 1456 keyup: function(data, event) { 1457 if(event.key == 'Escape') { 1458 $parents[2].closeMenuItem(); 1459 let parentElement = event.currentTarget.closest('.c-navigation__item--level-1'); 1460 let focusableElement = parentElement.querySelector('.c-navigation__url--level-1'); 1461 focusableElement.focus(); 1462 } 1463 } 1464 }, 1465 css: class_name"></a> 1466 <!-- /ko --> 1467 <!-- /ko --> 1468 1469 <!-- ko if: stats --> 1470 <a class="c-navigation__url c-navigation__url--level-2 c-navigation__stats" data-bind="attr: { 1471 href: stats.url, 1472 'aria-label': ($parents[1].items[0].separator === false ? '' : $parents[1].items[0].title + ' ') + title + ' Stats' + (open_in_new_window ? ', opens in new tab.' : ''), 1473 'aria-hidden': !url ? 'true' : 'false', 1474 tabindex: $parents[1].isItemOpen() ? 0 : -1}, 1475 event: { 1476 focus: function() { $parents[1].openMenuItem(); }, 1477 blur: function() { $parents[1].closeMenuItem(); }, 1478 keyup: function(data, event) { 1479 if(event.key == 'Escape') { 1480 $parents[1].closeMenuItem(); 1481 let parentElement = event.currentTarget.closest('.c-navigation__item--level-1'); 1482 let focusableElement = parentElement.querySelector('.c-navigation__url--level-1'); 1483 focusableElement.focus(); 1484 } 1485 } 1486 }, 1487 css: class_name">Stats</a> 1488 <!-- /ko --> 1489 1490 <!-- ko if: social_media_links --> 1491 <!-- ko fastForEach: social_media_links --> 1492 <a class="c-navigation__url c-navigation__url--level-2 c-navigation__social" data-bind=" 1493 text: title, 1494 attr: { 1495 href: url, 1496 'aria-label': ($parents[1].items[0].separator === false ? '' : $parents[1].items[0].title + ' ') + $parent.title + ' ' + title + (open_in_new_window ? ', opens in new tab.' : ''), 1497 'aria-hidden': !url ? 'true' : 'false', tabindex: $parents[2].isItemOpen() ? 0 : -1, 1498 tabindex: url ? ($parents[2].isItemOpen() ? 0 : -1) : -1 1499 }, 1500 event: { 1501 focus: function() { $parents[2].openMenuItem(); }, 1502 blur: function() { $parents[2].closeMenuItem(); }, 1503 keyup: function(data, event) { 1504 if(event.key == 'Escape') { 1505 $parents[2].closeMenuItem(); 1506 let parentElement = event.currentTarget.closest('.c-navigation__item--level-1'); 1507 let focusableElement = parentElement.querySelector('.c-navigation__url--level-1'); 1508 focusableElement.focus(); 1509 } 1510 } 1511 }, 1512 css: class_name"></a> 1513 <!-- /ko --> 1514 <!-- /ko --> 1515 </li> 1516 </ul> 1517 <!-- /ko --> 1518 <!-- ko if: id === 2 --> 1519 <slideshow-component params="{name:'nav-slideshow', count:3, extra: {slideshow_id: 6}}"></slideshow-component> 1520 <!-- /ko --> 1521 <!-- ko if: id === 3 --> 1522 <slideshow-component params="{name:'nav-slideshow', count:3, extra: {slideshow_id: 7}}"></slideshow-component> 1523 <!-- /ko --> 1524 <!-- ko if: id === 4 --> 1525 <slideshow-component params="{name:'nav-slideshow', count:3, extra: {slideshow_id: 8}}"></slideshow-component> 1526 <!-- /ko --> 1527 <!-- ko if: id === 5 --> 1528 <slideshow-component params="{name:'nav-slideshow', count:3, extra: {slideshow_id: 9}}"></slideshow-component> 1529 <!-- /ko --> 1530 <!-- ko if: id === 6 --> 1531 <slideshow-component params="{name:'nav-slideshow', count:3, extra: {slideshow_id: 10}}"></slideshow-component> 1532 <!-- /ko --> 1533 </div> 1534 1535 <!-- ko if: ad --> 1536 <div class="c-navigation__ad" data-bind="css: ad.css_class"> 1537 <a data-bind= 1538 "attr: { 1539 href: ad.link, 1540 tabindex: isItemOpen() ? 0 : -1 1541 }, 1542 event: { 1543 focus: function() { openMenuItem(); }, 1544 blur: function() { closeMenuItem(); }, 1545 keyup: function(data, event) { 1546
1546 if(event.key == 'Escape') { 1547 $component.closeMenuItem(); 1548 let parentElement = event.currentTarget.closest('.c-navigation__item--level-1'); 1549 let focusableElement = parentElement.querySelector('.c-navigation__url--level-1'); 1550 focusableElement.focus(); 1551 } 1552 } 1553 }"> 1554 <picture data-bind="html5Picture: ad.picture, alt: ad.title"></picture> 1555 </a> 1556 </div> 1557 <!-- /ko --> 1558 </div> 1559 </div> 1560 <!-- /ko --> 1561 </li> 1562 <!-- /ko --> 1563 </ul> 1564 </div> 1565 <!-- /ko --> 1566 1567 1568 <button type="button" class="c-navigation__toggle" data-bind=" 1569 click: toggleMenu, 1570 attr: {'aria-expanded': isMenuOpen() ? 'true' : 'false'}, 1571 css: {'is-toggled': isMenuOpen()}, visible: ko.observable().matchMedia('(max-width: 1024px)')() || hasHiddenItems"> 1572 <span>Menu</span> 1573 <!-- ko if: !isMenuOpen() --> 1574 <span aria-hidden="true" class="sf-menu-left sidearm-icon"></span> 1575 <span class="accessible-hide sr-only">Open</span> 1576 <!-- /ko --> 1577 <!-- ko if: isMenuOpen() --> 1578 <span aria-hidden="true" class="sf-close-minimal sidearm-icon"></span> 1579 <span class="accessible-hide sr-only">Close</span> 1580 <!-- /ko --> 1581 1582 </button> 1583 1584 <!-- ko if: hasHiddenItems() || ko.observable().matchMedia("(max-width: 1024px)") --> 1585 <div class="c-navigation-mobile"> 1586 <div class="c-navigation__offcanvas" data-bind=" 1587 css: isMenuOpen() ? 'is-open' : '', 1588 onEscape: function(){ 1589 $component.closeMenu(); 1590 document.querySelector('.c-navigation__toggle').focus(); 1591 }"> 1592 <ul class="c-navigation__level-1" data-bind="fastForEach: data"> 1593 <!-- ko if: isHidden() || ko.observable().matchMedia("(max-width: 1024px)") --> 1594 <li data-bind=" 1595 attr: { 1596 'class': ko.computed(function() { return class_name ? class_name + ' c-navigation__item c-navigation__item--level-1': 'c-navigation__item c-navigation__item--level-1' }) 1597 }, 1598 css: { 1599 'c-navigation__parent' : items.length > 0, 'is-open': isItemOpen() 1600 }"> 1601 <!-- ko if: url === "" || url === "#" --> 1602 <button class="c-navigation__url c-navigation__url--level-1" data-bind=" 1603 html: title, 1604 attr: { 1605 href: url, 1606 target: open_in_new_window ? '_blank' : '', 1607 tabindex: $parent.isMenuOpen() ? 0 : -1, 1608 'aria-expanded': isItemOpen() ? 'true' : 'false' 1609 }, 1610 click: toggleMenuItem, 1611 css: { 1612 'is-open': isItemOpen() 1613 }, 1614 event: { 1615 focus: function() { $parent.openMenu(); }, 1616 blur: function() { $parent.closeMenu(); }, 1617 keyup: function(data, event) { 1618 if(event.key == 'Escape') { 1619 $parent.closeMenu(); 1620 document.querySelector('.c-navigation__toggle').focus(); 1621 } 1622 } 1623 }"></button> 1624 <!-- /ko --> 1625 <!-- ko if: url !== "" && url !== "#" --> 1626 <a class="c-navigation__url c-navigation__url--level-1" data-bind=" 1627 html: title, 1628 css: {'is-open': isItemOpen()}, 1629 attr: { href: url, tabindex: $parent.isMenuOpen() ? 0 : -1 }, 1630 event: { 1631 focus: function() { $parent.openMenu(); }, 1632 blur: function() { $parent.closeMenu(); }, 1633 keyup: function(data, event) { 1634 if(event.key == 'Escape') { 1635 $parent.closeMenu(); 1636 document.querySelector('.c-navigation__toggle').focus(); 1637 } 1638 } 1639 }"></a> 1640 <!-- /ko --> 1641 <!-- ko if: columns.length > 0 --> 1642 <div class="c-navigation__level-2" data-bind="css: isItemOpen() ? 'is-open' : '', onEscape: closeMenuItem"> 1643 <!-- ko fastForEach: columns --> 1644 <ul data-bind="fastForEach: items, attr:{ 'aria-label': $parent.title }"> 1645 <li class="c-navigation__item c-navigation__item--level-2" data-bind="css: {'c-navigation__separator': separator}"> 1646 <!-- ko if: separator -->
1647 <span data-bind="text: title" role="heading" aria-level="3"></span> 1648 <!-- /ko --> 1649 <!-- ko ifnot: separator --> 1650 <a class="c-navigation__url c-navigation__url--level-2" data-bind=" 1651 html: title, 1652 attr: { 1653 href: url, 1654 target: open_in_new_window ? '_blank' : '', 1655 'aria-label': ($parent.items[0].separator === false ? '' : $parent.items[0].title + ' ') + title, 1656 tabindex: $parents[1].isItemOpen() ? 0 : -1 1657 }, 1658 event: { 1659 focus: function() { $parents[2].openMenu(); $parents[1].openMenuItem(); }, 1660 blur: function() { $parents[2].closeMenu(); $parents[1].closeMenuItem(); }, 1661 keyup: function(data, event) { 1662 if(event.key == 'Escape') { 1663 $parents[2].closeMenu(); 1664 $parents[1].closeMenuItem(); 1665 let parentElement = event.currentTarget.closest('.c-navigation__item--level-1'); 1666 let focusableElement = parentElement.querySelector('.c-navigation__url--level-1'); 1667 focusableElement.focus(); 1668 } 1669 } 1670 }, 1671 css: class_name"></a> 1672 <!-- /ko --> 1673 </li> 1674 </ul> 1675 <!-- /ko --> 1676 </div> 1677 <!-- /ko --> 1678 </li> 1679 <!-- /ko --> 1680 </ul> 1681 </div> 1682 </div> 1683 <!-- /ko --> 1684</div></script>
1684<script type='text/html' id='template-search'><!-- ko if: name() === 'main-search' --> 1685<div class="component c-search c-search--overlay" role="search" data-bind=" 1686 focusTrapWithin: '.c-search__overlay', 1687 css:{ 1688 'is-open': toggled() 1689 }"> 1690 <button tabindex="0" class="c-search__toggle" aria-label="Toggle search form" data-bind=" 1691 click: toggleSearch, 1692 attr: { 1693 'aria-expanded': toggled() ? 'true' : 'false', 1694 }, 1695 css: { 1696 'is-toggled' : toggled() 1697 }"> 1698 <span aria-hidden="true" class="sf-search-2 sidearm-icon"></span> 1699 </button> 1700 <div id="search-form" class="c-search__overlay" data-bind=" 1701 css:{ 1702 'is-open': toggled() 1703 }"> 1704 <fieldset> 1705 <legend class="accessible-hide">Search this website</legend> 1706 <div class="c-search__text-wrap flex relative" data-bind=" 1707 click: function(){}, 1708 clickBubble: false"> 1709 <label class="hide" for="searchInput">Search this site</label> 1710 <input id="searchInput" type="text" class="c-search__text" data-bind=" 1711 textInput: query, 1712 onEnter: search, 1713 event: { 1714 keyup: function(data, event) { 1715 if(event.key == 'Escape') { 1716 closeSearch(); 1717 setTimeout(function() { 1718 $('.c-search__toggle').focus(); 1719 }, 300); 1720 } 1721 } 1722 }" placeholder="Search..."/> 1723 <button type="submit" class="c-search__submit" data-bind=" 1724 click: search, 1725 disable: !query()" aria-label="Go Search this website">Go</button> 1726 </div> 1727 </fieldset> 1728 <button type="button" class="c-search__close" aria-label="Close search" data-bind=" 1729 event: { 1730 click: function() { 1731 closeSearch(); 1732 setTimeout(function() { 1733 $('.c-search__toggle').focus(); 1734 }, 300); 1735 }, 1736 keyup: function(data, event) { 1737 if(event.key == 'Enter') { 1738 event.preventDefault(); 1739 closeSearch(); 1740 setTimeout(function() { 1741 $('.c-search__toggle').focus(); 1742 }, 300); 1743 } 1744 1745 if(event.key == 'Escape') { 1746 closeSearch(); 1747 setTimeout(function() { 1748 $('.c-search__toggle').focus(); 1749 }, 300); 1750 } 1751 } 1752 }"> 1753 <span aria-hidden="true" class="sf-close sidearm-font"></span> 1754 </button> 1755 </div> 1756</div> 1757<!-- /ko --></script>
1757 1758
1758<script> 1759 window.preloaded_templates_are_rendering = true; 1760 1761 require(['knockout'], function (ko) { 1762 function register_custom_loader(component, vm_name, template_name) { 1763 if (document.getElementById('template-' + (template_name || component) )) { 1764 var custom_loader = { 1765 getConfig: function(name, callback) { 1766 if (name === component + '-component') { 1767 componentConfig = { 1768 template: { element: 'template-' + (template_name || component) }, 1769 viewModel: { require: 'components/' + (vm_name || component) } 1770 }; 1771 callback(componentConfig); 1772 } 1773 else { 1774 callback(null) 1775 } 1776 } 1777 }; 1778 1779 ko.components.loaders.unshift(custom_loader); 1780 } 1781 } 1782 1783 register_custom_loader('ads', 'promotions', 'promotions'); 1784 register_custom_loader('dfp', 'evergreen', 'evergreen'); 1785 1786 register_custom_loader('navigation'); 1787register_custom_loader('search'); 1788 1789 1790 window.preloaded_templates_are_rendering = false; 1791 }); 1792 </script>
1792 1793 1794 1795<div class="bjvfp55tw" style="display: none;" role="dialog" aria-label="Ad Blocker Detected" aria-modal="true"> 1796 <div class="bjvfp55tw__inner"> 1797 <div class="bjvfp55tw__body"> 1798 <div class="flex flex-align-center"> 1799 <img src="/images/logos/site/site.png?width=48" alt="Site logo" /> 1800 <div class="bjvfp55tw-modal__title">Ad Blocker Detected</div> 1801 </div> 1802 <div class="bjvfp55tw-modal__text"> 1803 <p>Thanks for visiting <a class="bjvfp55tw-modal__text-host"></a>!</p> 1804 <p>The use of software that blocks ads hinders our ability to serve you the content you came here to enjoy.</p> 1805 <p>We ask that you consider turning off your ad blocker so we can deliver you the best experience possible while you are here.</p> 1806 <p>Thank you for your support!</p> 1807 <div class="bjvfp55tw-modal__learn"> 1808 <a href="http://www.sidearmsports.com/blockers" target="_blank"><span class="sf-arrows-round-right"></span>Learn More About Ad Blockers</a> 1809 </div> 1810 </div> 1811 </div> 1812 <button type="button" class="bjvfp55tw-banner__consent text-center" aria-label="Close ad blocker detected modal">Close</button> 1813 </div> 1814</div> 1815
1816<script> 1817 var host_element = document.querySelector(".bjvfp55tw-modal__text-host"); 1818 host_element.href = window.location.href; 1819 host_element.innerText = window.location.hostname; 1820 1821 function close_banner() { 1822 var CookieDate = new Date; 1823 CookieDate.setTime(CookieDate.getTime() + 1 * 3600 * 1000 * 24); 1824 document.cookie = "sidearm-adblock-banner_consent=true; expires=\"" + CookieDate.toGMTString() + "\";"; 1825 document.querySelector(".bjvfp55tw").remove(); 1826 } 1827 1828 var consent_button = document.querySelector(".bjvfp55tw-banner__consent"); 1829 1830 consent_button.addEventListener("click", function() { close_banner(); }); 1831 1832 require(['config'], function(config) { 1833 require(['jquery', 'knockout', 'cookie', 'text'], function ($, ko, cookie, text) { 1834 $(function () { 1835 //disable check for Siteimprove scans 1836 if (navigator.userAgent.toLowerCase().indexOf('siteimprove') < 0) { 1837 1838 if (cookie.get_cookie('sidearm-adblock-banner_consent')) { 1839 return; 1840 } 1841 1842 var deferred = $.Deferred(); 1843 $.ajax({
1844 type: "HEAD", 1845 async: true, 1846 url: "/components/js/analytics.js", 1847 }).done(function(message,text,jqXHR){ 1848 deferred.resolve(); 1849 }) 1850 .fail(function(err){ 1851 show_ad_blocker_blocked_modal(); 1852 deferred.reject(); 1853 }); 1854 1855 deferred.then(function(success) { 1856 $.get('/common/templates/dfp/dfp-component-template.html') 1857 .then(function (response) { 1858 }, function (error) { 1859 show_ad_blocker_blocked_modal(); 1860 }); 1861 }, function (error) { 1862 show_ad_blocker_blocked_modal() 1863 }) 1864 .fail(function(){ 1865 show_ad_blocker_blocked_modal() 1866 }); 1867 1868 function show_ad_blocker_blocked_modal() { 1869 var modal = document.querySelector('.bjvfp55tw'); 1870 modal.style.display = 'flex'; 1871 modal.querySelector('.bjvfp55tw-banner__consent').focus(); 1872 } 1873 } 1874 }); 1875 }); 1876 }); 1877</script>
1877 1878 1879<style> 1880 .bjvfp55tw { 1881 display: flex; 1882 align-items: center; 1883 justify-content: center; 1884 position: fixed; 1885 top: 0; 1886 left: 0; 1887 width: 100%; 1888 height: 100%; 1889 z-index: 999999; 1890 padding: 24px; 1891 background-color: rgba(0, 0, 0, 0.85); 1892} 1893.bjvfp55tw__inner { 1894 background-color: white; 1895 color: #2a2b2c; 1896 width: 100%; 1897 max-width: 500px; 1898 border-radius: 2px; 1899 line-height: 1.875; 1900 font-size: 1rem; 1901 max-height: 100%; 1902 max-width: 700px; 1903} 1904.bjvfp55tw__body { 1905 padding: 24px; 1906} 1907.bjvfp55tw-modal__title { 1908 position: relative; 1909 padding-left: 24px; 1910 font-size: 1.5rem; 1911 font-weight: 900; 1912 line-height: 1; 1913} 1914.bjvfp55tw-modal__title::after { 1915 content: ''; 1916 display: block; 1917 width: 48px; 1918 height: 2px; 1919 background-color: black; 1920 margin-top: 8px; 1921} 1922.bjvfp55tw-modal__text a { 1923 color: black; 1924} 1925.bjvfp55tw-modal__learn { 1926 color: black; 1927 font-size: 1rem; 1928 font-weight: 400; 1929 line-height: 1.5rem; 1930} 1931.bjvfp55tw-modal__learn a { 1932 color: black; 1933} 1934.bjvfp55tw-modal__browsers { 1935 padding-top: 12px; 1936 margin: 0 -6px; 1937} 1938.bjvfp55tw-modal__browsers-button { 1939 flex: 1 0 auto; 1940 text-decoration: none; 1941 border-radius: 6px; 1942 background: whitesmoke; 1943 border-radius: 35px; 1944 padding: 12px; 1945 margin: 0 6px; 1946 border: 1px solid #d9d9d9; 1947 transition: .25s; 1948} 1949.bjvfp55tw-modal__browsers-button img { 1950 width: 36px; 1951 height: 36px; 1952} 1953.bjvfp55tw-modal__browsers-button:hover { 1954 background: #d9d9d9; 1955} 1956.bjvfp55tw-modal__browsers--upgrade { 1957 line-height: 1; 1958 padding: 0 12px; 1959} 1960.bjvfp55tw-modal__browsers--text { 1961 font-size: 14px; 1962 color: #2a2b2c; 1963 font-weight: 400; 1964} 1965.bjvfp55tw-modal__browsers--text span { 1966 font-size: 16px; 1967 color: black; 1968 font-weight: 700; 1969} 1970.bjvfp55tw-modal__browsers--text:last-child { 1971 padding-top: 4px; 1972} 1973.bjvfp55tw-banner__consent { 1974 -webkit-appearance: none; 1975 background-color: whitesmoke; 1976 border: 1px solid #d9d9d9; 1977 display: block; 1978 padding: 0 16px; 1979 color: black; 1980 width: 100%; 1981 margin-top: 8px; 1982 transition: .25s; 1983 line-height: 28px; 1984 height: 28px; 1985 font-size: 14px; 1986} 1987.bjvfp55tw-banner__consent:hover { 1988 background-color: black; 1989 color: white; 1990} 1991 1992</style><div style='position: fixed; left: -10000px'>
1992<script type="text/javascript"> 1993adroll_adv_id = "M7KRFBYAG5CFBHURBGU2AT"; 1994adroll_pix_id = "U4I4UWVS6NB2TLPG2M7B2E"; 1995/* OPTIONAL: provide email to improve user identification */ 1996/* adroll_email = "[email protected]"; */ 1997(function () { 1998var _onload = function(){ 1999if (document.readyState && !/loaded|complete/.test(document.readyState)){setTimeout(_onload, 10);return} 2000if (!window.__adroll_loaded){__adroll_loaded=true;setTimeout(_onload, 50);return} 2001var scr = document.createElement("script"); 2002var host = (("https:" == document.location.protocol) ? "https://s.adroll.com" : "http://a.adroll.com"); 2003scr.setAttribute('async', 'true'); 2004scr.type = "text/javascript"; 2005scr.src = host + "/j/roundtrip.js"; 2006((document.getElementsByTagName('head') || [null])[0] || 2007document.getElementsByTagName('script')[0].parentNode).appendChild(scr); 2008}; 2009if (window.addEventListener) {window.addEventListener('load', _onload, false);} 2010else {window.attachEvent('onload', _onload)} 2011}()); 2012</script>
2012</div> 2013
2013<script> 2014 document.addEventListener('click', function(e) { 2015 if (e.target && e.target.classList.contains('sidearm-accessible-slick-pause-all')) { 2016 var button = e.target, 2017 paused = button.classList.contains('sidearm-paused'), 2018 slickSliders = document.querySelectorAll('.slick-initialized'), 2019 pauseButtons = document.querySelectorAll('.sidearm-accessible-pause'), 2020 pauseButtonsText = document.querySelectorAll('.sidearm-accessible-pause-text'), 2021 jaws = button.parentElement.querySelector('.sidearm-jaws-talk-please'); 2022 2023 if (paused) { 2024 slickSliders.forEach(function(slider) { 2025 $(slider).slick('slickPlay'); 2026 $(slider).slick('slickGoTo', 0, false); 2027 }); 2028 2029 button.classList.remove('sidearm-paused'); 2030 button.textContent = 'Pause All Rotators'; 2031 jaws.textContent = 'All Rotators Playing'; 2032 2033 pauseButtonsText.forEach(function(text) { 2034 text.setAttribute('aria-live', 'off'); 2035 text.textContent = 'Pause'; 2036 text.setAttribute('aria-live', 'polite'); 2037 }); 2038 } else { 2039 slickSliders.forEach(function(slider) { 2040 $(slider).slick('slickPause'); 2041 $(slider).slick('slickGoTo', 0, false); 2042 }); 2043 2044 button.classList.add('sidearm-paused'); 2045 button.textContent = 'Play All Rotators'; 2046 jaws.textContent = 'All Rotators Paused'; 2047 2048 pauseButtonsText.forEach(function(text) { 2049 text.setAttribute('aria-live', 'off'); 2050 text.textContent = 'Play'; 2051 text.setAttribute('aria-live', 'polite'); 2052 }); 2053 } 2054 } 2055 }); 2056 </script>
2056 2057 <!-- BEGIN ControlTag for "Sidearm" -->
2058<script class="kxct" data-id="so4l4yxm2" data-timing="async" data-version="3.0" type="text/javascript"> 2059 window.Krux||((Krux=function(){Krux.q.push(arguments)}).q=[]); 2060 (function(){ 2061 var k=document.createElement('script');k.type='text/javascript';k.async=true; 2062 k.src=(location.protocol==='https:'?'https:':'http:')+'//cdn.krxd.net/controltag/so4l4yxm2.js'; 2063 var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(k,s); 2064 }()); 2065</script>
2065 2066<!-- END ControlTag --> 2067
2068<script> 2069Krux('ns:mogointeractive', 'consent:set', { 2070dc: true, 2071 al: true, 2072 tg: true, 2073 cd: false, 2074 sh: false, 2075 re: false 2076}, function(errors, body) { 2077 if (errors) { 2078 console.error(errors); 2079 } 2080}); 2081</script>
2081</body> 2082</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.