function calendarFrame()
{
    var now = new Date;
    var currentDate = now.getDate();
    var currentMonth = now.getMonth();
    var currentDay = now.getDay();
    var currentYear = now.getFullYear();
    
    // Naming the Months, Days, Years
    var monthNames = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
    var dayNames = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
    var yearNames = new Array; // Displays years from 2000 to present
    for (x=2000; x<=currentYear; x++)
    {
        yearNames.push(x);
    }

    var calendarOutput = "<table   border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
    calendarOutput += "<tr><td  >";
    
    // Form calendarForm
    calendarOutput += "<form name=\"calendarForm\">";

    // Begin Table 1
    calendarOutput += '<table class="bluebox" width="100%" border="0" bordercolor="4863A0" cellpadding="0" cellspacing="0"><tr><td><table width="100%" border="0" cellpadding="0" cellspacing="1">';
    calendarOutput += "<tr>";
    // Select Month
    calendarOutput += '<td><a style="margin-left: 28px" href=Month- onClick="changeMonth(-1);this.blur();return false;"><img src=blue_arrow_left.gif border=0></a>&nbsp;<select name=selectMonth onChange="changeCalendar()">';
    for (x=0; x<12; x++)
    {
        if (x==currentMonth) // Makes current month the default on dropdown
        {
            calendarOutput += "<option value= " + x + " Selected>" + monthNames[x] + "</option>";
        }
        else
        {
            calendarOutput += "<option value= " + x + ">" + monthNames[x] + "</option>";
        }
    }
    
    calendarOutput += '</select>&nbsp;<a href=Month+ onClick="changeMonth(1);this.blur();return false;"><img src=blue_arrow_right.gif border=0></a></td></style>';
    // Select Year
    calendarOutput += '<td><select name="selectYear" onChange="changeCalendar()">';
    for (x=0; x<yearNames.length; x++)
    {
        if (yearNames[x]==currentYear) // Makes current year the default on dropdown
        {
            calendarOutput += "<option value= " + x + " Selected>" + yearNames[x] + "</option>";
        }
        else
        {
            calendarOutput += "<option value= " + x + ">" + yearNames[x] + "</option>";
        }
    }
    calendarOutput += "</select></td>";
    calendarOutput += "</tr>";
    calendarOutput += "</table></td></tr></table>";
    // End Table 1
    // Begin Table 2
    calendarOutput += '<table class="bluebox" border="0" bordercolor="4863A0" cellpadding="0" cellspacing="0">';
    calendarOutput += "<tr>";
    // Display Day Names
    for (x=0; x<7; x++)
    {
        calendarOutput += '<td class="bluebox" style="font-family: Tahoma,Arial,sans-serif; font-style: normal; font-weight: 600; font-size: 12" width="35" align="center"><font color="4863A0"><B>' + dayNames[x] + '</b></font></td>';
    }
    calendarOutput += "</tr>";
    // Display Days
    var z=0;    // Numbers of the Grid
    for (x=0; x<6; x++)
    {
        calendarOutput += "<tr>";
        for (y=0; y<7; y++)
        {
            calendarOutput += '<td class="bluebox" style="font-family: Tahoma,Arial,sans-serif; font-style: normal; font-weight: 600; font-size: 12" id=td' + z + '>';
            calendarOutput += '<center><a style="color: 4863A0" href=' + z + ' ID=' + z + ' onClick="userSelect(id);this.blur();return false" >x</a></center>';
            calendarOutput += "</td>";
            z++;
        }
        calendarOutput += "</tr>";
    }

    calendarOutput += "</table>";
    
    calendarOutput += "</td></tr></table>";

    document.write ("<font color=\"red\" face=\"arial\" size=\"1\">" + calendarOutput + "</font>");
    changeCalendar();
}

function changeCalendar()
{
    var now = new Date;
    var currentDate = now.getDate();
    var currentMonth = now.getMonth();
    var currentDay = now.getDay();
    var currentYear = now.getFullYear();

    var selectedMonth = parseInt(document.calendarForm.selectMonth.value);
    var selectedYear = parseInt(document.calendarForm.selectYear.value);

    // Determines which day the month starts on
    var startSlot = monthLayout();

    // 0-41 Array that stores the #s of the month
    var monthGrid = new Array;

    for (x=0; x<startSlot; x++)
    {
        monthGrid.push("&nbsp;"); // Fills in the rest with Spaces
    }

    for (x=1; x<=dayCount(selectedMonth, selectedYear); x++)
    {
        monthGrid.push(x);  // Pushes to the max # of days in the month
    }

    for (x=monthGrid.length; x<42; x++)
    {
        monthGrid.push("&nbsp;"); // Fills in the rest with Spaces
    }

    var z=0;    // Grid Counter
    for (x=0; x<6; x++)
    {
        for (y=0; y<7; y++)
        {
            eval("document.getElementById(\'" + z + "\')").innerHTML = monthGrid[z];
            if (monthGrid[z] == currentDate && selectedMonth == currentMonth && currentYear == (selectedYear+2000))
            {
                eval("document.getElementById('td"+z+"')").style.backgroundColor = "lightblue";
            }
            else
            {
                eval("document.getElementById('td"+z+"')").style.backgroundColor = "white";
            }
            
            z++;
        }
    }

}

function monthLayout()
{
    var now = new Date;
    var currentDate = now.getDate();
    var currentMonth = now.getMonth();
    var currentDay = now.getDay();
    var currentYear = now.getFullYear();
    
    currentYear = currentYear - 2000;

    var selectedMonth = parseInt(document.calendarForm.selectMonth.value);
    var selectedYear = parseInt(document.calendarForm.selectYear.value);


    var startSlot = currentDate - currentDay;

    var startSlotBool = true;

    while (startSlotBool)
    {
        if (startSlot == 1 || startSlot < 0)
        {
            startSlotBool = false;
        }
        else
        {
            startSlot = startSlot - 7;
        }
    }

    startSlot = startSlot - 1;
    startSlot = startSlot * -1;

    if (currentMonth != selectedMonth || currentYear != selectedYear)
    {
        var sYear = currentYear - selectedYear;
        var sMonth = currentMonth - selectedMonth;
        var cMonth = currentMonth;
        var cYear = currentYear;

        if (currentYear != selectedYear)
        {
            sMonth = ((currentMonth + (12*sYear)) - selectedMonth);
        }

        for (x=0; x<sMonth; x++)
        {
            startSlot = startSlot + 41;
            cMonth = cMonth - 1;
            if (cMonth == -1)
            {
                cMonth = 11;
                cYear = cYear - 1;
            }
            startSlot = startSlot - (dayCount(cMonth, cYear) + 6);
        }
        while (startSlot > 6)
        {
            startSlot = startSlot - 7;
        }
    }

    if (currentMonth < selectedMonth && currentYear == selectedYear)
    {
        startSlot = 42;
    }

    return (startSlot);
}

function dayCount(selectedMonth, selectedYear)
{
    var xDay;
	if(selectedMonth == 3 || selectedMonth == 5 || selectedMonth == 8 || selectedMonth == 10)
    {
		xDay = 30;
  	}
  	else
    {
	    xDay = 31;
	    if(selectedMonth == 1)
        {
            if (selectedYear/4 - parseInt(selectedYear/4) != 0)
            {
                xDay = 28;
    		}
    		else
            {
                xDay = 29;
    		}
        }
    }
    return (xDay)
}

function userSelect(id)
{
    var selectedMonth = parseInt(document.calendarForm.selectMonth.value);
    var selectedYear = parseInt(document.calendarForm.selectYear.value);
    var sMonth = selectedMonth;
    var sYear = selectedYear;

    selectedYear = selectedYear + 2000;
    selectedMonth = selectedMonth + 1;
    var userDate = eval("document.getElementById(\'" + id + "\')").innerHTML;
    var userDate2 = parseInt(userDate) + 1;
    
    
    var now = new Date;
    var currentDate = now.getDate();
    var currentMonth = now.getMonth();
    var currentYear = now.getFullYear();

    currentMonth = currentMonth + 1;
    
    if (userDate > currentDate && currentMonth == selectedMonth && currentYear == selectedYear)
    {
        userDate = currentDate;
        userDate2 = currentDate;
    }

    if (userDate2 > currentDate && currentMonth == selectedMonth && currentYear == selectedYear)
    {
        userDate2 = currentDate;
    }
    if (selectedMonth<10)
    {
        selectedMonth = "0"+selectedMonth;
    }
    if (userDate<10)
    {
        userDate = "0"+userDate;
    }
    var userFinalValue = selectedMonth + "-" + userDate + "-" + selectedYear;

    if (userDate2 > dayCount(sMonth, sYear))
    {
        selectedMonth = parseInt(selectedMonth) + 1;
        if (selectedMonth<10)
        {
            selectedMonth = "0"+selectedMonth;
        }
        userDate2 = userDate2 - dayCount(sMonth, sYear);
        
        if (selectedMonth == 13)
        {
            selectedMonth = "01";
            selectedYear = selectedYear + 1;
        }
    }
    if (userDate2<10)
    {
        userDate2 = "0"+userDate2;
    }

    var userFinalValue2 = selectedMonth + "-" + userDate2 + "-" + selectedYear;

    if (userDate == "&nbsp;")
    {
        userFinalValue = "";
        userFinalValue2 = "";
    }
    document.addForm.start.value = userFinalValue;
    document.addForm.end.value = userFinalValue2;
}

function changeMonth(dir)
{
    var now = new Date;
    var minimum = now.getFullYear() - 2;
    var maximum = now.getFullYear() + 2;
    var selectedMonth = parseInt(document.calendarForm.selectMonth.value);
    var selectedYear = parseInt(document.calendarForm.selectYear.value);

    if (selectedYear==minimum && selectedMonth==0 && parseInt(dir)==-1)
	{
    }
    else
	{
    	if (selectedYear==maximum && selectedMonth==11 && parseInt(dir)==1)
		{
    	}
    	else
		{
    		selectedMonth = selectedMonth + parseInt(dir);
    		if (selectedMonth==-1)
			{
    			selectedMonth=11;
    			selectedYear = selectedYear - 1;
    			document.calendarForm.selectYear.value = selectedYear;
    		}
    		if (selectedMonth==12)
			{
    			selectedMonth=0;
    			selectedYear = selectedYear + 1;
    			document.calendarForm.selectYear.value = selectedYear;
    		}
   			document.calendarForm.selectMonth.value = selectedMonth;
   			changeCalendar();
   		}
   	}
}
