CINXE.COM
Programs & Events - Alumni - Harvard Business School
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" dir="" runat="server" __expr-val-dir="ltr"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <title>Programs & Events - Alumni - Harvard Business School</title> <!-- assets=https://webassets.hbs.edu ssl-assets=https://webassets.hbs.edu templates=https://webassets.hbs.edu/templates ssl=true--> <link rel="stylesheet" type="text/css" href="https://webassets.hbs.edu/libs/framework/1.0/css/framework-async.min.css?v=1.0"><script>var MTIProjectId='7104cb2a-976d-4c0f-803f-1a83c9190762';</script><script defer type="text/javascript" src="https://webassets.hbs.edu/libs/framework/1.0/js/mtiFontTrackingCode.js"></script><meta name="HBSSearchUrl" content="/Pages/search.aspx"><meta name="PageBuildDateTime" content="2024-11-23 10:13:21 PM on "><link rel="canonical" href="https://www.alumni.hbs.edu/events/Pages/default.aspx"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="https://webassets.hbs.edu/sites/home/favicon.ico"><script xmlns:app="http://www.hbs.edu/appnAccess/schemas" src="https://cdn-3.convertexperiments.com/js/10025085-10024876.js" type="text/javascript"></script><style xmlns:app="http://www.hbs.edu/appnAccess/schemas">.if-alumni { display: none; }.if-loggedin { display: none } .box-gray { background-color: #ebebeb; padding: 20px 20px 20px 20px; } .box-gray .field { background-color: #fff; color: black; } .msg-results.disabled{} main a[name], main *{ scroll-margin-top: 45px; } @media print { .submit-login { display: none!important; } } </style><link xmlns:app="http://www.hbs.edu/appnAccess/schemas" href="https://cdnjs.cloudflare.com/ajax/libs/tooltipster/3.3.0/css/tooltipster.min.css" rel="stylesheet"><script xmlns:app="http://www.hbs.edu/appnAccess/schemas" type="text/javascript"> window.HBSUser = {}; window.HBSUser.role = "other"; window.HBSUser.personID = ""; window.HBSUser.canMessage = ""; window.HBSUser.canMessageClass = ""; var directoryAutocompleteURL = "/alumniSearchService/rest/search/AlumniProfile/"; var InterestTopicURL = "/alumniProfileService/rest/alum/update/interest/"; var AddRemoveToNetworkURL = "/alumniProfileService/rest/myNetwork/"; </script><div class="mobile-hidden print-hidden"><a href="/Pages/site-feedback.aspx" aria-label="send feedback" class="send-feedback-link-cont"><span class="send-feedback-link"></span></a></div> <style> /* styles */ .facetctrl-results .facetctrl-isotope-results .media { margin-bottom: 28px; } #facet-navigation-mobile .facet-container-0 .facet-clear, #facet-navigation .facet-container-0 .facet-clear { padding-top: 0; } .facet-container-q .hr3, .facet-container-0 .hr3 { display: none; } .facetctrl-results .facetctrl-isotope-results .media .linear { padding-top: 0; } .facetctrl-results .media img.fluid { display: block; } .facetctrl-results .media p { margin-bottom: 12px; } .facetctrl-results .media { margin-bottom: 32px; } .facetctrl-results .inline-container * { font-size: inherit; text-transform: none; font-family: inherit; } .facetctrl-results .highlight-container .highlight { font-family: 'Trade Gothic W01 Bold 2', Arial; } .facetctrl-results .inline-container * { display: inline; } .ua-mobile .datepicker { /* fixes zoom on focus */ font-size: 16px !important; width:100px !important; } .site-facets ul { margin-top: 8px; } ul.unbulleted.site-facets li a { text-decoration: none; } ul.unbulleted.site-facets li a:hover { text-decoration: underline; } .site-facets .mu { line-height: 15px !important; /* fix pixel bounce */ } .term-info p { margin-bottom: 12px; } .facetctrl-sticky { display:none; position: fixed; width:100%; z-index: 20000; top:0; } .facetctrl-sticky.active { display:block; } .facetctrl-isotope-element { width: 228px; } .expanded-grid-framework .pattern-framework .facetctrl-isotope-element .tile .icon-play { display: none; } .expanded-grid-framework .pattern-framework .facetctrl-isotope-element .tile .icon-play.icon-play-svg { display: block!important; } .pattern-framework .facet-pattern2 .facet-list { margin-top:15px; } .pattern-framework .facet-pattern2 .facet-list li { padding-bottom:0; margin-bottom:8px; margin-top:8px; } .pattern-framework .facet-pattern2 .facet-list li .facet-link {text-indent:0;margin-left:-21px;margin-bottom:3px} .pattern-framework .facet-pattern2 .facet-list li .facet-link-icon {float:left} .pattern-framework .facet-pattern2 .facet-list li .facet-link-icon .icon-checkbox, .pattern-framework .facet-pattern2 .facet-list li .facet-link-icon .icon-checkbox-checked {position:relative;top:-2px} .pattern-framework .facet-pattern2 .facet-list li .facet-link-label {overflow:hidden} @media screen and (max-width: 650px) { .facetctrl-isotope-element { max-width: 328px; width:100%; } } /*@media screen and (min-width: 650px and max-width: 650px) { .facetctrl-isotope-element { width: 47%; } }*/ @media screen and (min-width: 650px) and (max-width: 740px) { .facetctrl-isotope-element { width: 30.6%; } } @media screen and (min-width: 740px) and (max-width: 880px) { .facetctrl-isotope-element { width: 31.1%; } } @media screen and (min-width: 880px) and (max-width: 920px) { .facetctrl-isotope-element { width: 31.4%; } } @media screen and (min-width: 920px) and (max-width: 1024px) { .facetctrl-isotope-element { width: 205px; } } @media screen and (min-width: 1024px) and (max-width: 1300px) { .facetctrl-isotope-element { width: 228px; } } @media screen and (min-width: 1300px) { .wide-container .facetctrl-isotope-element { width: 268px; } } @media screen and (min-width: 920px) and (max-width: 1220px) { .expanded-grid-framework .container .facetctrl-isotope-element { width: 195px; } } @media screen and (min-width: 1221px) { .expanded-grid-framework .container .facetctrl-isotope-element { width: 270px; } } .facetctrl-isotope-element-span4 { width: 312px; } /*@media screen and (max-width: 920px) { .search1-embedded .vrule3h, .search1-embedded .vrule6h, .search1-embedded .vrule3h {background:none;} }*/ .websearch-input { background-color: rgba(255,255,255,.5) !important; border-color:rgba(255,255,255,.7) !important; box-shadow:none; transition: all .2s linear; } .websearch-input:focus { background-color: rgba(255,255,255,.8) !important; box-shadow: 0 0 5px rgba(255,255,255,.8) !important; } .facetctrl-appended { position:relative; -webkit-animation:slidein .5s; -moz-animation:slidein .5s; -o-animation:slidein .5s; animation:slidein .5s } @-webkit-keyframes slidein{ from{top:-10px;opacity:0} to{top:0px;opacity:1} } @-moz-keyframes slidein{ from{top:-10px;opacity:0} to{top:0px;opacity:1} } @keyframes slidein{ from{top:-10px;opacity:0} to{top:0px;opacity:1} } .facetctrl-fade { transition: opacity .6s; } .facetctrl-loading .facetctrl-fade { opacity: .5; } #search1-app .rendered-visible { visibility:hidden; } #search1-app.rendered .rendered-visible { visibility:visible; } #search1-app.search1-fullscreen .container { width:100%; } #search1-app.search1-fullscreen .span3 { padding-left:24px; } #search1-app.search1-fullscreen .span9 { float: none; overflow: hidden; padding-left: 24px; padding-right: 24px; width:auto; } .ui-helper-hidden-accessible{ display:none; } .facetctrl-autocomplete-small .ui-autocomplete { position: absolute; top: 100%; left: 0; z-index: 1000; float: left; display: none; min-width: 160px; padding: 4px 0; margin: 0 0 10px 0; list-style: none; background-color: #ffffff; border-color: #ccc; border-color: rgba(0, 0, 0, 0.2); border-style: solid; border-width: 1px; -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); -webkit-background-clip: padding-box; -moz-background-clip: padding; background-clip: padding-box; *border-right-width: 2px; *border-bottom-width: 2px; } .facetctrl-autocomplete-small .ui-menu-item > a.ui-corner-all { display: block; padding: 3px 10px; clear: both; font-weight: normal; line-height: 18px; color: #555555; white-space: nowrap; text-decoration: none; width:auto; } .facetctrl-autocomplete-small .ui-menu-item { font: normal 13px/16px 'Trade Gothic W01 Roman',Arial,Helvetica,Verdana,sans-serif; } .facetctrl-autocomplete-small .ui-state-focus{ background-color: #a41034; color:#fff !important } .facetctrl-autocomplete-small ul.ui-autocomplete li { padding:0; } .facetctrl-autocomplete-small .ui-state-hover, .facetctrl-autocomplete-small .ui-state-active { color: #ffffff; text-decoration: none; background-color: #0088cc; border-radius: 0px; -webkit-border-radius: 0px; -moz-border-radius: 0px; background-image: none; } .facetctrl-autocomplete-small .ui-autocomplete .ui-menu-item .ui-state-focus { background-color: #a41034; color:white; } .facet-breadcrumb-pattern h1 { margin-bottom: 7px; } .ms-SrvMenuUI {display: none;} .facetctrl-page-list { margin:0; padding:0; } .facetctrl-page-list li { list-style-type: none; float:left; margin-right: 8px; } .facetctrl-page-list li a { background-color:#ebebeb; padding:3px 6px; text-decoration:none; } .facetctrl-page-list li a:hover { background: black; color:white !important; } #facet-navigation .facet-pattern2 .facet-control h3 { margin: 0; } .color-framework .hbsred-onhover:hover {color: #a41034 !important;} /* This was removed for this page http://authqa.hbswk.hbs.edu/Pages/browse.aspx @media screen and (max-width: 919px) and (min-width: 651px) { #search1-app .tablet-span8 { margin-left: 0; } } */ .icon-svg { background-image: none !important; } /*new for wide grid*/ .facet-search table {width: 100%;} .facet-search table td:last-child {width: 41px;} .expanded-grid-framework .cap { margin-bottom:34px !important;} .expanded-grid-framework .search-right-sidebar .img-container-16x9 img{width:100% !important; height:100% !important;} @media (min-width:920px){ .expanded-grid-framework .facetctrl-ajax-classes>*{margin-left:20px} .expanded-grid-framework .facetctrl-ajax-classes .facetctrl-results .media-list9 div.media div.row div.span7 {margin-right:-20px;} .expanded-grid-framework .facetctrl-ajax-classes>table,.expanded-grid-framework .facetctrl-ajax-classes>.ms-rtestate-field{margin-left:0} .expanded-grid-framework .facetctrl-ajax-classes>table>*,.expanded-grid-framework .facetctrl-ajax-classes>.ms-rtestate-field>*{margin-left:20px} .expanded-grid-framework .facetctrl-ajax-classes *[webpartid]>*,.expanded-grid-framework .facetctrl-ajax-classes .ms-WPBody>*{margin-left:20px} .expanded-grid-framework .facetctrl-ajax-classes *[webpartid]>.hr,.expanded-grid-framework .facetctrl-ajax-classes .ms-WPBody>.hr{margin-left:0} .expanded-grid-framework .facetctrl-ajax-classes .ms-rtestate-read{display:block} .expanded-grid-framework .facetctrl-ajax-classes .hr,.expanded-grid-framework .facetctrl-ajax-classes .hr4{margin-left:0} .expanded-grid-framework .facetctrl-ajax-classes .facetctrl-results .vrule3h { background-position: 281px 0; } .expanded-grid-framework .facetctrl-ajax-classes .facetctrl-results .vrule6h { background-position: 576px 0; } @media screen and (min-width: 920px) and (max-width: 1220px) { .expanded-grid-framework .facetctrl-ajax-classes .facetctrl-results .vrule3h { background-position: 206px 0; } .expanded-grid-framework .facetctrl-ajax-classes .facetctrl-results .vrule6h { background-position: 425px 0; } } } /*Accessibility skip-links*/ .skipto.hideme:focus{ left: 0px; top: 0px; background-color: white; padding: 6px; width: auto; height: auto; position:relative; }</style><script> // scripts /* ---------------------------------------------- * * Facet DateTime * * ---------------------------------------------- */ function FacetDate(args) { this.disabled = false; for (key in args) { this[key] = args[key]; } } FacetDate.prototype.render = function() { var SearchDateRange = "Search Date Range"; var to = "TO"; var h = this.facetCtrl.facetStartHTML(this); var today = new Date(); var facetKey = this.key; var facetState = this.facetCtrl.getState(this.key); var facetData = this.facetCtrl.getData(this.key); var fromdate = this.minDate || (today.getMonth() + 1) + '/' + today.getDate() + '/' + (today.getFullYear() - 3) var fromMinDate = fromdate; var todate = this.maxDate || (today.getMonth() + 1) + '/' + today.getDate() + '/' + today.getFullYear() var maxToDate = todate; if (facetData && facetData.length > 0) { fromdate = facetData[0].breadcrumb.split(' - ')[0] todate = facetData[0].breadcrumb.split(' - ')[1] } if (this.datePicker) { h += '<div>' h += '<div class="datepicker-container-inline"></div>' h += '<div class="shim8"></div>'; h += '</div>'; } else { h += '<div>' h += '<div class="shim12"></div>'; h += '<div class="datepicker-container" style="float:left"><input name="startdate" aria-label="Start Date" type="text" class="field date-range" data-minDate="'+fromMinDate+'" value="'+fromdate +'" placeholder="mm/dd/yyyy" data-mask="date" style="width: 81px;padding-left: 7px;font-size: 12px; padding-right: 0px;" /><a href="#skipStartDate" class="link-skipdates hideme skipto">Skip start date picker</a></div> '; h += '<div class="mu" style="padding:8px 5px;float:left;">' + to + '</div>'; h += '<div class="datepicker-container" style="float:left"><input name="enddate" id="skipStartDate" aria-label="End Date" type="text" class="field date-range" data-maxDate="'+ maxToDate +'" value="'+todate +'" placeholder="mm/dd/yyyy" data-mask="date" style="width: 81px;padding-left: 7px;font-size: 12px; padding-right: 0px;" /><a href="#skipEndDate" class="link-skipdates hideme skipto">Skip end date picker</a></div>'; h += '<div class="clear"></div>'; h += '<div class="shim16"></div> <input id="skipEndDate" type="button" class="btn-submit facetctrl-ajax-date" value="' + SearchDateRange + '" />'; h += '<div class="shim8"></div>'; h += '</div>'; } h += this.facetCtrl.facetEndHTML(this.label,this.key,this.toggleOption); return h; } FacetDate.prototype.disable = function(){ this.disabled = true; } FacetDate.prototype.enable = function(){ this.disabled = false; } /* Test */ FacetDate.prototype.bindEvents = function(){ var self = this; self.facetCtrl.jQuery('.facet-name-'+this.key).find('input.date-range').keypress(function(e) { if(e.which == 13) { self.facetCtrl.jQuery('.facet-name-'+self.key).find(".facetctrl-ajax-date").click() return false; } else { return true; } }); this.facetCtrl.jQuery('.facet-name-'+this.key).on("click","input.facetctrl-ajax-date",function(){ var fromDate = $(this).parent().find("input[name='startdate']").val() != "" ? $(this).parent().find("input[name='startdate']").val() : self.minDate; var toDate = $(this).parent().find("input[name='enddate']").val() != "" ? $(this).parent().find("input[name='enddate']").val() : self.maxDate; if(datevalidation(fromDate,toDate)) { var from = new Date(fromDate); var to = new Date(toDate); var qstr = from.getFullYear() + '-' + (from.getMonth() + 1) + '-' + from.getDate() + 'TO' + to.getFullYear() + '-' + (to.getMonth() + 1) + '-' + to.getDate(); var href = self.facetCtrl.setFilterHref(self.key,qstr); self.facetCtrl.history.pushState(null, null, href); if ($(this).parents('.facetctrl-sticky-target').length) { self.facetCtrl.closeFacets = true; } } }); function datevalidation(objFromDate,objToDate) { var date_regex = /^(0?[1-9]|1[0-2])\/(0?[1-9]|1\d|2\d|3[01])\/(19|20)\d{2}$/ ; if (!date_regex.test(objFromDate) && objFromDate.length) { alert(objFromDate + " is not valid date. Please enter valid date."); return false; } if (!date_regex.test(objToDate) && objToDate.length) { alert(objToDate + " is not valid date. Please enter valid date."); return false; } if (!objFromDate.length && !objToDate.length) { return false; } if (!objFromDate.length || !objToDate.length) { return true; } var FromDate = new Date(objFromDate); var ToDate = new Date(objToDate); var valCurDate = new Date(); valCurDate = valCurDate.getMonth()+1 + "/" + valCurDate.getDate() + "/" + valCurDate.getYear(); var CurDate = new Date(valCurDate); if(FromDate > ToDate) { alert(objFromDate+ " should be less than " + objToDate); return false; } return true; } } /* ---------------------------------------------- * * Facet BreadcrumbOnly * * ---------------------------------------------- */ function FacetBreadcrumbOnly(args) { this.disabled = false; for (key in args) { this[key] = args[key]; } } FacetBreadcrumbOnly.prototype.render = function() { return ''; } FacetBreadcrumbOnly.prototype.disable = function(){ this.disabled = true; } FacetBreadcrumbOnly.prototype.enable = function(){ this.disabled = false; } FacetBreadcrumbOnly.prototype.bindEvents = function(){ } /* ---------------------------------------------- * * Facet Search * * ---------------------------------------------- */ function FacetSearch(args) { this.disabled = false; for (key in args) { this[key] = args[key]; } } FacetSearch.prototype.render = function() { var facetKey = this.key; var facetState = this.facetCtrl.getState(facetKey); var query = ''; for (var key in facetState) { query += key; } var hasQuery = document.location.search != '' if (document.location.search == '?_es=1') hasQuery = false; if (this.searchWithin && hasQuery) query = ''; var label = this.label || "Search"; var h = '<div class="facet-control facet-search facet-name-' + this.key + '"><table><tr>'; var auto = this.autocomplete ? 'facetctrl-autocomplete' : ''; var typeahead = this.typeaheadPrefetch ? ' typeahead-container ' : ''; var typeaheadPrefetch = this.typeaheadPrefetch ? ' data-typeahead-prefetch="'+this.typeaheadPrefetch+'" ' : ''; h += '<td class="'+typeahead+'"'+typeaheadPrefetch+'><input type="text" name="q" autocomplete="on" maxlength="50" placeholder="" aria-label="Search text" style="height:38px" class="field facetctrl-ajax-textq '+auto+'" value="' + decodeURI(query).replace(/"/g,'"') + '" /><div class="facetctrl-autocomplete-container" style="position:absolute"></div></td> '; h += '<td><button type="submit" style="font-size:13px;height:38px" class="btn-submit facetctrl-ajax-search" value="Search" aria-label="Search this page"><span class="icon-search-white"></span></button></td>'; h += '</tr></table>'; if (this.advanced){ h += '<div class="nu" style="margin-bottom:-10px;margin-top:16px"><a href="#" class="facetctrl-adv-search">+ Advanced Search</a></div>' } if (this.searchWithin && hasQuery){ h += '<div role="radiogroup" aria-label="search options">'; if (this.searchWithinNew) { h += '<label class="field-radio nu" style="margin-top:12px;display:block;"><input name="q-option" checked="checked" value="new" type="radio" role="radio"><span class="field-radio-btn" style="margin-right:7px;"></span>New Search</label>' h += '<label class="field-radio nu" style="margin-top:6px;margin-bottom:-8px;display:block;"><input name="q-option" value="within" type="radio" role="radio"><span class="field-radio-btn" style="margin-right:7px;"></span>Search Within Results</label>' } else { h += '<label class="field-radio nu" style="margin-top:12px;display:block;"><input name="q-option" value="within" checked="checked" type="radio" role="radio"><span class="field-radio-btn" style="margin-right:7px;"></span>Search Within Results</label>' h += '<label class="field-radio nu" style="margin-top:6px;margin-bottom:-8px;display:block;"><input name="q-option" value="new" type="radio" role="radio"><span class="field-radio-btn" style="margin-right:7px;"></span>New Search</label>' } h += '</div>'; } h += '</div>' return h; } FacetSearch.prototype.disable = function(){ this.disabled = true; } FacetSearch.prototype.enable = function(){ this.disabled = false; } FacetSearch.prototype.bindEvents = function(){ var self = this; var facetKey = self.key; var $facet = this.facetCtrl.jQuery('.facet-name-'+facetKey); $('.facetctrl-ajax-textq',$facet).keypress(function(e) { if(e.which == 13) { var selectedVal = $facet.find('input.facetctrl-ajax-textq').val(); var href = ''; if ($("input:radio[name='q-option']:checked",$facet).val() == 'within') { href = self.facetCtrl.addFilterHref('q',selectedVal); } else { href = '?q='+encodeURIComponent(selectedVal); } self.facetCtrl.history.pushState(null, null, href); $(this).blur(); return false; } else { return true; } }); $facet.on("click",".facetctrl-adv-search",function(){ $(self.facetCtrl.container).find(".facetctrl-adv-search-container .toggle-button").eq(0).click() return false; }) $facet.on('select','.typeahead-container',function(){ $facet.find(".facetctrl-ajax-search").trigger('click') }) $facet.on("click",".facetctrl-ajax-search",function(){ if ($(this).parents('.facetctrl-sticky-target').length) { self.facetCtrl.closeFacets = true; } var selectedVal = $facet.find('input.facetctrl-ajax-textq').val(); var href = ''; if ($("input:radio[name='q-option']:checked",$facet).val() == 'within') { href = self.facetCtrl.addFilterHref('q',selectedVal); } else { href = '?q='+encodeURIComponent(selectedVal) } if (self.facetCtrl.ajax) { self.facetCtrl.history.pushState(null, null, document.location.pathname + href); } else { document.location.href = href; } return false; }); } /* ---------------------------------------------- * * Subsets List * * ---------------------------------------------- */ function SubsetsList(args) { this.disabled = false; this.moreExpanded = false; for (key in args) { this[key] = args[key]; } } SubsetsList.prototype.render = function() { return 'works'; } SubsetsList.prototype.bindEvents = function(){ } /* ---------------------------------------------- * * Facet List * * ---------------------------------------------- */ function FacetList(args) { this.disabled = false; this.moreExpanded = false; for (key in args) { this[key] = args[key]; } } FacetList.prototype.render = function(args) { var args = args || {}; var facetData = this.facetCtrl.getData(this.key); var facetState = this.facetCtrl.getState(this.key); this.facetState = this.facetCtrl.getState(this.key); if (facetData.length == 0 && !this.deferLoad) return ''; var h = this.facetCtrl.facetStartHTML(this); if (args.simple) h = ''; var tree = this.makeDataTree(facetState,facetData); if (facetData.length > 0) { h += this.recursiveRender(0,facetState,facetData,tree,undefined,args); } if (!args.simple) { h += this.facetCtrl.facetEndHTML(this.label,this.key,this.toggleOption); } return h; } FacetList.prototype.makeDataTree = function(facetState,facetData) { var tree = {}; tree[undefined] = {}; tree[undefined].children = []; tree[undefined].seenChildren = {}; for (var i = 0; i < facetData.length; i++) { var v = facetData[i]; v.param = v.param || v.id; if (this.labelfn) {v.label = this.labelfn(v.label,v,0)} var termID = v.id; var termParent = v.parentID || undefined; if (!tree[termParent]) { tree[termParent] = {}; tree[termParent].children = []; tree[termParent].seenChildren = {}; } if (!tree[termID]) { tree[termID] = {}; tree[termID].children = []; tree[termID].seenChildren = {}; } if (!tree[termParent].seenChildren[termID]) { tree[termParent].seenChildren[termID] = 1; tree[termParent].children.push(termID); if (facetState[v.param]) { tree[termID].checked = true; } tree[termID].node = v; } } // mark checks on parent terms for (var j = 0;j<4;j++) { for (var i in tree) { if (!tree[i].node || !tree[i].node.parentID) continue; var parent = tree[i].node.parentID; if (tree[i].checked || tree[i].softchecked) { tree[parent].softchecked = true; } } } // if I am checked, add to my parent checked count for (var i in tree) { if (tree[i].checked) { var parent = tree[i].node.parentID; if (parent) { tree[parent].checkedChildren = tree[parent].checkedChildren ? (tree[parent].checkedChildren + 1) : 1; } } } return tree; } FacetList.prototype.renderAllButton = function(facetState,facetData) { var h = ''; if (this.displayAllButton) { var label = this.allLabel || "All"; if (!this.facetCtrl.jQuery.isEmptyObject(facetState)) { var href = this.facetCtrl.removeFilterHref(this.key); h += '<li class="facetlist-all"><a class="ink mu facetctrl-ajax-link facet-link" href="'+href+'"><div class="facet-link-icon">'+this.facetCtrl.getIcon('checkbox',label)+'</div><div class="facet-link-label">'+label+'</div></a></li>'; } else { h += '<li class="facetlist-all"><span class="ink mu inactive facet-link"><div class="facet-link-icon">'+this.facetCtrl.getIcon('checkbox-checked',label)+'</div><div class="facet-link-label">'+label+'</div></span></li>'; } } return h; } FacetList.prototype.disable = function(){ this.disabled = true; } FacetList.prototype.enable = function(){ this.disabled = false; } FacetList.prototype.bindEvents = function(){ var self = this; // change the icon if (this.facetCtrl.ajax) { this.facetCtrl.jQuery('.facet-name-'+this.key).on("icontoggle","a.facetctrl-ajax-link",function(){ if (self.facetCtrl.isLoading()) { return false; } if ($(this).parent().hasClass('facetlist-all')) return; var link = $(this); link.removeClass('checked'); $("span",this).each(function(){ if ($(this).hasClass('icon-checkbox-checked')) { $(this).replaceWith(self.facetCtrl.getIcon('checkbox','')) link.addClass('checked'); } else if ($(this).hasClass('icon-checkbox')) { $(this).replaceWith(self.facetCtrl.getIcon('checkbox-checked','')) link.addClass('checked'); } }); }); } this.facetCtrl.jQuery('.facet-name-'+this.key).on("click",".default-more a",function(){ $(this).parent().hide(); var $hidden = $(this).parent().parent().find('li:hidden') $hidden.show(); $hidden.eq(0).find('a').focus(); self.moreExpanded = true; return false; }) this.facetCtrl.jQuery('.facet-name-'+this.key).on("click",".az-more a",function(){ var h = ''; h += '<div id="az-results">Loading</div>' window.dlg = new framework.Dialog({ body: h, animation: 'slidedown', title: self.label, width: '905px' }); window.dlg.open(); framework.progress.start(); $.ajax({ url: '?' + document.location.search.replace('?','') + '&_autocomplete=1&step=9999&facet='+self.key, dataType: 'json', contentType: 'application/json; charset=utf-8', success: function(data, status, resp) { var h = '<div class="facet-pattern2 nu"><ul class="facet-list" style="padding:0;float:left;">'; data = data.sort(function(a,b){ if (a.t < b.t) return -1; return 1; }) var checked = {}; for (var j = 0;j<self.facetCtrl.parsedFacetState.length;j++) { var d = self.facetCtrl.parsedFacetState[j]; var facetKey = d[0]; var facetValue = d[1]; if (facetKey == self.key) { checked[facetValue] = 1; } } var num = 0; for (var i = 0;i<data.length;i++){ var d = data[i]; if (checked[d.t]) { var href = self.facetCtrl.removeFilterHref(self.key,d.t); h += '<li style="float:left;width:30%;margin-left:24px;box-sizing:border-box;"><a href="'+href+'" class="facetctrl-ajax-link ink add-val">' + this.facetCtrl.getIcon('checkbox-checked','') + d.t + ' ('+d.c+')</a></li>' } else { var href = self.facetCtrl.addFilterHref(self.key,d.t); h += '<li style="float:left;width:30%;margin-left:24px;box-sizing:border-box;"><a href="'+href+'" class="facetctrl-ajax-link ink add-val">' + this.facetCtrl.getIcon('checkbox','') + d.t + ' ('+d.c+')</a></li>' } } h += '</ul></div><div class="clear"></div><br/>'; $("#az-results").html(h); framework.progress.done(); } }); return false; }) this.facetCtrl.jQuery('.facet-name-'+this.key).on("click","input.facetctrl-ajax-date",function(){ var fromDate = $(this).parent().find("input[name='startdate']").val(); var toDate = $(this).parent().find("input[name='enddate']").val(); if (fromDate && toDate) { var from = new Date(fromDate); var to = new Date(toDate); var qstr = from.getFullYear() + '-' + (from.getMonth() + 1) + '-' + from.getDate() + 'TO' + to.getFullYear() + '-' + (to.getMonth() + 1) + '-' + to.getDate(); var href = self.facetCtrl.setFilterHref(self.key,qstr); self.facetCtrl.history.pushState(null, null, href); } }); } FacetList.prototype.recursiveRender = function(depth,facetState,facetData,tree,parent,args){ var h = ''; var self = this; var children = tree[parent].children; var displayZeros = (typeof this.displayZeros != 'undefined') ? this.displayZeros : true; if (!parent) { if (self.singleSelect) { h += '<ul class="facet-nav facet-radio-buttons">'; } else { h += '<ul class="facet-list">'; } h += this.renderAllButton(facetState,facetData); } else { h += '<ul>' if (typeof this.facetHeaders === 'function') h += this.facetHeaders(depth); } if (this.sortfn){ children.sort(function(a,b){ var nodea = tree[a].node; var nodeb = tree[b].node; return self.sortfn(nodea,nodeb); }); } else if (this.sort == 'Alpha') children.sort(function(a,b){ // if it is a set of numbers, then sort naturally, else sort alphabetically var nodea = tree[a].node.label.toLowerCase(); var nodeb = tree[b].node.label.toLowerCase(); var ai = parseInt(nodea); var bi = parseInt(nodeb); if (isNaN(ai) || isNaN(bi)) { if(nodea < nodeb) return -1; if(nodea > nodeb) return 1; return 0; } else { if(ai < bi) return -1; if(ai > bi) return 1; return 0; } }) var hasCheckedChild = false; for (var i = 0; i < children.length; i++) { var childID = children[i]; if (tree[childID].checked == true || tree[childID].softchecked == true) { hasCheckedChild = true; } } var hasMore = false; var childrenCount = 0; for (var i = 0; i < children.length; i++) { var childID = children[i]; if (!childID) continue; var node = tree[childID].node; var safeId = this.key + childID.replace('"','\"'); var liStyle = ' data-term-id="'+safeId+'" data-term-count="'+node.count+'"'; if (!args.simple && this.moreLimit && childrenCount > (this.moreLimit - 1) && !tree[childID].checked && depth == 0 && !self.moreExpanded && (this.moreStyle != 'Default' || !hasCheckedChild)) { liStyle += ' style="display:none"'; hasMore = true; } if ((node.count > 0 && !displayZeros) || displayZeros) childrenCount += 1; // single select if (node['class'] == 'custom-date') { var fromval = ''; var toval = ''; for (var key in this.facetState) { if (key.indexOf('TO') > -1) { var from = new Date(key.split('TO')[0]); var to = new Date(key.split('TO')[1]); fromval = (from.getMonth() + 1) + '/' + from.getDate() + '/' + from.getFullYear() + '' + (from.getMonth() + 1) + '-' + from.getDate() toval = (to.getMonth() + 1) + '/' + to.getDate() + '/' + to.getFullYear() + '' + (to.getMonth() + 1) + '-' + to.getDate() // + 'TO' + to.getFullYear() + '-' + (to.getMonth() + 1) + '-' + to.getDate(); } } h += '<li class="toggle-container"><a href="#" class="toggle-button ink">'+node.label + '</a>'; h += '<div class="toggle-show">' h += '<div class="shim12"></div>'; //h += '<input name="startdate" type="text" class="field" data-mask="date" placeholder="mm/dd/yyyy" value="'+fromval+'" style="width: 84px;padding-left: 7px;font-size: 13px; padding-right: 0px;" /> '; //h += '<span class="mu" style="padding-left:2px;padding-right:5px;">TO</span>' //h += '<input name="enddate" type="text" class="field" data-mask="date" placeholder="mm/dd/yyyy" value="'+toval+'"style="width: 84px;padding-left: 7px;font-size: 13px; padding-right: 0px;" />'; h += '<div class="datepicker-container" style="float:left"><input name="startdate" type="text" class="field date-range" value="'+fromval +'" placeholder="mm/dd/yyyy" data-mask="date" style="width: 81px;padding-left: 7px;font-size: 12px; padding-right: 0px;" aria-label="Start Date" /></div> '; h += '<div class="mu" style="padding:8px 5px;float:left;">TO</div>'; h += '<div class="datepicker-container" style="float:left"><input name="enddate" type="text" class="field date-range" value="'+toval +'" placeholder="mm/dd/yyyy" data-mask="date" style="width: 81px;padding-left: 7px;font-size: 12px; padding-right: 0px;" aria-label="End Date" /></div>'; h += '<div class="clear"></div>'; h += '<div class="shim16"></div>'; h += '<input type="button" class="btn-submit facetctrl-ajax-date" value="Search Date Range" />'; h += '<div class="shim8"></div>'; h += '</div></li>'; } else if (self.singleSelect && (node.count > 0 || self.alwaysActive)) { var facetHref = this.facetCtrl.removeFilterHref(this.key); facetHref = this.facetCtrl.addFilterHref(this.key,node.param,facetHref); var color = tree[childID].checked == true ? 'mu ink' : 'ink' h += '<li'+liStyle+'><a href="'+facetHref+'" class="'+color+' facetctrl-ajax-link">'+node.label; if (this.displayCounts) h += this.facetCtrl.formatCount(node); h += '</a>'; if (tree[childID].checked || tree[childID].softchecked == true) { h += this.recursiveRender(depth+1,facetState,facetData,tree,node.id,args); } h += '</li>'; // disabled single select } else if (self.singleSelect) { var facetHref = this.facetCtrl.removeFilterHref(this.key); facetHref = this.facetCtrl.addFilterHref(this.key,node.param,facetHref); var color = tree[childID].checked == true ? 'ink' : 'ink' h += '<li'+liStyle+' class="facet-disabled"><a href="'+facetHref+'" class="'+color+' facetctrl-ajax-link">'+node.label; if (this.displayCounts) h += this.facetCtrl.formatCount(node); h += '</a>'; h += '</li>'; } else if ((tree[childID].checked == true && node.count > 0) || (tree[childID].checked == true && node.count == 0 && displayZeros)) { var facetHref = this.facetCtrl.removeFilterHref(this.key,node.param); facetHref = this.removeChildLinks(node.id,facetHref,facetData); // if there is a parent, and no siblings are selected if (node.termParent) { facetHref = this.facetCtrl.addFilterHref(this.key,node.termParent,facetHref); } if (this.href) facetHref = this.href(facetHref); h += '<li'+liStyle+'><a class="ink nu facetctrl-ajax-link checked facet-link" href="'+facetHref+'" rel="nofollow"><div class="facet-link-icon">'+this.facetCtrl.getIcon('checkbox-checked', node.label)+'</div><div class="facet-link-label">'+node.label; if (this.displayCounts) h += this.facetCtrl.formatCount(node); h += '</div></a>'; h += this.recursiveRender(depth+1,facetState,facetData,tree,node.id,args); h += '</li>'; } else if (tree[childID].softchecked == true) { // parent of checked elements var facetHref = this.facetCtrl.addFilterHref(this.key,node.param); facetHref = this.removeChildLinks(node.id,facetHref,facetData); if (this.href) facetHref = this.href(facetHref); h += '<li'+liStyle+'><a class="ink nu facetctrl-ajax-link softchecked facet-link" href="'+facetHref+'" rel="nofollow"><div class="facet-link-icon">'+this.facetCtrl.getIcon('checkbox', node.label)+'</div><div class="facet-link-label">'+node.label; if (this.displayCounts) h += this.facetCtrl.formatCount(node); h += '</div></a>'; h += this.recursiveRender(depth+1,facetState,facetData,tree,node.id,args); h += '</li>'; } else if (node.count == 0 && displayZeros) { // disabled h += '<li'+liStyle+' class="facet-disabled"><a class="ink nu facet-link" href="#"><div class="facet-link-icon">'+this.facetCtrl.getIcon('checkbox', node.label)+'</div><div class="facet-link-label">'+node.label; if (this.displayCounts) h += this.facetCtrl.formatCount(node); h += '</div></a>'; h += '</li>'; } else if (node.count > 0 || (node.count == 0 && displayZeros)) { // a normal link var facetHref = this.facetCtrl.addFilterHref(this.key,node.param); if (this.multiple == false) facetHref = this.facetCtrl.setFilterHref(this.key,node.param); facetHref = this.removeParentLinks(node.parentID,facetHref,facetData); if (this.href) facetHref = this.href(facetHref); h += '<li'+liStyle+'><a class="ink nu facetctrl-ajax-link facet-link" href="'+facetHref+'" rel="nofollow"><div class="facet-link-icon">'+this.facetCtrl.getIcon('checkbox', node.label)+'</div><div class="facet-link-label">'+node.label; if (this.displayCounts) h += this.facetCtrl.formatCount(node); h += '</div></a>'; h += '</li>'; } } if (h == '<ul>') return ''; if (this.links && this.links.length > 0) { for (var i = 0;i<this.links.length;i++) { var html = this.links[i]; h += '<li class="text-link"><a href="'; h += html.link + '" class="' h += html.class + '">'; h += html.text + '</a></li>'; } } h += '</ul>'; if (this.addValue) { h += '<div style="margin: 3px 0 0 1px;" class="toggle-container"><a href="#" class="ash toggle-button toggle-hide">+ Add</a><input type="text" class="toggle-show toggle-focus facetctrl-autocomplete" data-facet="'+this.key+'"/><div class="facetctrl-autocomplete-container facetctrl-autocomplete-small" style="position:absolute"></div></div>'; } if (hasMore && this.moreStyle == 'Default') { h += '<div class="more default-more" style="margin: 8px 0 8px"><span class="txt-arrow" aria-hidden="true">→</span> <a href="#" role="button" title="Load More '+this.label+' Filters">'+ (this.moreText || 'More') +'</a></div>'; } if (hasMore && this.moreStyle == 'AZList') { h += '<div class="more az-more" style="margin: 8px 0 8px"><span class="txt-arrow" aria-hidden="true">→</span> <a href="#" role="button" title="Load More '+this.label+' Filters">'+ (this.moreText || 'More') +'</a></div>'; } return h; } FacetList.prototype.removeChildLinks = function(parentTermID,href,facetData){ for (var i = 0; i < facetData.length; i++) { var v = facetData[i]; var termID = v.id; var termParent = v.parentID; if (termParent == parentTermID) { href = this.facetCtrl.removeFilterHref(this.key,v.param || v.id,href); href = this.removeChildLinks(termID,href,facetData); } } return href; } FacetList.prototype.removeParentLinks = function(parentTermID,href,facetData){ if (!parentTermID) return href; href = this.facetCtrl.removeFilterHref(this.key,parentTermID,href); return href; } /* ---------------------------------------------- * * Facet AZList * * ---------------------------------------------- */ function FacetAZList(args) { for (key in args) { this[key] = args[key]; } } FacetAZList.prototype.render = function() { var h = this.facetCtrl.facetStartHTML(this); var facetKey = this.key; if (this.facetCtrl.getData(this.key).length > 0) { h += '<div class="az-list" role="group" aria-label="Filter by first letter for ' + this.label+ '">'; var letters = "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z".split(' '); for (var i = 0; i < letters.length; i++) { var l = letters[i]; if (this.hasAZListResults(l)) { h += '<a href="#" role="button" aria-label="Letter '+l+' - Filter for ' + this.label + '" class="letter" data-letter="'+l+'" data-facet="'+facetKey+'">'+l+'</a>'; } else { h += '<a class="disabled" role="button" aria-label="Letter '+l+' - Filter for ' + this.label + '" data-letter="'+l+'" data-facet="'+facetKey+'">'+l+'</a>'; } } h += '</div>'; h += '<div class="clear"></div>' h += '<div class="az-results"></div>'; h += this.facetCtrl.facetEndHTML(this.label,this.key,this.toggleOption); return h; } return ''; } FacetAZList.prototype.hasAZListResults = function(letter) { var facetData = this.facetCtrl.getData(this.key); var displayZeros = (typeof this.displayZeros != 'undefined') ? this.displayZeros : false; for (var i = 0; i < facetData.length; i++) { var v = facetData[i]; if (v.label.toLowerCase().indexOf(letter.toLowerCase()) == 0 && (v.count > 0 || displayZeros)) { return true; } } return false; } FacetAZList.prototype.renderAZListResults = function(letter) { var container = this.facetCtrl.jQuery('.facet-name-'+this.key).find('.az-results'); var h = ''; var facetData = this.facetCtrl.getData(this.key); facetData = facetData.sort(function(a,b){ if (a.label < b.label) return -1; return 1; }) var facetState = this.facetCtrl.getState(this.key); var displayZeros = (typeof this.displayZeros != 'undefined') ? this.displayZeros : false; h += '<br/><ul class="unbulleted">'; for (var i = 0; i < facetData.length; i++) { var v = facetData[i]; var termLabel = v.label; var termID = v.id; var count = ''; if (this.displayCounts) count += this.facetCtrl.formatCount(v); if (termLabel.toLowerCase().indexOf(letter.toLowerCase()) == 0) { if (facetState[termID] == true && v.count > 0) { var href = this.facetCtrl.removeFilterHref(this.key,termID); h += '<li><a class="nu ash facetctrl-ajax-link" href="'+href+'" rel="nofollow" role="button">'+termLabel+count+'</a></li>'; } else if (facetState[termID] == true && displayZeros) { var href = this.facetCtrl.removeFilterHref(this.key,termID); h += '<li class="facet-disabled">'+termLabel+count+'</li>'; } else if (v.count > 0) { var href = this.facetCtrl.addFilterHref(this.key,termID); h += '<li><a class="nu ink facetctrl-ajax-link" href="'+href+'" rel="nofollow" role="button">'+termLabel+count+'</a></li>'; } else if (displayZeros) { var href = this.facetCtrl.addFilterHref(this.key,termID); h += '<li class="facet-disabled">'+termLabel+'</li>'; } } } h += '</ul>' container.html(h); } FacetAZList.prototype.bindEvents = function(){ var self = this; this.facetCtrl.jQuery('.facet-name-'+this.key).on("click","a.letter",function(){ $(this).parent().find(".active").removeClass("active"); $(this).addClass("active"); self.renderAZListResults($(this).data('letter')); return false; }); var facetData = this.facetCtrl.getData(this.key); var facetState = this.facetCtrl.getState(this.key); if (facetState) { for (var key in facetState) { for (var i = 0; i < facetData.length; i++) { var v = facetData[i]; var termLabel = v.label; var termID = v.id; var letter = termLabel.toUpperCase().substring(0,1); if (termID == key) { this.facetCtrl.jQuery('.facet-name-'+this.key).find("a.letter[data-letter='"+letter+"']").click();; } } } } } /* ---------------------------------------------- * * Facet Select * * ---------------------------------------------- */ function FacetSelect(args) { this.disabled = false; for (key in args) { this[key] = args[key]; } } FacetSelect.prototype.render = function() { var h = this.facetCtrl.facetStartHTML(this); var id = this.facetCtrl.newGuid() h += '<div class="row"><div class="span1 mu" style="margin-top:5px;margin-bottom:5px;"><label for="'+id+'">' + this.selectLabel + "</label></div><div class='span2'>" h += '<div class="field-select2 nu field-select2-mini">'; h += '<select id="'+id+'">'; var facetState = this.facetCtrl.getState(this.key); for (var i = 0;i<this.options.length;i++) { var termID = this.options[i][1]; var termLabel = this.options[i][0]; if (facetState[termID] == true ) { h += '<option value="'+termID+'" selected="selected">'+termLabel+'</option>'; } else { h += '<option value="'+termID+'">'+termLabel+'</option>'; } } h += '</select></div></div></div>'; h += this.facetCtrl.facetEndHTML(this.label,this.key,this.toggleOption); return h; } FacetSelect.prototype.bindEvents = function(){ var self = this; this.facetCtrl.jQuery('.facet-name-'+this.key+'').on("change","select",function(){ var selectedVal = $('option:selected',this).attr('value'); var href = self.facetCtrl.setFilterHref(self.key,selectedVal); if (self.facetCtrl.ajax) { self.facetCtrl.history.pushState(null, null, href); } else { document.location.href = href; } return true; }); } FacetSelect.prototype.disable = function(){ this.disabled = true; } FacetSelect.prototype.enable = function(){ this.disabled = false; } /* ---------------------------------------------- * * Facet Boolean * * ---------------------------------------------- */ function FacetBoolean(args) { for (key in args) { this[key] = args[key]; } } FacetBoolean.prototype.render = function() { var h = this.facetCtrl.facetStartHTML(this); h += '<div class="nu">'; for (var i = 0;i<this.options.length;i++) { var termID = this.options[i][1]; var termLabel = this.options[i][0]; h += ' <input type="checkbox" name="'; h += this.groupName + '" value="' + termID + '"></input>'; h += ' ' + termLabel + '<br/>'; } h += '</div>'; h += this.facetCtrl.facetEndHTML(this.label,this.key,this.toggleOption); return h; } FacetBoolean.prototype.bindEvents = function(){} /* ---------------------------------------------- * * Facet Clear * * ---------------------------------------------- */ function FacetClear(args) { for (key in args) { this[key] = args[key]; } } FacetClear.prototype.render = function() { var canClear = false; var href = this.facetCtrl.getFilterHref(); for (var i = 0;i<this.facetCtrl.parsedFacetState.length;i++) { var d = this.facetCtrl.parsedFacetState[i]; var facetKey = d[0]; var facetVal = d[1]; if(this.facetCtrl.isFacet(facetKey)){ href = this.facetCtrl.removeFilterHref(facetKey,facetVal,href); canClear = true; } } if (canClear) { return '<div class="facet-control facet-clear"><a href="'+href+'" class="btn-submit facetctrl-ajax-link facet-clear-all facetctrl-event-clear">Clear All Selections</a></div>'; } else { return ''; } } FacetClear.prototype.bindEvents = function(){} /* ---------------------------------------------- * * Facet HTML * * ---------------------------------------------- */ function FacetHTML(args) { for (key in args) { this[key] = args[key]; } } FacetHTML.prototype.render = function() { return this.html; } FacetHTML.prototype.bindEvents = function(){} /* ---------------------------------------------- * * Facet Group * * ---------------------------------------------- */ function FacetGroup(args) { for (key in args) { this[key] = args[key]; } this.children = []; } FacetGroup.prototype.append = function(facet){ this.children.push(facet); } FacetGroup.prototype.getFacets = function(){ var k = [] for (var i = 0; i < this.children.length; i++ ) { k.push(this.children[i]) } return k; } FacetGroup.prototype.render = function(){ var h = ""; if (this.label) h += this.facetCtrl.facetStartHTML(this); h += '<div class="facet-group">'; var lastType = ''; for (var i = 0; i < this.children.length; i++ ) { var fhtml = this.children[i].render(); lastType = this.children[i].constructor.name if (fhtml) { h += '<div class="facet-container-'+ ( this.children[i].key || i ) +'">'; h += '<div class="hr3"></div>' h += fhtml; h += '</div>'; } } if (lastType != 'FacetHTML') { h += '<div class="hr3 facet-last-hr"></div>' } h += '</div>'; if (this.label) h += this.facetCtrl.facetEndHTML(this.label,this.key,this.toggleOption); return h; } FacetGroup.prototype.bindEvents = function(){ for (var i = 0; i < this.children.length; i++ ) { this.children[i].bindEvents(); } $(".toggle-container",this.facetCtrl.container).each(function(){ var $c = $(this); if ($(this).hasClass('analytics-bound')) return; $(this).addClass('analytics-bound'); $('> div > .kappa-uc > .toggle-button',$c).on('click',function(){ var id = $c.attr('id'); if (!id) return; if ($(this).find('.icon-plusbox').length == 0) { if (window.analytics) analytics.event(id.toLowerCase()+'-closed') } else { if (window.analytics) analytics.event(id.toLowerCase()+'-opened') } return true; }) }) } /* ---------------------------------------------- * * Facet Controller * * ---------------------------------------------- */ function FacetController(args) { for (key in args) { this[key] = args[key]; } this.ajaxCache = {}; this.ajaxEventsBound = false; this.ajaxConnectionActive = false; this.jQuery = FacetController.libs.jQuery; this.history = FacetController.libs.History; this.imagesLoaded = FacetController.libs.ImagesLoaded; this.facets = []; this.language = 'en'; if (document.location.href.indexOf('/cn/') > -1) { this.language = 'cn'; } } FacetController.prototype.bindEvents = function(){ if (this.group) this.group.bindEvents(); if (this.groupMobile) { this.groupMobile.bindEvents(); } if (this.ajax && this.history && this.ajaxEventsBound == false) { this.bindAjaxEvents(); } this.autocompleteEvents(); // add accessibility tags $(".facetctrl-ajax-html,.facetctrl-results").attr('aria-live','polite') } FacetController.prototype.newGuid = function() { return 'Axxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); return v.toString(16); }).toUpperCase(); } FacetController.prototype.autocompleteEvents = function(){ if(typeof $(".facetctrl-autocomplete").autocomplete == 'function' && $(".facetctrl-autocomplete").not('.autocomplete-installed').length > 0){ $.ui.autocomplete.prototype._renderItem = function( ul, item) { var t = item.label; var parts = this.term.split(' '); for (var i = 0;i<parts.length;i++) { if (parts[i]) { var re = new RegExp(parts[i], "ig"); t = t.replace(re,'<b>' + parts[i] + "</b>"); } } t = t.replace(/<<b>b<\/b>>/g,'<b>'); t = t.replace(/<\/<b>b<\/b>>/g,'</b>'); if (t.indexOf('<b>') == -1 && item.highlight) t = item.highlight if (item.collection) t = t + ' <b class="sub">in ' + item.collection + '</b>'; return $( "<li></li>" ) .data( "item.autocomplete", item ) .append( "<a>" + t + "</a>" ) .appendTo( ul ); }; $(".facetctrl-autocomplete").each(function(){ var container = $(this).parent().find('.facetctrl-autocomplete-container'); $(this).autocomplete({ source: function(request,response) { var facet = $(this.element).data('facet'); var extra = ''; if (facet) { extra = facet = '&facet='+facet} $.ajax({ url: '?' + document.location.search.replace('?','') + '&_autocomplete=1&step=6&_q='+encodeURIComponent(request.term) + extra, //url: '?_autocomplete=1&q='+encodeURIComponent(request.term) + extra, dataType: 'json', contentType: 'application/json; charset=utf-8', success: function(data, status, resp) { var r = []; r = $.map(data,function(item,index){ var t = item.t; var v = item.t; if (t.indexOf('|l=') > -1) { v = t.split('|t=')[1].split('|')[0]; t = t.split('|l=')[1].split('|')[0]; } return { label: t, highlight: item.highlight, value: v } }) response(r); } }); }, minLength: self.minLength ? self.minLength : 1, delay: self.delay ? self.delay : 0, select: function( event, ui ) { var href = ''; var facet = $(this).data('facet'); if (facet) { href = self.facetCtrl.addFilterHref(facet || 'q',ui.item.value); } else { href = self.facetCtrl.setFilterHref(facet || 'q',ui.item.value); } if (self.facetCtrl.ajax) { self.facetCtrl.history.pushState(null, null, href); } else { document.location.href = href; } }, appendTo: container }) $(this).addClass('autocomplete-installed'); }) } } FacetController.prototype.bindAjaxEvents = function(){ var self = this; self.ajaxEventsBound = true; try { // course schedule viewer iframe doesn't like this this.state = this.history.getState(); } catch (error) { } $(window).unbind('.search1'); this.history.Adapter.bind(window,'statechange.search1',function(){ if (window.analytics) analytics.pageView(document.location.href); self.updateState(); }); $(this.container).on('reload',function(){ self.updateState({force:true}); }) window.wcmReload = function(){ self.updateState({force:true, timeout:30000}); } $(this.container).on("click",".facetctrl-ajax-link",function(e){ // nasty history.js bug https://github.com/balupton/history.js/pull/64 // use this version instead https://github.com/andreasbernhard/history.js if (self.isLoading()) { return false; } $(this).trigger('icontoggle') if ($(this).parents('.facetctrl-sticky-target').length) { self.facetCtrl.closeFacets = true; // looks like a bug } if (window.analytics) { if ($(this).hasClass('facetctrl-event-clear')) analytics.event("clear-search") } if ($(this).hasClass('facetctrl-scroll-top')) { if (document.getElementById('s4-workspace')) { $('#s4-workspace,html,body').animate({scrollTop: 0}, 0,'swing',function(){ }); } else { $('html,body').animate({scrollTop: 0}, 0,'swing',function(){ }); } } var href = this.href; /*if (href.indexOf('page=') > -1){ href += '&_ajax_pagination=1' }*/ if (!e.screenX) { // keyboard click self.saveFocus($(this).parent().data('term-id')); } self.history.pushState(null, null, href); return false; }) $(this.container).on("click","a.facetctrl-ajax-nextpage",function(){ // load more results, but don't change the facets or the URL if (window.analytics) analytics.event("show-more") if (self.isLoading()) { return false; } var href = this.href; self.nextPage(href); return false; }) $(this.container).on("click","a.facetctrl-ajax-pages",function(){ // load more results, but don't change the facets if (self.isLoading()) { return false; } var href = this.href; self.nextPage(href); return false; }) function inputchange(el){ var name = $(el).attr('name'); var val = $(el).val(); var oldval = framework.URI().search(true)[name]; var oldhref = self.getFilterHref(); var href = self.setFilterHref(name,val); if (oldhref != href && val != oldval) { self.history.pushState(null, null, href); } } $(this.container).on("blur update",".facetctrl-ajax-input",function(){ inputchange(this); }); $(this.container).on("focus",".facetctrl-ajax-input",function(){ $(this).unbind('keypress.facetctrl'); $(this).bind('keypress.facetctrl',function(e){ if (e.which == 13) { inputchange(this); $(this).trigger('enter'); return false; } }) }); /* $(this.container).on("keydown",".facetctrl-ajax-input",function(e){ if(e.which == 13) { alert('inputchange'); //inputchange(this); e.preventDefault(); return false; } else { return true; } return false; }); */ $(this.container).on("change",".facetctrl-radio-grp input",function(){ var name = $(this).attr('name'); var val = $(this).val(); var href = self.setFilterHref(name,val); self.history.pushState(null, null, href); }) $(this.container).on("closed",".facetctrl-ajax-facet",function(){ $(".facetctrl-ajax-facet-target",this).html(''); }) function drawFacet(thisInput,refresh) { var facet = $(thisInput).data('facet'); if (!refresh) { $(".facetctrl-ajax-facet-target",thisInput).html('Loading...'); } $(".facetctrl-ajax-facet-target",thisInput).addClass('facetctrl-loading'); var url = framework.URI().setQuery({"_autocomplete":1,"step":"9999","facet":facet}).removeQuery("debug").search() $.ajax({ url: url, dataType: 'json', contentType: 'application/json; charset=utf-8', success: function(data, status, resp) { var checked = {}; for (var j = 0;j<self.parsedFacetState.length;j++) { var d = self.parsedFacetState[j]; var facetKey = d[0]; var facetValue = d[1]; if (facetKey == facet) { checked[facetValue] = 1 } } var html = ['<ul class="facet-list nu filtering-list facetctrl-fade">'] var hasResults = false; if ($(thisInput).data('facet-sort').indexOf('alpha') != -1) { data = data.sort(function(a,b){ if (a.t > b.t) return 1; if (a.t < b.t) return -1; return 0; }) } if ($(thisInput).data('facet-sort').indexOf('numeric') != -1) { data = data.sort(function(a,b){ var numa = parseInt(a.t,10); var numb = parseInt(b.t,10); if (numa > numb) return 1; if (numa < numb) return -1; return 0; }) } if ($(thisInput).data('facet-sort').indexOf('reverse') != -1) { data.reverse(); } for (var i = 0;i<data.length;i++){ var d = data[i]; var count = self.formatCount(d); var li; if (checked[d.t]) { li = '<li><a class="ink facetctrl-ajax-toggle" href="#" data-facet="'+facet+'" data-value="'+encodeURIComponent(d.t)+'"><span class="icon-checkbox-checked"></span>'+d.t+count+'</a></li>' } else { li = '<li><a class="ink facetctrl-ajax-toggle" href="#"data-facet="'+facet+'" data-value="'+encodeURIComponent(d.t)+'"><span class="icon-checkbox"></span>'+d.t+count+'</a></li>' } html.push(li) hasResults = true; } html.push('</ul>') if (hasResults) { $(".facetctrl-ajax-facet-show-if-results",thisInput).show(); $(".facetctrl-ajax-facet-target",thisInput).html(html.join('')) } else { $(".facetctrl-ajax-facet-target",thisInput).html('No options'); } $(".facetctrl-ajax-facet-target .facetctrl-ajax-toggle").on('click',function(){ var facet = $(this).data('facet'); var value = decodeURIComponent($(this).data('value')); if ($(this).find('.icon-checkbox-checked').length) { $(this).find('.icon-checkbox-checked').toggleClass('icon-checkbox-checked icon-checkbox'); var href = self.removeFilterHref(facet,value); self.history.pushState(null, null, href); } else { $(this).find('.icon-checkbox').toggleClass('icon-checkbox-checked icon-checkbox'); var href = self.addFilterHref(facet,value); self.history.pushState(null, null, href); } //drawFacet(thisInput,true); //jg //$(self.container).one("facetctrl.update.complete",function(){ // drawFacet(thisInput,true); //}); return false; }) $(".facetctrl-ajax-facet-target",thisInput).parent().scrollTop(1).scrollTop(0); // toggle scrollbar for ios $(".dropdown-menu3",thisInput).trigger('reposition'); $(".facetctrl-ajax-facet-target",thisInput).removeClass('facetctrl-loading'); }, error: function(xhdr,msg,err){ console.error(msg); } }); } $(this.container).on("opened",".facetctrl-ajax-facet",function(){ drawFacet(this); }) $(this.container).on("change","select.facetctrl-field",function(){ var name = $(this).attr('name'); var val = $(this).val(); var href = self.setFilterHref(name,val); self.history.pushState(null, null, href); }) $(window).bind('scroll.search1',function(){ if (!$("html").hasClass('ua-desktop')) { var target = $('.facetctrl-sticky-target').eq(0); var istarget = $('.facetctrl-sticky-target').length; if (target && istarget) { var ypos = $(this).scrollTop(); var targetTop = target.offset().top; if (ypos > targetTop) { $('.facetctrl-sticky').addClass('active'); } else { $('.facetctrl-sticky').removeClass('active'); } } } }); $('.facetctrl-sticky a').click(function(){ $('.facetctrl-sticky-target .toggle-container:not(.toggled) a.toggle-button').eq(0).click(); }); } FacetController.prototype.formatCount = function(node) { var num = node.count || node.c || ''; if (num == '') return ''; return ' ('+num.replace(/\B(?=(\d{3})+(?!\d))/g, ",")+')'; } FacetController.prototype.nextPage = function(url){ this.loading(); var self = this; self.ajaxConnectionActive = true; jQuery.ajax( { url: url, timeout:5000, success:function(data){ self.data.page += 1; self.redraw(data,true); self.doneLoading(); self.ajaxConnectionActive = false; $(self.container).trigger("facetctrl.nextpage.complete"); }, error: function(){ document.location = url.replace('_ajax_pagination=1','') } }) } FacetController.prototype.updateState = function(args){ this.historyState = this.history.getState(); this.ajaxConnectionActive = true; var args = args || {}; args.force = args.force || false; var url = this.historyState.url; if (this.ajaxCache[url] && args.force == false) { var self = this; this.loading(); window.setTimeout(function(){ var data = self.ajaxCache[url]; self.redraw(data); self.doneLoading(); self.ajaxConnectionActive = false; $(self.container).trigger("facetctrl.update.complete"); },400); } else { this.loading(); var self = this; jQuery.ajax( { url: this.historyState.url, timeout:args.timeout || 5000, success:function(data){ console.timeEnd('dataLoaded'); console.time('redraw'); //self.ajaxCache[self.historyState.url] = data; // save memory self.redraw(data); self.doneLoading(); self.ajaxConnectionActive = false; $(self.container).trigger("facetctrl.update.complete"); console.timeEnd('redraw'); }, error: function(){ if (!window.wcm) {document.location = self.historyState.url} } }) } } FacetController.prototype.loading = function(){ console.time('dataLoaded'); $(this.container).addClass("facetctrl-loading"); framework.progress.start(); } FacetController.prototype.doneLoading = function(){ var self = this; self.restoreFocus() window.setTimeout(function(){ $(self.container).removeClass("facetctrl-loading"); framework.progress.done(); if (window.dlg) {window.dlg.close()}; },1) } FacetController.prototype.isLoading = function(){ return this.ajaxConnectionActive; } FacetController.prototype.getIcon = function(icon, alt){ if (icon == 'checkbox') { return '<span class="icon-checkbox icon-svg"><img src="https://d1gfwsbop52idw.cloudfront.net/static/shared/images/framework/3.0/icon-checkbox.svg" tab-index="0" aria-checked="false" role="checkbox" alt="" aria-label="' + alt +'"/></span>' } if (icon == 'checkbox-checked') { return '<span class="icon-checkbox-checked icon-svg"><img src="https://d1gfwsbop52idw.cloudfront.net/static/shared/images/framework/3.0/icon-checkbox-checked.svg" tab-index="0" aria-checked="true" role="checkbox" alt="" aria-label="' + alt +'" aria-checked="true"/></span>' } } FacetController.prototype.updateInputFields = function(){ for (var i = 0;i<this.facets.length;i++) { var facet = this.facets[i].key; var facetValue = null; for (var j = 0;j<this.parsedFacetState.length;j++) { var d = this.parsedFacetState[j]; var facetKey = d[0]; if (facetKey == facet) { facetValue = d[1]; } } if (facetValue == null) { $(this.container).find('input:text').each(function(){ if (this.name == facet && $(this).val() != '' && !$(this).is(':focus')) { $(this).val('') } }) } else { $(this.container).find('input:text').each(function(){ if (this.name == facet && !$(this).is(':focus') && !$(this).hasClass('facetctrl-ajax-textq')) { $(this).val(facetValue) } }) } } } FacetController.prototype.redraw = function(data,append){ // sync html areas var self = this; var newdoc = document.createElement('div'); newdoc.innerHTML = data; // new result has no isotope, uninstall it if (data && $(newdoc).find(".facetctrl-isotope-results").length == 0) { $(this.container).find(".facetctrl-isotope-results").removeClass('facetctrl-isotope-results'); } // isotope container already exists, and new result has more isotope var isotopeInserted = false; $(this.container).find(".facetctrl-isotope-results.isotope-installed").each(function(){ self.redrawIsotope(data,this,append); isotopeInserted = true; }) if (data) { var id = $(self.container).attr('id'); $(newdoc).find("#" + id + " .facetctrl-ajax-classes").each(function(i){ var classes = $(this).attr('class'); $(self.container).find(".facetctrl-ajax-classes").eq(i).attr('class',classes); }) $(newdoc).find("#" + id + " .facetctrl-ajax-html").each(function(i){ var html = $(this).html(); if ($(this).hasClass('facetctrl-ajax-noupdate')) { // pass } else if ($(this).hasClass('facetctrl-ajax-append') && append) { $(self.container).find(".facetctrl-ajax-html").eq(i).append('<div class="facetctrl-appended">'+html+'</div>'); } else if (!append) { $(self.container).find(".facetctrl-ajax-html").eq(i).html(html); } }) $(newdoc).find("#" + id + " .facetctrl-results").each(function(){ var html = $(this).html(); if (append && !isotopeInserted) { $(self.container).find(".facetctrl-results").append('<div class="facetctrl-appended">'+html+'</div>'); } else if (!isotopeInserted) { $(self.container).find(".facetctrl-results").html(html); } else { $(self.container).find('.facetctrl-no-results').remove() $(self.container).find('.facetctrl-results').append($(this).find('.facetctrl-no-results')); } }); var facetState = document.location.search; if (append) { $(document).trigger('framework.domupdate'); } else { eval($(newdoc).find("script[type='text/facetconfig']").html()); var facetData = eval($(newdoc).find("script[type='text/facetdata']").html()); self.loadData(facetData,facetState); self.render(); } var newtitle = $(newdoc).find('title').eq(0).text() if (newtitle) document.title = newtitle; $(self.container).trigger("facetctrl.ajax.complete",{"html":data}); } // isotope container was newly installed $(this.container).find(".facetctrl-isotope-results").each(function(){ if (!$(this).hasClass("isotope-installed")) { $(this).addClass("isotope-installed"); self.installIsotope(this); self.redrawIsotope(data,this,append); } }) if (self.closeFacets) { $(this.container).find('.toggle-button').click(); framework.scrollTo(document.getElementById('search1-app')) self.closeFacets = false; } self.updatePagination(); if (window.authoring) window.authoring.reload(); } FacetController.prototype.redrawIsotope = function(data,results,append){ var $results = $(results); var self = this; if (data) { if (!append) { $(this.container).find(".facetctrl-isotope-element").removeClass("visible"); $(this.container).find(".facetctrl-isotope-element").hide(); } var div = document.createElement('div'); div.innerHTML = data; var $newItems = $(div).find(".facetctrl-isotope-element").filter(function(){ if (document.getElementById(this.id)) { var newposition = $(this).attr('data-position'); $(document.getElementById(this.id)).html($(this).html()); $(document.getElementById(this.id)).addClass("visible").attr('data-position',newposition); $(document.getElementById(this.id)).show(); return false; } return true; }); $newItems.addClass("visible"); this.iso.insert($newItems); } else { $(this.container).find(".facetctrl-isotope-element").addClass("visible"); } $(this.container).addClass('facetctrl-animating'); this.iso.reloadItems(); this.iso.on("layoutComplete",function(){ $(self.container).removeClass('facetctrl-animating'); $(document).trigger('framework.domupdate'); $('.facetctrl-isotope-results.invisible',self.container).removeClass('invisible'); if(typeof Widgets != 'undefined') $(document).ready(Widgets.refresh); }); var $container = $('.facetctrl-isotope-results'); $container.imagesLoaded( function() { iso.layout(); }); this.iso.arrange({filter:".visible"}) } FacetController.prototype.installIsotope = function(results){ //var windowSize = $(window).width(); var gutterWidth = 24; //var columnWidth = Math.floor(($('.facetctrl-isotope-results').width() / 3) - (2 * gutterWidth)); /*if (windowSize <= 650) { gutterWidth = 0; } else if (windowSize > 651 && windowSize < 1020 ) { gutterWidth = 8; } else if (windowSize >= 1020) { gutterWidth = 24;}*/ var options = { itemSelector : '.facetctrl-isotope-element', masonry: { gutter: gutterWidth }, getSortData : { position: function (itemElem) { var weight = $(itemElem).attr('data-position') return parseInt(weight); } }, sortBy: 'position' } this.iso = window.iso = new FacetController.libs.Isotope(results,options); var $container = $('.facetctrl-isotope-results'); $container.imagesLoaded( function() { iso.layout(); }); } FacetController.prototype.install = function(group){ this.group = group; this.facets = group.getFacets(); } FacetController.prototype.installMobile = function(groupMobile){ return; this.groupMobile= groupMobile; } FacetController.isReady = false; FacetController.ready = function(callback) { if (FacetController.isReady) { callback(); return; } var libs = [ 'https://webassets.hbs.edu/libs/isotope/isotope.pkgd.min.js', 'https://webassets.hbs.edu/libs/imagesloaded/imagesloaded.pkgd.min.js', 'https://webassets.hbs.edu/libs/jquery/history/jquery.history.js']; //if ($.ui) { //libs.splice(1,1) //} /*var link = document.createElement("link"); link.type = "text/css"; link.rel = "stylesheet"; link.href = 'http://www.hbs.edu/shared/components/search/search.css'; if (document.location.href.indexOf('dev.exed.hbs.edu') > -1) { link.href = 'http://webdev.hbs.edu/shared/components/search/search.css'; } document.getElementsByTagName("head")[0].appendChild(link);*/ requirejs.config({waitSeconds:60}); requirejs(libs,function(Isotope){ FacetController.libs = {} FacetController.libs.Isotope = Isotope; FacetController.libs.ImagesLoaded = window.ImagesLoaded; FacetController.libs.History = window.History; FacetController.libs.jQuery = window.jQuery; FacetController.isReady = true; callback(); }); } FacetController.prototype.loadData = function(facetData) { this.data = {}; this.data.facets = {}; this.data.pages = facetData.pages; this.data.page = facetData.page; this.data.query = facetData.query; this.data.breadcrumb = facetData.breadcrumb; this.data.total = facetData.total; this.state = {}; if (this.history && this.history.getState) { this.facetState = this.history.getState().url.split('#')[0]; } else { this.facetState = document.location.search.split('#')[0]; } this.parsedFacetState = this.getFacetStateFromQueryString(this.facetState); for (var i = 0;i<this.parsedFacetState.length;i++) { var d = this.parsedFacetState[i]; facetKey = d[0]; facetId = d[1]; if (!this.state[facetKey]) this.state[facetKey] = {}; this.state[facetKey][facetId] = true; } for (var i = 0;i<facetData.facets.length;i++) { var d = facetData.facets[i]; if (typeof d != 'undefined' && d.facet) { var facetKey = d.facet; if (d.packed && d.packed.indexOf('|') > -1) { var parts = d.packed.split('|'); d.id = parts[1].replace('t=',''); d.label = d.id; if (parts[2]) d.parentID = parts[2].replace('p=',''); } if (!this.data.facets[facetKey]) this.data.facets[facetKey] = []; if (!this.state[facetKey]) this.state[facetKey] = {}; this.data.facets[facetKey].push(d); } } }; FacetController.prototype.onRender = function(callback) { this.renderCallback = callback; } FacetController.prototype.render = function(callback) { this.renderCallback(); $(this.container).addClass('rendered'); var self = this; var refiners = []; var query = []; for (var i = 0;i<this.parsedFacetState.length;i++) { var d = this.parsedFacetState[i]; var facetKey = d[0]; var facetValue = d[1]; var facetLabel = this.findLabel(facetKey,facetValue); if(facetKey!='page' && facetKey != 'facet' && self.data.facets[facetKey] != undefined){ refiners.push(facetKey + ' : '+facetLabel); } if (facetKey == 'q') { query.push(facetValue); } } if (refiners.length > 0 || query) { var ttl = this.data.total; if (window.analytics) { analytics.search(query.join(" and ") || '',ttl || '',refiners); } else if (window.tagManager) { window.tagManager.getAnalytics(function(analytics){ analytics.search(query.join(" and ") || '',ttl || '',refiners); }) } else { window._analytics = window._analytics || []; window._analytics.push(function(){ analytics.search(query.join(" and ") || '',ttl || '',refiners); }); } } if (!this.setupComplete) { self.redraw(false); self.setupComplete = true; } if (this.onRefreshComplete) this.onRefreshComplete(); } FacetController.prototype.getState = function(key) { var facetState = this.state[key]; if (!facetState) return []; return facetState; } FacetController.prototype.isSelected = function(key) { for (var p in this.state[key]) { return true; } return false; } FacetController.prototype.getData = function(key) { var facetData = this.data.facets[key]; if (!facetData) return []; return facetData; } FacetController.prototype.saveFocus = function(key) { self.previousFocus = key } FacetController.prototype.restoreFocus = function() { if (self.previousFocus) { $(self.container).find('[data-term-id]').each(function(){ if ($(this).data('term-id') == self.previousFocus) { $(this).find('a').eq(0).focus(); } }) self.previousFocus = null } } //headerTitle,label,key,defaultCollapsed,disabled,deferLoad FacetController.prototype.facetStartHTML = function(facet) { var languageContainer = ''; var label = facet.label var key = facet.key; var defaultCollapsed = facet.defaultCollapsed; var disabled = facet.disabled; var deferLoad = facet.deferLoad; if (typeof Search != 'undefined' && typeof Search.Settings.LanguageContainer != 'undefined') languageContainer = Search.Settings.LanguageContainer; var h = '<div class="facet-control">'; if (defaultCollapsed && this.isSelected(key)) defaultCollapsed = false; var cls = (defaultCollapsed && !deferLoad) ? 'toggle-hide' : 'toggle-show'; var memory = ' has-memory'; if (this.isSelected(key)) memory = ''; if (typeof facet.toggle != 'undefined' && !facet.toggle) { h += '<div class="facet-name-'+key+'" id="facet-'+key+'">'; h += '<div><h2 class="kappa-uc">' + label+'</div></h2>'; h += '<div class="nu">'; } else if (disabled && label) { h += '<div class="facet-name-'+key+' facet-disabled">'; h += '<div><h2 class="kappa-uc"><a href="#" role="button" aria-expanded="false" class="toggle-button ' + languageContainer + ' black">'; h += '<span class="icon-plusbox"></span>'+label+'</a></h2>'; h += '</div>'; h += '<div class="nu hidden">'; } else if (disabled) { h += '<div class="nu hidden">'; } else if (label && deferLoad && this.getData(key).length == 0) { // nothing has been loaded yet var href = this.addFilterHref('facet',key); h += '<div class="facet-name-'+key+'">'; h += '<div><h2 class="kappa-uc"><a href="'+href+'" aria-expanded="false" class="facetctrl-ajax-link black">'; h += '<span class="icon-plusbox"></span>'+label+'</a></h2>'; h += '</div>'; h += '<div class="nu">'; } else if (label) { h += '<div class="toggle-container'+memory+' facet-name-'+key+'" id="facet-'+key+'">'; h += '<div class="'+cls+'"><h2 class="kappa-uc"><a href="#" role="button" aria-expanded="false" class="toggle-button ' + languageContainer + ' black">'; h += '<span class="icon-plusbox"></span>'+label+'</a></h2>'; h += '</div>'; cls = (defaultCollapsed && !deferLoad) ? 'toggle-show' : 'toggle-hide'; h += '<div class="'+cls+'"><h2 class="kappa-uc"><a href="#" aria-expanded="true" role="button" class="toggle-button ' + languageContainer + ' black">'; h += '<span class="icon-minusbox"></span>'+label+'</a></h2>'; h += '</div>'; h += '<div class="'+cls+' has-slide nu">'; } else { h += '<div class="facet-name-'+key+'"><div>' } return h; } FacetController.prototype.facetEndHTML = function() { var h = '</div></div></div>'; return h; } FacetController.prototype.renderNavigation = function(facetName) { var h = '<div class="facet-pattern2"><h2 class="visually-hidden">Filters</h2>'; if (facetName) { for (var i = 0; i < this.group.children.length; i++ ) { var facet = this.group.children[i]; if (facetName == facet.key) { return facet.render({simple:true}); } } } else { if (this.group) h += this.group.render(); } h += '</div>'; return h; } FacetController.prototype.renderNavigationMobile = function() { return ''; var h = '<div class="facet-pattern">'; h += this.groupMobile.render(); h += '</div>'; return h; } FacetController.prototype.isFacet = function(facetKey) { //if (facetKey == 'q') return false; if (facetKey == 'sort') return false; for (var i=0;i<this.facets.length;i++) { if (this.facets[i].key == facetKey) return true; } return false; } FacetController.prototype.getFacet = function(facetKey) { //if (facetKey == 'q') return false; for (var i=0;i<this.facets.length;i++) { if (this.facets[i].key == facetKey) return this.facets[i]; } return false; } FacetController.prototype.findLabel = function(facetKey, value, breadcrumb) { var d = this.getData(facetKey); if (d) { for (var i = 0;i<d.length;i++) { var data = d[i]; if (value == data.id || value == data.param) { var f = this.getFacet(data.facet); if (f && f.labelfn) { return f.labelfn(data.label,data,1);} if (breadcrumb && data.breadcrumb) return data.breadcrumb; return data.label; //Display Label } } } return value; } // make safe for printing FacetController.prototype.p = function(str) { if (!str) return ''; return str.replace(/\+/g,' ').replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"'); } FacetController.prototype.renderBreadcrumb = function(){ if (this.singleSelect) { for (var i = 0;i<this.parsedFacetState.length;i++) { var d = this.parsedFacetState[i]; var facetKey = d[0]; var facetValue = d[1]; var facetLabel = this.findLabel(facetKey,facetValue,1); if(this.isFacet(facetKey)){ var href = this.removeFilterHref(facetKey,facetValue); return '<h2 class="gamma">'+this.p(facetLabel) + '</h2>' } } } var bcrumb = ''; for (var i = 0;i<this.parsedFacetState.length;i++) { var d = this.parsedFacetState[i]; var facetKey = d[0]; var facetValue = d[1]; var facetLabel = this.findLabel(facetKey,facetValue,1); if(this.isFacet(facetKey)){ var href = this.removeFilterHref(facetKey,facetValue); bcrumb += '<a class="ink facetctrl-ajax-link facetctrl-event-clear" href="'+href+'">'+this.p(facetLabel)+'<span class="icon-circle-close-red"></span></a> <span class="txt-arrow eta" aria-hidden="true">→</span> '; } } if (bcrumb) {bcrumb = '<h2 class="eta">' + bcrumb + '</h2>'} return bcrumb; } FacetController.prototype.renderPagination = function(){ return '<div class="facetctrl-ajax-pagination"></div>' } FacetController.prototype.updatePagination = function(){ var self = this; $(this.container).find(".facetctrl-ajax-pagination").each(function(){ var qs = '?' + (window.SESSION_QUERYSTRING || ''); for (var i = 0;i<self.parsedFacetState.length;i++) { var d = self.parsedFacetState[i]; if ( d[0] != 'page') { qs += '&' + d[0] + '=' + encodeURIComponent(d[1]); } } if((self.data.page) < self.data.pages) { $(this).attr('style','text-align:center;display:block !important;margin-top:20px;margin-bottom:32px;'); $(this).addClass('hbsred-bg').removeClass("hidden"); qs += '&_ajax_pagination=1&page=' + (self.data.page + 1); qs = qs.replace('?&','?'); var label = $(".btn-bar",self.container).text(); $(this).html('<a href="'+qs+'" role="button" class="facetctrl-ajax-nextpage white lambda-uc btn-bar hbsred-bg" title="Load More Results">'+label+'<span class="icon-expand-white" style="margin-left:10px;margin-bottom:1px;"></span></a>'); }else{ $(this).attr('style','display:none;'); } }); } FacetController.prototype.addFilterHref = function(key,val,querystring) { var qs = '?' + (window.SESSION_QUERYSTRING || ''); var found = false; for (var i = 0;i<this.parsedFacetState.length;i++) { var d = this.parsedFacetState[i]; if (d[0] == 'page') continue; qs += '&' + d[0] + '=' + encodeURIComponent(d[1]); if (d[0] == key && d[1] == val) found = true; } if (querystring) qs = querystring; if (!found) { qs += '&' + key + '=' + encodeURIComponent(val); } qs = qs.replace('?&','?'); return qs; } FacetController.prototype.removeFilterHref = function(key,val,href) { var qs = '?' + (window.SESSION_QUERYSTRING || ''); var facetState = this.parsedFacetState; if (href) facetState = this.getFacetStateFromQueryString(href); for (var i = 0;i<facetState.length;i++) { var d = facetState[i]; if (key == d[0] && val == d[1]) { //pass } else if (d[0] == 'page') { //pass } else if (key == d[0] && !val) { //pass } else { qs += '&' + d[0] + '=' + encodeURIComponent(d[1]); } } qs = qs.replace('?&','?') return document.location.pathname + qs; } FacetController.prototype.removeFacetFilterHref = function() { var facetHref = null; for (var j = 0; j<this.facets.length; j++) { var f = this.facets[j]; if (f.key) facetHref = this.removeFilterHref(f.key,null,facetHref); } return facetHref; } FacetController.prototype.setFilterHref = function(key,val) { var qs = '?' + (window.SESSION_QUERYSTRING || ''); for (var i = 0;i<this.parsedFacetState.length;i++) { var d = this.parsedFacetState[i]; if (key == d[0]) { //pass } else if (d[0] == 'page') { //pass } else { qs += '&' + d[0] + '=' + encodeURIComponent(d[1]); } } if (val) qs += '&' + key + '=' + encodeURIComponent(val); qs = qs.replace('?&','?') return document.location.pathname + qs; } FacetController.prototype.getFilterHref = function() { var qs = '?' for (var i = 0;i<this.parsedFacetState.length;i++) { var d = this.parsedFacetState[i]; qs += '&' + d[0] + '=' + encodeURIComponent(d[1]); } qs = qs.replace('?&','?') return qs; } FacetController.prototype.getFacetStateFromQueryString = function(qs) { var queryParam = []; var self = this; if (qs) { qs.replace( new RegExp("([^?=&]+)(=([^&]*))?", "g"), function($0, $1, $2, $3) { if ($3) { if (!self.validParams || $.inArray($1,self.validParams) > -1) { var val = $3.replace(/\+/g, '%20'); queryParam.push([$1,decodeURIComponent(val)]); } } } ); } return queryParam; }; /** * @fileoverview TextResizeDetector * * Detects changes to font sizes when user changes browser settings * <br>Fires a custom event with the following data:<br><br> * iBase : base font size * iDelta : difference in pixels from previous setting<br> * iSize : size in pixel of text<br> * * * @author Lawrence Carvalho carvalho@uk.yahoo-inc.com * @version 1.0 */ /** * @constructor */ TextResizeDetector = function() { var el = null; var iIntervalDelay = 200; var iInterval = null; var iCurrSize = -1; var iBase = -1; var aListeners = []; var createControlElement = function() { el = document.createElement('span'); el.id='textResizeControl'; el.innerHTML=' '; el.style.position="absolute"; el.style.left="-9999px"; var elC = document.getElementById(TextResizeDetector.TARGET_ELEMENT_ID); // insert before firstChild if (elC) elC.insertBefore(el,elC.firstChild); iBase = iCurrSize = TextResizeDetector.getSize(); }; function _stopDetector() { window.clearInterval(iInterval); iInterval=null; }; function _startDetector() { if (!iInterval) { iInterval = window.setInterval('TextResizeDetector.detect()',iIntervalDelay); } }; function _detect() { var iNewSize = TextResizeDetector.getSize(); if(iNewSize!== iCurrSize) { for (var i=0;i <aListeners.length;i++) { aListnr = aListeners[i]; var oArgs = { iBase: iBase,iDelta:((iCurrSize!=-1) ? iNewSize - iCurrSize + 'px' : "0px"),iSize:iCurrSize = iNewSize}; if (!aListnr.obj) { aListnr.fn('textSizeChanged',[oArgs]); } else { aListnr.fn.apply(aListnr.obj,['textSizeChanged',[oArgs]]); } } } return iCurrSize; }; var onAvailable = function() { if (!TextResizeDetector.onAvailableCount_i ) { TextResizeDetector.onAvailableCount_i =0; } if (document.getElementById(TextResizeDetector.TARGET_ELEMENT_ID)) { TextResizeDetector.init(); if (TextResizeDetector.USER_INIT_FUNC){ TextResizeDetector.USER_INIT_FUNC(); } TextResizeDetector.onAvailableCount_i = null; } else { if (TextResizeDetector.onAvailableCount_i<600) { TextResizeDetector.onAvailableCount_i++; setTimeout(onAvailable,200) } } }; setTimeout(onAvailable,500); return { /* * Initializes the detector * * @param {String} sId The id of the element in which to create the control element */ init: function() { createControlElement(); _startDetector(); }, /** * Adds listeners to the ontextsizechange event. * Returns the base font size * */ addEventListener:function(fn,obj,bScope) { aListeners[aListeners.length] = { fn: fn, obj: obj } return iBase; }, /** * performs the detection and fires textSizeChanged event * @return the current font size * @type {integer} */ detect:function() { return _detect(); }, /** * Returns the height of the control element * * @return the current height of control element * @type {integer} */ getSize:function() { var iSize; return el.offsetHeight; }, /** * Stops the detector */ stopDetector:function() { return _stopDetector(); }, /* * Starts the detector */ startDetector:function() { return _startDetector(); } } }(); TextResizeDetector.TARGET_ELEMENT_ID = 'doc'; TextResizeDetector.USER_INIT_FUNC = null; function textResizeInit() { var iBase = TextResizeDetector.addEventListener(onFontResize,null); } //id of element to check for and insert control TextResizeDetector.TARGET_ELEMENT_ID = 'container'; //function to call once TextResizeDetector has init'd TextResizeDetector.USER_INIT_FUNC = textResizeInit; function onFontResize(e,args) { console.log('font resized!'); if (window.iso) iso.layout(); } </script> <style>a[href*="TOFIX" i],a[href*="TODO" i] { background-color: yellow; } #container .mobile-hidden .send-feedback-link .btn-large{ font-size:17px; } #container .mobile-visible .send-feedback-link .btn-large{ font-size:15px; } .mobile-hidden .send-feedback-link{ display:block; width:36px; height:100px; background-image:url('/Style Library/hbs/images/feedback-button.png'); background-repeat:no-repeat; left:0; bottom:100px; position:fixed; z-index:1000; } .mobile-hidden .send-feedback-link:hover{ background-image:url('/Style Library/hbs/images/feedback-button-hover.png'); } .send-feedback-link .btn-arrow{ width: 70px; white-space: normal; line-height: 26px; opacity:.8; filter:alpha(opacity=80);} .mobile-hidden .send-feedback-link .btn-arrow{ padding:5px 20px 5px 10px; } @media screen and (max-width: 649px) { .mobile-hidden .send-feedback-link { left: unset; bottom: 5%; right: 6%; transform: rotate(90deg) translate(65px, 18px); } } @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { .universal-banner-search-toggle svg {margin-top: -6px;} } .universal-banner-search { min-width: 400px; position: relative; } .universal-banner-menu-toggle { padding:6px; cursor: pointer; } .universal-banner-search-toggle { position: absolute; top: -9px; right: 10px; width: 50px; height: 49px; padding-top: 13px; padding-left: 2px; text-align: center; cursor: pointer; box-sizing: border-box; transition: all .3s cubic-bezier(0.5, 0, 0.1, 1) ; } .universal-banner-search-toggle svg { cursor: pointer; display:block; transition: all .3s cubic-bezier(0.5, 0, 0.1, 1) ; } .universal-banner-search-toggle.toggled { background-color: #a41034; transform: scale(0.65); } .universal-banner-search-toggle.toggled svg { transform: scale(0.9) rotate(-45deg) !important; } .universal-banner-search-input { xoverflow: hidden; xposition: relative; width:269px; } .universal-banner-search-input .universal-site-search-button { display:none; } .universal-banner-search-input .slide { transition: .3s opacity, .3s transform, 0s visibility 0.7s cubic-bezier(0.5, 0, 0.1, 1); xtransform: translateX(310px); opacity: 0; visibility: hidden; } .universal-banner-search-input.open .slide { transition: .3s opacity, .3s transform cubic-bezier(0.5, 0, 0.1, 1); xtransform: translateX(0); opacity: 1; visibility: visible; } .universal-banner .hbs-logo { padding: 8px 0px; } @media (max-width: 919px) and (min-width: 651px) {.responsive-framework .site-header .site-header-button { margin-left: 10px !important; margin-top: 25px !important; } .site-header .universal-banner-hamburger { position:relative; top:2px; left:2px; } .universal-banner-hamburger span { background: #000!important; } .universal-banner .hbs-logo img { height: 52px; } } .universal-banner-hamburger { width: 23px; height: 25px; position: relative; } @media (max-width: 650px) { .responsive-framework .site-header .site-header-button { margin-left: 10px !important; margin-top: 25px !important; } .universal-banner .hbs-logo { padding: 5px 0px; display: flex; justify-content: center; } .universal-banner .hbs-logo img { height: 42px; width: 99px; }.site-header .universal-banner-hamburger { height: 22px; width: 22px; position: relative; left: 4px; } .site-header .universal-banner-hamburger span { height: 3px; } .site-header .universal-banner-hamburger span:nth-child(1) { top: 2px; } .site-header .universal-banner-hamburger span:nth-child(2) { top: 9px; } .site-header .universal-banner-hamburger span:nth-child(3) { top: 16px; } .universal-banner-search-icon svg { width: 39px !important; } .universal-banner-hamburger span { background: #000!important; } } .universal-banner-hamburger span { display: block; position: absolute; height: 4px; width: 100%; background: #FFF; opacity: 1; left: 0; transform: rotate(0deg); transition: .3s cubic-bezier(0.5, 0, 0.1, 1) ; } .universal-banner-hamburger span:nth-child(1) { top: 0px; transform-origin: left center; } .universal-banner-hamburger span:nth-child(2) { top: 8px; transform-origin: left center; } .universal-banner-hamburger span:nth-child(3) { top: 16px; transform-origin: left center; } .universal-banner-hamburger.open span:nth-child(1) { transform: rotate(45deg); } .universal-banner-hamburger.open span:nth-child(2) { width: 0%; opacity: 0; } .universal-banner-hamburger.open span:nth-child(3) { transform: rotate(-45deg); } .skipto.hideme:focus { left: 0px; top: 0px; background-color: white; padding: 6px; width: auto; height: auto; } body:not(.user-is-tabbing) #skipto-main:focus { outline: none; } .above-nav-header .navbar>li:first-child>a { border-left: 1px rgba(255,255,255,0.4) solid; } .above-nav-header .navbar>li:last-child>a { border-right: 1px rgba(255,255,255,0.4) solid; } @media (max-width: 919px) and (min-width: 651px) { header.site-header.above-nav-header .site-header-button { margin-top: 6px!important; margin-bottom: 6px!important; } } .slider-container.slider-open .slider-open[aria-expanded=false] { opacity: 0.3; } .slider-container .btn-glass.slider-open { background-color: transparent !important; } ul.navbar.four li a {padding: 4px 80px 3px 80px!important;} ul.navbar.four li.nav-downloads a {padding: 4px 10px 3px 10px!important;} ul.navbar.four li a.active {padding: 4px 80px!important;} .component-framework .btn-glass.site-header-button {border:0;}.navbar li.nav-downloads{width: 260px; text-align: center;} .navbar .nav-downloads:hover {background: black;} .navbar .nav-downloads:hover > a {border-left:none;} .nav-downloads:hover > a.dropdown-toggle2 span.icon-expand {background-position: -240px -80px !important;} .navbar .nav-downloads:hover > .menu-head, .navbar .nav-downloads.active a {color: white!important;} .navbar li.nav-downloads li{ text-align: left; } .navbar > li.nav-downloads > ul.dropdown-menu2 li a{ margin: 1px 8px;padding: 6px 8px!important; } .navbar > li.nav-downloads .dropdown-menu2 > li.divider { min-width: 100px; margin-left: 8px; margin-right: 8px; } .navbar .dropdown-container2.nav-downloads > a:hover {text-decoration: none;} .navbar li.nav-downloads ul.dropdown-menu2 li a.hover { color: black!important; } .navbar .dropdown-container2.nav-downloads > a > span {margin-left: 10px;} .navbar .dropdown-container2.nav-downloads {position: relative !important;} .navbar .dropdown-container2.nav-downloads .dropdown-menu2 {position: absolute; top:38px !important;left:-1px;min-width:254px!important;} .navbar .dropdown-container2.nav-downloads.active {background-color: black;} .nav-downloads.active a.menu-head span.icon-expand {background-position: -240px -80px;} #flyout-navigation a.dropdown-toggle2 {padding-left: 0 !important;} #flyout-navigation a.dropdown-toggle2 .icon-expand {margin-left: 11px;} .flyout-panel .flyout-padding li a.dropdown-toggle2 {display:none;} @media (max-width: 1220px) and (min-width: 920px) { .site-header h1.gamma-uc.tablet-shrink { font-size: 28px!important; } .site-header h1.tablet-shrink + nav .toolbar > li > a { padding: 4px 4px 0 4px!important; } }@media (max-width: 650px) { .universal-banner-search-icon { height: 24px!important; padding-left: 10px; } .responsive-framework.pattern-framework .site-header .gamma-uc a.white.black-bg { box-shadow: 10px 0 0 black, 0px 0 0 black; padding-right: 0px; } } #sticky-header { position: fixed; overflow: hidden; background-color: inherit; height: 0; top:0!important; left:0; right:0; z-index: 110; transform: translate3d(0,0,0); transition: height .3s cubic-bezier(0.5, 0, 0.1, 1) ; } #sticky-header > div.wrapper { position: absolute; bottom:0; left:0; right:0; } #sticky-header.at-scroll-top { display: none; } .sticky-header-active .facetctrl-sticky.active, .sticky-header-active .filter-sticky.fixed { transition: margin .3s cubic-bezier(0.5, 0, 0.1, 1) ; } .sticky-header-expanded .facetctrl-sticky.active { margin-top:98px; } @media (max-width: 650px) { .sticky-header-expanded .filter-sticky.fixed { margin-top:98px; } .sticky-header-expanded .facetctrl-sticky.active { margin-top:98px; } } @media (min-width: 651px) and (max-width: 919px) { .sticky-header-expanded .filter-sticky.fixed { margin-top:118px; } .sticky-header-expanded .facetctrl-sticky.active { margin-top:113px; } } .sticky-header-active .universal-banner.sticky-header-cloned, .sticky-header-active .sticky-header-cloned .site-header-button { visibility: hidden; } a#GiveNow{ padding: 8px 17px; margin-top:-6px; } a#GiveNow:hover { color: #000 !important; } @media screen and (min-width: 920px) { .body-layout { margin-left: 20px; } } .page-header h2.alpha.no-margin { margin-bottom: 0px!important; } .page-header .tagline a { text-decoration: underline; } .page-header .tagline a:hover { text-decoration: none; } @media (max-width: 650px) { .page-header .podcast-avatar-head div { position: relative!important; top: 0!important; } } .mobile-breadcrumb-container .plus-icon .plus-bar { transition: all .3s ease; transform-origin: 50% 50%; transform: rotate(0deg); } .mobile-breadcrumb-container.toggled .plus-icon .plus-bar { opacity: 0; transform: rotate(90deg); } .mobile-breadcrumb ul { margin:-2px 0 0 0; padding: 0 0 3px 33px; } #sticky-header .mobile-breadcrumb ul { border-bottom: 0; padding-bottom: 0; } .mobile-breadcrumb li { padding: 0; margin: 3px 0; list-style-type: none; } .mobile-breadcrumb li.active { position: relative; } .mobile-breadcrumb li.active:before { position: absolute; top: -2px; left: -23px; content: '→'; }.page-header .html p:last-of-type { margin-bottom: 12px; } @media (max-width: 919px) and (min-width: 651px) { .mobile-breadcrumb ul { padding: 0 0 3px 48px; } .mobile-indent { margin-left:48px; } } @media (max-width: 650px) { .mobile-indent { margin-left: 33px; }.page-header .html p:last-of-type { margin-bottom: 0px; } } .span10 .body-content {max-width: 780px; }.body-content > p, .body-content > div p { margin-bottom: 0px; } .body-content > p, .body-content > ul, .body-content > ol, .body-content > img .body-content > figure, .body-content > img + p:first-of-type, .body-content > figure + p:first-of-type, .body-content > div p, .body-content > div h3 + ol, .body-content > div h3 + ul { margin-top: 0.9rem; } .body-content > ul li, .body-content > ol li { margin-top: .5rem; } .body-content > ul ul li:first-child { margin-top: 0.2rem; } .body-content > h1 + p, .body-content > h1 + ul, .body-content > h1 + img { margin-top: 0.9rem; } .body-content > h2 + p, .body-content > h2 + ul, .body-content > h2 + img, .body-content > h3 + p { margin-top: 0.55rem; }.body-content > h1, .body-content > .section-header-wrapper, .body-content > .section-header-wrapper h1 { margin-top: 4.75rem; } .body-content > h2, .body-content > h3 { margin-top: 1.65rem; } .body-content > h1 + h2, .body-content > h2 + h3 { margin-top: 0.5rem; } .body-content > table { margin-top: 1rem; } .body-content > *:first-child { margin-top: 0px; } .body-content > p:first-child, .body-content > h2:first-child { margin-top: -6px; } .body-content > p:last-child, .body-content > ul li:last-child, .body-content > ol li:last-child { margin-bottom: -6px; } .body-content > img, .body-content > figure img { max-width: 100%; height: auto!important; box-sizing: border-box; } .body-content > figure { margin: 0; } .body-content > .section-header-wrapper:first-child h1 { margin-top: -9px; } .body-content div.mu-uc { margin-bottom: -3px; } .body-content p + hr.hr { margin-top: 0.9rem; }.body-content div.fade-container + .hr4 { margin:0px; } .body-content .hr4 { margin:32px 0px; } .body-content dl.plusminus dt.open { margin-bottom: 30px; }@media screen and (max-width: 650px) { .body-content > h1, .body-content > .section-header-wrapper h1 { margin-top: 1.65rem; }.body-content > h1, .body-content > .section-header-wrapper, .body-content > .section-header-wrapper h1 { margin-top: 2.45rem; } } .universal-footer .universal-footer-copyright ul.footer-links li { margin: 0px 11px; } .universal-footer .universal-footer-copyright ul.footer-links li:first-child { margin-left: 0px; } .universal-footer .universal-footer-copyright ul.footer-links li:last-child { margin-right: 0px; } @media (max-width: 670px) { .universal-footer .universal-footer-copyright ul.footer-links { display:flex; justify-content: center; flex-wrap: wrap; } .universal-footer .universal-footer-copyright ul.footer-links li { padding-bottom: 12px; } .universal-footer .universal-footer-copyright ul.footer-links li:first-child { margin-left: 11px; } .universal-footer .universal-footer-copyright ul.footer-links li:last-child { margin-right: 11px; } } .button-partial .button { display: inline-block; padding: 3px 18px; text-decoration: none; } .button-partial .button .hbsred-onhover-border { border:2px solid #A41034; } .button-partial svg { padding-top: 2px; padding-right: 8px; vertical-align: top; } ;</style> </head> <body class="expanded-grid-framework"> <textarea style="display:none" aria-hidden="true" aria-label="Hidden Textarea"> <form runat="server"></form> <WebPartPages:SPWebPartManager runat="server"/> </textarea> <!--WCMAuthoringReact--><header aria-label="Universal HBS Header" role="banner"><a href="#skipto-main" class="hideme skipto">Skip to Main Content</a><div class="universal-banner noindex"> <div class="color-framework grid-framework type-framework component-framework pattern-framework js-framework responsive-framework"> <div class="universal-header-v3"> <div class="black-bg"> <div class="container tablet-container mobile-container"> <div class="row"> <div class="span7"> <div class="hbs-logo" style="z-index: 100;"><a href="https://www.hbs.edu/" data-link-id="header-logo" aria-label="Harvard Business School Home"><img class="fluid" style="display: block;" loading="eager" width="151" height="64" src="https://webassets.hbs.edu/libs/framework/1.0/images/hbs-shield-3line.svg" alt=""></a></div> </div> <div class="span5 desktop-visible"> <div class="search-box tablet-hidden"> <div style="display:flex;margin-right:-8px;"> <div class="universal-banner-search-input"> <div class="slide"> <fieldset class="input" role="search"><input type="search" class="universal-site-search-query" aria-label="Search Text" name="qt" value="" data-placeholder="SEARCH" id="search-text" maxlength="250" style="box-sizing: content-box;float:none;" autocomplete="false"><input type="submit" class="universal-site-search-button" value="Search" id="search-submit"></fieldset> </div> </div> <div class="universal-banner-search" style="min-width:52px;"><a href="#" class="universal-banner-search-toggle block" aria-label="Toggle Search Box"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="fill:white;width:44px;" viewBox="0 0 177 100" version="1.1" focusable="false"> <path d="M137.686,11.342 C137.686,-15.909 115.595,-38 88.344,-38 C61.09,-38 39,-15.909 39,11.342 C39,36.724 58.168,57.607 82.818,60.355 L82.818,72.838 C79.304,74.521 76.898,77.714 76.898,81.419 L76.898,128.148 C76.898,133.588 82.023,138 88.345,138 C94.667,138 99.789,133.589 99.789,128.148 L99.789,81.419 C99.789,77.711 97.382,74.521 93.869,72.838 L93.869,60.354 C118.515,57.606 137.686,36.726 137.686,11.342 Z M56.032,11.225 C56.032,-6.759 70.606,-21.338 88.589,-21.338 C106.572,-21.338 121.142,-6.759 121.142,11.225 C121.142,29.205 106.572,43.78 88.589,43.78 C70.606,43.78 56.032,29.205 56.032,11.225 Z" transform="translate(88.343000, 50.000000) rotate(90.000000) translate(-88.343000, -50.000000) "/></svg></a></div> <div class="universal-banner-menu"><a href="#" class="universal-banner-menu-toggle block" aria-label="Toggle Flyout Menu"> <div class="universal-banner-hamburger"><span></span><span></span><span></span></div></a></div> </div> </div> </div> </div> </div> </div> </div> <div id="universal-slider-nav" class="hidden"> <nav class="gamma-uc site-title" aria-label="HBS Homepage"><a href="https://www.hbs.edu/Pages/default.aspx" class="white slidernav-ancillarynav-hbs-home">HBS Home</a></nav> <div class="hr" style="opacity: 0.3"></div> <nav aria-label="HBS Home Main"> <ul class="epsilon-uc unstyled unbulleted"> <li><a href="https://www.hbs.edu/about/Pages/default.aspx" class="slidernav-ancillarynav-about">About</a></li> <li><a href="https://www.hbs.edu/about/academic-programs/Pages/default.aspx" class="slidernav-ancillarynav-academic-programs">Academic Programs</a></li> <li><a href="https://www.alumni.hbs.edu/Pages/default.aspx" class="slidernav-ancillarynav-alumni">Alumni</a></li> <li><a href="https://www.hbs.edu/faculty/Pages/default.aspx" class="slidernav-ancillarynav-faculty-and-research">Faculty & Research</a></li> </ul> </nav> <div class="hr" style="opacity: 0.3"></div> <nav aria-label="HBS Home Utility"> <ul class="kappa-uc unstyled unbulleted"> <li><a href="https://www.library.hbs.edu/" class="slidernav-ancillarynav-baker-library">Baker Library</a></li> <li><a href="https://www.alumni.hbs.edu/giving/Pages/default.aspx" class="slidernav-ancillarynav-giving">Giving</a></li> <li><a href="https://hbr.org/" class="slidernav-ancillarynav-harvard-business-review">Harvard Business Review</a></li> <li><a href="https://www.hbs.edu/about/initiativesandprojects/Pages/default.aspx" class="slidernav-ancillarynav-initiatives">Initiatives</a></li> <li><a href="https://www.hbs.edu/news/Pages/landing.aspx" class="slidernav-ancillarynav-news">News</a></li> <li><a href="https://www.hbs.edu/recruiting/Pages/default.aspx" class="slidernav-ancillarynav-recruit">Recruit</a></li> </ul> </nav> <div class="hr" style="opacity: 0.3"></div> <nav aria-label="Footer"> <ul class="kappa-uc unstyled unbulleted"> <li><a href="https://www.hbs.edu/maps/" class="slidernav-ancillarynav-map-directions">Map / Directions</a></li> </ul> </nav> </div> </div> </div> </header><div class="mobile-hidden print-hidden"><a href="/Pages/site-feedback.aspx" aria-label="send feedback" class="send-feedback-link-cont"><span class="send-feedback-link"></span></a></div> <div id="container" class="type-framework color-framework grid-framework component-framework pattern-framework js-framework responsive-framework"> <div class="teal-inherit responsive-type slider-inject" ><div class="inherit-bg sticky-header-container"></div><header class=" inherit-bg site-header noindex crawl-hidden" aria-label="Site Header" role="banner"> <div class="container bg-img-container link-controller"> <div class="desktop-hidden"><button class="site-header-button slider-backdrop-above slider-open btn-glass black" data-target="flyout-navigation"> <div class="universal-banner-hamburger"><span></span><span></span><span></span></div></button><button class="site-header-button slider-backdrop-above slider-open btn-glass black" data-target="flyout-search"> <div class="universal-banner-search-icon" style="height:26px;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="fill:black;width:44px;position:relative;" viewBox="0 0 177 100" version="1.1" focusable="false"> <path d="M137.686,11.342 C137.686,-15.909 115.595,-38 88.344,-38 C61.09,-38 39,-15.909 39,11.342 C39,36.724 58.168,57.607 82.818,60.355 L82.818,72.838 C79.304,74.521 76.898,77.714 76.898,81.419 L76.898,128.148 C76.898,133.588 82.023,138 88.345,138 C94.667,138 99.789,133.589 99.789,128.148 L99.789,81.419 C99.789,77.711 97.382,74.521 93.869,72.838 L93.869,60.354 C118.515,57.606 137.686,36.726 137.686,11.342 Z M56.032,11.225 C56.032,-6.759 70.606,-21.338 88.589,-21.338 C106.572,-21.338 121.142,-6.759 121.142,11.225 C121.142,29.205 106.572,43.78 88.589,43.78 C70.606,43.78 56.032,29.205 56.032,11.225 Z" transform="translate(88.343000, 50.000000) rotate(90.000000) translate(-88.343000, -50.000000) "/></svg></div></button></div> <div class="gamma-uc site-home "> <div style="margin-top: 3px;"><a href="/" class="white black-bg">Alumni</a></div> </div> <nav aria-label="Site Utility" style=""> <ul class="toolbar "> <li class=""><a href="https://cas.hbs.edu/cas/login?service=https%3A%2F%2Fwww.alumni.hbs.edu%2Fevents%2FPages%2Fdefault.aspx" id="Login" aria-label="login" class=" ">Login</a></li> <li class=""><a href="/volunteer/" id="Volunteer" aria-label="volunteer" class=" ">Volunteer</a></li> <li class=""><a href="/clubs/" id="Clubs" aria-label="clubs" class=" ">Clubs</a></li> <li class=""><a href="/events/reunions/" id="Reunions" aria-label="reunions" class=" ">Reunions</a></li> <li class=""><a href="/bulletin/" id="Bulletin" aria-label="bulletin" class=" ">Bulletin</a></li> <li class=""><a href="/bulletin/class-notes/" id="ClassNotes" aria-label="class notes" class=" ">Class Notes</a></li> <li class=""><a href="/help/" id="Help" aria-label="help" class=" ">Help</a></li> <li class=""><a href="https://community.alumni.harvard.edu/give/16040805?appealcode=BW001" id="GiveNow" class="btn white ">Give Now</a></li> </ul> </nav> <div class="navigation" style=""> <div class="hr desktop-visible "></div> <nav class="mobile-hidden tablet-hidden " aria-label="Current Site"> <ul class="navbar sticky-header-appears" style="display:flex;justify-content:space-around;"> <li style="white-space:nowrap;" class=""><a href="/stories/" class=" first">Stories</a></li> <li style="white-space:nowrap;" class=""><a href="/community/Pages/directory.aspx" class=" ">Alumni Directory</a></li> <li style="white-space:nowrap;" class=""><a href="/learning/" class=" ">Lifelong Learning</a></li> <li style="white-space:nowrap;" class=""><a href="/careers/" class=" ">Careers</a></li> <li style="white-space:nowrap;" class="active"><a href="/events/" class="active ">Programs & Events</a></li> <li style="white-space:nowrap;" class=""><a href="/giving/" class=" last">Giving</a></li> </ul> </nav> </div> <div class="hr desktop-visible sticky-header-invisible"></div> </div> </header><style> .site-wide-welcome-widget .menu { display: none; } .component-framework .custom-btn.btn-large.btn-right>span { border-width: 49px; margin-top: -49px; } .component-framework .inherit-bg .custom-btn.btn-arrow:hover { color: white; background-color: black !important; text-decoration: underline; } .component-framework .inherit-bg .custom-btn.btn-arrow.btn-large.btn-right:hover>span { border-left-color: black !important; } </style><div class="container tablet-container mobile-container inherit-bg noindex"> <div class="desktop-visible" style="position:relative;top:15px;z-index:9;"> <div style="position:absolute;right:0px;margin-right: 30px;"><a href="#" class="submit-login custom-btn btn-arrow btn-large btn-right mobile-hidden"> <div class="deltc-uc bold2" style="font-size:32px;line-height:40px">LOG IN</div> <div class="kappa-uc bold2" style="font-size:17px;line-height:24px">For a more<br> personalized visit</div><span></span></a><a href="#" class="submit-login btn-arrow btn-large btn-right mobile-visible" style="width:75px;">Log in<span></span></a></div> </div> <div class="tablet-visible mobile-visible"> <div><a href="#" class="submit-login custom-btn btn-arrow btn-large btn-right mobile-hidden"> <div class="deltc-uc bold2" style="font-size:32px;line-height:40px">LOG IN</div> <div class="kappa-uc bold2" style="font-size:17px;line-height:24px">For a more<br> personalized visit</div><span></span></a><a href="#" class="submit-login btn-arrow btn-large btn-right mobile-visible" style="width:75px;">Log in<span></span></a></div> <div class="shim20"></div> </div> </div><div class="mobile-hidden print-hidden"><a href="/Pages/site-feedback.aspx" aria-label="send feedback" class="send-feedback-link-cont"><span class="send-feedback-link"></span></a></div> <!-- STARTINDEX --> <div class="mainContainer link-controller" runat="server"> <?xml version="1.0" encoding="UTF-8"?><main id="skipto-main" tabindex="-1" aria-label="Page content"> <div class="page-header inherit-bg" id=""> <div class="page-header-inner"> <div class="container tablet-container mobile-container " style="position:relative;" id=""> <ul class="nu responsive-breadcrumb toggle-container"> <li class="responsive-breadcrumb-toggle"><a href="#" class="toggle-button">…</a><span class="txt-arrow" aria-hidden="true">→</span></li> <li><a href="https://www.hbs.edu/Pages/default.aspx" class="ink">Harvard Business School</a><span class="txt-arrow" aria-hidden="true">→</span></li> <li><a href="/Pages/default.aspx" class="ink">Alumni</a><span class="txt-arrow" aria-hidden="true">→</span></li> <li> <div class="dropdown-container"><a class="ink nu dropdown-toggle" href="/events/Pages/default.aspx" role="button" aria-current="page">Programs & Events<span class="icon-select"></span></a><ul class="dropdown-menu nu"> <li><a href="/events/Pages/default.aspx" class="active inherit-color" aria-current="page">Programs & Events</a><div class="divider inherit-bg"></div> </li> <li><a href="/events/alumniforums.aspx" class="white">Alumni Forums</a></li> <li><a href="/events/BiGS/Pages/default.aspx" class="white">Doing Business in a Divided World</a></li> <li><a href="/events/Pages/virtualprograms_faqs-no_recordings.aspx" class="white">FAQs for Alumni Virtual Programs</a></li> <li><a href="/events/hbs-entrepreneurship-summit.aspx" class="white">HBS Entrepreneurship Summit</a></li> <li><a href="/events/hbsgnn/Pages/default.aspx" class="white">HBS Global Networking Night</a></li> <li><a href="/events/nvc/Pages/default.aspx" class="white">New Venture Competition</a></li> <li><a href="/events/reunions/Pages/default.aspx" class="white">Reunions</a></li> <li><a href="/events/Pages/klarman.aspx" class="white">Live from Klarman Hall</a></li> <li><a href="/events/Pages/recent-alumni-events.aspx" class="white">Recent Alumni Regional Events</a></li> <li><a href="/events/women50/Pages/default.aspx" class="white">Women at HBS</a></li> <li><a href="/events/AASU50/Pages/default.aspx" class="white">AASU50</a></li> <li><a href="/events/womens-leadership-summit.aspx" class="white">Women’s Leadership Summit</a></li> </ul> </div><span class="txt-arrow" aria-hidden="true">→</span></li> </ul> <div class="row tablet-row"> <div class="span11"> <h1 class="alpha light black mobile-hidden tablet-hidden" style="margin: 0;">Programs & Events</h1> <div class="toggle-container desktop-hidden mobile-breadcrumb-container"> <h1 class="alpha regular black"><a href="#" class="toggle-button black"> <div style="float: left; margin-right: 8px;"> <div class="mobile-visible"><svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" style="" viewBox="0 0 80 80" version="1.1" class="plus-icon" focusable="false"> <path fill="currentColor" d="M40,6 C58.7,6 74,21.3 74,40 C74,58.7 58.7,74 40,74 C21.3,74 6,58.7 6,40 C6,21.3 21.3,6 40,6 L40,6 Z M40,0 C17.9,0 0,17.9 0,40 C0,62.1 17.9,80 40,80 C62.1,80 80,62.1 80,40 C80,17.9 62.1,0 40,0 L40,0 Z" fill-rule="nonzero"/> <g fill="currentColor" transform="translate(17.000000, 17.000000)"> <rect class="plus-bar" x="18" y="0.1" width="9.9" height="45.8"/> <rect transform="translate(23.000000, 23.050000) rotate(-90.000000) translate(-23.000000, -23.050000) " x="18.05" y="0.149999995" width="9.9" height="45.8"/> </g></svg></div> <div class="tablet-visible"><svg xmlns="http://www.w3.org/2000/svg" height="34" width="34" style="" viewBox="0 0 80 80" version="1.1" class="plus-icon" focusable="false"> <path fill="currentColor" d="M40,6 C58.7,6 74,21.3 74,40 C74,58.7 58.7,74 40,74 C21.3,74 6,58.7 6,40 C6,21.3 21.3,6 40,6 L40,6 Z M40,0 C17.9,0 0,17.9 0,40 C0,62.1 17.9,80 40,80 C62.1,80 80,62.1 80,40 C80,17.9 62.1,0 40,0 L40,0 Z" fill-rule="nonzero"/> <g fill="currentColor" transform="translate(17.000000, 17.000000)"> <rect class="plus-bar" x="18" y="0.1" width="9.9" height="45.8"/> <rect transform="translate(23.000000, 23.050000) rotate(-90.000000) translate(-23.000000, -23.050000) " x="18.05" y="0.149999995" width="9.9" height="45.8"/> </g></svg></div> </div> <div style="overflow: hidden;">Programs & Events <div class="shim3 tablet-visible"></div> </div></a></h1> <div class="toggle-show has-slide mobile-breadcrumb"><ul> <li class=""> <a href="/events/alumniforums.aspx" class=" ink">Alumni Forums</a> </li> <li class=""> <a href="/events/BiGS/Pages/default.aspx" class=" ink">Doing Business in a Divided World</a> </li> <li class=""> <a href="/events/Pages/virtualprograms_faqs-no_recordings.aspx" class=" ink">FAQs for Alumni Virtual Programs</a> </li> <li class=""> <a href="/events/hbs-entrepreneurship-summit.aspx" class=" ink">HBS Entrepreneurship Summit</a> </li> <li class=""> <a href="/events/hbsgnn/Pages/default.aspx" class=" ink">HBS Global Networking Night</a> </li> <li class=""> <a href="/events/nvc/Pages/default.aspx" class=" ink">New Venture Competition</a> </li> <li class=""> <a href="/events/reunions/Pages/default.aspx" class=" ink">Reunions</a> </li> <li class=""> <a href="/events/Pages/klarman.aspx" class=" ink">Live from Klarman Hall</a> </li> <li class=""> <a href="/events/Pages/recent-alumni-events.aspx" class=" ink">Recent Alumni Regional Events</a> </li> <li class=""> <a href="/events/women50/Pages/default.aspx" class=" ink">Women at HBS</a> </li> <li class=""> <a href="/events/AASU50/Pages/default.aspx" class=" ink">AASU50</a> </li> <li class=""> <a href="/events/womens-leadership-summit.aspx" class=" ink">Women’s Leadership Summit</a> </li> </ul> </div> </div> <div class="mobile-indent"> <div class="sticky-header-hidden"></div> </div> </div> </div> <div class="shim22 mobile-hidden"></div> <div class="shim14 mobile-visible"></div> </div> </div> </div> <div class="html "> <div class="html"> <div class="cap"></div> <div class="container"> <div class="shim10"></div> <div class="mu regular"> <p><strong>To view more HBS and clubs events, please log in and use the tools at left to filter and refine your results. </strong>Information on current and future reunions is available on the <a href="/events/reunions/">Reunions</a> webpage. Please contact Alumni Relations (<a href="mailto:alumni@hbs.edu">alumni@hbs.edu</a> or 1.617.495.6890) if you have any questions about alumni events.</p> </div> </div> </div> </div><div id="search1-app" class="search1-embedded"> <div class="facetctrl-ajax-html page-header"> <div class="inherit-bg"></div> </div> <div class="mobile-visible tablet-visible"> <div class="smoke-bg responsive-filter-bar facetctrl-sticky"> <div class="mobile-container tablet-container"><a href="#filter-top" class="black epsilon nosmooth">Filter Results<span class="facetctrl-ajax-html"></span><span class="toggle-hide"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12" height="9" viewBox="0 0 32 24" version="1.1" focusable="false" style="padding-left: 5px;"> <title>Arrow Down</title> <g transform="translate(16.000000, 12.000000) rotate(180.000000) translate(-16.000000, -12.000000) " fill="#000000" fill-rule="nonzero"> <path d="M0,20 L32,20 L32,24 L0,24 L0,20 Z M16,0 L32,16 L0,16 L16,0 Z"/> </g></svg></span></a></div> </div> <div class="smoke-bg responsive-filter-bar facetctrl-sticky-target" id="filter-top"> <div class="mobile-container tablet-container"> <div class="toggle-container has-memory"><a href="#" class="toggle-button black epsilon">Filter Results<span class="facetctrl-ajax-html"></span><span class="toggle-hide"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12" height="9" viewBox="0 0 32 24" version="1.1" focusable="false" style="padding-left: 5px;"> <title>Arrow Down</title> <g transform="translate(16.000000, 12.000000) rotate(180.000000) translate(-16.000000, -12.000000) " fill="#000000" fill-rule="nonzero"> <path d="M0,20 L32,20 L32,24 L0,24 L0,20 Z M16,0 L32,16 L0,16 L16,0 Z"/> </g></svg></span><span class="toggle-show"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" version="1.1" viewBox="0 0 32 32" focusable="false" style="padding-left: 5px;"> <title>Arrow Up</title> <path d="M0 24h32v4h-32zM16 4l16 16h-32z"/></svg></span></a><div class="toggle-show has-slide"> <div class="shim12"></div> <div id="facet-navigation-mobile" style="padding-bottom:24px"></div> </div> </div> </div> </div> </div> <div class="container tablet-container mobile-container facetctrl-search-container facetctrl-fade "> <div class="cap mobile-cap tablet-cap"></div> <div class=" "> <div class="row tablet-row"> <div class="span3 mobile-hidden tablet-hidden"> <div class="mobile-hidden rendered-visible"> <div class="responsive-facet-inject-target"> <div class="facetctrl-ajax-html"></div> <div id="facet-navigation"></div> <div class="clear"></div> <div class="shim24"></div> </div> </div> </div> <div class="facetctrl-ajax-classes span6 tablet-span8"> <div xmlns:dc="http://dublincore.org/documents/dcmi-namespace/" class="facetctrl-ajax-html"> <div class="facet-breadcrumb-pattern"></div> </div> <div xmlns:dc="http://dublincore.org/documents/dcmi-namespace/" class="facetctrl-ajax-html"></div> <div xmlns:dc="http://dublincore.org/documents/dcmi-namespace/" style="float:left;" class="nu facetctrl-sort"><span class="facetctrl-ajax-html print-hidden"></span></div> <div xmlns:dc="http://dublincore.org/documents/dcmi-namespace/" style="float:right;" class="nu print-hidden"><span class="facetctrl-ajax-html"></span></div> <div xmlns:dc="http://dublincore.org/documents/dcmi-namespace/" style="float:left;margin-top:-5px;"><span class="facetctrl-ajax-html print-hidden"></span></div> <div xmlns:dc="http://dublincore.org/documents/dcmi-namespace/" class="clear"></div> <div xmlns:dc="http://dublincore.org/documents/dcmi-namespace/" class="facetctrl-ajax-html facetctrl-breadcrumb-rule"></div> <div xmlns:dc="http://dublincore.org/documents/dcmi-namespace/" class="facetctrl-ajax-html"></div> <div xmlns:dc="http://dublincore.org/documents/dcmi-namespace/" class="facetctrl-ajax-html"></div> <div xmlns:dc="http://dublincore.org/documents/dcmi-namespace/" class="facetctrl-results"> <div class="media-list9"> <div class="media hover-container" id="alumni-event-exed-decr-945"> <div class="row-left" data-wcm-edit-url=""> <div class="span1"><span class="event-thumbnail" style="margin-bottom:0;top:0">Dec<span>01</span></span></div> <div class="span99"> <ul class="linear mu-uc black"> <li>01–06 DEC 2024</li> <li class="ash">Executive Education</li> <li>HBS Campus</li> </ul> <h4 class="eta"><a href="https://www.exed.hbs.edu/designing-executing-corporate-revitalization/" class="block hover-sync">Designing and Executing Corporate Revitalization</a></h4> <div class="shim1"></div> <div class="nu">Confront major corporate challenges with confidence. Set a strategic direction and lead a transformation that will revitalize your company.</div> </div> </div> </div> <div class="media hover-container" id="alumni-event-exed-wob-811"> <div class="row-left" data-wcm-edit-url=""> <div class="span1"><span class="event-thumbnail" style="margin-bottom:0;top:0">Dec<span>02</span></span></div> <div class="span99"> <ul class="linear mu-uc black"> <li>02–06 DEC 2024</li> <li class="ash">Executive Education</li> <li>HBS Campus</li> </ul> <h4 class="eta"><a href="https://www.exed.hbs.edu/women-boards-succeeding-corporate-director/" class="block hover-sync">Women on Boards</a></h4> <div class="shim1"></div> <div class="nu">Become an outstanding corporate board candidate who approaches the board selection process strategically and contributes effectively.</div> </div> </div> </div> <div class="media hover-container" id="alumni-event-exed-riskv-806"> <div class="row-left" data-wcm-edit-url=""> <div class="span1"><span class="event-thumbnail" style="margin-bottom:0;top:0">Dec<span>02</span></span></div> <div class="span99"> <ul class="linear mu-uc black"> <li>02–12 DEC 2024</li> <li class="ash">Executive Education</li> <li>Virtual</li> </ul> <h4 class="eta"><a href="https://www.exed.hbs.edu/risk-management-corporate-leaders-virtual/" class="block hover-sync">Risk Management for Corporate Leaders—Virtual</a></h4> <div class="shim1"></div> <div class="nu">This live online program provides frameworks and tools for senior leadership and corporate boards to strengthen your company's approach to managing both internal and external risks.</div> </div> </div> </div> <div class="media hover-container" id="alumni-event-exed-pld-1004"> <div class="row-left" data-wcm-edit-url=""> <div class="span1"><span class="event-thumbnail" style="margin-bottom:0;top:0">Dec<span>03</span></span></div> <div class="span99"> <ul class="linear mu-uc black"> <li>03 DEC 2024–27 JUN 2025</li> <li class="ash">Executive Education</li> <li>Virtual</li> </ul> <h4 class="eta"><a href="https://www.exed.hbs.edu/leadership-development/" class="block hover-sync">Program for Leadership Development</a></h4> <div class="shim1"></div> <div class="nu">Stay on the leadership fast-track by expanding your business acumen and ability to lead.</div> </div> </div> </div> <div class="media hover-container" id="alumni-event-exed-li-987"> <div class="row-left" data-wcm-edit-url=""> <div class="span1"><span class="event-thumbnail" style="margin-bottom:0;top:0">Dec<span>08</span></span></div> <div class="span99"> <ul class="linear mu-uc black"> <li>08–13 DEC 2024</li> <li class="ash">Executive Education</li> <li>HBS Campus</li> </ul> <h4 class="eta"><a href="https://www.exed.hbs.edu/leading-building-culture-innovation/" class="block hover-sync">Leading and Building a Culture of Innovation</a></h4> <div class="shim1"></div> <div class="nu">Unleash your organization’s collective genius and set the stage for continuous, transformative innovation that fuels business growth.</div> </div> </div> </div> <div class="media hover-container" id="alumni-event-exed-ald-997"> <div class="row-left" data-wcm-edit-url=""> <div class="span1"><span class="event-thumbnail" style="margin-bottom:0;top:0">Dec<span>08</span></span></div> <div class="span99"> <ul class="linear mu-uc black"> <li>08–13 DEC 2024</li> <li class="ash">Executive Education</li> <li>HBS Campus</li> </ul> <h4 class="eta"><a href="https://www.exed.hbs.edu/authentic-leader-development/" class="block hover-sync">Authentic Leader Development</a></h4> <div class="shim1"></div> <div class="nu">Increase your effectiveness as a leader and earn the trust of colleagues by leading from your own core vision and most deeply held values.</div> </div> </div> </div> <div class="media hover-container" id="alumni-event-57163"> <div class="row-left" data-wcm-edit-url=""> <div class="span1"><span class="event-thumbnail" style="margin-bottom:0;top:0">Dec<span>13</span></span></div> <div class="span99"> <ul class="linear mu-uc black"> <li>8:30 AM – 6:45 PM +04, 13 Dec 2024</li> <li class="ash">Virtual Programming</li> <li>Virtual</li> </ul> <h4 class="eta"><a href="https://www.alumni.hbs.edu/events/Pages/event-details.aspx?eventId=57163" class="block hover-sync">AI Elevate: From Readiness to Exponential Growth</a></h4> <div class="shim1"></div> <div class="nu">Join top AI experts including HBS faculty, business leaders, researchers, and government officials for AI Elevate: From Readiness to Exponential Growth, a one-day conference organized by the Digital Data Design Institute at Harvard and the Harvard Business School Club of the Gulf Cooperation Council. Register at https://d3.harvard.edu/events/ai-elevate-from-readiness-to-exponential-growth/</div> </div> </div> </div> <div class="media hover-container" id="alumni-event-exed-sbsca-1012"> <div class="row-left" data-wcm-edit-url=""> <div class="span1"><span class="event-thumbnail" style="margin-bottom:0;top:0">Dec<span>15</span></span></div> <div class="span99"> <ul class="linear mu-uc black"> <li>15–20 DEC 2024</li> <li class="ash">Executive Education</li> <li>HBS Campus</li> </ul> <h4 class="eta"><a href="https://www.exed.hbs.edu/strategy-building-sustaining-competitive-advantage/" class="block hover-sync">Strategy: Building and Sustaining Competitive Advantage</a></h4> <div class="shim1"></div> <div class="nu">Look ahead, analyze strategic tradeoffs, and craft groundbreaking strategies for staying ahead of the competition—today and in the future.</div> </div> </div> </div> <div class="media hover-container" id="alumni-event-exed-align-983"> <div class="row-left" data-wcm-edit-url=""> <div class="span1"><span class="event-thumbnail" style="margin-bottom:0;top:0">Dec<span>15</span></span></div> <div class="span99"> <ul class="linear mu-uc black"> <li>15–20 DEC 2024</li> <li class="ash">Executive Education</li> <li>HBS Campus</li> </ul> <h4 class="eta"><a href="https://www.exed.hbs.edu/aligning-strategy-sales/" class="block hover-sync">Aligning Strategy and Sales</a></h4> <div class="shim1"></div> <div class="nu">Maximize revenue and growth by ensuring that sales execution is closely aligned with strategic priorities.</div> </div> </div> </div> <div class="media hover-container" id="alumni-event-exed-gmp-1003"> <div class="row-left" data-wcm-edit-url=""> <div class="span1"><span class="event-thumbnail" style="margin-bottom:0;top:0">Jan<span>06</span></span></div> <div class="span99"> <ul class="linear mu-uc black"> <li>06 JAN–25 APR 2025</li> <li class="ash">Executive Education</li> <li>Virtual</li> </ul> <h4 class="eta"><a href="https://www.exed.hbs.edu/general-management-program/" class="block hover-sync">General Management Program</a></h4> <div class="shim1"></div> <div class="nu">Move beyond your field of expertise to become an exceptional functional leader who aligns business activities to achieve strategic goals.</div> </div> </div> </div> <div class="media hover-container" id="alumni-event-exed-dylv-825"> <div class="row-left" data-wcm-edit-url=""> <div class="span1"><span class="event-thumbnail" style="margin-bottom:0;top:0">Jan<span>07</span></span></div> <div class="span99"> <ul class="linear mu-uc black"> <li>07 JAN–08 APR 2025</li> <li class="ash">Executive Education</li> <li>Virtual</li> </ul> <h4 class="eta"><a href="https://www.exed.hbs.edu/developing-yourself-leader-virtual/" class="block hover-sync">Developing Yourself as a Leader—Virtual</a></h4> <div class="shim1"></div> <div class="nu">To be a high-potential, emerging leader one must have the skillsets to gain influence and increase impact across an organization. Explore how to put theory into action, improve colleagues' perceptions and collaborate more effectively.</div> </div> </div> </div> <div class="media hover-container" id="alumni-event-exed-inno-831"> <div class="row-left" data-wcm-edit-url=""> <div class="span1"><span class="event-thumbnail" style="margin-bottom:0;top:0">Jan<span>12</span></span></div> <div class="span99"> <ul class="linear mu-uc black"> <li>12–16 JAN 2025</li> <li class="ash">Executive Education</li> <li>HBS Campus</li> </ul> <h4 class="eta"><a href="https://www.exed.hbs.edu/managing-innovation/" class="block hover-sync">Managing Innovation</a></h4> <div class="shim1"></div> <div class="nu">Create innovation plans that align with your firm's strategy, manage today’s diverse risks, and recognize new opportunities to transform your business.</div> </div> </div> </div> <div class="media hover-container" id="alumni-event-exed-agb-819"> <div class="row-left" data-wcm-edit-url=""> <div class="span1"><span class="event-thumbnail" style="margin-bottom:0;top:0">Jan<span>12</span></span></div> <div class="span99"> <ul class="linear mu-uc black"> <li>12–15 JAN 2025</li> <li class="ash">Executive Education</li> <li>HBS Campus</li> </ul> <h4 class="eta"><a href="https://www.exed.hbs.edu/agribusiness-seminar/" class="block hover-sync">Agribusiness Seminar</a></h4> <div class="shim1"></div> <div class="nu">Determine the best trajectory for your business in the context of today's constantly changing global food system and agribusiness industry.</div> </div> </div> </div> <div class="media hover-container" id="alumni-event-exed-selpi-891"> <div class="row-left" data-wcm-edit-url=""> <div class="span1"><span class="event-thumbnail" style="margin-bottom:0;top:0">Jan<span>13</span></span></div> <div class="span99"> <ul class="linear mu-uc black"> <li>13 JAN–05 SEP 2025</li> <li class="ash">Executive Education</li> <li>Mumbai, India</li> </ul> <h4 class="eta"><a href="https://www.exed.hbs.edu/senior-executive-leadership-program-india/" class="block hover-sync">Senior Executive Leadership Program—India</a></h4> <div class="shim1"></div> <div class="nu">Prepare to navigate the changing economy, secure a competitive edge, and lead a high-performance business in India and around the world.</div> </div> </div> </div> <div class="media hover-container" id="alumni-event-exed-ma-952"> <div class="row-left" data-wcm-edit-url=""> <div class="span1"><span class="event-thumbnail" style="margin-bottom:0;top:0">Jan<span>19</span></span></div> <div class="span99"> <ul class="linear mu-uc black"> <li>19–24 JAN 2025</li> <li class="ash">Executive Education</li> <li>HBS Campus</li> </ul> <h4 class="eta"><a href="https://www.exed.hbs.edu/mergers-acquisitions-strategy-execution-post-merger-management/" class="block hover-sync">Mergers and Acquisitions</a></h4> <div class="shim1"></div> <div class="nu">Lead and optimize the overall M&A process for your business, from identifying the right transactions to executing post-deal integration.</div> </div> </div> </div> </div> </div> <div xmlns:dc="http://dublincore.org/documents/dcmi-namespace/" id="facet-pagination" class="clear"> <div class="facetctrl-ajax-pagination hbsred-bg hidden" style="text-align:center;margin-bottom:32px;"><a href="?_ajax_pagination=1&page=1" class="facetctrl-ajax-nextpage white lambda-uc btn-bar hbsred-bg">Load More<span class="icon-expand-white" style="margin-left:10px;margin-bottom:1px;"></span></a></div> </div> </div> <div class="facetctrl-ajax-html facetctrl-ajax-classes search-right-sidebar span3 tablet-span4"> <div class="facetctrl-ajax-html"><div xmlns:atom="http://www.w3.org/2005/Atom" xmlns:ext="http://www.hbs.edu" xmlns:feed="http://www.hbs.edu" xmlns:gigya="urn:com:gigya:api" class="sidebar h3-kappa-uc"> <div class="mobile-visible"> <div class="hr4"></div> <div class="shim20"></div> </div> <h3 style="margin-bottom:22px;">Cold Call Podcast</h3><a href="https://hbswk.hbs.edu/item/cold-call-can-a-coffee-shop-in-utah-help-solve-underemployment-for-people-with-disabilities" class="tile"> <div class="media-img"><img loading="lazy" src="https://hbswk.hbs.edu/PublishingImages/241004-cc-luckyones-v1-640.jpg" class="fluid"></div> <ul class="mu-uc linear"> <li class="ink">29 Oct 2024</li> <li class="ash">HBS Working Knowledge</li> </ul> <div class="shim5"></div> <div class="kappa u">Can a Coffee Shop in Utah Help Solve Underemployment for People with Disabilities?</div></a><div class="hr" style="margin:26px 0px;"></div> <h3 style="margin-bottom:22px;">Skydeck Podcast</h3><a href="https://www.alumni.hbs.edu/stories/Pages/story-bulletin.aspx?num=9518" class="tile"> <div class="media-img"><img loading="lazy" src="https://www.alumni.hbs.edu/PublishingImages/skydeck/2024/9518_Tim_Sweeney_th.jpg" class="fluid"></div> <ul class="mu-uc linear"> <li class="ink">14 Nov 2024</li> <li class="ash">Skydeck</li> </ul> <div class="shim5"></div> <div class="kappa u">How the Insurance Industry Can Weather the Storms</div></a><div class="shim5"></div> <div class="paragraph">Liberty Mutual CEO Tim Sweeney (MBA 1991) on what it will really take to adapt to the realities of climate change</div> <div class="shim10"></div> <p class="more-arrow mu"><a href="/events/Pages/skydeck.aspx">More Podcasts</a></p> <div class="hr" style="margin:26px 0px;"></div> <div class="box-gray"><span class="kappa-uc">Find out what's happening at clubs & associations around the globe</span><div class="shim28"></div><a class="btn-arrow btn-right" href="/clubs/Pages/global-calendar.aspx">Global Calendar<span class="arr"></span></a></div> </div></div> </div> </div> <div class="nu"> <div class="facetctrl-ajax-html"></div> </div> </div> </div> </div><script> var _domready = _domready || []; _domready.push(function(){ if (window.searchPreInit) searchPreInit(); loadFacets(); var path = document.location.pathname; if ($("meta[name=HBSSearchUrl]").length == 0 && path.indexOf('search.aspx') != -1) { $("head").append('<meta name="HBSSearchUrl" content="'+path+'"/>'); $("meta[name=HBSSearchSubset]").remove() } $(document).bind("framework.breakpoint",function(){ loadFacets(); }) }) function loadFacets(){ FacetController.ready(function(){ $('.isotope-installed').removeClass('isotope-installed'); var facetCtrl = new FacetController({container:"#search1-app", ajax:true }); window.facetCtrl = facetCtrl; // when data is ready to render facetCtrl.onRender(function(){ $(".facetctrl-breadcrumb").html(facetCtrl.renderBreadcrumb()); var fhtml = facetCtrl.renderNavigation(); if ($('html.ua-desktop').length == 0) { $("#facet-navigation-mobile").html(fhtml); } else { $("#facet-navigation").html(fhtml); } $(".facetctrl-clone-facet").each(function(){ var facetName = $(this).data('facet-name'); var facetHtml = facetCtrl.renderNavigation(facetName); if (facetHtml) { $(this).find('.facetctrl-clone-facet-target').html(facetHtml); } else { $(this).empty(); } }) $(".facetctrl-query").each(function(){ $(".universal-site-search-query").val($(this).data('query')); }) $(document).trigger('framework.domupdate'); facetCtrl.bindEvents(); facetCtrl.updateInputFields(); console.info('onrender'); }) eval($("#facetctrl-config").html()); var data = eval($("#facetctrl-data").html()); facetCtrl.loadData(data); facetCtrl.render(); }) } </script><script type="text/facetdata" id="facetctrl-data"> new Object({ total:50, pages:4, step:15, page:1, facets:[ { "facet":"filter", "label":"Next 30 Days", "id":"next", "count":"9" }, { "facet":"filter", "label":"Past Events", "id":"past", "count":"891" }, { "facet":"filter", "label":"Custom Date", "id":"Custom", "class":"custom-date", "count":"50" }, {"facet":"type","label":"Executive Education","id":"Executive Education","count":"49"}, {"facet":"type","label":"Virtual Programming","id":"Virtual Programming","count":"1"}, {}, ] }); </script><script type="text/facetconfig" id="facetctrl-config"> var root = new FacetGroup({facetCtrl:facetCtrl}); var facet = null; facet = new FacetClear({facetCtrl:facetCtrl}); root.append(facet); facet = new FacetList({label:"Refine By", key:"filter", displayCounts: true,singleSelect: true, options:[ {label:"Default", filter:"Default" }, {label:"Next 30 Days", filter:"Next 30 Days" }, {label:"Past Events", filter:"Past Events" }, {label:"Custom Date", filter:"Custom Date" } ], moreLimit: 6, moreStyle:'Default', defaultCollapsed: false, displayZeros: true, facetCtrl:facetCtrl }); root.append(facet); facet = new FacetList({label:"Category", key:"type", displayAllButton: true, allLabel: "View All", displayCounts: true, moreLimit: 12, sort: 'Alpha', moreStyle:'Default', defaultCollapsed: false, displayZeros: true, facetCtrl:facetCtrl }); root.append(facet); facet = new FacetList({label:"Topic", key:"topic", displayAllButton: true, allLabel: "View All", displayCounts: true, moreLimit: 12, sort: 'Alpha', moreStyle:'Default', defaultCollapsed: false, displayZeros: true, facetCtrl:facetCtrl }); root.append(facet); facet = new FacetList({label:"Industry", key:"industry", displayAllButton: true, allLabel: "View All", displayCounts: true, moreLimit: 12, sort: 'Alpha', moreStyle:'Default', defaultCollapsed: true, displayZeros: true, facetCtrl:facetCtrl }); root.append(facet); window.facetCtrl.install(root); </script> <div class="desktop-visible" style="margin-top:-32px;"></div> <div> <div class="base mobile-base tablet-base"></div> </div> </main> </div> <!-- ENDINDEX --> <div class="clear"></div> </div> <div class="back-to-top"><a href="#" class="icon-back-to-top" aria-label="Scroll back to top of page"></a></div><footer role="contentinfo"> <div class="universal-footer noindex" data-feature="universal-footer"> <div class="color-framework grid-framework type-framework component-framework pattern-framework js-framework responsive-framework"> <div class="black-bg link-controller white universal-footer-v3 responsive-type"> <div class="container tablet-container mobile-container"> <div class="shim48 desktop-visible"></div> <div class="shim36 tablet-visible"></div> <div class="shim28 mobile-visible"></div> <div class="hidden">ǁ</div> <div class="row tablet-row mobile-flip crawler-noindex"> <div class="span6 mobile-span6 tablet-span7 mobile-stacks"> <div class="shim2 mobile-visible"></div> <div class="hr white-bg mobile-visible" style="margin-left:0;"></div> <div class="shim34 mobile-visible"></div> <div class="row-left"> <div class="span2 mobile-span1"><a href="https://www.hbs.edu/maps/" id="header-map-pic-tablet" class="default-map-link"><img loading="lazy" width="172" height="160" class="white-stroke4 fluid nowarn" src="https://webassets.hbs.edu/templates/headers/images/footer_baker_172x160.jpg" alt="Campus Map"></a><div class="shim17"></div> </div> <div class="span99 address-block"> External Relations<br xmlns:app="http://www.hbs.edu/appnAccess/schemas"> Harvard Business School<br xmlns:app="http://www.hbs.edu/appnAccess/schemas"> Teele Hall<br xmlns:app="http://www.hbs.edu/appnAccess/schemas"> Soldiers Field<br xmlns:app="http://www.hbs.edu/appnAccess/schemas"> Boston, MA 02163<br xmlns:app="http://www.hbs.edu/appnAccess/schemas"> Phone: <strong xmlns:app="http://www.hbs.edu/appnAccess/schemas">1.617.495.6890</strong><br xmlns:app="http://www.hbs.edu/appnAccess/schemas"> Email: <strong xmlns:app="http://www.hbs.edu/appnAccess/schemas"><a class="to email inherit-color" href="#" id="footer-email">alumni+hbs.edu</a></strong><div class="shim6"></div> <div class="more"> <div class="shim6"></div><span class="txt-arrow" aria-hidden="true">→</span><a href="https://www.hbs.edu/maps/" id="footer-maps" class="default-map-link">Map & Directions</a></div> <div class="more mu"> <div class="shim6"></div><span class="txt-arrow" aria-hidden="true">→</span><a href="https://www.alumni.hbs.edu/help/Pages/staff-directory.aspx">More Contact Information</a></div> <div class="shim17 desktop-visible"></div> <div class="shim23 tablet-visible"></div> </div> </div> </div> <div class="span6 tablet-span5 mobile-span6 mobile-flip-up"> <ul class="social-grid new-grid inherit-color-on-hover"> <li class="fb"><a href="https://www.facebook.com/HBSAlumni" class="block inherit-color-onhover" style="text-decoration:none;position:relative;height:48px;width:48px;" aria-label="Facebook"><svg xmlns="http://www.w3.org/2000/svg" width="48px" height="48px" viewBox="0 0 110 110" version="1.1" focusable="false"> <circle cx="55" cy="55" r="50" stroke-width="6" stroke="currentColor"/></svg><div style="position:absolute;top:9px;left:8px;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="30" height="30" viewBox="0 0 100 100" version="1.1" focusable="false"> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="Facebook" fill-rule="nonzero" fill="currentColor"> <path d="M71.644898,50.0163265 L57.6285714,50.0163265 L57.6285714,99.9265306 L36.8938776,99.9265306 L36.8938776,50.0163265 L27.0244898,50.0163265 L27.0244898,32.3673469 L36.8938776,32.3673469 L36.8938776,20.922449 C36.8938776,12.7510204 40.7714286,0.00816326531 57.8408163,0.00816326531 L73.2204082,0.0653061224 L73.2204082,17.2 L62.044898,17.2 C60.2326531,17.2 57.6530612,18.1061224 57.6530612,22.0163265 L57.6530612,32.3673469 L73.4571429,32.3673469 L71.644898,50.0163265 Z"/> </g> </g></svg></div></a></li> <li class="youtube"><a href="https://www.youtube.com/user/HarvardBSchool/" class="block inherit-color-onhover" style="text-decoration:none;position:relative;height:48px;width:48px;" aria-label="YouTube"><svg xmlns="http://www.w3.org/2000/svg" width="48px" height="48px" viewBox="0 0 110 110" version="1.1" focusable="false"> <circle cx="55" cy="55" r="50" stroke-width="6" stroke="currentColor"/></svg><div style="position:absolute;top:11px;left:11px;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="27" height="27" viewBox="0 0 100 100" version="1.1" focusable="false"> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="Youtube" fill-rule="nonzero" fill="currentColor"> <path d="M95.8333333,27.5 C94.7048223,23.4555714 91.5444286,20.2951777 87.5,19.1666667 C80.0416667,17.1666667 50,17.1666667 50,17.1666667 C50,17.1666667 20.0416667,17.125 12.5,19.1666667 C8.45557138,20.2951777 5.29517772,23.4555714 4.16666667,27.5 C2.7520054,35.1404545 2.05452793,42.896404 2.08333333,50.6666667 C2.05971215,58.4090998 2.75716792,66.1369098 4.16666667,73.75 C5.29517772,77.7944286 8.45557138,80.9548223 12.5,82.0833333 C19.9583333,84.0833333 50,84.0833333 50,84.0833333 C50,84.0833333 79.9583333,84.0833333 87.5,82.0833333 C91.5444286,80.9548223 94.7048223,77.7944286 95.8333333,73.75 C97.2148875,66.1342926 97.8844432,58.4065038 97.8333333,50.6666667 C97.8896269,42.8990092 97.2200504,35.143081 95.8333333,27.5 Z M40.4166667,65 L40.4166667,36.2916667 L65.4166667,50.6666667 L40.4166667,65 Z"/> </g> </g></svg></div></a></li> <li class="linkedin"><a href="https://www.linkedin.com/company/harvard-business-school-alumni" class="block inherit-color-onhover" style="text-decoration:none;position:relative;height:48px;width:48px;" aria-label="LinkedIn"><svg xmlns="http://www.w3.org/2000/svg" width="48px" height="48px" viewBox="0 0 110 110" version="1.1" focusable="false"> <circle cx="55" cy="55" r="50" stroke-width="6" stroke="currentColor"/></svg><div style="position:absolute;top:12px;left:13px;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="23" height="23" viewBox="0 0 100 100" version="1.1" class="onhover-container" focusable="false"> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g fill-rule="nonzero" fill="currentColor" class="linkedin inherit-fill-onhover"> <path d="M24.4043689,12.3014563 C24.4043689,19.0956311 18.9412621,24.6031553 12.2021845,24.6031553 C5.4631068,24.6031553 0,19.0956311 0,12.3014563 C-1.72461829e-15,5.50752427 5.4631068,0 12.2021845,0 C18.9415049,0 24.4043689,5.50752427 24.4043689,12.3014563 Z M22.618932,33.3332524 L1.98373786,33.3332524 L1.98373786,100 L22.618932,100 L22.618932,33.3332524 L22.618932,33.3332524 Z M55.6046117,33.3332524 L35.8131068,33.3332524 L35.8131068,100 L55.6046117,100 C55.6046117,100 55.6046117,75.2725728 55.6046117,65.0046117 C55.6046117,55.6298544 59.9199029,50.0495146 68.1791262,50.0495146 C75.7684466,50.0495146 79.4143204,55.4065534 79.4143204,65.0046117 C79.4143204,74.6029126 79.4143204,100 79.4143204,100 L99.9495146,100 C99.9495146,100 99.9495146,75.6446602 99.9495146,57.7876214 C99.9495146,39.9305825 89.8308252,31.2995146 75.6936893,31.2995146 C61.5565534,31.2995146 55.6043689,42.3114078 55.6043689,42.3114078 L55.6043689,33.3332524 L55.6046117,33.3332524 Z" class="linkedin-icon"/> </g> </g></svg></div></a></li> <li class="default instagram"><a href="http://instagram.com/hbsalumni" class="block inherit-color-onhover" style="text-decoration:none;position:relative;height:48px;width:48px;" aria-label="Instagram"><svg xmlns="http://www.w3.org/2000/svg" width="48px" height="48px" viewBox="0 0 110 110" version="1.1" focusable="false"> <circle cx="55" cy="55" r="50" stroke-width="6" stroke="currentColor"/></svg><div style="position:absolute;top:11px;left:11px;"><svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" style="black-fill" viewBox="0 0 100 100" version="1.1" focusable="false"> <path fill="currentColor" d="M50,0 C36.4166667,0 34.7208333,0.0625 29.3875,0.3 C24.0625,0.55 20.4375,1.3875 17.25,2.625 C13.9625,3.9 11.1708333,5.6125 8.39166667,8.39166667 C5.6125,11.1708333 3.89583333,13.9583333 2.625,17.25 C1.3875,20.4375 0.545833333,24.0625 0.3,29.3875 C0.05,34.7208333 0,36.4166667 0,50 C0,63.5833333 0.0625,65.2791667 0.3,70.6125 C0.55,75.9333333 1.3875,79.5625 2.625,82.75 C3.9,86.0333333 5.6125,88.8291667 8.39166667,91.6083333 C11.1708333,94.3833333 13.9583333,96.1041667 17.25,97.375 C20.4416667,98.6083333 24.0666667,99.4541667 29.3875,99.7 C34.7208333,99.95 36.4166667,100 50,100 C63.5833333,100 65.2791667,99.9375 70.6125,99.7 C75.9333333,99.45 79.5625,98.6083333 82.75,97.375 C86.0333333,96.1 88.8291667,94.3833333 91.6083333,91.6083333 C94.3833333,88.8291667 96.1041667,86.0458333 97.375,82.75 C98.6083333,79.5625 99.4541667,75.9333333 99.7,70.6125 C99.95,65.2791667 100,63.5833333 100,50 C100,36.4166667 99.9375,34.7208333 99.7,29.3875 C99.45,24.0666667 98.6083333,20.4333333 97.375,17.25 C96.1,13.9625 94.3833333,11.1708333 91.6083333,8.39166667 C88.8291667,5.6125 86.0458333,3.89583333 82.75,2.625 C79.5625,1.3875 75.9333333,0.545833333 70.6125,0.3 C65.2791667,0.05 63.5833333,0 50,0 Z M50,9 C63.3458333,9 64.9375,9.06666667 70.2083333,9.29583333 C75.0833333,9.525 77.7291667,10.3333333 79.4875,11.025 C81.8291667,11.9291667 83.4875,13.0125 85.2458333,14.7583333 C86.9916667,16.5083333 88.075,18.1708333 88.9791667,20.5125 C89.6625,22.2708333 90.4791667,24.9166667 90.7,29.7916667 C90.9375,35.0666667 90.9916667,36.65 90.9916667,50 C90.9916667,63.35 90.9291667,64.9375 90.6833333,70.2083333 C90.4291667,75.0833333 89.6166667,77.7291667 88.9291667,79.4875 C87.9958333,81.8291667 86.9333333,83.4875 85.1833333,85.2458333 C83.4375,86.9916667 81.75,88.075 79.4333333,88.9791667 C77.6833333,89.6625 74.9958333,90.4791667 70.1208333,90.7 C64.8125,90.9375 63.25,90.9916667 49.875,90.9916667 C36.4958333,90.9916667 34.9333333,90.9291667 29.6291667,90.6833333 C24.75,90.4291667 22.0625,89.6166667 20.3125,88.9291667 C17.9416667,87.9958333 16.3125,86.9333333 14.5666667,85.1833333 C12.8125,83.4375 11.6916667,81.75 10.8166667,79.4333333 C10.1291667,77.6833333 9.32083333,74.9958333 9.06666667,70.1208333 C8.87916667,64.8708333 8.8125,63.25 8.8125,49.9375 C8.8125,36.6208333 8.87916667,34.9958333 9.06666667,29.6833333 C9.32083333,24.8083333 10.1291667,22.125 10.8166667,20.375 C11.6916667,18 12.8125,16.375 14.5666667,14.6208333 C16.3125,12.875 17.9416667,11.75 20.3125,10.8791667 C22.0625,10.1875 24.6916667,9.375 29.5666667,9.125 C34.8791667,8.9375 36.4416667,8.875 49.8125,8.875 L50,9 L50,9 Z M50,24.325 C35.8125,24.325 24.325,35.825 24.325,50 C24.325,64.1875 35.825,75.675 50,75.675 C64.1875,75.675 75.675,64.175 75.675,50 C75.675,35.8125 64.175,24.325 50,24.325 Z M50,66.6666667 C40.7916667,66.6666667 33.3333333,59.2083333 33.3333333,50 C33.3333333,40.7916667 40.7916667,33.3333333 50,33.3333333 C59.2083333,33.3333333 66.6666667,40.7916667 66.6666667,50 C66.6666667,59.2083333 59.2083333,66.6666667 50,66.6666667 Z M82.6916667,23.3125 C82.6916667,26.625 80,29.3125 76.6916667,29.3125 C73.3791667,29.3125 70.6916667,26.6208333 70.6916667,23.3125 C70.6916667,20.0041667 73.3833333,17.3166667 76.6916667,17.3166667 C79.9958333,17.3125 82.6916667,20.0041667 82.6916667,23.3125 Z"/></svg></div></a></li> <li class="default itunes"><a href="https://itunes.apple.com/us/podcast/skydeck/id1156571742?mt=2" class="block inherit-color-onhover" style="text-decoration:none;position:relative;height:48px;width:48px;" aria-label="Itunes"><svg xmlns="http://www.w3.org/2000/svg" width="48px" height="48px" viewBox="0 0 110 110" version="1.1" focusable="false"> <circle cx="55" cy="55" r="50" stroke-width="6" stroke="currentColor"/></svg><div style="position:absolute;top:10px;left:10px;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="27" height="27" viewBox="0 0 170 170" version="1.1" focusable="false"> <path fill="currentColor" d="m150.37 130.25c-2.45 5.66-5.35 10.87-8.71 15.66-4.58 6.53-8.33 11.05-11.22 13.56-4.48 4.12-9.28 6.23-14.42 6.35-3.69 0-8.14-1.05-13.32-3.18-5.197-2.12-9.973-3.17-14.34-3.17-4.58 0-9.492 1.05-14.746 3.17-5.262 2.13-9.501 3.24-12.742 3.35-4.929 0.21-9.842-1.96-14.746-6.52-3.13-2.73-7.045-7.41-11.735-14.04-5.032-7.08-9.169-15.29-12.41-24.65-3.471-10.11-5.211-19.9-5.211-29.378 0-10.857 2.346-20.221 7.045-28.068 3.693-6.303 8.606-11.275 14.755-14.925s12.793-5.51 19.948-5.629c3.915 0 9.049 1.211 15.429 3.591 6.362 2.388 10.447 3.599 12.238 3.599 1.339 0 5.877-1.416 13.57-4.239 7.275-2.618 13.415-3.702 18.445-3.275 13.63 1.1 23.87 6.473 30.68 16.153-12.19 7.386-18.22 17.731-18.1 31.002 0.11 10.337 3.86 18.939 11.23 25.769 3.34 3.17 7.07 5.62 11.22 7.36-0.9 2.61-1.85 5.11-2.86 7.51zm-31.26-123.01c0 8.1021-2.96 15.667-8.86 22.669-7.12 8.324-15.732 13.134-25.071 12.375-0.119-0.972-0.188-1.995-0.188-3.07 0-7.778 3.386-16.102 9.399-22.908 3.002-3.446 6.82-6.3113 11.45-8.597 4.62-2.2516 8.99-3.4968 13.1-3.71 0.12 1.0831 0.17 2.1663 0.17 3.2409z"/></svg></div></a></li> <li><a href="https://www.tiktok.com/@harvardhbs?lang=en" class="block inherit-color-onhover" style="text-decoration:none;position:relative;height:48px;width:48px;" aria-label="TikTok"><svg xmlns="http://www.w3.org/2000/svg" width="48px" height="48px" viewBox="0 0 110 110" version="1.1" focusable="false"> <circle cx="55" cy="55" r="50" stroke-width="6" stroke="currentColor"/></svg><div style="position:absolute;top:2px;left:3px;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="43" height="43" version="1.1" id="tik_tok" x="0px" y="0px" viewBox="0 0 96 96" xml:space="preserve"> <g id="TikTok" fill-rule="nonzero" fill="currentColor"> <g> <path d="M66.9,29.6c-3.3-2.2-5.8-5.7-6.5-9.7c-0.2-0.9-0.3-1.8-0.3-2.7H49.4l0,42.7c-0.2,4.8-4.1,8.6-8.9,8.6 c-1.5,0-2.9-0.4-4.2-1c-2.9-1.5-4.8-4.5-4.8-7.9c0-4.9,4-9,9-9c0.9,0,1.8,0.2,2.6,0.4v-8.4v-2.5c-0.9-0.1-1.7-0.2-2.6-0.2 c-10.8,0-19.6,8.8-19.6,19.6c0,6.6,3.3,12.5,8.4,16.1c3.2,2.2,7.1,3.6,11.2,3.6c10.8,0,19.6-8.8,19.6-19.6V37.9 c4.2,3,9.3,4.8,14.8,4.8v-8.3V32C72,32,69.2,31.1,66.9,29.6z"/> </g> </g> </svg></div></a></li> </ul> <ul class="social-grid new-grid inherit-color-on-hover"> <li class="default more white" style="box-sizing:border-box;height:30px;padding-top: 5px;padding-left: 1px;"> <div class="button-partial"><a href="https://community.alumni.harvard.edu/give/16040805?appealcode=BW004" class="button hbsred-bg white white-bg-onhover hbsred-onhover hbsred-onhover-border eta regular" style="border: 2px solid #A41034; border: 1px solid white; display:inline-block; padding: 3px 3px; text-decoration: none; min-width: 176px; box-sizing: border-box;text-align:center;">Make a Gift</a></div> </li> </ul> </div> </div> <div class="shim17"></div> <div class="shim15 mobile-visible"></div> </div> <div class="universal-footer-copyright"> <div class="container tablet-container mobile-container nu"> <div class="shim12"></div> <div> <ul class="linear footer-links"> <li><a class="footer-sitemap" data-link-id="footer-sitemap" href="https://www.hbs.edu/siteindex/">Site Map</a></li> <li><a class="footer-employment" data-link-id="footer-employment" href="https://www.hbs.edu/employment/">Jobs</a></li> <li><a class="footer-harvard" data-link-id="footer-harvard" href="https://www.harvard.edu/">Harvard University</a></li> <li><a class="footer-trademarks" data-link-id="footer-trademarks" href="https://trademark.harvard.edu/pages/trademark-notice/">Trademarks</a></li> <li><a class="footer-policy" data-link-id="footer-policy" href="https://www.hbs.edu/about/campus-and-culture/policies/Pages/default.aspx">Policies</a></li> <li><a class="footer-accessibility-harvard" data-link-id="footer-accessibility-harvard" href="https://accessibility.harvard.edu/">Accessibility</a></li> <li><a class="footer-accessibility" data-link-id="footer-accessibility" href="https://accessibility.huit.harvard.edu/digital-accessibility-policy">Digital Accessibility</a></li> <li><a href="https://www.alumni.hbs.edu/help/Pages/terms-of-use.aspx" data-link-id="footer-terms-of-use" class="er-terms">Terms of Use</a></li> </ul> <div class="shim12"></div> <div class="copy-msg">Copyright <span aria-hidden="true">©</span> President & Fellows of Harvard College.</div> </div> </div> </div> </div> </div> </div> <!--Watchdog=Healthy--></footer><div class="mobile-hidden print-hidden"><a href="/Pages/site-feedback.aspx" aria-label="send feedback" class="send-feedback-link-cont"><span class="send-feedback-link"></span></a></div> <script type="text/javascript" src="https://webassets.hbs.edu/libs/jquery/3.0.0/jquery.min.js"></script><script type="text/javascript" src="https://webassets.hbs.edu/libs/framework/1.0/js/framework.min.js"></script><script type="text/javascript" src="https://webassets.hbs.edu/libs/analytics/1.0/analytics-disabled.min.js"></script><script>window.assets = "https://webassets.hbs.edu"</script><script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-N2NWNWX');</script><script type="text/javascript" src="https://webassets.hbs.edu/libs/privacy/1.0/privacy.js"></script><script type="text/javascript">privacy.settings({profile:"alumni",baseUrl:"/", loadAnalytics: false, loadOneTrust: false, gtm: false})</script><script>window.IgnoreAnalyticsOverlay = true</script><script xmlns:app="http://www.hbs.edu/appnAccess/schemas" src="https://cdnjs.cloudflare.com/ajax/libs/tooltipster/3.3.0/js/jquery.tooltipster.min.js" type="text/javascript"></script><script xmlns:app="http://www.hbs.edu/appnAccess/schemas" src="https://www.google.com/jsapi" type="text/javascript"></script><script xmlns:app="http://www.hbs.edu/appnAccess/schemas" type="text/javascript"> window.GoogleKey = 'client=gme-harvardbusinessschool&v=3.16'; tagManager.settings({profile:'alumni',searchParams: []}); tagManager.settings({pageParams: ['num','rid','eventId'] }); if (window.HBSUser.personID) tagManager.settings({personID:window.HBSUser.personID}); </script><script xmlns:app="http://www.hbs.edu/appnAccess/schemas" src="https://webassets.hbs.edu/sites/alumni/core/js/alumni.js?v=1.0"></script><script> jQuery(function($){ if (window.headerinit) return; window.headerinit = 1; function toggleSearch(){ var $el = $('.universal-banner-search-toggle'); var val = $('.universal-banner-search-input .universal-site-search-query').val(); if ($el.hasClass('toggled') && $.trim(val)) { $('.universal-banner-search-input .universal-site-search-button').click() return; } $el.toggleClass('toggled'); if ($el.hasClass('toggled')) { window.setTimeout(function(){ $('.universal-site-search-query').focus(); },300) } $('.universal-banner-search-input').toggleClass('open'); } $(document).on('click','.universal-banner-search-toggle',function(){ toggleSearch(this); return false; }) $(".universal-banner-search-toggle").on("click",function(){ toggleSearch(this); return false; }) $(".slider-container").on('close',function(){ $(".universal-banner-hamburger").removeClass('open'); $(".universal-banner-menu-toggle").removeClass('toggled'); $("body").removeClass('slider-is-open'); }) $(document).on("click",".universal-banner-menu-toggle",function(){ if ($(this).hasClass('toggled')) { $('.slider-close').eq(0).click(); $(".universal-banner-hamburger").removeClass('open'); $(".universal-banner-menu-toggle").removeClass('toggled'); $("body").removeClass('slider-is-open'); } else { $('.slider-open').eq(0).click(); $("body").addClass('slider-is-open'); $('.universal-banner-hamburger').addClass('open'); $(".universal-banner-menu-toggle").addClass('toggled'); } //window.scrollTo(0,0); return false; }) $(".skipto").on("click",function(){ console.log("skip to main content"); $($(this).attr('href')).get(0).focus(); }) }); $(document).on( 'framework.resize', function() { // wait .1 seconds because the classes needed to adjust the min/max height haven't been added at this point // TODO: this is a bit kludgey and should be revisited setTimeout( function() { if (window.stickyHeader) { stickyHeader.setMinHeight(); stickyHeader.setMaxHeight(); stickyHeader.triggerExpand(); if ($(".page-header").hasClass('page-header-online')) { stickyHeader.triggerDisappear(); } } }, 100 ); }); function StickyHeader(){ this.hasScrolled = false; this.lastScrollTop = -1; this.currentHeight = 0; this.isVisible = false; this.disabled = false; this.velocitySamples = []; this.debug = $("#sticky-header-debug"); this.buildHeader(); this.setMinHeight(); this.setMaxHeight(); } StickyHeader.prototype.temporarilyDisabled = function() { this.disabled = true; var self = this; window.setTimeout(function(){ self.disabled = false; },500); } /* determine if the header navigation should be displayed while the user is scrolling down */ StickyHeader.prototype.setMinHeight = function() { // if the screen width is within the mobile or tablet range, hide the navigation on scroll, otherwise, show it if ($(".page-header").hasClass('page-header-online') && $( '.ua-mobile, .ua-tablet' ).length) { this.minHeight = 40; } else if ($(".page-header").hasClass('page-header-online')) { this.minHeight = 90; } else if ($( '.ua-mobile, .ua-tablet' ).length) { this.minHeight = 0; } else { this.minHeight = 40 } } /* determine how big the header should be when the user starts to scroll up */ StickyHeader.prototype.setMaxHeight = function() { // clear out the current max height this.maxHeight = 0; // add up the heights of the cloned stiky header elements as the new max height $( '.sticky-header-cloned' ).each( function( index, element ) { this.maxHeight += $( element ).height(); }.bind( this ) ); // Override for HBS online if($(".page-header").hasClass('page-header-online')) { if ($( '.ua-mobile, .ua-tablet' ).length > 0) { this.maxHeight = 0; } else { this.maxHeight = 90; } } } StickyHeader.prototype.buildHeader = function() { var headerHeight = $(".page-header").height(); // Override for HBS online if($(".page-header").hasClass('page-header-online')) { headerHeight = 0; } this.appearsAt = $(".page-header").offset().top + headerHeight; this.sticky = $('<div id="sticky-header" style="height:0; top: -5px;"></div>'); this.stickyWrap = $('<div class="wrapper"></div>'); var container = $(".site-header").parents('.grid-framework'); $( '.universal-banner, .site-header' ).each( function( index, element ) { this.stickyWrap.append( $( element ).clone() ); $( element ).addClass( 'sticky-header-cloned' ); }.bind( this ) ); this.sticky.append(this.stickyWrap); $(".sticky-header-container").append(this.sticky); } StickyHeader.prototype.triggerDisappear = function(){ this.sticky.addClass('at-scroll-top'); this.isVisible = false; this.currentHeight = 0; this.sticky.css('height',this.currentHeight); $("body").removeClass("sticky-header-active"); $("body").removeClass('sticky-header-expanded'); } StickyHeader.prototype.triggerAppear = function(){ if ($("body").hasClass('slider-is-open')) return; this.isVisible = true; $("body").addClass("sticky-header-active"); } StickyHeader.prototype.triggerExpand = function(){ if (this.disabled) return; if ($("body").hasClass('slider-is-open')) return; if (this.currentHeight == this.maxHeight) return; this.sticky.css('height',this.maxHeight-1); this.currentHeight = this.maxHeight; $("body").addClass('sticky-header-expanded'); } StickyHeader.prototype.triggerShrink = function(){ if ($( '.ua-mobile, .ua-tablet' ).length == 0 || !$(".page-header").hasClass('page-header-online')) { this.sticky.removeClass('at-scroll-top'); } var self = this; window.requestAnimationFrame(function(){ var newHeight = 0; if (self.isVisible) { newHeight = self.minHeight; } if (self.currentHeight == newHeight) return; self.sticky.css('height',newHeight); self.currentHeight = newHeight; $("body").removeClass('sticky-header-expanded'); }) } StickyHeader.prototype.redraw = function() { // This is costly to performance but unavoidable //const pageY = window.scrollY; //This throws a syntax error in IE11. var pageY = window.pageYOffset; var scrollUp = pageY < this.lastScrollTop; var scrollDistance = pageY - this.lastScrollTop; this.velocitySamples.push(Math.abs(scrollDistance)); if (this.velocitySamples.length > 10) { this.velocitySamples.shift(); } var totalDistance = 0; for (var i = 0;i<this.velocitySamples.length;i++){ totalDistance += this.velocitySamples[i]; } var velocity = totalDistance / this.velocitySamples.length; var debugVars = {}; if (pageY != this.lastScrollTop) { debugVars.pageY = pageY; debugVars.minHeight = this.minHeight; debugVars.maxHeight = this.maxHeight; debugVars.appearsAt = this.appearsAt; debugVars.velocity = velocity; debugVars.disabled = this.disabled; var html = ''; $.each(debugVars,function(k,v){ html += '<div>' + k + ': '+v +'</div>'; }) this.debug.html(html); if (pageY >= this.appearsAt) { this.triggerAppear(); } if ($(".page-header").hasClass('page-header-online') && $('.table-of-contents-wrapper').length && $('.table-of-contents-wrapper.jump-to').length == 0){ var tocWrap = $('.table-of-contents-wrapper'); var toc = tocWrap.children('.table-of-contents'); var tocItems = toc.find('.toc-item'); var stickyHeight = this.maxHeight; if ((pageY + stickyHeight) > tocWrap.offset().top && !toc.hasClass('sticky')) { toc.addClass('sticky'); } else if ((pageY + stickyHeight) <= tocWrap.offset().top && toc.hasClass('sticky')) { toc.removeClass('sticky'); } if (toc.hasClass('sticky')) { tocItems.each(function( index ) { var section = $($(this).children("a.toc-jump").attr("href")); if (section.length) { var sectionTop = section.offset().top - 45; var pageHeight = pageY + stickyHeight + toc.height(); if ((pageHeight > sectionTop) && !$(this).hasClass('current')) { tocItems.removeClass('current'); $(this).addClass('current'); } else if ((pageHeight <= sectionTop) && $(this).hasClass('current')) { $(this).removeClass('current'); } } }); } } if (pageY <= 0) { this.triggerDisappear(); } else if (scrollUp) { console.log('scroll up'); if ($(".page-header").hasClass('page-header-online') && pageY < (this.appearsAt - this.maxHeight)) { this.triggerDisappear(); } else if (velocity > 5 || pageY < this.appearsAt) { this.triggerExpand(); } } else if (pageY > this.appearsAt) { // If HBS online and mobile hide the sticky header if ($(".page-header").hasClass('page-header-online') && $( '.ua-mobile, .ua-tablet' ).length > 0) { this.triggerDisappear(); } this.triggerShrink(); } this.lastScrollTop = pageY; } this.hasScrolled = false; }; var _domready = _domready || []; _domready.push(function(){ if (document.getElementById('wcm-react-root')) return; if (window.stickyHeaderDisabled) return; window.stickyHeader = new StickyHeader(); var _onScroll = function () { if (!window.stickyHeader.hasScrolled) { window.requestAnimationFrame(function(){ window.stickyHeader.redraw(); }); } window.stickyHeader.hasScrolled = true; window.requestAnimationFrame(_onScroll); }; _onScroll(); //without this, the header flickers on online window.setTimeout(function(){ _onScroll(); },250) $(document).on('delay-sticky-nav',function(){ window.stickyHeader.temporarilyDisabled(); }) // needed for facet pages http://www.hbs.edu/news/Pages/default.aspx $(document).on('click',".facetctrl-sticky.active",function(){ $(document).trigger('delay-sticky-nav'); }) $(document).on('click',".filter-sticky.fixed",function(){ $(document).trigger('delay-sticky-nav'); }) }); </script> <div class="mobile-hidden print-hidden"><a href="/Pages/site-feedback.aspx" aria-label="send feedback" class="send-feedback-link-cont"><span class="send-feedback-link"></span></a></div> </body> </html>