 
g_days_in_month = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
j_days_in_month = new Array(31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29);
 
function div(a,b) {
  return Math.floor(a/b);
}

function gregorian_to_jalali(g /* array containing year, month, day*/ )
{
   var gy, gm, gd;
   var jy, jm, jd;
   var g_day_no, j_day_no;
   var j_np;
 
   var i;

   gy = g[0]-1600;
   gm = g[1]-1;
   gd = g[2]-1;

   g_day_no = 365*gy+div((gy+3),4)-div((gy+99),100)+div((gy+399),400);
   for (i=0;i<gm;++i)
      g_day_no += g_days_in_month[i];
   if (gm>1 && ((gy%4==0 && gy%100!=0) || (gy%400==0)))
      /* leap and after Feb */
      ++g_day_no;
   g_day_no += gd;
 
   j_day_no = g_day_no-79;
 
   j_np = div(j_day_no, 12053);
   j_day_no %= 12053;
 
   jy = 979+33*j_np+4*div(j_day_no,1461);
   j_day_no %= 1461;
 
   if (j_day_no >= 366) {
      jy += div((j_day_no-1),365);
      j_day_no = (j_day_no-1)%365;
   }
 
   for (i = 0; i < 11 && j_day_no >= j_days_in_month[i]; ++i) {
      j_day_no -= j_days_in_month[i];
   }
   jm = i+1;
   jd = j_day_no+1;

   return new Array(jy, jm, jd);
}

function jalali_to_gregorian(j /* array containing year, month, day*/ )
{
   var gy, gm, gd;
   var jy, jm, jd;
   var g_day_no, j_day_no;
   var leap;

   var i;

   jy = j[0]-979;
   jm = j[1]-1;
   jd = j[2]-1;

   j_day_no = 365*jy + div(jy,33)*8 + div((jy%33+3),4);
   for (i=0; i < jm; ++i)
      j_day_no += j_days_in_month[i];

   j_day_no += jd;

   g_day_no = j_day_no+79;

   gy = 1600 + 400*div(g_day_no,146097); /* 146097 = 365*400 + 400/4 - 400/100 + 400/400 */
   g_day_no = g_day_no % 146097;

   leap = 1;
   if (g_day_no >= 36525) /* 36525 = 365*100 + 100/4 */
   {
      g_day_no--;
      gy += 100*div(g_day_no,36524); /* 36524 = 365*100 + 100/4 - 100/100 */
      g_day_no = g_day_no % 36524;
      
      if (g_day_no >= 365)
         g_day_no++;
      else
         leap = 0;
   }

   gy += 4*div(g_day_no,1461); /* 1461 = 365*4 + 4/4 */
   g_day_no %= 1461;

   if (g_day_no >= 366) {
      leap = 0;

      g_day_no--;
      gy += div(g_day_no, 365);
      g_day_no = g_day_no % 365;
   }

   for (i = 0; g_day_no >= g_days_in_month[i] + (i == 1 && leap); i++)
      g_day_no -= g_days_in_month[i] + (i == 1 && leap);
   gm = i+1;
   gd = g_day_no+1;

   return new Array(gy, gm, gd);
}

function jalali_today() {
  Today = new Date();
  j = gregorian_to_jalali(new Array(
                          Today.getFullYear(),
                          Today.getMonth()+1,
                          Today.getDate()
                          ));
  
  
if (j[2] == 1) {
	j[2] = "&#1777;" ;
}
if (j[2] == 2) {
	j[2] = "&#1778;" ;
}
if (j[2] == 3) {
	j[2] = "&#1779;" ;
}
if (j[2] == 4) {
	j[2] = "&#1780;" ;
}
if (j[2] == 5) {
	j[2] = "&#1781;" ;
}
if (j[2] == 6) {
	j[2] = "&#1782;" ;
}
if (j[2] == 7) {
	j[2] = "&#1783;" ;
}
if (j[2] == 8) {
	j[2] = "&#1784;" ;
}
if (j[2] == 9) {
	j[2] = "&#1785;" ;
}
if (j[2] == 10) {
	j[2] = "&#1777;&#1776;" ;
}
if (j[2] == 11) {
	j[2] = "&#1777;&#1777;" ;
}
if (j[2] == 12) {
	j[2] = "&#1777;&#1778;" ;
}
if (j[2] == 13) {
	j[2] = "&#1777;&#1779;" ;
}
if (j[2] == 14) {
	j[2] = "&#1777;&#1780;" ;
}
if (j[2] == 15) {
	j[2] = "&#1777;&#1781;" ;
}
if (j[2] == 16) {
	j[2] = "&#1777;&#1782;" ;
}
if (j[2] == 17) {
	j[2] = "&#1777;&#1783;" ;
}
if (j[2] == 18) {
	j[2] = "&#1777;&#1784;" ;
}
if (j[2] == 19) {
	j[2] = "&#1777;&#1785;" ;
}
if (j[2] == 20) {
	j[2] = "&#1778;&#1776;" ;
}
if (j[2] == 21) {
	j[2] = "&#1778;&#1777;" ;
}
if (j[2] == 22) {
	j[2] = "&#1778;&#1778;" ;
}
if (j[2] == 23) {
	j[2] = "&#1778;&#1779;" ;
}
if (j[2] == 24) {
	j[2] = "&#1778;&#1780;" ;
}
if (j[2] == 25) {
	j[2] = "&#1778;&#1781;" ;
}
if (j[2] == 26) {
	j[2] = "&#1778;&#1782;" ;
}
if (j[2] == 27) {
	j[2] = "&#1778;&#1783;" ;
}
if (j[2] == 28) {
	j[2] = "&#1778;&#1784;" ;
}
if (j[2] == 29) {
	j[2] = "&#1778;&#1785;" ;
}
if (j[2] == 30) {
	j[2] = "&#1779;&#1776;" ;
}
if (j[2] == 31) {
	j[2] = "&#1779;&#1777;" ;
}
	
	
if (j[1] == 1) {
	j[1] = "&#1601;&#1585;&#1608;&#1585;&#1583;&#1610;&#1606;" ;
}
if (j[1] == 2) {
	j[1] = "&#1575;&#1585;&#1583;&#1610;&#1576;&#1607;&#1588;&#1578;" ;
}
if (j[1] == 3) {
	j[1] = "&#1582;&#1585;&#1583;&#1575;&#1583;" ;
}
if (j[1] == 4) {
	j[1] = "&#1578;&#1610;&#1585;" ;
}
if (j[1] == 5) {
	j[1] = "&#1605;&#1585;&#1583;&#1575;&#1583;" ;
}
if (j[1] == 6) {
	j[1] = "&#1588;&#1607;&#1585;&#1610;&#1608;&#1585;" ;
}
if (j[1] == 7) {
	j[1] = "&#1605;&#1607;&#1585;" ;
}
if (j[1] == 8) {
	j[1] = "&#1570;&#1576;&#1575;&#1606;" ;
}
if (j[1] == 9) {
	j[1] = "&#1570;&#1584;&#1585;" ;
}
if (j[1] == 10) {
	j[1] = "&#1583;&#1610;" ;
}
if (j[1] == 11) {
	j[1] = "&#1576;&#1607;&#1605;&#1606;" ;
}
if (j[1] == 12) {
	j[1] = "&#1575;&#1587;&#1601;&#1606;&#1583;" ;
}


if (j[0] == 1380) {
	j[0] = "&#1777;&#1779;&#1784;&#1777;" ;
}
if (j[0] == 1382) {
	j[0] = "&#1777;&#1779;&#1784;&#1778;" ;
}
if (j[0] == 1383) {
	j[0] = "&#1777;&#1779;&#1784;&#1779;" ;
}
if (j[0] == 1384) {
	j[0] = "&#1777;&#1779;&#1784;&#1780;" ;
}
if (j[0] == 1385) {
	j[0] = "&#1777;&#1779;&#1784;&#1781;" ;
}
if (j[0] == 1386) {
	j[0] = "&#1777;&#1779;&#1784;&#1782;" ;
}
if (j[0] == 1387) {
	j[0] = "&#1777;&#1779;&#1784;&#1783;" ;
}
if (j[0] == 1388) {
	j[0] = "&#1777;&#1779;&#1784;&#1784;" ;
}
if (j[0] == 1389) {
	j[0] = "&#1777;&#1779;&#1784;&#1785;" ;
}
if (j[0] == 1390) {
	j[0] = "&#1777;&#1779;&#1785;&#1776;" ;
}

  return j[2] + " " + j[1] +  " " + j[0];
}


