//<!-- to hide script contents from old browsers
	/*	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 Systemsbhastings@rbi.com
	 *  ALL OTHER CONTENT ON THIS PAGE IS copyright (c) 2002, John Bruno Hare,
	 *  All rights reserved, and may not be reproduced without permission
	 *  of the copyright holder. */
var jours=new Array('Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi');
	 
	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 gWeekday = new weekdayarr("Sun","Mon","Tues","Wednes","Thurs","Fri","Satur");
	var gMonth = new gregmontharr("January","February","March","April","May","June","July","August","September","October","November","December");
	var hMonth = new hebrewmontharr("Tishri","Heshvan","Kislev","Tevet","Shevat","AdarI","AdarII","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 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();
			
			afterSundown = (today.getHours() >= 19);
		}
	}

	function displayWeekday()
	{
		document.writeln(gWeekday[today.getDay()] + "day");
	}

	function getFullYear(d)
	{
	    var y = d.getYear();
	    
	    if (y < 1000)
	    	y += 1900;
	   
	    return y;
	}	
	
	function displayGregorianDate()
	{
		document.writeln(gMonth[today.getMonth()] + " " + today.getDate() + ", " + getFullYear(today));
	}

	function displayHebrewDate()
	{
		if(hebrewDate != 0 && hebrewMonth != 0 && hebrewYear != 0)
			return(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;
	}
function displaybendate() {getToday();SdnToHebrew(GregorianToSdn(getFullYear(today),today.getMonth()+1,today.getDate()));return displayHebrewDate();}
/* Fin 1er JS #ben */
var lat = 0, lng = 0;	// sun's location
var latd = -1, latm = 0;// lat on earth
var lngd = -1, lngm = 0;// long on earth
var ns = 'N', ew = 'E';	// hemisphere
var dst = 0;			// daylight saving time
var ampm = 0;			// am/pm or 24 hour display
var tz=1;//C'est là qu'on change l'heure d'hiver et l'heure d'été 2 pout l'été et 1 pour l hiver

function hideShow(id)
{   
  if (document.getElementById) 
    {
		var obj = document.getElementById(id);
		
		if(obj.isShowing) 
                   {
			obj.style.display = 'none';
			obj.isShowing = false;
		    }
                   else
                    {
			obj.style.display = '';
			obj.isShowing = true;
		    }
	}
 }
 
function leap(y) {
	return ((y % 400 == 0) || (y % 100 != 0 && y % 4 == 0));
}
function civMonthLength(month, year) {
	if(month == 2) return 28 + leap(year);
	else if(month == 4 || month == 6 || month == 9 || month == 11) return 30;
	else return 31;
}
function l(str) {
	var curdate = new Date();
	var day = curdate.getDate();
	var mois=new Array('Janvier','Fevrier','Mars','Avril','Mai','Juin','Juillet','Aout','Septembre','Octobre','Novembre','Decembre');
	var month = curdate.getMonth()+1;
	var benmois = mois[curdate.getMonth()];
	var year = curdate.getYear()+1900;
 	
	i = str.indexOf(",");
	ns = str.substring(0, i);
	str = str.substring(i+1, str.length);

	i = str.indexOf(",");
	latd = eval(str.substring(0, i));
	str = str.substring(i+1, str.length);

	i = str.indexOf(",");
	latm = eval(str.substring(0, i));
	str = str.substring(i+1, str.length);

	i = str.indexOf(",");
	ew = str.substring(0, i);
	str = str.substring(i+1, str.length);

	i = str.indexOf(",");
	lngd = eval(str.substring(0, i));
	str = str.substring(i+1, str.length);

	i = str.indexOf(",");
	lngm = eval(str.substring(0, i));
	//if ((day<27) && (month<=10) && (year=2002)) 
	//{	tz = eval(str.substring(i+1, str.length))+1;}
	//	else
	//{  tz = eval(str.substring(i+1, str.length));}
	//tz = eval(str.substring(i+1, str.length));
	d = day;m = month ;y = year;
	if((latd != -1) && (lngd != -1)) {doit("j");} else doit("yo");
	return (jours[curdate.getDay()]+' '+day+' '+benmois);
}
function doit(title) {
	//document.write ("day:" + d +" month:" + m); OK
	var nsi, ewi;
	var i;
	//if(title != "")
 	//document.data.latd.value = latd;
	//document.data.latm.value = latm;
	i = ns.indexOf("N"); nsi = (i != -1) ? 0 : 1;
	//document.data.lngd.value = lngd;
	//document.data.lngm.value = lngm;
	i = ew.indexOf("W");
	ewi = (i != -1) ? 0 : 1;
	var adj = tz; //OK
	var time;
	var sunrise, sunset;
	var shaa_zmanit;
	time = suntime(d, m, y, 90, 50, lngd, lngm, ewi, latd, latm, nsi, adj);
	if(time[1] == 0) {
		sunrise = time[2];
		sunset  = time[3];
		hanetz = timeadj(sunrise, ampm);
		shkia = timeadj(sunset, ampm);
		//document.write ("Sunset:" + sunset +" sunrise:" + sunrise);	
		shaa_zmanit = (sunset  - sunrise) / 12;
	}
	time = suntime(d, m, y, 106, 6, lngd, lngm, ewi, latd, latm, nsi, adj);
	if(time[1] == 0)
		alot= timeadj(time[2], ampm);
	time = suntime(d, m, y, 101, 0, lngd, lngm, ewi, latd, latm, nsi, adj);
	if(time[1] == 0)
		misheyakir= timeadj(time[2], ampm);

	time = suntime(d, m, y, 96, 0, lngd, lngm, ewi, latd, latm, nsi, adj);

	if(time[1] == 0) tzeit= timeadj(time[3], ampm);

	chema = timeadj(sunrise + shaa_zmanit * 3, ampm);
	tefillah= timeadj(sunrise + shaa_zmanit * 4, ampm);
	hatsot= timeadj(sunrise + shaa_zmanit * 6, ampm);
	minchag = timeadj(sunrise + shaa_zmanit * 6.5, ampm);
	minchak = timeadj(sunrise + shaa_zmanit * 9.5, ampm);
	plag = timeadj(sunrise + shaa_zmanit * 10.75, ampm);
		// jonathan : motzei shabbat
		var yom = new Date (y, m-1, d);
		d1=d+(6-yom.getDay());
		yom = new Date (y, m-1, d1);
	
		time = suntime(d1, m, y, 98, 30, lngd, lngm, ewi, latd, latm, nsi, adj);    
		                                                                           
		if(time[1] == 0) motseiChabbat = timeadj(time[3], ampm);

		var day_before = new Date(yom.getTime() - 86400000);
		db = day_before.getDate();
		mb = day_before.getMonth() + 1;
		yb = day_before.getYear();
	
		if(yb < 1900) yb += 1900;
		time = suntime(db, mb, yb, 90, 50, lngd, lngm, ewi, latd, latm, nsi, adj);
		knissatChabbat= timeadj(time[3] - 18.0/60.0, ampm);
}
function debutchabbat () { return ( knissatChabbat); }
function finchabbat  () { return ( motseiChabbat ); }
//	end hiding contents from old browsers  -->