var days   = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var day    = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
var month  = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
var amonth = new Array("Jan", "Feb", "March", "April", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec");

var arrEventList = new Array();
var intEventID = 0;

/////////////////////////////////////////////////////////////////////////////////////////
function createEvent(yy, mm, dd, durationDays, title, link) {
  var today = new Date();
  var startDate = new Date();
  var endDate = new Date();
  
  if (durationDays > 0) {
    startDate.setFullYear(yy, (mm-1), dd);
    startDate.setHours(0,0,0,0);
    endDate.setFullYear(yy, (mm-1), dd);
    endDate.setHours(23,59,59,999);

    endDate.setDate(endDate.getDate()+(durationDays-1));
    
    if ((startDate.getFullYear() >= today.getFullYear()) && 
        (endDate.getFullYear() >= today.getFullYear()) &&
        (startDate.getMonth() >= today.getMonth()) && 
        (endDate.getMonth() >= today.getMonth()) )
      arrEventList[intEventID++] = new Array(startDate, endDate, title, link);
  }
}

function drawEventCalendar() {
  var today = new Date();
  var dayPtr = new Date();
  var i, j;
  
  dayPtr.setDate(1);
  dayPtr.setDate(dayPtr.getDate() - dayPtr.getDay());
  
  document.write("<table>");
  
  do {
	document.write("<tr>");
	for (i=0; i<7; i++) {
	  document.write("<td class='");
	  
	  for (j=0; j<arrEventList.length; j++) {
	    if ((arrEventList[j][0] <= dayPtr) && (dayPtr <= arrEventList[j][1])) {
	      if (dayPtr.getDate() < today.getDate())
	        document.write("old-event ");
	      else
	        document.write("new-event ");
	    }
	  }
	  if (dayPtr.getMonth() != today.getMonth())
	    document.write("other-month ");
	  else if (dayPtr.getDate() == today.getDate())
	    document.write("today ");
	  if (i==0 || i==6)
	    document.write("weekend ");
	      
	  document.write("'>" + dayPtr.getDate());
	  document.write("</td>");
	    
	  dayPtr.setDate(dayPtr.getDate() + 1);
	}
	document.write("</tr>");
	
  } while (dayPtr.getMonth() == today.getMonth());

  document.write("</table>");
}

function drawEventCalendarForMonth(date, month) {
  var dayPtr = new Date();
  var i, j;
  
  dayPtr.setDate(1);
  dayPtr.setMonth(month);
  dayPtr.setDate(dayPtr.getDate() - dayPtr.getDay());
  
  document.write("<table>");
  
  do {
	document.write("<tr>");
	for (i=0; i<7; i++) {
	  document.write("<td class='");
	  
	  for (j=0; j<arrEventList.length; j++) {
	    if ((arrEventList[j][0] <= dayPtr) && (dayPtr <= arrEventList[j][1])) {
	      if (dayPtr.getDate() < date)
	        document.write("old-event ");
	      else {
                if (dayPtr.getMonth() == month)
	          document.write("new-event ");
//                else
//                  document.write("new-event2 ");
              }
	    }
	  }
	  if (dayPtr.getMonth() != month)
	    document.write("other-month ");
	  else if (dayPtr.getDate() == date)
	    document.write("today ");
	  if (i==0 || i==6)
	    document.write("weekend ");
	      
	  document.write("'>" + dayPtr.getDate());
	  document.write("</td>");
	    
	  dayPtr.setDate(dayPtr.getDate() + 1);
	}
	document.write("</tr>");
	
  } while (dayPtr.getMonth() == month);

  document.write("</table>");
}

function drawEventCalendarList() {
  var today = new Date();
  var curMonth = today.getMonth();
  var curDate = today.getDate();
  for (monthIdx=curMonth; monthIdx<12; monthIdx++) {
    document.write("<div align=left style='margin-top:5px;'><b>" + month[monthIdx] + "</b></div>");
    drawEventCalendarForMonth((monthIdx==curMonth ? curDate : -1), monthIdx);
  }
}

function drawEventList() {
  var today = new Date();
  var i;
  
  if (arrEventList.length > 0) {
    document.write("<ul>");
    for (i=0; i<arrEventList.length; i++) {
      document.write("<li>");
      document.write("<b>" + getFormattedEventDate(arrEventList[i][0], arrEventList[i][1]) + "</b> - ");
      document.write(arrEventList[i][3] == "" ? 
      					arrEventList[i][2] : 
      					"<a href='" + arrEventList[i][3] + "'>" + arrEventList[i][2] + "</a>");
      document.write("</li>");
    }
    document.write("</ul>");
  } else {
  }
}

function getFormattedEventDate(startDate, endDate) {
  if (startDate.getMonth() == endDate.getMonth()) {
    return amonth[startDate.getMonth()] + " " + startDate.getDate() +
    	(startDate.getDate() != endDate.getDate() ?
    		"-" + endDate.getDate() : "");
  } else {
    return amonth[startDate.getMonth()] + " " + startDate.getDate() + "-" +
    	   amonth[endDate.getMonth()] + " " + endDate.getDate();
  }
}

function drawFormattedDate() {
  var now = new Date();
  
  document.write(day[now.getDay()] + ", " +
                 month[now.getMonth()] + " " +
                 now.getDate() + ", " +
                 now.getFullYear());
}

function drawCalendarHeader() {
  var now = new Date();
  
  document.write(month[now.getMonth()] + " " + now.getFullYear());
}

function drawCurrentYear() {
  var now = new Date();
  
  document.write("" + now.getFullYear());
}
