
        <!-- to hide script contents from old browsers

        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,

                hebrewMonth = 0,

                hebrewDate = 0,

                hebrewYear = 0,

                metonicCycle = 0,

                metonicYear = 0,

                moladDay = 0,

                moladHalakim = 0;

        var gWeekday = new weekdayarr("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");

        var gMonth = new gregmontharr("January","February","March","April","May","June","July","August","September","Octouber","November","December");

        var hMonth = new hebrewmontharr("Tishreya","Heshvana","Kisleva","Tevata","Shvata","Adara1","Adara2","Nisana","Iyara","Sivana","Tamuza","Ava","Elulya");

        var mpy = new monthsperyeararr(12,12,13,12,12,13,12,13,12,12,13,12,12,13,12,12,13,12,13);

        function weekdayarr(d0,d1,d2,d3,d4,d5,d6)

        {

                this[0] = d0; this[1] = d1; this[2] = d2; this[3] = d3;

                this[4] = d4; this[5] = d5; this[6] = d6;

        }

        function gregmontharr(m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11)

        {

                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;

        }

        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();

        }

        function displayWeekday()

        {

                getToday();


                document.writeln(gWeekday[today.getDay()]);

        }

        function displaydaytoShabbat()

        {

                getToday();

                var n;

                var a=gWeekday[today.getDay()];

               if (a=="Sunday"){n=" 6 days before the Shabbat";}

                if (a=="Monday"){n=" 5 days before the Shabbat";}

                if (a=="Tuesday"){n=" 4 days before the Shabbat";}

                if (a=="Wednesday"){n=" 3 days before the Shabbat";}

                if (a=="Thursday"){n=" 2 days before the Shabbat";}

                if (a=="Friday"){n=" 1 day before the Shabbat";}

				 		if (a=="Saturday"){n="Today is Shabbat";}

		 document.writeln(n);

        }

        function displayGregorianDate()

        {

                getToday();

                
document.writeln(today.getDate() + " " + gMonth[today.getMonth()]  + ", " + (today.getYear()));


        }

        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;

                getToday();

                // 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;

                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 -->


