var dDate = new Date();
var dCurMonth = dDate.getMonth();
var dCurDayOfMonth = dDate.getDate();
var dCurYear = dDate.getFullYear();
var objPrevElement = new Object();

function printMonth(iMonth)
{
    var aMonth = new Array();
    aMonth[0] = "January";
    aMonth[1] = "February";
    aMonth[2] = "March";
    aMonth[3] = "April";
    aMonth[4] = "May";
    aMonth[5] = "June";
    aMonth[6] = "July";
    aMonth[7] = "August";
    aMonth[8] = "September";
    aMonth[9] = "October";
    aMonth[10] = "November";
    aMonth[11] = "December";

    document.write("<b>" + aMonth[iMonth] + "</b>");
}

function fToggleColor(myElement) 
{
    var toggleColor = "#ffffff";
    if (myElement.id == "calDateText") 
        {
        if (myElement.color == toggleColor) 
            {
            myElement.color = "";
            } 
        else 
            {
            myElement.color = toggleColor;
             }
        } 
    else if (myElement.id == "calCell") 
        {
        for (var i in myElement.children) 
            {
            if (myElement.children[i].id == "calDateText") 
                {
                if (myElement.children[i].color == toggleColor) 
                    {
                    myElement.children[i].color = "";
                    } 
                else 
                    {
                    myElement.children[i].color = toggleColor;
                    }
                }
            }
        }
}

function fSetSelectedDay(myElement)
{
    if (myElement.id == "calCell") 
        {
        if (!isNaN(parseInt(myElement.children["calDateText"].innerText))) 
            {
            myElement.bgColor = "#c0c0c0";
            objPrevElement.bgColor = "";
            document.all.calSelectedDate.value = parseInt(myElement.children["calDateText"].innerText);
            objPrevElement = myElement;
            }
        }
}

function fGetDaysInMonth(iMonth, iYear) 
{
    var dPrevDate = new Date(iYear, iMonth, 0);
    return dPrevDate.getDate();
}

function fBuildCal(iYear, iMonth, iDayStyle) 
{
    var aMonth = new Array();
    aMonth[0] = new Array(7);
    aMonth[1] = new Array(7);
    aMonth[2] = new Array(7);
    aMonth[3] = new Array(7);
    aMonth[4] = new Array(7);
    aMonth[5] = new Array(7);
    aMonth[6] = new Array(7);
    var dCalDate = new Date(iYear, iMonth-1, 1);
    var iDayOfFirst = dCalDate.getDay();
    var iDaysInMonth = fGetDaysInMonth(iMonth, iYear);
    var iVarDate = 1;
    var i, d, w;
    if (iDayStyle == 2) 
        {
        aMonth[0][0] = "Sunday";
        aMonth[0][1] = "Monday";
        aMonth[0][2] = "Tuesday";
        aMonth[0][3] = "Wednesday";
        aMonth[0][4] = "Thursday";
        aMonth[0][5] = "Friday";
        aMonth[0][6] = "Saturday";
        } 
    else if (iDayStyle == 1) 
        {
        aMonth[0][0] = "Sun";
        aMonth[0][1] = "Mon";
        aMonth[0][2] = "Tue";
        aMonth[0][3] = "Wed";
        aMonth[0][4] = "Thu";
        aMonth[0][5] = "Fri";
        aMonth[0][6] = "Sat";
        } 
    else 
        {
        aMonth[0][0] = "Su";
        aMonth[0][1] = "Mo";
        aMonth[0][2] = "Tu";
        aMonth[0][3] = "We";
        aMonth[0][4] = "Th";
        aMonth[0][5] = "Fr";
        aMonth[0][6] = "Sa";
        }
    for (d = iDayOfFirst; d < 7; d++) 
        {
        aMonth[1][d] = iVarDate;
        iVarDate++;
        }
    for (w = 2; w < 7; w++) 
        {
        for (d = 0; d < 7; d++) 
            {
            if (iVarDate <= iDaysInMonth) 
                {
                aMonth[w][d] = iVarDate;
                iVarDate++;
                }
            }
        }
    return aMonth;
}

function fDrawCalEvents(iYear, iMonth, iCellWidth, iCellHeight, sDateTextSize, sDateTextWeight, iDayStyle) 
{
    var myMonth;
    var iDayCount=0;

    printMonth(iMonth-1);

    myMonth = fBuildCal(iYear, iMonth, iDayStyle);
    document.write("<table border='1'>")
    document.write("<tr>");
    document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][0] + "</td>");
    document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][1] + "</td>");
    document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][2] + "</td>");
    document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][3] + "</td>");
    document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][4] + "</td>");
    document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][5] + "</td>");
    document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][6] + "</td>");
    document.write("</tr>");
    for (w = 1; w < 7; w++) 
        {
        document.write("<tr>")
        for (d = 0; d < 7; d++) 
            {
            document.write("<td align='left' valign='top' width='" + iCellWidth + "' height='" + iCellHeight + "' id=calCell>");
            if (!isNaN(myMonth[w][d])) 
                {
                document.write("<font id=calDateText FONT-FAMILY:Arial;FONT-SIZE:" + sDateTextSize + ";FONT-WEIGHT:" + sDateTextWeight + "'>" + myMonth[w][d] + "</font>");
                document.write("<br><font size=-4>"+Events[iMonth][myMonth[w][d]]+"</font>");
                iDayCount++;
                } 
            else 
                {
                document.write("<font id=calDateText FONT-FAMILY:Arial;FONT-SIZE:" + sDateTextSize + ";FONT-WEIGHT:" + sDateTextWeight + "'</font>");
                }
            document.write("</td>")
            }
        document.write("</tr>");
        }
    document.write("</table>")
}

function CurrentWeek()
{
    var now = new Date();
    var nowDayOfWeek = now.getDay();
    var nowDay = now.getDate();
    var nowMonth = now.getMonth();
    var nowYear = now.getYear();

    var aMonth = new Array();
    aMonth[0] = "January";
    aMonth[1] = "February";
    aMonth[2] = "March";
    aMonth[3] = "April";
    aMonth[4] = "May";
    aMonth[5] = "June";
    aMonth[6] = "July";
    aMonth[7] = "August";
    aMonth[8] = "September";
    aMonth[9] = "October";
    aMonth[10] = "November";
    aMonth[11] = "December";

    var sWeek = new Array();
    sWeek[0] = "Sunday";
    sWeek[1] = "Monday";
    sWeek[2] = "Tuesday";
    sWeek[3] = "Wednesday";
    sWeek[4] = "Thursday";
    sWeek[5] = "Friday";
    sWeek[6] = "Saturday";

    var iMaxDays = new Array();
    iMaxDays[0] = 31;
    iMaxDays[1] = 28;
    iMaxDays[2] = 31;
    iMaxDays[3] = 30;
    iMaxDays[4] = 31;
    iMaxDays[5] = 30;
    iMaxDays[6] = 31;
    iMaxDays[7] = 31;
    iMaxDays[8] = 30;
    iMaxDays[9] = 31;
    iMaxDays[10] = 30;
    iMaxDays[11] = 31;

    nowYear += (nowYear < 2000) ? 1900 : 0;

   
    var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek);
    var weekEndDate = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek));

    var sEvent;
    if(nowDay-nowDayOfWeek < 0)
        {
        var weekStartDate = new Date(nowYear, nowMonth-1, nowDay - (nowDayOfWeek-iMaxDays[nowMonth-1]));
        }

    document.write("<Table cellpadding=5><TR><TD>");
    for (i=0;i<7;i++)
        {
        if(weekStartDate.getDate()+i > iMaxDays[weekStartDate.getMonth()])
            {
            sEvent=Events[weekStartDate.getMonth()+2][weekStartDate.getDate()+i-iMaxDays[weekStartDate.getMonth()]];
	        if(sEvent=="")
	           {
 	           }
            else
                {
                document.write("<TR valign=top><TD>");
                document.write(sWeek[i]+", ");
                document.write(aMonth[weekStartDate.getMonth()+1]+" ");
                document.write(weekStartDate.getDate()+i-iMaxDays[weekStartDate.getMonth()]+":");
                document.write("</TD><TD>"+Events[weekStartDate.getMonth()+2][weekStartDate.getDate()+i-iMaxDays[weekStartDate.getMonth()]]+"</TD></TR>");
                } 
            }
        else
             {
            sEvent=Events[weekStartDate.getMonth()+1][weekStartDate.getDate()+i];
	        if(sEvent=="")
	           {
 	           }
            else
                {
                document.write("<TR valign=top><TD>");
                document.write(sWeek[i]+", ");
                document.write(aMonth[weekStartDate.getMonth()]+" ");
                document.write(weekStartDate.getDate()+i+":");
                document.write("</TD><TD>"+Events[weekStartDate.getMonth()+1][weekStartDate.getDate()+i]+"</TD></TR>");
                }
             }
        }
    document.write("</Table>");
}