function RenderMonths(group)
{
    var hiddenDateDivChildren = document.getElementById("hiddendatesdiv").children;
    var tempString = "";
    var monthDisplayedCount = 0;
    var monthCount = 0;
    var monthCountNext = 0;
    var monthCountPrev = 0;

    for(var i = 0; i < hiddenDateDivChildren.length; i++)
    {
        var monthArray
        var index
        var firstdayofmonth

        if((group * 12) - 12 <= monthCount && monthDisplayedCount < 12)
        {
            monthArray = hiddenDateDivChildren[i].value.split(",");

            firstdayofmonth = new Date();

            firstdayofmonth.setDate(1);
            firstdayofmonth.setMonth(monthArray[1] - 1);
            firstdayofmonth.setYear(monthArray[0]);

            tempString += "<div class=\"monthdiv\">\n";
    		tempString += "<table>\n";
            tempString += "<tr class=\"monthandyear\">\n";

            tempString += "<td colspan=\"7\">\n";
            tempString += MonthName(monthArray[1]) + " " + monthArray[0];
            tempString += "</td>\n";

            tempString += "</tr>\n";
            tempString += "<tr  class=\"weekdays\">\n";
            tempString += "<td>\n";
            tempString += "M\n";
            tempString += "</td>\n";
            tempString += "<td>\n";
            tempString += "T\n";
            tempString += "</td>\n";
            tempString += "<td>\n";
            tempString += "W\n";
            tempString += "</td>\n";
            tempString += "<td>\n";
            tempString += "T\n";
            tempString += "</td>\n";
            tempString += "<td>\n";
            tempString += "F\n";
            tempString += "</td>\n";
            tempString += "<td>\n";
            tempString += "S\n";
            tempString += "</td>\n";
            tempString += "<td>\n";
            tempString += "S\n";
            tempString += "</td>\n";
            tempString += "</tr>\n";
            tempString += "<tr>\n";

            if(firstdayofmonth.getDay() == 0)
            {
                index = 1;

                while(index < 7)
                {
                    tempString += "<td>\n";
                    tempString += "&nbsp\n";
                    tempString += "</td>\n";
                    index = index + 1
                }
            }
            else
            {
                index = 1;

                while(index < firstdayofmonth.getDay())
                {
                    tempString += "<td>\n";
                    tempString += "&nbsp\n";
                    tempString += "</td>\n";
                    index = index + 1
                }
            }

            index = 2;

            while(firstdayofmonth.getMonth() + 1 == parseInt(monthArray[1]))
            {
                if(monthArray[index] == "1")
                {
                    tempString += "<td class=\"booked\">\n";
                }
                else if(monthArray[index] == "x")
                {
                    tempString += "<td class=\"unavailable\">\n";
                }
                else if(monthArray[index] == "s")
                {
                    tempString += "<td class=\"special\">\n";
                }
                else
                {
                    tempString += "<td class=\"available\">\n";
                }

                tempString += firstdayofmonth.getDate() + "\n";
                tempString += "</td>\n";

                if(firstdayofmonth.getDay() == 0)
                {
                    tempString += "</tr>\n";
                    tempString += "<tr>\n";
                }

                firstdayofmonth.setDate(firstdayofmonth.getDate() + 1);
                index++;
            }

            while(firstdayofmonth.getDay() != 1)
            {
                tempString += "<td>\n";
                tempString += "&nbsp\n";
                tempString += "</td>\n";
                firstdayofmonth.setDate(firstdayofmonth.getDate() + 1);
            }

            tempString += "</tr>\n";
            tempString += "</table>\n";
            tempString += "</div>\n";

            monthDisplayedCount++;
        }
        else if(monthCount <= (group * 12) - 12)
        {
            monthCountPrev++;
        }
        else if(monthCount >= (group * 12))
        {
            monthCountNext++;
        }

        monthCount++;
    }

    if(monthCountNext != 0)
    {
        document.getElementById("groupforwardtd").innerHTML = "<a id=\"groupforward\" href=\"javascript:GroupForward()\">&gt;</a>";

        if(monthCountNext < 12)
        {
            document.getElementById("groupnext").innerText = "Next " + monthCountNext;
        }
        else
        {
            document.getElementById("groupnext").innerText = "Next 12";
        }
    }
    else
    {
        document.getElementById("groupforwardtd").innerHTML = "";
        document.getElementById("groupnext").innerText = "";
    }

    if(monthCountPrev != 0)
    {
        document.getElementById("groupbacktd").innerHTML = "<a id=\"groupback\" href=\"javascript:GroupBack()\">&lt;</a>";
        document.getElementById("groupprev").innerText = "Prev 12";
    }
    else
    {
        document.getElementById("groupbacktd").innerHTML = "";
        document.getElementById("groupprev").innerText = "";
    }

    document.getElementById("currentgroup").value = group;
    document.getElementById("calendardiv").innerHTML = "";
    document.getElementById("calendardiv").innerHTML = tempString;
}

function GroupBack()
{
    var currentGroup = parseInt(document.getElementById("currentgroup").value) - 1
    RenderMonths(currentGroup);
}

function GroupForward()
{
    var currentGroup = parseInt(document.getElementById("currentgroup").value) + 1
    RenderMonths(currentGroup);
}

function MonthName(month)
{
    var monthArray = new Array(12);

    monthArray[0]  = "January";
    monthArray[1]  = "February";
    monthArray[2]  = "March";
    monthArray[3]  = "April";
    monthArray[4]  = "May";
    monthArray[5]  = "June";
    monthArray[6]  = "July";
    monthArray[7]  = "August";
    monthArray[8]  = "September";
    monthArray[9]  = "October";
    monthArray[10] = "November";
    monthArray[11] = "December";

    return monthArray[month - 1];
}