<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="en" />

<meta property="og:image" content="https://w2.chabad.org/media/images/1356/APJB13565990.png" itemprop="image" width="627" height="232" />
<meta property="og:image:width" content="627" />
<meta property="og:image:height" content="232" />
<meta name="keywords" content="Frequently,Asked,Questions" />
<meta name="title" content="Frequently Asked Questions - Chabad Jewish Community Center" />
<meta property="og:type" content="website" />
<meta name="scope-aids" content="282313-282321-674015-3240325-3240352-3240354" />
<meta name="article-keywords" content="19478-19479-19958-20962-8495-8972-18927-19353-19480-2170-2898-2471-537-6939-31567-32228-63" />
<meta name="scope-aid" content="282313" />
<meta name="scope-aid" content="282321" />
<meta name="scope-aid" content="674015" />
<meta name="scope-aid" content="3240325" />
<meta name="scope-aid" content="3240352" />
<meta name="scope-aid" content="3240354" />
<meta name="article-keyword" content="19478" />
<meta name="article-keyword" content="19479" />
<meta name="article-keyword" content="19958" />
<meta name="article-keyword" content="20962" />
<meta name="article-keyword" content="8495" />
<meta name="article-keyword" content="8972" />
<meta name="article-keyword" content="18927" />
<meta name="article-keyword" content="19353" />
<meta name="article-keyword" content="19480" />
<meta name="article-keyword" content="2170" />
<meta name="article-keyword" content="2898" />
<meta name="article-keyword" content="2471" />
<meta name="article-keyword" content="537" />
<meta name="article-keyword" content="6939" />
<meta name="article-keyword" content="31567" />
<meta name="article-keyword" content="32228" />
<meta name="article-keyword" content="63" />
<meta property="og:url" content="https://www.jewishriverside.com/" />
<meta property="twitter:card" content="summary_large_image" />
<meta property="twitter:site" content="@chabad" />
<meta property="og:title" content="Frequently Asked Questions - Chabad Jewish Community Center" /><link rel="canonical" href="https://www.jewishriverside.com/" />
<link rel="icon" type="image/png" href="https://www.jewishriverside.com/media/images/1356/APJB13565990.png" />
<link rel="Stylesheet" href="/css/fonts/font-awesome/font-awesome-5.css?g=40&v=2D6ABDDB" id="kfont-awesome" type="text/css"/>
<link rel="Stylesheet" href="/css/DefaultGrid.css?g=40&v=A13D74E8" id="kgrid" type="text/css"/>
<link rel="Stylesheet" href="/css/Elements.css?g=40&v=3A4C63F4" id="k6" type="text/css"/>
<link rel="Stylesheet" href="/css/vendor/ds/tokens/sites.css?g=40&v=21E88630" id="ksites-ds-css" type="text/css"/>
<link rel="Stylesheet" href="/css/new/main.css?g=40&v=BB63DD50" id="k7" type="text/css"/>
<link rel="Stylesheet" href="/css/old/global.css?g=40&v=43DDBA77" id="k2898" type="text/css"/>
<link rel="Stylesheet" href="/css/cco/minisites/themes/plannedgiving/styles.css?g=40&v=6BD6A965" id="k19353" type="text/css"/>
<link rel="Stylesheet" href="https://w2.chabad.org/css/cco/minisites/global.css" id="k20962" type="text/css"/>
<link rel="Stylesheet" href="/css/bootstrap/grid.css?g=40&v=F4390F2B" id="kbootstrap4-grid" type="text/css"/>
<link rel="Stylesheet" href="/css/Library/reader-comments.css?g=40&v=8AB57D79" id="kCommentsStylesheet" type="text/css"/>
<link rel="Stylesheet" href="/css/inline/BookInfo.css?g=40&v=3D052243" id="kBookInfoCss" type="text/css"/>

<script>$q=[];$j=function(f){$q.push(f);}</script>
	
 
	
	<style type="text/css">
		body{margin:0;}
	</style>
	
	



<script>
	window.dataLayer = window.dataLayer || [];
	dataLayer.push({"event":"datalayer-initialized","page":{"numberOfComments":0,"publicationDate":"2016-03-03","primaryArticleId":2569759,"title":"","author":"","authorId":0,"contentLevel1":"My Site","contentLevel2":"Donate","contentLevel3":"Planned Giving","contentLevel4":"Resources","contentLevel5":"Frequently Asked Questions","siteName":"Chabad Jewish Community Center"},"time":{"upcomingHoliday":"Rosh Hashanah","daysToUpcomingHoliday":26,"hebrewDate":"5786-06-04"}});
		dataLayer.push({ 'articleHierarchy': '-282313-282321-674015-3240325-3240352-3240354-', 'keywords': '-k63-k32228-k31567-k6939-k537-k2471-k2898-k2170-k19480-k19353-k18927-k8972-k8495-k20962-k19958-k19479-k19478-', 'k': '-282313-282321-674015-3240325-3240352-3240354--k63-k32228-k31567-k6939-k537-k2471-k2898-k2170-k19480-k19353-k18927-k8972-k8495-k20962-k19958-k19479-k19478-' });
	
</script>
<script>

(function(c,h,a,b,a,d){c[a]=c[a]||[];c[a].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=h.getElementsByTagName(b)[0],
j=h.createElement(b);j.async=true;
j.src='https://w6.chabad.org/mitzvah-tank.js';f.parentNode.insertBefore(j,f);
})(window,document,0,'script','dataLayer');</script>

	<!-- Start of StatCounter Code -->
	<script type="text/javascript">
	var sc_project = 1076212;var sc_partition = 1;var sc_invisible = 1;var sc_remove_link=1;var sc_security = "20e6231c";var sc_https = 1;
	</script>
	<script type="text/javascript" src="https://secure.statcounter.com/counter/counter_xhtml.js" defer async></script>
	<noscript><img src="//c2.statcounter.com/counter.php?sc_project=1076212&amp;java=0&amp;security=20e6231c&amp;invisible=1" border="0" /> </noscript>
	<!-- End of StatCounter Code -->




<link rel="preconnect" href="https://fonts.googleapis.com"/>
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/>
<link href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet"/>
<link rel="icon" type="image/png" href="https://jewishriverside.com/media/images/1215/OmYs12151814.png" />
<link rel="stylesheet" type="text/css" href="https://chabad.netlify.app/jewishriverside.css"/>
<style type="text/css" rel="stylesheet">
.fs-header-top .fs-logo-container .fs-logo {
    width: 100%;
    height: auto;
}
</style>

<style>
@keyframes shrink-header {
	from {height: 165px;}
	to {height: 80px;}
}

.branding-search #header_branding.logo img {
	animation: shrink-header linear forwards;
	animation-timeline: scroll();
	animation-range: 0px 200px;
}
@supports (anchor-name:--anchor-el){#menu_item1-1{anchor-name:--item-1-1}#menu_item1-2{anchor-name:--item-1-2}#menu_item1-3{anchor-name:--item-1-3}#menu_item1-4{anchor-name:--item-1-4}#menu_item1-5{anchor-name:--item-1-5}#menu_item1-6{anchor-name:--item-1-6}#menu_item1-7{anchor-name:--item-1-7}#menu_item2-1{anchor-name:--item-2-1}#menu_item2-2{anchor-name:--item-2-2}#menu_item2-3{anchor-name:--item-2-3}#menu_item2-4{anchor-name:--item-2-4}#menu_item2-5{anchor-name:--item-2-5}#menu_item2-6{anchor-name:--item-2-6}#menu_item2-7{anchor-name:--item-2-7}#menu_item3-1{anchor-name:--item-3-1}#menu_item3-2{anchor-name:--item-3-2}#menu_item3-3{anchor-name:--item-3-3}#menu_item3-4{anchor-name:--item-3-4}#menu_item3-5{anchor-name:--item-3-5}#menu_item3-6{anchor-name:--item-3-6}#menu_item3-7{anchor-name:--item-3-7}#menu_item4-1{anchor-name:--item-4-1}#menu_item4-2{anchor-name:--item-4-2}#menu_item4-3{anchor-name:--item-4-3}#menu_item4-4{anchor-name:--item-4-4}#menu_item4-5{anchor-name:--item-4-5}#menu_item4-6{anchor-name:--item-4-6}#menu_item4-7{anchor-name:--item-4-7}#menu_item5-1{anchor-name:--item-5-1}#menu_item5-2{anchor-name:--item-5-2}#menu_item5-3{anchor-name:--item-5-3}#menu_item5-4{anchor-name:--item-5-4}#menu_item5-5{anchor-name:--item-5-5}#menu_item5-6{anchor-name:--item-5-6}#menu_item5-7{anchor-name:--item-5-7}}@supports (position-anchor:--anchor-el){#menu_child1-1{top:anchor(--item-1-1 top);left:anchor(--item-1-1 right)}#menu_child1-2{top:anchor(--item-1-2 top);left:anchor(--item-1-2 right)}#menu_child1-3{top:anchor(--item-1-3 top);left:anchor(--item-1-3 right)}#menu_child1-4{top:anchor(--item-1-4 top);left:anchor(--item-1-4 right)}#menu_child1-5{top:anchor(--item-1-5 top);left:anchor(--item-1-5 right)}#menu_child1-6{top:anchor(--item-1-6 top);left:anchor(--item-1-6 right)}#menu_child1-7{top:anchor(--item-1-7 top);left:anchor(--item-1-7 right)}#menu_child2-1{top:anchor(--item-2-1 top);left:anchor(--item-2-1 right)}#menu_child2-2{top:anchor(--item-2-2 top);left:anchor(--item-2-2 right)}#menu_child2-3{top:anchor(--item-2-3 top);left:anchor(--item-2-3 right)}#menu_child2-4{top:anchor(--item-2-4 top);left:anchor(--item-2-4 right)}#menu_child2-5{top:anchor(--item-2-5 top);left:anchor(--item-2-5 right)}#menu_child2-6{top:anchor(--item-2-6 top);left:anchor(--item-2-6 right)}#menu_child2-7{top:anchor(--item-2-7 top);left:anchor(--item-2-7 right)}#menu_child3-1{top:anchor(--item-3-1 top);left:anchor(--item-3-1 right)}#menu_child3-2{top:anchor(--item-3-2 top);left:anchor(--item-3-2 right)}#menu_child3-3{top:anchor(--item-3-3 top);left:anchor(--item-3-3 right)}#menu_child3-4{top:anchor(--item-3-4 top);left:anchor(--item-3-4 right)}#menu_child3-5{top:anchor(--item-3-5 top);left:anchor(--item-3-5 right)}#menu_child3-6{top:anchor(--item-3-6 top);left:anchor(--item-3-6 right)}#menu_child3-7{top:anchor(--item-3-7 top);left:anchor(--item-3-7 right)}#menu_child4-1{top:anchor(--item-4-1 top);left:anchor(--item-4-1 right)}#menu_child4-2{top:anchor(--item-4-2 top);left:anchor(--item-4-2 right)}#menu_child4-3{top:anchor(--item-4-3 top);left:anchor(--item-4-3 right)}#menu_child4-4{top:anchor(--item-4-4 top);left:anchor(--item-4-4 right)}#menu_child4-5{top:anchor(--item-4-5 top);left:anchor(--item-4-5 right)}#menu_child4-6{top:anchor(--item-4-6 top);left:anchor(--item-4-6 right)}#menu_child4-7{top:anchor(--item-4-7 top);left:anchor(--item-4-7 right)}#menu_child5-1{top:anchor(--item-5-1 top);left:anchor(--item-5-1 right)}#menu_child5-2{top:anchor(--item-5-2 top);left:anchor(--item-5-2 right)}#menu_child5-3{top:anchor(--item-5-3 top);left:anchor(--item-5-3 right)}#menu_child5-4{top:anchor(--item-5-4 top);left:anchor(--item-5-4 right)}#menu_child5-5{top:anchor(--item-5-5 top);left:anchor(--item-5-5 right)}#menu_child5-6{top:anchor(--item-5-6 top);left:anchor(--item-5-6 right)}#menu_child5-7{top:anchor(--item-5-7 top);left:anchor(--item-5-7 right)}}</style>




<style>
#RegisterBody {
  .form-checkbox-item, .form-radio-item {
    align-items: center;
  }
  .form-multiple-column:has(label[for^="input_tran"]) {
    display: flex;
  }
  .form-label-left {
    width: 150px;
  }
}
</style>
<script>/* HIGH HOLIDAYS 5787 - PREBOOT. Paste this as EARLY as possible: a header
raw-code box, or the very top of the page content in SOURCE view. It hides
the native form before the browser paints it, so nothing flashes before the
skin appears. Safe to load site-wide - it only acts on the aid below, and it
removes itself after 6 seconds if the skin never arrives. */
(function(){var A='7457011',H=location.href;
if(H.indexOf(A)<0)return;
if(document.getElementById('hh26-preboot'))return;
var s=document.createElement('style');s.id='hh26-preboot';
s.textContent='html,body{background:#F5EBDF !important;}body > *:not(#hh26){visibility:hidden !important;}';
(document.head||document.documentElement).appendChild(s);
setTimeout(function(){if(!document.getElementById('hh26')){var e=document.getElementById('hh26-preboot');if(e&&e.parentNode)e.parentNode.removeChild(e);}},6000);})();
</script><script>
	if (document.location.pathname.includes("donate") || document.location.pathname.includes("3998239")) {
		window.sentryOnLoad = function () {
			Sentry.init({
				sendDefaultPii: true,
				replaysSessionSampleRate: 1.0,
				integrations: [
					Sentry.replayIntegration({
						networkDetailAllowUrls: [window.location.origin],
						maskAllText: false,
						maskAllInputs: false,
						mask: [
							".credit_card *",
							'[name="x_card_num"]',
							'[name="x_card_code"]'
						]
					})]
			});
			Sentry.setTag("domain-name", window.location.hostname);
			Sentry.setTag("page-url", window.location.href);
		};
		const script = document.createElement('script');
		script.src = 'https://js.sentry-cdn.com/f24fb88e403ae9b2ab65c9ced2b74190.min.js';
		document.head.appendChild(script);
	}
</script><script type="module">
document.querySelectorAll('img[src*="APJB13565990.png"]').forEach(img => {
  img.src = 'https://w2.chabad.org/media/images/1260/cpkJ12604262.svg';
})
  if (typeof ScrollTimeline === 'undefined') {
    import("https://flackr.github.io/scroll-timeline/dist/scroll-timeline.js")
      .then(() => {
        console.log("ScrollTimeline polyfill loaded.");
      })
      .catch((error) => {
        console.error("Failed to load ScrollTimeline polyfill:", error);
      });
  } else {
    console.log("ScrollTimeline is supported natively.");
  }
</script><script type="module">
  if (!("anchorName" in document.documentElement.style)) {
    import("https://unpkg.com/@oddbird/css-anchor-positioning");
  }
</script><script>
document.addEventListener('DOMContentLoaded', function () {
  // Only run on homepage
  if (window.location.pathname !== '/' && window.location.pathname !== '/default.aspx') return;

  // Try a few possible slider wrappers / controls
  const slider =
    document.querySelector('.fs-slideshow') ||
    document.querySelector('.slideshow') ||
    document.querySelector('.cycle-slideshow') ||
    document.querySelector('.camera_wrap') ||
    document.querySelector('.nivoSlider') ||
    document.querySelector('[class*="slider"]') ||
    document.querySelector('[class*="slideshow"]');

  if (!slider) return;

  let startX = 0;
  let startY = 0;
  let endX = 0;
  let endY = 0;
  const minSwipeDistance = 50;

  function findPrevButton() {
    return (
      slider.querySelector('.prev') ||
      slider.querySelector('.previous') ||
      slider.querySelector('.cycle-prev') ||
      slider.querySelector('.camera_prev') ||
      slider.querySelector('.nivo-prevNav') ||
      document.querySelector('.prev') ||
      document.querySelector('.previous') ||
      document.querySelector('.cycle-prev') ||
      document.querySelector('.camera_prev') ||
      document.querySelector('.nivo-prevNav')
    );
  }

  function findNextButton() {
    return (
      slider.querySelector('.next') ||
      slider.querySelector('.cycle-next') ||
      slider.querySelector('.camera_next') ||
      slider.querySelector('.nivo-nextNav') ||
      document.querySelector('.next') ||
      document.querySelector('.cycle-next') ||
      document.querySelector('.camera_next') ||
      document.querySelector('.nivo-nextNav')
    );
  }

  function goPrev() {
    const prevBtn = findPrevButton();
    if (prevBtn) {
      prevBtn.click();
      return;
    }

    // Fallback for sliders using jQuery Cycle
    if (window.jQuery && jQuery(slider).cycle) {
      jQuery(slider).cycle('prev');
    }
  }

  function goNext() {
    const nextBtn = findNextButton();
    if (nextBtn) {
      nextBtn.click();
      return;
    }

    // Fallback for sliders using jQuery Cycle
    if (window.jQuery && jQuery(slider).cycle) {
      jQuery(slider).cycle('next');
    }
  }

  slider.addEventListener(
    'touchstart',
    function (e) {
      if (!e.touches || !e.touches.length) return;
      startX = e.touches[0].clientX;
      startY = e.touches[0].clientY;
    },
    { passive: true }
  );

  slider.addEventListener(
    'touchend',
    function (e) {
      if (!e.changedTouches || !e.changedTouches.length) return;
      endX = e.changedTouches[0].clientX;
      endY = e.changedTouches[0].clientY;

      const diffX = endX - startX;
      const diffY = endY - startY;

      // Ignore mostly-vertical swipes so page scrolling still works
      if (Math.abs(diffY) > Math.abs(diffX)) return;

      if (Math.abs(diffX) < minSwipeDistance) return;

      if (diffX > 0) {
        goPrev(); // swipe right
      } else {
        goNext(); // swipe left
      }
    },
    { passive: true }
  );
});
</script><title>
	Frequently Asked Questions - Chabad Jewish Community Center
</title></head>
<body class="lang_en dir_ltr cco_body cco_templateless_page section_branch">
	
	
		<div width="100%" class="cco_templateless_template" style="z-index:100 !important;display:block !important;left:0px !important;top:0px !important;height:30px!important;width:100% !important;line-height:30px !important; position:relative !important; margin-bottom:0 !important; padding:0;text-indent: 25px;" align="Left"><a href="//www.JewishRiverside.com" style="display:block!important;font-size:14px !important;">&laquo; Back to&nbsp;Chabad Jewish Community Center</a></div>
	
	<div class="cco_templatelates_content">
		
	<div class="co_content_container clearfix local_content" id="co_content_container">
		<div class="clearfix">
			<!-- BEGIN HEADER --><style type="text/css">
	.cco_templateless_template,
	.cco_templateless_template a {
		background: #6C0647;
	}
.sidebar-ads co\:item {
    padding: 3%;
    text-align: center;
    background: #690645;
    display: block;
    margin-bottom: 3%
}

.section_root .sidebar-ads co\:item {
    float: left;
    width: 315px;
    padding: 12px 0;
    text-align: center;
    background: #690645;
    display: block;
    margin-left: 15px
}

body.mobile.section_root .sidebar-ads co\:item {
    float: none;
    display: block;
    width: 100%;
    margin: 5px 0
}

.section_root .sidebar-ads co\:item:first-child {
    margin: 0
}

.sidebar-ads co\:item a {
    text-decoration: none;
    position: absolute;
    width: 283px;
    height: 167px
}

.sidebar-ads co\:item img {
    width: 90%
}

.sidebar-ads co\:item .caption {
    font: 12px/18px Merriweather, times, serif;
    color: #a7a6a2;
    margin-top: 15px
}
co\:item {display:unset!important}
</style>
<div id="chabad_body_page">
<div id="chabad_main_content" class="container">


<div id="chabad_head" class="header">



<div class="chabad_header header-logo" data-href="/3240325">
<a href="/3240325" class="header-title" title="Planned Giving">
<span>
Planned Giving to Chabad</span></a>
<div class="header-subtitle">
<a href="/3240325" class="header-subtitle" style="text-decoration:none">
Make Your Legacy a Jewish Future</a></div>
</div>


<div id="navigation" class="chabad_navigator_bar">
<div class="chabad_menu_content">
<ul id="menu" class="navi">
<li class="item parent arrow">
<a href="/article.asp?aid=3240326" class="parent arrow">Why Giving Matters</a>
<div class="sub_menu">
<ul>
<li class="item first">
<a href="/article.asp?aid=3240327">Changing Jewish Destiny</a>
</li>
<li class="item">
<a href="/article.asp?aid=3240328">Chabad In The News</a>
</li>
<li class="item">
<a href="/article.asp?aid=3240329">The Rebbe's Mandate</a>
</li>
<li class="item">
<a href="/article.asp?aid=3240330">Giving In Jewish Tradition</a>
</li>
<li class="item last">
<a href="/article.asp?aid=3240331">Donor Stories</a>
</li>
</ul>
</div>
|
</li>
<li class="item parent arrow">
<a href="/article.asp?aid=3240339" class="parent arrow">Ways To Give</a>
<div class="sub_menu">
<ul>
<li class="item first">
<a href="/article.asp?aid=3240340">Bequest</a>
</li>
<li class="item">
<a href="/article.asp?aid=3240341">Charitable Gift Annuity</a>
</li>
<li class="item">
<a href="/article.asp?aid=3240342">Real Estate</a>
</li>
<li class="item">
<a href="/article.asp?aid=3240343">Life Insurance</a>
</li>
<li class="item">
<a href="/article.asp?aid=3240344">Charitable Trusts</a>
</li>
<li class="item">
<a href="/article.asp?aid=3240345">Retirement Plans</a>
</li>
<li class="item last">
<a href="/article.asp?aid=3240346">Planned Giving Videos</a>
</li>
</ul>
</div>
|
</li>
<li class="item parent arrow">
<a href="/article.asp?aid=3240348" class="parent arrow">Gratitude</a>
<div class="sub_menu">
<ul>
<li class="item first">
<a href="/article.asp?aid=3240349">Jewish Legacy Society</a>
</li>
<li class="item last">
<a href="/article.asp?aid=3240350">My Story</a>
</li>
</ul>
</div>
|
</li>
<li class="item parent arrow selected">
<a href="/article.asp?aid=3240352" class="parent arrow selected">Resources</a>
<div class="sub_menu">
<ul>
<li class="item first">
<a href="/article.asp?aid=3240353">Bequest Form</a>
</li>
<li class="item selected">
<a href="/article.asp?aid=3240354">Frequently Asked Questions</a>
</li>
<li class="item">
<a href="/article.asp?aid=3240355">Advisor Information</a>
</li>
<li class="item">
<a href="/article.asp?aid=3240356">Planned Giving Council</a>
</li>
<li class="item last">
<a href="/article.asp?aid=3240357">Glossary of Terms</a>
</li>
</ul>
</div>
|
</li>
<li class="item parent arrow">
<a href="/article.asp?aid=3240358" class="parent arrow">Contact</a>
<div class="sub_menu">
<ul>
<li class="item first">
<a href="/article.asp?aid=3240360">Share Your Story</a>
</li>
<li class="item last">
<a href="/article.asp?aid=3240359">Contact Us</a>
</li>
</ul>
</div>
</li>

</ul>
</div>
</div>



</div>
<div class="break_floats" ></div>
<div id="chabad_body_content">
<div detached="true" type="static" id="ContentArea" name="content_area" class="chabad_left_column"><div id="content_page" class="content_page"><!-- END HEADER -->
			
			
			<div class="clearfix bh mobile-only align_right">ב"ה</div>
			
				<div class="master-content-wrapper " >
					

<header class="article-header cf ">
	
	
			<h1 class="article-header__title js-article-title js-page-title">Frequently Asked Questions</h1>
		
			<div>
				
			</div>
		
</header>
				</div>
			
			<div class="body_wrapper clearfix co_body">
				<div class="" id="co_body_container">
					
					<div id="ContentBody">
						
						
							<div class="content-area-parent no_margin">
								
	<div id="cco_body">
		<div class="content  no_margin no_overflow" id="co_content_container">
			
			
	

	<article class="content js-content" itemscope itemtype="http://schema.org/Article">
	



<meta itemprop="mainEntityOfPage headline name" content="" />

<meta itemprop="image" content="" />


<meta itemprop="uploadDate" content="2016-03-03T20:39:18" />
<span itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
	<meta itemprop="name" content="Chabad Jewish Community Center" />
	<meta itemprop="brand" content="Chabad Jewish Community Center" />
	<span itemprop="logo" itemscope itemtype="http://schema.org/ImageObject">
		<meta itemprop="url" content="https://w2.chabad.org/media/images/1356/APJB13565990.png" />
		<meta itemprop="height" content="232" />
		<meta itemprop="width" content="627" />
	</span>
</span>
<meta itemprop="datePublished" content="2016-03-03T20:39:18" />
			<div itemprop="articleBody">
				<co:body xmlns:co="www1.chabadonline.com/alpha1" xmlns:ext="urn:xslt-extensions">
  <div class="co_body article-body cf">
    <dl>
      <dt>Why should I remember Chabad in my will?</dt>
<dd>You care deeply about Jewish continuity and want to see Judaism flourish in your community. Chabad is serving our local community today and will continue to serve generations into the future.</dd>
<dt>I am not a wealthy person. Can my gift make a Difference?</dt>
<dd>Yes, every gift is important. Leaving a bequest to Chabad is your opportunity to take care of your family and create a meaningful Jewish legacy.</dd>
<dt>What is a Bequest?</dt>
<dd>A bequest is a gift of property or assets left to Chabad in your will. A bequest can be established as either a percentage of your estate or a fixed sum. Every bequest to Chabad is a powerful expression of faith and goodwill in the future of our Jewish community.</dd>
<dt>How can my money work for me in my lifetime?</dt>
<dd>A charitable gift annuity is one of the most popular ways to help Chabad and receive income during your lifetime. For example, you can set up a gift annuity and receive a guaranteed payment far above market rates. The current rate for an 80 year old single life term is 6.8% percent.</dd>
<dt>How can Life Insurance benefit Chabad?</dt>
<dd>You can make a substantial Jewish legacy gift to Chabad through designating Chabad as the named beneficiary of your existing life insurance policy. This gift can, in some circumstances, be far greater than anything you could donate during your lifetime.</dd>
<dt>What if I am ready to remember Chabad in my Estate Plan?</dt>
<dd>We would be honored to enroll you in the Jewish Legacy Society. Please take a moment and contact our center for a confidential consultation. Informing Chabad about your intentions allows us to plan appropriately for the future. Thank you in advance for this generous contribution.</dd>
    </dl>
  </div>
</co:body>
			</div>
			

			<div class="break_floats"></div>
			
	<div class="break_floats"></div>
	

<div class="content-footer">
	
	
	
	
		<div class="section-articles below-article clearfix" id="MoreInSection" data-list-name="more in this section">
			<h2 class="below-article__title">More in this section</h2>
			<div class="bs-container">
				<div class="bs-row">
					
		<div class="section-articles__column col-md-6 ">
			<ul class="small-links small-links--orange">
				
		<li class="small-links__item ">
			
			<a class="link_item" href="/templates/articlecco_cdo/aid/3240355/jewish/Advisor-Information.htm" data-aid="3240355">Advisor Information</a>
		</li>
		
	
		<li class="small-links__item ">
			
			<a class="link_item" href="/templates/articlecco_cdo/aid/3240356/jewish/Planned-Giving-Council.htm" data-aid="3240356">Planned Giving Council</a>
		</li>
		
	
			</ul>
		</div>
	
		<div class="section-articles__column col-md-6 ">
			<ul class="small-links small-links--orange">
				
		<li class="small-links__item ">
			
			<a class="link_item" href="/templates/articlecco_cdo/aid/3240357/jewish/Glossary-of-Terms.htm" data-aid="3240357">Glossary of Terms</a>
		</li>
		
	
		<li class="small-links__item ">
			
			<a class="link_item" href="/templates/articlecco_cdo/aid/3240353/jewish/Bequest-Form.htm" data-aid="3240353">Bequest Form</a>
		</li>
		
	
			</ul>
		</div>
	
				</div>
			</div> 
		</div>
	
		

	
	
</div>
	</article>

		</div>
	</div>
</div>
						
						<div class="break_floats"></div>
						
					</div>
				</div>
				
				
				
			</div>
			
			<!-- BEGIN FOOTER --></div></div><div class="co_section">
<div class="co_section_head">
<div>In this Section</div>
</div>
<div class="co_section_body">
<div class="co_section_gradient">
<div class="co_section_text">
<div class="item first">
<span>●</span>
<a href="/article.asp?aid=3240353">Bequest Form</a>
</div>
<div class="item">
<span>●</span>
<a href="/article.asp?aid=3240354">Frequently Asked Questions</a>
</div>
<div class="item">
<span>●</span>
<a href="/article.asp?aid=3240355">Advisor Information</a>
</div>
<div class="item">
<span>●</span>
<a href="/article.asp?aid=3240356">Planned Giving Council</a>
</div>
<div class="item last">
<span>●</span>
<a href="/article.asp?aid=3240357">Glossary of Terms</a>
</div>
</div>
</div>
</div>
<div class="co_section_footer" ></div>
</div>
<div class="chabad_right_column">
<div class="caption" id="contact-address">

<p>Rabbi Shmuel M. Fuss<br/>                 Chabad Jewish Center of Riverside<br/>                 889 S University Dr.<br/>                 Riverside, CA, 92507<br/>                 951-222-2005<br/>
<a href="mailto:Rabbi@JewishRiverside.com?subject=Planned%20Giving">                 Rabbi@JewishRiverside.com</a></p>
</div>
<ul class="sidebar-ads">


<li>

<a href="/3240327" ></a>

<img src="https://w2.chabad.org/images/Shluchim/minisites/themes/plannedgiving/sidebar-thumbs-jewish-destiny.png" alt="Changing Jewish Destiny" border="0" />
<div class="caption">
Changing Jewish Destiny</div>

</li>



<li>

<a href="/3240350" ></a>

<img src="https://w2.chabad.org/images/Shluchim/minisites/themes/plannedgiving/sidebar-thumbs-testimony.png" border="0" />
<div class="caption">
My Story</div>
</li>



<li>

<a href="/3240346" ></a>

<img src="https://w2.chabad.org/images/Shluchim/minisites/themes/plannedgiving/sidebar-thumbs-planned-giving.png" border="0" />
<div class="caption">
Planned Giving Videos</div>

</li>


</ul>

</div></div>
</div>
<div id="border_bottom" ></div>
</div>
<!-- END FOOTER -->
		</div>
		
		<aside class="page-tools-sidebar js-page-tools-sidebar hide_for_print">
<div class="page-tools js-page-tools-menu">
<div class="page-tools__section page-tools__section--share">
<a class="page-tools__tool js-share-popup page-tools__tool--facebook" data-share-url="https://www.facebook.com/dialog/share?app_id=188669250943&amp;display=popup&amp;href=https%3a%2f%2fwww.jewishriverside.com%2ftemplates%2farticlecco_cdo%2faid%2f3240354%2fjewish%2fFrequently-Asked-Questions.htm%23utm_medium%3dpage_tools%26utm_content%3ddesktop%26utm_source%3dFB">
				<i class="fa fa-facebook"></i>
			</a>
<a class="page-tools__tool js-share-popup page-tools__tool--twitter" data-share-url="https://twitter.com/intent/tweet?text=Frequently+Asked+Questions+-+Chabad+Jewish+Community+Center&amp;url=https%3a%2f%2fwww.jewishriverside.com%2ftemplates%2farticlecco_cdo%2faid%2f3240354%2fjewish%2fFrequently-Asked-Questions.htm%23utm_medium%3dpage_tools%26utm_content%3ddesktop%26utm_source%3dtwitter&amp;via=Chabad">
				<i class="fa fa-twitter"></i>
			</a>
<a class="page-tools__tool js-share-popup page-tools__tool--whatsapp d-lg-none js-share-whatsapp" data-share-url="whatsapp://send?text=Frequently+Asked+Questions+-+Chabad+Jewish+Community+Center https%3a%2f%2fwww.jewishriverside.com%2ftemplates%2farticlecco_cdo%2faid%2f3240354%2fjewish%2fFrequently-Asked-Questions.htm%23utm_medium%3dpage_tools%26utm_content%3ddesktop%26utm_source%3dwhatsapp">
				<i class="fa fa-whatsapp">
					<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" fill="#128c7e" width="1em" height="1em"><path d="M25 2C12.318 2 2 12.318 2 25c0 3.96 1.023 7.854 2.963 11.29L2.037 46.73c-.096.343-.003.711.245.966.191.197.451.304.718.304.08 0 .161-.01.24-.029l10.896-2.699C17.463 47.058 21.21 48 25 48c12.682 0 23-10.318 23-23S37.682 2 25 2zm11.57 31.116c-.492 1.362-2.852 2.605-3.986 2.772-1.018.149-2.306.213-3.72-.231-.857-.27-1.957-.628-3.366-1.229-5.923-2.526-9.791-8.415-10.087-8.804-.295-.389-2.411-3.161-2.411-6.03s1.525-4.28 2.067-4.864c.542-.584 1.181-.73 1.575-.73s.787.005 1.132.021c.363.018.85-.137 1.329 1.001.492 1.168 1.673 4.037 1.819 4.33.148.292.246.633.05 1.022s-.294.632-.59.973-.62.76-.886 1.022c-.296.291-.603.606-.259 1.19s1.529 2.493 3.285 4.039c2.255 1.986 4.158 2.602 4.748 2.894.59.292.935.243 1.279-.146.344-.39 1.476-1.703 1.869-2.286s.787-.487 1.329-.292c.542.194 3.445 1.604 4.035 1.896.59.292.984.438 1.132.681.148.242.148 1.41-.344 2.771z"/></svg>
				</i>
			</a>
<a class="page-tools__tool js-share-popup page-tools__tool--pinterest d-none d-lg-block" data-share-url="http://pinterest.com/pin/create/button/?url=https%3a%2f%2fwww.jewishriverside.com%2ftemplates%2farticlecco_cdo%2faid%2f3240354%2fjewish%2fFrequently-Asked-Questions.htm%23utm_medium%3dpage_tools%26utm_content%3ddesktop%26utm_source%3dpinterest&amp;description=Frequently+Asked+Questions+-+Chabad+Jewish+Community+Center">
				<i class="fa fa-pinterest"></i>
			</a>
<a class="page-tools__tool" onclick="showEmailLayer(this);">
<i class="fa fa-envelope"></i>
</a>
</div>
<div class="page-tools__section page-tools__section--other js-page-tool-other">
<div class="page-tools__tool popover-parent d-lg-block">
<div class="popover popover--right align_left nowrap">
<div class="popover__content">
<label class="bold bottom_margin block">
Print Options:
</label>
<form class="vcenter" name="print-form" onsubmit="coPrint(event, 3240352);return false;">
<div>
<label><input type="checkbox" name="print-green"><span title="Save paper and ink">Print without images <i class="fa fa-leaf text-green"></i></span></label>
</div>
<br/>
<div class="center">
<button class="co-button page-tools__print-button">Print</button>
</div>
</form>
</div>
</div>
<i class="fa fa-print"></i>
</div>
</div>
</div>
<div class="js-fab-wrapper fab-wrapper">
<div class="fab">
<i class="fab-icon"></i>
</div>
</div>
</aside>
<!-- END CACHE -->
	</div>

	</div>

	<div id="BodyContainer">
		<div class="g960 footer">
			<div class="poweredby large_bottom_margin">
				


	<div class="footer3"><b>CHABAD JEWISH COMMUNITY CENTER • RIVERSIDE, CA</b></div>
	<img src="https://w2.chabad.org/images/global/spacer.gif" width="1" height="6" border="0" /><br />




Powered by <a href="https://www.chabad.org/" target="_new" class="">Chabad.org</a> &copy; 1993-2026 <a href="/4026210" target="_blank" class="privacy-link">Privacy Policy</a>




			</div>
		</div>
	</div>
	
	

	
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/os/jquery-1.8.3.min.js?g=40&v=14C45307"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/os/jquery/jquery.tools.expose.min.js?g=40&v=AB0A58F7"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/os/jquery.tools.1.2.7.min.js?g=40&v=FBC14E36"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/co/dist/CoLib.js?g=40&v=CD6CB303"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/WebComponents/bundles/magen-cdo-global.js?g=40&v=C8425CA5"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/templates/plannedgiving/custom.js?g=40&v=8742C543"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/custom/multimedia/infolayer.js?g=40&v=ED1B8531"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/article/comments/reply-form-controller.js?g=40&v=DC70C970"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/custom/commentsloader.js?g=40&v=AD6AAB79"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/custom/minisites.js?g=40&v=F38E4DA5"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/custom/subscribeprompt.js?g=40&v=86D84DC2"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/modules/pagetools.js?g=40&v=930B07AB"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/custom/deprecated.js?v=D506A83E&g=40"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/OverrideJSDocumentWrite.js?g=40&v=9A0227AA"></script><script>$j = $j.fn ? $j : jQuery;$j(()=>{$q.forEach(f=>{try{f.call(window);}catch(ex){console.error(ex);}});})</script>
	

<script  language="javascript" type="text/javascript"> Co.Settings      = {CacheClassName:'js-cache-default',MosadName:'Chabad Jewish Community Center'}; Co.ArticleId     = '3240354';Co.SectionId     = 674015;Co.PartnerSiteId = 0;Co.SiteId        = 5821;Co.IsMobilePage  = false;Co.IsResponsive  = false;Co.DbDomain      = 'JewishRiverside.com';Co.LanguageCode  = '';Co.LoginStatus   = 'None';</script>
	
	


<!-- GetButton.io widget -->

<!-- /GetButton.io widget -->





<script>
const icons = document.querySelector('#footer .cs-f-social-icons');

const linkedin = document.createElement('a');
linkedin.setAttribute('href', 'https://www.linkedin.com/company/jewishriverside/');
linkedin.setAttribute('class', 'fa fa-linkedin linkedin_homepage');
linkedin.setAttribute('title', 'LinkedIn');
icons?.appendChild(linkedin);

const youtube = document.createElement('a');
youtube.setAttribute('href', 'https://www.youtube.com/@riversidejcc/videos');
youtube.setAttribute('class', 'fa fa-youtube youtube_homepage');
youtube.setAttribute('title', 'YouTube');
icons?.appendChild(youtube);
</script><script type="text/javascript">
(function () {
var options = {
email: "Info@jewishriverside.com", // Email
email_color: "#A8CE50", // Email button color
sms: "9512222005", // Sms phone number
call_to_action: "Message us", // Call to action
button_color: "#FF6550", // Color of button
position: "right", // Position may be 'right' or 'left'
order: "email,sms", // Order of buttons
};
var proto = 'https:', host = "getbutton.io", url = proto + '//static.' + host;
var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = url + '/widget-send-button/js/init.js';
s.onload = function () { WhWidgetSendButton.init(host, proto, options); };
var x = document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x);
})();
</script><script language="javascript" type="text/javascript" src="https://chabad.netlify.app/jewishriverside.js"></script><script>
/* High Holidays 5787 skin - Chabad Jewish Center of Riverside
   Minified to fit the footer field. The readable source lives in
   the project file; edit that and re-minify, don't edit this. */
(function () {
'use strict';
var CFG = {
AID: '7457011',
RETURN_URL: '',
INFO_PLACEMENT: 'below',
hero: {
image: 'https://jewishriverside.com/media/images/1381/kGkw13811792.png',
alt:   'Shofar, pomegranate, apples and honey',
crop: 'bottom',
ratio: '32/9',
flip: true,
scrim: 0.95,
eyebrow: '',
title:   'High Holidays',
org:     'Welcome',
orgEmphasis: 'HOME',
lede:    'Home is more than a place \u2014 it\u2019s the feeling of being ' +
'welcomed, connected and surrounded by community. Whether you\u2019ve ' +
'celebrated with us for years or are joining for the first time, ' +
'you\u2019ll find meaningful services, delicious holiday meals and a ' +
'warm welcome at Chabad Jewish Center of Riverside.',
dateCards: [
{ label: 'Rosh Hashanah', value: 'Sept 11 – 13' },
{ label: 'Yom Kippur',    value: 'Sept 20 – 21' }
]
},
tiles: [
{ key:'schedule',         title:'High Holidays Schedule',
img:'https://jewishriverside.com/media/images/1382/bpfh13820214.png',
date:'September 11 – 21',   cost:'',           costTone:'free' },
{ key:'holiday-services', title:'High Holiday Services',
img:'https://jewishriverside.com/media/images/1382/gqPb13820222.png',
date:'Sept 11 – 21',        cost:'Free',       costTone:'free' },
{ key:'rh-dinner',        title:'Rosh Hashanah Dinner',
img:'https://jewishriverside.com/media/images/1381/vBIW13817224.png',
date:'Fri, Sept 11',        cost:'Ticketed',   costTone:'paid' },
{ key:'family-shofar',    title:'Children\u2019s Holiday Experiences',
img:'https://jewishriverside.com/media/images/1382/CMOo13820217.png',
date:'Sept 13 & 21',        cost:'Free',       costTone:'free' },
{ key:'break-fast',       title:'Yom Kippur Break Fast',
img:'https://jewishriverside.com/media/images/1381/Uivz13817223.png',
date:'Mon, Sept 21',        cost:'Free',       costTone:'free' },
{ key:'sukkot',           title:'Sukkot Community BBQ',
img:'https://jewishriverside.com/media/images/1382/efYC13823014.png',
date:'Wed, Sept 30',        cost:'',           costTone:'free' },
{ key:'yizkor',           title:'Yizkor Booklet',
img:'https://jewishriverside.com/media/images/1382/YYee13820234.png',
date:'Due Sept 3',          cost:'',           costTone:'free' },
{ key:'resources',        title:'Holiday Resources',
img:'https://jewishriverside.com/media/images/1382/FLQy13820239.png',
date:'Guides & readings',   cost:'',           costTone:'free' },
{ key:'holiday-charity',  title:'High Holiday Gift',
img:'https://jewishriverside.com/media/images/1381/rlpS13815595.png',
date:'Before the holidays', cost:'Any amount', costTone:'gift' },
{ key:'contact',          title:'Questions?',   contact:true,
phone:'951-222-2005',   email:'info@jewishriverside.com' }
],
OPTIONS: {
'holiday-services': {
title:  'High Holiday Services',
intro:  'Free to attend. Choose the services you plan to join — ' +
'come for one or for all of them.',
teaser: 'You are invited to join warm and enriching High Holiday Services ' +
'and Programs\u2026',
blurb: [
'You are invited to join warm and enriching High Holiday Services and ' +
'Programs at Chabad Jewish Community Center.',
'At Chabad, services are not just prayers and rituals but a celebration ' +
'of Judaism shared joyfully and harmoniously by Jews of all backgrounds ' +
'and walks of life.',
'Our \u201cno membership policy\u201d means everyone can participate in ' +
'whatever services, classes, or programs appeal to them. Our doors and ' +
'our hearts are always open.',
'Whether you\u2019ve joined us in the past or this will be your first such ' +
'experience, be prepared to usher in the Year 5787 in a spirit of joy and ' +
'solidarity that is the hallmark of the High Holidays with Chabad Jewish ' +
'Community Center!',
'We\u2019re always here to help you with questions, comments, feedback, or ' +
'requests. For further information on any of the options below or to make ' +
'phone reservations, please call 951-222-2005.'
],
signoff: ['May the Almighty bless you and yours with good health and a sweet New Year!',
'Rabbi Shmuel & Tzippy Fuss'],
driver:  'input_75',
summary: 'input_76',
giftRow: 'input_77',
schedule: [
{ day:'Rosh Hashanah · Day 1', date:'Saturday, September 12', items:[
{ time:'10:00 AM', label:'Morning Services', native:'input_8_0' },
{ time:'1:30 PM',  label:'Kiddush Lunch Buffet',             native:'input_8_1' }
]},
{ day:'Rosh Hashanah · Day 2', date:'Sunday, September 13', items:[
{ time:'10:00 AM', label:'Morning Services',                 native:'input_8_2' },
{ time:'12:00 PM', label:'Shofar Sounding Ceremony', note:'Part of morning services — no RSVP needed', info:true },
{ time:'1:30 PM',  label:'Kiddush Buffet Lunch',             native:'input_8_3' },
{ time:'4:00 PM',  label:'Tashlich (additional shofar sounding)', note:'UCR Botanical Gardens', native:'input_52_0' }
]},
{ day:'Yom Kippur Eve', date:'Sunday, September 20', items:[
{ time:'6:30 PM',  label:'Kol Nidrei Service',               native:'input_9_0' }
]},
{ day:'Yom Kippur', date:'Monday, September 21', items:[
{ time:'10:00 AM', label:'Morning Services',                 native:'input_9_1' },
{ time:'12:00 PM', label:'Yizkor Memorial Service',          native:'input_9_2' },
{ time:'5:15 PM',  label:'Afternoon Services',               native:'input_9_3' },
{ time:'6:00 PM',  label:'Neilah', note:'Concluding prayer & shofar', native:'input_9_4' },
{ time:'7:24 PM',  label:'Yom Kippur ends', note:'Break-the-Fast buffet follows', info:true }
]}
]
},
'family-shofar': {
title:  'Children\u2019s Holiday Experiences',
intro:  'Two hands-on programs for children over the High Holidays. ' +
'Both are free \u2014 choose either or both.',
driver:  'input_79',
giftRow: 'input_77',
stepTitles: { schedule: 'Children\u2019s Holiday Experiences' },
schedule: [
{ day:'Rosh Hashanah \u00b7 Day 2', date:'Sunday, September 13', items:[
{ time:'11:30 AM', label:'Children\u2019s Shofar Experience',
note:'Hands-on shofar workshop', native:'input_54_0' }
]},
{ day:'Yom Kippur', date:'Monday, September 21', items:[
{ time:'6:00 PM', label:'Children\u2019s Magic Show',
note:'While the adults are at Neilah', native:'input_56_0' }
]}
]
},
'holiday-charity': {
title: 'High Holiday Gift',
intro: 'It is customary to give charity before the High Holidays. ' +
'Your gift supports services, meals and programs for the whole ' +
'community \u2014 including those who could not otherwise take part.\n' +
'All Services are free of charge. Your generous donation is greatly ' +
'appreciated!\nPlease also consider donating to assist others in our ' +
'community to celebrate the holidays.',
driver: 'input_78',
donationOnly: true,
stepTitles: { gift: 'High Holiday Gift', pay: 'Your details & payment' }
},
'rh-dinner': {
title: 'Rosh Hashanah Dinner',
kind:  'dinner',
intro: 'Welcome the New Year with a five-course dinner prepared by our ' +
'executive chef. Come share the holiday meal with your community \u2014 ' +
'this is your home, and there is always a place set for you.',
driver:  'input_80',
summary: 'input_101',
dinnerSub:  'input_93',
sponsorSub: 'input_94',
countsOnStep1: true,
stepTitles: { schedule:'Rosh Hashanah Dinner', gift:'Sponsor the Dinner' },
event: { date:'Friday, September 11', items:[
{ time:'5:45 PM', label:'Hors d\u2019oeuvres & Meet and Greet' },
{ time:'6:30 PM', label:'Candle Lighting' },
{ time:'6:45 PM', label:'Dinner' }
]},
tiers: [
{ key:'pwyc', label:'Pay what you can',
note:'Name your own amount \u2014 whatever works for you',
adults:'input_82', children:'input_83', amount:'input_95',
adultPrice:0, childPrice:0 },
{ key:'sugg', label:'Suggested price',
note:'$30 per adult \u00b7 $20 per child \u2014 covers basic costs',
adults:'input_84', children:'input_85', adultPrice:30, childPrice:20 },
{ key:'full', label:'Full price',
note:'$50 per adult \u00b7 $30 per child \u2014 covers all expenses ' +
'including administration and servers',
adults:'input_86', children:'input_87', adultPrice:50, childPrice:30 }
],
students:'input_88', veg:'input_92',
sponsorRadios:['input_89_0','input_89_1','input_89_2'],
sponsorAmounts:[360,500,720],
sponsorOther:'other_89', sponsorOtherAmt:'input_89',
sponsorStudents:'input_90', sponsorStudentPrice:30,
sponsorTable:'input_91',    sponsorTablePrice:125
},
'break-fast': {
title: 'Yom Kippur Break Fast',
intro: 'Join us as we break the fast with a delicious spread of bagels, ' +
'lox, soup, salads, scrumptious desserts, and more!\n' +
'No charge. Donations encouraged.',
driver:  'input_97',
giftRow: 'input_77',
adultsField:'input_98', childrenField:'input_99',
countsOnStep1: true,
stepTitles: { schedule:'Yom Kippur Break Fast', gift:'Sponsor the Break Fast' },
infoEvent: { date:'Monday, September 21', items:[
{ time:'5:15 PM', label:'Afternoon Services' },
{ time:'6:00 PM', label:'Neilah', note:'Concluding prayer & shofar' },
{ time:'6:00 PM', label:'Children\u2019s Magic Show' },
{ time:'7:24 PM', label:'Yom Kippur ends', note:'Break-the-Fast buffet follows' }
]},
giftAmounts:[1800,720,500,360],
giftRadios:['input_100_0','input_100_1','input_100_2','input_100_3'],
giftOther:'other_100', giftOtherAmt:'input_100'
},
'schedule': {
title: 'High Holidays Schedule',
kind:  'scheduleview',
goTo:  'holiday-services',
intro: 'Everything happening at Chabad Jewish Center of Riverside this ' +
'High Holiday season. Reserve your place below \u2014 all services ' +
'are free of charge.',
days: [
{ date:'Friday, September 11', sub:'Rosh Hashanah Eve', items:[
{ time:'5:45 PM', label:'Hors d\u2019oeuvres & Meet and Greet' },
{ time:'6:30 PM', label:'Candle Lighting' },
{ time:'6:45 PM', label:'Rosh Hashanah Dinner' } ]},
{ date:'Saturday, September 12', sub:'Rosh Hashanah \u00b7 Day 1', items:[
{ time:'10:00 AM', label:'Morning Services' },
{ time:'1:30 PM',  label:'Kiddush Lunch Buffet' } ]},
{ date:'Sunday, September 13', sub:'Rosh Hashanah \u00b7 Day 2', items:[
{ time:'10:00 AM', label:'Morning Services' },
{ time:'11:30 AM', label:'Children\u2019s Shofar Experience' },
{ time:'12:00 PM', label:'Shofar Sounding Ceremony' },
{ time:'1:30 PM',  label:'Kiddush Buffet Lunch' },
{ time:'4:00 PM',  label:'Tashlich', note:'UCR Botanical Gardens' } ]},
{ date:'Sunday, September 20', sub:'Yom Kippur Eve', items:[
{ time:'6:30 PM', label:'Kol Nidrei Service' } ]},
{ date:'Monday, September 21', sub:'Yom Kippur', items:[
{ time:'10:00 AM', label:'Morning Services' },
{ time:'12:00 PM', label:'Yizkor Memorial Service' },
{ time:'5:15 PM',  label:'Afternoon Services' },
{ time:'6:00 PM',  label:'Neilah', note:'Concluding prayer & shofar' },
{ time:'6:00 PM',  label:'Children\u2019s Magic Show' },
{ time:'7:24 PM',  label:'Yom Kippur ends', note:'Break-the-Fast buffet follows' } ]}
]
},
'schedule': {
title: 'High Holidays Schedule',
kind:  'schedule',
intro: 'Everything happening over the High Holidays at Chabad Jewish ' +
'Center of Riverside. Services are free and open to all.',
opensAs: 'holiday-services'
},
'sukkot': {
title: 'Sukkot Community BBQ',
kind:  'dinner',
intro: 'Dinner in the sukkah \u2014 barbecue, music and the whole ' +
'community together under the stars. Come as you are; there is ' +
'always a place set for you.',
driver:  'input_132',
summary: 'input_133',
dinnerSub:  'input_134',
sponsorSub: 'input_135',
countsOnStep1: true,
stepTitles: { schedule:'Sukkot Community BBQ', gift:'Sponsor the BBQ' },
event: { date:'Wednesday, September 30', items:[
{ time:'5:30 PM', label:'Community BBQ in the sukkah' },
{ time:'8:30 PM', label:'Evening ends' }
]},
tiers: [
{ key:'pwyc', label:'Pay what you can',
note:'Name your own amount \u2014 whatever works for you',
adults:'input_124', children:'input_125', amount:'input_130',
adultPrice:0, childPrice:0 },
{ key:'sugg', label:'Suggested price',
note:'$30 per adult \u00b7 $20 per child \u2014 covers basic costs',
adults:'input_127', children:'input_126', adultPrice:30, childPrice:20 },
{ key:'full', label:'Cover all expenses',
note:'$50 per adult \u00b7 $35 per child \u2014 covers all expenses ' +
'including administration, activities and servers',
adults:'input_128', children:'input_129', adultPrice:50, childPrice:35 }
],
students:'', veg:'',
sponsorAmounts:[180,360,540],
sponsorRadios:['input_131_0','input_131_1','input_131_2'],
sponsorOther:'other_131', sponsorOtherAmt:'input_131',
sponsorStudents:'', sponsorStudentPrice:0,
sponsorTable:'',    sponsorTablePrice:0
},
'yizkor': {
title: 'Yizkor Booklet',
kind:  'yizkor',
intro: 'It is a Jewish tradition to honor the memory of our loved ones in ' +
'our thoughts and prayers, as well as through acts of charity. The ' +
'virtue of pledging charity during Yizkor creates an opportunity for ' +
'the souls of our loved ones to be connected with us through tangible ' +
'acts of goodness and kindness.',
blurb: [
'One way to honor this tradition is through the publication of a Yizkor ' +
'Memorial Book, which we use when we gather for our High Holiday services.',
'Chabad Jewish Center of Riverside will be publishing a new Yizkor Book of ' +
'Life. This booklet will give us the opportunity to memorialize those whom ' +
'we lovingly remember at this time, as well as include prayers and ' +
'meditations of the Yizkor Service. It will be distributed and used for ' +
'this year\u2019s Yom Kippur Yizkor services and subsequent Yizkor services ' +
'throughout the year.'
],
teaser: 'One way to honor this tradition is through the publication of a ' +
'Yizkor Memorial Book\u2026',
deadline: 'Yizkor Book due date: Thursday, September 3',
driver:  'input_122',
summary: 'input_123',
donation:'input_121',
maxNames: 8,
nameFields: [
{ en:'first_105', enLast:'last_105', heb:'input_109',
father:'first_113', mother:'last_113', date:'input_117' },
{ en:'first_106', enLast:'last_106', heb:'input_110',
father:'first_114', mother:'last_114', date:'input_118' },
{ en:'first_107', enLast:'last_107', heb:'input_111',
father:'first_115', mother:'last_115', date:'input_119' },
{ en:'first_108', enLast:'last_108', heb:'input_112',
father:'first_116', mother:'last_116', date:'input_120' },
{ en:'first_136', enLast:'last_136', heb:'input_140',
father:'first_144', mother:'last_144', date:'input_148' },
{ en:'first_137', enLast:'last_137', heb:'input_141',
father:'first_145', mother:'last_145', date:'input_149' },
{ en:'first_138', enLast:'last_138', heb:'input_142',
father:'first_146', mother:'last_146', date:'input_150' },
{ en:'first_139', enLast:'last_139', heb:'input_143',
father:'first_147', mother:'last_147', date:'input_151' }
]
},
'resources': {
title: 'High Holiday Resources',
kind:  'info',
intro: 'Everything you might want before the holidays \u2014 what the days ' +
'mean, how the prayers work, what to expect if it\u2019s your first ' +
'time, recipes, videos and readings for the season.',
body: [
'Our website keeps a full High Holidays library: guides to Rosh Hashanah ' +
'and Yom Kippur, the meaning of the shofar, holiday recipes, children\u2019s ' +
'stories, and prayers with translation and transliteration.',
'It opens in a new tab, so you won\u2019t lose your place here.'
],
cta: { label:'Open the resource library',
url:['https://www.jewishriverside.com','holidays','JewishNewYear',
'template_cdo','aid','36130','jewish',
'High-Holidays-2026.htm'].join('/') }
},
'lulav': {
title: 'Lulav & Etrog',
kind:  'lulav',
intro: 'Order your own Lulav & Etrog set for Sukkot. $54 per set, ' +
'picked up before the holiday.',
driver:  'input_104',
qtyField:'input_102',
unitPrice: 54,
pickupRadios:['input_103_0','input_103_1'],
pickupLabels:[
'Monday, September 21 \u2014 after Yom Kippur services',
'September 22\u201324, 12pm\u20136pm'
]
}
},
F: {
adults:'input_59', children:'input_60',
firstMain:'first_62', lastMain:'last_62',
adultFirst:['first_63','first_64','first_65','first_66'],
adultLast: ['last_63','last_64','last_65','last_66'],
childFirst:['first_67','first_68','first_69','first_70','first_71'],
childLast: ['last_67','last_68','last_69','last_70','last_71'],
email:'input_72', phone:'input_73_full',
sponsorRadios:['input_53_0','input_53_1','input_53_2','input_53_3','input_53_4'],
sponsorOther:'other_53', sponsorAmt:'input_53',
dedInHonor:'input_39_0', dedInMemory:'input_39_1', dedNames:'input_48',
notes:'input_57',
payCard:'input_61_creditCard', payPal:'input_61_paypal',
ccNum:'input_61_cc_number', ccCvv:'input_61_cc_ccv', ccName:'input_61_cc_nameOnCard',
ccMon:'input_61_cc_exp_month', ccYear:'input_61_cc_exp_year',
billAddr:'input_61_addr_line1', billCity:'input_61_city',
billState:'input_61_state', billPostal:'input_61_postal', billCountry:'input_61_country'
},
TIMES: {
rhEve:     '6:43 PM',
rhDay1Eve: '7:37 PM',
rhEnds:    '7:36 PM',
ykEve:     '6:31 PM',
ykEnds:    '7:24 PM'
},
SUKKOT_SCHEDULE: [
{ day:'Sukkot Eve', date:'Friday, September 25', items:[
{ time:'6:24 PM', label:'Light Shabbat & holiday candles', cand:true }
]},
{ day:'Sukkot \u00b7 Day 1', date:'Saturday, September 26', items:[
{ time:'10:00 AM', label:'Morning Services' },
{ time:'11:00 AM', label:'Torah Reading & Discussion' },
{ time:'12:30 PM', label:'Kiddush Buffet Lunch in the Sukkah' },
{ time:'7:17 PM',  label:'Light holiday candles after this time, from a pre-existing flame', cand:true }
]},
{ day:'Sukkot \u00b7 Day 2', date:'Sunday, September 27', items:[
{ time:'10:00 AM', label:'Morning Services with Lulav & Etrog' },
{ time:'11:00 AM', label:'Torah Reading & Discussion' },
{ time:'12:30 PM', label:'Kiddush Buffet Lunch in the Sukkah' },
{ time:'7:16 PM',  label:'Sukkot ends', cand:true }
]},
{ day:'Community BBQ', date:'Wednesday, September 30', items:[
{ time:'5:30 PM', label:'BBQ, live music and entertainment for the whole family' },
{ time:'8:30 PM', label:'Evening ends' }
]},
{ day:'Shemini Atzeret Eve', date:'Friday, October 2', items:[
{ time:'6:14 PM', label:'Light Shabbat & holiday candles', cand:true }
]},
{ day:'Shemini Atzeret', date:'Saturday, October 3', items:[
{ time:'10:30 AM', label:'Morning Services' },
{ time:'11:30 AM', label:'Torah Reading & Discussion' },
{ time:'7:08 PM',  label:'Light holiday candles after this time, from a pre-existing flame', cand:true },
{ time:'Evening',  label:'Buffet Dinner & Dancing with the Torahs' }
]},
{ day:'Simchat Torah', date:'Sunday, October 4', items:[
{ time:'10:00 AM', label:'Morning Services' },
{ time:'11:00 AM', label:'Conclusion of the entire Torah' },
{ time:'12:30 PM', label:'Kiddush Luncheon' },
{ time:'7:06 PM',  label:'Holiday ends', cand:true }
]}
],
GIFTS: [1800, 1000, 720, 540, 360],
DEFAULT_COUNTRY: 'United States',
footerNote: 'Questions? Call 951-222-2005 or email info@jewishriverside.com',
SHOW_ESCAPE_HATCH: false
};
var HREF = window.location.href;
var AID  = CFG.AID;
var onEvent =
HREF.indexOf('/aid/' + AID) > -1 ||
HREF.indexOf('aid=' + AID)  > -1 ||
HREF.indexOf('/' + AID + '/') > -1 ||
HREF.indexOf('/' + AID + '.') > -1;
var inPreview = !!document.getElementById('hh26-preview-flag');
var hasStash = false;
try {
var raw = sessionStorage.getItem('hh26_confirm');
if (raw) {
var st = JSON.parse(raw);
hasStash = !!st && (Date.now() - st.t) < 120000;
if (!hasStash) sessionStorage.removeItem('hh26_confirm');
}
} catch (e) { hasStash = false; }
if (!onEvent && !inPreview && !hasStash) return;
hidePageNow();
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', boot);
} else {
boot();
}
function hidePageNow() {
if (document.getElementById('hh26-preboot')) return;
var st = document.createElement('style');
st.id = 'hh26-preboot';
st.textContent =
'html{background:#F5EBDF !important;}' +
'body > *:not(#hh26):not(#hh26-preview-flag){visibility:hidden !important;}' +
'body{background:#F5EBDF !important;}';
(document.head || document.documentElement).appendChild(st);
setTimeout(function () {
if (!document.getElementById('hh26')) showPageAgain();
}, 5000);
}
function showPageAgain() {
var st = document.getElementById('hh26-preboot');
if (st && st.parentNode) st.parentNode.removeChild(st);
}
function boot() {
if (document.getElementById('hh26')) return;
var s = readStash();
if (s && !document.getElementById('input_2')) {
loadFonts(); injectStyles(); buildConfirmation(s);
return;
}
if (!onEvent && !inPreview) return;
loadFonts();
injectStyles();
buildOverlay();
}
function loadFonts() {
var l = document.createElement('link');
l.rel = 'stylesheet';
l.href = 'https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&' +
'family=Karla:wght@400;500;600;700&display=swap';
document.head.appendChild(l);
}
function injectStyles() {
var css = [
'#hh26{',
'  --paper:#F5EBDF; --paper-2:#EDE0CE; --card:#FFFCF7;',
'  --wine:#5E1523; --wine-hi:#7C2434;',
'  --gold:#8A6A28; --gold-line:rgba(168,133,63,.38);',
'  --ink:#332821; --muted:#5F5046;',
'  --disp:"Playfair Display","Hoefler Text",Georgia,serif;',
'  --body:"Karla","Helvetica Neue",Arial,sans-serif;',
'  position:fixed; inset:0; z-index:2147482000;',
'  overflow-y:auto; -webkit-overflow-scrolling:touch;',
'  background:var(--paper); color:var(--ink);',
'  font-family:var(--body); font-size:16px; line-height:1.5;',
'  text-align:left; letter-spacing:0;',
'}',
'#hh26 *{box-sizing:border-box; margin:0; padding:0;}',
'#hh26 button{font:inherit; color:inherit; background:none; border:0;}',
'#hh26 img{max-width:100%; display:block;}',
'#hh26 :focus-visible{outline:2px solid var(--wine); outline-offset:3px;}',
'#hh26 .hh-sr{position:absolute; width:1px; height:1px; overflow:hidden;',
'  clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap;}',
'#hh26 .hh-hero{position:relative; display:flex; align-items:center;',
'  aspect-ratio:var(--hh-ratio,32/9); min-height:min(62svh,420px);',
'  overflow:hidden; background:var(--paper);',
'  border-bottom:1px solid var(--gold-line);}',
'#hh26 .hh-hero-img{position:absolute; inset:0; width:100%; height:100%;',
'  object-fit:cover; max-width:none;}',
'#hh26 .hh-hero.flip .hh-hero-img{transform:scaleX(-1);}',
'#hh26 .hh-hero::after{content:""; position:absolute; inset:0; pointer-events:none;',
'  background:linear-gradient(to right,',
'    rgba(245,235,223,calc(var(--hh-s,.95) * 1.00)) 0%,',
'    rgba(245,235,223,calc(var(--hh-s,.95) * 0.98)) 40%,',
'    rgba(245,235,223,calc(var(--hh-s,.95) * 0.80)) 60%,',
'    rgba(245,235,223,calc(var(--hh-s,.95) * 0.38)) 76%,',
'    rgba(245,235,223,calc(var(--hh-s,.95) * 0.10)) 90%,',
'    rgba(245,235,223,0) 100%);}',
'@media (max-width:760px){',
'  #hh26 .hh-hero::after{background:linear-gradient(to right,',
'    rgba(245,235,223,calc(var(--hh-s,.95) * 0.98)) 0%,',
'    rgba(245,235,223,calc(var(--hh-s,.95) * 0.90)) 55%,',
'    rgba(245,235,223,calc(var(--hh-s,.95) * 0.70)) 100%);}',
'}',
'#hh26 .hh-hero-copy{position:relative; z-index:1; width:100%; max-width:1120px;',
'  margin:0 auto; padding:clamp(26px,4.6vw,44px) clamp(14px,4.5vw,56px);}',
'#hh26 .hh-hero-copy > *{max-width:640px;}',
'#hh26 .hh-hero-ph{width:100%; aspect-ratio:32/9; min-height:300px;',
'  display:flex; align-items:center; justify-content:center;',
'  color:var(--muted); font-size:.74rem; letter-spacing:.22em;',
'  text-transform:uppercase; border:1px dashed var(--gold-line);}',
'#hh26 .hh-eyebrow{font-size:clamp(.62rem,1.5vw,.72rem); font-weight:600;',
'  letter-spacing:.3em; text-transform:uppercase; color:var(--gold);',
'  margin-bottom:clamp(9px,1.8vw,14px);}',
'#hh26 h1{font-family:var(--disp); font-weight:500; color:var(--wine);',
'  font-size:clamp(2.6rem,6.6vw,5rem); line-height:1.03; letter-spacing:-.005em;}',
'#hh26 .hh-org{font-family:var(--disp); font-weight:400; color:var(--gold);',
'  font-size:clamp(1.05rem,2.9vw,1.65rem); margin-top:11px; font-style:italic;}',
'#hh26 .hh-org strong{font-style:normal; font-weight:700; color:var(--wine);',
'  letter-spacing:.06em; font-size:1.12em;}',
'#hh26 .hh-lede{max-width:50ch; margin-top:clamp(12px,2.1vw,19px);',
'  color:var(--ink); font-size:clamp(.95rem,2.1vw,1.18rem); line-height:1.6;}',
'#hh26 .hh-dates{display:grid; grid-template-columns:repeat(2,1fr);',
'  gap:clamp(8px,1.8vw,14px); max-width:520px; margin-top:clamp(16px,2.8vw,26px);}',
'#hh26 .hh-datecard{border:1px solid var(--gold-line); border-radius:2px;',
'  background:rgba(255,252,247,.82);',
'  padding:clamp(9px,1.9vw,15px) clamp(11px,2.2vw,19px);}',
'#hh26 .hh-datecard b{display:block; font-weight:600; color:var(--gold);',
'  font-size:clamp(.55rem,1.5vw,.71rem); letter-spacing:.18em;',
'  text-transform:uppercase; margin-bottom:5px;}',
'#hh26 .hh-datecard span{display:block; font-family:var(--disp); color:var(--wine);',
'  font-size:clamp(1rem,2.9vw,1.45rem); line-height:1.12;}',
'@media (max-width:760px){',
'  #hh26 .hh-hero{aspect-ratio:auto; min-height:0; align-items:flex-start;}',
'  #hh26 .hh-hero-copy{max-width:none; width:100%;',
'    padding:clamp(22px,6vw,30px) clamp(18px,5vw,24px) clamp(24px,7vw,34px);}',
'  #hh26 h1{font-size:clamp(2.6rem,11vw,3.4rem); line-height:1.0;}',
'  #hh26 .hh-org{font-size:clamp(1.1rem,4.6vw,1.35rem); margin-top:8px;}',
'  #hh26 .hh-lede{max-width:none; font-size:clamp(1rem,4.2vw,1.12rem);',
'    line-height:1.55; margin-top:14px;}',
'  #hh26 .hh-dates{max-width:none; margin-top:18px; gap:10px;}',
'  #hh26 .hh-datecard{padding:11px 13px;}',
'  #hh26 .hh-datecard b{font-size:.63rem; letter-spacing:.15em;}',
'  #hh26 .hh-datecard span{font-size:clamp(1.05rem,4.4vw,1.25rem);}',
'}',
'#hh26 .hh-body{max-width:1120px; margin:0 auto;',
'  padding:clamp(34px,6.5vw,64px) clamp(14px,4.5vw,56px) clamp(46px,8vw,88px);}',
'#hh26 .hh-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(10px,2.4vw,16px);}',
'@media (min-width:760px){#hh26 .hh-grid{grid-template-columns:repeat(3,1fr); gap:20px;}}',
'#hh26 .hh-tile{display:flex; flex-direction:column; width:100%; text-align:left;',
'  background:var(--card); border:1px solid var(--gold-line);',
'  border-radius:3px; overflow:hidden; cursor:pointer;',
'  box-shadow:0 1px 2px rgba(94,21,35,.05);',
'  transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;',
'  opacity:0; animation:hh26in .55s ease forwards;}',
'#hh26 .hh-tile:hover{transform:translateY(-4px); border-color:var(--gold);',
'  box-shadow:0 14px 32px rgba(94,21,35,.13);}',
'#hh26 .hh-tile:active{transform:translateY(-1px);}',
'#hh26 .hh-sq{position:relative; aspect-ratio:1/1; width:100%; background:var(--paper-2);}',
'#hh26 .hh-noart{position:absolute; inset:0; display:flex; align-items:center;',
'  justify-content:center; padding:14px; text-align:center;',
'  font-family:var(--disp); color:var(--wine); font-size:1.1rem; line-height:1.25;}',
'#hh26 .hh-sq img{width:100%; height:100%; object-fit:cover;}',
'#hh26 .hh-noart{width:100%; height:100%; display:flex; align-items:center;',
'  justify-content:center; padding:14%; text-align:center;',
'  background:var(--paper); color:var(--wine);',
'  font-family:var(--disp); font-size:clamp(1rem,3.4vw,1.5rem); line-height:1.2;}',
'#hh26 .hh-cap{display:flex; align-items:center;',
'  padding:clamp(11px,2.4vw,15px) clamp(11px,2.3vw,16px);',
'  border-top:1px solid var(--gold-line); background:var(--card);}',
'#hh26 .hh-tile.ov .hh-cap{position:absolute; left:0; right:0; bottom:0;',
'  border-top:0; background:none;',
'  padding:20px clamp(11px,2.4vw,16px) clamp(10px,2.2vw,14px);}',
'#hh26 .hh-date{font-size:clamp(.72rem,1.9vw,.88rem); font-weight:700;',
'  letter-spacing:.11em; text-transform:uppercase; color:var(--gold);',
'  line-height:1.3;}',
'@keyframes hh26in{from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:none;}}',
'#hh26 .hh-foot{border-top:1px solid var(--gold-line); background:var(--paper-2);',
'  padding:clamp(26px,5vw,40px) 20px; text-align:center;',
'  color:var(--muted); font-size:.88rem;}',
'#hh26 .hh-hatch{display:inline-block; margin-top:14px; font-size:.68rem;',
'  letter-spacing:.14em; text-transform:uppercase; color:var(--muted);',
'  text-decoration:underline; text-underline-offset:4px; cursor:pointer;}',
'#hh26 .hh-toast{position:fixed; left:50%; bottom:24px; transform:translateX(-50%);',
'  background:var(--wine); color:#FFFCF7; padding:12px 20px; border-radius:3px;',
'  font-size:.84rem; font-weight:600; box-shadow:0 10px 30px rgba(94,21,35,.3);',
'  z-index:5; max-width:90vw;}',
'@media (prefers-reduced-motion: reduce){',
'  #hh26 .hh-tile{animation:none; opacity:1;}',
'  #hh26 .hh-tile:hover{transform:none;}',
'  #hh26 .hh-tile{transition:border-color .2s ease;}',
'  #hh26 .hh-pane{animation:none !important;}',
'}',
'#hh26 .hh-bg{position:fixed; inset:0; z-index:20; display:flex;',
'  align-items:center; justify-content:center; padding:clamp(5px,2.5vw,28px);',
'  background:rgba(26,21,51,.58);}',
'#hh26 .hh-modal{display:flex; flex-direction:column; width:100%;',
'  max-width:600px; max-height:min(92dvh,820px); background:var(--card);',
'  border:1px solid var(--gold); border-radius:4px;',
'  box-shadow:0 30px 70px rgba(26,21,51,.4); overflow:hidden;}',
'#hh26 .hh-mhead{flex:none; display:flex; align-items:center; gap:13px;',
'  padding:clamp(13px,3vw,18px) clamp(16px,3.4vw,24px) clamp(12px,2.4vw,15px);',
'  border-bottom:1px solid var(--gold-line); background:var(--paper);}',
'#hh26 .hh-mthumb{flex:none; width:54px; height:54px; border-radius:3px;',
'  object-fit:cover; border:1px solid var(--gold-line);}',
'#hh26 .hh-mheadtext{min-width:0; flex:1;}',
'#hh26 .hh-htotal{flex:none; text-align:right; padding:22px 0 0 10px;}',
'#hh26 .hh-htotal span{display:block; font-size:.68rem; font-weight:700;',
'  letter-spacing:.14em; text-transform:uppercase; color:var(--gold);}',
'#hh26 .hh-htotal b{display:block; font-family:var(--disp); font-weight:400;',
'  color:var(--wine); font-size:clamp(1.15rem,3.4vw,1.5rem); line-height:1.15;}',
'@media (max-width:520px){#hh26 .hh-htotal{padding-top:20px;}',
'  #hh26 .hh-htotal b{font-size:1.25rem;}}',
'#hh26 .hh-mtitle{font-family:var(--disp); color:var(--wine);',
'  font-size:clamp(1.45rem,4.2vw,2.2rem); line-height:1.15; padding-right:34px;}',
'#hh26 .hh-mtitle.hh-long{font-size:clamp(1.2rem,3.5vw,1.8rem);}',
'#hh26 .hh-mstep{font-size:.82rem; font-weight:700; letter-spacing:.14em;',
'  text-transform:uppercase; color:var(--gold); margin-top:6px;}',
'#hh26 .hh-x{position:absolute; top:6px; right:6px; width:38px; height:38px;',
'  font-size:22px; line-height:1; color:var(--muted); cursor:pointer;}',
'#hh26 .hh-mwrap{position:relative;}',
'#hh26 .hh-mbody{flex:1 1 auto; overflow-y:auto; -webkit-overflow-scrolling:touch;',
'  padding:clamp(14px,3.2vw,22px) clamp(11px,3.4vw,24px);}',
'#hh26 .hh-pane{animation:hh26slide .28s ease;}',
'@keyframes hh26slide{from{opacity:0; transform:translateX(22px);} to{opacity:1; transform:none;}}',
'#hh26 .hh-intro{color:var(--ink); font-size:1.16rem; line-height:1.55;',
'  margin-bottom:18px; white-space:pre-line;}',
'#hh26 .hh-day{margin:15px 0 5px; padding-bottom:6px;',
'  border-bottom:1px solid var(--gold-line);}',
'#hh26 .hh-day:first-child{margin-top:0;}',
'#hh26 .hh-dayname{font-family:var(--disp); color:var(--wine); font-size:1.45rem;}',
'#hh26 .hh-daydate{font-size:.88rem; font-weight:700; letter-spacing:.12em;',
'  text-transform:uppercase; color:var(--gold); margin-top:3px;}',
'#hh26 .hh-row{display:flex; align-items:flex-start; gap:11px; width:100%;',
'  padding:9px 8px; border-radius:3px; cursor:pointer; text-align:left;',
'  transition:background .15s ease;}',
'#hh26 .hh-row:hover{background:var(--paper);}',
'#hh26 .hh-row.info{cursor:default; opacity:.62;}',
'#hh26 .hh-row.info:hover{background:none;}',
'#hh26 .hh-box{flex:none; width:23px; height:23px; margin-top:1px; border-radius:3px;',
'  border:1.5px solid var(--gold); background:#fff; position:relative;}',
'#hh26 .hh-row.on .hh-box{background:var(--wine); border-color:var(--wine);}',
'#hh26 .hh-row.on .hh-box:after{content:""; position:absolute; left:7px; top:3px;',
'  width:5px; height:10px; border:solid #fff; border-width:0 2px 2px 0;',
'  transform:rotate(42deg);}',
'#hh26 .hh-row.info .hh-box{border:0; background:none;}',
'#hh26 .hh-time{flex:none; width:100px; font-size:.98rem; font-weight:700;',
'  color:var(--gold); padding-top:2px;}',
'#hh26 .hh-lab{flex:1; font-size:1.18rem; line-height:1.35;}',
'#hh26 .hh-note{display:block; font-size:.96rem; color:var(--muted); margin-top:3px;}',
'#hh26 .hh-nofield{display:block; font-size:.68rem; color:#B0472F; margin-top:2px;}',
'#hh26 .hh-fld{margin-bottom:12px;}',
'#hh26 .hh-fld > label{display:block; font-size:.88rem; font-weight:700;',
'  letter-spacing:.1em; text-transform:uppercase; color:var(--gold); margin-bottom:6px;}',
'#hh26 .hh-in{width:100%; padding:12px 13px; font:inherit; font-size:1.12rem;',
'  color:var(--ink); background:#fff; border:1px solid var(--gold-line);',
'  border-radius:3px;}',
'#hh26 .hh-in:focus{outline:none; border-color:var(--wine);}',
'#hh26 .hh-in::placeholder{font-size:.72rem; font-weight:500;',
'  letter-spacing:0; color:rgba(138,119,106,.6); opacity:1;}',
'#hh26 .hh-in::-webkit-input-placeholder{font-size:.72rem; font-weight:500;',
'  letter-spacing:0; color:rgba(138,119,106,.6);}',
'#hh26 textarea.hh-in{min-height:76px; resize:vertical;}',
'#hh26 .hh-two{display:grid; grid-template-columns:1fr 1fr; gap:9px;}',
'#hh26 .hh-align > .hh-fld > label{min-height:2.7em;}',
'#hh26 .hh-sub{font-family:var(--disp); color:var(--wine); font-size:1.4rem;',
'  margin:18px 0 9px; padding-bottom:5px; border-bottom:1px solid var(--gold-line);}',
'#hh26 .hh-sub:first-child{margin-top:0;}',
'#hh26 .hh-hint{font-size:1rem; color:var(--muted); margin:-4px 0 12px;}',
'#hh26 .hh-chips{display:grid; grid-template-columns:repeat(3,1fr); gap:8px;}',
'#hh26 .hh-chip{padding:14px 6px; text-align:center; font-size:1.16rem;',
'  border:1px solid var(--gold-line); border-radius:3px; background:#fff;',
'  cursor:pointer; transition:all .15s ease;}',
'#hh26 .hh-chip:hover{border-color:var(--gold);}',
'#hh26 .hh-chip.on{background:var(--wine); border-color:var(--wine); color:#fff;}',
'#hh26 .hh-total{margin-top:16px; padding:15px 17px; font-size:1.02rem; background:var(--paper);',
'  border:1px solid var(--gold-line); border-radius:3px; font-size:1.08rem;',
'  display:flex; justify-content:space-between; align-items:baseline;}',
'#hh26 .hh-total b{font-family:var(--disp); font-weight:400; color:var(--wine);',
'  font-size:1.6rem;}',
'#hh26 .hh-carry{display:flex; align-items:center; justify-content:space-between;',
'  gap:11px; padding:12px 14px; border:1px solid var(--gold-line);',
'  border-radius:3px; background:var(--paper); font-size:1.02rem;}',
'#hh26 .hh-change{flex:none; font-size:.88rem; color:var(--wine); cursor:pointer;',
'  text-decoration:underline; text-underline-offset:3px;}',
'#hh26 .hh-deadline{display:inline-block; margin:0 0 16px; padding:8px 13px;',
'  border:1px solid var(--gold); border-radius:2px; background:#fff;',
'  font-weight:700; font-size:.95rem; color:var(--wine);}',
'#hh26 .hh-blurb{margin-bottom:15px; padding-bottom:14px;',
'  border-bottom:1px solid var(--gold-line);}',
'#hh26 .hh-bpara{display:block; font-size:1.1rem; line-height:1.6;',
'  color:var(--ink); margin-bottom:10px;}',
'#hh26 .hh-bpara:last-of-type{margin-bottom:8px;}',
'#hh26 .hh-bsign{margin-top:14px; font-family:var(--disp); color:var(--wine);',
'  font-size:1.02rem; line-height:1.5;}',
'#hh26 .hh-more{display:inline-block; font-size:.92rem; font-weight:600;',
'  color:var(--wine); cursor:pointer; text-decoration:underline;',
'  text-underline-offset:3px; white-space:nowrap;}',
'#hh26 .hh-adds{display:flex; flex-direction:column; gap:9px;}',
'#hh26 .hh-add{display:flex; align-items:center; justify-content:space-between;',
'  gap:11px; padding:15px 16px; border:1px solid var(--gold-line);',
'  border-radius:3px; background:#fff; cursor:pointer;',
'  transition:border-color .15s ease, background .15s ease;}',
'#hh26 .hh-add:hover{border-color:var(--gold); background:var(--paper);}',
'#hh26 .hh-add b{display:block; font-weight:600; font-size:1.18rem;}',
'#hh26 .hh-addplus{flex:none; width:30px; height:30px; border-radius:50%;',
'  background:var(--wine); color:#FFFCF7; font-size:20px; line-height:29px;',
'  text-align:center;}',
'#hh26 .hh-rsec{margin-bottom:16px; padding-bottom:14px;',
'  border-bottom:1px solid var(--gold-line);}',
'#hh26 .hh-rhead{font-family:var(--disp); color:var(--wine);',
'  font-size:1.28rem; margin-bottom:8px;}',
'#hh26 .hh-rrow{display:flex; gap:12px; padding:4px 0; align-items:flex-start;}',
'#hh26 .hh-rk{flex:none; width:36%; font-size:.86rem; font-weight:700;',
'  letter-spacing:.06em; text-transform:uppercase; color:var(--gold);',
'  padding-top:2px;}',
'#hh26 .hh-rv{flex:1; font-size:1.06rem; line-height:1.45;}',
'@media (max-width:520px){#hh26 .hh-rk{width:100%;}',
'  #hh26 .hh-rrow{flex-wrap:wrap; gap:2px; padding:6px 0;}}',
'#hh26 .hh-contact{cursor:default; background:var(--paper);}',
'#hh26 .hh-contact:hover{transform:none; border-color:var(--gold);',
'  box-shadow:0 1px 2px rgba(94,21,35,.05);}',
'#hh26 .hh-csq{aspect-ratio:1/1; width:100%; display:flex;',
'  flex-direction:column; align-items:center; justify-content:center;',
'  text-align:center; padding:clamp(12px,3vw,22px);}',
'@media (min-width:760px){',
'  #hh26 .hh-contact{grid-column:1 / -1;}',
'  #hh26 .hh-contact .hh-csq{aspect-ratio:auto; flex-direction:row;',
'    flex-wrap:wrap; justify-content:center; gap:8px 30px;',
'    padding:26px clamp(20px,3vw,34px);}',
'  #hh26 .hh-contact .hh-cq{margin-bottom:0; font-size:1.6rem;}',
'  #hh26 .hh-contact .hh-cpair{display:flex; align-items:baseline; gap:10px;}',
'  #hh26 .hh-contact .hh-cline{font-size:.72rem;}',
'  #hh26 .hh-contact .hh-clink{margin:0; font-size:1.3rem;}',
'  #hh26 .hh-contact .hh-cmail{font-size:1.1rem;}',
'}',
'#hh26 .hh-cq{font-family:var(--disp); color:var(--wine);',
'  font-size:clamp(1.15rem,3.6vw,1.7rem); margin-bottom:clamp(8px,2vw,14px);}',
'#hh26 .hh-cline{display:block; font-size:clamp(.62rem,1.7vw,.76rem);',
'  font-weight:700; letter-spacing:.14em; text-transform:uppercase;',
'  color:var(--gold);}',
'#hh26 .hh-cpair{display:block;}',
'#hh26 .hh-clink{display:block; color:var(--ink); text-decoration:none;',
'  font-family:var(--disp); font-size:clamp(.95rem,2.9vw,1.3rem);',
'  margin:3px 0 clamp(8px,2vw,14px); word-break:break-word; line-height:1.2;}',
'#hh26 .hh-clink:hover{color:var(--wine); text-decoration:underline;',
'  text-underline-offset:3px;}',
'#hh26 .hh-cmail{margin-bottom:0; font-size:clamp(.78rem,2.2vw,1rem);}',
'#hh26 .hh-tiers{display:flex; flex-direction:column; gap:8px;}',
'#hh26 .hh-tier{display:flex; align-items:flex-start; gap:11px; padding:12px 13px;',
'  border:1px solid var(--gold-line); border-radius:3px; background:#fff;',
'  cursor:pointer; transition:border-color .15s ease, background .15s ease;}',
'#hh26 .hh-tier:hover{border-color:var(--gold);}',
'#hh26 .hh-tier.on{border-color:var(--wine); background:var(--paper);}',
'#hh26 .hh-tier b{font-weight:600; font-size:1.18rem; display:block;}',
'#hh26 .hh-radio{flex:none; width:19px; height:19px; margin-top:2px;',
'  border-radius:50%; border:1.5px solid var(--gold); background:#fff; position:relative;}',
'#hh26 .hh-tier.on .hh-radio{border-color:var(--wine);}',
'#hh26 .hh-tier.on .hh-radio:after{content:""; position:absolute; inset:3.5px;',
'  border-radius:50%; background:var(--wine);}',
'#hh26 .hh-mfoot{flex:none; padding:clamp(12px,2.6vw,17px) clamp(16px,3.4vw,24px);',
'  border-top:1px solid var(--gold-line); background:var(--paper);',
'  display:flex; align-items:center; gap:12px;}',
'#hh26 .hh-back{flex:none; font-size:1rem; color:var(--muted); cursor:pointer;',
'  text-decoration:underline; text-underline-offset:3px;}',
'#hh26 .hh-nextwrap{flex:1; text-align:left; order:1;}',
'#hh26 .hh-back{order:2;}',
'#hh26 .hh-next{display:inline-flex; align-items:center; gap:9px;',
'  padding:14px 26px; background:var(--wine); color:#FFFCF7; border-radius:3px;',
'  font-size:1.14rem; font-weight:600; cursor:pointer;}',
'#hh26 .hh-next:hover{background:var(--wine-hi);}',
'#hh26 .hh-next[disabled]{opacity:.4; cursor:not-allowed;}',
'#hh26 .hh-nexthint{display:block; font-size:.92rem; color:var(--muted); margin-top:7px;}',
'#hh26 .hh-err{color:#9B2F1C; font-size:1.05rem; font-weight:600; margin-bottom:12px;}',
'@media (max-width:520px){',
'  #hh26 .hh-row{gap:8px; padding:9px 2px;}',
'  #hh26 .hh-box{width:24px; height:24px;}',
'  #hh26 .hh-box:after{left:7px; top:3px; width:6px; height:11px;}',
'  #hh26 .hh-time{width:72px; font-size:1rem; letter-spacing:-.02em; line-height:1.25;}',
'  #hh26 .hh-lab{font-size:1.3rem; line-height:1.3;}',
'  #hh26 .hh-note{font-size:1rem;}',
'  #hh26 .hh-day{margin:16px 0 5px;}',
'  #hh26 .hh-dayname{font-size:1.45rem;}',
'  #hh26 .hh-daydate{font-size:.92rem;}',
'  #hh26 .hh-mtitle{font-size:1.7rem;}',
'  #hh26 .hh-mtitle.hh-long{font-size:1.28rem;}',
'  #hh26 .hh-mstep{font-size:.82rem;}',
'  #hh26 .hh-intro{font-size:1.3rem; line-height:1.45;}',
'  #hh26 .hh-sub{font-size:1.5rem;}',
'  #hh26 .hh-hint{font-size:1.08rem;}',
'  #hh26 .hh-err{font-size:1.15rem;}',
'  #hh26 .hh-in{font-size:1.25rem; padding:13px 13px;}',
'  #hh26 .hh-fld > label{font-size:.92rem;}',
'  #hh26 .hh-chip{font-size:1.3rem; padding:16px 6px;}',
'  #hh26 .hh-tier b{font-size:1.3rem;}',
'  #hh26 .hh-tier{padding:14px 13px;}',
'  #hh26 .hh-radio{width:22px; height:22px;}',
'  #hh26 .hh-total{font-size:1.22rem;}',
'  #hh26 .hh-total b{font-size:1.9rem;}',
'  #hh26 .hh-next{font-size:1.25rem; padding:15px 26px;}',
'  #hh26 .hh-nexthint{font-size:.95rem;}',
'  #hh26 .hh-back{font-size:1.08rem;}',
'  #hh26 .hh-carry{font-size:1.25rem;}',
'  #hh26 .hh-change{font-size:1.02rem;}',
'  #hh26 .hh-add b{font-size:1.3rem;}',
'  #hh26 .hh-bpara{font-size:1.18rem; line-height:1.5;}',
'  #hh26 .hh-bsign{font-size:1.2rem;}',
'  #hh26 .hh-more{font-size:1.1rem;}',
'  #hh26 .hh-mthumb{width:46px; height:46px;}',
'  #hh26 .hh-mhead{gap:11px;}',
'  #hh26 .hh-crow{gap:8px;}',
'  #hh26 .hh-ctime{width:72px; font-size:1rem; line-height:1.25;}',
'  #hh26 .hh-clab{font-size:1.3rem;}',
'  #hh26 .hh-cday{font-size:.92rem;}',
'  #hh26 .hh-chips{grid-template-columns:repeat(2,1fr);}',
'  #hh26 .hh-in::placeholder{font-size:.68rem; letter-spacing:0;}',
'  #hh26 .hh-in::-webkit-input-placeholder{font-size:.68rem; letter-spacing:0;}',
'}',
'@media (max-height:560px) and (orientation:landscape){',
'  #hh26 .hh-hero{aspect-ratio:auto; min-height:0; align-items:flex-start;}',
'  #hh26 .hh-hero-copy{max-width:none; padding:20px clamp(16px,3.5vw,34px) 22px;}',
'  #hh26 .hh-hero-copy > *{max-width:none;}',
'  #hh26 h1{font-size:2.5rem; line-height:1.02;}',
'  #hh26 .hh-org{font-size:1.2rem; margin-top:6px;}',
'  #hh26 .hh-lede{max-width:none; font-size:.98rem; line-height:1.45; margin-top:9px;}',
'  #hh26 .hh-dates{max-width:520px; margin-top:13px; gap:10px;}',
'  #hh26 .hh-datecard{padding:9px 13px;}',
'  #hh26 .hh-datecard b{font-size:.6rem; margin-bottom:3px;}',
'  #hh26 .hh-datecard span{font-size:1.1rem;}',
'  #hh26 .hh-hero::after{background:linear-gradient(to right,',
'    rgba(245,235,223,calc(var(--hh-s,.95) * 0.99)) 0%,',
'    rgba(245,235,223,calc(var(--hh-s,.95) * 0.94)) 62%,',
'    rgba(245,235,223,calc(var(--hh-s,.95) * 0.72)) 100%);}',
'  #hh26 .hh-body{padding-top:clamp(24px,4vw,40px);}',
'}',
'#hh26.hh-confmode{background:var(--paper);}',
'#hh26 .hh-conf{min-height:100dvh; display:flex; align-items:center;',
'  justify-content:center; padding:clamp(10px,3vw,32px);}',
'#hh26 .hh-cday{font-size:.88rem; font-weight:700; letter-spacing:.12em;',
'  text-transform:uppercase; color:var(--gold); margin:16px 0 4px;}',
'#hh26 .hh-cday:first-child{margin-top:0;}',
'#hh26 .hh-crow{display:flex; gap:11px; padding:6px 0;',
'  border-bottom:1px solid var(--gold-line);}',
'#hh26 .hh-ctime{flex:none; width:100px; font-size:.98rem; font-weight:700;',
'  color:var(--gold); padding-top:2px;}',
'#hh26 .hh-clab{flex:1; font-size:1.18rem; line-height:1.35;}',
'#hh26 .hh-cand{font-style:italic; color:var(--gold);}',
'@media (max-width:520px){',
'  #hh26 .hh-crow{gap:8px;}',
'  #hh26 .hh-ctime{width:58px; font-size:.8rem; line-height:1.25;}',
'  #hh26 .hh-clab{font-size:1.02rem;}',
'}'
].join('\n');
var s = document.createElement('style');
s.id = 'hh26-css';
s.textContent = css;
document.head.appendChild(s);
}
function esc(t) {
return String(t == null ? '' : t)
.replace(/&/g, '&').replace(/</g, '<')
.replace(/>/g, '>').replace(/"/g, '"');
}
function heroMarkup() {
var h = CFG.hero;
var pic = h.image
? '<img class="hh-hero-img" id="hh26-heroimg" src="' + esc(h.image) + '" alt="' + esc(h.alt || h.title) + '">'
: '<div class="hh-hero-ph">Hero image goes here</div>';
var eyebrow = h.eyebrow ? '<p class="hh-eyebrow">' + esc(h.eyebrow) + '</p>' : '';
var org = h.org
? '<p class="hh-org">' + esc(h.org) +
(h.orgEmphasis ? ' <strong>' + esc(h.orgEmphasis) + '</strong>' : '') + '</p>'
: '';
var lede    = h.lede    ? '<p class="hh-lede">' + esc(h.lede) + '</p>' : '';
var cards = (h.dateCards || []).map(function (d) {
return '<div class="hh-datecard"><b>' + esc(d.label) + '</b>' +
'<span>' + esc(d.value) + '</span></div>';
}).join('');
var dates = cards ? '<div class="hh-dates">' + cards + '</div>' : '';
return '' +
'<header class="hh-hero" id="hh26-hero">' + pic +
'<div class="hh-hero-copy">' + eyebrow +
'<h1>' + esc(h.title) + '</h1>' + org + lede + dates +
'</div>' +
'</header>';
}
function tileMarkup(t, i) {
if (t.contact) {
return '<div class="hh-tile hh-contact" style="animation-delay:' + (i * 65) + 'ms">' +
'<div class="hh-csq">' +
'<p class="hh-cq">' + esc(t.title) + '</p>' +
'<span class="hh-cpair">' +
'<span class="hh-cline">Call us</span>' +
'<a class="hh-clink" href="tel:' + esc(t.phone.replace(/[^0-9+]/g, '')) + '">' +
esc(t.phone) + '</a>' +
'</span>' +
'<span class="hh-cpair">' +
'<span class="hh-cline">or email</span>' +
'<a class="hh-clink hh-cmail" href="mailto:' + esc(t.email) + '">' +
esc(t.email) + '</a>' +
'</span>' +
'</div></div>';
}
var ov  = CFG.INFO_PLACEMENT === 'overlay';
var cap = '<div class="hh-cap"><span class="hh-date">' + esc(t.date) + '</span></div>';
var art = t.img
? '<img src="' + esc(t.img) + '" alt="' + esc(t.title) + '">'
: '<div class="hh-noart">' + esc(t.title) + '</div>';
return '' +
'<button class="hh-tile' + (ov ? ' ov' : '') + '" type="button" ' +
'data-hh-key="' + esc(t.key) + '" ' +
'aria-label="' + esc(t.title + ' — ' + t.date) + '" ' +
'style="animation-delay:' + (i * 65) + 'ms">' +
'<div class="hh-sq">' + art + (ov ? cap : '') + '</div>' +
(ov ? '' : cap) +
'</button>';
}
function buildOverlay() {
var wrap = document.createElement('div');
wrap.id = 'hh26';
var hatch = CFG.SHOW_ESCAPE_HATCH
? '<span class="hh-hatch" id="hh26-hatch">View the original form</span>' : '';
wrap.innerHTML =
heroMarkup() +
'<main class="hh-body">' +
'<div class="hh-grid" id="hh26-grid">' + CFG.tiles.map(tileMarkup).join('') + '</div>' +
'</main>' +
(hatch ? '<footer class="hh-foot">' + hatch + '</footer>' : '');
document.body.appendChild(wrap);
applyHeroCrop();
document.documentElement.style.overflow = 'hidden';
document.getElementById('hh26-grid').addEventListener('click', function (e) {
var btn = e.target.closest ? e.target.closest('.hh-tile') : null;
if (!btn) return;
var key = btn.getAttribute('data-hh-key');
if (!key) return;
if (window.HH26_openOption) window.HH26_openOption(key);
});
var hatchEl = document.getElementById('hh26-hatch');
if (hatchEl) hatchEl.addEventListener('click', reveal);
document.addEventListener('keydown', function (e) {
if (e.ctrlKey && e.shiftKey && (e.key === 'O' || e.key === 'o')) reveal();
});
}
function applyHeroCrop() {
var hero = document.getElementById('hh26-hero');
var img  = document.getElementById('hh26-heroimg');
if (!hero) return;
hero.style.setProperty('--hh-ratio', CFG.hero.ratio || '32/9');
var s = CFG.hero.scrim;
if (typeof s !== 'number' || isNaN(s)) s = 0.95;
hero.style.setProperty('--hh-s', Math.max(0, Math.min(1, s)));
if (CFG.hero.flip) hero.className += ' flip';
if (img) {
var pos = { bottom: '50% 100%', top: '50% 0%', center: '50% 50%' };
img.style.objectPosition = pos[CFG.hero.crop] || pos.bottom;
}
}
function reveal() {
showPageAgain();
var w = document.getElementById('hh26');
if (w) w.parentNode.removeChild(w);
document.documentElement.style.overflow = '';
}
function $(id) { return id ? document.getElementById(id) : null; }
function setNative(id, val) {
var el = $(id);
if (!el) return false;
el.value = val;
['input', 'change', 'keyup', 'blur'].forEach(function (evt) {
el.dispatchEvent(new Event(evt, { bubbles: true }));
});
return true;
}
function setChecked(id, want) {
var el = $(id);
if (!el) return false;
if (!!el.checked !== !!want) {
var was = document.activeElement;
var pos = null;
if (was && was.tagName === 'INPUT' && was.selectionStart !== undefined) {
try { pos = [was.selectionStart, was.selectionEnd]; } catch (e) {}
}
el.click();
if (was && was !== document.activeElement && was.focus) {
try {
was.focus({ preventScroll: true });
if (pos && was.setSelectionRange) was.setSelectionRange(pos[0], pos[1]);
} catch (e) {}
}
}
return true;
}
function findSubmit() {
return document.getElementById('input_2') ||
document.querySelector(
'.form-submit-button, button[type=submit], input[type=submit]');
}
var M = null;
var LAST = null;
var CHAIN_STARTERS = ['holiday-services', 'rh-dinner', 'break-fast',
'family-shofar', 'holiday-charity', 'yizkor', 'sukkot'];
var CHAIN_OFFERS   = ['holiday-services', 'rh-dinner', 'break-fast',
'family-shofar', 'yizkor', 'sukkot', 'lulav'];
window.HH26_openOption = function (key) {
var opt = (CFG.OPTIONS || {})[key];
if (!opt) { toast('Coming soon'); return; }
var resumed = !!(LAST && LAST.cart && LAST.cart[0] === key);
if (resumed) {
M = LAST;
} else {
M = { cart: [key], d: {}, step: 0,
names: {}, lnDirty: {}, vals: {},
gift: 0, bfGift: 0, spDinner: 0, spStudents: 0, spTables: 0,
total: 0,
picks: {}, adults: 1, children: 0,
tier: null, students: 0, veg: 0, pwyc: 0,
lqty: 1, pickup: null, yzShown: 1, yzDon: 0 };
}
if (!resumed) clearAllOptionFields();
renderModal();
resetView();
};
function clearAllOptionFields() {
Object.keys(CFG.OPTIONS).forEach(function (k) {
var o = CFG.OPTIONS[k];
if (o.driver)  setNative(o.driver, 'none');
if (o.summary) setNative(o.summary, '');
(o.tiers || []).forEach(function (t) {
if (t.adults)   setNative(t.adults, 0);
if (t.children) setNative(t.children, 0);
if (t.amount)   setNative(t.amount, 0);
});
if (o.students) setNative(o.students, 0);
if (o.veg)      setNative(o.veg, 0);
if (o.sponsorStudents) setNative(o.sponsorStudents, 0);
if (o.sponsorTable)    setNative(o.sponsorTable, 0);
if (o.sponsorOtherAmt) setNative(o.sponsorOtherAmt, '');
if (o.giftOtherAmt)    setNative(o.giftOtherAmt, '');
if (o.qtyField) setNative(o.qtyField, 0);
if (o.donation) setNative(o.donation, '');
if (o.dinnerSub)  setNative(o.dinnerSub, '');
if (o.sponsorSub) setNative(o.sponsorSub, '');
(o.nameFields || []).forEach(function (f) {
setNative(f.en, ''); setNative(f.enLast, ''); setNative(f.heb, '');
setNative(f.father, ''); setNative(f.mother, '');
});
(o.schedule || []).forEach(function (d) {
d.items.forEach(function (it) { if (it.native) setChecked(it.native, false); });
});
if (o.singleEvent && o.singleEvent.native) setChecked(o.singleEvent.native, false);
});
setNative(CFG.F.sponsorAmt, '');
setNative(CFG.F.adults, 0);
setNative(CFG.F.children, 0);
setNative('input_77', 'none');
}
function closeModal() {
captureVals(); saveOpt();
if (M) LAST = M;
var bg = $('hh26-bg');
if (bg) bg.parentNode.removeChild(bg);
M = null;
}
function loadOpt(key) {
M.key = key;
M.opt = CFG.OPTIONS[key];
var d = M.d[key] || (M.d[key] = { picks:{}, tier:null,
students:0, veg:0, pwyc:0,
lqty:1, pickup:null,
spDinner:0, spStudents:0, spTables:0 });
M.picks = d.picks;
M.tier = d.tier; M.students = d.students; M.veg = d.veg; M.pwyc = d.pwyc;
M.lqty = d.lqty; M.pickup = d.pickup;
M.spDinner = d.spDinner || 0;
M.spStudents = d.spStudents || 0;
M.spTables = d.spTables || 0;
}
function saveOpt() {
if (!M || !M.key) return;
var d = M.d[M.key];
if (!d) return;
d.picks = M.picks;
d.tier = M.tier; d.students = M.students; d.veg = M.veg; d.pwyc = M.pwyc;
d.lqty = M.lqty; d.pickup = M.pickup;
d.spDinner = M.spDinner || 0;
d.spStudents = M.spStudents || 0;
d.spTables = M.spTables || 0;
}
function tileImg(key) {
var t = CFG.tiles.filter(function (x) { return x.key === key; })[0];
return t ? t.img : '';
}
var NON_ATTENDING = ['yizkor', 'holiday-charity', 'lulav'];
function isAttending() {
return M.cart.some(function (k) { return NON_ATTENDING.indexOf(k) < 0; });
}
function inCart(k) { return M.cart.indexOf(k) > -1; }
function isChain()  { return CHAIN_STARTERS.indexOf(M.cart[0]) > -1; }
function remaining(){ return CHAIN_OFFERS.filter(function (k) { return !inCart(k); }); }
function captureVals() {
if (!M) return;
if (!M.vals) M.vals = {};
var body = document.querySelector('#hh26 .hh-mbody');
if (!body) return;
body.querySelectorAll('input,select,textarea').forEach(function (el) {
if (el.id) M.vals[el.id] = el.value;
});
}
function restoreVals() {
if (!M || !M.vals) return;
Object.keys(M.vals).forEach(function (id) {
var el = $(id);
if (el && el.value !== M.vals[id] && M.vals[id] !== undefined) {
el.value = M.vals[id];
}
});
}
function buildSteps() {
var first = CFG.OPTIONS[M.cart[0]];
if (first.kind === 'scheduleview') {
return [{ id:'opt', key:M.cart[0], title:first.title, hint:'' }];
}
if (first.donationOnly && M.cart.length === 1) {
var g = [{ id:'gift', title:'Your gift', hint:'Next: add anything else' }];
if (remaining().length) {
g.push({ id:'addmore', title:'Would you like to add anything else?',
hint:'Next: your details' });
}
g.push({ id:'pay', title:'Your details & payment', hint:'' });
return g;
}
if (first.kind === 'schedule' || first.kind === 'info') {
return [{ id:'opt', key:M.cart[0], title:first.title, hint:'' }];
}
var st = [];
M.cart.forEach(function (k) {
var o = CFG.OPTIONS[k];
st.push({ id:'opt', key:k,
title:(o.stepTitles && o.stepTitles.schedule) || o.title,
hint:'Next: add anything else' });
if (o.kind === 'dinner') {
st.push({ id:'dinnergift', key:k,
title:(o.stepTitles && o.stepTitles.gift) || ('Sponsor ' + o.title),
hint:'Next: add anything else' });
}
});
if (isChain() && remaining().length) {
st.push({ id:'addmore', title:'Would you like to add anything else?',
hint:'Next: who\u2019s coming' });
}
st.push({ id:'who',
title: isAttending() ? 'Who\u2019s coming?' : 'Your details',
hint:'Next: support & dedication' });
st.push({ id:'support', title:'Support the High Holidays',      hint:'Next: payment' });
if ((M.total || 0) > 0) {
st.push({ id:'pay',   title:'Payment details',                hint:'Next: anything else?' });
}
if (isAttending()) {
st.push({ id:'notes', title:'Anything else we should know?', hint:'Next: review' });
}
st.push({ id:'review', title:'Please check this over', hint:'' });
return st;
}
function renderModal() {
saveOpt();
var bg = $('hh26-bg');
if (!bg) {
bg = document.createElement('div');
bg.id = 'hh26-bg';
bg.className = 'hh-bg';
document.getElementById('hh26').appendChild(bg);
bg.addEventListener('click', function (e) { if (e.target === bg) closeModal(); });
}
M.total = liveTotal();
var steps = buildSteps();
if (M.step >= steps.length) M.step = steps.length - 1;
if (M.step < 0) M.step = 0;
var st   = steps[M.step];
var last = M.step >= steps.length - 1;
if (st.key) loadOpt(st.key);
else if (!M.opt) loadOpt(M.cart[0]);
var crumb = M.cart.map(function (k) { return CFG.OPTIONS[k].title; }).join(' + ');
var thumb = tileImg(M.cart[0]);
bg.innerHTML =
'<div class="hh-modal"><div class="hh-mwrap"><div class="hh-mhead">' +
(thumb ? '<img class="hh-mthumb" src="' + esc(thumb) + '" alt="">' : '') +
'<div class="hh-mheadtext">' +
'<div class="hh-mtitle' + (st.title.length > 17 ? ' hh-long' : '') + '">' +
esc(st.title) + '</div>' +
(steps.length > 1
? '<div class="hh-mstep">' + esc(crumb) + ' · Step ' +
(M.step + 1) + ' of ' + steps.length + '</div>'
: '') +
'</div>' +
'<div class="hh-htotal" id="hh26-htotalwrap" style="visibility:' +
((M.total || 0) > 0 ? 'visible' : 'hidden') + '">' +
'<span>Total</span><b id="hh26-htotal">$' +
(M.total || 0).toLocaleString() + '</b></div>' +
'</div><div class="hh-x" id="hh26-x">×</div></div>' +
'<div class="hh-mbody"><div class="hh-pane">' + paneHTML(st) + '</div></div>' +
'<div class="hh-mfoot">' +
(M.step > 0 ? '<span class="hh-back" id="hh26-back">Back</span>' : '') +
'<div class="hh-nextwrap"><span class="hh-next" id="hh26-next">' +
(M.opt && M.opt.kind === 'info'
? ((M.opt.cta && M.opt.cta.label) || 'Close')
: M.opt && M.opt.kind === 'scheduleview'
? 'Reserve for High Holiday Services'
: (last ? 'Complete Registration'
: (st.id === 'addmore' ? 'No thanks, continue' : 'Next'))) +
((last && (!M.opt || (M.opt.kind !== 'scheduleview' && M.opt.kind !== 'info'))) || st.id === 'addmore'
? '' : ' <span aria-hidden="true">→</span>') + '</span>' +
(last ? '' : '<span class="hh-nexthint">' + esc(st.hint) + '</span>') +
'</div>' +
'</div></div>';
$('hh26-x').addEventListener('click', closeModal);
if ($('hh26-back')) $('hh26-back').addEventListener('click', function () {
captureVals(); saveOpt(); M.step--; renderModal();
});
$('hh26-next').addEventListener('click', onNext);
wirePane(st);
restoreVals();
wireFieldChaining();
resetView();
}
function wireFieldChaining() {
var body = document.querySelector('#hh26 .hh-mbody');
if (!body) return;
function fields() {
return Array.prototype.filter.call(
body.querySelectorAll('input,select,textarea'),
function (el) {
return !el.disabled && el.type !== 'hidden' && el.offsetParent !== null;
});
}
function setHints() {
var f = fields();
f.forEach(function (el, i) {
if (el.tagName === 'TEXTAREA') return;
el.setAttribute('enterkeyhint', i === f.length - 1 ? 'done' : 'next');
});
}
setHints();
body.addEventListener('input', setHints);
body.addEventListener('input',  function (e) { if (e.target.id && M) M.vals[e.target.id] = e.target.value; });
body.addEventListener('change', function (e) { if (e.target.id && M) M.vals[e.target.id] = e.target.value; });
body.addEventListener('focusin', function (e) {
if (window.innerWidth > 520) return;
var el = e.target;
if (!el.classList || !el.classList.contains('hh-in')) return;
setTimeout(function () {
if (document.activeElement !== el) return;
if (el.scrollIntoView) el.scrollIntoView({ block:'center', behavior:'smooth' });
}, 300);
});
body.addEventListener('keydown', function (e) {
if (e.key !== 'Enter') return;
var el = e.target;
if (el.tagName === 'TEXTAREA') return;
e.preventDefault();
var f = fields(), i = f.indexOf(el);
if (i > -1 && i < f.length - 1) {
var nx = f[i + 1];
nx.focus();
if (nx.select) { try { nx.select(); } catch (err) {} }
} else {
var btn = $('hh26-next');
if (btn) btn.click();
}
});
}
function resetView() {
var el = document.activeElement;
if (el && el.blur && el !== document.body) el.blur();
requestAnimationFrame(function () {
requestAnimationFrame(function () {
var body = document.querySelector('#hh26 .hh-mbody');
var mark = (M && M.scrollTo) ? $(M.scrollTo) : null;
if (body && mark) {
body.scrollTop += mark.getBoundingClientRect().top -
body.getBoundingClientRect().top - 14;
var f = mark.parentNode.querySelector('#' + mark.id + ' ~ .hh-two .hh-in');
if (f && window.innerWidth > 520) {
try { f.focus({ preventScroll: true }); } catch (e) {}
}
} else if (body) {
body.scrollTop = 0;
}
if (M) M.scrollTo = null;
var root = document.getElementById('hh26');
if (root) root.scrollTop = 0;
if (window.scrollY) window.scrollTo(0, 0);
});
});
}
function liveTotal() {
var t = document.getElementById('total_amount');
if (t) {
var raw = (t.value !== undefined && t.value !== '') ? t.value : (t.innerText || '');
var n = parseFloat(String(raw).replace(/[^0-9.]/g, ''));
if (!isNaN(n)) return n;
}
return computedTotal();
}
function computedTotal() {
if (!M) return 0;
saveOpt();
var sum = 0;
(M.cart || []).forEach(function (k) {
var o = CFG.OPTIONS[k], d = M.d[k] || {};
if (!o || !o.tiers) return;
var t = tierOf(o, d.tier);
if (t) {
sum += (M.adults || 0) * t.adultPrice + (M.children || 0) * t.childPrice;
if (t.amount) sum += d.pwyc || 0;
}
sum += (d.spStudents || 0) * o.sponsorStudentPrice;
sum += (d.spTables   || 0) * o.sponsorTablePrice;
sum += d.spDinner || 0;
});
(M.cart || []).forEach(function (k) {
var o = CFG.OPTIONS[k], d = M.d[k] || {};
if (o && o.kind === 'lulav')  sum += (d.lqty || 0) * o.unitPrice;
if (o && o.kind === 'yizkor') sum += M.yzDon || 0;
});
return sum + (M.gift || 0) + (M.bfGift || 0);
}
function tierOf(o, key) {
if (!o || !o.tiers || !key) return null;
return o.tiers.filter(function (t) { return t.key === key; })[0] || null;
}
function dinnerPane() {
var o = M.opt;
var when = o.event.items.map(function (i) {
return '<div class="hh-crow"><span class="hh-ctime">' + esc(i.time) + '</span>' +
'<span class="hh-clab">' + esc(i.label) + '</span></div>';
}).join('');
var tiers = o.tiers.map(function (t) {
return '<div class="hh-tier' + (M.tier === t.key ? ' on' : '') + '" data-tier="' + t.key + '">' +
'<span class="hh-radio"></span><span><b>' + esc(t.label) + '</b>' +
'<span class="hh-note">' + esc(t.note) + '</span></span></div>';
}).join('');
var pw = (M.tier === 'pwyc')
? '<div class="hh-fld" style="margin-top:11px"><label>Your amount</label>' +
'<input class="hh-in" type="number" min="0" id="hh26-pwyc-' + esc(M.key) + '" value="' +
(M.pwyc || '') + '"></div>' : '';
return blurbHTML() + '<p class="hh-intro">' + esc(o.intro) +
'</p><div id="hh26-err"></div>' +
'<div class="hh-cday">' + esc(o.event.date) + '</div>' + when +
'<div class="hh-sub">Choose your price</div>' +
'<div class="hh-tiers">' + tiers + '</div>' + pw +
countsBlock(5) +
(o.students ? '<div class="hh-fld"><label>UCR & UOR students</label>' +
'<input class="hh-in" type="number" min="0" max="5" id="hh26-students" value="' + M.students + '">' +
'<p class="hh-hint" style="margin:6px 0 0">Students attend free at every price level.</p></div>' : '') +
(o.veg ? '<div class="hh-fld"><label>Vegetarian meals</label>' +
'<input class="hh-in" type="number" min="0" id="hh26-veg" value="' + M.veg + '">' +
'<p class="hh-hint" style="margin:6px 0 0">How many of the people above need a vegetarian meal?</p></div>' : '') +
'<div id="hh26-dtotal" style="display:none"></div>';
}
function dinnerGiftPane() {
var o = M.opt;
var chips = o.sponsorAmounts.map(function (a) {
return '<div class="hh-chip' + (M.spDinner === a ? ' on' : '') + '" data-amt="' + a + '">$' +
a.toLocaleString() + '</div>';
}).join('');
return '<div id="hh26-err"></div>' +
'<p class="hh-intro">Please consider making a donation to bring holiday joy ' +
'to people in-need and to ensure that everyone in our community can ' +
'participate in the celebrations.</p>' +
'<div class="hh-sub" style="margin-top:0">Sponsor the ' +
esc(o.title === 'Sukkot Community BBQ' ? 'BBQ' : 'dinner') + '</div>' +
'<div class="hh-chips">' + chips +
'<div class="hh-chip' + (M.spDinner && o.sponsorAmounts.indexOf(M.spDinner) < 0 ? ' on' : '') +
'" data-amt="other">Other</div></div>' +
'<div class="hh-fld" id="hh26-otherwrap-' + esc(M.key) +
'" style="margin-top:11px;display:' +
(M.spDinner && o.sponsorAmounts.indexOf(M.spDinner) < 0 ? 'block' : 'none') + '">' +
'<label>Amount</label><input class="hh-in" type="number" min="1" id="hh26-otheramt-' +
esc(M.key) + '" value="' +
(M.spDinner && o.sponsorAmounts.indexOf(M.spDinner) < 0 ? M.spDinner : '') + '"></div>' +
(o.sponsorStudents ? '<div class="hh-two hh-align" style="margin-top:16px">' +
'<div class="hh-fld"><label>Sponsor students — $30 each</label>' +
'<input class="hh-in" type="number" min="0" id="hh26-spstudents" value="' + (M.spStudents || '') + '"></div>' +
'<div class="hh-fld"><label>Sponsor a table — $125</label>' +
'<input class="hh-in" type="number" min="0" id="hh26-sptables" value="' + (M.spTables || '') + '"></div>' +
'</div>' : '') +
'<div class="hh-sub">Dedication</div>' +
'<p class="hh-hint">Optional \u2014 leave blank to skip.</p>' +
'<div class="hh-fld"><label>Dedicate this</label>' +
'<select class="hh-in" id="hh26-dedtype"><option value="">No dedication</option>' +
'<option value="honor">In honor of</option><option value="memory">In memory of</option></select></div>' +
'<div class="hh-fld"><label>Name or names</label><input class="hh-in" id="hh26-dednames"></div>' +
'<div id="hh26-dtotal" style="display:none"></div>';
}
function syncDinner() {
var o = M.opt;
o.tiers.forEach(function (t) {
var on = (t.key === M.tier);
if (t.adults)   setNative(t.adults,   on ? M.adults   : 0);
if (t.children) setNative(t.children, on ? M.children : 0);
if (t.amount)   setNative(t.amount, (on && M.pwyc) ? M.pwyc : 0);
});
if (o.students) setNative(o.students, M.students);
if (o.veg)      setNative(o.veg, M.veg);
if (o.sponsorStudents) setNative(o.sponsorStudents, M.spStudents || 0);
if (o.sponsorTable)    setNative(o.sponsorTable,    M.spTables   || 0);
var i = o.sponsorAmounts.indexOf(M.spDinner);
if (M.spDinner > 0 && o.sponsorRadios.length) {
if (i > -1) setChecked(o.sponsorRadios[i], true);
else if (o.sponsorOther) { setChecked(o.sponsorOther, true);
setNative(o.sponsorOtherAmt, M.spDinner); }
}
refreshTotal();
}
function wireDinner() {
var body = document.querySelector('#hh26 .hh-mbody');
var tiers = document.querySelector('#hh26 .hh-tiers');
if (tiers) tiers.addEventListener('click', function (e) {
var t = e.target.closest && e.target.closest('.hh-tier');
if (!t) return;
M.tier = t.getAttribute('data-tier');
M.scrollTo = 'hh26-counts';
renderModal();
});
body.addEventListener('input', function (e) {
var id = e.target.id, v = e.target.value;
if (id === 'hh26-adults')      M.adults   = clamp(v, 0, 5);
else if (id === 'hh26-children') M.children = clamp(v, 0, 5);
else if (id === 'hh26-students') M.students = clamp(v, 0, 5);
else if (id === 'hh26-veg')      M.veg      = clamp(v, 0, 15);
else if (id === 'hh26-pwyc-' + M.key) M.pwyc = parseInt(v, 10) || 0;
else if (id === 'hh26-spstudents') M.spStudents = parseInt(v, 10) || 0;
else if (id === 'hh26-sptables')   M.spTables   = parseInt(v, 10) || 0;
else if (id === 'hh26-otheramt-' + M.key) { M.spDinner = parseInt(v, 10) || 0; return; }
else return;
var cap = M.adults + M.children + M.students;
if (M.veg > cap) { M.veg = cap; if ($('hh26-veg')) $('hh26-veg').value = cap; }
syncDinner();
});
body.addEventListener('change', function (e) {
if (e.target.id === 'hh26-otheramt-' + M.key) syncDinner();
});
var chips = document.querySelector('#hh26 .hh-chips');
if (chips) chips.addEventListener('click', function (e) {
var c = e.target.closest && e.target.closest('.hh-chip');
if (!c) return;
document.querySelectorAll('#hh26 .hh-chip').forEach(function (x) { x.className = 'hh-chip'; });
c.className = 'hh-chip on';
var amt = c.getAttribute('data-amt');
if (amt === 'other') {
$('hh26-otherwrap-' + M.key).style.display = 'block';
M.spDinner = parseInt($('hh26-otheramt-' + M.key).value, 10) || 0;
} else {
$('hh26-otherwrap-' + M.key).style.display = 'none';
M.spDinner = parseInt(amt, 10);
}
syncDinner();
});
syncDinner();
}
function commitDinner() {
var o = M.opt, t = tierOf(o, M.tier), lines = [];
lines.push('Pricing: ' + (t ? t.label : ''));
if (M.adults)   lines.push('Adults: ' + M.adults);
if (M.children) lines.push('Children: ' + M.children);
if (M.students) lines.push('UCR/UOR students: ' + M.students + ' (free)');
if (M.veg)      lines.push('Vegetarian meals: ' + M.veg);
if (o.summary) setNative(o.summary, lines.join('\n'));
setDrivers();
}
function commitDinnerGift() {
var o = M.opt, t = tierOf(o, M.tier);
var dinner = t ? (M.adults * t.adultPrice + M.children * t.childPrice) : 0;
if (t && t.amount) dinner += M.pwyc || 0;
var sponsor = (M.spStudents || 0) * o.sponsorStudentPrice +
(M.spTables   || 0) * o.sponsorTablePrice + (M.spDinner || 0);
if (o.dinnerSub)  setNative(o.dinnerSub,  '$' + dinner.toLocaleString());
if (o.sponsorSub) setNative(o.sponsorSub, '$' + sponsor.toLocaleString());
var d = val('hh26-dedtype');
if (d === 'honor')  setChecked(CFG.F.dedInHonor, true);
if (d === 'memory') setChecked(CFG.F.dedInMemory, true);
setNative(CFG.F.dedNames, val('hh26-dednames'));
M.total = liveTotal();
}
function paneHTML(st) {
var id = st.id;
if (id === 'opt') {
if (M.opt.kind === 'scheduleview') return schedulePaneView();
if (M.opt.kind === 'dinner') return dinnerPane();
if (M.opt.kind === 'lulav')    return lulavPane();
if (M.opt.kind === 'schedule') return fullSchedulePane();
if (M.opt.kind === 'info')     return infoPane();
if (M.opt.kind === 'yizkor')   return yizkorPane();
return schedulePane();
}
if (id === 'dinnergift') return dinnerGiftPane();
if (id === 'addmore')    return addMorePane();
if (id === 'who')        return whoPane();
if (id === 'support')    return supportPane();
if (id === 'gift')       return giftPane();
if (id === 'pay')        return payPane();
if (id === 'review')     return reviewPane();
return notesPane();
}
function addMorePane() {
var cards = remaining().map(function (k) {
var o = CFG.OPTIONS[k];
var when = o.event ? o.event.date
: (o.infoEvent ? o.infoEvent.date
: (o.singleEvent ? o.singleEvent.date : ''));
return '<div class="hh-add" data-add="' + esc(k) + '">' +
'<span><b>' + esc(o.title) + '</b>' +
(when ? '<span class="hh-note">' + esc(when) + '</span>' : '') + '</span>' +
'<span class="hh-addplus" aria-hidden="true">+</span>' +
'</div>';
}).join('');
return '<div id="hh26-err"></div>' +
'<p class="hh-intro">You\u2019re signed up for ' +
esc(M.cart.map(function (k) { return CFG.OPTIONS[k].title; }).join(' and ')) +
'. Add anything else while you\u2019re here \u2014 it all goes on one registration.</p>' +
'<div class="hh-adds">' + cards + '</div>';
}
function schedulePaneView() {
var o = M.opt;
var h = '<p class="hh-intro">' + esc(o.intro) + '</p>';
o.days.forEach(function (d) {
h += '<div class="hh-day"><div class="hh-dayname">' + esc(d.sub) + '</div>' +
'<div class="hh-daydate">' + esc(d.date) + '</div></div>';
d.items.forEach(function (i) {
h += '<div class="hh-crow"><span class="hh-ctime">' + esc(i.time) + '</span>' +
'<span class="hh-clab">' + esc(i.label) +
(i.note ? '<span class="hh-note">' + esc(i.note) + '</span>' : '') +
'</span></div>';
});
});
return h;
}
function mins(t) {
var m = /(\d{1,2}):(\d{2})\s*(AM|PM)/i.exec(t || '');
if (!m) return 0;
var h = parseInt(m[1], 10) % 12;
if (/PM/i.test(m[3])) h += 12;
return h * 60 + parseInt(m[2], 10);
}
function fullSchedulePane() {
var svc = CFG.OPTIONS['holiday-services'];
var din = CFG.OPTIONS['rh-dinner'];
var T   = CFG.TIMES || {};
var h = '<p class="hh-intro">' + esc(M.opt.intro) + '</p><div id="hh26-err"></div>';
function row(time, label, note) {
return '<div class="hh-crow"><span class="hh-ctime">' + esc(time) + '</span>' +
'<span class="hh-clab">' + esc(label) +
(note ? '<span class="hh-note">' + esc(note) + '</span>' : '') +
'</span></div>';
}
function head(name, date) {
return '<div class="hh-day"><div class="hh-dayname">' + esc(name) + '</div>' +
'<div class="hh-daydate">' + esc(date) + '</div></div>';
}
function candles(t, label) {
return t ? '<div class="hh-crow"><span class="hh-ctime">' + esc(t) + '</span>' +
'<span class="hh-clab hh-cand">' + label + '</span></div>' : '';
}
var eve = din.event.items.map(function (i) {
return { time:i.time, label:esc(i.label), cand:false };
});
if (T.rhEve) eve.push({ time:T.rhEve,
label:'Light Shabbat & holiday candles', cand:true });
eve.sort(function (a, b) { return mins(a.time) - mins(b.time); });
h += head('Rosh Hashanah Eve', din.event.date) +
eve.map(function (i) {
return '<div class="hh-crow"><span class="hh-ctime">' + esc(i.time) + '</span>' +
'<span class="hh-clab' + (i.cand ? ' hh-cand' : '') + '">' +
i.label + '</span></div>';
}).join('');
svc.schedule.forEach(function (d, di) {
h += head(d.day, d.date);
if (d.day.indexOf('Yom Kippur Eve') > -1) h += candles(T.ykEve, 'Light holiday candles \u00b7 the fast begins');
d.items.forEach(function (it) { h += row(it.time, it.label, it.note); });
if (di === 0) h += candles(T.rhDay1Eve, 'Light holiday candles after this time, from a pre-existing flame');
if (di === 1) h += candles(T.rhEnds, 'Rosh Hashanah ends');
});
(CFG.SUKKOT_SCHEDULE || []).forEach(function (d) {
h += head(d.day, d.date);
d.items.forEach(function (it) {
h += '<div class="hh-crow"><span class="hh-ctime">' + esc(it.time) + '</span>' +
'<span class="hh-clab' + (it.cand ? ' hh-cand' : '') + '">' + it.label +
(it.note ? '<span class="hh-note">' + esc(it.note) + '</span>' : '') +
'</span></div>';
});
});
return h;
}
function yizkorPane() {
var o = M.opt, h = blurbHTML();
h += '<p class="hh-intro">' + esc(o.intro) + '</p><div id="hh26-err"></div>';
if (o.deadline) {
h += '<p class="hh-deadline">' + esc(o.deadline) + '</p>';
}
h += '<p class="hh-hint" style="margin:0 0 4px">Apart from the name itself, ' +
'every field below is optional \u2014 share whatever you know.</p>';
var shown = M.yzShown || 1;
for (var i = 0; i < shown; i++) {
h += '<div id="hh26-yblock' + i + '"></div>' +
'<div class="hh-sub">' + (i === 0 ? 'Name to be remembered'
: 'Additional name ' + (i + 1)) + '</div>' +
'<div class="hh-two">' +
'<div class="hh-fld"><label>First name</label>' +
'<input class="hh-in" id="hh26-yf' + i + '"></div>' +
'<div class="hh-fld"><label>Last name</label>' +
'<input class="hh-in" id="hh26-yl' + i + '"></div>' +
'</div>' +
'<div class="hh-fld"><label>Hebrew name</label>' +
'<input class="hh-in" id="hh26-yh' + i + '"></div>' +
'<div class="hh-two">' +
'<div class="hh-fld"><label>Father\u2019s Hebrew name</label>' +
'<input class="hh-in" id="hh26-yfa' + i + '"></div>' +
'<div class="hh-fld"><label>Mother\u2019s Hebrew name</label>' +
'<input class="hh-in" id="hh26-ymo' + i + '"></div>' +
'</div>' +
'<div class="hh-fld"><label>Date of passing</label>' +
'<input class="hh-in" type="date" id="hh26-yd' + i + '">' +
'<p class="hh-hint" style="margin:6px 0 0">Optional.</p></div>';
}
if (shown < o.maxNames) {
h += '<div class="hh-add" id="hh26-yadd"><span><b>Add another name</b>' +
'<span class="hh-note">Up to ' + o.maxNames + ' names on this form</span></span>' +
'<span class="hh-addplus" aria-hidden="true">+</span></div>';
} else {
h += '<p class="hh-hint" style="margin-top:12px">That\u2019s ' + o.maxNames +
' names \u2014 the most this form holds. To remember more, please ' +
'complete the form again once you\u2019ve finished.</p>';
}
h += '<div class="hh-sub">Charity in their memory</div>' +
'<p class="hh-hint">It is customary to give tzedakah in conjunction with Yizkor. ' +
'Optional.</p>' +
'<div class="hh-fld"><label>Amount</label>' +
'<input class="hh-in" type="number" min="0" id="hh26-ydon" value="' +
(M.yzDon || '') + '"></div>';
return h;
}
function wireYizkor() {
var add = $('hh26-yadd');
if (add) add.addEventListener('click', function () {
captureVals();
M.yzShown = (M.yzShown || 1) + 1;
M.scrollTo = 'hh26-yblock' + (M.yzShown - 1);
renderModal();
});
var don = $('hh26-ydon');
if (don) don.addEventListener('input', function () {
M.yzDon = parseInt(this.value, 10) || 0;
});
}
function setDateParts(stem, iso) {
if (!iso) return;
var p = iso.split('-');
if (p.length !== 3) return;
setSelect(stem + '_month', String(parseInt(p[1], 10)));
setSelect(stem + '_day',   String(parseInt(p[2], 10)));
setSelect(stem + '_year',  p[0]);
setNative(stem + '_month', String(parseInt(p[1], 10)));
setNative(stem + '_day',   String(parseInt(p[2], 10)));
setNative(stem + '_year',  p[0]);
}
function commitYizkor() {
var o = M.opt, lines = [];
o.nameFields.forEach(function (f, i) {
var en = val('hh26-yf' + i), ln = val('hh26-yl' + i);
setNative(f.en, en);  setNative(f.enLast, ln);
setNative(f.heb, val('hh26-yh' + i));
setNative(f.father, val('hh26-yfa' + i));
setNative(f.mother, val('hh26-ymo' + i));
setDateParts(f.date, val('hh26-yd' + i));
if (!en && !ln) return;
var line = (en + ' ' + ln).trim();
var heb = val('hh26-yh' + i);
if (heb) line += ' \u2014 ' + heb;
var fa = val('hh26-yfa' + i), mo = val('hh26-ymo' + i);
var par = [fa, mo].filter(Boolean).join(' and ');
if (par) line += ', child of ' + par;
var d = val('hh26-yd' + i);
if (d) line += ' (' + d + ')';
lines.push('\u2022 ' + line);
});
setNative(o.summary, lines.join('\n'));
if (o.donation) setNative(o.donation, M.yzDon || 0);
setDrivers();
}
function infoPane() {
var o = M.opt;
var h = '<p class="hh-intro">' + esc(o.intro) + '</p><div id="hh26-err"></div>';
(o.body || []).forEach(function (para) {
h += '<p class="hh-bpara">' + esc(para) + '</p>';
});
(o.links || []).forEach(function (l) {
h += '<div class="hh-add"><a href="' + esc(l.url) + '" target="_blank" ' +
'rel="noopener" style="text-decoration:none;color:inherit;flex:1">' +
'<b>' + esc(l.label) + '</b></a>' +
'<span class="hh-addplus" aria-hidden="true">→</span></div>';
});
return h;
}
function lulavPane() {
var o = M.opt;
var picks = o.pickupLabels.map(function (lab, i) {
return '<div class="hh-tier' + (M.pickup === i ? ' on' : '') + '" data-pick="' + i + '">' +
'<span class="hh-radio"></span><span><b>' + esc(lab) + '</b></span></div>';
}).join('');
return blurbHTML() + '<p class="hh-intro">' + esc(o.intro) + '</p>' +
'<div id="hh26-err"></div>' +
'<div class="hh-fld"><label>How many sets?</label>' +
'<input class="hh-in" type="number" min="0" max="20" id="hh26-lqty" value="' +
(M.lqty || 1) + '">' +
'<p class="hh-hint" style="margin:6px 0 0">$54 per set.</p></div>' +
'<div class="hh-sub">When will you pick up?</div>' +
'<div class="hh-tiers">' + picks + '</div>' +
'<div id="hh26-dtotal" style="display:none"></div>';
}
function syncLulav() {
setNative(M.opt.qtyField, M.lqty || 0);
if (M.pickup !== null && M.pickup !== undefined) {
setChecked(M.opt.pickupRadios[M.pickup], true);
}
refreshTotal();
}
function wireLulav() {
var body = document.querySelector('#hh26 .hh-mbody');
var tiers = document.querySelector('#hh26 .hh-tiers');
if (tiers) tiers.addEventListener('click', function (e) {
var t = e.target.closest && e.target.closest('.hh-tier');
if (!t) return;
tiers.querySelectorAll('.hh-tier').forEach(function (x) { x.className = 'hh-tier'; });
t.className = 'hh-tier on';
M.pickup = parseInt(t.getAttribute('data-pick'), 10);
syncLulav();
});
body.addEventListener('input', function (e) {
if (e.target.id !== 'hh26-lqty') return;
M.lqty = clamp(e.target.value, 0, 20);
setNative(M.opt.qtyField, M.lqty);
refreshTotal();
});
syncLulav();
}
function sponsorBlock(grp, heading, amounts, current) {
var chips = amounts.map(function (a) {
return '<div class="hh-chip' + (current === a ? ' on' : '') + '" data-amt="' + a + '">$' +
a.toLocaleString() + '</div>';
}).join('');
var isOther = current && amounts.indexOf(current) < 0;
return '<div class="hh-sub">' + esc(heading) + '</div>' +
'<div class="hh-chips" data-grp="' + grp + '">' + chips +
'<div class="hh-chip' + (isOther ? ' on' : '') + '" data-amt="other">Other</div>' +
'</div>' +
'<div class="hh-fld" id="hh26-otherwrap-' + grp + '" style="margin-top:11px;display:' +
(isOther ? 'block' : 'none') + '"><label>Amount</label>' +
'<input class="hh-in" type="number" min="1" id="hh26-otheramt-' + grp + '" value="' +
(isOther ? current : '') + '"></div>';
}
function supportPane() {
var h = '<div id="hh26-err"></div>' +
'<p class="hh-intro">All Services are free of charge. Your generous ' +
'donation is greatly appreciated!\nPlease also consider donating to assist ' +
'others in our community to celebrate the holidays.</p>' +
sponsorBlock('gen', 'High Holiday sponsorship', CFG.GIFTS, M.gift);
if (inCart('break-fast')) {
h += sponsorBlock('bf', 'Break Fast sponsorship',
CFG.OPTIONS['break-fast'].giftAmounts, M.bfGift);
}
h += '<div class="hh-sub">Dedication</div>' +
'<p class="hh-hint">Optional \u2014 leave blank to skip.</p>' +
'<div class="hh-fld"><label>Dedicate this</label>' +
'<select class="hh-in" id="hh26-dedtype"><option value="">No dedication</option>' +
'<option value="honor">In honor of</option><option value="memory">In memory of</option></select></div>' +
'<div class="hh-fld"><label>Name or names</label><input class="hh-in" id="hh26-dednames"></div>' +
'<div id="hh26-dtotal" style="display:none"></div>';
return h;
}
function schedulePane() {
var h = blurbHTML() + '<p class="hh-intro">' + esc(M.opt.intro) +
'</p><div id="hh26-err"></div>';
if (!M.opt.infoEvent && !M.opt.singleEvent) h += countsBlock(5);
if (M.opt.infoEvent) {
var ie = M.opt.infoEvent;
h += '<div class="hh-cday">' + esc(ie.date) + '</div>' +
ie.items.map(function (i) {
return '<div class="hh-crow"><span class="hh-ctime">' + esc(i.time) + '</span>' +
'<span class="hh-clab">' + esc(i.label) +
(i.note ? '<span class="hh-note">' + esc(i.note) + '</span>' : '') +
'</span></div>';
}).join('') +
countsBlock(9);
return h;
}
if (M.opt.singleEvent) {
var ev = M.opt.singleEvent;
h += '<div class="hh-day"><div class="hh-dayname">' + esc(ev.day) + '</div>' +
'<div class="hh-daydate">' + esc(ev.date) + '</div></div>' +
'<div class="hh-crow"><span class="hh-ctime">' + esc(ev.time) + '</span>' +
'<span class="hh-clab">' + esc(ev.label) + '</span></div>' +
countsBlock(5);
return h;
}
M.opt.schedule.forEach(function (d, di) {
h += '<div class="hh-day"><div class="hh-dayname">' + esc(d.day) + '</div>' +
'<div class="hh-daydate">' + esc(d.date) + '</div></div>';
d.items.forEach(function (it, ii) {
var k  = di + '-' + ii;
var on = M.picks[k] ? ' on' : '';
var missing = (!it.info && !it.native)
? '<span class="hh-nofield">No form field yet — won\u2019t be recorded</span>' : '';
h += '<div class="hh-row' + (it.info ? ' info' : on) + '" data-k="' + k + '"' +
(it.info ? '' : ' role="checkbox" tabindex="0" aria-checked="' + (!!M.picks[k]) + '"') + '>' +
'<span class="hh-box"></span>' +
'<span class="hh-time">' + esc(it.time) + '</span>' +
'<span class="hh-lab">' + esc(it.label) +
(it.note ? '<span class="hh-note">' + esc(it.note) + '</span>' : '') +
missing +
'</span></div>';
});
});
return h;
}
function nameRows(n, prefix, labelWord) {
var h = '', i, fid, lid;
for (i = 0; i < n; i++) {
fid = 'hh26-' + prefix + 'f' + i;
lid = 'hh26-' + prefix + 'l' + i;
h += '<div class="hh-two">' +
'<input class="hh-in hh-nm" id="' + fid + '" placeholder="' +
labelWord + ' First Name" value="' + esc(M.names[fid] || '') + '">' +
'<input class="hh-in hh-nm" id="' + lid + '" placeholder="Last Name" value="' +
esc(M.names[lid] || '') + '">' +
'</div>';
if (i < n - 1) h += '<div style="height:8px"></div>';
}
return h;
}
function whoPane() {
if (!isAttending()) {
return '<div id="hh26-err"></div>' +
'<div class="hh-two">' +
'<div class="hh-fld"><label>First name</label>' +
'<input class="hh-in hh-nm" id="hh26-af0"></div>' +
'<div class="hh-fld"><label>Last name</label>' +
'<input class="hh-in hh-nm" id="hh26-al0"></div>' +
'</div>' +
'<div class="hh-fld"><label>Email</label>' +
'<input class="hh-in" type="email" id="hh26-email"></div>' +
'<div class="hh-fld"><label>Phone</label>' +
'<input class="hh-in" type="tel" id="hh26-phone"></div>';
}
return '<div id="hh26-err"></div>' +
'<div class="hh-sub" style="margin-top:0">Names</div>' +
'<p class="hh-hint">Everyone attending, so we can greet them properly.</p>' +
'<div id="hh26-names"></div>' +
'<div class="hh-sub">How we reach you</div>' +
'<div class="hh-fld"><label>Email</label><input class="hh-in" type="email" id="hh26-email"></div>' +
'<div class="hh-fld"><label>Phone</label><input class="hh-in" type="tel" id="hh26-phone"></div>';
}
function giftAmounts()   { return M.opt.giftAmounts   || CFG.GIFTS; }
function giftRadios()    { return M.opt.giftRadios    || CFG.F.sponsorRadios; }
function giftOtherRadio(){ return M.opt.giftOther     || CFG.F.sponsorOther; }
function giftOtherAmt()  { return M.opt.giftOtherAmt  || CFG.F.sponsorAmt; }
function giftPane() {
var chips = giftAmounts().map(function (a) {
return '<div class="hh-chip' + (M.gift === a ? ' on' : '') + '" data-amt="' + a + '">$' +
a.toLocaleString() + '</div>';
}).join('');
return '<div id="hh26-err"></div>' +
'<p class="hh-intro">' + esc(M.opt.intro) + '</p>' +
'<div class="hh-chips">' + chips +
'<div class="hh-chip' + (M.gift && giftAmounts().indexOf(M.gift) < 0 ? ' on' : '') +
'" data-amt="other">Other</div></div>' +
'<div class="hh-fld" id="hh26-otherwrap-gift" style="margin-top:11px;display:' +
(M.gift && giftAmounts().indexOf(M.gift) < 0 ? 'block' : 'none') + '">' +
'<label>Amount</label><input class="hh-in" type="number" min="1" id="hh26-otheramt-gift" value="' +
(M.gift && giftAmounts().indexOf(M.gift) < 0 ? M.gift : '') + '"></div>' +
'<div class="hh-sub">Dedication</div>' +
'<p class="hh-hint">Optional \u2014 leave blank to skip.</p>' +
'<div class="hh-fld"><label>Dedicate this gift</label>' +
'<select class="hh-in" id="hh26-dedtype"><option value="">No dedication</option>' +
'<option value="honor">In honor of</option><option value="memory">In memory of</option></select></div>' +
'<div class="hh-fld"><label>Name or names</label><input class="hh-in" id="hh26-dednames"></div>' +
'<div id="hh26-gtotal" style="display:none"></div>';
}
function payPane() {
var mo = '', yr = '', i;
for (i = 1; i <= 12; i++) mo += '<option value="' + i + '">' + i + '</option>';
for (i = 2026; i <= 2035; i++) yr += '<option value="' + i + '">' + i + '</option>';
var contact = !M.opt.donationOnly ? '' :
'<div class="hh-sub" style="margin-top:0">Your details</div>' +
'<div class="hh-two">' +
'<div class="hh-fld"><label>First name</label><input class="hh-in" id="hh26-cfirst"></div>' +
'<div class="hh-fld"><label>Last name</label><input class="hh-in" id="hh26-clast"></div>' +
'</div>' +
'<div class="hh-fld"><label>Email</label><input class="hh-in" type="email" id="hh26-cemail"></div>' +
'<div class="hh-fld"><label>Phone</label><input class="hh-in" type="tel" id="hh26-cphone"></div>' +
'<div class="hh-sub">Payment</div>';
return '<div id="hh26-err"></div>' + contact +
'<div class="hh-fld"><label>Name on card</label><input class="hh-in" id="hh26-ccname"></div>' +
'<div class="hh-fld"><label>Card number</label><input class="hh-in" inputmode="numeric" id="hh26-ccnum"></div>' +
'<div class="hh-two">' +
'<div class="hh-fld"><label>Expires</label><div class="hh-two">' +
'<select class="hh-in" id="hh26-ccmon">' + mo + '</select>' +
'<select class="hh-in" id="hh26-ccyear">' + yr + '</select></div></div>' +
'<div class="hh-fld"><label>Security code</label><input class="hh-in" inputmode="numeric" id="hh26-cccvv"></div>' +
'</div>' +
'<div class="hh-sub">Billing address</div>' +
'<div class="hh-fld"><label>Street</label><input class="hh-in" id="hh26-baddr"></div>' +
'<div class="hh-two">' +
'<div class="hh-fld"><label>City</label><input class="hh-in" id="hh26-bcity"></div>' +
'<div class="hh-fld"><label>State</label><input class="hh-in" id="hh26-bstate"></div>' +
'</div>' +
'<div class="hh-fld"><label>ZIP</label><input class="hh-in" id="hh26-bzip"></div>';
}
function reviewPane() {
saveOpt();
var savedKey = M.key, h = '<div id="hh26-err"></div>';
M.cart.forEach(function (k) {
loadOpt(k);
var o = M.opt, d = M.d[k] || {};
h += '<div class="hh-rsec"><div class="hh-rhead">' + esc(o.title) + '</div>';
if (o.kind === 'lulav') {
h += rline('Sets ordered', (d.lqty || 0) +
((d.lqty === 1) ? ' set' : ' sets') + ' \u00d7 $' + o.unitPrice);
h += rline('Pickup', o.pickupLabels[d.pickup] || '\u2014');
} else if (o.kind === 'yizkor') {
var rows = [];
o.nameFields.forEach(function (f, i) {
var fn = M.vals['hh26-yf' + i] || '', ln = M.vals['hh26-yl' + i] || '';
if (!fn && !ln) return;
var line = esc((fn + ' ' + ln).trim());
var hb = M.vals['hh26-yh' + i] || '';
if (hb) line += ' \u2014 ' + esc(hb);
var fa = M.vals['hh26-yfa' + i] || '', mo = M.vals['hh26-ymo' + i] || '';
var par = [fa, mo].filter(Boolean).map(esc).join(' and ');
if (par) line += ', child of ' + par;
rows.push(line);
});
h += rline(rows.length > 1 ? 'Names for the booklet' : 'Name for the booklet',
rows.join('<br>') || '\u2014');
if (M.yzDon) h += rline('Charity in their memory', '$' + M.yzDon.toLocaleString());
} else if (o.kind === 'dinner') {
var t = tierOf(o, d.tier);
h += rline('When', o.event.date);
if (t) {
if (t.amount) {
h += rline('Pricing', t.label + ' \u2014 $' + (d.pwyc || 0).toLocaleString());
} else {
var meal = (M.adults || 0) * t.adultPrice + (M.children || 0) * t.childPrice;
h += rline('Pricing', t.label + ' \u2014 $' + meal.toLocaleString());
}
}
var ex = extrasLine(d);
if (ex) h += rline('Including', ex);
if (d.spDinner)   h += rline('Sponsorship', '$' + d.spDinner);
if (d.spStudents) h += rline('Sponsor students', d.spStudents + ' \u00d7 $' + o.sponsorStudentPrice);
if (d.spTables)   h += rline('Sponsor a table', d.spTables + ' \u00d7 $' + o.sponsorTablePrice);
} else if (o.schedule) {
var picked = [];
o.schedule.forEach(function (day, di) {
day.items.forEach(function (it, ii) {
if (!it.info && d.picks && d.picks[di + '-' + ii]) {
picked.push(it.time + ' \u2014 ' + it.label + ' (' + day.date + ')');
}
});
});
h += rline('You\u2019re joining', picked.join('<br>') || '\u2014');
} else if (o.singleEvent) {
h += rline('When', o.singleEvent.date + ' \u00b7 ' + o.singleEvent.time);
} else if (o.infoEvent) {
h += rline('When', o.infoEvent.date);
}
h += '</div>';
});
if (savedKey) loadOpt(savedKey);
if (M.gift)   h += '<div class="hh-rsec"><div class="hh-rhead">High Holiday sponsorship</div>' +
rline('Amount', '$' + M.gift.toLocaleString()) + '</div>';
if (M.bfGift) h += '<div class="hh-rsec"><div class="hh-rhead">Break Fast sponsorship</div>' +
rline('Amount', '$' + M.bfGift.toLocaleString()) + '</div>';
var who = [val('hh26-af0'), val('hh26-al0')].filter(Boolean).join(' ') ||
(M.names['hh26-af0'] || '') + ' ' + (M.names['hh26-al0'] || '');
var head = [];
if (M.adults)   head.push(M.adults + (M.adults === 1 ? ' adult' : ' adults'));
if (M.children) head.push(M.children + (M.children === 1 ? ' child' : ' children'));
h += '<div class="hh-rsec"><div class="hh-rhead">Your details</div>' +
(isAttending() && head.length ? rline('Attending', head.join(' \u00b7 ')) : '') +
rline('Name', who.trim() || '\u2014') +
rline('Email', M.vals['hh26-email'] || val('hh26-email') || '\u2014') +
rline('Phone', M.vals['hh26-phone'] || val('hh26-phone') || '\u2014') + '</div>';
if ((M.total || 0) > 0) {
h += '<p class="hh-hint" style="margin-top:14px">Your card will be charged ' +
'$' + (M.total || 0).toLocaleString() + ' when you complete your ' +
'registration.</p>';
}
return h;
}
function rline(k, v) {
return '<div class="hh-rrow"><span class="hh-rk">' + k + '</span>' +
'<span class="hh-rv">' + v + '</span></div>';
}
function extrasLine(d) {
var a = [];
if (d.students) a.push(d.students + ' student' + (d.students === 1 ? '' : 's'));
if (d.veg)      a.push(d.veg + ' vegetarian meal' + (d.veg === 1 ? '' : 's'));
return a.join(' \u00b7 ');
}
function peopleLine(d) {
var a = [];
if (M.adults)   a.push(M.adults + (M.adults === 1 ? ' adult' : ' adults'));
if (M.children) a.push(M.children + (M.children === 1 ? ' child' : ' children'));
if (d.students) a.push(d.students + ' student' + (d.students === 1 ? '' : 's'));
if (d.veg)      a.push(d.veg + ' vegetarian');
return a.join(' \u00b7 ') || '\u2014';
}
function notesPane() {
var open = '<text' + 'area class="hh-in" id="hh26-notes" placeholder="Optional">';
var shut = '</text' + 'area>';
return '<div id="hh26-err"></div>' +
'<p class="hh-intro">Accessibility needs, dietary questions, or anything ' +
'you\u2019d like us to know before the holidays.</p>' +
'<div class="hh-fld"><label>Notes</label>' + open + shut + '</div>';
}
function wirePane(st) {
var id = st.id, body = document.querySelector('#hh26 .hh-mbody');
wireBlurb();
if (id === 'addmore') {
body.addEventListener('click', function (e) {
var c = e.target.closest && e.target.closest('.hh-add');
if (!c) return;
captureVals(); saveOpt();
var k = c.getAttribute('data-add');
M.cart.push(k);
var steps = buildSteps();
for (var i = 0; i < steps.length; i++) {
if (steps[i].id === 'opt' && steps[i].key === k) { M.step = i; break; }
}
renderModal();
});
return;
}
if (id === 'support') {
body.addEventListener('click', function (e) {
var c = e.target.closest && e.target.closest('.hh-chip');
if (!c) return;
var wrap = c.parentNode, grp = wrap.getAttribute('data-grp');
wrap.querySelectorAll('.hh-chip').forEach(function (x) { x.className = 'hh-chip'; });
c.className = 'hh-chip on';
var amt = c.getAttribute('data-amt');
var box = $('hh26-otherwrap-' + grp);
var val_ = 0;
if (amt === 'other') {
box.style.display = 'block';
val_ = parseInt($('hh26-otheramt-' + grp).value, 10) || 0;
} else {
box.style.display = 'none';
val_ = parseInt(amt, 10);
}
if (grp === 'gen') M.gift = val_; else M.bfGift = val_;
commitSupport();
refreshTotal();
});
body.addEventListener('input', function (e) {
if (e.target.id === 'hh26-otheramt-gen') M.gift   = parseInt(e.target.value, 10) || 0;
else if (e.target.id === 'hh26-otheramt-bf') M.bfGift = parseInt(e.target.value, 10) || 0;
else return;
});
body.addEventListener('change', function (e) {
if (e.target.id !== 'hh26-otheramt-gen' && e.target.id !== 'hh26-otheramt-bf') return;
commitSupport();
refreshTotal();
});
return;
}
if (id === 'gift') {
var gchips = document.querySelector('#hh26 .hh-chips');
var paint  = function () {
var g = $('hh26-gtotal');
if (g) g.textContent = '$' + (M.gift || 0).toLocaleString();
};
if (gchips) gchips.addEventListener('click', function (e) {
var c = e.target.closest && e.target.closest('.hh-chip');
if (!c) return;
gchips.querySelectorAll('.hh-chip').forEach(function (x) { x.className = 'hh-chip'; });
c.className = 'hh-chip on';
var amt = c.getAttribute('data-amt');
if (amt === 'other') {
$('hh26-otherwrap-gift').style.display = 'block';
M.gift = parseInt($('hh26-otheramt-gift').value, 10) || 0;
} else {
$('hh26-otherwrap-gift').style.display = 'none';
M.gift = parseInt(amt, 10) || 0;
}
paint();
});
var oamt = $('hh26-otheramt-gift');
if (oamt) {
oamt.addEventListener('input', function () {
M.gift = parseInt(this.value, 10) || 0;
paint();
});
oamt.addEventListener('change', function () { refreshTotal(); });
}
paint();
return;
}
var chg = $('hh26-changecount');
if (chg) chg.addEventListener('click', function () {
captureVals(); M.showCounts = true; renderModal();
});
if (M.opt && (M.opt.kind === 'schedule' || M.opt.kind === 'info')) return;
if (M.opt && M.opt.kind === 'yizkor' && id === 'opt') {
wireYizkor();
return;
}
if (M.opt && M.opt.kind === 'lulav' && id === 'opt') {
wireLulav();
return;
}
if (M.opt && M.opt.kind === 'dinner' && (id === 'opt' || id === 'dinnergift')) {
wireDinner();
return;
}
if (id === 'opt' && !M.opt.singleEvent && !M.opt.infoEvent) {
body.addEventListener('click', function (e) {
var row = e.target.closest && e.target.closest('.hh-row');
if (!row || row.className.indexOf('info') > -1) return;
var k = row.getAttribute('data-k');
M.picks[k] = !M.picks[k];
row.className = 'hh-row' + (M.picks[k] ? ' on' : '');
row.setAttribute('aria-checked', !!M.picks[k]);
});
}
if (id === 'who') {
if (!$('hh26-names')) return;
var redraw = function () {
$('hh26-names').innerHTML =
(totalAdults()   ? nameRows(totalAdults(),   'a', 'Adult') : '') +
(totalChildren() ? '<div style="height:8px"></div>' : '') +
(totalChildren() ? nameRows(totalChildren(), 'c', 'Child') : '');
spreadSurname();
};
$('hh26-names').addEventListener('input', function (e) {
var el = e.target;
if (!el.className || el.className.indexOf('hh-nm') < 0) return;
M.names[el.id] = el.value;
if (/l\d+$/.test(el.id) && el.id !== 'hh26-al0') M.lnDirty[el.id] = true;
if (el.id === 'hh26-al0') spreadSurname();
});
redraw();
}
}
function countsBlock(max) {
var firstTime = (M.cart[0] === M.key) || M.showCounts;
if (firstTime) {
return '<div id="hh26-counts"></div><div class="hh-sub">How many are coming?</div>' +
'<div class="hh-two">' +
'<div class="hh-fld"><label>Adults</label><input class="hh-in" type="number" min="0" max="' + max + '" id="hh26-adults" value="' + M.adults + '"></div>' +
'<div class="hh-fld"><label>Children</label><input class="hh-in" type="number" min="0" max="' + max + '" id="hh26-children" value="' + M.children + '"></div>' +
'</div>';
}
var who = [];
if (M.adults)   who.push(M.adults + (M.adults === 1 ? ' adult' : ' adults'));
if (M.children) who.push(M.children + (M.children === 1 ? ' child' : ' children'));
return '<div id="hh26-counts"></div><div class="hh-sub">Who\u2019s coming?</div>' +
'<div class="hh-carry">' + esc(who.join(' \u00b7 ') || 'Nobody yet') +
'<span class="hh-change" id="hh26-changecount">Change</span></div>';
}
function readCounts(max) {
if ($('hh26-adults'))   M.adults   = clamp($('hh26-adults').value, 0, max);
if ($('hh26-children')) M.children = clamp($('hh26-children').value, 0, max);
}
function blurbHTML() {
var o = M.opt;
if (!o.blurb || !o.blurb.length) return '';
var full = o.blurb.map(function (para) {
return '<p class="hh-bpara">' + esc(para) + '</p>';
}).join('');
if (o.signoff) {
full += '<p class="hh-bsign">' + o.signoff.map(esc).join('<br>') + '</p>';
}
return '<div class="hh-blurb">' +
'<div id="hh26-bshort"><span class="hh-bpara">' + esc(o.teaser || o.blurb[0]) +
'</span> <span class="hh-more" data-b="open">Show more</span></div>' +
'<div id="hh26-bfull" style="display:none">' + full +
'<span class="hh-more" data-b="close">Show less</span></div>' +
'</div>';
}
function wireBlurb() {
var b = document.querySelector('#hh26 .hh-blurb');
if (!b) return;
b.addEventListener('click', function (e) {
var t = e.target.closest && e.target.closest('.hh-more');
if (!t) return;
var open = t.getAttribute('data-b') === 'open';
$('hh26-bshort').style.display = open ? 'none' : 'block';
$('hh26-bfull').style.display  = open ? 'block' : 'none';
});
}
function refreshTotal() {
M.total = liveTotal();
var el = $('hh26-dtotal');
if (el) el.textContent = '$' + M.total.toLocaleString();
var hd = $('hh26-htotal');
if (hd) hd.textContent = '$' + M.total.toLocaleString();
var hw = $('hh26-htotalwrap');
if (hw) hw.style.visibility = (M.total > 0) ? 'visible' : 'hidden';
}
function totalAdults()   { return Math.min(M.adults   || 0, 5); }
function totalChildren() { return Math.min(M.children || 0, 5); }
function spreadSurname() {
var src = $('hh26-al0');
if (!src) return;
var surname = src.value;
M.names['hh26-al0'] = surname;
['a', 'c'].forEach(function (p) {
for (var i = 0; i < 5; i++) {
var id = 'hh26-' + p + 'l' + i;
if (id === 'hh26-al0' || M.lnDirty[id]) continue;
var el = $(id);
if (el) { el.value = surname; M.names[id] = surname; }
}
});
}
function clamp(v, lo, hi) {
v = parseInt(v, 10); if (isNaN(v)) v = lo;
return Math.max(lo, Math.min(hi, v));
}
function fail(msg) {
var e = $('hh26-err');
if (e) { e.className = 'hh-err'; e.textContent = msg; e.scrollIntoView({block:'nearest'}); }
return false;
}
function onNext() {
if (M.opt && M.opt.kind === 'info') {
if (M.opt.cta && M.opt.cta.url) {
var a = document.createElement('a');
a.href = M.opt.cta.url;
a.target = '_bl' + 'ank';
a.rel = 'noopener';
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
return;
}
if (M.opt.cta && M.opt.cta.opens) {
M.cart = [M.opt.cta.opens]; M.step = 0;
loadOpt(M.cart[0]); renderModal();
} else {
closeModal();
}
return;
}
if (M.opt && M.opt.kind === 'schedule') {
M.cart = [M.opt.opensAs];
M.step = 0;
loadOpt(M.cart[0]);
renderModal();
return;
}
var steps  = buildSteps();
var st     = steps[M.step];
var isLast = M.step >= steps.length - 1;
if (M.opt && M.opt.kind === 'scheduleview') {
var to = M.opt.goTo;
M.cart = [to]; M.step = 0; M.opt = null; M.key = null;
loadOpt(to);
renderModal();
return;
}
if (st.id === 'opt') {
if (M.opt.kind === 'dinner') {
if (!M.tier) return fail('Please choose a price level.');
readCounts(5);
if (M.adults + M.children + M.students < 1)
return fail('Please tell us how many people are coming.');
commitDinner();
} else if (M.opt.kind === 'yizkor') {
if (!val('hh26-yf0') && !val('hh26-yl0'))
return fail('Please enter at least one name to be remembered.');
M.yzDon = parseInt(val('hh26-ydon'), 10) || 0;
commitYizkor();
} else if (M.opt.kind === 'lulav') {
M.lqty = clamp($('hh26-lqty').value, 0, 20);
if (M.lqty < 1) return fail('Please choose how many sets you\u2019d like.');
if (M.pickup === null || M.pickup === undefined)
return fail('Please choose a pickup time.');
syncLulav(); setDrivers();
} else if (M.opt.infoEvent) {
readCounts(9);
if (M.adults + M.children < 1)
return fail('Please tell us how many people are coming.');
commitCounts(); setDrivers();
} else if (M.opt.singleEvent) {
readCounts(5);
if (M.adults + M.children < 1)
return fail('Please tell us how many people are coming.');
commitSchedule(); commitCounts();
} else {
if (!Object.keys(M.picks).some(function (k) { return M.picks[k]; }))
return fail('Please choose at least one service.');
readCounts(5);
if (M.adults + M.children < 1)
return fail('Please tell us how many people are coming.');
commitSchedule(); commitCounts();
}
saveOpt();
}
if (st.id === 'dinnergift') commitDinnerGift();
if (st.id === 'who') {
if (!$('hh26-email').value) return fail('Please enter your email.');
if (!$('hh26-af0') || !$('hh26-af0').value) return fail('Please enter your name.');
commitWho();
}
if (st.id === 'support') commitSupport();
if (st.id === 'gift') {
if (M.gift < 1) return fail('Please choose an amount to give.');
commitGift();
}
if (st.id === 'pay') {
if (CFG.OPTIONS[M.cart[0]].donationOnly) {
if (!$('hh26-cfirst').value) return fail('Please enter your name.');
if (!$('hh26-cemail').value) return fail('Please enter your email.');
commitCharityContact();
}
if (!$('hh26-ccnum').value) return fail('Please enter your card number.');
commitPay();
}
if (st.id === 'notes') commitNotes();
if (st.id !== 'review') { captureVals(); saveOpt(); commitAll(); M.total = liveTotal(); }
if (isLast) return submitForm();
captureVals();
M.total = liveTotal();
M.step++;
renderModal();
}
function commitCharityContact() {
var F = CFG.F;
setNative(F.firstMain, val('hh26-cfirst'));
setNative(F.lastMain,  val('hh26-clast'));
setNative(F.email,     val('hh26-cemail'));
setNative(F.phone,     val('hh26-cphone'));
}
function commitSchedule() {
if (M.opt.singleEvent) {
var ev = M.opt.singleEvent;
setChecked(ev.native, true);
if (M.opt.summary)
setNative(M.opt.summary, ev.date + '\n\u2022 ' + ev.time + ' \u2014 ' + ev.label);
setDrivers();
return;
}
var out = [];
M.opt.schedule.forEach(function (d, di) {
var picked = [];
d.items.forEach(function (it, ii) {
if (it.info) return;
var on = !!M.picks[di + '-' + ii];
if (it.native) setChecked(it.native, on);
if (on) picked.push('\u2022 ' + it.time + ' \u2014 ' + it.label);
});
if (picked.length) {
if (out.length) out.push('');
out.push(d.date);
out.push(picked.join('\n'));
}
});
setNative(M.opt.summary, out.join('\n'));
setDrivers();
}
function commitCounts() {
var F = CFG.F;
setNative(M.opt.adultsField   || F.adults,   M.adults);
setNative(M.opt.childrenField || F.children, M.children);
}
function commitWho() {
var F = CFG.F, i;
if (!$('hh26-email')) return;
setNative(F.firstMain, val('hh26-af0'));
setNative(F.lastMain,  val('hh26-al0'));
for (i = 1; i < 5; i++) {
setNative(F.adultFirst[i - 1], val('hh26-af' + i));
setNative(F.adultLast[i - 1],  val('hh26-al' + i));
}
for (i = 0; i < 5; i++) {
setNative(F.childFirst[i], val('hh26-cf' + i));
setNative(F.childLast[i],  val('hh26-cl' + i));
}
setNative(F.email, val('hh26-email'));
setNative(F.phone, val('hh26-phone'));
}
function commitSupport() {
var F = CFG.F, bf = CFG.OPTIONS['break-fast'];
var gi = CFG.GIFTS.indexOf(M.gift);
if (M.gift > 0) {
if (gi > -1) setChecked(F.sponsorRadios[gi], true);
else { setChecked(F.sponsorOther, true); setNative(F.sponsorAmt, M.gift); }
}
if (inCart('break-fast') && M.bfGift > 0) {
var bi = bf.giftAmounts.indexOf(M.bfGift);
if (bi > -1) setChecked(bf.giftRadios[bi], true);
else { setChecked(bf.giftOther, true); setNative(bf.giftOtherAmt, M.bfGift); }
}
if ($('hh26-dedtype')) {
var t = val('hh26-dedtype');
if (t === 'honor')  setChecked(F.dedInHonor, true);
if (t === 'memory') setChecked(F.dedInMemory, true);
setNative(F.dedNames, val('hh26-dednames'));
}
setPaymentRow();
}
function setPaymentRow() {
var t = liveTotal();
setNative('input_77',
(t > 0 || (M.gift || 0) > 0 || (M.bfGift || 0) > 0) ? 'block' : 'none');
}
function commitGift() {
var F = CFG.F, idx = giftAmounts().indexOf(M.gift);
if (M.gift > 0) {
if (idx > -1) setChecked(giftRadios()[idx], true);
else { setChecked(giftOtherRadio(), true); setNative(giftOtherAmt(), M.gift); }
}
var t = val('hh26-dedtype');
if (t === 'honor')  setChecked(F.dedInHonor, true);
if (t === 'memory') setChecked(F.dedInMemory, true);
setNative(F.dedNames, val('hh26-dednames'));
if (M.opt.giftRow) setNative(M.opt.giftRow, M.gift > 0 ? 'block' : 'none');
if (M.opt.donationOnly) setDrivers();
}
function setDrivers() {
Object.keys(CFG.OPTIONS).forEach(function (k) {
var d = CFG.OPTIONS[k].driver;
if (d) setNative(d, inCart(k) ? 'block' : 'none');
});
}
function commitPay() {
var F = CFG.F;
setChecked(F.payCard, true);
setNative(F.ccName, val('hh26-ccname'));
setNative(F.ccNum,  val('hh26-ccnum'));
setNative(F.ccCvv,  val('hh26-cccvv'));
setNative(F.ccMon,  val('hh26-ccmon'));
setNative(F.ccYear, val('hh26-ccyear'));
setNative(F.billAddr,   val('hh26-baddr'));
setNative(F.billCity,   val('hh26-bcity'));
setNative(F.billState,  val('hh26-bstate'));
setNative(F.billPostal, val('hh26-bzip'));
setSelect(F.billCountry, CFG.DEFAULT_COUNTRY);
}
function setSelect(id, text) {
var el = $(id);
if (!el || !el.options) return false;
var i, o;
for (i = 0; i < el.options.length; i++) {
o = el.options[i];
if (o.value === text || (o.text || '').trim() === text) {
el.selectedIndex = i;
['input', 'change', 'blur'].forEach(function (evt) {
el.dispatchEvent(new Event(evt, { bubbles: true }));
});
return true;
}
}
if (window.console) console.warn('[HH26] no option matching', text, 'in', id);
return false;
}
function commitNotes() {
if ($('hh26-notes')) setNative(CFG.F.notes, val('hh26-notes'));
}
function val(id) { var e = $(id); return e ? e.value : ''; }
function commitAll() {
var savedKey = M.key;
saveOpt();
clearAllOptionFields();
M.cart.forEach(function (k) {
loadOpt(k);
var o = M.opt;
if (o.kind === 'dinner') { syncDinner(); commitDinner(); commitDinnerGift(); }
else if (o.kind === 'lulav')  { syncLulav(); }
else if (o.kind === 'yizkor') { commitYizkor(); }
else if (o.schedule)          { commitSchedule(); commitCounts(); }
else if (o.singleEvent)       { commitSchedule(); commitCounts(); }
else if (o.infoEvent)         { commitCounts(); }
});
setDrivers();
if (savedKey) loadOpt(savedKey);
commitWho();
commitSupport();
commitNotes();
setPaymentRow();
}
function submitForm() {
commitAll();
var btn = findSubmit();
if (!btn) { fail('Could not find the submit button — check the console.');
if (window.console) console.warn('[HH26] submit button not found'); return; }
setPaymentRow();
stashConfirmation();
LAST = null;
var nx = $('hh26-next');
if (nx) { nx.textContent = 'Processing\u2026'; nx.setAttribute('disabled', 'disabled'); }
btn.click();
setTimeout(checkValidation, 450);
setTimeout(checkValidation, 1400);
}
var FRIENDLY = {
input_74_addr_line1:'street address', input_74_city:'city',
input_74_state:'state', input_74_postal:'postal code',
input_74_country:'country', input_72:'email', input_73_full:'phone',
first_62:'first name', last_62:'last name',
input_61_addr_line1:'billing street', input_61_city:'billing city',
input_61_state:'billing state', input_61_postal:'billing ZIP',
input_61_country:'billing country', input_61_cc_number:'card number',
input_61_cc_ccv:'security code', input_61_cc_nameOnCard:'name on card'
};
function checkValidation() {
if (!M) return;
var bad = document.querySelectorAll('.form-validation-error');
if (!bad.length) return;
try { sessionStorage.removeItem(STASH); } catch (e) {}
var ids = [], names = [];
Array.prototype.forEach.call(bad, function (f) {
if (!f.id || ids.indexOf(f.id) > -1) return;
ids.push(f.id);
var n = FRIENDLY[f.id] || f.id;
if (names.indexOf(n) < 0) names.push(n);
});
if (window.console) console.warn('[HH26] blocked by required fields:', ids);
var nx = $('hh26-next');
if (nx) { nx.removeAttribute('disabled'); nx.textContent = 'Try again'; }
fail('We couldn\u2019t complete your registration \u2014 the form still needs: ' +
names.join(', ') + '.');
}
var STASH = 'hh26_confirm';
function stashConfirmation() {
saveOpt();
var sections = M.cart.map(function (k) {
var o = CFG.OPTIONS[k], d = M.d[k] || {}, groups = [];
if (o.infoEvent) {
groups.push({ date:o.infoEvent.date, items:o.infoEvent.items.slice() });
} else if (o.kind === 'dinner') {
groups.push({ date:o.event.date, items:o.event.items.slice() });
} else if (o.singleEvent) {
groups.push({ date:o.singleEvent.date,
items:[{ time:o.singleEvent.time, label:o.singleEvent.label }] });
} else if (o.kind === 'lulav') {
groups.push({ date:'Pickup', items:[{
time:(d.lqty || 0) + (d.lqty === 1 ? ' set' : ' sets'),
label:o.pickupLabels[d.pickup] || '' }] });
} else if (o.schedule) {
o.schedule.forEach(function (day, di) {
var picked = [];
day.items.forEach(function (it, ii) {
if (!it.info && d.picks && d.picks[di + '-' + ii]) {
picked.push({ time: it.time, label: it.label });
}
});
if (picked.length) groups.push({ date: day.date, items: picked });
});
}
return { title:o.title, groups:groups,
adults:M.adults || 0, children:M.children || 0,
students:d.students || 0, veg:d.veg || 0 };
});
var t = val('hh26-dedtype');
try {
sessionStorage.setItem(STASH, JSON.stringify({
t: Date.now(),
donationOnly: !!CFG.OPTIONS[M.cart[0]].donationOnly,
title: sections.map(function (x) { return x.title; }).join(' + '),
first: M.names['hh26-af0'] || val('hh26-cfirst') || '',
sections: sections,
gift: (M.gift || 0) + (M.bfGift || 0),
total: M.total || 0,
dedType: t === 'honor' ? 'In honor of' : (t === 'memory' ? 'In memory of' : ''),
dedNames: val('hh26-dednames')
}));
} catch (e) {}
}
function readStash() {
try {
var s = JSON.parse(sessionStorage.getItem(STASH) || 'null');
if (!s || (Date.now() - s.t) > 1800000) return null;
return s;
} catch (e) { return null; }
}
function buildConfirmation(s) {
var wrap = document.createElement('div');
wrap.id = 'hh26';
wrap.className = 'hh-confmode';
var body = '';
(s.sections || []).forEach(function (sec) {
body += '<div class="hh-sub">' + esc(sec.title) + '</div>';
body += (sec.groups || []).map(function (g) {
return '<div class="hh-cday">' + esc(g.date) + '</div>' +
g.items.map(function (l) {
return '<div class="hh-crow"><span class="hh-ctime">' + esc(l.time) + '</span>' +
'<span class="hh-clab">' + esc(l.label) + '</span></div>';
}).join('');
}).join('');
var who = [];
if (sec.adults)   who.push(sec.adults + (sec.adults === 1 ? ' adult' : ' adults'));
if (sec.children) who.push(sec.children + (sec.children === 1 ? ' child' : ' children'));
if (sec.students) who.push(sec.students + (sec.students === 1 ? ' student' : ' students'));
if (sec.veg)      who.push(sec.veg + ' vegetarian');
if (who.length) body += '<p class="hh-hint" style="margin-top:8px">' +
who.join(' · ') + '</p>';
});
var money = s.total > 0
? '<div class="hh-total"><span>Total charged</span><b>$' +
Number(s.total).toLocaleString() + '</b></div>' +
(s.dedNames ? '<p class="hh-hint" style="margin-top:9px">' +
esc(s.dedType) + ' ' + esc(s.dedNames) + '</p>' : '') +
'<p class="hh-hint">A receipt is on its way to your inbox.</p>'
: '<p class="hh-hint" style="margin-top:16px">A confirmation is on its way to your inbox.</p>';
wrap.innerHTML =
'<div class="hh-conf"><div class="hh-modal">' +
'<div class="hh-mhead">' +
'<div class="hh-mtitle">' +
(s.first ? 'Thank you, ' + esc(s.first) + '.' : 'Thank you.') + '</div>' +
'<div class="hh-mstep">' + esc(s.title) + ' · Confirmed</div>' +
'</div>' +
'<div class="hh-mbody">' +
'<p class="hh-intro">' + (s.donationOnly
? 'Your gift has been received. Thank you.'
: 'You\u2019re signed up. Here\u2019s what we have:') + '</p>' +
body + money +
'</div>' +
'<div class="hh-mfoot"><div class="hh-nextwrap">' +
'<span class="hh-next" id="hh26-done">Done</span></div></div>' +
'</div></div>';
document.body.appendChild(wrap);
document.documentElement.style.overflow = 'hidden';
try { sessionStorage.removeItem(STASH); } catch (e) {}
$('hh26-done').addEventListener('click', function () {
var url = CFG.RETURN_URL ||
(window.location.protocol + '//' + window.location.host + '/' + CFG.AID);
window.location.replace(url + (url.indexOf('?') > -1 ? '&' : '?') + 'r=' + Date.now());
});
}
function toast(msg) {
var old = $('hh26-toast');
if (old) old.parentNode.removeChild(old);
var el = document.createElement('div');
el.id = 'hh26-toast'; el.className = 'hh-toast'; el.textContent = msg;
document.getElementById('hh26').appendChild(el);
setTimeout(function () { if (el.parentNode) el.parentNode.removeChild(el); }, 2400);
}
})();
</script>
</body>
</html>