<!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/777/OSjf7775136.png" itemprop="image" width="150" height="150" />
<meta property="og:image:width" content="150" />
<meta property="og:image:height" content="150" />
<meta name="keywords" content="Vayishlach,2019" />
<meta name="title" content="Vayishlach 2019 - Chabad of the West Side" />
<meta property="og:type" content="website" />
<meta name="scope-aids" content="56130-56134-4462882-4461964-64482-66861-4580947" />
<meta name="article-keywords" content="23083-8495-23081-2170-2898-20962" />
<meta name="scope-aid" content="56130" />
<meta name="scope-aid" content="56134" />
<meta name="scope-aid" content="4462882" />
<meta name="scope-aid" content="4461964" />
<meta name="scope-aid" content="64482" />
<meta name="scope-aid" content="66861" />
<meta name="scope-aid" content="4580947" />
<meta name="article-keyword" content="23083" />
<meta name="article-keyword" content="8495" />
<meta name="article-keyword" content="23081" />
<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.chabadwestside.org/templates/articlecco_cdo/aid/4580947/jewish/Vayishlach-2019.htm" />
<meta property="twitter:card" content="summary_large_image" />
<meta property="twitter:site" content="@chabad" />
<meta property="og:title" content="Vayishlach 2019 - Chabad of the West Side" /><link rel="canonical" href="https://www.chabadwestside.org/templates/articlecco_cdo/aid/4580947/jewish/Vayishlach-2019.htm" />
<link rel="icon" type="image/png" href="https://www.chabadwestside.org/media/images/777/OSjf7775136.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="/css/cco/minisites/themes/holiday/holiday-minisite.css" id="k23081" type="text/css"/>
<link rel="Stylesheet" href="https://w2.chabad.org/images/Shluchim/minisites/themes/purim/purim-minisite.css?v=7/8/2026" id="k23083" type="text/css"/>
<link rel="Stylesheet" href="/css/bootstrap/grid.css?v=F4390F2B" id="kbootstrap4-grid" type="text/css"/>
<link rel="Stylesheet" href="/css/Library/reader-comments.css?v=8AB57D79" id="kCommentsStylesheet" type="text/css"/>
<link rel="Stylesheet" href="/css/inline/BookInfo.css?v=3D052243" id="kBookInfoCss" type="text/css"/>

<script>$q=[];$j=function(f){$q.push(f);}</script>
	
 
	
	<style type="text/css">
		body{margin:0;}
	</style>
	
	



<script>
	window.dataLayer = window.dataLayer || [];
	dataLayer.push({"event":"datalayer-initialized","page":{"numberOfComments":0,"publicationDate":"2019-12-12","primaryArticleId":4580947,"title":"","author":"","authorId":0,"contentLevel1":"My Site","contentLevel2":"Shul","contentLevel3":"Torah Study Opportunities","contentLevel4":"Torah for the Times","contentLevel5":"Torah Fax Archives","contentLevel6":"Vayishlach 2019","siteName":"Chabad of the West Side"},"time":{"upcomingHoliday":"Rosh Hashanah","daysToUpcomingHoliday":30,"hebrewDate":"5786-05-30"}});
		dataLayer.push({ 'articleHierarchy': '-56130-56134-4462882-4461964-64482-66861-4580947-', 'keywords': '-k20962-k2898-k2170-k23081-k8495-k23083-', 'k': '-56130-56134-4462882-4461964-64482-66861-4580947--k20962-k2898-k2170-k23081-k8495-k23083-' });
	
</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 = 1076023;var sc_partition = 1;var sc_invisible = 1;var sc_remove_link=1;var sc_security = "f304d65a";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=1076023&amp;java=0&amp;security=f304d65a&amp;invisible=1" border="0" /> </noscript>
	<!-- End of StatCounter Code -->


<meta name="google-site-verification" content="XI1CNphP9EJK1nCK8w7KoTerO0ZLWG0TS35_ivzwlSI" />

<noscript>
  <img height="1" width="1" src="https://www.facebook.com/tr?id=2531238256890008&ev=PageView&noscript=1" />
</noscript>

<style>
  #calendar.day .halachic_times .wrapper {
    display: none;
  }

  form.subscribe_box {
    display: none;
  }
</style>
<style>
  #new-campaign-ticker-wrapper ~ #header:not(.on-scroll) {
    margin-top: 100px;
  }
  @media (max-width: 1024px) {
    #new-campaign-ticker-wrapper ~ #header:not(.on-scroll) {
      margin-top: 160px;
    }
    .fs-ticker-heading-small {
      display: none;
    }
  }
  @media (max-width: 770px) {
    #new-campaign-ticker-wrapper ~ #header:not(.on-scroll) {
      margin-top: 170px;
    }
    body #new-campaign-ticker-wrapper .fs-ticker-container .fs-ticker-heading-container .fs-ticker-heading .fs-ticker-heading-large {
      font-size: 23px;
    }
    body #new-campaign-ticker-wrapper .fs-ticker-container .fs-ticker-campaign-info-container .fs-ticker-campaign-info {
      display: flex;
      align-items: stretch;
      flex-basis: 100%;
    }
    body #new-campaign-ticker-wrapper .fs-ticker-container .fs-ticker-goal-container {
      flex: 1;
      align-items: stretch;
    }
    body #new-campaign-ticker-wrapper .fs-ticker-container .fs-ticker-donate {
      display: flex;
      align-items: center;
    }
  }
</style>

<link href="https://webmk.co/sites/general/cdo-normalize.css" rel="stylesheet" />





<style>
:where(#co_content_container .co_body img) {
    height: auto;
}
.hp-table>:not(:first-child) .promo_slider .cycle-caption{ display: none !important;}

@media (max-width: 768px) {
.promo_slider .slide_wrapper {
    height: 75% !important;
}
#BodyContainer > div > div.g960 > div > div.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.g960.no_margin.g960.no_margin > div > div:nth-child(3) > div > div > div > div.slider > div.slides > div > a > img { background-size: 90% 100% !important;
}
.hp-table>:not(:first-child) .promo_slider .slider {
    height: 25vh !important;}
}
</style>




<script>
  !(function (f, b, e, v, n, t, s) {
    if (f.fbq) return;
    n = f.fbq = function () {
      n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments);
    };
    if (!f._fbq) f._fbq = n;
    n.push = n;
    n.loaded = !0;
    n.version = "2.0";
    n.queue = [];
    t = b.createElement(e);
    t.async = !0;
    t.src = v;
    s = b.getElementsByTagName(e)[0];
    s.parentNode.insertBefore(t, s);
  })(window, document, "script", "https://connect.facebook.net/en_US/fbevents.js");
  fbq("init", "2531238256890008");
  fbq("track", "PageView");
</script><script src="https://webmk.co/sites/westside/w-script.js"></script><script>
const isCampaignPage = window.location.pathname.includes(6449827);
if (isCampaignPage) {
    const addButton = () => {
        const modalButton = document.querySelector(".about-modal-btn");
        const reserveButton = `<div class="donate-button"><a class="donate-button-text" href="/dinner" style="display: block">Reserve for dinner</a></div>`;
        modalButton.insertAdjacentHTML("afterend", reserveButton);
    };
    document.addEventListener("DOMContentLoaded", addButton);
}
</script><script>
if (window.location.pathname.toLowerCase() === "/templates/articlecco_cdo/aid/6002444/jewish/chabad-hebrew-school.htm") {
    window.location.replace("https://chabadfamilyprograms.org/chs");
}
</script><title>
	Vayishlach 2019 - Chabad of the West Side
</title></head>
<body class="lang_en dir_ltr cco_body cco_templateless_page section_branch">
	
	
		<div width="100%" class="cco_templateless_template" style="z-index:100 !important;display:block !important;left:0px !important;top:0px !important;height:30px!important;width:100% !important;line-height:30px !important; position:relative !important; margin-bottom:0 !important; padding:0;text-indent: 25px;" align="Left"><a href="//www.ChabadWestside.org" style="display:block!important;font-size:14px !important;">&laquo; Back to&nbsp;Chabad of the West Side</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">

div#chabad_head .chabad_navigator_bar ul li a {

    color: #d2d2d2!important;}

.chabad_header { 
background-image:none !important;
background-color: white !important;} 

.cco_templateless_page #chabad_main_content {
background-image: none !important;}

.cco_templateless_template a {
    color: #fff;
    background-color: #00a79d !important;
}

.chabad_menu_content {
    background-color: #104098 !important;
}

#navigation li.parent a.parent, .sub_menu, .sub_menu .item {
    background-color: #104098 !important;
}
a.parent.arrow.selected {
    color: white !important;
}

#footerContainer, .footer {
 
    background-color: #00a79d !important;}

.bannerCta button {

    background: #104098 !important;
}

.chabad_header {
       height: 270px; !important;}.chabad_header .headerTitle {
  
    padding-top: 66px!important;}
</style>


<div id="chabad_body_page">
<div id="chabad_main_content">
<div id="chabad_head">

<div>
<div>
<div>
<div>

<div class="chabad_header">
<div class="headerTitle">
<span style="font-size: 48px;">Adult Education at Chabad</span></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">
<a href="/article.asp?aid=4461964" class="parent">Home</a>
|
</li>
<li class="item parent">
<a href="/article.asp?aid=2641272" class="parent">Daily Study</a>
</li>

</ul>
</div>
</div>

</div>
</div>
</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"><div id="content_page" class="content_page"><!-- END HEADER -->
			
			
			<div class="clearfix bh mobile-only align_right">ב"ה</div>
			
				<div class="master-content-wrapper " >
					

<header class="article-header cf ">
	
	
			<h1 class="article-header__title js-article-title js-page-title">Vayishlach 2019</h1>
		
			<div>
				
			</div>
		
</header>
				</div>
			
			<div class="body_wrapper clearfix co_body">
				<div class="" id="co_body_container">
					
					<div id="ContentBody">
						
						
							<div class="content-area-parent no_margin">
								
	<div id="cco_body">
		<div class="content  no_margin no_overflow" id="co_content_container">
			
			
	

	<article class="content js-content" itemscope itemtype="http://schema.org/Article">
	



<meta itemprop="mainEntityOfPage headline name" content="" />

<meta itemprop="image" content="" />


<meta itemprop="uploadDate" content="2019-12-12T10:49:45" />
<span itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
	<meta itemprop="name" content="Chabad of the West Side" />
	<meta itemprop="brand" content="Chabad of the West Side" />
	<span itemprop="logo" itemscope itemtype="http://schema.org/ImageObject">
		<meta itemprop="url" content="https://w2.chabad.org/media/images/777/OSjf7775136.png" />
		<meta itemprop="height" content="150" />
		<meta itemprop="width" content="150" />
	</span>
</span>
<meta itemprop="datePublished" content="2019-12-12T10:49:45" />
			<div itemprop="articleBody">
				<co:body xmlns:co="www1.chabadonline.com/alpha1" xmlns:ext="urn:xslt-extensions">
  <div class="co_body article-body cf">
<br type="_moz">
<div align="center">
<b>B”H</b></div>
<div align="center">
<b>MOONSHINE AT DAWN</b></div>
<div> </div>
<div>
<b>The Wrestling Match</b></div>
<div>One of the most enigmatic stories in the Torah tells of the time Jacob wrestled with a mysterious character, whom our Sages have identified as Esau’s guardian angel.  The angel intended to destroy Jacob because of the blessings he had appropriated from Esau.</div>
<div>When dawn broke the next day, after a long night of wrestling, with the angel unable to triumph, Jacob prevented the angel’s return to his celestial dwelling. The Torah then states, “When he saw that he could not overcome him… then he said: Let me go, for dawn has broken.” Jacob responded, “I will not let you go unless you bless me.” The angel proceeded to name him Israel to suggest, as Rashi says, that he justifiably received the blessings of the first born from his father Isaac, the root cause of Esau’s bitter contention with him.</div>
<div>Several questions come to mind:</div>
<div>First, what is the symbolic meaning of wrestling all night until dawn?</div>
<div>Second, why does the Torah say “when he [the angel] <b>saw</b> that he could not overcome him [Jacob]?” Why not simply state “When he could not overcome him.”</div>
<div>The following exposition is based on a 20<sup>th</sup> Century work, <i>Gevras Shimshon.</i></div>
<div> </div>
<div>
<b>The Dawn Paradox</b></div>
<div>Dawn is a time of the day that, in some instances, is still night because the sky is still quite dark at dawn. Yet, dawn represents the beginning of a new day in matters of Halacha.</div>
<div>The dispute between Jacob and Esau, channeled by Esau’s angel, concerned Jacob’s right to enjoy his father’s material blessings. In Esau’s mind, the birthright that he sold to Jacob related exclusively to his right to the spiritual legacy of Abraham and Isaac, not to their material wealth. And, he believed that the blessings Jacob received from his father were only to be reaped in the world-to-come.</div>
<div>In the Midrash, our Sages compare the nations of the world, who are represented by Esau, to the majestic and colossal Sun that shines brightly and is referred to in the Torah as “the great luminary.” The tiny Jewish nation, represented by Jacob, however, is likened to the Moon, which is referred to in the Torah as the “small luminary.” Jacob, likewise, is characterized as the “small one” (Amos 7:5).</div>
<div>Our Sages point out that one of the salient differences between our Sun and the Moon, besides their obviously mismatched sizes, is that while the Sun shines only during the day, the Moon can also be seen shining at dawn which, in some respects, is considered under Jewish law to be daytime.</div>
<div>The Midrash adds that this distinction was given to the Moon as compensation for its diminished size.</div>
<div>Naturally enough, this physical distinction has a symbolic meaning too.</div>
<div> </div>
<div>
<b>Esau and Jacob; The Sun and the Moon; This World and the World-to-Come</b></div>
<div>According to the Midrash, the Sun is a metaphor for this world and the Moon a metaphor for the world-to-come. This is consistent with the above citation from the Midrash that Esau is likened to the Sun and Jacob “the small one” is compared to the Moon.</div>
<div>Esau’s claim, therefore, was that in this world, when the Sun is shining, there is no room for Jacob, who is associated with the Moon and the world-to-come. Esau’s identification with the Sun totally eclipsed Jacob’s relationship with the Moon.</div>
<div>Jacob’s fortune, on the other hand, was reserved for the future when Esau’s fortune would no longer shine, when the Moon will come to dominate the sky.</div>
<div> </div>
<div>
<b>Championing Dawn</b></div>
<div>Jacob did not embrace this neat division of the two worlds reserved for Esau and himself. Jacob was convinced that the material blessings would devolve on him even during the day, i.e., in the present day and age. He believed that he was entitled to enjoy the best of both worlds.</div>
<div>While Jacob’s primary reward and prosperity will come in the future, he still felt entitled to lay claim to his material blessings in the present. Jacob’s claim was based on his metaphoric association with the Moon. The Moon is mainly intended for the night, but it also shines between dawn and sunrise. As stated above, Jewish law considers dawn to be the beginning of a new day despite the absence of sunlight. In times of difficulty, one may begin the <i>Shacharis-</i>morning prayer after dawn but before sunrise despite the fact that it is still quite dark.</div>
<div>Jacob, therefore, championed the period of dawn because it is that period which demonstrates the righteousness of his claim to both worlds. Whereas the Sun’s influence is reserved for the day, the Moon relates to both night and day. If Esau was entitled to material prosperity in this world, Jacob was entitled to prosperity in both worlds.</div>
<div> </div>
<div>
<b>Jacob’s Relationship With Material Blessings</b></div>
<div>The rationale for Jacob’s quest for material wealth was qualitatively different from Esau’s obsession with it.</div>
<div>Jacob’s unique approach to material blessings is signified by the period of dawn, which, as stated, is a composite of darkness and day.</div>
<div>The fact that Jewish law considers dawn legally to be daytime, notwithstanding the darkness that prevails then, suggests that the Moon [read: Jacob] is truly not about this world [read: the Sun] even when he is in this world. Jacob’s entire attachment to wealth in the present world was to enable him to make this world a dwelling place for G‑d, which serves as a “ticket” to the next world.</div>
<div> </div>
<div>
<b>The Wrestling Match: An Ideological Debate</b></div>
<div>This was the crux of the ideological wrestling match between Jacob and Esau’s angel. The angel wanted to wrestle all night to convince Jacob that by the time day arrived he would no longer have any power; he would be vanquished. This would ensure that Esau would rule the “day” [read: this world] and righteously claim all of its perks, exclusively. The angel, initially, did not appreciate that dawn is part of the day.</div>
<div>Jacob, on the other hand, knew that dawn was indeed the beginning of a new day despite the darkness and that he would still be in control.</div>
<div>This, then, is a deeper understanding of the Torah’s description of their wrestling match:</div>
<div>Their wrestling <b>all night</b> alludes to their ideological differences as to whether Jacob was justified in his appropriation of the material blessings. The angel argued that the Moon, the symbol of Jacob, only rules at night, i,e., in the next world, which was  Jacob’s only rightful domain. Jacob contested that idea and asserted that he was the rightful heir to the material blessings in this world as well.</div>
<div> </div>
<div>
<b>Dawned at Dawn</b></div>
<div>To buttress Jacob’s contention, the Torah continues:</div>
<div>“When dawn arrived and he saw that he could not prevail.” The angel <b>saw</b> the moon still shining at dawn, and it suddenly dawned on him (pun intended) that it the day had come. The Hebrew word for dawn, <i>alos shachar,</i> actually means “the ascendance of morning.”  As Rashi observes, the angel was pleading that he must be allowed to leave to recite the song associated with the morning.</div>
<div>When the angel conceded that dawn truly was day and that the Moon (Jacob) was still shining, Jacob asked him to confirm the blessings he had received from Isaac, with which request the angel promptly complied.</div>
<div>The lesson here is that when G‑d blesses us with material blessings, we must use them as vehicles to make this world transition into the Messianic Age.</div>
<div>Moreover, the symbolism of the Moon shining during the day is that, even before the Final Redemption, we must direct our thoughts to the world-to-come by living and behaving as if we were already living in that perfect world.</div>
<p> </p>
</div>
</co:body>
			</div>
			

			<div class="break_floats"></div>
			
	<div class="break_floats"></div>
	

<div class="content-footer">
	
	
	
	
		<div class="section-articles below-article clearfix" id="MoreInSection" data-list-name="more in this section">
			<h2 class="below-article__title">More in this section</h2>
			<div class="bs-container">
				<div class="bs-row">
					
		<div class="section-articles__column col-md-6 ">
			<ul class="small-links small-links--orange">
				
		<li class="small-links__item ">
			
			<a class="link_item" href="/templates/articlecco_cdo/aid/4589840/jewish/Vayeishev-2019.htm" data-aid="4589840">Vayeishev 2019</a>
		</li>
		
	
		<li class="small-links__item ">
			
			<a class="link_item" href="/templates/articlecco_cdo/aid/4613944/jewish/Vayechi-2020.htm" data-aid="4613944">Vayechi 2020</a>
		</li>
		
	
		<li class="small-links__item ">
			
			<a class="link_item" href="/templates/articlecco_cdo/aid/4613966/jewish/Vayigash-2020.htm" data-aid="4613966">Vayigash 2020</a>
		</li>
		
	
			</ul>
		</div>
	
		<div class="section-articles__column col-md-6 ">
			<ul class="small-links small-links--orange">
				
		<li class="small-links__item ">
			
			<a class="link_item" href="/templates/articlecco_cdo/aid/4613970/jewish/Mikeitz-2019.htm" data-aid="4613970">Mikeitz 2019</a>
		</li>
		
	
		<li class="small-links__item ">
			
			<a class="link_item" href="/templates/articlecco_cdo/aid/4620235/jewish/Shemot-2020.htm" data-aid="4620235">Shemot 2020</a>
		</li>
		
			<li class="small-links__item small-links__item--more">
				<a href="/article.asp?aid=66861" data-aid="66861">View All  &raquo;</a>
			</li>
		
	
			</ul>
		</div>
	
				</div>
			</div> 
		</div>
	
		

	
	
</div>
	</article>

		</div>
	</div>
</div>
						
						<div class="break_floats"></div>
						
					</div>
				</div>
				
				
				
			</div>
			
			<!-- BEGIN FOOTER --></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.chabadwestside.org%2ftemplates%2farticlecco_cdo%2faid%2f4580947%2fjewish%2fVayishlach-2019.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=Vayishlach+2019+-+Chabad+of+the+West+Side&amp;url=https%3a%2f%2fwww.chabadwestside.org%2ftemplates%2farticlecco_cdo%2faid%2f4580947%2fjewish%2fVayishlach-2019.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=Vayishlach+2019+-+Chabad+of+the+West+Side https%3a%2f%2fwww.chabadwestside.org%2ftemplates%2farticlecco_cdo%2faid%2f4580947%2fjewish%2fVayishlach-2019.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.chabadwestside.org%2ftemplates%2farticlecco_cdo%2faid%2f4580947%2fjewish%2fVayishlach-2019.htm%23utm_medium%3dpage_tools%26utm_content%3ddesktop%26utm_source%3dpinterest&amp;description=Vayishlach+2019+-+Chabad+of+the+West+Side">
				<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, 66861);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>170 W 97th Street | New York, NY 10025-6450 | 212-864-5010 | 501c3 EIN 11-2735027</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/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/multimedia/infolayer.js?v=ED1B8531"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/article/comments/reply-form-controller.js?v=DC70C970"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/custom/commentsloader.js?v=AD6AAB79"></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 of the West Side'}; Co.ArticleId     = '4580947';Co.SectionId     = 4462882;Co.PartnerSiteId = 0;Co.SiteId        = 168;Co.IsMobilePage  = false;Co.IsResponsive  = false;Co.DbDomain      = 'ChabadWestside.org';Co.LanguageCode  = '';Co.LoginStatus   = 'None';</script>
	
	












<script>
// This script applies specific CSS styles only when the user is on a designated URL.

// --- 1. Define the target URL ---
// The styles will only be added if the browser's current URL exactly matches this one.
const targetURL = 'https://www.chabadwestside.org/templates/articlecco_cdo/aid/4462882/jewish/Shul.htm';

// --- 2. Check if the current page is the target page ---
if (window.location.href === targetURL) {
    
    // --- 3. Combine all the CSS rules into a single string ---
    const styles = `
        .article_index_container .article_index.co_index .row .item:hover {
            transform: scale(1.05) !important;
            z-index: 10 !important;
        }
        .article_index_container .co_index.article_index .row .item .synopsis_icon {
            border-radius: 15px !important;
        }
        .article_index_container .article_index.co_index .row .item .title a:hover {
            background: unset !important;
        }
    `;

    // --- 4. Create a new <style> element ---
    const styleSheet = document.createElement("style");
    styleSheet.type = "text/css";
    styleSheet.innerText = styles;

    // --- 5. Add the new <style> element to the <head> of the document ---
    // This applies all the rules to the page.
    document.head.appendChild(styleSheet);
    
    console.log("Custom styles for Shul page have been applied.");

} else {
    console.log("Not on the target Shul page. Custom styles were not applied.");
}
</script><script>
    /* <-----------Upcoming Events---------> */
    // This script will only run on the exact homepage.
    if (window.location.pathname === '/' || window.location.pathname === '/default.aspx') {

        (function() {

            /**
             * Fetches and parses the events page HTML using promises.
             * @returns {Promise<Document | null>} A promise that resolves to a parsed HTML document or null on error.
             */
            function getEventsPage() {
                // Using a cache-busting parameter to ensure fresh data is fetched.
                const url = 'https://www.chabadwestside.org/templates/events.htm?t=' + new Date().getTime();
                return fetch(url)
                    .then(response => {
                        if (!response.ok) {
                            throw new Error(`HTTP error! status: ${response.status}`);
                        }
                        return response.text();
                    })
                    .then(htmlText => {
                        const parser = new DOMParser();
                        return parser.parseFromString(htmlText, 'text/html');
                    })
                    .catch(error => {
                        console.error("Error fetching events page:", error);
                        return null;
                    });
            }

            /**
             * A robust function to parse date strings like "Month Day, Year".
             * @param {string} dateStr - The date string (e.g., "July 29, 2025").
             * @returns {Date | null} A Date object or null if invalid.
             */
            function parseRobustDate(dateStr) {
                const months = {
                    january: 0,
                    february: 1,
                    march: 2,
                    april: 3,
                    may: 4,
                    june: 5,
                    july: 6,
                    august: 7,
                    september: 8,
                    october: 9,
                    november: 10,
                    december: 11
                };

                if (!dateStr) return null;

                // Clean the date string by removing commas and extra spaces.
                const cleanedStr = dateStr.replace(/,/g, '').trim().replace(/\s+/g, ' ');
                const parts = cleanedStr.split(' ');

                if (parts.length < 3) {
                    console.error("Date string could not be parsed into 3 parts:", `"${dateStr}"`, "->", `"${cleanedStr}"`);
                    return null;
                }

                const monthName = parts[0].toLowerCase();
                const day = parseInt(parts[1], 10);
                const year = parseInt(parts[2], 10);

                if (months.hasOwnProperty(monthName) && !isNaN(day) && !isNaN(year)) {
                    return new Date(year, months[monthName], day);
                } else {
                    console.error("Failed to create date from parts:", {
                        month: monthName,
                        day: day,
                        year: year
                    });
                    return null;
                }
            }
            
            /**
             * Parses a time string (e.g., "7:30pm") and applies it to a given date.
             */
            function parseTime(timeString, baseDate) {
                if (!timeString) return null;
                // Updated regex to handle uppercase AM/PM and potential missing space
                const timeMatch = timeString.toLowerCase().match(/(\d{1,2}):(\d{2})?\s*(am|pm)/);
                if (!timeMatch) return null;

                let hours = parseInt(timeMatch[1], 10);
                const minutes = timeMatch[2] ? parseInt(timeMatch[2], 10) : 0;
                const ampm = timeMatch[3];

                if (ampm === 'pm' && hours < 12) hours += 12;
                if (ampm === 'am' && hours === 12) hours = 0; // Midnight case

                const newDate = new Date(baseDate);
                newDate.setHours(hours, minutes, 0, 0);
                return newDate;
            }

            /**
             * Formats a Date object for Google Calendar links.
             */
            function formatGoogleDate(date) {
                if (!date) return '';
                return date.toISOString().replace(/-|:|\.\d{3}/g, '');
            }

            /**
             * Formats a date string like "Tuesday, July 29, 2025" to "TUESDAY JULY 29".
             * @param {string} dateStr - The raw date string from the event element.
             * @returns {string} The formatted date string.
             */
            function formatEventDate(dateStr) {
                if (!dateStr) return '';
                const parts = dateStr.split(','); // e.g., ["Tuesday", " July 29", " 2025"]
                if (parts.length < 2) return dateStr; // Fallback to original if format is unexpected
                // Combine Day (parts[0]) and Month Date (parts[1])
                return `${parts[0]}${parts[1]}`.trim().toUpperCase();
            }

            /**
             * The main function to create and inject the featured events section.
             */
            const runTransformation = () => {
                getEventsPage().then(eventsDocument => {
                    if (!eventsDocument) return;

                    const today = new Date();
                    today.setHours(0, 0, 0, 0);

                    const upcomingEvents = [];
                    // Select all date group containers
                    const allDateGroups = Array.from(eventsDocument.querySelectorAll('#calendar .list_item'));

                    for (const dateGroupEl of allDateGroups) {
                        // Stop looking for events if we already have 10
                        if (upcomingEvents.length >= 10) break;

                        const dateEl = dateGroupEl.querySelector('.date');
                        if (!dateEl) continue;

                        const dateText = dateEl.textContent.trim();
                        // Extract the part of the date string that parseRobustDate can handle (e.g., "August 2, 2025")
                        const parsableDateText = dateText.split(',').slice(1).join(',').trim();
                        const eventDate = parseRobustDate(parsableDateText);

                        // Check if the event is in the future or today
                        if (eventDate && eventDate >= today) {
                            // Find all individual events within this date group
                            const individualEventsInGroup = dateGroupEl.querySelectorAll('.category_item');
                            individualEventsInGroup.forEach(eventEl => {
                                // Add event to our list, but don't exceed 10
                                if (upcomingEvents.length < 10) {
                                    // Store the full date string on the element itself so we can retrieve it later
                                    eventEl.dataset.rawDate = dateText;
                                    // Store the date object (as string) for calendar links
                                    eventEl.dataset.eventDateObj = eventDate.toISOString();
                                    upcomingEvents.push(eventEl);
                                }
                            });
                        }
                    }
                    const featuredEvents = upcomingEvents;

                    if (featuredEvents.length === 0) {
                        console.log("No upcoming events found to display.");
                        return;
                    }

                    // Create a new 'div' element
                    const eventsSection = document.createElement('div');

                    // Set the class name for the element
                    eventsSection.className = 'injected-featured-events-section';

                    // Set the ID for the element
                    eventsSection.id = 'injected-upcoming-events-section';

                    eventsSection.innerHTML = `
                      <div class="injected-featured-events-header">
                        <h2>Upcoming Events</h2>
                        <p>Discover what's happening at Chabad Of The West Side.</p>
                      </div>
                    `;

                    const carouselContainer = document.createElement('div');
                    carouselContainer.className = 'injected-events-carousel-container';
                    const carouselWrapper = document.createElement('div');
                    carouselWrapper.className = 'injected-events-carousel-wrapper';

                    featuredEvents.forEach((eventEl) => {
                        const titleEl = eventEl.querySelector('.event_name');
                        const title = titleEl ? titleEl.textContent.trim() : 'Event Title';

                        // Retrieve the date from the dataset we attached earlier
                        const rawDate = eventEl.dataset.rawDate || '';
                        const formattedDate = formatEventDate(rawDate);
                        
                        // Retrieve the date object for calendar logic
                        const eventDateObj = new Date(eventEl.dataset.eventDateObj);

                        // Get the event time
                        const timeEl = eventEl.querySelector('.event_options > div');
                        let timeText = timeEl ? timeEl.textContent.trim().toUpperCase() : '';

                        // *** MODIFICATION: Add a space before AM/PM if it's missing ***
                        if (timeText) {
                            timeText = timeText.replace(/(\d)([AP]M)$/, '$1 $2');
                        }

                        // Combine date and time for the header
                        const cardHeader = timeText ? `${formattedDate} - ${timeText}` : formattedDate;

                        const descriptionEl = eventEl.querySelector('.event_wrapper > .event_info');
                        
                        // --- *** MODIFICATION: Get innerHTML to preserve paragraphs *** ---
                        const descriptionHTML = descriptionEl ? descriptionEl.innerHTML.trim() : '<p>Join us for a wonderful event.</p>';
                        // Get text-only description for calendar links
                        const descriptionText = descriptionEl ? descriptionEl.textContent.trim() : 'Join us for a wonderful event.';

                        const imageLinkEl = eventEl.querySelector('.more_info a');
                        const imageUrl = imageLinkEl ? imageLinkEl.href : `https://placehold.co/600x400/eee/ccc?text=Event+Image`;

                        // --- *** MODIFICATION: Add 5-digit ID check logic *** ---
                        let learnMoreUrl = '#';
                        const facebookLinkEl = eventEl.querySelector('a[href*="//www.facebook.com/events/"]');
                        if (facebookLinkEl) {
                            const fbHref = facebookLinkEl.href;
                            const match = fbHref.match(/events\/(\d+)/);
                            if (match && match[1]) {
                                const eventId = match[1];
                                if (/^\d{5}$/.test(eventId)) { // Check if ID is exactly 5 digits
                                    learnMoreUrl = `https://www.chabadwestside.org/tools/events/register_cdo/eventid/${eventId}`;
                                } else {
                                    // Original logic for other cases
                                    learnMoreUrl = `https://www.chabadwestside.org/templates/articlecco_cdo/aid/${eventId}`;
                                }
                            }
                        }

                        // --- *** MODIFICATION: Add Calendar Link Logic *** ---
                        let location = 'westside Chabad';
                        const locationEl = eventEl.querySelector('a[href*="maps.google.com"]');
                        if (locationEl) {
                            const tempDiv = document.createElement('div');
                            tempDiv.innerHTML = locationEl.innerHTML.replace(/<br\s*\/?>/gi, ' ');
                            location = tempDiv.textContent.replace(/\s+/g, ' ').trim();
                        }
                        
                        let googleCalLink = '';
                        if (timeText) {
                            const startTime = parseTime(timeText, eventDateObj);
                            if (startTime) {
                                const endTime = new Date(startTime.getTime() + 90 * 60000); // Assume 90 min duration
                                const googleDates = formatGoogleDate(startTime) + '/' + formatGoogleDate(endTime);
                                const params = new URLSearchParams({
                                    action: 'TEMPLATE',
                                    text: title,
                                    dates: googleDates,
                                    details: descriptionText,
                                    location: location,
                                });
                                googleCalLink = `https://www.google.com/calendar/render?${params.toString()}`;
                            }
                        }

                        const calendarLinkEl = eventEl.querySelector('a[href*="eventexport.asp"]');
                        const icsLink = calendarLinkEl ? `https://www.chabadwestside.org${calendarLinkEl.getAttribute('href')}` : null;
                        // --- *** END MODIFICATION *** ---


                        const card = document.createElement('div');
                        card.className = 'injected-event-card';
                        // Use the new cardHeader variable
                        card.innerHTML = `
                          <div class="event-card-header">${cardHeader}</div>
                          <div class="event-card-image">
                              <img src="${imageUrl}" alt="${title}" onerror="this.onerror=null;this.src='https://placehold.co/600x400/eee/ccc?text=Image+Not+Found';">
                          </div>
                          <div class="event-card-body">
                              <h3>${title.toUpperCase()}</h3>
                              <!-- *** MODIFICATION: Use a div to hold the description HTML *** -->
                              <div class="event-description-content">${descriptionHTML}</div>
                              
                              <!-- *** MODIFICATION: Create ONE button container *** -->
                              <div class="event-card-buttons-container">
                                <a href="${learnMoreUrl}" class="event-card-button">Learn More →</a>
                                ${googleCalLink ? `<a href="${googleCalLink}" target="_blank" class="event-card-calendar-button">Add to Google Calendar</a>` : ''}
                                ${icsLink ? `<a href="${icsLink}" class="event-card-calendar-button">Add to Apple/Outlook</a>` : ''}
                              </div>
                          </div>
                        `;
                        carouselWrapper.appendChild(card);
                    });

                    // Add the "View All Events" card at the end
                    const viewAllCard = document.createElement('a');
                    viewAllCard.className = 'injected-event-card view-all-card';
                    // --- *** MODIFICATION: Update "View All" URL *** ---
                    viewAllCard.href = 'https://www.chabadwestside.org/templates/articlecco_cdo/aid/7032786/jewish/Upcoming-Events.htm';
                    viewAllCard.innerHTML = `
                      <div class="view-all-content">
                        <h3>View All</h3>
                        <p>Upcoming Events</p>
                        <span class="view-all-arrow">→</span>
                      </div>
                    `;
                    carouselWrapper.appendChild(viewAllCard);


                    carouselContainer.appendChild(carouselWrapper);
                    eventsSection.appendChild(carouselContainer);

                    const swipeHint = document.createElement('div');
                    swipeHint.className = 'mobile-swipe-hint';
                    swipeHint.innerHTML = '<span>Swipe for more events</span> <span class="arrow">→</span>';
                    eventsSection.appendChild(swipeHint);

                    if (featuredEvents.length > 3) {
                        const prevButton = document.createElement('button');
                        prevButton.className = 'events-carousel-arrow prev';
                        prevButton.innerHTML = '❮';

                        const nextButton = document.createElement('button');
                        nextButton.className = 'events-carousel-arrow next';
                        nextButton.innerHTML = '❯';

                        carouselContainer.appendChild(prevButton);
                        carouselContainer.appendChild(nextButton);

                        let currentIndex = 0;
                        const itemsToShowDesktop = 3;
                        const totalItems = carouselWrapper.children.length;

                        const updateCarousel = () => {
                            if (carouselWrapper.children.length === 0) return;
                            const cardWidth = carouselWrapper.children[0].offsetWidth;
                            const gap = 30;
                            const totalMove = (cardWidth + gap) * currentIndex;
                            carouselWrapper.style.transform = `translateX(-${totalMove}px)`;

                            prevButton.disabled = currentIndex === 0;
                            nextButton.disabled = currentIndex >= totalItems - itemsToShowDesktop;
                        };

                        prevButton.addEventListener('click', () => {
                            if (currentIndex > 0) {
                                currentIndex--;
                                updateCarousel();
                            }
                        });

                        nextButton.addEventListener('click', () => {
                            if (currentIndex < totalItems - itemsToShowDesktop) {
                                currentIndex++;
                                updateCarousel();
                            }
                        });

                        updateCarousel();
                        // Recalculate on resize to handle responsive changes
                        window.addEventListener('resize', updateCarousel);
                    }

                    // --- *** MODIFICATION: Use a more stable selector *** ---
                    // Find the "Mailing List" widget to insert *before* it.
                    const mailingListElement = document.querySelector('div.widget-4.message.custom.feed');
                    if (mailingListElement) {
                        // Find the parent ".hp-row" container for the mailing list
                        const targetRow = mailingListElement.closest('.hp-row');
                        if (targetRow && targetRow.parentElement) {
                            // Insert the new events section *before* the mailing list row
                            targetRow.parentElement.insertBefore(eventsSection, targetRow);
                        } else {
                            console.error("Could not find parent '.hp-row' for mailing list. Appending to body as a fallback.");
                            document.body.appendChild(eventsSection);
                        }
                    } else {
                        console.error("Target element 'div.widget-4.message.custom.feed' (mailing list) not found. Appending to body as a fallback.");
                        document.body.appendChild(eventsSection);
                    }
                    // --- *** END MODIFICATION *** ---
                });
            };

            const injectCSS = () => {
                const style = document.createElement('style');
                style.textContent = `
                    @import url('https://fonts.googleapis.com/css2?family=Raleway:wght@400;700;900&display=swap');

                    .injected-featured-events-section { padding: 60px 20px; background-color: #f0f2f5; font-family: 'Raleway', sans-serif; box-sizing: border-box; }
                    .injected-featured-events-header { text-align: center; margin-bottom: 40px; max-width: 600px; margin-left: auto; margin-right: auto; }
                    .injected-featured-events-header h2 { font-size: 36px; font-weight: 900; color: #2F3C4D; text-transform: uppercase; letter-spacing: 2px; margin-bottom: 10px; font-family: 'Raleway'; }
                    .injected-featured-events-header p { font-size: 16px; color: #666; line-height: 1.6; }
                    .injected-events-carousel-container { position: relative; max-width: 1200px; margin: 0 auto; overflow: hidden; }
                    .injected-events-carousel-wrapper { display: flex; gap: 30px; transition: transform 0.5s ease-in-out; }
                    .injected-event-card { flex: 0 0 calc(33.333% - 20px); background: white; border-radius: 10px; overflow: hidden; box-shadow: 0 8px 25px rgba(0,0,0,0.08); box-sizing: border-box; display: flex; flex-direction: column; }
                    .event-card-header { padding: 8px 15px; font-weight: 700; font-size: 12px; color: #777; background: #f9f9f9; border-bottom: 1px solid #eee; text-align: center; white-space: nowrap; }
                    .event-card-image img { width: 100%; height: 200px; object-fit: cover; display: block; background-color: #eee; }
                    .event-card-body { padding: 25px; flex-grow: 1; display: flex; flex-direction: column; }
                    .event-card-body h3 { font-size: 16px; font-weight: 700; color: #333; margin: 0 0 10px; height: 48px; overflow: hidden; }
                    
                    /* --- *** MODIFICATION: Replaced .event-card-body p with this block *** --- */
                    .event-description-content {
                        font-size: 15px;
                        color: #666;
                        line-height: 1.6;
                        margin: 0 0 20px;
                        flex-grow: 1;
                        /* Removed overflow: hidden to allow text to wrap and grow */
                    }
                    /* This styles any paragraphs *inside* the description */
                    .event-description-content p, .event-description-content div {
                        margin-bottom: 1em; /* Adds spacing between paragraphs */
                    }
                    .event-description-content p:last-child, .event-description-content div:last-child {
                        margin-bottom: 0; /* No margin on the very last paragraph */
                    }
                    /* --- *** END MODIFICATION *** --- */

                    /* --- *** MODIFICATION: Updated main button style *** --- */
                    .event-card-button { 
                        display: inline-block; 
                        background-color: #b99362; 
                        color: white; 
                        padding: 10px 20px; 
                        border-radius: 5px; 
                        text-decoration: none; 
                        font-weight: 800; 
                        transition: background-color 0.2s, border-color 0.2s; 
                        font-size: 13.88px; 
                        line-height: 140%; 
                        border: 1px solid #b99362;
                        text-align: center;
                    }
                    .event-card-button:hover { 
                        background-color: #a38258; 
                        border-color: #a38258;
                    }
                    
                    /* --- *** MODIFICATION: Add styles for button container & calendar buttons *** --- */
                    .event-card-buttons-container {
                        display: flex;
                        flex-wrap: wrap;
                        gap: 10px;
                        align-items: center;
                        margin-top: auto; /* Pushes the container to the bottom */
                        padding-top: 15px;
                        border-top: 1px solid #eee;
                    }
                    .event-card-calendar-button {
                        padding: 10px 20px;
                        border-radius: 5px;
                        text-align: center;
                        cursor: pointer;
                        transition: background-color 0.3s ease, border-color 0.3s ease;
                        text-decoration: none !important;
                        display: inline-block;
                        font-size: 13.88px;
                        font-weight: 800;
                        line-height: 140%;
                        color: rgb(47, 60, 77);
                        background-color: transparent;
                        border: 1px solid #ddd;
                        box-sizing: border-box;
                    }
                    .event-card-calendar-button:hover {
                       background-color: #f7f7f7;
                    }
                    /* --- *** END MODIFICATION *** --- */

                    .events-carousel-arrow { position: absolute; top: 50%; transform: translateY(-50%); background-color: rgba(255, 255, 255, 0.9); border: none; border-radius: 50%; width: 44px; height: 44px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 22px; color: #333; z-index: 10; transition: all 0.2s; }
                    .events-carousel-arrow:hover { background-color: white; transform: translateY(-50%) scale(1.05); }
                    .events-carousel-arrow:disabled { opacity: 0.3; cursor: not-allowed; }
                    .events-carousel-arrow.prev { left: 0px; }
                    .events-carousel-arrow.next { right: 0px; }

                    /* Styles for the 'View All' card */
                    .view-all-card { display: flex; align-items: center; justify-content: center; text-align: center; text-decoration: none; background-color: #e8ebee; transition: background-color 0.3s, box-shadow 0.3s; }
                    .view-all-card:hover { background-color: #dbe0e6; box-shadow: 0 12px 30px rgba(0,0,0,0.12); }
                    .view-all-card .view-all-content { display: flex; flex-direction: column; justify-content: center; align-items: center; }
                    .view-all-card .view-all-content h3, .view-all-card .view-all-content p { height: auto; overflow: visible; margin: 0; }
                    .view-all-card .view-all-content h3 { font-size: 24px; font-weight: 900; color: #2F3C4D; margin-bottom: 5px; text-transform: uppercase; }
                    .view-all-card .view-all-content p { font-size: 16px; color: #666; margin-bottom: 15px; }
                    .view-all-card .view-all-arrow { font-size: 36px; font-weight: bold; color: #b99362; line-height: 1; }
                    
                    .mobile-swipe-hint { display: none; text-align: center; margin-top: 20px; font-family: 'Raleway', sans-serif; color: #555; font-size: 14px; align-items: center; justify-content: center; gap: 8px; }
                    .mobile-swipe-hint .arrow { font-size: 18px; line-height: 1; font-weight: bold; }

                    @media (max-width: 1200px) {
                      .events-carousel-arrow.prev { left: 15px; }
                      .events-carousel-arrow.next { right: 15px; }
                    }
                    @media (max-width: 900px) {
                      .injected-event-card { flex-basis: calc(50% - 15px); }
                    }
                    
                    @media (max-width: 600px) {
                      .injected-featured-events-header h2 { font-size: 28px; }
                      .injected-events-carousel-container { overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; -ms-overflow-style: none; padding: 0 20px; margin: 0 -20px; }
                      .injected-events-carousel-container::-webkit-scrollbar { display: none; }
                      .injected-events-carousel-wrapper { width: max-content; transform: none !important; padding-right: 20px; }
                      .injected-event-card { flex-basis: 80vw; scroll-snap-align: start; }
                      .events-carousel-arrow { display: none; }
                      .mobile-swipe-hint { display: flex; }
                      
                      /* --- *** MODIFICATION: Stack buttons on mobile *** --- */
                      .event-card-buttons-container {
                          flex-direction: column;
                          align-items: stretch;
                      }
                      .event-card-button, .event-card-calendar-button {
                          width: 100%;
                      }
                    }
                  `;
                document.head.appendChild(style);
            };

            // Wait for the DOM to be ready before running the script
            if (document.readyState === 'complete' || document.readyState === 'interactive') {
                runTransformation();
            } else {
                window.addEventListener('DOMContentLoaded', runTransformation);
            }

            injectCSS();

        })();
    }
</script><script>
document.addEventListener('DOMContentLoaded', function() {
    /**
     * This script adds a new top-level tab for "Visitor Information"
     * to the main navigation menu, placing it before the "About" tab.
     */

    // 1. Find the "About" tab, which we'll use as a reference point for insertion.
    const aboutTab = document.querySelector('td.co_menu_item[aid="4461917"]');

    // 2. Check if the "About" tab exists to ensure we're on the right page.
    if (aboutTab && aboutTab.parentNode) {
        const menuRow = aboutTab.parentNode; // This is the <tr> containing all the tabs.

        // 3. Define the properties for the new tab.
        const tabLink = "/templates/articlecco_cdo/aid/2252272/jewish/Visitor-Information.htm";
        const tabText = "Visitor Information";
        const tabAid = "2252272";

        // 4. Create the new table cell (<td>) for the "Visitor Information" tab.
        const visitorTab = document.createElement('td');
        visitorTab.className = "co_menu_item";
        visitorTab.setAttribute('aid', tabAid);
        visitorTab.setAttribute('data-menu-level', '1');
        visitorTab.setAttribute('onmouseover', "this.className += ' hover';");
        visitorTab.setAttribute('onmouseout', "this.className = this.className.replace(/\\shover/gi, '');");
        visitorTab.style.visibility = 'visible';

        // 5. Populate the new tab with the necessary HTML structure for a simple link.
        // This structure mimics the other simple tabs in the navigation bar.
        visitorTab.innerHTML = `
            <div class="co_menu_content">
                <div class="co_submenu_container" style="width:auto;display:none;clip:rect(auto auto 0px auto);">
                    <div class="wrapper">
                        <div class="column_wrapper clearfix" style="height:100%;"></div>
                        <div class="break_floats"></div>
                    </div>
                </div>
            </div>
            <span class="parent">
                <div>
                    <a href="${tabLink}" class="parent">${tabText}</a>
                </div>
            </span>
            <a href="${tabLink}" class="bg_extension js-parent-menu-link" data-aid="${tabAid}"></a>
        `;

        // 6. Create the divider that will appear after the new tab.
        const divider = document.createElement('td');
        divider.className = "co_menu_item_divider";
        divider.style.visibility = 'visible';
        divider.innerHTML = '<img src="https://w2.chabad.org/images/global/spacer.gif" width="2" height="1" border="0">';

        // 7. Insert the new tab and the new divider into the menu row right before the "About" tab.
        menuRow.insertBefore(visitorTab, aboutTab);
        menuRow.insertBefore(divider, aboutTab);

    } else {
        // Log a message for debugging if the "About" tab isn't found.
        console.log("Could not find the 'About' menu tab to insert the new tab.");
    }
});
</script>
</body>
</html>