function HeDate(year,month,day)
{
		d=day;
		m=month;
        y=year;

		
		if (y==2008){
            if ((m==3 && d>=8)||(m==4 && d<=5)) {if (m==3) {d= d-7;} else {d= d+24;} m= 6; y=5768;}
            else if ((m==4 && d>=6)||(m==5 && d<=5)) {if (m==4) {d= d-5;} else {d= d+25;} m= 7; y=5768;}
            else if ((m==5 && d>=6)||(m==6 && d<=3)) {if (m==5) {d= d-5;} else {d= d+26;} m= 8; y=5768;}
            else if ((m==6 && d>=4)||(m==7 && d<=3)) {if (m==6) {d= d-3;} else {d= d+27;} m= 9; y=5768;}
            else if ((m==7 && d>=4)||(m==8 && d<=1)) {if (m==7) {d= d-3;} else {d= d+28;} m= 10; y=5768;}
            else if (m==8 && d>=2) {d= d-1; m= 11; y=5768;}
            else if (m==9 && d<=29) {d= d; m= 12; y=5768;}
            else if ((m==9 && d>=30)||(m==10 && d<=29)) {if (m==9) {d= d-29;} else {d= d+1;} m= 1; y=5769;}
            else if ((m==10 && d>=30)||(m==11 && d<=27)) {if (m==10) {d= d-29;} else {d= d+2;} m= 2; y=5769;}
            else if ((m==11 && d>=28)||(m==12 && d<=27)) {if (m==11) {d= d-27;} else {d= d+3;} m= 3; y=5769;}
            else if (m==12 && d>=28) {d= d-27; m= 4; y=5769;}
        }
        else if (y==2009){
            if (m==1 && d<=25) {d= d+4; m= 4; y=5769;}
            else if ((m==1 && d>=26)||(m==2 && d<=24)) {if (m==1) {d= d-25;}else {d= d+6;} m= 5; y=5769;}
            else if ((m==2 && d>=25)||(m==3 && d<=25)) {if (m==2) {d= d-24;}else {d= d+4;} m= 6; y=5769;}
            else if ((m==3 && d>=26)||(m==4 && d<=24)) {if (m==3) {d= d-25;}else {d= d+6;} m= 7; y=5769;}
            else if ((m==4 && d>=25)||(m==5 && d<=23)) {if (m==4) {d= d-24;}else {d= d+6;} m= 8; y=5769;}
            else if ((m==5 && d>=24)||(m==6 && d<=22)) {if (m==5) {d= d-23;}else {d= d+8;} m= 9; y=5769;}
            else if ((m==6 && d>=23)||(m==7 && d<=21)) {if (m==6) {d= d-22;}else {d= d+8;} m= 10; y=5769;}
            else if ((m==7 && d>=22)||(m==8 && d<=20)) {if (m==7) {d= d-21;}else {d= d+10;} m= 11; y=5769;}
            else if ((m==8 && d>=21)||(m==9 && d<=18)) {if (m==8) {d= d-20;}else {d= d+11;} m= 12; y=5769;}
            else if ((m==9 && d>=19)||(m==10 && d<=18)) {if (m==9) {d= d-18;}else {d= d+12;} m= 1; y=5770;}
            else if ((m==10 && d>=19)||(m==11 && d<=17)) {if (m==10) {d= d-18;}else {d= d+13;} m= 2; y=5770;}
            else if ((m==11 && d>=18)||(m==12 && d<=17)) {if (m==11) {d= d-17;}else {d= d+13;} m= 3; y=5770;}
            else if (m==12 && d>=18) {d= d-17;  m= 4; y=5770;}
        }
        else if (y==2010){
            if (m==1 && d<=15) {d= d+14; m= 4; y=5770;}
            else if ((m==1 && d>=16)||(m==2 && d<=14)) {if (m==1) {d= d-15;}else {d= d+16;} m= 5; y=5770;}
            else if ((m==2 && d>=15)||(m==3 && d<=15)) {if (m==2) {d= d-14;}else {d= d+14;} m= 6; y=5770;}
            else if ((m==3 && d>=16)||(m==4 && d<=14)) {if (m==3) {d= d-15;}else {d= d+16;} m= 7; y=5770;}
            else if ((m==4 && d>=15)||(m==5 && d<=13)) {if (m==4) {d= d-14;}else {d= d+16;} m= 8; y=5770;}
            else if ((m==5 && d>=14)||(m==6 && d<=12)) {if (m==5) {d= d-13;}else {d= d+18;} m= 9; y=5770;}
            else if ((m==6 && d>=13)||(m==7 && d<=11)) {if (m==6) {d= d-12;}else {d= d+18;} m= 10; y=5770;}
            else if ((m==7 && d>=12)||(m==8 && d<=10)) {if (m==7) {d= d-11;}else {d= d+20;} m= 11; y=5770;}
            else if ((m==8 && d>=11)||(m==9 && d<=8)) {if (m==8) {d= d-10;}else {d= d+21;} m= 12; y=5770;}
        }
}

function getYear(display){return y;}HeDate.prototype.getYear = getYear;

function getMonth(){
    if (LeapYear(y)==true && m==6){
        if (d>0)
            return month(m)+ " ב'";
        else
            return month(m)+ " א'";
        }
    else
        return month(m);
   }HeDate.prototype.getMonth = getMonth;

function getDate(){return gimatria(d);}
HeDate.prototype.getDate = getDate;


function toString(){
    var ans=""
	var num=""
    var ThisMonthName=this.getMonth();
	var ThisDayName=this.getDate()
	var holiday=""

  if (ThisMonthName == "תשרי") {
    if (ThisDayName == "א'") {holiday = "א' דראש השנה";}
    if (ThisDayName ==  "ב'") {holiday = "ב' דראש השנה"; }
    if (ThisDayName ==  "ג'") {holiday = "צום גדליה"; }
    if (ThisDayName == "ט'") {holiday = "ערב יום הכיפורים"; }
    if (ThisDayName == "י'") {holiday = "יום הכיפורים"; }
    if (ThisDayName == 'ט"ו') {holiday = "סוכות"; }
    if (ThisDayName == 'ט"ז') {holiday = "א' דחול המועד סוכות"; }
    if (ThisDayName == 'י"ז') {holiday = "ב' דחול המועד סוכות"; }
    if (ThisDayName == 'י"ח') {holiday = "ג' דחול המועד סוכות"; }
    if (ThisDayName == 'י"ט') {holiday = "ד' דחול המועד סוכות"; }
    if (ThisDayName == "כ'") {holiday = "ה' דחול המועד סוכות"; }
    if (ThisDayName == 'כ"א') {holiday = "ו' דחול המועד סוכות - הושענא רבא"; }
    if (ThisDayName == 'כ"ב') {holiday = "שמחת תורה"; }
  }

  if (ThisMonthName == "כסלו") { 
    if (ThisDayName == 'כ"ה') {holiday = "נר ראשון של חנוכה"; }
    if (ThisDayName == 'כ"ו') {holiday = "נר שני של חנוכה"; }
    if (ThisDayName == 'כ"ז') {holiday = "נר שלישי של חנוכה"; }
    if (ThisDayName == 'כ"ח') {holiday = "נר רביעי של חנוכה"; }
    if (ThisDayName == 'כ"ט') {holiday = "נר חמישי של חנוכה"; }
  }

  if (ThisMonthName == "טבת") { 
    if (ThisDayName == "א'") {holiday = "נר שישי של חנוכה"; }
    if (ThisDayName == "ב'") {holiday = "נר שביעי של חנוכה"; }
    if (ThisDayName == "ג'") {holiday = "נר שמיני של חנוכה"; }
    if (ThisDayName == "י'") {holiday = "צום עשרה בטבת"; }
  }

  if (ThisMonthName == "שבט") {
    if (ThisDayName == 'ו"ט') {holiday = "חג האילנות"; }
  }

  // ימים מיוחדים בחודש אדר בהנחה שאין חודש אדר נוסף (שנה מעוברת)
  if (ThisMonthName == "אדר") {
    if (ThisDayName == 'י"ג') {holiday = "תענית אסתר"; }
    if (ThisDayName == 'י"ד') {holiday = "פורים"; }
    if (ThisDayName == 'ו"ט') {holiday = "שושן פורים"; }
  } 

  // ימים מיוחדים בחודש אדר ב' במידה והוא קיים
  if (ThisMonthName == "אדר ב'") {
    if (ThisDayName == 'י"ג') {holiday = "תענית אסתר"; }
    if (ThisDayName == 'י"ד') {holiday = "פורים"; }
    if (ThisDayName == 'י"ה') {holiday = "שושן פורים"; }
  } 

  if (ThisMonthName == "ניסן") {
    if (ThisDayName == 'י"ד') {holiday = "ותענית בכורות וערב הפסח"; }
    if (ThisDayName == 'ו"ט') {holiday = "חג ראשון של פסח"; }
    if (ThisDayName == 'ז"ט') {holiday = "א' חול המועד פסח"; }
    if (ThisDayName == 'י"ז') {holiday = "ב' חול המועד פסח"; }
    if (ThisDayName == 'י"ח') {holiday = "ג' חול המועד פסח"; }
    if (ThisDayName == 'י"ט') {holiday = "ד' חול המועד פסח"; }
    if (ThisDayName == "כ'") {holiday = "ה' חול המועד פסח"; }
    if (ThisDayName == 'כ"א') {holiday = "חג שני של פסח"; }
    if (ThisDayName == 'כ"ז') {holiday = "יום הזיכרון לשואה ולגבורה"; }
  }   

  if (ThisMonthName == "אייר") {
   if (ThisDayName == "ד'") {holiday = "יום הזיכרון לחללי מערכות ישראל"; }
    if (ThisDayName == "ה'") {holiday = "יום העצמאות ה - ";
	                     holiday += (this.year-5708);
   						 holiday += " למדינת ישראל"; }
   if (ThisDayName == 'י"ח') {holiday = "ל\"ג בעומר - הדלקת מדורות"; }
   if (ThisDayName == 'כ"ח') {holiday = "יום ירושלים"; }
  }

  if (ThisMonthName == "סיוון") {
    if (ThisDayName == "ה'") {holiday = "ערב שבועות"; }
    if (ThisDayName == "ו'") {holiday = "שבועות"; }
    if (ThisDayName == "ז'") {holiday = "שבועות"; }
  }

  if (ThisMonthName == "תמוז") {
    if (ThisDayName == 'י"ז') {holiday = "צום י\"ז בתמוז"; }
  }

  if (ThisMonthName == "אלול") {
    if (ThisDayName == 'כ"ט') {holiday = "ערב ראש השנה";}
  }

	
	return (ans + ThisDayName + " ב" + ThisMonthName + "<br><font color=#C6BB63>" + holiday +"</font>");
}HeDate.prototype.toString = toString;

function gimatria(num){
	var ans="";
	var temp=num;
	var abc=" אבגדהוזחטיכלמנסעפצקרשת"

	if (temp>=100 && temp<=999) 	//מאות
		{var hundreds = (temp-temp%100)/100;
		temp=temp%100;
		while (hundreds >= 4)
			{ans = ans + abc.charAt(22);
			hundreds = hundreds - 4;}
		if (hundreds >> 0)
			ans = ans + abc.charAt(18 + hundreds);}

	if (temp>=10 && temp<=99) 	//עשרות
		{var tens=(temp-temp%10)/10;
		temp=temp%10;
		if ((tens==1) && ((temp==5)||(temp==6))) //ט"ו  ט"ז
			{tens = tens-1;
			temp = temp + 1;}
		ans = ans + abc.charAt(9 + tens);
		}

	if (temp>=1 && temp<=9) 	// יחידות
		ans = ans + abc.charAt(temp);

	if (ans.length>=2)		//הוספת גרש או גרשיים
		ans = ans.substring(0,(ans.length-1)) + '"' + ans.substring(ans.length-1);
	else if (ans.length==1)
		ans =ans + "'";

	if (num>=1000 && num<=9999) //אלפים
		ans = abc.charAt((num-num%1000)/1000) + "'" + ans;

	return ans;
}

function LeapYear(year){
	year=year%19;

	if (year==3 || year==6 || year==8 || year==11 || year==14 || year==17 || year==0)
		return true;
	else
		return false;
}

function month(intMonth){
	var months = ['','תשרי','חשון','כסלו','טבת','שבט','אדר','ניסן','אייר','סיון','תמוז','אב','אלול']
	return months[intMonth];
}