/*
This file provides:
	getHolidayInfo()

This file uses: 
	typeOfYear()
	
To do:  Set Saturday mincha at 1 pm and Saturday night late (e.g., 9pm for tisha b'av in 2005) when fast day is Sunday.  
	
All contents are Copyright 2005, 2008, 2011 by Jordan Lee Wagner.  All rights reserved.  
*/


var HOLIDAY=0; var OMER = 1; var TORAH=2; var MAFTIR=3; var HAFTARAH=4; var PORTION = 5;  var YIZKOR = 6; var MINCHATIME = 7 ;
// indices into holidayInfo array: 
// holidayInfo[HOLIDAY] is the description the day, as it would appear in a calendar.
// holidayInfo[TORAH], holidayInfo[MAFTIR], and holidayInfo[HAFTARAH] identify the psukim of the Readings.  
// holidayInfo[PORTION] is the name of the portion.

function getHolidayInfo(Hyr,Hmon,HdateOfMon)
{
	var hy=Hyr; var hm=Hmon; var hd=HdateOfMon ;
	
	// initialize outputs: 
	var holiday = ""; 		var omerDay  = 0; 		var torah   = "" ; 
	var maftir  = "" ;  	var haftarah = "" ; 	var portion = "UNCHECKED" ; 
	var holidayInfo = new Array(6) ;  var yizkor = "no" ;  minchaTime = "" ; 
	// holidayInfo = ["", 0, "", "", "", "UNCHECKED", "no", "" ] ;
	
	
	// collect needed information:
	var halakimAndDayNumber = Array(2) ; 
	halakimAndDayNumber = getHalakimAndDayNumberOfHdate(hy, hm, hd) ;
//document.write("<BR>halakimAndDayNumber[0]=" + halakimAndDayNumber[0] + " &nbsp; halakimAndDayNumber[1]=" + halakimAndDayNumber[1]); 
	var halakim =  halakimAndDayNumber[HALAKIM] ;  
//document.write("<BR>halakim =" + halakim) ; 				
	var DayOfWeek = Math.floor(halakim/HALAKIM_PER_DAY) % 7 ;
//document.write( " &nbsp; DayOfWeek=" + DayOfWeek) ; 
	var DayNumber =  halakimAndDayNumber[DAYNUMBER] ;						
	var typeOfYear = new Array(2); typeOfYear = getTypeOfYear(Hyr);  	
	// Which of the 14 types of calendar-year.   (Defined by length in days, and weekday of Rosh Hashanah.)

	// Set omerDay for all dates in Iyar
	if (Hmon==IYAR) omerDay = HdateOfMon + 15 ;
	
var switchTest = Hmon*100 + HdateOfMon ;  
//document.write(" &nbsp; switchTest=" + switchTest ); 
// alert(" &nbsp; switchTest=" + switchTest ); 
switch (switchTest) {
	
// Days when nothing ever happens; neither Shabbat nor holiday: 			
// Tishrei
	case 7:	//
	case 11:	//
	case 25:	//
	case 28:	//  
// Cheshvan 
	case 102:	//
	case 105:	//
	case 107:	//
	case 109:	//
	case 112:	// 
	case 114:   //
	case 116:	//
	case 119:	//
	case 121:	//
	case 123:	//
	case 126:	//
	case 128:	//
// Kislev
	case 208:	//
	case 215:	//
	case 222:	//
// Tevet	
	case 308:	//
	case 315:	//
	case 317:	//
	case 322:	//
	case 324:	//
// Shevat	 
	case 402:	//
	case 407:	//
	case 409:	//
	case 416:	//
	case 421:	//
	case 423:	//
	case 428:	//
// Adar I (leap year)	
	case 502:	//
	case 505:	//
	case 507:	//
	case 509:	//
	case 512:	//
	case 514:	//
	case 516:	//
	case 519:	//
	case 521:	//
	case 523:	//
	case 526:	//
	case 528:	//
// Adar II or Adar 
	case 603:	//
	case 605:	//
	case 610:	//
	case 612:	//
	case 617:	//
	case 619:	//
	case 621:	//
	case 624:	//
	case 626:	//
	case 628:	//
// Nisan 
	case 702:	//
	case 704:	//
	case 706:	//
	case 709:	// 
	case 711:	//
	case 713:	//
// Iyar	
	//  case 802:	//  moved by JLW on 8/9/08 because of the possibility of an accelerated Yom Hazikaron
	case 807:	//
	case 809:	//
	case 811:	//
//	case 814:	//Pesach Sheini
	case 816:	//
	case 821:	//
	case 823:	//
	case 825:	//
// Sivan 
	case 908:	//
	case 910:	//
	case 913:	//
	case 915:	//
	case 917:	//
	case 920:	//
	case 922:	//
	case 924:	//
	case 927:	// 
// Tammuz
	case 1004:	//
	case 1006:	//
	case 1008:	//
	case 1011:  //
	case 1013:	//
	case 1015:	//
	case 1020:	//
	case 1022:	//
	case 1025:	//
	case 1027:	//
// Av 
	case 1103:	//
	case 1105:	//
	case 1107:	//
	case 1112:  //
	case 1114:	//
	case 1117:	//
	case 1119:	//
	case 1121:	//
	case 1124:	//
	case 1126:  //
	case 1128:	// 
// Elul
	case 1203:	//
	case 1205:	// 
	case 1208:	// 
	case 1210:	// 
	case 1212:	//
	case 1215:	//
	case 1217:	//
	case 1219:	//
	case 1222:	//
	case 1224:	//
	case 1226:	portion = "NOTHING" ; break; 


// Dates that are, or may be, holidays:
		
//Tishrei

//Rosh Hashanah	
	case 1: 	holiday = "Rosh Hashanah (Day 1)" ;  if (DayOfWeek==SAT) { holiday = holiday + " & Shabbat" ; } 
			torah="Bereishit Ch.21"; maftir="Bamidbar 29:1-6"; haftarah="I Sam. 1:1-20" ; portion = "Rosh Hashanah 1" ; 
			break;
	case 2: 	holiday = "Rosh Hashanah (Day 2)" ; portion = "Rosh Hashanah 2" ; 
			torah="Bereishit Ch.22"; maftir="Bamidbar 29:1-6"; haftarah="Jeremiah 31:1-19" ;
			break;
			
//Fast of Gedaliah			
	case 3: 	// If RH started on Thursday, then Fast of Gedaliah falls on Shabbat, so fast day is postponed.
			if (typeOfYear[WEEKDAY]==THU) {
				// Toady is Shabbat. Fast of Gedaliah is postponed until tomorrow
/*				if (typeOfYear[LENGTH]==354) {     // October 1, 2011 was Tishrei 3 & Shabbat; and the portion was Haazinu!!!!  JLW
					portion = "Vayeilech" ;  holiday = "Shabbat Vayeilech" ; 
					torah = "Devarim 31:1-30" ; haftarah = "Isaiah 55:6-56:8" ; 
				} else {
*/					portion = "Haazinu" ;  holiday = "Shabbat Haazinu" ; 
					torah = "Devarim 32:1-52" ; haftarah = "II Sam. 22:1-51" ; 
//			}
			} else {
				holiday = "Fast of Gedaliah" ; portion="Fast of Gedaliah"; 
				torah = "Shemot 32:11-14; 34:1-10 (shacharit & mincha)"; 
				maftir = "Isaiah 55:6-56:8 (mincha only)" ;
			}
			break; 	
	case 4: 	// If RH started on Thursday, then Fast of Gedaliah falls on Shabbat, so fast day is postponed.
			if (typeOfYear[WEEKDAY]==THU) {
				holiday = "Fast of Gedaliah" ;  portion = "Fast of Gedaliah" ; 
				torah = "Shemot 32:11-14; 34:1-10 (shacharit & mincha)" ; 
				maftir = "Isaiah 55:6-56:8 (mincha only)" ;
			} else {
				// fast was not postponed
				portion = "NOTHING" ; 
				// Tishrei 4 is never on shabbat 
			}
			break; 

	case 5: 	//	
	case 6:  	if (DayOfWeek==SAT)  { portion="Vayeilech"; torah="Devarim 31:1-30";
		 	haftarah="Isaiah 55:6-56:8"; holiday = "Shabbat Vayeilech"; } else { portion = "NOTHING" ; }
			break;
			
	case 7:	//
	case 8:	//
	case 11:	//
	case 12:	//
	case 13:	if (DayOfWeek==SAT)  { portion="Haazinu"; torah="Devarim 32:1-52";
		 	haftarah="II Sam. 22:1-51"; holiday = "Shabbat Haazinu"; } else { portion = "NOTHING" ; }
			break; 
	
	
//Yom Kippur	
	case 9: 	holiday = "Erev Yom Kippur" ;  portion = "NOTHING" ;		break;
	case 10: 	holiday = "Yom Kippur" ;   yizkor = "yes" ;		
			torah = "Vayikra Ch.16 (morning); Vayikra Ch.18 (afternoon)" ;  maftir = "Bamidbar 29:7-11 (morning only)" ; 
			haftarah = "Isaiah 57:14-58:14 (morning); Book of Jonah (afternoon)" ;  portion = "Yom Kippur" ; 
			if (DayOfWeek==SAT) { holiday = holiday + " & Shabbat" ; } 
			break;
			
//Sukkot	
	case 14: 	holiday = "Erev Sukkot" ;  portion = "NOTHING" ;   break;
	
	case 15: 	holiday = "Sukkot (Day 1)" ;  portion = "Sukkot" ; 
			torah = "Vayikra 22:26-23:44" ;  maftir = "Bamidbar 29:12-16" ;  haftarah = "Zechariah 14:1-21" ; 
			if (DayOfWeek==SAT) { holiday = "Shabbat, " + holiday } 
			break;
			
	case 16: 	holiday = "Sukkot (Day 2)" ; portion = "Sukkot" ; 		
			torah = "Vayikra 22:26-23:44";  maftir = "Bamidbar 29:12-16"; haftarah = "I Kings 8:2-21" ;
			break;
			
	case 17: 	holiday = "Sukkot Chol HaMoed 1" ; torah="Bamidbar 29:17-25"; 
			if ( typeOfYear[WEEKDAY]==THU )  {
				holiday = "Shabbat Chol HaMoed Sukkot" ; 
				maftir = "Bamidbar 29:17-22" ;  torah = "Shemot 33:12-34:26" ;  
				haftarah = "Ezekiel 38:18-39:16<BR>Megillat Kohelet" ; 
			}
			portion = holiday ; 
			break;
			
	case 18: 	holiday = "Sukkot Chol HaMoed 2" ;  torah="Bamidbar 29:20-28" ; portion=holiday; 
			// Contrary to the erroneous note in the ArtScroll Chumash's 
			// table of Torah-Readings, Chol HaMoed 2 is never Shabbat!!!
			break;
			
	case 19: 	holiday = "Sukkot Chol HaMoed 3" ;  torah="Bamidbar 29:23-31" ; 
			if ( typeOfYear[WEEKDAY]==TUE )  {
				holiday = "Shabbat Chol HaMoed Sukkot" ; 
				maftir = "Bamidbar 29:23-28" ;  torah = "Shemot 33:12-34:26" ;  
				haftarah = "Ezekiel 38:18-39:16<BR>Book of Kohelet (Ecclesiates)" ; 
			}
			portion = holiday ; 			
			break;
			
	case 20: 	holiday = "Sukkot Chol HaMoed 4" ;  torah="Bamidbar 29:26-34" ;
			if ( typeOfYear[WEEKDAY]==MON )  {
				holiday = "Shabbat Chol HaMoed Sukkot" ; 
				maftir = "Bamidbar 29:26-31" ;  torah = "Shemot 33:12-34:26" ;  
				haftarah = "Ezekiel 38:18-39:16<BR>Megillat Kohelet" ; 
			}
			portion = holiday ; 			
			break;
			
	case 21: 	holiday = "Hoshanah Rabbah" ; portion = holiday ; 	
			torah="Bamidbar 29:26-34" ;
			break;
			
	case 22: 	holiday = "Shemini Atzeret" ; portion = "Shemini Atzeret" ;    yizkor = "yes" ;
			if (DayOfWeek==SAT) { holiday = holiday + " & Shabbat" ; } 	
			torah="Devarim 14:22-16:17"; maftir="Bamidbar 29:35-30:1"; haftarah="I Kings 8:54-9:1" ;
			if ( typeOfYear[WEEKDAY]==SAT )  {
				// There is no Shabbat Chol HaMoed Sukkot, so chant Kohelet here.  
				haftarah = haftarah // + "<BR>Megillat Kohelet" ; 
				portion = portion + " (& Kohelet)" ; 
			}			
			break;
			
	case 23: 	holiday = "Simchat Torah" ; portion = holiday ; 		
			torah="Devarim 33:1-34:12; Bereishit 1:1-2:3"; 
			maftir="Bamidbar 29:35-30:01"; haftarah="Joshua 1:1-18" ;
			break;

	case 24:	
	case 26:	
	case 27:	if (DayOfWeek==SAT)  { 
				portion="Bereishit"; torah="Bereishit 1:1-6:8";
		 		haftarah="Isaiah 42:5-43:10, S: 42:5-21"; holiday = "Shabbat Bereishit, Mevarchim"; 
			} else { portion = "NOTHING" ; }
			break;



//Cheshvan	
	case 29: 	holiday = "Erev Rosh Chodesh" ;  portion = "NOTHING" ;
			if ( Tishrei29onShabbat(Hyr) ) {
				holiday = "Shabbat Bereishit, " + holiday
				haftarah = "I Sam. 20:18-42" ;
				torah = "Bereishit 1:1-6:8" ; portion = "Bereishit" ; 
			} 
			break;
			
	case 30: 	holiday = "Rosh Chodesh Cheshvan (Day 1)" ;  
			torah = "Bamidbar 28:1-15" ; portion="Rosh Chodesh" ;	break;
			// Tishrei 30 is never on Shabbat.
			
	case 101: 	holiday = "Rosh Chodesh Cheshvan (Day 2)" ;  portion = "Rosh Chodesh" ; 
			if ( Cheshvan1and29onShabbat(Hyr) ) 
			{
				// Shabbat Rosh Chodesh
				holiday = "Shabbat Noach, " + holiday ;  
				portion = "Noach" ; torah = "Bereishit 6:9-11:32" ; 
				maftir = "Bamidbar 28:9-15" ; haftarah = "Isaiah 66:1-24" ;
			} else {
				// weekday Rosh Chodesh
				torah = "Bamidbar 28:1-15" ; portion = "Rosh Chodesh" ; 
			}
			break;

	case 103: 	
	case 104: 
	case 106: 	if (DayOfWeek==SAT)  { portion="Noach"; torah="Bereishit 6:9-11:32";
		 	haftarah="Isaiah 54:1-55:5; S: 54:1-10"; 
			holiday = "Shabbat Noach"; }  else { portion = "NOTHING" ; }
			break;
 
 	case 108:
	case 110: 
	case 111: 
	case 113: 	if (DayOfWeek==SAT)  { portion="Lech L'cha"; torah="Bereishit 12:1-17:27";
		 	haftarah="Isaiah 40:27-41:16"; 
			holiday = "Shabbat Lech L'cha"; } else { portion = "NOTHING" ; }
			break;
 
 	case 115: 
	case 117:
	case 118:
	case 120:  	if (DayOfWeek==SAT)  { portion="Vayeira"; torah="Bereishit 18:1-22:24";
		 	haftarah="II Kings 4:1-37; S: 4:1-23"; 
			holiday = "Shabbat Vayeira"; } else { portion = "NOTHING" ; }
			break;
 	
	case 124:	
	case 125:
	case 127: 	temp = "Mevarchim" ; 	
	case 122:	if (DayOfWeek==SAT)  { 
				portion="Chaye Sarah"; torah="Bereishit 23:1-25:18";
		 		haftarah="I Kings 1:1-31"; 
				holiday = "Shabbat Chaye Sarah"; 
				if (temp=="Mevarchim") { holiday = holiday + ", Mevarchim" ; } 
			} else { portion = "NOTHING" ; }
			break;
	
	
			
//Kislev
	case 129: 	holiday = "Erev Rosh Chodesh" ;  portion = "NOTHING" ;
			if ( Cheshvan1and29onShabbat(Hyr) ) { 
				holiday = "Shabbat Toldot, " + holiday ;
				haftarah = "I Sam. 20:18-42" ;  
				portion = "Toldot" ;  torah = "Bereishit 25:19-28:9" ; 
			} 
			break;
				
	case 130: 	holiday = "Rosh Chodesh Kislev (Day 1)" ; portion="Rosh Chodesh"; torah = "Bamidbar 28:1-15" ; break; // year is abundant
			// Cheshvan 30 is never on Shabbat.
			
	case 201:   // if year is "abundant" then 2 days of Rosh Chodesh
			if ( (typeOfYear[LENGTH]==355) || (typeOfYear[LENGTH]==385) ) {
				holiday = "Rosh Chodesh Kislev (Day 2)" ; 
			} else {
				holiday = "Rosh Chodesh Kislev" ; 
			}
			torah = "Bamidbar 28:1-15" ;  portion = "Rosh Chodesh" ;  break; 
			// Kislev 1 is never on Shabbat.
			
	case 202:
	case 203:
	case 204:
	case 205: 	if (DayOfWeek==SAT)  { 
				portion="Toldot"; torah="Bereishit 25:19-28:9";
		 		haftarah="Malachi 1:1-27"; holiday = "Shabbat Toldot"; 
			} else { portion = "NOTHING" ; }
			break;
			
	case 206: 
	case 207:
	case 209: 
	case 210:
	case 211:
	case 212: 	if (DayOfWeek==SAT)  { 
				portion="Vayeitzei"; torah="Bereishit 28:10-32:3";
		 		haftarah="Hosea 12:13-14:10; 14:7 or Micah 7:18.  S: Hosea 11:7-12:12"; 
				holiday = "Shabbat Vayeitzei"; 
			} else { portion = "NOTHING" ; }
			break;
	
	case 213:
	case 214:
	case 216:
	case 217:
	case 218:
	case 219:	if (DayOfWeek==SAT)  { 
				portion="Vayishlach"; torah="Bereishit 32:4-36:43";
		 		//haftarah="Hosea 11:7-12:12 (S: Ovadiah 1:1-21)"; 
	 			haftarah="Ovadiah 1:1-21"; 
				holiday = "Shabbat Vayishlach"; 
			} else { portion = "NOTHING" ; }
			break;	
		
	case 223:	temp = "Mevarchim" ; 
	case 221: 
	case 220:	if (DayOfWeek==SAT)  { 
				portion="Vayeishev"; torah="Bereishit 37:1-40:23";
		 		haftarah="Amos 2:6-3:8"; holiday = "Shabbat Vayeishev"; 
				if (temp=="Mevarchim") { holiday = holiday + ", Mevarchim" ; } 
			} else { portion = "NOTHING" ; }
			break;
					
					
//Chanukah			
	case 224: 	holiday = "Erev Chanukah (first light)" ;
			if (DayOfWeek==SAT) { 
				portion="Vayeishev" ; torah = "Bereishit 37:1-40:23" ; haftarah="Amos 2:6-3:8" ; 
				holiday = "Shabbat Vayeishev, Mevarchim, " + holiday ; 
			}
			break;
	
	case 225: 	holiday = "Chanukah (Day 1)" ; torah = "Bamidbar 7:1-17"; portion = "Chanukah (1)";			
			if ( 	( (typeOfYear[WEEKDAY]==SAT) && (typeOfYear[LENGTH]==355) )  ||
				( (typeOfYear[WEEKDAY]==SAT) && (typeOfYear[LENGTH]==385) )	  )
			{
				// Shabbat I of Chanukah
				holiday = "Shabbat Vayeishev, Mevarchim, " + holiday ;
				haftarah = "Zechariah 2:14-4:7" ;  maftir = "Bamidbar 7:1-17" ;  
				torah = "Bereishit 37:1-40:23" ;  portion = "Vayeishev" ;
			}
			break;
			
	case 226: 	holiday = "Chanukah (Day 2)" ; torah = "Bamidbar 7:18-29"; portion = "Chanukah (2)";
			if ( 	( (typeOfYear[WEEKDAY]==SAT) && (typeOfYear[LENGTH]==353) )  ||
				( (typeOfYear[WEEKDAY]==SAT) && (typeOfYear[LENGTH]==383) )	  )
			{
				// Shabbat I of Chanukah
				holiday = "Shabbat Vayeishev, Mevarchim, " + holiday ;
				haftarah = "Zechariah 2:14-4:7" ;  maftir = "Bamidbar 7:18-23" ;  
				torah = "Bereishit 37:1-40:23" ;   portion = "Vayeishev" ;
			}
			break;
			
	case 227: 	holiday = "Chanukah (Day 3)" ; torah = "Bamidbar 7:24-35"; portion = "Chanukah (3)";
			if ( 	( (typeOfYear[WEEKDAY]==THU) && (typeOfYear[LENGTH]==355) )  ||
				( (typeOfYear[WEEKDAY]==THU) && (typeOfYear[LENGTH]==385) )	  )
			{
			// Shabbat I of Chanukah
			holiday = "Shabbat Mikeitz, Mevarchim, " + holiday ;
			haftarah = "Zechariah 2:14-4:7" ;  maftir = "Bamidbar 7:24-29" ;  
			torah = "Bereishit 41:1-44:17" ;  portion = "Mikeitz" ;
			}
			break; 
			
	case 228: 	holiday = "Chanukah (Day 4)" ; torah = "Bamidbar 7:30-41"; portion = "Chanukah (4)";	
			if ( 	( (typeOfYear[WEEKDAY]==THU) && (typeOfYear[LENGTH]==354) )  ||
				( (typeOfYear[WEEKDAY]==THU) && (typeOfYear[LENGTH]==383) )	  )
			{
			// Shabbat I of Chanukah
			holiday = "Shabbat Mikeitz, Mevarchim, " + holiday ;
			haftarah = "Zechariah 2:14-4:7" ;  maftir = "Bamidbar 7:30-35" ;  
			torah = "Bereishit 41:1-44:17" ;  portion = "Mikeitz" ;
			}
			break;
			
	
	case 229: 	holiday = "Chanukah (Day 5)<BR>Erev Rosh Chodesh" ; 
			// Kislev 29 is never on Shabbat
			torah = "Bamidbar 7:36-47"; portion = "Chanukah (5)" ;   break;
			
	case 230: 	holiday = "Chanukah (Day 6)<BR>Rosh Chodesh Tevet (Day 1)" ; 
			torah = "Bamidbar 28:1-15; 7:42-47"; portion = "Chanukah (6), Rosh Chodesh" ; 					
			if ( 	( (typeOfYear[WEEKDAY]==TUE) && (typeOfYear[LENGTH]==354) )  ||
				( (typeOfYear[WEEKDAY]==MON) && (typeOfYear[LENGTH]==355) )  ||
				( (typeOfYear[WEEKDAY]==TUE) && (typeOfYear[LENGTH]==384) )  ||
				( (typeOfYear[WEEKDAY]==MON) && (typeOfYear[LENGTH]==385) )	  )
			{
				// Shabbat Rosh Chodesh of Chanukah
				holiday = "Shabbat Mikeitz, Rosh Chodesh Tevet, Chanukah (Day 6)" ; 
				haftarah = "Zechariah 2:14-4:7" ;  maftir = "Bamidbar 7:42-47" ;  
				torah = "Bereishit 41:1-44:17 (in 6 aliyot); Bamidbar 28:9-15 (as 7th aliyah)" ; 
				portion = "Mikeitz, Rosh Chodesh, Chanukah" ;
			}
			break;
				
//Tevet	
	case 301:  if ( (typeOfYear[LENGTH]==353) || (typeOfYear[LENGTH]==383) ) {
			// if 29-day Kislev
				holiday = "Chanukah (Day 6), Rosh Chodesh Tevet" ; 
				torah = "Bamidbar 28:1-15; 7:42-47";  
				portion = "Chanukah (6), Rosh Chodesh" ; 
			} else {
			// if 30-day Kislev
				holiday = "Chanukah (7), Rosh Chodesh Tevet (2)" ; 
				torah = "Bamidbar 28:1-15; 7:48-53"; 
				portion = "Chanukah (7), Rosh Chodesh" ; 
			}
			break;    // Tevet 1 is never on Shabbat. 
			
	case 302:  if ( (typeOfYear[LENGTH]==353) || (typeOfYear[LENGTH]==383) ) {
				holiday = "Chanukah (Day 7)" ; torah = "Bamidbar 7:48-59" ; 
				portion = "Chanukah (7)" ;				
				if (  ( (typeOfYear[WEEKDAY]==MON) && (typeOfYear[LENGTH]==353) )  ||
					( (typeOfYear[WEEKDAY]==MON) && (typeOfYear[LENGTH]==383) )   )
				{
					// This is Shabbat I of Chanukah : Day 7 ; mikeitz
					holiday = "Shabbat Mikeitz, Chanukah (Day 7)" ; 
					haftarah = "Zechariah 2:14-4:7" ;  maftir = "Bamidbar 7:48-53" ;  
					torah = "Bereishit 41:1-44:17" ; portion = "Mikeitz" ;					
				}				
			} else {
				holiday = "Chanukah (Day 8)" ; torah = "Bamidbar 7:54-8:4"; 
				portion = "Chanukah (8)" ; 				
				if (  ( (typeOfYear[WEEKDAY]==SAT) && (typeOfYear[LENGTH]==355) )  ||
					( (typeOfYear[WEEKDAY]==SAT) && (typeOfYear[LENGTH]==385) )   )
				{
					// This is Shabbat II of Chanukah ; Day 8 ; mikeitz
					holiday = "Shabbat Mikeitz, Chanukah (Day 8)" ; 
					haftarah = "I Kings 7:40-50" ;  maftir = "Bamidbar 7:54-8:4" ;  
					torah = "Bereishit 41:1-44:17" ; portion = "Mikeitz" ;										
				}
			}
			break; 
			
	case 303:  if ( (typeOfYear[LENGTH]==353) || (typeOfYear[LENGTH]==383) ) {
				holiday = "Chanukah (Day 8)" ; torah = "Bamidbar 7:54-8:4"; 
				portion = "Chanukah (8)" ; 
			} // else holiday remains = "none"
			break;   // Tevet 3 is never on Shabbat.
			
			
	case 304:   if (DayOfWeek==SAT && typeOfYear[WEEKDAY]==SAT) { 
				torah = "Bereishit 41:1-44:17" ; holiday = "Shabbat Mikeitz"; 
				portion = "Mikeitz" ; 
				haftarah="I Kings 3:15-4:1"; break;}   // no break after! 			
	case 305:  	
	case 306:
	case 307:
	case 309:	if (DayOfWeek==SAT)  { 
				portion="Vayigash"; torah="Bereishit 44:18-47:27";
		 		haftarah="Ezekiel 37:15-28"; holiday = "Shabbat Vayigash"; 
			} else { portion = "NOTHING" ; }
			break;

	
	case 311:   if (DayOfWeek==SAT && typeOfYear[WEEKDAY]==SAT) { 
				portion="Vayigash"; torah="Bereishit 44:18-47:27";
		 		haftarah="Ezekiel 37:15-28"; holiday = "Shabbat Vayigash"; break;}   // no break after! 
	case 312:
	case 313:
	case 314:
	case 316:	if (DayOfWeek==SAT)  { 
				portion="Vayechi"; torah="Bereishit 47:28-50:26";
		 		haftarah="I Kings 2:1-12"; holiday = "Shabbat Vayechi"; 
			} else { portion = "NOTHING" ; }
			break;

			
	case 318:   if (DayOfWeek==SAT && typeOfYear[WEEKDAY]==SAT) { 
				portion="Vayechi"; torah="Bereishit 47:28-50:26";
		 		haftarah="I Kings 2:1-12"; holiday = "Shabbat Vayechi"; break;}   // no break after! 
	case 319:
	case 320:
	case 321:
	case 323: 	if (DayOfWeek==SAT)  { 
				portion="Shemot"; torah="Shemot 1:1-6:1";
		 		haftarah="Isaiah 27:6-28:13, 29:22-3 (S: Jeremiah 1:1-2:3)"; 
				holiday = "Shabbat Shemot"; 
				if (switchTest==323) { holiday = holiday + ", Mevarchim" ; }
			} else { portion = "NOTHING" ; }
			break;
				
	
	case 325:   if (DayOfWeek==SAT && typeOfYear[WEEKDAY]==SAT) { 
				portion="Shemot"; torah="Shemot 1:1-6:1";
		 		haftarah="Isaiah 27:6-28:13, 29:22-3 (S: Jeremiah 1:1-2:3)"; 
				holiday = "Shabbat Shemot, Mevarchim"; break;}   // no break after! 
	case 326:
	case 327:
	case 328: 	if (DayOfWeek==SAT)  { 
				portion="Va'eira"; torah="Bereishit Shemot 6:2-9:35";
		 		haftarah="Ezekiel 28:25-29:21"; 
				holiday = "Shabbat Va'eira, Mevarchim"; 
			} else { portion = "NOTHING" ; }
			break;
	
		
//Fast of Tevet			
	case 310: 	holiday = "Fast of the Tenth of Tevet" ; 	// never conflicts with Shabbat, so never moves. 
			torah = "Shemot 32:11-14; 34:1-10" ; haftarah = "Isaiah 55:6-56:8"; 
			portion="Fast of Tevet";
			break; 
			
//Shevat			
	case 329: 	holiday = "Erev Rosh Chodesh" ;  portion = "NOTHING";  break;
			//Tevet 29 is never on Shabbat.
			
	case 401: 	holiday = "Rosh Chodesh Shevat" ; 		
			if ( Shevat1and29onShabbat(Hyr) ) 
			{
				// Shabbat Rosh Chodesh
				portion = "Va'eira, Rosh Chodesh" ; torah = "Shemot 6:2-9:35" ;  
				holiday = "Shabbat Va'eira, " + holiday ; 
				maftir = "Bamidbar 28:9-15" ; haftarah = "Isaiah 66:1-24" ;
			} else {
				// weekday Rosh Chodesh
				torah = "Bamidbar 28:1-15" ;  portion = "Rosh Chodesh" ; 
			}
			break;
			
	
	case 403:   if (DayOfWeek==SAT && typeOfYear[WEEKDAY]==SAT) { 
				portion="Va'eira"; torah="Bereishit Shemot 6:2-9:35";
		 		haftarah="Ezekiel 28:25-29:21"; 
				holiday = "Shabbat Va'eira"; break;}   // no break after! 
	case 404: 	
	case 405:
	case 406:
	case 408:	if (DayOfWeek==SAT)  { 
				portion="Bo"; torah="Shemot 10:1-13:16";
		 		haftarah="Jeremiah 46:13-28"; 
				holiday = "Shabbat Bo"; 
			} else { portion = "NOTHING" ; }
			break;
			
	
	case 410:   if (DayOfWeek==SAT && typeOfYear[WEEKDAY]==SAT) { 
				portion="Bo"; torah="Shemot 10:1-13:16";
		 		haftarah="Jeremiah 46:13-28"; 
				holiday = "Shabbat Bo"; break;}   // no break after! 
	case 411:
	case 412:
	case 413:	if (DayOfWeek==SAT)  { 
				portion = "Beshalach" ;  torah = "Shemot 13:17-17:16" ;  
				haftarah = "Judges 4:4-5:31 (Sephardim: 5:1-31)"; 
				holiday = "Shabbat Beshalach" ; 
			} else { portion = "NOTHING" ; }
			break; 
			
				
	case 414: 	holiday = "Erev Tu B'Shevat" ;  portion =" NOTHING" ;  break;
	
	case 415: 	holiday = "Tu b'Shevat" ; 			
			if (DayOfWeek==SAT) { 
				portion = "Beshalach" ;  torah = "Shemot 13:17:17:16" ;  
				haftarah = "Judges 4:4-5:31 (Sephardim: 5:1-31)";
				holiday = "Shabbat Beshalach, " + holiday ;
			} else { portion = "NOTHING" ; } 
			break;
			
	
	case 417:   if (DayOfWeek==SAT && typeOfYear[WEEKDAY]==SAT) { 
				portion = "Beshalach" ;  torah = "Shemot 13:17-17:16" ;  
				haftarah = "Judges 4:4-5:31 (Sephardim: 5:1-31)"; 
				holiday = "Shabbat Beshalach" ; break;}   // no break after! 
	case 418:
	case 419:
	case 420:
	case 422: 	if (DayOfWeek==SAT)  { 
				portion = "Yitro" ;  torah = "Shemot 18:1-20:26" ;  
				haftarah = "Isaiah 6:1-7:6, 9:5-6;  S: Isaiah 6:1-13"; 
				holiday = "Shabbat Yitro"; 
			} else { portion = "NOTHING" ; }
			break;
			
	
	case 424:   if (DayOfWeek==SAT && typeOfYear[WEEKDAY]==SAT) { 
				portion = "Yitro" ;  torah = "Shemot 18:1-20:26" ;  
				haftarah = "Isaiah 6:1-7:6, 9:5-6;  S: Isaiah 6:1-13"; 
				holiday = "Shabbat Yitro, Mevarchim"; break;}   // no break after! 
	case 425:
	case 426:
	case 427: 	if (DayOfWeek==SAT)  { 
				portion = "Mishpatim" ;  torah = "Shemot 21:1-24:18" ;  
				haftarah = "Jeremiah 34:8-22, 33:25-6"; 
				holiday = "Shabbat Mishpatim, Mevarchim"; 
			} else { portion = "NOTHING" ; }
			break;


//Adar I in a leap year:
	case 429: 	holiday = "Erev Rosh Chodesh" ;  portion = "NOTHING" ; 			
			if ( Shevat1and29onShabbat(Hyr) ) {
				haftarah = "I Sam. 20:18-42" ; holiday = "Shabbat Mishpatim, " + holiday ; 
				portion = "Mishpatim, Erev Rosh Chodesh";  torah = "Shemot 21:1-24:18" ; 
			}
			break;	
		
	case 430: 	if (typeOfYear[LENGTH]>380) {
			// if it's a leap year
				holiday = "Rosh Chodesh Adar I (Day 1)" ;
			} else {
				holiday = "Rosh Chodesh Adar (Day 1)" ;
			} 
			torah = "Bamidbar 28:1-15" ;  portion = "Rosh Chodesh" ;  break; 
			// Shevat 30 is never on Shabbat.
				
	case 501: 	holiday = "Rosh Chodesh Adar I (Day 2)" ; 
			if ( Iadar1and29onShabbat(Hyr) ) 
			{
				// Shabbat Rosh Chodesh
				maftir = "Bamidbar 28:9-15" ; haftarah = "Isaiah 66:1-24" ;
				if (typeOfYear[LENGTH]==383) {
					portion="Mishpatim"; torah="Shemot 21:1-24:18"; 
					holiday="Shabbat Mishpatim, " + holiday ;
				} else { 
					portion="Terumah"; torah="Shemot 25:1-27:19"; 
					holiday = "Shabbat Terumah, " + holiday ; 
				}
			} else {
				// weekday Rosh Chodesh
				torah = "Bamidbar 28:1-15" ; portion="Rosh Chodesh" ; 
			}
			break;
			
			
	case 503:
	case 504:
	case 506: 	if (DayOfWeek==SAT)  { 
				portion = "Terumah" ;  torah = "Shemot 25:1-27:19" ;  
				haftarah = "I Kings 5:26-6:13"; 
				holiday = "Shabbat Terumah"; 
			} else { portion = "NOTHING" ; }
			break;
			
	
	case 508:   if (DayOfWeek==SAT && typeOfYear[WEEKDAY]==THU && typeOfYear[LENGTH]==383) { 
				portion = "Terumah" ;  torah = "Shemot 25:1-27:19" ;  
				haftarah = "I Kings 5:26-6:13"; 
				holiday = "Shabbat Terumah"; break; 
				} 	// no break after!
	case 510:
	case 511:
	case 513: 	if (DayOfWeek==SAT)  { 
				portion = "Tetzaveh" ;  torah = "Shemot 21:1-24:18" ;  
				haftarah = "Jeremiah 34:8-22, 33:25-6"; 
				holiday = "Shabbat Tetzaveh"; 
			} else { portion = "NOTHING" ; }
			break;

	
	case 515: 	if ( DayOfWeek==SAT && typeOfYear[WEEKDAY]==THU && typeOfYear[LENGTH]==383 )  { 
				portion = "Tetzaveh" ;  torah = "Shemot 21:1-24:18" ;  
				haftarah = "Jeremiah 34:8-22, 33:25-6"; 
				holiday = "Shabbat Tetzaveh"; break; } 	// no break after!
	case 517:
	case 518:
	case 520: 	if (DayOfWeek==SAT)  { 
				portion = "Ki Tisa" ;  torah = "Shemot 30:11-34:35" ;  
				haftarah = "I Kings 18:1-39 (S: 18:20-39)"; 
				holiday = "Shabbat Ki Tisa"; 
			} else { portion = "NOTHING" ; }
			break;
			
			
	case 522: 	if ( DayOfWeek==SAT && typeOfYear[WEEKDAY]==THU  && typeOfYear[LENGTH]==383 )  { 
				portion = "Ki Tisa" ;  torah = "Shemot 30:11-34:35" ;  
				haftarah = "I Kings 18:1-39 (S: 18:20-39)"; 
				holiday = "Shabbat Ki Tisa"; break; } 	// no break after!
	case 524:
	case 525:
	case 527: 	if (DayOfWeek==SAT)  { 
				portion = "Vayechel" ;  torah = "Shemot 35:1-38:20" ;  
				haftarah = "I Kings 7:40-50 (S: 7:13-26)"; 
				holiday = "Shabbat Vayechel"; 
				if (switchTest!=22) { holiday = holiday + ", Mevarchim" ; } 
			} else { portion = "NOTHING" ; }
			break;

	
	
//Ordinary Adar, 
//or Adar II in a leap year:
	case 529: 	holiday = "Erev Rosh Chodesh" ;  portion = "NOTHING"; 
			if ( Iadar1and29onShabbat(Hyr) ) {
				haftarah = "I Sam. 20:18-42" ; 		
				if (typeOfYear[LENGTH]==383) {
					portion="Vayakhel, Erev Rosh Chodesh"; torah="Shemot 35:1-38:20"; 
					holiday="Shabbat Vayakhel, " + holiday ;
				} else { 
					portion="Pekudei, Erev Rosh Chodesh"; torah="Shemot 38:21-40:38"; 
					holiday = "Shabbat Pekudei, " + holiday ; 
				}
			} 				
			break;	
			
	case 530: 	holiday = "Rosh Chodesh Adar II (Day 1)" ;  
			torah = "Bamidbar 28:1-15" ;  portion="Rosh Chodesh"; break;
			// I Adar 30 is never on a Shabbat. 
			
	case 601: 	if (typeOfYear[LENGTH]>380) {
			// it's a leap year
				holiday = "Rosh Chodesh Adar II (Day 2)" ;
				if (DayOfWeek==SAT) {
					maftir = "Bamidbar 28:9-15" ; haftarah = "Isaiah 66:1-24" ;
					holiday = "Shabbat Pekudei, " + holiday ; 
					portion="Pekudei"; torah="Shemot 38:21-40:38"; 				
				} else { 
					torah = "Bamidbar 28:1-15" ; portion="Rosh Chodesh"; 
				} 
			} else {
			// not a leap year
				holiday = "Rosh Chodesh Adar (Day 2)" ;
				if (DayOfWeek==SAT) { 
					maftir = "Bamidbar 28:9-15" ; haftarah = "Isaiah 66:1-24" ;
					if (typeOfYear[LENGTH]==353) {
						portion="Mishpatim"; torah="Shemot 21:1-24:18"; 
						holiday="Shabbat Mishpatim, " + holiday ;
					} else {
						portion="Terumah"; torah="Shemot 25:1-27:19"; 
						holiday = "Shabbat Terumah, " + holiday ; 
					} 
				} else { 
					torah = "Bamidbar 28:1-15" ; portion="Rosh Chodesh"; 
				} 
			}
			break ; 
			
			
	case 623:
	case 625:
	case 627: 	temp = "Mevarchim" ; 	
	case 602:
	case 604:
	case 606: 
	case 608:
	case 609:
	case 615:
	case 616:
	case 618:
	case 620:
	case 622:
// diagnostic JLW
// document.write(" &nbsp; switchTest=" + switchTest ); 
// alert(" &nbsp; switchTest=" + switchTest ); 			
	
			if ( DayOfWeek != SAT ) { portion = "NOTHING" ;  break;  }
			// It must be Shabbat: 
			newTest = switchTest; 
			if (typeOfYear[LENGTH]==353 && typeOfYear[WEEKDAY]==SAT) { newTest-=2; }
			if (typeOfYear[LENGTH]==385 && typeOfYear[WEEKDAY]==THU) { newTest+=2; }
			switch ( newTest ) {
// diagnostic JLW
// document.write(" &nbsp; switchTest=" + switchTest ); 
// alert(" &nbsp; switchTest=" + switchTest ); 			
				case 602:
				case 604:
				case 606: 	
				        if ( !isLeapYear(Hyr) ) { 
							portion = "Terumah" ;  torah = "Shemot 25:1-27:19" ;  
							haftarah = "I Kings 5:26-6:13"; 
							holiday = "Shabbat Terumah";  break;  
					   	} 
						// It must be Shabbat and leap year: 
						portion="Pekudei"; torah="Shemot 38:21-40:38"; 
						holiday = "Shabbat Pekudei" ; 
						haftarah="I Kings 7:51-8:21 (S: 7:40-50)";  
						break; 
						
				case 608:
				case 609:
				case 613: 	
				        if ( !isLeapYear(Hyr) ) { 
							portion = "Tetzaveh" ;  torah = "Shemot 21:1-24:18" ;  
							haftarah = "Jeremiah 34:8-22, 33:25-6"; 
							holiday = "Shabbat Tetzaveh";  break;  
					   	} 
						// It must be Shabbat and leap year: 
						holiday = "Shabbat Vayikra, " ;     // BUG?: On 3/12/2011, no shabbat displayed on the shul calendar.  The switchdate = 606 & the newswitch=608.
						haftarah = "Isaiah 43:21-44:23"; 
						portion="Vayikra" ;  torah="Vayikra 1:1-5:26";
						break; 
// BUG?!: On 3/12/2011, no "shabbat vayikra" displayed on the shul calendar.  The switchTest = 606 & the newTest=608.
										
				case 615:
				case 616:
				case 618:
				case 620: 	
				        if ( !isLeapYear(Hyr) ) { 
							portion = "Ki Tisa" ;  torah = "Shemot 30:11-34:35" ;  
							haftarah = "I Kings 18:1-39 (S: 18:20-39)"; 
							holiday = "Shabbat Ki Tisa";  break;  
					   	} 
						// It must be Shabbat and leap year: 
						holiday = "Shabbat Tzav";  portion = "Tzav"; 
						torah="Vayikra 6:1-8:36"; haftarah="Jeremiah 7:21-8:3,9:22-23"; 
						break; 
							
				case 622:
				case 623:
				case 625:
				case 627: 	
				        if ( !isLeapYear(Hyr) ) { 
							if (typeOfYear[LENGTH]==355 && typeOfYear[WEEKDAY]==THU) {
								portion = "Vayechel" ;  torah = "Shemot 35:1-38:20" ;  
								haftarah = "I Kings 7:40-50 (S: 7:13-26)"; 
								holiday = "Shabbat Vayechel";
								break;
							} 
							portion = "Vayechel-Pekudei" ;  torah = "Shemot 35:1-40:38" ;  
							haftarah = "I Kings 7:51-8:21 (S: 7:40-50)"; 
							holiday = "Shabbat Vayechel-Pekudei";
							break;  
					   	} 
						// It must be Shabbat and leap year: 
						portion = "Shemini" ; torah = "Vayikra 9:1-11:47";
						haftarah = "II Sam. 6:1-7:17 (S:  6:1-19)";  
						holiday = "Shabbat Shemini" ;
						break; 
										
				case 629: 
				    	holiday = "Shabbat Tazria"; haftarah="II Kings 4:42-5:19";
						portion="Tazria"; torah="Vayikra 12:1-13:59"; 
						break; 
						
			} // end of switch newtest
			if (DayOfWeek==SAT && temp=="Mevarchim") { holiday = holiday + ", Mevarchim" ; }   
			break; 
	
			
//Purim
	case 611: 	if (  FastOfEstherOnShabbat(Hyr)   )  {  
				// If the Fast of Esther falls on Shabbat, accelerate it to Thursday, 11 Adar II.
				holiday = "The Fast of Esther" ;  portion = "Fast of Esther"; 
				torah = "Shemot 32:11-14; 34:1-10 (shacharit & mincha)";  
				haftarah = "Isaiah 55:6-56:8 (mincha only)" ;
			} else {
				// the fast is not accelerated
				if (DayOfWeek==SAT && typeOfYear[LENGTH]>375) {
					holiday = "Shabbat Vayikra"  ;  portion = "Vayikra" ; 
					torah = "Vayikra 1:1-5:26" ;  haftarah = "Isaiah 43:21-44:23" ; }
				if (DayOfWeek==SAT && typeOfYear[LENGTH]<375) {
					holiday = "Shabbat Tetzaveh" ; portion="Tetzaveh"; 
					torah="Shemot 27:20-30:10"; haftarah="Yechezkiel 43:10-27"; }
			} 
			break; 
				
	case 613:  if (  FastOfEstherOnShabbat(Hyr)   )	{  
				// it's shabbat  (fast was accelerated to Thursday, 11 Adar II)
				holiday = "Erev Purim"; 
				switch (typeOfYear[LENGTH]) {
					case 385: 	holiday = "Shabbat Tzav, "+holiday;  portion = "Tzav"; 
							torah="Vayikra 6:1-8:36"; haftarah="Jeremiah 7:21-8:3,9:22-23"; 
							break;
					case 383: 	holiday = "Shabbat Vayikra, " + holiday ;  portion = "Vayikra" ; 
							torah = "Vayikra 1:1-5:26" ;  haftarah = "Isaiah 43:21-44:23" ; 
							break;
					default:  	holiday = "Shabbat Tetzaveh, " + holiday; portion="Tetzaveh"; 
							torah="Shemot 27:20-30:10"; haftarah="Yechezkiel 43:10-27"; 
				}				
			} else {
				// not shabbat
				holiday = "The Fast of Esther (Erev Purim)"  ; portion = "Fast of Esther" ; 
				torah = "Shemot 32:11-14; 34:1-10 (shacharit & mincha)" ;  
				haftarah = "Isaiah 55:6-56:8 (mincha only)" ;
			} 
			break; 
				
	case 614: 	holiday = "Purim" ; torah = "Shemot 17:8-16";  portion = "Purim" ; 	break;
	
	
// Nisan:
	case 629: 	holiday = "Erev Rosh Chodesh" ;  portion = "NOTHING" ; 
			if ( IIadar1and29onShabbat(Hyr) ) { 
				haftarah = "I Sam. 20:18-42" ;
				switch (typeOfYear[LENGTH]) {
					case 383: 	holiday = "Shabbat Tazria, " + holiday;  		
							portion="Tazria" ;  
							torah="Vayikra 12:1-13:59" ;  	break;
				 	case 355: 	holiday = "Shabbat Pekudei, " + holiday ;  	
							portion="Pekudei";  
							torah="Shemot 38:21-40:38"; 	break; 	
					case 353:  	holiday = "Shabbat Vayakhel-Pekudei, " + holiday ;  
							portion="Vayakhel-Pekudei" ;  
							torah="Shemot 35:1-40:38"; 	break;
				}
			} 
			break;	
			
	case 701: 	holiday = "Rosh Chodesh Nisan (The New Year for Kings)" ; 
			if ( Nisan1and29onShabbat(Hyr) ) {
			 	// Shabbat Rosh Chodesh
				maftir = "Bamidbar 28:9-15" ; haftarah = "Isaiah 66:1-24" ;
				if (typeOfYear[LENGTH]>375)  {
					holiday = "Shabbat Tazria, "+holiday; 
					portion="Tazria, Rosh Chodesh"; torah="Vayikra 12:1-13:59"; 
				} else {
					holiday = "Shabbat Vayikra, " + holiday ;  
					portion="Vayikra, Rosh Chodesh" ;  torah="Vayikra 1:1-5:26"; 
				}
			} else {
				// weekday Rosh Chodesh
				torah = "Bamidbar 28:1-15" ; portion = "Rosh Chodesh"; 
			}
			break;


	case 703:
	case 705: 	
	case 707:   if ( DayOfWeek!=SAT ) { portion = "NOTHING" ;  break;  }
			// It must be Shabbat: 
			if ( !isLeapYear(Hyr) ) { 
				holiday = "Shabbat Vayikra" ;  haftarah = "Isaiah 43:21-44:23"; 
				portion="Vayikra" ;  torah="Vayikra 1:1-5:26";  break;  
			} 
			// It must be Shabbat and leap year: 
			if (typeOfYear[WEEKDAY]==THU) {
				portion = "Metzora" ;   torah = "Vayikra 14:1-15:33";  
				holiday = "Shabbat Metzora" ; haftarah="II Kings 7:3-20";
			} else {
				holiday = "Shabbat Tazria"; haftarah="II Kings 4:42-5:19";
				portion="Tazria"; torah="Vayikra 12:1-13:59"; 
			} 
			break; 
		
			
// Shabbat HaGadol, Fast of the Firstborn, Erev Pesach: 

	case 714: 	holiday = ", Erev Pesach (first seder)" ;  
			if ( DayOfWeek!=SAT ) { holiday = "Fast of the Firstborn" + holiday ; }				
	// case 712: 	if (  FirstbornFastOnShabbat(Hyr)   )  { holiday = "Fast of the Firstborn" ; }
	case 712: 	if (  FirstbornFastOnShabbat(Hyr)  &&  ( DayOfWeek!=SAT ) )  { holiday = "Fast of the Firstborn" ; }			
	case 708:
	case 710: 	if ( DayOfWeek!=SAT ) { portion = "NOTHING" ;  break;  }
			// It must be Shabbat HaGadol: 
			haftarah = "Malachi 3:4-24"; 
			if ( !isLeapYear(Hyr) ) { 
					holiday = "Shabbat HaGadol, Tzav" + holiday ;  // holiday was initialized to "". 
					portion = "Tzav, Shabbat HaGadol" ;  torah = "Vayikra 6:1-8:36" ;  break;
			} 
			// It must be Shabbat HaGadol and leap year: 
			if (typeOfYear[WEEKDAY]==THU) {
				portion="Acharei Mot, Shabbat HaGadol"; torah="Vayikra 16:1-18:30";  
				holiday = "Shabbat HaGadol, Acharei Mot" + holiday ; // holiday was initialized to "". 			
			} else {
				portion = "Metzora, Shabbat HaGadol" ;   torah = "Vayikra 14:1-15:33";  
				holiday = "Shabbat HaGadol, Metzora" + holiday ; // holiday was initialized to "".  
			} 
			break; 
	

//Pesach
	case 715: 	holiday = "Pesach (Day 1)" ; 	torah = "Shemot 12:21-51";  portion = "Pesach 1" ; 
			maftir = "Bamidbar 28:16-25"; haftarah = "Joshua 3:5-7; 5:2-6:1; 6:27" ;
			if (DayOfWeek==SAT) { holiday = "Shabbat " + holiday } 
			break;
			
	case 716: 	holiday = "Pesach (Day 2)" ; omerDay= 1;  torah = "Vayikra 22:26-23:44"; portion = "Pesach 2" ; 
			maftir = "Bamidbar 28:16-25"; haftarah = "II Kings 23:1-9; 21-25" ;  // Pesach 2 is never on Shabbat. 
			break;
			
	case 717: 	holiday = "Pesach Chol HaMoed 1" ; omerDay= 2; 	torah = "Shemot 13:1-16; Bamidbar 28:19-25" ;
			if (DayOfWeek==SAT) {
				holiday = "Shabbat Chol HaMoed Pesach";  portion = holiday ; 
				torah = "Shemot 33:12-34:26";  maftir = "Bamidbar 28:19-25";  haftarah = "Yechezkiel 37:1-14";
			}  
			break;
	case 718: 	holiday = "Pesach Chol HaMoed 2" ; omerDay= 3;	torah = "Shemot 22:24-23:19; Bamidbar 28:19-25" ; 
			if (DayOfWeek==SAT) {
				holiday = "Shabbat Chol HaMoed Pesach";  portion = holiday ; 
				torah = "Shemot 33:12-34:26";  maftir = "Bamidbar 28:19-25";  haftarah = "Yechezkiel 37:1-14";
			}  
			break;
	case 719: 	holiday = "Pesach Chol HaMoed 3" ; omerDay= 4;	torah = "Shemot 34:1-26; Bamidbar 28:19-25" ; 
			if (DayOfWeek==SAT) {
				holiday = "Shabbat Chol HaMoed Pesach";  portion = holiday ; 
				torah = "Shemot 33:12-34:26";  maftir = "Bamidbar 28:19-25";  haftarah = "Yechezkiel 37:1-14";
			}  
			break;	
	case 720: 	holiday = "Pesach Chol HaMoed 4" ; omerDay= 5;	
			torah = "Bamidbar 9:1-4; 28:19-25" ; 
			if (DayOfWeek==SAT) {
				holiday = "Shabbat Chol HaMoed Pesach";  portion = holiday ; 
				torah = "Shemot 33:12-34:26";  maftir = "Bamidbar 28:19-25";  
				haftarah="Yechezkiel 37:1-14";
			}  
			break;
			
	case 721: 	holiday = "Pesach (Day 7)" ; omerDay= 6; torah = "Shemot 13:17-15:26"; 
			maftir = "Bamidbar 28:19-25"; haftarah = "II Sam. 22:1-51" ;  
			if (DayOfWeek==SAT) { holiday = "Shabbat " + holiday ; }
			portion = "Pesach 7" ; 
			break;
	case 722:   holiday = "Pesach (Day 8)" ; omerDay= 7;     yizkor = "yes" ;
			maftir = "Bamidbar 28:19-25"; haftarah = "Isaiah 10:32-12:6" ;	
			if (  Pesach8onShabbat(Hyr)  )
				{  
				// Pesach 8 falls on Shabbat.
				torah = "Devarim 14:22-16:17";  holiday = "Shabbat " + holiday ;  				
			} else {
				// Pesach 8 falls on a weekday.
				torah = "Devarim 15:19-16:17"; 
			} 
			portion = holiday ; 
			break; 			
		
	case 723: 	omerDay= 8; portion = "NOTHING" ;  break;	
	case 725: 	omerDay= 10;  portion = "NOTHING" ;  break;	
	case 727: 	omerDay= 12;  holiday = "Yom HaShoah" ;  portion = "NOTHING" ;  break;	

	case 724:	omerDay = 2 ;			// case 724: omerDay will end up being 9
	case 726:	omerDay = omerDay + 2 ;  	// case 726: omerDay will end up being 11	
	case 728:   omerDay= 13 - omerDay ;  	// case 728: omerDay = 13 because it was initialized to zero
			if ( DayOfWeek!=SAT ) { portion = "NOTHING" ;  break;  }
			// It must be Shabbat: 
			if ( !isLeapYear(Hyr) ) { 
				portion = "Shemini" ; torah = "Vayikra 9:1-11:47";
				haftarah = "II Sam. 6:1-7:17 (S:  6:1-19)";  
				holiday = "Shabbat Shemini, Mevarchim" ; break;
			} 
			// It must be Shabbat and leap year: 
			if (typeOfYear[WEEKDAY]==THU) {
				portion = "Kedoshim" ; torah = "Vayikra 19:1-20:27";
				haftarah = "Amos 9:7-15 (S: Ezekiel 20:2-20)";  
				holiday = "Shabbat Kedoshim, Mevarchim" ; 
			} else {
				portion = "Acharei Mot" ; torah = "Vayikra 16:1-18:30";
				haftarah = "Ezekiel 22:1-19 (S:  22:1-16)";  
				holiday = "Shabbat Acharei Mot, Mevarchim" ; 
			} 
			break; 


//Iyar  (All omerDays in Iyar are already set.) 

	case 729: 	holiday = "Erev Rosh Chodesh" ; omerDay= 14; portion = "NOTHING"; 
			if ( Nisan1and29onShabbat(Hyr) ) {
				haftarah = "I Sam. 20:18-42" ; 
				if (typeOfYear[LENGTH]=354) {
					portion="Shemini"; torah="Vayikra 9:1-11:47"; 
					holiday = "Shabbat Shemini, " + holiday ; 
				} else { 
					portion="Acharei Mot"; torah="Vayikra 16:1-18:30"; 
					holiday = "Shabbat Acharei Mot, " + holiday ; 
				}
			}
			break;
				
	case 730: 	holiday = "Rosh Chodesh Iyar (1)" ; omerDay= 15;	torah = "Bamidbar 28:1-15" ;  break;
			// Nisan 30 is never on a Shabbat. 
				
	case 801: 	holiday = "Rosh Chodesh Iyar (2)" ;			//break;
			if ( Iyar1and29onShabbat(Hyr) ) 
			{
				// Shabbat Rosh Chodesh
				maftir = "Bamidbar 28:9-15" ; haftarah = "Isaiah 66:1-24" ;
				if (typeOfYear[LENGTH]>375) {
					portion="Kedoshim"; torah="Vayikra 19:1-20:27"; 
					holiday = "Shabbat Kedoshim, " + holiday ; 
				} else {
					portion="Tazria-Metzora"; torah="Vayikra 12:1-15:33"; 
					holiday = "Shabbat Tazria-Metzora, " + holiday ; 
				}
			} else {
				// weekday Rosh Chodesh
				torah = "Bamidbar 28:1-15" ; portion="Rosh Chodesh"; 
			}
			break;
			
			
	case 802:	if ( DayOfWeek==WED ) {  		// accelerated Yom HaZikaron ---JLW  8/9/08.
					holiday = "Yom HaZikaron" ;  
					portion = "NOTHING" ; 
				}
				break;
				
	case 804: 	if ( DayOfWeek!=FRI ) {   		// unaccelerated Yom HaZikaron ---JLW  8/9/08.
					holiday = "Yom HaZikaron" ;  
					portion = "NOTHING" ; 	
				}
				break;  
	
		
	case 818: 	holiday = "Lag B'Omer" ; portion = "NOTHING" ; 		break;
	
	
	case 803:	if ( DayOfWeek!=SAT ) { 
					portion = "NOTHING" ;  
					if ( DayOfWeek!=THU ) {   	// unaccelerated Erev Yom HaZikaron ---JLW  8/9/08.
						holiday = "Erev Yom HaZikaron" ; 
					} else {  // accelerated Yom Haatzmaut --- JLW 8/9/08.
						holiday = "Yom Haatzmaut" ;
					}
					break; 
				}
	case 805:	if ( DayOfWeek!=SAT ) { portion = "NOTHING" ;  
				holiday = "Yom Haatzmaut" ;  break; }
	case 806:   if ( DayOfWeek!=SAT ) { portion = "NOTHING" ;  break; }
			// It must be Shabbat: 
			if ( !isLeapYear(Hyr) ) { 
				portion = "Tazria-Metzora" ; torah = "Vayikra 12:01-15:33";
				haftarah = "II Kings 7:3-20";  holiday = "Tazria-Metzora" ; 
				// if (switchTest == 803) { holiday = holiday + ", Erev Yom HaZikaron" ; } 		// accelerated Yom HaZikaron ---JLW  8/9/08.
				// if (switchTest == 805) { holiday = holiday + ", Yom Haatzmaut" ; } 		// accelerated Yom Haatzmaut ---JLW  8/9/08.
				break;
			} 
			// It must be Shabbat and leap year: 
			if (typeOfYear[WEEKDAY]==THU) {
				portion = "Emor" ; torah = "Vayikra 21:1-24:23";
				haftarah = "Ezekiel 44:15-31";  holiday = "Shabbat Emor" ; 
				// if (switchTest == 805) { holiday = holiday + ", Yom Haatzmaut" ; } 		// accelerated Yom Haatzmaut ---JLW  8/9/08.
			} else {
				portion = "Kedoshim" ; torah = "Vayikra 19:1-20:27";
				haftarah = "Amos 9:7-15 (S: Ezekiel 20:2-20)";  
				holiday = "Shabbat Kedoshim" ; 
			} 
			// if (switchTest == 803) { holiday = holiday + ", Erev Yom HaZikaron" ; } 		// accelerated Yom HaZikaron ---JLW  8/9/08.
			break; 	
	
	
	case 808:
	case 810:
	case 812: 	
	case 813:   if ( DayOfWeek!=SAT ) { 
				portion = "NOTHING" ; 
				break;
			}
			// It must be Shabbat: 
			if ( !isLeapYear(Hyr) ) { 
				portion = "Acharei Mot - Kedoshim" ; torah = "Vayikra 21:1-24:23";
				haftarah = "Ezekiel 22:1-19 (S: 22:1-16)";  
				holiday = "Shabbat Acharei Mot - Kedoshim" ; 
				break;
			} 
			// It must be Shabbat and leap year: 
			if (typeOfYear[WEEKDAY]==THU) {
				portion = "Behar" ; torah = "Vayikra 25:1-26:2";
				haftarah = "Jeremiah 32:6-27";  holiday = "Shabbat Behar" ; 
			} else {
				portion = "Emor" ; torah = "Vayikra 21:1-24:23";
				haftarah = "Ezekiel 44:15-31";  
				holiday = "Shabbat Emor" ; 
			} 
			break; 
				
 	case 814:	//Pesach Sheini
			holiday = "Pesach Sheini" ; 
			portion = "NOTHING" ; 
			break; 




	case 815:
	case 817:
	case 819: 	
	case 820:   if ( DayOfWeek!=SAT ) { 
				portion = "NOTHING" ; 
				if (switchTest == 817) { holiday = "Erev Lag B'Omer" ; }
				break;
			}
			// It must be Shabbat: 
			if ( !isLeapYear(Hyr) ) { 
				portion = "Emor" ; torah = "Vayikra 21:1-24:23";
				haftarah = "Ezekiel 44:15-31";  
				holiday = "Shabbat Emor" ; 
				if (switchTest == 817) { holiday = holiday + ", Erev Lag B'Omer" ; }
				break;
			} 
			// It must be Shabbat and leap year: 
			if (typeOfYear[WEEKDAY]==THU) {
				portion = "Bechukotai" ; torah = "Vayikra 26:3-27:34";
				haftarah = "Jeremiah 16:19-17:14";  holiday = "Shabbat Bechukotai" ;
			} else {
				portion = "Behar" ; torah = "Vayikra 25:1-26:2";
				haftarah = "Jeremiah 32:6-27";  holiday = "Shabbat Behar" ; 
			} 
			if (switchTest == 817) { holiday = holiday + ", Erev Lag B'Omer" ; }
			break; 	
	
	
	case 822:
	case 824:
	case 826: 	
	case 827:   if ( DayOfWeek!=SAT ) { 
				portion = "NOTHING" ; 
				if (switchTest == 827) { holiday = "Erev Yom Yerushalayim" ; }
				break;
			}
			// It must be Shabbat: 
			if ( !isLeapYear(Hyr) ) { 
				portion = "Behar-Bechukotai" ; torah = "Vayikra 25:1-27:34";
				haftarah = "Jeremiah 16:19-17:14";  
				holiday = "Shabbat Behar-Bechukotai" ; 
				if (switchTest > 822) { holiday = holiday + ", Mevarchim" ; } 
				if (switchTest == 827) { holiday = holiday + ", Erev Yom Yerushalayim" ; }
				break;
			} 
			// It must be Shabbat and leap year: 
			if (typeOfYear[WEEKDAY]==THU) {
				portion ="Bamidbar" ; torah = "Bamidbar 1:1-4:20"; 
				haftarah = "Hosea 2:1-22" ;  holiday="Shabbat Bamidbar";
				if (switchTest > 822) { holiday = holiday + ", Mevarchim" ; } 
			} else {
				portion = "Bechukotai" ; torah = "Vayikra 26:3-27:34";
				haftarah = "Jeremiah 16:19-17:14";  holiday = "Shabbat Bechukotai" ; 
				if (switchTest > 822) { holiday = holiday + ", Mevarchim" ; } 
				if (switchTest == 827) { holiday = holiday + ", Erev Yom Yerushalayim" ; }
			} 
			break; 	
	
			 		
	case 828: 	holiday = "Yom Yerushalayim" ; portion = "NOTHING" ; 	break;

	
//Sivan
	case 829: 	holiday = "Erev Rosh Chodesh" ;  portion = "NOTHING";				
			if ( Iyar1and29onShabbat(Hyr) ) { 
				haftarah = "I Sam. 20:18-42" ; portion ="Bamidbar" ; 
				torah = "Bamidbar 1:1-4:20"; holiday="Shabbat Bamidbar, "+holiday; }
			break;					
	case 901: 	holiday = "Rosh Chodesh Sivan" ; omerDay= 45;  
			torah = "Bamidbar 28:1-15" ;  portion = "Rosh Chodesh" ; break;
			// Sivan 1 is never on a Shabbat. 
			
		
	case 902: 	omerDay = 46;
			if (DayOfWeek==SAT && typeOfYear[WEEKDAY]==THU)  { 
				portion = "Nasso" ;  torah = "Bamidbar 4:21-7:89" ;  
				haftarah = "Judges 13:2-25"; 
				holiday = "Shabbat Nasso";  break;}  // no break after!
			if (DayOfWeek==SAT)  { 
				portion ="Bamidbar" ; torah = "Bamidbar 1:1-4:20"; 
				haftarah = "Hosea 2:1-22" ;  holiday="Shabbat Bamidbar"; 
			} else { portion = "NOTHING" ; }
			break;					
				
	case 903: 	omerDay = 47;  portion = "NOTHING" ;  			break;
	
	case 904: 	omerDay = 48;							// break; commented out 6/1/08 to fix calendar JLW
			if (DayOfWeek==SAT && typeOfYear[WEEKDAY]==THU && typeOfYear[LENGTH]==383)  { 
				portion = "Nasso" ;  torah = "Bamidbar 4:21-7:89" ;  
				haftarah = "Judges 13:2-25"; 
				holiday = "Shabbat Nasso";  break;}  // no break after!
			if (DayOfWeek==SAT)  { 
				portion ="Bamidbar" ; torah = "Bamidbar 1:1-4:20"; 
				haftarah = "Hosea 2:1-22" ;  holiday="Shabbat Bamidbar"; 
			} else { portion = "NOTHING" ; }
			break;

//Shavuot		
	case 905: 	holiday = "Erev Shavuot" ; omerDay= 49;
			if ( DayOfWeek==SAT ) { 
				portion ="Bamidbar" ; torah = "Bamidbar 1:1-4:20"; 
				haftarah = "Hosea 2:1-22" ;  holiday="Shabbat Bamidbar, "+ holiday; }
				break;	
	case 906: 	holiday = "Shavuot (1)" ;  torah = "Shemot 19:1-20:23" ; portion="Shavuot (1)"; 
			maftir = "Bamidbar 28:26-31" ;  haftarah = "Ezekiel 1:1-28; 3:12" ;  break;	
	case 907:   holiday = "Shavuot (2)" ; portion = "Shavuot (2)";     yizkor = "yes" ;
			maftir = "Bamidbar 28:26-31" ;  haftarah = "Habakkuk 2:20-3:19" ;		
			if (  Shavuot2onShabbat(Hyr)   )
				{ 
					// Day 2 of Shavuot falls on Shabbat. 
					torah = "Devarim 14:22-16:17" ; holiday = "Shabbat, Shavuot (Day 2)"; 					
				}  else {
					// Day 2 of Shavuot falls on a weekday.
					torah = "Devarim 15:19-16:17" ;
				}
				break;
				
				
	case 909:   if (DayOfWeek==SAT && typeOfYear[WEEKDAY]==THU)  { 
			portion = "Baha'alotcha" ;  torah = "Bamidbar 8:1-12:16" ;  
			haftarah = "Zechariah 2:14-4:7"; 
			holiday = "Shabbat Baha'alotcha";  break; } 	// no break after!
	case 911:   // this line added by JLW on 6/1/08 to fix calendar			
	// case 918:   commented out by JLW on 6/1/08 to fix calebdar 
			if (DayOfWeek==SAT && typeOfYear[WEEKDAY]==THU && typeOfYear[LENGTH]==383)  { 
			portion = "Baha'alotcha" ;  torah = "Bamidbar 8:1-12:16" ;  
			haftarah = "Zechariah 2:14-4:7"; 
			holiday = "Shabbat Baha'alotcha";  break; } 	// no break after!		
	case 912:
	case 914:  if (DayOfWeek==SAT)  { portion = "Nasso" ;  torah = "Bamidbar 4:21-7:89" ;  
			haftarah = "Judges 13:2-25"; 
			holiday = "Shabbat Nasso"; } else { portion = "NOTHING" ; }
			break;
			
				
			
	case 916:   if (DayOfWeek==SAT && typeOfYear[WEEKDAY]==THU)  { 
			portion = "Shelach" ;  torah = "Shemot 21:1-24:18" ;  
			haftarah = "Jeremiah 34:8-22, 33:25-6"; 
			holiday = "Shabbat Shelach"; break; } 	// no break after!
	case 918: 	if (DayOfWeek==SAT && typeOfYear[WEEKDAY]==THU && typeOfYear[LENGTH]==383)  { 
			portion = "Shelach" ;  torah = "Shemot 21:1-24:18" ;  
			haftarah = "Jeremiah 34:8-22, 33:25-6"; 
			holiday = "Shabbat Shelach"; break; } 	// no break after!		
	case 919:
	case 921:   if (DayOfWeek==SAT)  { portion = "Baha'alotcha" ;  torah = "Bamidbar 8:1-12:16" ;  
			haftarah = "Zechariah 2:14-4:7"; 
			holiday = "Shabbat Baha'alotcha"; } else { portion = "NOTHING" ; }
			break;
			
	
	case 923: 	if (DayOfWeek==SAT && typeOfYear[WEEKDAY]==THU)  { 
			portion = "Korach" ;  torah = "Bamidbar 16:1-18:32" ;  
			haftarah = "I Sam. 11:14-12:22"; 
			holiday = "Shabbat Korach, Mevarchim"; break; } 	// no break after!	
	case 925: 	if (DayOfWeek==SAT && typeOfYear[WEEKDAY]==THU && typeOfYear[LENGTH]==383)  { 
			portion = "Korach" ;  torah = "Bamidbar 16:1-18:32" ;  
			haftarah = "I Sam. 11:14-12:22"; 
			holiday = "Shabbat Korach, Mevarchim"; break; } 	// no break after!		
	case 926:
	case 928:   if (DayOfWeek==SAT)  { portion = "Shelach" ;  torah = "Bamidbar 13:1-15:41" ;  
			haftarah = "Joshua 2:1-24"; 
			holiday = "Shabbat Shelach, Mevarchim"; } else { portion = "NOTHING" ; }
			break;
			
			
		
//Tammuz
	case 929: 	holiday = "Erev Rosh Chodesh" ;  portion="NOTHING";	break;
			// Sivan 29 is never on Shabbat. 
				
	case 930: 	holiday = "Rosh Chodesh Tammuz (1)" ;
			if ( Sivan30onShabbat(Hyr) ) 
			{
				// Shabbat Rosh Chodesh
				maftir = "Bamidbar 28:9-15" ; haftarah = "Isaiah 66:1-24" ; 
				if (typeOfYear[LENGTH]==385) { 
					portion="Chukat"; torah="Bamidbar 19:1-22:1"; 
					holiday = "Shabbat Chukat, " + holiday ;
				} else { 
					portion="Korach"; torah="Bamidbar 16:1-18:32";  
					holiday = "Shabbat Korach, " + holiday ;
				}
			} else {
				// weekday Rosh Chodesh
				torah = "Bamidbar 28:1-15" ; portion="Rosh Chodesh";
			}
			break;
		
	case 1001: 	holiday = "Rosh Chodesh Tammuz (2)" ;  torah = "Bamidbar 28:1-15" ;  portion = "Rosh Chodesh" ;  break;
			// Tammuz 1 is never on Shabbat. 
			
			
	
	case 1002: 	if (DayOfWeek==SAT && typeOfYear[WEEKDAY]==THU && typeOfYear[LENGTH]==383)  { 
			portion = "Chukat" ;  torah = "Bamidbar 19:1-22:1" ;  
			haftarah = "Judges 11:1-33"; 
			holiday = "Shabbat Chukat"; break; } 	// no break after!		
	case 1003:
	case 1005:  if (DayOfWeek==SAT)  { portion = "Korach" ;  torah = "Bamidbar 16:1-18:32" ;  
			haftarah = "I Sam. 11:14-12:22"; 
			holiday = "Shabbat Korach"; } else { portion = "NOTHING" ; }
			break;
			
	
	case 1007:  if (DayOfWeek==SAT && typeOfYear[WEEKDAY]==THU)  { 
			portion="Balak"; torah="Bamidbar 22:2-25:9"; 
			haftarah="Micah 5:6-6:8"; holiday="Shabbat Balak";   break; } // no break after!
	case 1009: 	if (DayOfWeek==SAT && typeOfYear[WEEKDAY]==THU && typeOfYear[LENGTH]==383)  { 
			portion="Balak"; torah="Bamidbar 22:2-25:9"; 
			haftarah="Micah 5:6-6:8"; holiday="Shabbat Balak"; break; } // no break after!		
	case 1010:  if (DayOfWeek==SAT)  { portion = "Chukat" ;  torah = "Bamidbar 19:1-22:1" ;  
			haftarah = "Judges 11:1-33"; 
			holiday = "Shabbat Chukat"; } else { portion = "NOTHING" ; }
			break;
			
			
			
	case 1012:  if (DayOfWeek==SAT)  { portion="Chukat-Balak"; torah="Bamidbar 19:1-25:9";
		 	haftarah="Micah 5:6-6:8"; 
			holiday = "Shabbat Chukat-Balak"; } else { portion = "NOTHING" ; }
			break;
			
			
	case 1014:  if (DayOfWeek==SAT && typeOfYear[WEEKDAY]==THU)  { 
			portion="Pinchas"; torah="Bamidbar 25:10-30:13";
		 	haftarah="I Kings 18:46-19:21"; 
			holiday = "Shabbat Pinchas"; break;}  // no break after!
	case 1016: 	if (DayOfWeek==SAT && typeOfYear[WEEKDAY]==THU && typeOfYear[LENGTH]==383)  { 
			portion="Pinchas"; torah="Bamidbar 25:10-30:13";
		 	haftarah="I Kings 18:46-19:21"; 
			holiday = "Shabbat Pinchas"; break; } 	// no break after!		
			if (DayOfWeek==SAT)  {
			portion="Balak"; torah="Bamidbar 22:2-25:9"; 
			haftarah="Micah 5:6-6:8"; holiday="Shabbat Balak"; } else { portion = "NOTHING" ; }	
			break;
	
	
		
	case 1017:  if (  Tammuz17onShabbat(Hyr)   )	
				{  
					// postpone the Fast of Tammuz
					portion="Balak"; torah="Bamidbar 22:2-25:9"; 
					haftarah="Micah 5:6-6:8"; holiday="Shabbat Balak"; 	
				}  else {
					holiday = "Fast of Tammuz" ; portion="Fast of Tammuz" ; 
					torah = "Shemot 32:11-14; 34:1-10 (morning & afternoon)" ; 
					haftarah = "Isaiah 55:6-56:8 (afternoon only)" ;
				}
				break
				
	case 1018:  if (  Tammuz17onShabbat(Hyr)  )  {  
					holiday = "Fast of Tammuz (postponed from Shabbat)" ; 
					portion="Fast of Tammuz"; 
					torah = "Shemot 32:11-14; 34:1-10 (morning & afternoon)" ; 
					haftarah = "Isaiah 55:6-56:8 (afternoon only)" ;
				}  else {
					// The Fast of Tammuz was not postponed.
					portion = "NOTHING";
					// Tammuz 18 is never on Shabbat.
				}
				break;
				
				
	case 1021:  if (DayOfWeek==SAT && typeOfYear[WEEKDAY]==THU) { 
				holiday = "Shabbat Matot"; 	portion="Matot";  torah="Bamidbar 30:2-32:42"; 
				haftarah="Jeremiah 1:1-2:3)";  break; }   // no break after! 
	case 1023:	if (DayOfWeek==SAT && typeOfYear[LENGTH]==383 && typeOfYear[WEEKDAY]==THU) { 
				holiday = "Shabbat Matot"; 	portion="Matot";  torah="Bamidbar 30:2-32:42"; 
				haftarah="Jeremiah 1:1-2:3"; 
				if (switchTest > 1022) { holiday = holiday + ", Mevarchim" ; } 
				break; }   // no break after! 		
	case 1019:
	case 1024:	//document.write("<BR>We got to case 1024!  DayOfWeek=" + DayOfWeek) ; 	
			if (DayOfWeek==SAT)  { 
				portion="Pinchas"; torah="Bamidbar 25:10-30:13";
		 		haftarah="I Kings 18:46-19:21"; 
				holiday = "Shabbat Pinchas"; 
				if (switchTest > 1022) { holiday = holiday + ", Mevarchim" ; } 
			} else { portion = "NOTHING" ; }
			break;		


	case 1028:  if (DayOfWeek==SAT && typeOfYear[WEEKDAY]==THU) { 
				holiday = "Shabbat Masei, Mevarchim"; 	portion="Masei";  torah="Bamidbar 33:1-36:13"; 
				haftarah="Jeremiah 2:4-28, 3:4 (S: 2:4-28, 4:1-2)"; break;}   // no break after! 			
	case 1026:  
	case 1102:	if (DayOfWeek==SAT)  { 
				portion="Matot-Masei"; torah="Bamidbar 30:2-36:13";
		 		haftarah="Jeremiah 2:4-28, 3:4, 4:1-2"; 
				holiday = "Shabbat Matot-Masei"; 
				if (switchTest < 1100) { holiday = holiday + ", Mevarchim" ; } 
			} else { portion = "NOTHING" ; }
			break;
			
	


//Av
	case 1029: 	holiday = "Erev Rosh Chodesh Av" ; portion = "NOTHING" ; break ; 
			// Tammuz 29 is never on Shabbat.  
						
	case 1101:  if ( Av1and29onShabbat(Hyr) ) 
			{
				// Shabbat Rosh Chodesh
				maftir = "Bamidbar 28:9-15" ; haftarah = "Isaiah 66:1-24" ;
				if (typeOfYear[LENGTH]>375) { 
					portion="Masei, Rosh Chodesh";  torah="Bamidbar 33:1-36:13"; 
					holiday="Shabbat Masei, Rosh Chodesh Av" ; 
				} else { 
					portion="Matot-Masei, Rosh Chodesh" ; torah="Bamidbar 30:2-36:13"; 
					holiday = "Shabbat Matot-Masei, Rosh Chodesh Av" ; 
				}
			} else {
				// weekday Rosh Chodesh
				torah = "Bamidbar 28:1-15" ;  portion="Rosh Chodesh";  holiday = "Rosh Chodesh Av" ; 
			}
			break;
	

	case 1104:
	case 1106:  if (DayOfWeek==SAT)  { portion = "Devarim" ;  torah = "Devarim 1:1-3:22" ;  
			haftarah = "Isaiah 1:1-27"; 
			holiday = "Shabbat Devarim"; } else { portion = "NOTHING" ; }
			break;


//Tisha B'Av		
	case 1108:  if (  Av9onShabbat(Hyr)  )
			{  
				// postpone the Fast of Tisha B'Av	
			}  else {
				holiday = "Erev Tisha B'Av" ; 
			}
			if (DayOfWeek==SAT) {
				holiday = "Shabbat Devarim, Erev Tisha B'Av" ;  
				minchaTime = "1:00 pm" ; // and maariv services for the Sunday fast will start late (circa 9:00 pm).  
				portion = "Devarim"; torah="Devarim 1:1-3:22"; haftarah="Isaiah 1:1-27" ; 
			}
			break;
			
	case 1109:  if ( Av9onShabbat(Hyr) )
				{  
					// postpone the Fast of Tisha B'Av
					holiday = "Shabbat Devarim, Erev Tisha B'Av" ; 
					portion = "Devarim"; torah="Devarim 1:1-3:22"; haftarah="Isaiah 1:1-27" ; 
					minchaTime = "1:00 pm" ; // and maariv services for the Sunday fast will start late (circa 9:00 pm).  
				}  else {
					holiday = "Tisha B'Av" ; portion="Tisha B'Av"; 
					torah = "Devarim 4:25-40 (shacharit); Shemot 32:11-14, 34:1-10 (minchah)" ; 
					haftarah = "Jer. 8:13-9:23 (shacharit); Isaiah 55:6-56:8 (mincha)" ; 
				}
				break;
				
	case 1110:  if ( Av9onShabbat(Hyr) )
				{  
					// 9 Av falls on Shabbat, so Av 10 is the fast: 
					holiday = "Fast of Tisha B'Av (postponed from Shabbat)" ; portion="Tisha B'Av"; 
					torah = "Devarim 4:25-40 (shacharit); Shemot 32:11-14, 34:1-10 (minchah)" ; 
					haftarah = "Jer. 8:13-9:23 (shacharit); Isaiah 55:6-56:8 (mincha)" ; 
				}  else {
					// the Fast was not postponed
					// (10 Av is never a shabbos.)
					portion="NOTHING";  
				}
				break;
				
				
	case 1111:
	case 1113:
	case 1115:
	case 1116:  if (DayOfWeek==SAT)  { portion = "Vaetchanan" ;  torah = "Devarim 3:23-7:11" ;  
			haftarah = "Isaiah 40:1-26"; 
			holiday = "Shabbat Vaetchanan"; } else { portion = "NOTHING" ; }
			break;

	
			
	case 1118:
	case 1120:
	case 1122:
	case 1123:  if (DayOfWeek==SAT)  { 
				portion = "Eikev" ;  torah = "Devarim 7:12-11:25" ;  
				haftarah = "Isaiah 49:14-51:3"; 
				holiday = "Shabbat Eikev"; 
				if (switchTest == 1123) { holiday = holiday + ", Mevarchim" ; } 
			} else { portion = "NOTHING" ; }
			break;
						
	case 1125:
	case 1127:  if (DayOfWeek==SAT)  { portion = "Re'eh" ;  torah = "Devarim 11:26-16:17" ;  
			haftarah = "Isaiah 54:11-55:5"; 
			holiday = "Shabbat Re'eh, Mevarchim"; } else { portion = "NOTHING" ; }
			break;

//Elul
	case 1129: 	holiday = "Erev Rosh Chodesh Elul" ;  
			if ( Av1and29onShabbat(Hyr) ) { 
				haftarah = "Isaiah 54:11-55:5 <BR>& I Sam. 20:18 & 20:42" ; 
				portion = "Re'eh, Erev Rosh Chodesh"; torah = "Devarim 11:26-16:17";  holiday = "Shabbat Re'eh, " + holiday ; 
			} else { portion = "NOTHING" ; }
			break;				
	case 1130: 	holiday = "Rosh Chodesh Elul (1)" ;    
			if ( Av30onShabbat(Hyr) ) 
			{
				// Shabbat Rosh Chodesh
				maftir = "Bamidbar 28:9-15" ; haftarah = "Isaiah 66:1-24" ;
				portion = "Re'eh"; torah = "Devarim 11:26-16:17";  holiday = "Shabbat Re'eh, " + holiday ; 				
			} else {
				// weekday Rosh Chodesh
				torah = "Bamidbar 28:1-15" ; portion="Rosh Chodesh" ; 
			}
			break;
			
	case 1201: 	holiday = "Rosh Chodesh Elul (2);<BR>(The New Year for Animal Tithes)" ; 
			torah = "Bamidbar 28:1-15" ;  portion= "Rosh Chodesh"; break;  // Elul 1 is never on Shabbat.
	
	case 1202:
	case 1204:
	case 1206:
	case 1207:  if (DayOfWeek==SAT)  { 
				portion = "Shoftim" ;  torah = "Devarim 16:18-21:9" ;  
				haftarah = "Isaiah 51:12-52:12"; holiday = "Shabbat Shoftim"; 
			} else { portion = "NOTHING" ; }
			break;

	
	
	case 1209:
	case 1211:
	case 1213:
	case 1214:  if (DayOfWeek==SAT)  { 
				portion = "Ki Teitzei" ;  torah = "Devarim 21:10-25:19" ;  
				haftarah = "Isaiah 54:1-10"; holiday = "Shabbat Ki Teitzei"; 
			} else { portion = "NOTHING" ; }
			break;

	
	case 1216: 
	case 1218:
	case 1220:
	case 1221:  if (DayOfWeek==SAT)  { 
				portion = "Ki Tavo" ;  torah = "Devarim 26:1-29:8" ;  
				haftarah = "Isaiah 60:1-22"; holiday = "Shabbat Ki Tavo"; 
			} else { portion = "NOTHING" ; }
			break;
	
	
	case 1223:
	case 1224:
	case 1225:  if (DayOfWeek==SAT)  { 
				portion = "Nitzavim-Veyeilech" ;  torah = "Devarim 29:9-31:30" ;  
				haftarah = "Isaiah 61:10-63:9"; holiday = "Shabbat Nitzavim-Vayeilech"; 
			} else { portion = "NOTHING" ; }
			break;

	
	case 1227:
	case 1228: 	if (DayOfWeek==SAT)  { 
				portion = "Nitzavim" ;  torah = "Devarim 29:9-30:20" ;  
				haftarah = "Isaiah 61:10-63:9"; holiday = "Shabbat Nitzavim"; 
			} else { portion = "NOTHING" ; }
			break;


//Erev Tishrei			
	case 1229: 	holiday = "Erev Rosh Hashanah" ;  portion = "NOTHING" ; 		break; 
	// Erev Rosh Chodesh; but Elul 29 never falls on Shabbat.
				 
}  
// end of the switch 


// test for Parashat HaChodesh:
if (switchTest<=701 && switchTest>=624 && DayOfWeek==SAT) { 
	holiday = holiday + ", HaChodesh" ;   haftarah = "Ezekiel 45:16-46:16" ;  maftir = "Shemot 12:1-20" ; 
	if (switchTest==701) { torah = torah + ", Bamidbar 28:9-15" ; }  // it's also Rosh Chodesh
}
// test for Parashat HaParah:
if (switchTest<=623 && switchTest>=617 && DayOfWeek==SAT) { 
	holiday = holiday + ", Parah" ;   haftarah = "Ezekiel 36:16-38" ;  maftir = "Bamidbar 19:1-22" ; 
}
// test for Parashat Zachor:
if (switchTest<=613 && switchTest>=607 && DayOfWeek==SAT) { 
	holiday = holiday + ", Zachor" ;   haftarah = "I Samuel 15:1-34" ;  maftir = "Devarim 25:17-19" ; 
}
// test for Parashat HaShekalim:
if (switchTest<=601 
&& DayOfWeek==SAT  
&& ( switchTest>524 ||   (switchTest>=424 && typeOfYear[LENGTH]<=370) )  // fixed bug: was originally >=524 -JLW 2/25/08.
) { 
	holiday = holiday + ", Shekalim" ;   haftarah = "II Kings 11:17-12:17" ;  maftir = "Shemot 30:11-16" ; 
	if (switchTest==601) { torah = torah + ", Bamidbar 28:9-15" ; } // it's also Rosh Chodesh
}


// If portion is "NOTHING" there's nothing left to do.  It may be a minor holiday, but there's no Reading and nothing left to set up.  
// If portion is anything else, there is nothing left to do.  It's a holiday, and may also be Shabbat, but there's nothing left to set up.  
	
/*
// If portion is "UNCHECKED", this is a date that was not a holiday, but may be a Sabbath.
	if (portion == "UNCHECKED") {
		if (DayOfWeek != SAT) { 
			portion = "NOTHING";  
		} else {
			// It is an ordinary Shabbat, not coincident with anything.  But has not been set up yet.
			
			if (typeOfYear[LENGTH]%100 == 3) { laterTest = 1; } else { laterTest = 0 ; }
	laterTest = switchTest - laterTest ;  
	
	leapTest = laterTest ; 
	if ( Hmon==ADAR_II && !isLeapYear(Hyr) ) { leapTest= laterTest-100 ; }  
	
	nisanTest = switchTest ; 
	if (typeOfYear[LENGTH]==385 && typeOfYear[WEEKDAY]==THU) { nisanTest = switchTest+1 ; }
	if (Hmon==NISAN && !isLeapYear(Hyr)) {nisanTest = nisanTest-100+2) ; }
			
	/*		if 	  (switchTest<7)  Vayeilech ;
			else if (switchTest<14) Haazinu ;
			else if (switchTest<28) Bereishit ;
			else if (switchTest<107) Noach ;
			else if (switchTest<114) Lech Lcha ;
			else if (switchTest<121) Vayeira ;
			else if (switchTest<128) Chaye Sarah ;
			else if (switchTest<=205) Toldot ;
			else if (switchTest<=212) Vayeitzei ;
			else if (switchTest<=219) Yayishlach ;
			else if (switchTest<=223) Vayeishev ;  */
			
/*			// after Cheshvan and Kislev: 
			if 	  (laterTest<304) Mikeitz ;
			else if (laterTest<311) Vayigash ;
			else if (laterTest<318) Vayechi ;
			else if (laterTest<325) Shemot ;		
			else if (laterTest<403) Vaeira ;
			else if (laterTest<410) Bo ;
			else if (laterTest<417) Beshalach ;
			else if (laterTest<424) Yitro ;
			else if (laterTest<430) Mishpatim ;
			// Adar I (and Adar II in non-leap):
			else if (leapTest<508) Terumah ;
			else if (leapTest<515) Tetzaveh ;
			else if (leapTest<522) Ki Tisa ;
			else if (laterTest<528) Vayechel ;
			else if (leapTest<523) Vayechel ;
			else if (leapTest<528) Vayechel-Pekudei ;
			// non-leap Nisan & Adar II in a leap year: 
			else if (laterTest<606) Pekudei ; 

			else if (nisanTest<610) Vayikra ;
			else if (nisanTest<621) Tzav ;
			else if (nisanTest<=630) Vayikra ; except if 385THU it's Tazria.
			else if (nisanTest<=611) Vayikra ;
			
	case 304:
	case 311:
	case 318:
	case 403:   case 410:  must-write!!!! 
	
	
		
			//======================
			
			// need code for middle, using leapTest 
			
			// =====================
			
			else if (switchTest<1109) Devarim ;
			else if (switchTest<1117) Vaetchanan ;
			else if (switchTest<1124) Eikev ;
			else if (switchTest<1201) Reeh ;
			else if (switchTest<1208) Shoftim ;
			else if (switchTest<1215) Ki Teitzei ;
			else if (switchTest<1222) Ki Tavo ;
			else if (switchTest<1226) Nitzavim-Vayeilech ;
			else if (switchTest<1229) Nitzavim ;
			}
			
			
			
						  
		}
	}
*/	
// Add regular Monday & Thursday Torah Reading Data: 	
	
// Add m'varchim data:	

	holidayInfo = [holiday, omerDay, torah, maftir, haftarah, portion, yizkor, minchaTime] ;	
	return holidayInfo ;
}
	
/*	
	cheshvanLength=29; kislevLength=30; leapAdarLength=0; // in normal years
	if ( (typeOfYear[LENGTH]==353)||(typeOfYear[LENGTH]==383) ) { kislevLength=29; }  		// in "deficient" years
	if ( (typeOfYear[LENGTH]==355)||(typeOfYear[LENGTH]==385) ) { cheshvanLength=30; }  	// in "abundant" years
	if (typeOfYear[LENGTH]>375) { leapAdarLength=30 } 						// in leap years
	// var DaysPerMonth = new hMonthArray( 30, cheshvanLength, kislevLength, 29,  30, leapAdarLength, 29, 30, 29, 30, 29, 30, 29) ;

	var CK = cheshvanLength+kislevLength ; //document.write("got CK<BR>"); 
	var cumulativeDaysBeforeHebrewMonth = new hMonthArray(0, 30, 30+cheshvanLength, 30+CK, 30+CK+29, 30+CK+29+30, 30+CK+29+30+leapAdarLength, 30+CK+29+30+leapAdarLength+29,  30+CK+29+30+leapAdarLength+29+30, 30+CK+29+30+leapAdarLength+29+30+29,  30+CK+29+30+leapAdarLength+29+30+29+30, 30+CK+29+30+leapAdarLength+29+30+29+30+29, 30+CK+29+30+leapAdarLength+29+30+29+30+29+30 ) ;

	output = cumulativeDaysBeforeHebrewMonth[Hmon] );   
*/
	
// Add four special Sabbaths, and HaGadol, readings:	
	// make array of 54 sabbath readings, then insert holidays into the table based on year type, and combine based on year type.  
	//calculate ifthis is the nth Sabbath and then lookup in the array.  
	//			setDoubleParshayot(   NEED DATA HERE  );
	

/*
var portionNames = new Array["Bereishit", "Noach", "Lech Lecha", "Vayeira", "Chayei Sarah","Toledot", "Vayeitzei", "Vayishlach", "Vayieishev", "Mikeitz", "Vayigash", "Vayechi", "Shemot", "Va'eira", "Bo", "Beshalach", "Yitro", "Mishpatim", "Terumah", "Tetzaveh", "Ki Tisa"] ; 
var VP = new Array["Vayekhel", "Pekudei"] ;
var portions1 = new Array["Vayikra", "Tzav", "Shemini"] ; 
var TM 	= new Array["Tazria", "Metzora"] ; 
var AK 	= new Array["Acharei Mot", "Kedoshim"] ;  
var emor 	= new Array["Emor"] ; 
var BB 	= new Array["Behar", "Bechukotai"] ; 
var portions2 = new Array["Bamidbar", "Nasso", "Beha'alotcha", "Shelach", "Korach"] ; 
var CB 	= new Array["Chukat", "Balak"] ; 
var pinchas = new Array["Pinchas"] ; 
var MM 	= new Array["Mattot", "Masei"] ;
var portions3 = new Array["Devarim", "Va'etchanan", "Eikev", "Re'eh", "Shoftim", "Ki Teitzei", "Ki Tavo"] ; 
var NV 	= new Array["Nitzavim", "Vayeilech"] ; 
var haazinu = new Array["Haazinu"] ; 
var vzot 	= new Array["Vezot Haberachah"] ; 
*/

// var defaultPortions = new Array["Bereishit", "Noach", "Lech Lecha", "Vayeira", "Chayei Sarah", "Toledot", "Vayeitzei", "Vayishlach", "Vayieishev", "Mikeitz", "Vayigash", "Vayechi",      "Shemot", "Va'eira", "Bo", "Beshalach", "Yitro", "Mishpatim", "Terumah", "Tetzaveh", "Ki Tisa", "Yayekhel", "Pekudei",      "Vayikra", "Tzav", "Shemini", "Tazria", "Metzora", "Acharei Mot", "Kedoshim", "Emor", "Behar", "Bechukotai",       "Bamidbar", "Nasso", "Beha'alotcha", "Shelach", "Korach", "Chukat", "Balak", "Pinchas", "Mattot", "Masei",      "Devarim", "Va'etchanan", "Eikev", "Re'eh", "Shoftim", "Ki Teitzei", "Ki Tavo", "Nitzavim", "Vayeilech", "Haazinu", "Vezot Haberachah" ] ; 

MON_353 = Array["Vayeilech", "Haazinu", "Shabbat Chol HaMoed Chanukah" , "Bereishit", "Noach", "Lech Lecha", "Vayeira", "Chayei Sarah", "Toledot", "Vayeitzei", "Vayishlach", "Vayieishev", "Mikeitz", "Vayigash", "Vayechi",      "Shemot", "Va'eira", "Bo", "Beshalach", "Yitro", "Mishpatim", "Terumah", "Tetzaveh", "Ki Tisa", "Yayekhel-Pekudei",      "Vayikra", "Tzav, Shabbat HaGadol", "Shabbat Chol HaMoed Pesach", "Shemini", "Tazria-Metzora", "Acharei Mot-Kedoshim", "Emor", "Behar-Bechukotai",       "Bamidbar", "Nasso", "Beha'alotcha", "Shelach", "Korach, Rosh Chodesh", "Chukat", "Balak", "Pinchas", "Mattot-Masei",      "Devarim", "Va'etchanan", "Eikev", "Re'eh", "Shoftim", "Ki Teitzei", "Ki Tavo", "Nitzavim-Vayeilech" ] ; 

SAT_353 = Array["Vayeilech", "Haazinu", "Shabbat Chol HaMoed Chanukah" , "Bereishit", "Noach", "Lech Lecha", "Vayeira", "Chayei Sarah", "Toledot", "Vayeitzei", "Vayishlach", "Vayieishev", "Mikeitz", "Vayigash", "Vayechi",      "Shemot", "Va'eira", "Bo", "Beshalach", "Yitro", "Mishpatim", "Terumah", "Tetzaveh", "Ki Tisa", "Yayekhel-Pekudei",      "Vayikra", "Tzav, Shabbat HaGadol", "Shabbat Chol HaMoed Pesach", "Shemini", "Tazria-Metzora", "Acharei Mot-Kedoshim", "Emor", "Behar-Bechukotai",       "Bamidbar", "Nasso", "Beha'alotcha", "Shelach", "Korach, Rosh Chodesh", "Chukat", "Balak", "Pinchas", "Mattot-Masei",      "Devarim", "Va'etchanan", "Eikev", "Re'eh", "Shoftim", "Ki Teitzei", "Ki Tavo", "Nitzavim-Vayeilech" ] ; 




/*
var defaultPsukim = new Array["Bereishit 1:1-6:8", "Bereishit 6:9-11:32", "Bereishit 12:1-17:25", "Bereishit 18:1-22:24", "Bereishit 23:1-25:18", "Bereishit 25:19-28:9", "Bereishit 28:10-32:3", "Bereishit 32:4-36:43", "Bereishit 37:1-40:42", "Bereishit 41:1-44:17", "Bereishit 44:18-47:27", "Bereishit 47:28-50:26",      "Shemot 1:1-6:1", "Shemot 6:2-9:35", "Shemot 10:1-13:16", "Shemot 13:17-17:16", "Shemot 18:1-20:26", "Shemot 21:1-24.18", "Shemot 25:1-27:19", "Shemot 27:20-30:10", "Shemot 30:11-34:35", "Shemot 35:1-38:20", "Shemot 38:21-40:38",      "Vayikra", "Tzav", "Shemini", "Tazria", "Metzora", "Acharei Mot", "Kedoshim", "Emor", "Behar", "Bechukotai",      "Bamidbar", "Nasso", "Beha'alotcha", "Shelach", "Korach", "Chukat", "Balak", "Pinchas", "Mattot", "Masei",      "Devarim", "Va'etchanan", "Eikev", "Re'eh", "Shoftim", "Ki Teitzei", "Ki Tavo", "Nitzavim", "Vayeilech", "Haazinu", "Vezot Haberachah" ] ; 
*/
/*
function	setVayaqhelPekoudei()
	{
		VP = ["Vayekhel-Pekudei"];
		return ;
	}
function 	setTazriaMetsora()
	{
		TM= ["Tazria-Metsora"];
		return ;
	}
function 	setAchareiMotKedoshim()
	{
		return ;
	}
function 	setBeharBechuqotai()
	{
		return ;
	}
function 	setChukatBalaq()
	{
		return ;
	}
function 	setMatotMassei()
	{
		return ;
	}
function 	setNitsavimVayelech()
	{
		return ;
	}

*/
//==========================================================================
// All the branches based on typeOfYear depend on the correctness of 
// the spreadsheet HebrewYearAnalysis.xls

function Av9onShabbat(Hyr)
{
// 9 Av falls on Shabbat if type of year is: 354-THU,  384-TUE, or 385-MON.
	var typeOfYear = new Array(2); typeOfYear = getTypeOfYear(Hyr); 		
	onShabbat = (  	( (typeOfYear[LENGTH]==354)&&(typeOfYear[WEEKDAY]==THU) )  ||
				( (typeOfYear[LENGTH]==384)&&(typeOfYear[WEEKDAY]==TUE) )  ||
				( (typeOfYear[LENGTH]==385)&&(typeOfYear[WEEKDAY]==MON) )   ) ;
	return onShabbat ;
}

function Tammuz17onShabbat(Hyr)
{
//document.write("Does Tammuz 17 fall on Shabbat?<BR>Hyr=" + Hyr);
// 17 Tammuz falls on Shabbat if type of year is: 354-THU,  384-TUE, or 385-MON.
	var typeOfYear = new Array(2); typeOfYear = getTypeOfYear(Hyr); 		
	onShabbat = (  ( (typeOfYear[LENGTH]==354)&&(typeOfYear[WEEKDAY]==THU) )  ||
			( (typeOfYear[LENGTH]==384)&&(typeOfYear[WEEKDAY]==TUE) )  ||
			( (typeOfYear[LENGTH]==385)&&(typeOfYear[WEEKDAY]==MON) )   ) ;
	return onShabbat ;
}

function Shavuot2onShabbat(Hyr)
{
	var typeOfYear = new Array(2); typeOfYear = getTypeOfYear(Hyr);  		
	onShabbat = (  	( (typeOfYear[LENGTH]==354)&&(typeOfYear[WEEKDAY]==TUE) )  ||
				( (typeOfYear[LENGTH]==355)&&(typeOfYear[WEEKDAY]==MON) )  ||
				( (typeOfYear[LENGTH]==383)&&(typeOfYear[WEEKDAY]==MON) )  ||
				( (typeOfYear[LENGTH]==385)&&(typeOfYear[WEEKDAY]==SAT) )   ) ;
	return onShabbat ;
}

function Pesach8onShabbat(Hyr)
{
	var typeOfYear = new Array(2); typeOfYear = getTypeOfYear(Hyr);  
	onShabbat =  (  	( (typeOfYear[LENGTH]==354)&&(typeOfYear[WEEKDAY]==THU) )  ||
				( (typeOfYear[LENGTH]==384)&&(typeOfYear[WEEKDAY]==TUE) )  ||
				( (typeOfYear[LENGTH]==385)&&(typeOfYear[WEEKDAY]==MON) )   ) ;
	return onShabbat ;
}

function FirstbornFastOnShabbat(Hyr)
{
	var typeOfYear = new Array(2); typeOfYear = getTypeOfYear(Hyr);  
	onShabbat =  (  	( (typeOfYear[LENGTH]==353)&&(typeOfYear[WEEKDAY]==SAT) )  ||
				( (typeOfYear[LENGTH]==355)&&(typeOfYear[WEEKDAY]==THU) )  ||
				( (typeOfYear[LENGTH]==383)&&(typeOfYear[WEEKDAY]==THU) )   ) ;
	return onShabbat ;
}

function FastOfEstherOnShabbat(Hyr)
{
	var typeOfYear = new Array(2); typeOfYear = getTypeOfYear(Hyr);  
	onShabbat =  (  	( (typeOfYear[LENGTH]==353)&&(typeOfYear[WEEKDAY]==MON) )  ||
				( (typeOfYear[LENGTH]==355)&&(typeOfYear[WEEKDAY]==SAT) )  ||
				( (typeOfYear[LENGTH]==383)&&(typeOfYear[WEEKDAY]==SAT) )  ||
				( (typeOfYear[LENGTH]==385)&&(typeOfYear[WEEKDAY]==THU) )   ) ;
	return onShabbat ;
}

function SukkotCH1onShabbat(Hyr)
{
	var typeOfYear = new Array(2); typeOfYear = getTypeOfYear(Hyr);  
	onShabbat =  (  	( (typeOfYear[LENGTH]==354)&&(typeOfYear[WEEKDAY]==THU) )  ||
				( (typeOfYear[LENGTH]==355)&&(typeOfYear[WEEKDAY]==SAT) )  ||
				( (typeOfYear[LENGTH]==383)&&(typeOfYear[WEEKDAY]==SAT) )  ||
				( (typeOfYear[LENGTH]==385)&&(typeOfYear[WEEKDAY]==THU) )   ) ;
	return onShabbat ;
}


//================================================================================

// Shabbat Rosh Chodesh & Shabbat Erev Rosh Chodesh

// All the branches based on typeOfYear depend on the correctness 
// of the spreadsheet HebrewYearAnalysis.xls


function Tishrei29onShabbat(Hyr)
{
	var typeOfYear = new Array(2); typeOfYear = getTypeOfYear(Hyr);  
	onShabbat =  ( typeOfYear[WEEKDAY]==SAT ) ;
	return onShabbat ;
}

// Tishrei30 is never on Shabbat

function Cheshvan1and29onShabbat(Hyr)
{
	var typeOfYear = new Array(2); typeOfYear = getTypeOfYear(Hyr);  
	onShabbat =  ( typeOfYear[WEEKDAY]==THU ) ;
	return onShabbat ;
}

// Cheshvan 30 is never on Shabbat
// Kislev 1 and 29 are never on Shabbat

function Kislev30onShabbat(Hyr)
{
	var typeOfYear = new Array(2); typeOfYear = getTypeOfYear(Hyr);
	onShabbat =  (  	( (typeOfYear[LENGTH]==354)&&(typeOfYear[WEEKDAY]==TUE) )  ||
				( (typeOfYear[LENGTH]==355)&&(typeOfYear[WEEKDAY]==MON) )  ||
				( (typeOfYear[LENGTH]==384)&&(typeOfYear[WEEKDAY]==TUE) )  ||
				( (typeOfYear[LENGTH]==385)&&(typeOfYear[WEEKDAY]==MON) )   ) ;
	return onShabbat ;
}

// Tevet 1 and 29 are never on Shabbat

function Shevat1and29onShabbat(Hyr)
{
	var typeOfYear = new Array(2); typeOfYear = getTypeOfYear(Hyr);  
	onShabbat =  (  	( (typeOfYear[LENGTH]==353)&&(typeOfYear[WEEKDAY]==MON) )  ||
				( (typeOfYear[LENGTH]==355)&&(typeOfYear[WEEKDAY]==SAT) )  ||
				( (typeOfYear[LENGTH]==383)&&(typeOfYear[WEEKDAY]==MON) )  ||
				( (typeOfYear[LENGTH]==385)&&(typeOfYear[WEEKDAY]==SAT) )   ) ;
	return onShabbat ;
}

//Shevat 30 is never on Shabbat

function Iadar1and29onShabbat(Hyr)
{
	var typeOfYear = new Array(2); typeOfYear = getTypeOfYear(Hyr);  
	onShabbat =  (  	( (typeOfYear[LENGTH]==383)&&(typeOfYear[WEEKDAY]==SAT) )  ||
				( (typeOfYear[LENGTH]==385)&&(typeOfYear[WEEKDAY]==THU) )   ) ;
	return onShabbat ;
}

// I Adar 30 is never on Shabbat

function IIadar1and29onShabbat(Hyr)
{
	var typeOfYear = new Array(2); typeOfYear = getTypeOfYear(Hyr);  
	onShabbat =  (  	( (typeOfYear[LENGTH]==353)&&(typeOfYear[WEEKDAY]==SAT) )  ||
				( (typeOfYear[LENGTH]==355)&&(typeOfYear[WEEKDAY]==THU) )  ||
				( (typeOfYear[LENGTH]==383)&&(typeOfYear[WEEKDAY]==THU) )   ) ;
	return onShabbat ;
}

function Nisan1and29onShabbat(Hyr)
{
	var typeOfYear = new Array(2); typeOfYear = getTypeOfYear(Hyr);  
	onShabbat =  (  	( (typeOfYear[LENGTH]==354)&&(typeOfYear[WEEKDAY]==THU) )  ||
				( (typeOfYear[LENGTH]==384)&&(typeOfYear[WEEKDAY]==TUE) )  ||
				( (typeOfYear[LENGTH]==385)&&(typeOfYear[WEEKDAY]==MON) )   ) ;
	return onShabbat ;
}

// Nisan 30 is never on Shabbat

function Iyar1and29onShabbat(Hyr)
{
	var typeOfYear = new Array(2); typeOfYear = getTypeOfYear(Hyr);  
	onShabbat =  (  	( (typeOfYear[LENGTH]==354)&&(typeOfYear[WEEKDAY]==TUE) )  ||
				( (typeOfYear[LENGTH]==355)&&(typeOfYear[WEEKDAY]==MON) )  ||
				( (typeOfYear[LENGTH]==383)&&(typeOfYear[WEEKDAY]==MON) )  ||
				( (typeOfYear[LENGTH]==385)&&(typeOfYear[WEEKDAY]==SAT) )   ) ;
	return onShabbat ;
}

// Sivan 1 ans 29 are never on Shabbat

function Sivan30onShabbat(Hyr)
{
	var typeOfYear = new Array(2); typeOfYear = getTypeOfYear(Hyr);  
	onShabbat =  (  	( (typeOfYear[LENGTH]==353)&&(typeOfYear[WEEKDAY]==MON) )  ||
				( (typeOfYear[LENGTH]==355)&&(typeOfYear[WEEKDAY]==SAT) )  ||
				( (typeOfYear[LENGTH]==383)&&(typeOfYear[WEEKDAY]==SAT) )  ||
				( (typeOfYear[LENGTH]==385)&&(typeOfYear[WEEKDAY]==THU) )   ) ;
	return onShabbat ; // These are same rules as for Fast of Esther!
}

// Tammuz 1 and 29 are never on Shabbat

function Av1and29onShabbat(Hyr)
{
	var typeOfYear = new Array(2); typeOfYear = getTypeOfYear(Hyr);  
	onShabbat =  (  	( (typeOfYear[LENGTH]==353)&&(typeOfYear[WEEKDAY]==SAT) )  ||
				( (typeOfYear[LENGTH]==355)&&(typeOfYear[WEEKDAY]==THU) )  ||
				( (typeOfYear[LENGTH]==383)&&(typeOfYear[WEEKDAY]==THU) )   ) ;
	return onShabbat ;
}

function Av30onShabbat(Hyr)
{
	var typeOfYear = new Array(2); typeOfYear = getTypeOfYear(Hyr);  
	onShabbat =  (  	( (typeOfYear[LENGTH]==354)&&(typeOfYear[WEEKDAY]==THU) )  ||
				( (typeOfYear[LENGTH]==384)&&(typeOfYear[WEEKDAY]==TUE) )  ||
				( (typeOfYear[LENGTH]==385)&&(typeOfYear[WEEKDAY]==MON) )   ) ;
	return onShabbat ;
}

// Elul 1 ans 29 are never on Shabbat

//==================================================================================

	  
	
	
//==================================================================================	

// Days in Hebrew Year can be: 353, 354, 355, 383, 384, 385.
// Rosh Hashana (Tishrei 1) can start on: MON, TUES, THUR, or SAT. 
// Fourteen types of years are possible: 
//	Tishri 1st	length
//			353	354	355	383	384	385
//	Monday 	x 		x 	x 		x
//	Tuesday 		x 			x 	
//	Thursday 		x 	x 	x 		x
//	Shabbat 	x 		x 	x 		x 

// Seven pairs of Torah Portions may be combined: 
//	a: 	setVayaqhelPekoudei();
//	b: 	setTazriaMetsora();
//	c: 	setAchareiMotKedoshim(); 
//	d: 	setBeharBechuqotai();
//	e: 	setChukatBalaq();
//	f: 	setMatotMassei();
//	g: 	setNitsavimVayelech();
//
//	length 	Rosh Hashana  	mechubarin
//						Diaspora 			Israel
//	353 		Monday 				a b c d f g
//	353 		Shabbat 				a b c d f
//	354 		Tuesday 		a b c d e f g 		a b c d f g
//	354 		Thursday 		a b c d f 			a b c f
//	355 		Monday 		a b c d e f g 		a b c d f g
//	355 		Thursday 		b c d f 			a b c f
//	355 		Shabbat 				a b c d f g
//	383 		Monday 		e f g 			f g
//	383 		Thursday 		/ 				/
//	383 		Shabbat 				f g
//	384 		Tuesday 		f 				/
//	385 		Monday 		f 				/
//	385 		Thursday 				g
//	385 		Shabbat 		e f g 			f g

// loc = "Israel" or "Diaspora") 
/*
function setDoubleParshayot(Days,weekday,location)
{
		
	var DaysInYear = Days ; 
	var RHweekday = weekday ; 
	var loc = "Diaspora" ;
	
	if (DaysInYear==353) {
		setVayaqhelPekoudei(); 
		setTazriaMetsora(); 
		setAchareiMotKedoshim(); 
		setBeharBechuqotai(); 
		setMatotMassei(); 
		if (RHweekday==MON)  {
			setNitsavimVayelech(); 
		}   // else RHweekday = SAT : do nothing more. 	
	}
	if ((DaysInYear==354)&&(RHweekday==THUR)) {
		setVayaqhelPekoudei(); setTazriaMetsora(); 
		setAchareiMotKedoshim(); setMatotMassei();
		if (loc=="Diaspora") setBeharBechuqotai();  		
	}
	if (  ((DaysInYear==354)&&(RHweekday==TUES)) || ((DaysInYear==355)&&(RHweekday==MON))  )  {
		setVayaqhelPekoudei(); setTazriaMetsora(); setAchareiMotKedoshim(); 
		setBeharBechuqotai(); setMatotMassei(); setNitsavimVayelech(); 
		if (loc=="Diaspora") setChukatBalaq(); 
	}
	if ((DaysInYear==355)&&(RHweekday==THUR)) {
		setTazriaMetsora(); setAchareiMotKedoshim(); setMatotMassei(); 
		if (loc=="Diaspora") setBeharBechuqotai(); 		
		if (loc=="Israel") setVayaqhelPekoudei();
	}
	if ((DaysInYear==355)&&(RHweekday==SAT)) {
		setVayaqhelPekoudei(); setTazriaMetsora(); setAchareiMotKedoshim(); 
		setBeharBechuqotai(); setMatotMassei(); setNitsavimVayelech();
	}	
	if ((DaysInYear==383)&&(RHweekday==MON)) {
		setMatotMassei(); setNitsavimVayelech(); 
		if (loc=="Diaspora") setChukatBalaq(); 
	}			
	// if ((DaysInYear==383)&&(RHweekday==THUR)) { do nothing ; }	
	if ((DaysInYear==383)&&(RHweekday==SAT)) {
		setMatotMassei(); setNitsavimVayelech();
	}
	if ( ( (DaysInYear==384) || ((DaysInYear==385)&&(RHweekday==MON)) )  && (loc=="Diaspora") ) setMatotMassei(); 
	// if DaysInYear= 384, then RHweekday==TUES. 
	if ((DaysInYear==385)&&(RHweekday==THUR)) setNitsavimVayelech();
	if ((DaysInYear==385)&&(RHweekday==SAT)) {
		setMatotMassei(); setNitsavimVayelech(); 
		if (loc=="Diaspora") setChukatBalaq(); 
	}
	return ;
}



/*
var parsha = new parshaArray( "Bereishit", "Noach", "Lech Lecha", "Vayeira", "Chayei Sarah", "Toledot", "Vayeitzei", "Vayishlach", "Vayieishev", "Mikeitz", "Vayigash", "Vayechi", "Shemot", "Va'eira", "Bo", "Beshalach", "Yitro", "Mishpatim", "Terumah", "Tetzaveh", "Ki Tisa", "Yayekhel", "Pekudei", "Vayikra", "Tzav", "Shemini", "Tazria", "Metzora", "Acharei Mot", "Kedoshim", "Emor", "Behar", "Bechukotai", "Bamidbar", "Nasso", "Beha'alotcha", "Shelach", "Korach", "Chukat", "Balak", "Pinchas", "Mattot", "Masei", "Devarim", "Va'etchanan", "Eikev", "Re'eh", "Shoftim", "Ki Teitzei", "Ki Tavo", "Nitzavim", "Vayeilech", "Haazinu", "Vezot Haberachah" ) ; 

var haftarah = new parshaArray( "Bereishit", "Noach", "Lech Lecha", "Vayeira", "Chayei Sarah", "Toledot", "Vayeitzei", "Vayishlach", "Vayieishev", "Mikeitz", "Vayigash", "Vayechi", "Shemot", "Va'eira", "Bo", "Beshalach", "Yitro", "Mishpatim", "Terumah", "Tetzaveh", "Ki Tisa", "Yayekhel", "Pekudei", "Vayikra", "Tzav", "Shemini", "Tazria", "Metzora", "Acharei Mot", "Kedoshim", "Emor", "Behar", "Bechukotai", "Bamidbar", "Nasso", "Beha'alotcha", "Shelach", "Korach", "Chukat", "Balak", "Pinchas", "Mattot", "Masei", "Devarim", "Va'etchanan", "Eikev", "Re'eh", "Shoftim", "Ki Teitzei", "Ki Tavo", "Nitzavim", "Vayeilech", "Haazinu", "Vezot Haberachah" ) ; 
*/

//============================================================================================

