
<!-- to hide script contents from old browsers

// ******************************************
//   Today's Date
// ******************************************

Style = 3; //pick a style from below

/*------------------------------
Style 1: March 17, 2000
Style 2: Mar 17, 2000
Style 3: Saturday March 17, 2000
Style 4: Sat Mar 17, 2000
Style 5: Sat March 17, 2000
Style 6: 17 March 2000
Style 7: 17 Mar 2000
Style 8: 17 Mar 00
Style 9: 3/17/00
Style 10: 3-17-00
Style 11: Saturday March 17
--------------------------------*/

var months = new Array();
months[1] = "January";  months[7] = "July";
months[2] = "February"; months[8] = "August";
months[3] = "March";    months[9] = "September";
months[4] = "April";    months[10] = "October";
months[5] = "May";      months[11] = "November";
months[6] = "June";     months[12] = "December";

var months2 = new Array();
months2[1] = "Jan"; months2[7] = "Jul";
months2[2] = "Feb"; months2[8] = "Aug";
months2[3] = "Mar"; months2[9] = "Sep";
months2[4] = "Apr"; months2[10] = "Oct";
months2[5] = "May"; months2[11] = "Nov";
months2[6] = "Jun"; months2[12] = "Dec";

var days = new Array();
days[1] = "Sunday,";    days[5] = "Thursday,";
days[2] = "Monday,";    days[6] = "Friday,";
days[3] = "Tuesday,";   days[7] = "Saturday,";
days[4] = "Wednesday,";

var days2 = new Array();
days2[1] = "Sun"; days2[5] = "Thu";
days2[2] = "Mon"; days2[6] = "Fri";
days2[3] = "Tue"; days2[7] = "Sat";
days2[4] = "Wed";

var todaysdate = new Date();
var date  = todaysdate.getDate();
var day  = todaysdate.getDay() + 1;
var month = todaysdate.getMonth() + 1;
var yy = todaysdate.getYear();
var year = (yy < 1000) ? yy + 1900 : yy;
var year2 = 2000 - year; year2 = (year2 < 10) ? "0" + year2 : year2;

var dateline = new Array();
dateline[1] = months[month] + " " + date + ", " + year;
dateline[2] = months2[month] + " " + date + ", " + year;
dateline[3] = days[day] + " " + months[month] + " " + date + ", " +
year;
dateline[4] = days2[day] + " " + months2[month] + " " + date + ", " +
year;
dateline[5] = days2[day] + " " + months[month] + " " + date + ", " +
year;
dateline[6] = date + " " + months[month] + " " + year;
dateline[7] = date + " " + months2[month] + " " + year;
dateline[8] = date + " " + months2[month] + " " + year2;
dateline[9] = month + "/" + date + "/" + year2;
dateline[10] = month + "-" + date + "-" + year2;
dateline[11] = days[day] + " " + months[month] + " " + date;


 /*
  * This script was adapted from C sources written by
  * Scott E. Lee, which contain the following copyright notice:
  *
  * Copyright 1993-1995, Scott E. Lee, all rights reserved.
  * Permission granted to use, copy, modify, distribute and sell so long as
  * the above copyright and this permission statement are retained in all
  * copies.  THERE IS NO WARRANTY - USE AT YOUR OWN RISK.
  *
  * Bill Hastings
  * RBI Software Systems
  * bhastings@rbi.com
  */

var GREG_SDN_OFFSET = 32045,
  DAYS_PER_5_MONTHS = 153,
  DAYS_PER_4_YEARS = 1461,
  DAYS_PER_400_YEARS = 146097;

var HALAKIM_PER_HOUR = 1080,
  HALAKIM_PER_DAY = 25920,
  HALAKIM_PER_LUNAR_CYCLE = ((29 * HALAKIM_PER_DAY) + 13753),
  HALAKIM_PER_METONIC_CYCLE = (HALAKIM_PER_LUNAR_CYCLE * (12 * 19 + 7));

var HEB_SDN_OFFSET = 347997,
  NEW_MOON_OF_CREATION = 31524,

  NOON = (18 * HALAKIM_PER_HOUR),
  AM3_11_20 = ((9 * HALAKIM_PER_HOUR) + 204),
  AM9_32_43 = ((15 * HALAKIM_PER_HOUR) + 589);

var SUN = 0,
  MON = 1,
  TUES = 2,
  WED = 3,
  THUR = 4,
  FRI = 5,
  SAT = 6;

var today = null,
  afterSundown = false,
  hebrewMonth = 0,
  hebrewDate = 0,
  hebrewYear = 0,
  metonicCycle = 0,
  metonicYear = 0,
  moladDay = 0,
  moladHalakim = 0;

var hMonth = new
hebrewmontharr("Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar II","Nisan","Iyyar","Sivan","Tammuz","Av","Elul");
var mpy = new
monthsperyeararr(12,12,13,12,12,13,12,13,12,12,13,12,12,13,12,12,13,12,13);


function hebrewmontharr(m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13)
{
  this[0] = m0; this[1] = m1; this[2] = m2; this[3] = m3;
  this[4] = m4; this[5] = m5; this[6] = m6; this[7] = m7;
  this[8] = m8; this[9] = m9; this[10] = m10; this[11] = m11;
  this[12] = m12; this[13] = m13;
}

function monthsperyeararr(m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16,m17,m18)
{
  this[0] = m0; this[1] = m1; this[2] = m2; this[3] = m3;
  this[4] = m4; this[5] = m5; this[6] = m6; this[7] = m7;
  this[8] = m8; this[9] = m9; this[10] = m10; this[11] = m11;
  this[12] = m8; this[13] = m13; this[14] = m14; this[15] = m15;
  this[16] = m16; this[17] = m17; this[18] = m18;
}

function getToday()
{
  if(today == null) {
   today = new Date();

   afterSundown = (today.getHours() >= 19);
  }
}

function getFullYear(d)
{
     var y = d.getYear();

     if (y < 1000)
      y += 1900;

     return y;
}

function displayHebrewDate()
{
  if(hebrewDate != 0 && hebrewMonth != 0 && hebrewYear != 0)
   document.writeln(hebrewDate + " " + hMonth[hebrewMonth-1] + " " +
hebrewYear);
}

function GregorianToSdn(inputYear,inputMonth,inputDay)
{
var year = 0,
   month = 0,
   sdn;

  // Make year a positive number
  if (inputYear < 0)
   year = inputYear + 4801;
  else
   year = inputYear + 4800;

  // Adjust the start of the year
  if (inputMonth > 2) {
   month = inputMonth - 3;
  }
  else {
   month = inputMonth + 9;
   year--;
  }

  sdn  = Math.floor((Math.floor(year / 100) * DAYS_PER_400_YEARS) / 4);
  sdn += Math.floor(((year % 100) * DAYS_PER_4_YEARS) / 4);
  sdn += Math.floor((month * DAYS_PER_5_MONTHS + 2) / 5);
  sdn += inputDay - GREG_SDN_OFFSET;

  if(afterSundown) {
   sdn++;
  }

  return sdn;
}

function SdnToHebrew(sdn)
{
  var inputDay,
   tishri1 = 0,
   tishri1After = 0,
   yearLength = 0,

  inputDay = sdn - HEB_SDN_OFFSET;

  FindTishriMolad(inputDay);
  tishri1 = Tishri1(metonicYear,moladDay,moladHalakim);

  if (inputDay >= tishri1) {
   // It found Tishri 1 at the start of the year.
   hebrewYear = metonicCycle * 19 + metonicYear + 1;
   if (inputDay < tishri1 + 59) {
    if (inputDay < tishri1 + 30) {
     hebrewMonth = 1;
     hebrewDate = inputDay - tishri1 + 1;
    }
    else {
     hebrewMonth = 2;
     hebrewDate = inputDay - tishri1 - 29;
    }
    return;
   }

   // We need the length of the year to figure this out,
   // so find Tishri 1 of the next year.

   moladHalakim += HALAKIM_PER_LUNAR_CYCLE * mpy[metonicYear];
   moladDay += Math.floor(moladHalakim / HALAKIM_PER_DAY);
   moladHalakim = moladHalakim % HALAKIM_PER_DAY;
   tishri1After = Tishri1((metonicYear + 1) % 19,moladDay,moladHalakim);
  }
  else {
   // It found Tishri 1 at the end of the year.
   hebrewYear = metonicCycle * 19 + metonicYear;
   if (inputDay >= tishri1 - 177) {
    // It is one of the last 6 months of the year.
    if (inputDay > tishri1 - 30) {
     hebrewMonth = 13;
     hebrewDate = inputDay - tishri1 + 30;
    }
    else if (inputDay > tishri1 - 60) {
     hebrewMonth = 12;
     hebrewDate = inputDay - tishri1 + 60;
    }
    else if (inputDay > tishri1 - 89) {
     hebrewMonth = 11;
     hebrewDate = inputDay - tishri1 + 89;
    }
    else if (inputDay > tishri1 - 119) {
     hebrewMonth = 10;
     hebrewDate = inputDay - tishri1 + 119;
    }
    else if (inputDay > tishri1 - 148) {
     hebrewMonth = 9;
     hebrewDate = inputDay - tishri1 + 148;
    }
    else {
     hebrewMonth = 8;
     hebrewDate = inputDay - tishri1 + 178;
    }
    return;
   }
   else {
    if (mpy[(hebrewYear - 1) % 19] == 13) {
     hebrewMonth = 7;
     hebrewDate = inputDay - tishri1 + 207;
     if (hebrewDate > 0)
      return;

     hebrewMonth--;
     hebrewDate += 30;
     if (hebrewDate > 0)
      return;

     hebrewMonth--;
     hebrewDate += 30;
    }
    else {
     hebrewMonth = 6;
     hebrewDate = inputDay - tishri1 + 207;
     if (hebrewDate > 0)
      return;

     hebrewMonth--;
     hebrewDate += 30;
    }
    if (hebrewDate > 0)
     return;

    hebrewMonth--;
    hebrewDate += 29;
    if (hebrewDate > 0)
     return;

    // We need the length of the year to figure this out,
	// so find Tishri 1 of this year.

    tishri1After = tishri1;
    FindTishriMolad(moladDay - 365);
    tishri1 = Tishri1(metonicYear,moladDay,moladHalakim);
   }
  }

  yearLength = tishri1After - tishri1;
  moladDay = inputDay - tishri1 - 29;
  if (yearLength == 355 || yearLength == 385) {
   // Heshvan has 30 days
   if (moladDay <= 30) {
    hebrewMonth = 2;
    hebrewDate = moladDay;
    return;
   }
   moladDay -= 30;
  }
  else {
   // Heshvan has 29 days
   if (moladDay <= 29) {
    hebrewMonth = 2;
    hebrewDate = moladDay;
    return;
   }
   moladDay -= 29;
  }

  // It has to be Kislev.
  hebrewMonth = 3;
  hebrewDate = moladDay;
}

function FindTishriMolad(inputDay)
{
  // Estimate the metonic cycle number.  Note that this may be an under
  // estimate because there are 6939.6896 days in a metonic cycle not
  // 6940,but it will never be an over estimate.  The loop below will
  // correct for any error in this estimate.
  metonicCycle = Math.floor((inputDay + 310) / 6940);

  // Calculate the time of the starting molad for this metonic cycle.
  MoladOfMetonicCycle();

  // If the above was an under estimate,increment the cycle number until
  // the correct one is found.  For modern dates this loop is about 98.6%
  // likely to not execute,even once,because the above estimate is
  // really quite close.
  while (moladDay < inputDay - 6940 + 310) {
   metonicCycle++;
   moladHalakim += HALAKIM_PER_METONIC_CYCLE;
   moladDay += Math.floor(moladHalakim / HALAKIM_PER_DAY);
   moladHalakim = moladHalakim % HALAKIM_PER_DAY;
  }

  // Find the molad of Tishri closest to this date.
  for (metonicYear = 0; metonicYear < 18; metonicYear++) {
   if (moladDay > inputDay - 74)
    break;

   moladHalakim += HALAKIM_PER_LUNAR_CYCLE * mpy[metonicYear];
   moladDay += Math.floor(moladHalakim / HALAKIM_PER_DAY);
   moladHalakim = moladHalakim % HALAKIM_PER_DAY;
  }
}

function MoladOfMetonicCycle()
{
  var r1,r2,d1,d2;

  // Start with the time of the first molad after creation.
  r1 = NEW_MOON_OF_CREATION;

  // Calculate gMetonicCycle * HALAKIM_PER_METONIC_CYCLE.  The upper 32
  // bits of the result will be in r2 and the lower 16 bits will be in r1.
  r1 += metonicCycle * (HALAKIM_PER_METONIC_CYCLE & 0xFFFF);
  r2 = r1 >> 16;
  r2 += metonicCycle * ((HALAKIM_PER_METONIC_CYCLE >> 16) & 0xFFFF);

  // Calculate r2r1 / HALAKIM_PER_DAY.  The remainder will be in r1,the
  // upper 16 bits of the quotient will be in d2 and the lower 16 bits
  // will be in d1.
  d2 = Math.floor(r2 / HALAKIM_PER_DAY);
  r2 -= d2 * HALAKIM_PER_DAY;
  r1 = (r2 << 16) | (r1 & 0xFFFF);
  d1 = Math.floor(r1 / HALAKIM_PER_DAY);
  r1 -= d1 * HALAKIM_PER_DAY;

  moladDay = (d2 << 16) | d1;
  moladHalakim = r1;
}

function Tishri1(metonicYear,moladDay,moladHalakim)
{
  var tishri1 = moladDay;
  var dow = tishri1 % 7;

  var leapYear = metonicYear == 2 || metonicYear == 5 || metonicYear == 7 ||
metonicYear == 10 ||
      metonicYear == 13 || metonicYear == 16 || metonicYear == 18;

  var lastWasLeapYear = metonicYear == 3 || metonicYear == 6 || metonicYear
== 8 || metonicYear == 11 ||
        metonicYear == 14 || metonicYear == 17 || metonicYear == 0;

  // Apply rules 2,3 and 4

  if ((moladHalakim >= NOON) ||
   ((!leapYear) && dow == TUES && moladHalakim >= AM3_11_20) ||
   (lastWasLeapYear && dow == MON && moladHalakim >= AM9_32_43))
  {
   tishri1++;
   dow++;
   if (dow == 7)
    dow = 0;
  }

  // Apply rule 1 after the others 
  // because it can cause an additional delay of one day.

  if (dow == WED || dow == FRI || dow == SUN) {
   tishri1++;
  }

  return tishri1;
}

// end hiding contents from old browsers  -->
