   var runTimeDateObj = new Date();
   var runTimeMonth= runTimeDateObj.getMonth();
   var runTimeYear = runTimeDateObj.getFullYear();
   var runTimeDate = runTimeDateObj.getDate();
   var barColor="#333333";
   var curDayColor="#bbbbbb";
   var busyColor="#bbbbbb";


function initialize() {

   map.filters.Light.Clear();
   map.filters.Light.addAmbient(255,255,255,60);
   map.filters.Light.addCone(120, 60, 80, 120, 60, 255,255,255,120,60);
}

  function daysInMonth(month, year) {
    var days =31;
    if (month == 3||month==5||month ==8||month==10) {
        days = 30;
    }
    if (month == 1 ) {
      if (year%4 ==0 && year%100 != 0||year %400 ==0){
        days = 29;
      } else {
        days = 28;
      }
    }
    return days;
  }

  function monthName(month) {
    var name="";
    switch (month) {
      case 0:
        name = "January";
        break;
      case 1:
        name = "February";
        break;
      case 2:
        name = "March";
        break;
      case 3:
        name = "April";
        break;
      case 4:
        name = "May";
        break;
      case 5:
        name = "June";
        break;
      case 6:
        name = "July";
        break;
      case 7:
        name = "August";
        break;
      case 8:
        name = "September";
        break;
      case 9:
        name = "October";
        break;
      case 10:
        name = "November";
        break;
      case 11:
        name = "December";
        break;
      default :
        name = "invalid month"
    }
  return name;
  }


function showEvents(time, dateObj) {
   
   var eventStr="";

   var year=dateObj.getFullYear();
   var month=dateObj.getMonth();
   var date=dateObj.getDate();
   var thisDay=dateObj.getDay();

    var available=true;

   
   if (0==thisDay) {
     if (false==available) { 
       eventStr+="<TD><blink>Conflick!!</blink></TD>";} else
       eventStr+="<TD noWrap align=middle width='13%'><font face='Arial, Helvetica, sans-serif' color='000000' size=1>"+time+"-"+time+":50</font></TD>";
       available=false;
   } 

  if ((1==thisDay ||3==thisDay||5==thisDay) && (10==time||13==time||14==time)) { 
     if (false==available) { eventStr+="<TD><blink>Conflick!!</blink></TD>";} else
     eventStr+="<TD bgColor="+busyColor+" noWrap align=center width='13%'><font face='Arial, Helvetica, sans-serif' color='#000000' size=1>Office Hour</FONT></TD>";
     available=false;
   } 

  if ((2006==year) && (1==thisDay ||3==thisDay||5==thisDay) && 11==time  && (month!=10 || date!=28) && (month>7 || (7==month && date>22))) { 
     if (false==available) { eventStr+="<TD><blink>Conflick!!</blink></TD>";} else
     eventStr+="<TD bgColor="+busyColor+" noWrap align=middle width='13%'><A HREF='https://webct.morehouse.edu/'><font face='Arial, Helvetica, sans-serif' color='#000000' size=1>Business Calculus</FONT></A></TD>";
     available=false;
   } 



  if ((2006==year) && (1==thisDay ||2==thisDay ||3==thisDay ||4==thisDay||5==thisDay) && 12==time  && (month!=10 || date!=28) && (month>7 || (7==month && date>22))) { 
     if (false==available) { eventStr+="<TD><blink>Conflick!!</blink></TD>";} else
     eventStr+="<TD bgColor="+busyColor+" noWrap align=middle width='13%'><A HREF='https://webct.morehouse.edu/'><font face='Arial, Helvetica, sans-serif' color='#000000' size=1> Calculus II (Honors)</FONT></A></TD>";
     available=false;
   } 



  if ((2006==year) && (1==thisDay ||3==thisDay||5==thisDay) && 13==time  && (month!=10 || date!=28) && (month>7 || (7==month && date>22))) { 
     if (false==available) { eventStr+="<TD><blink>Conflick!!</blink></TD>";} else
     eventStr+="<TD bgColor="+busyColor+" noWrap align=middle width='13%'><font face='Arial, Helvetica, sans-serif' color='#000000' size=1>Office Hour</FONT></TD>";
     available=false;
   } 


  if ((1==thisDay ||3==thisDay||5==thisDay) && 12==time && 2009==year) { 
     if (false==available) { eventStr+="<TD><blink>Conflick!!</blink></TD>";} else
     eventStr+="<TD bgColor="+busyColor+" noWrap align=center width='13%'><A class=t3 HREF='https://webct.morehouse.edu/'><font face='Arial, Helvetica, sans-serif' color='#000000' size=1>Prob & Stat</FONT></A></TD>";
     available=false;
   } 

  if ((1==thisDay ||3==thisDay||5==thisDay) && 11==time & 2009== year) { 
     if (false==available) { eventStr+="<TD><blink>Conflick!!</blink></TD>";} else
     eventStr+="<TD bgColor="+busyColor+" noWrap align=center width='13%'><A class=t3 HREF='https://webct.morehouse.edu/'><font face='Arial, Helvetica, sans-serif' color='#000000' size=1>Set Theory</FONT></A></TD>";
     available=false;
   } 


   if ((2003==year) && 4==thisDay  && 15==time  && (month!=10 || date!=27) && (month<11 || (11==month && date<10))) { 
     if (false==available) { eventStr+="<TD><blink>Conflick!!</blink></TD>";} else
     eventStr+="<TD bgColor=#0000FF noWrap align=middle width='13%'><font face='Arial, Helvetica, sans-serif' color='#000000' size=1>Online Course</FONT></TD>";
     available=false;
   } 

   if ((2003==year) && 4==thisDay  && 16==time  && (month!=10 || date!=27) && (month<11 || (11==month && date<10))) { 
     if (false==available) { eventStr+="<TD><blink>Conflick!!</blink></TD>";} else
     eventStr+="<TD bgColor=#0000FF noWrap align=middle width='13%'><font face='Arial, Helvetica, sans-serif' color='#FFFF00' size=1>Development</FONT></TD>";
     available=false;
   } 

   if ((2003==year) && (5==thisDay) && 11==time  && (month!=10 || date!=28) && (month<11 || (11==month && date<10))) { 
     if (false==available) { eventStr+="<TD><blink>Conflick!!</blink></TD>";} else
     eventStr+="<TD bgColor=#0000FF noWrap align=middle width='13%'><font face='Arial, Helvetica, sans-serif' color='#FFFF00' size=1>Creer-Mickell</FONT></TD>";
     available=false;
   } 

   if ((2004==year) && (12==date) && 16==time && (month==9)) { 
     if (false==available) { eventStr+="<TD><blink>Conflick!!</blink></TD>";} else
     eventStr+="<TD bgColor=#0000FF noWrap align=middle width='13%'><font face='Arial, Helvetica, sans-serif' color='#FFFF00' size=1>School</FONT></TD>";
     available=false;
   } 

   if ((2004==year) && (12==date) && 17==time && (month==9)) { 
     if (false==available) { eventStr+="<TD><blink>Conflick!!</blink></TD>";} else
     eventStr+="<TD bgColor=#0000FF noWrap align=middle width='13%'><font face='Arial, Helvetica, sans-serif' color='#FFFF00' size=1>Meeting</FONT></TD>";
     available=false;
   } 

   if ((2003==year) && (28==date) && 11==time && (month==9)) { 
     if (false==available) { eventStr+="<TD><blink>Conflick!!</blink></TD>";} else
     eventStr+="<TD bgColor=#0000FF noWrap align=middle width='13%'><font face='Arial, Helvetica, sans-serif' color='#FFFF00' size=1>Dep Meeting</FONT></TD>";
     available=false;
   } 
   if ((2003==year) && (21==date) && 14==time && (month==9)) { 
     if (false==available) { eventStr+="<TD><blink>Conflick!!</blink></TD>";} else
     eventStr+="<TD bgColor=#0000FF noWrap align=middle width='13%'><font face='Arial, Helvetica, sans-serif' color='#FFFF00' size=1>RPC Meeting</FONT></TD>";
     available=false;
   } 
   if ((2003==year) && (20==date) && 10==time && (month==9)) { 
     if (false==available) { eventStr+="<TD><blink>Conflick!!</blink></TD>";} else
     eventStr+="<TD bgColor=#0000FF noWrap align=middle width='13%'><font face='Arial, Helvetica, sans-serif' color='#FFFF00' size=1>Ryan Banks</FONT></TD>";
     available=false;
   } 

   if ((2003==year) && (25==date) && 11==time && (month==10)) { 
     if (false==available) { eventStr+="<TD><blink>Conflick!!</blink></TD>";} else
     eventStr+="<TD bgColor=#0000FF noWrap align=middle width='13%'><font face='Arial, Helvetica, sans-serif' color='#FFFF00' size=1>Dep Meeting</FONT></TD>";
     available=false;
   } 
   var month=dateObj.getMonth();
   if (true==available)  eventStr+="<TD width='13%'>&nbsp</TD>";
         
   return eventStr;
}

function monthly(updown) {   
   var current=false;

   var today = new Date();
   var thisDay = today.getDay();
   var thisDate = today.getDate();
   var thisMonth = today.getMonth();
   var thisYear = today.getFullYear();

   if (0==updown) {
     runTimeMonth= today.getMonth();
     runTimeYear = today.getFullYear();
     runTimeDate = today.getDate();
   } 


   if (updown==1) 
      if (11==runTimeMonth++) {
        runTimeMonth =0;
        runTimeYear++;
      }

   if (updown==-1) 
      if (0==runTimeMonth--) {
        runTimeMonth =11;
        runTimeYear--;
      }


     runTimeDateObj.setYear(runTimeYear);
     runTimeDateObj.setMonth(runTimeMonth);
     runTimeDateObj.setDate(runTimeDate);
  
   var numDays=daysInMonth(runTimeMonth, runTimeYear);
   if (runTimeMonth==thisMonth && runTimeYear==thisYear && runTimeDate==thisDate) current=true;

   var act ="<Table align=center style='BORDER-COLLAPSE: collapse' borderColor=#FFFFFF cellSpacing=0 cellPadding=0 width='100%' border=1>";
   act+="<TBODY>";
   act+="<TR bgColor="+barColor+" >";
   act+="<TD noWrap align=middle colspan=7><font face='Arial, Helvetica, sans-serif' size=1></TD></TR>";


   var firstDate = new Date();
   firstDate.setYear(runTimeYear);
   firstDate.setMonth(runTimeMonth);
   firstDate.setDate(1);
   var firstDay=firstDate.getDay();

   act+="<TR bgColor="+barColor+" >";
   act+="<TD noWrap align=middle colspan=7><font color='FFFFFF'>";
   act+="<A class=t onClick='showMonthly(-1);'>&lt;&nbsp&nbsp;</A></font>";
   act+="<font face='Arial, Helvetica, sans-serif' color='FFFFFF' size=1><b>";
   act+=monthName(runTimeMonth)+", "+runTimeYear;
   act+="</B></FONT><font color='FFFFFF'>";
   act+="<A class=t onClick='showMonthly(1);'>&nbsp;&nbsp;&gt</A></font></TD>";
   act+="</TR>";
   act+="<TR>";
   for (var j=0; j<7; j++) {
     act+="<TD bgColor=";
       if (j==thisDay && true==current) {
       act+=curDayColor;
       } else {
       act+="#e0e0e0 ";
       }
     act+=" noWrap align=middle width='13%'><font face='Arial, Helvetica, sans-serif' color='000000' size=1><b>";
     switch (j) {
       case 0: act+="S"; break;
       case 1: act+="M"; break;
       case 2: act+="T"; break;
       case 3: act+="W"; break;
       case 4: act+="T"; break;
       case 5: act+="F"; break;
       case 6: act+="S"; break;
       default: act+="u";
     }
     act+="</B></FONT>   </TD>";
   }
   act+="</TR>";
   act+="<tr>";

   var day=0;

    for (var j=0; j<firstDay; j++) {
      act+="<TD></TD>";
      day++;
    }
    for (var j=1; j<=numDays; j++) {
      act+="<TD ALIGN=CENTER ";
      if (j==thisDate && true==current) act+=" bgcolor="+curDayColor;
      act+="><font face='Arial, Helvetica, sans-serif' size=1 ";
      if (0 == day || 6==day) {
        act+=" COLOR=#FF0000 ";
      } else {
        act+=" COLOR=#000000 ";
      }
      act+=">"+j;
     act+="</FONT></TD>";
     if (++day==7) {
        act+="</TR><TR>";
        day=0;
      }
    }
   act+="</TBODY>";
   act+="</TABLE>";
   return act;

}

function weekly(updown) {   
   var current=false;

   var today = new Date();
   var thisDay = today.getDay();
   var thisDate = today.getDate();
   var thisMonth = today.getMonth();
   var thisYear = today.getFullYear();

   if (0==updown) {
     runTimeMonth= today.getMonth();
     runTimeYear = today.getFullYear();
     runTimeDate = today.getDate();
   } 


   if (updown==1) {
      runTimeDate+=7;
      if (runTimeDate>daysInMonth(runTimeMonth, runTimeYear) ) {
        runTimeDate-=daysInMonth(runTimeMonth, runTimeYear);
        if (11==runTimeMonth++) {
          runTimeMonth =0;
          runTimeYear++;
        }
      }
   }

   if (updown==-1) {
      runTimeDate-=7;
      if (runTimeDate<=0 ) {
        if (0==runTimeMonth--) {
          runTimeMonth =11;
          runTimeYear--;
        }
        runTimeDate+=daysInMonth(runTimeMonth, runTimeYear);
      }
   }

     runTimeDateObj.setYear(runTimeYear);
     runTimeDateObj.setMonth(runTimeMonth);
     runTimeDateObj.setDate(runTimeDate);
  
   var numDays=daysInMonth(runTimeMonth, runTimeYear);
   if (runTimeMonth==thisMonth && runTimeYear==thisYear && runTimeDate==thisDate) current=true;

   var act ="<Table align=center style='BORDER-COLLAPSE: collapse' borderColor=#FFFFFF cellSpacing=0 cellPadding=0 width='100%' border=1>";
   act+="<TBODY>";
   act+="<TR bgColor="+barColor+" >";
   act+="<TD noWrap align=middle colspan=7><font face='Arial, Helvetica, sans-serif' size=1></TD></TR>";
   act+="<TR bgColor="+barColor+" >";
   act+="<TD noWrap align=center colspan=7><font color='FFFFFF'>";
   act+="<A class=t onClick='showWeekly(-1);'>&lt;&nbsp;&nbsp;</A></font>";
   act+="<font face='Arial, Helvetica, sans-serif' color=white size=2><b>";

      var runTimeDay=today.getDay();
      var weekDays = new Array(7);
      for (var i=0; i<7;i++) {
        weekDays[i]=new Date();
        var DateInWeek=runTimeDate-runTimeDay;
        var MonthInWeek=runTimeMonth;
        var YearInWeek=runTimeYear;
        DateInWeek+=i;
     
        if (DateInWeek<=0) {           
          if (0==MonthInWeek--) {
            MonthInWeek=11;
            YearInWeek--;
          }
          DateInWeek+=daysInMonth(MonthInWeek, YearInWeek);
        }

        if (DateInWeek>daysInMonth(MonthInWeek, YearInWeek)) {           
          DateInWeek-=daysInMonth(MonthInWeek, YearInWeek);
          if (11==MonthInWeek++) {
            MonthInWeek=0;
            YearInWeek++;
          }
        }

          weekDays[i].setDate(DateInWeek);
          weekDays[i].setMonth(MonthInWeek);
          weekDays[i].setYear(YearInWeek);
      }

   act+=monthName(weekDays[0].getMonth())+" "+weekDays[0].getDate() + " - ";
   if (weekDays[0].getMonth() != weekDays[6].getMonth())
        act+=monthName(weekDays[6].getMonth());
   act+=" "+weekDays[6].getDate()+", "+runTimeYear+"</B></FONT>";
   act+="<font color='FFFFFF'>";
   act+="<A class=t onClick='showWeekly(1);'>&nbsp;&nbsp;&gt;</A></font></TD>";
   act+="</TR>";
   act+="<TR>";
   for (var j=0; j<7; j++) {
     act+="<TD bgColor=";
       if (j==thisDay && true==current) {
       act+=curDayColor;
       } else {
       act+="#e0e0e0 ";
       }
     act+=" noWrap align=center width='13%'><font face='Arial, Helvetica, sans-serif' color='000000' size=1><b>";
     switch (j) {
       case 0: break;
       case 1: act+="Mon"; break;
       case 2: act+="Tue"; break;
       case 3: act+="Wed"; break;
       case 4: act+="Thu"; break;
       case 5: act+="Fri"; break;
       case 6: act+="Sat"; break;
       default: act+="unk";
     }
     act+="</B></FONT>   </TD>";
   }
   act+="</TR>";
   var timeSpot=8;
   for (var i=0; i<70; i++) {
       if (0==(i%7)) act+= "<TR>";
       act+=showEvents(timeSpot, weekDays[i%7]);
       if (6==(i%7)) {act+= "</TR>";timeSpot++;}
   }

   act+="</TBODY>";
   act+="</TABLE>";
   return act;

}

function showWeekly(updown) {   
   myCalendar.innerHTML = weekly(updown);
   waterMark.innerHTML = runTimeYear+"<BR>" +monthName(runTimeMonth);
}

function showMonthly(updown) {   
   monCalendar.innerHTML = monthly(updown);
}

