var targetFieldName      = "";
var year                 = 0;
var month                = 0;
var nextYear             = 0;
var nextMonth            = 0;
var prevYear             = 0;
var prevMonth            = 0;
var monthNames           = new Array();
monthNames[0]            = "January";
monthNames[1]            = "February";
monthNames[2]            = "March";
monthNames[3]            = "April";
monthNames[4]            = "May";
monthNames[5]            = "June";
monthNames[6]            = "July";
monthNames[7]            = "August";
monthNames[8]            = "September";
monthNames[9]            = "October";
monthNames[10]           = "November";
monthNames[11]           = "December";
var dayNames             = new Array();
dayNames[0]              = "SU";
dayNames[1]              = "M";
dayNames[2]              = "T";
dayNames[3]              = "W";
dayNames[4]              = "T";
dayNames[5]              = "F";
dayNames[6]              = "SA";
var calendarTitle        = "Calendar";
var newWindow            = null;
var calendarInstructions = "";
var calendarBGColor      = "";
var calendarFontFace     = "";
var calendarFontColor    = "";
var calendarLinkColor    = "";

function fixYear(brokenYear)
{
  if (brokenYear < 1000)
  {
    brokenYear = brokenYear + 1900;
  }
  return brokenYear;
}

function getNextPrevMonth()
{
  if (month == 11)
  {
    nextMonth = 0;
    nextYear = year + 1;
    prevMonth = month - 1;
    prevYear = year;
  }
  else if (month == 0)
  {
    nextMonth = month + 1;
    nextYear = year;
    prevMonth = 11;
    prevYear = year - 1;
  }
  else
  {
    nextMonth = month + 1;
    nextYear = year;
    prevMonth = month - 1;
    prevYear = year;
  }
}

function buildCalendarArray()
{
  var calendar = new Array();
  var counter = 0;
  var lastDOW = 0;
  for (var day = 1; day <= 31; day++)
  {
    var d = new Date(year, month, day);
    if ((fixYear(d.getYear()) == year) && (d.getMonth() == month))
    {
      lastDOW = d.getDay();
      if (d.getDate() == 1)
      {
        for (var i = 0; i < d.getDay(); i++)
        {
          calendar[counter] = "&nbsp;";
          counter++;
        }
      }
      calendar[counter] = day;
    }
    else
    {
      break;
    }
    counter++;
  }
  while ((counter % 7) > 0)
  {
    calendar[counter] = "&nbsp;";
    counter++;
  }
  return calendar;
}

function drawCalendar(selectedYear, selectedMonth)
{
  year  = fixYear(selectedYear);
  month = selectedMonth;
  var calendar = buildCalendarArray();
  getNextPrevMonth();
  var d = newWindow.document;
  d.write('<html><head><title> '+calendarTitle+' </title><link rel="stylesheet" type="text/css" href="soccer.css"></head><body>');
  d.write(calendarInstructions+'<p>');
  d.write('<table border="1" width="100%">');
  d.write('<tr><th id="label"><a href="javascript:window.opener.drawCalendar('+prevYear+','+prevMonth+')"><font face="'+calendarFontFace+'" color="'+calendarFontColor+'"><</font></a></th><th colspan="5"><font face="'+calendarFontFace+'" color="'+calendarFontColor+'">'+monthNames[month]+' '+year+'</font></th><th id="label"><a href="javascript:window.opener.drawCalendar('+nextYear+','+nextMonth+')"><font face="'+calendarFontFace+'" color="'+calendarFontColor+'">></font></a></th></tr><tr>');
  for (var i = 0; i < 7; i++)
  {
    d.write('<td align="center" id="label"><b><font face="'+calendarFontFace+'" color="'+calendarFontColor+'">'+dayNames[i]+'</font></b></td>');
  }
  d.write("</tr>");
  var dow = 0;
  for (var i = 0; i < calendar.length; i++)
  {
    if (dow == 0)
    {
      d.write("<tr>");
    }
    if (calendar[i] != "&nbsp;")
    {
      d.write('<td align="center"><b><font face="'+calendarFontFace+'" color="'+calendarFontColor+'"><a href="javascript:opener.assignCalendarDate('+calendar[i]+')">'+calendar[i]+'</a></font></b></td>');
    }
    else
    {
      d.write('<td align="center">'+calendar[i]+'</td>');
    }
    if (dow == 6)
    {
      d.write("</tr>");
    }
    dow++;
    if (dow == 7)
    {
      dow = 0;
    }
  }
  d.write("</table>");
  d.write("</body></html>");
  d.close();
  newWindow.focus();
}

function assignCalendarDate(day)
{
  month++;
  eval(targetFieldName+".value = '"+month+"/"+day+"/"+year+"';");
  if (newWindow != null)
  {
    newWindow.close();
  }
}

function createCalendarPopup(selectedFieldName)
{
  targetFieldName = selectedFieldName;
  var d = new Date();
  newWindow = window.open("", "calendarBuilder", "toolbar=false,location=false,directories=false,status=false,menubar=false,scrollbars=false,resizable=false,width=300,height=300");
  drawCalendar(d.getYear(), d.getMonth());
}
