//calendar.js

var mname = new mkArray('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
var days  = new mkArray(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var gMonth = -1;
var gYear = -1;
var gDoc;
var gName;
var gWhat;
var gControl;

function CalendarCreate(name, x, y, doc, show)
{
  var content = CalendarBuild(-1, -1);
  gDoc = doc;
  gName = name;
  LayerCreate(name, x, y, 180, 155, show, content, doc);
}  

function CalendarShow(name, what, cntl)
{
  gControl = cntl;
  gName = name;
  gWhat = what;
  LayerShow(name, gDoc);
}  

function y2k(number)
{
	return (number < 1000) ? number + 1900 : number;
}

function mkArray()
{
  for(i=0; i<mkArray.arguments.length; i++)
   this[i] = mkArray.arguments[i];
}

function CalendarBuild(Month, Year)
{
	var today = new Date();
	var nowDay   = today.getDate();
	var nowMonth = today.getMonth();
	var nowYear  = y2k(today.getYear());
	
	if(Month == -1)
	 Month = nowMonth;
  if(Year == -1)
   Year = nowYear;	 
   
  if(gMonth == -1)
   gMonth = Month;

  if(gYear == -1)
   gYear = Year;      

  var pMonth = Month - 1;
  var nMonth = Month + 1;
	
  firstDay = new Date(Year,Month,1);
  startDay = firstDay.getDay();

  if(((Year % 4 == 0) && (Year % 100 != 0)) || (Year % 400 == 0))
   days[1] = 29; 
  else
   days[1] = 28;
   
  var output = '';
  output += '<center><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=1><tr bgcolor="#ffffff"><td>';
  output += '<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0>';
  output += '<TR bgcolor="#dcdcdc">';
  output += '<TD colspan=8 align=center valign=center><A HREF="Javascript:changeMonth(' + pMonth + ')"><IMG SRC=monthprev.gif WIDTH=11 HEIGHT=11 BORDER=0><\/A>&nbsp;';
  output += '<TT><B>' + mname[Month] + ' ' + Year + '<\/B><\/TT>&nbsp;';
  output += '<A HREF="Javascript:changeMonth(' + nMonth + ')"><IMG SRC=monthnext.gif WIDTH=11 HEIGHT=11 BORDER=0><\/A><\/TD><\/TR>';
  output += '<TR BGCOLOR=eeeeee>';
  output += '<TD><TT>&nbsp;<\/TD>';
  output += '<TD align=right><TT>Su&nbsp;<\/TD>';
  output += '<TD align=right><TT>Mo&nbsp;<\/TD>';
  output += '<TD align=right><TT>Tu&nbsp;<\/TD>';
  output += '<TD align=right><TT>We&nbsp;<\/TD>';
  output += '<TD align=right><TT>Th&nbsp;<\/TD>';
  output += '<TD align=right><TT>Fi&nbsp;<\/TD>';
  output += '<TD align=right><TT>Sa&nbsp;<\/TD>';
  output += '<\/TR>';

  var column = 0;
  var row = 0;
  var lastMonth = Month - 1;
  
  if(lastMonth == -1)
   lastMonth = 11;

  output += '<TR bgcolor="#FFFFFF"><TD><TT>&nbsp;<\/TD>';
  
  //Previous Month
  for(i=0; i<startDay; i++, column++)
   output += '<TD align=right><TT><FONT COLOR="#999999">' + (days[lastMonth]-startDay+i+1) + '<\/FONT>&nbsp;<\/TD>';

  row = 1;
  //This Month
  for(i=1; i<=days[Month]; i++, column++)
  {
    output += '<TD align=right><TT><A HREF="javascript:changeDay(' + i + ')"><FONT COLOR="#0000FF">' + i + '<\/FONT><\/A>&nbsp;<\/TD>';
    if(column == 6)
    {
        output += '<\/TR><TR bgcolor="#FFFFFF"><TD><TT>&nbsp;<\/TD>';
        column = -1;
        row += 1;
    }
  }

  //Next Month
  if(column > 0)
  {
    for(i=1; column<7; i++, column++)
     output += '<TD align=right><TT><FONT COLOR="#999999">' + i + '<\/FONT>&nbsp;<\/TD>'; 
  }

  output += '<\/TR><tr><td colspan=8><\/td><\/tr><tr><td colspan=8><\/td><\/tr>';
  output += '<tr bgcolor="#dcdcdc"><td colspan=8 align=center><TT>';
  output += 'Today: ' + mname[nowMonth] + ' ' + nowDay + ',' + nowYear
  output += '<\/td><\/tr>';
  output += '<\/TABLE><\/td><\/tr><\/table><\/center>';
  return output;
}

function changeMonth(m)
{
  gMonth = m;
  if(gMonth < 0)
  {
   gMonth = 11;
   gYear = gYear - 1;
  }
  if(gMonth > 11)
  {
    gMonth = 0;
    gYear = gYear + 1;
  }       
   
  var content = CalendarBuild(gMonth, gYear);
  LayerContent(gName, content, gDoc);
}  

function changeDay(d)
{
  LayerHide(gName, gDoc);
  var dateval = (gMonth + 1) + '/' + d + '/' + gYear;
  gControl.value = dateval;
  
  //if(gDoc.all)
  // gWhat.innerHTML = dateval;
  //else if(gDoc.layers)
  //{
  //  gWhat.document.open();
  //  gWhat.document.write(dateval);
  //  gWhat.document.close();
  //}
}



