var months = ["January","February","March","April","May","June","July","August","September","October","November","December"];
var days = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
var daycounts = [31,28,31,30,31,30,31,31,30,31,30,31]; //for leap years, remember to set february to 29 days
//2002 firstdays = [1,4,4,0,2,5,0,3,6,1,4,6];
var firstdays = [2,5,5,1,3,6,1,4,0,2,5,0];
//var firstdays = [];
//2004 firstdays = [3,6,7,3,5,1,3,6,2,4,0,2];

// This is where you put in the appointments. follow pattern [fromday,frommonth,today,tomonth,message]
var apps = [];

function GetFirstMondays(day) {
  switch (day){
    case 0 :
      day = 6;
      break;
    case 1 :
      day = 0;
      break;
    case 2 :
      day = 1;
      break;
    case 3 :
      day = 2;
      break;
    case 4 :
      day = 3;
      break;
    case 5 :
      day = 4;
      break;
    case 6 :
      day = 5;
      break;
  }
  return day;
}

function CreateFirstDays() {
  var thisdate = new Date();
  var year = thisdate.getFullYear();

  for(month = 0; month < 12; month++) {
    var thisdate = new Date(year+'/'+(month+1)+'/1');
    var thisday = thisdate.getDay();
    firstdays[month] = GetFirstMondays(thisday);
  }
}

function CheckForLeapYear() {
  var thisdate = new Date();
  var year = thisdate.getFullYear();

  if ((year % 4) == 0) { daycounts[1] = 29; };
}

function SetMonths(amonths) {
  for(i=0;i<12;i++) {
    months[i] = amonths[i];
  }
}

function SetDays(adays) {
  for(i=0;i<12;i++) {
    days[i] = adays[i];
  }
}

function SetEvents(aevents, textforevents) {
  var j = 0;
//  apps = Array(aevents.length);

  for(i=0;i<aevents.length;i++){
    var item = [0, 0, 0, 0, ""];
    item[0] = aevents[i][0];
    item[1] = aevents[i][1];
    item[2] = aevents[i][2];
    item[3] = aevents[i][3];
    item[4] = textforevents;
    apps[j] = item;
    j++;
  }
}

function CheckDate(month,dayno)
{
   var retval = new String(dayno);
   var m = month + 1;

   for(var app = 0; app < apps.length; app++)
   {
      if(m == apps[app][1] ) //first month
      {
         if(apps[app][3] - apps[app][1] > 0)
         {
            if(dayno >= apps[app][0])
            {
               retval = "<div class='hol' title='" + apps[app][4] + "'>" + dayno + "</div>";
            }
         }
         else
         {
            if(dayno >= apps[app][0] && dayno <= apps[app][2])
            {
               retval = "<div class='hol' title='" + apps[app][4] + "'>" + dayno + "</div>";
            }
         }
      }
      else if(m == apps[app][3]) // second month
      {
         if(dayno <= apps[app][2])
         {
            retval = "<div class='hol' title='" + apps[app][4] + "'>" + dayno + "</div>";
         }
      }
      else if( m > apps[app][1] && m < apps[app][3] )
      {
         retval = "<div class='hol' title='" + apps[app][4] + "'>" + dayno + "</div>";
      }
   }

   return retval;
}

function PrintMonth(month)
{
   var done = false;
   var day = 0;
   document.write("<table class=\"inner\"><caption><b>" + months[month] + "</b></caption><thead>");
   document.write("<th>"+days[0]+"</th><th>"+days[1]+"</th><th>"+days[2]+"</th><th>"+days[3]+"</th><th>"+days[4]+"</th><th>"+days[5]+"</th><th>"+days[6]+"</th></thead>");
   while(!done)
   {
      document.write("<tr>");
      PrintWeek(month,day, firstdays[month], daycounts[month]);
      document.write("</tr>");
      day = day + 7;
      if( day > daycounts[month] + firstdays[month])
      {
         done = true;
      }
   }
   document.write("</tbody></table><p>");
}

function PrintWeek(monthno,start,min,max)
{
   var d;
   var desc;
   for(var j = 0; j < 7; j++)
   {
      document.write("<td class=\"eventcalendar-day\">");
      d = start + j;
      if(d >= min && d < max + min)
      {
         desc = CheckDate(monthno,d - min + 1);
         document.write(desc);
      }
      document.write("</td>");
   }
}