<!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/1086/wrJX10866799.png" itemprop="image" width="855" height="437" />
<meta property="og:image:width" content="855" />
<meta property="og:image:height" content="437" />
<meta name="keywords" content="High,Holidays" />
<meta name="title" content="High Holidays - Chabad Jewish Community Center" />
<meta property="og:type" content="website" />
<meta name="scope-aids" content="282313-282321-817735-288011-4865377" />
<meta name="article-keywords" content="23366-8495-8497-16403-16669-2170-2898-20962" />
<meta name="scope-aid" content="282313" />
<meta name="scope-aid" content="282321" />
<meta name="scope-aid" content="817735" />
<meta name="scope-aid" content="288011" />
<meta name="scope-aid" content="4865377" />
<meta name="article-keyword" content="23366" />
<meta name="article-keyword" content="8495" />
<meta name="article-keyword" content="8497" />
<meta name="article-keyword" content="16403" />
<meta name="article-keyword" content="16669" />
<meta name="article-keyword" content="2170" />
<meta name="article-keyword" content="2898" />
<meta name="article-keyword" content="20962" />
<meta property="og:url" content="https://www.jewishriverside.com/templates/section_cdo/aid/4865377/jewish/High-Holidays.htm" />
<meta property="twitter:card" content="summary_large_image" />
<meta property="twitter:site" content="@chabad" />
<meta property="og:title" content="High Holidays" /><link rel="canonical" href="https://www.jewishriverside.com/templates/section_cdo/aid/4865377/jewish/High-Holidays.htm" />
<link rel="image_src" href="https://w2.chabad.org/media/images/1086/wrJX10866799.png" />
<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?v=2D6ABDDB" id="kfont-awesome" type="text/css"/>
<link rel="Stylesheet" href="/css/DefaultGrid.css?v=A13D74E8" id="kgrid" type="text/css"/>
<link rel="Stylesheet" href="/css/Elements.css?v=3A4C63F4" id="k6" type="text/css"/>
<link rel="Stylesheet" href="/css/vendor/ds/tokens/sites.css?v=21E88630" id="ksites-ds-css" type="text/css"/>
<link rel="Stylesheet" href="/css/new/main.css?v=BB63DD50" id="k7" 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/old/global.css?v=43DDBA77" id="k2898" type="text/css"/>
<link rel="Stylesheet" href="https://w2.chabad.org/images/Shluchim/minisites/themes/highholidays/high-holiday-minisite.css?v=8/16/2026" id="k23366" type="text/css"/>
<link rel="Stylesheet" href="/css/cco/home/default/prettyPhoto.min.css?v=E5A10EA0" id="kprettyPhoto" 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":"2020-09-03","primaryArticleId":4865377,"title":"High Holidays","author":"","authorId":0,"contentLevel1":"My Site","contentLevel2":"Shabbat & Holidays","contentLevel3":"Past Events & Programs","contentLevel4":"High Holidays","siteName":"Chabad Jewish Community Center"},"time":{"upcomingHoliday":"Rosh Hashanah","daysToUpcomingHoliday":26,"hebrewDate":"5786-06-04"}});
		dataLayer.push({ 'articleHierarchy': '-282313-282321-817735-288011-4865377-', 'keywords': '-k20962-k2898-k2170-k16669-k16403-k8497-k8495-k23366-', 'k': '-282313-282321-817735-288011-4865377--k20962-k2898-k2170-k16669-k16403-k8497-k8495-k23366-' });
	
</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>
	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>
	High Holidays - Chabad Jewish Community Center
</title></head>
<body class="lang_en dir_ltr cco_body cco_templateless_page section_root">
	
	
		<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">.chabad_header {
background-image: url(https://w2.chabad.org/media/images/1136/DWXR11363231.png)!important;
background-size: cover;
background-position: left;
}
div#chabad_head .chabad_navigator_bar {
background-color: #5D87AF;
}

#navigation li.parent a.parent {
background-color: #5D87AF;
}

#navigation li.parent a.parent:hover, #navigation li.parent a.parent:hover+.sub_menu_toggle {
background-color: #7E9FC0;
color: #F5E1A2;
}
.special_message{
    font-size: 14px;
    line-height: 20px;
    color: #000;
    font-family: Montserrat,sans-serif;
    padding:11px 25px;
    margin-bottom:30px;
    margin-top:30px;
}
.special_message .messageCta {
    text-align:center;
}
.special_message .messageCta button {
    cursor:pointer;
}
.special_message .bannerCta{
    display:block!important
}
@media only screen and (min-width: 1024px) {
.co_features_home {
    width:215px;
}
}
.co_features_home {
    vertical-align: top;
}
.features_title {
    line-height:130%
}
body.mobile .chabad_navigator_bar #menu .item.heading {
    background-color: #e3c188;
}
@media only screen and (max-device-width: 1024px){
body.mobile #navigation.chabad_navigator_bar #menu li:not(.heading) {
    padding-left: 0;
    background-color: #e3c188;
}
}
</style>


<div id="chabad_body_page">
<div id="chabad_main_content">
<div id="chabad_head">


<div class="chabad_header">
<div class="headerTitle">
<a href="/4865377" style="text-decoration: none;"></a></div>
<div class="centerName"></div>
<div class="holidayDates">
 </div>
</div>


<div id="navigation" class="chabad_navigator_bar">
<div class="chabad_menu_content">
<ul id="menu" class="navi">
<li class="item parent selected">
<a href="/article.asp?aid=4865377" class="parent selected">Home</a>
|
</li>
<li class="item parent">
<a href="/article.asp?aid=4865383" class="parent">High Holidays COVID Resources</a>
|
</li>
<li class="item parent arrow">
<a href="/article.asp?aid=4150860" class="parent arrow">Simchat Torah</a>
<div class="sub_menu">
<ul>
<li class="item first last">
<a href="/article.asp?aid=3747630">Simchat Torah Reservations</a>
</li>
</ul>
</div>
|
</li>
<li class="item parent">
<a href="/article.asp?aid=5201569" class="parent">Schedule</a>
</li>

</ul>
</div>
</div>

</div>
<div id="chabad_body_content">
<div class="chabad_left_column"><div detached="true" type="static" id="ContentArea" name="content_area" actions="edit,delete" class="chabad_left_column"><!-- END HEADER -->
			
			
			<div class="clearfix bh mobile-only align_right">ב"ה</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 class="large_banner special_message">

<p class="features_title">Special High Holiday 2020 Info and Options</p>


<p></p>
<p class="ct-home-text-header-small" style="box-sizing: border-box; margin: 0px 0px 4px; font-family: 'open sans', sans-serif; line-height: 22.4px; font-size: 16px; color: rgb(246, 192, 39); letter-spacing: 2px; text-transform: uppercase; text-align: center; background-color: rgb(255, 255, 255);">CHABAD JEWISH COMMUNITY CENTER OF RIVERSIDE</p>
<p class="ct-home-text-header-big" style="box-sizing: border-box; margin: 0px auto 40px; font-family: 'open sans', sans-serif; line-height: 58.8px; font-size: 42px; color: rgb(93, 135, 176); font-weight: bold; max-width: 700px; text-align: center; background-color: rgb(255, 255, 255);">High Holiday Offerings</p>
<div class="ct-home-text" style="box-sizing: border-box; font-family: muli, sans-serif; text-align: center; max-width: 920px; margin: 0px auto; padding: 50px 0px 60px; color: rgb(51, 51, 51); font-size: 14px; background-color: rgb(255, 255, 255);">
<p style="box-sizing: border-box; margin: 0px 0px 10px; font-family: 'open sans', sans-serif; line-height: 22.4px; font-size: 16px; color: rgb(46, 63, 47);">
<span style="font-family: verdana; font-size: 16px;"></span></p>
<p>
<span style="font-size: 16px;">The High Holidays are a soulful and rejuvenating time; a season during which we get our "Jewish recharge" for the New Year.<br/>
</span></p>
<p>
<span style="font-size: 16px;">This year, we’ve been presented with a unique set of </span>
<strong>
<span style="font-size: 16px;">challenges, but Judaism teaches us that challenges and obstacles should only strengthen our resolve.<br/>
</span></strong></p>
<p>
<strong>
<span style="font-size: 16px;">Despite the pandemic — indeed because of it — we are determined to make these the most meaningful and memorable High Holidays ever!</span></strong>
<span style="font-size: 16px;"><br/>
</span></p>
<p>
<span style="font-size: 16px;">To achieve this while taking all necessary health precautions, respecting individual circumstances and adhering to government guidelines, we’ll be offering various avenues of inspiration and participation – including In-Person Prayer Services and meals, Online Events, Take-Out Dinners & DIY Gift Packages.<br/>
</span></p>
<p>
<span style="font-size: 16px;">Please click on the links below to select your preferences.</span></p>
<p>
<span style="color: rgb(46, 63, 47); font-family: verdana; font-size: 16px;"></span></p>
</div>
<div class="ct-home-columns" style="box-sizing: border-box; font-family: muli, sans-serif; color: rgb(51, 51, 51); font-size: 14px; text-align: center; background-color: rgb(255, 255, 255);">
<div class="ct-home-column" style="box-sizing: border-box; width: 303.594px; display: inline-block; vertical-align: top; padding: 10px 15px;">
<a href="/Article.asp?AID=4866761">
<img src="https://w3.chabad.org/media/images/1134/xqFM11341819.png" alt="Outdoor_Services.png" real_width="118" real_height="112" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 70%; height: auto; width: 100px; margin-bottom: 10px; display: inline-block;" /></a>
<p style="box-sizing: border-box; margin: 0px 0px 10px; font-family: 'open sans', sans-serif; line-height: 22.4px; font-size: 16px; color: rgb(46, 63, 47);">
<span style="box-sizing: border-box; font-weight: 700;">
<a href="/Article.asp?AID=4866761" style="box-sizing: border-box; color: rgb(25, 55, 101); background-color: transparent;">OUTDOOR SERVICES</a></span></p>
<p style="box-sizing: border-box; margin: 0px 0px 10px; font-family: 'open sans', sans-serif; line-height: 22.4px; font-size: 16px; color: rgb(46, 63, 47);">Things may look a bit different this year as we shift our services outdoors, but we're certain our&#160;
<i style="box-sizing: border-box;">Tefilot</i>&#160;and&#160;
<i style="box-sizing: border-box;">Kavanah</i>&#160;will be just as strong.</p>
</div>
&#160;
<div class="ct-home-column" style="box-sizing: border-box; width: 303.594px; display: inline-block; vertical-align: top; padding: 10px 15px;">
<a href="/Article.asp?AID=4866744">
<img src="https://w3.chabad.org/media/images/1134/uGUn11341827.png" alt="Online_Sermons.png" real_width="118" real_height="116" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 70%; height: auto; width: 100px; margin-bottom: 10px; display: inline-block;" /></a>
<p style="box-sizing: border-box; margin: 0px 0px 10px; font-family: 'open sans', sans-serif; line-height: 22.4px; font-size: 16px; color: rgb(46, 63, 47);">
<span style="box-sizing: border-box; font-weight: 700;">
<a href="/Article.asp?AID=4866744" style="box-sizing: border-box; color: rgb(25, 55, 101); background-color: transparent;">ONLINE EVENTS</a></span></p>
<p style="box-sizing: border-box; margin: 0px 0px 10px; font-family: 'open sans', sans-serif; line-height: 22.4px; font-size: 16px; color: rgb(46, 63, 47);">Join our virtual events for a chance to be inspired by messages of hope and inspiration during the auspicious times leading up to each holiday.</p>
</div>
&#160;</div>
<div class="ct-home-columns" style="box-sizing: border-box; font-family: muli, sans-serif; color: rgb(51, 51, 51); font-size: 14px; text-align: center; background-color: rgb(255, 255, 255);">
<div class="ct-home-column" style="box-sizing: border-box; width: 303.594px; display: inline-block; vertical-align: top; padding: 10px 15px;">
<a href="/Article.asp?AID=4866772">
<img src="https://w3.chabad.org/media/images/1134/Bjro11341823.png" alt="DIY_Guide.png" real_width="118" real_height="104" width="100" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 70%; height: auto; margin-bottom: 10px; display: inline-block;" /></a>
<p style="box-sizing: border-box; margin: 0px 0px 10px; font-family: 'open sans', sans-serif; line-height: 22.4px; font-size: 16px; color: rgb(46, 63, 47);">
<span style="box-sizing: border-box; font-weight: 700;">
<a href="/Article.asp?AID=4866772" style="box-sizing: border-box; color: rgb(25, 55, 101); background-color: transparent;">DIY Holiday Guide</a></span></p>
<p style="box-sizing: border-box; margin: 0px 0px 10px; font-family: 'open sans', sans-serif; line-height: 22.4px; font-size: 16px; color: rgb(46, 63, 47);">Our Holiday Guide provides all the tips and tricks you need to make your holiday a success.</p>
</div>
&#160;
<div class="ct-home-column" style="box-sizing: border-box; width: 303.594px; display: inline-block; vertical-align: top; padding: 10px 15px;">
<img src="https://w3.chabad.org/media/images/1134/DbTS11341822.png" alt="Zoom_Prep.png" real_width="113" real_height="104" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 70%; height: auto; width: 100px; margin-bottom: 10px; display: inline-block;" />
<p style="box-sizing: border-box; margin: 0px 0px 10px; font-family: 'open sans', sans-serif; line-height: 22.4px; font-size: 16px; color: rgb(46, 63, 47);">
<span style="box-sizing: border-box; font-weight: 700;">
<a href="/Article.asp?AID=4866744" style="box-sizing: border-box; color: rgb(25, 55, 101); background-color: transparent;">PREP COURSE</a></span></p>
<p style="box-sizing: border-box; margin: 0px 0px 10px; font-family: 'open sans', sans-serif; line-height: 22.4px; font-size: 16px; color: rgb(46, 63, 47);">This free 3-part Zoom course will help prepare you for each holiday in the month of Tishrei.</p>
<p style="box-sizing: border-box; margin: 0px 0px 10px; font-family: 'open sans', sans-serif; line-height: 22.4px; font-size: 16px; color: rgb(46, 63, 47);"></p>
</div>
<p>&#160; &#160;
<a href="/Article.asp?AID=4115552" class="ct-home-donate-link" style="font-family: 'open sans', sans-serif; box-sizing: border-box; color: rgb(255, 255, 255); background: rgb(246, 192, 39); text-decoration-line: none; display: inline-block; padding: 13px 25px; text-transform: uppercase; font-size: 21px;">MAKE YOUR RESERVATIONS</a></p>
<p></p>
<p></p>
<p></p>
</div>
<div class="ct-home-columns" style="box-sizing: border-box; font-family: muli, sans-serif; color: rgb(51, 51, 51); font-size: 14px; text-align: center; background-color: rgb(255, 255, 255);">
<div class="ct-home-column" style="box-sizing: border-box; width: 303.594px; display: inline-block; vertical-align: top; padding: 10px 15px;">
<p style="box-sizing: border-box; margin: 0px 0px 10px; font-family: 'open sans', sans-serif; line-height: 22.4px; font-size: 16px; color: rgb(46, 63, 47);">
<span style="box-sizing: border-box; font-weight: 700;">
<a href="/tools/feedback.htm" style="box-sizing: border-box; color: rgb(25, 55, 101); background-color: transparent;">CONTACT US</a></span></p>
<p style="box-sizing: border-box; margin: 0px 0px 10px; font-family: 'open sans', sans-serif; line-height: 22.4px; font-size: 16px; color: rgb(46, 63, 47);">For any questions, comments, feedback or requests - we're always here to listen and help.</p>
</div>
</div>
<div class="ct-home-text" style="box-sizing: border-box; font-family: muli, sans-serif; text-align: center; max-width: 920px; margin: 0px auto; padding: 50px 0px 60px; color: rgb(51, 51, 51); font-size: 14px; background-color: rgb(255, 255, 255);">
<p style="box-sizing: border-box; margin: 0px 0px 10px; font-family: 'open sans', sans-serif; line-height: 22.4px; font-size: 16px; color: rgb(46, 63, 47);">For further information on any of the above, or to make phone reservations for In-Person High Holiday Services, please call 951-222-2005. May the Almighty bless you and yours with good health and a sweet New Year. May He bring an immediate end to this pandemic, and may we all experience revealed goodness and blessings in the Year 5781!</p>
</div>
<p></p>

<div class="messageCta bannerCta"></div>
</div>

<div class="small_promos">

<div class="sPromo-wrap">

<a href="/4866761"></a>

<img src="https://w2.chabad.org/media/images/1136/aUWk11362269.jpg" border="0" />
<div class="caption">
Prayer Services</div>
</div>


<div class="sPromo-wrap">

<a href="/4866727"></a>

<img src="https://w2.chabad.org/media/images/1086/JTyw10866488.jpg" border="0" />
<div class="caption">
Community Dinner</div>
</div>


<div class="sPromo-wrap">

<a href="/4865820"></a>

<img src="https://w2.chabad.org/media/images/1086/jkDs10866487.jpg" border="0" />
<div class="caption">
Schedule</div>
</div>


<div class="sPromo-wrap">

<a href="/4115552"></a>

<img src="https://w2.chabad.org/media/images/1136/Kbdn11363655.jpg" border="0" />
<div class="caption">
Reservations</div>
</div>
</div>

<div class="custom_message">
<div class="titleIcon">
<img src="https://w2.chabad.org/images/Shluchim/minisites/themes/highHolidays/High-Holidays_shofer.png" /></div>
<div class="title titleIcon">
 What Are the High Holidays?</div>
<div class="message">
  The two-day holiday of Rosh Hashanah is the head of the Jewish year, the time when G‑d reinvests Himself in creation as we crown Him king of the universe through prayer, shofar blasts, and celebration. A week later, the High Holidays reach their crescendo with Yom Kippur (the Day of Atonement). Like angels, we neither eat nor drink for 25 hours. Dressed in white, we pray in the synagogue—united as one people, children of One Father. </div>
<div class="read-more_link">

<a href="/36130"> Read More</a></div>
</div>


<div class="latest_features">
<div class="titleIcon">
<img src="https://w2.chabad.org/images/Shluchim/minisites/themes/highHolidays/High-Holidays_book.png" /></div>
<div class="features_title titleIcon">Resources for High Holidays @ Home</div>
<div class="co_content">
<div class="co_features co_features_home">
<div class="wrap-image">
<a href="/4849334">
<img class="statimg" src="https://w2.chabad.org/media/images/1135/lWrf11354312.jpg" /></a>
<div class="wrap-image2"></div>
</div>
<div class="feature_caption">
<a href="/4849334"> Tips for @ Home Services</a></div>
</div>
<div class="co_features co_features_home">
<div class="wrap-image">
<a href="/4859759">
<img class="statimg" src="https://w2.chabad.org/media/images/1063/QUNN10633524.jpg" /></a>
<div class="wrap-image2"></div>
</div>
<div class="feature_caption">
<a href="/4859759"> Machzor Companion</a></div>
</div>
<div class="co_features co_features_home">
<div class="wrap-image">
<a href="/4699754">
<img class="statimg" src="https://w2.chabad.org/media/images/963/nPmT9637235.jpg" /></a>
<div class="wrap-image2"></div>
</div>
<div class="feature_caption">
<a href="/4699754"> Yizkor at Home</a></div>
</div>
<div class="co_features co_features_home">
<div class="wrap-image">
<a href="/4844124">
<img class="statimg" src="https://w2.chabad.org/media/images/1134/BWEd11348645.jpg" /></a>
<div class="wrap-image2"></div>
</div>
<div class="feature_caption">
<a href="/4844124"> Celebrating Alone</a></div>
</div>
</div>
</div>


<div class="latest_features">
<div class="titleIcon">
<img src="https://w2.chabad.org/images/Shluchim/minisites/themes/highHolidays/High-Holidays_book.png" /></div>
<div class="features_title titleIcon">Learn More about The High Holidays</div>
<div class="co_content">
<div class="co_features">
<div class="wrap-image">
<a href="/4644">
<img class="statimg" src="https://w2.chabad.org/media/images/981/wNLJ9811645.jpg" /></a>
<div class="wrap-image2"></div>
</div>
<div class="feature_caption">
<a href="/4644"> About Rosh Hashanah</a></div>
</div>
<div class="co_features">
<div class="wrap-image">
<a href="/4318">
<img class="statimg" src="https://w2.chabad.org/media/images/1016/bEsX10166105.jpg" /></a>
<div class="wrap-image2"></div>
</div>
<div class="feature_caption">
<a href="/4318"> Rosh Hashanah Guide</a></div>
</div>
<div class="co_features">
<div class="wrap-image">
<a href="/354744">
<img class="statimg" src="https://w2.chabad.org/media/images/949/TlGt9496726.jpg" /></a>
<div class="wrap-image2"></div>
</div>
<div class="feature_caption">
<a href="/354744"> Kids Site</a></div>
</div>
<div class="co_features">
<div class="wrap-image">
<a href="/4323">
<img class="statimg" src="https://w2.chabad.org/media/images/843/aHBW8436237.jpg" /></a>
<div class="wrap-image2"></div>
</div>
<div class="feature_caption">
<a href="/4323"> Recipes</a></div>
</div>
<div class="co_features">
<div class="wrap-image">
<a href="/4687">
<img class="statimg" src="https://w2.chabad.org/media/images/1068/bwEC10684707.jpg" /></a>
<div class="wrap-image2"></div>
</div>
<div class="feature_caption">
<a href="/4687"> About Yom Kippur</a></div>
</div>
<div class="co_features">
<div class="wrap-image">
<a href="/4325">
<img class="statimg" src="https://w2.chabad.org/media/images/989/fKkh9895020.jpg" /></a>
<div class="wrap-image2"></div>
</div>
<div class="feature_caption">
<a href="/4325"> Yom Kippur Guide</a></div>
</div>
</div>
</div>






</div>
						
						<div class="break_floats"></div>
						
					</div>
				</div>
				
				
				
			</div>
			
			<!-- BEGIN FOOTER --></div>

</div>
<div id="border_bottom"></div>
</div>
</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%2fsection_cdo%2faid%2f4865377%2fjewish%2fHigh-Holidays.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=High+Holidays+-+Chabad+Jewish+Community+Center&amp;url=https%3a%2f%2fwww.jewishriverside.com%2ftemplates%2fsection_cdo%2faid%2f4865377%2fjewish%2fHigh-Holidays.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=High+Holidays+-+Chabad+Jewish+Community+Center https%3a%2f%2fwww.jewishriverside.com%2ftemplates%2fsection_cdo%2faid%2f4865377%2fjewish%2fHigh-Holidays.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%2fsection_cdo%2faid%2f4865377%2fjewish%2fHigh-Holidays.htm%23utm_medium%3dpage_tools%26utm_content%3ddesktop%26utm_source%3dpinterest&amp;description=High+Holidays+-+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, 288011);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-latest.min.js?v=278824AF"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/os/jquery.prettyPhoto.js?v=DEFC22CC"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/co/dist/CoLib.js?v=CD6CB303"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/WebComponents/bundles/magen-cdo-global.js?v=C8425CA5"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/custom/minisites.js?v=F38E4DA5"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/custom/subscribeprompt.js?v=86D84DC2"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/modules/pagetools.js?v=930B07AB"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/custom/deprecated.js?v=D506A83E"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/OverrideJSDocumentWrite.js?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     = '4865377';Co.SectionId     = 817735;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:'Full price',
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: 4,
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' }
]
},
'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: [
'Chabad.org 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 { hasStash = !!sessionStorage.getItem('hh26_confirm'); } catch (e) {}
if (!onEvent && !inPreview && !hasStash) return;
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', boot);
} else {
boot();
}
function boot() {
if (document.getElementById('hh26')) return;
var s = readStash();
if (s && !document.getElementById('input_2')) {
loadFonts(); injectStyles(); buildConfirmation(s);
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() {
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 - 10;
} 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 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-yadd';
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>