<!--

////////////////////////////////////////////////////////
// Copyright 2003, Timothy James Forsythe, all rights reserved.
// Permission granted to use, copy, modify, and distribute so long as
// the above copyright and this permission statement are retained in all
// copies.  THERE IS NO WARRANTY - USE AT YOUR OWN RISK.
//
// based on the algorithms of ?
////////////////////////////////////////////////////////

function WDate()
{
  this.dstr = "";
  this.d    = "";
  this.mstr = "";
  this.y    = "";
}

function GregorianToWC(d,m,year)
{
  var DAYS      = new Array("Saturday", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Worldsday", "Leapyear Day");
  var MONTHS    = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
  var MO_LEN    = new Array(31, 30, 30, 31, 30, 30, 31, 30, 30, 31, 30, 31);
  var GR_MO_LEN = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30);

  var date = new WDate();
  
  if (year > 0)
  {
    var doy = d;
    var i;
    var j;

    m=m-1;
 
    var leapYear = false;
    if (   (   ((year % 4) == 0)
            && ((year % 100) != 0)
           )
        || ((year % 400) == 0)
       )
    {
      leapYear = true;
    }

    for(i=0; i < m; ++i)
    {
      doy += GR_MO_LEN[i];
    }

    if (leapYear && (doy > 59))
    {
      ++doy;
    }

    if (leapYear)
    {
      MO_LEN[5] = 31;
    }

    for (i=0, j=0; j<doy; ++i)
    {
 	j += MO_LEN[i];
    }

    date.d = doy - (j - MO_LEN[i-1]);

    if (leapYear && (doy > 182))
    {
      --doy;
    }

    date.dstr = DAYS[doy % 7];
    date.mstr = MONTHS[i-1];

    if(date.d == 31)
    {
  	if (i == 12)
	{
	  date.dstr = DAYS[7];
          date.mstr = "";
          date.d    = "";
	}

	if (i == 6)
	{
	  date.dstr = DAYS[8];
          date.mstr = "";
          date.d    = "";
	}
    }

    date.y = year;
  }  

  return date;
}

-->

