var months = ["January","February","March","April","May","June","July","August","September","October","November","December","January","February","March","April","May","June","July","August","September","October","November","December"];

var daycounts = new Array();
// = [31,28,31,30,31,30,31,31,30,31,30,31]; //for leap years, remember to set february to 29 days
for (var i=0; i<12; i++)
	daycounts[i] = getDaysInMonth(i+1, curr_Year);
for (var i=12; i<24; i++)
	daycounts[i] = getDaysInMonth(i-11, curr_Year+1);

//2002 firstdays = [1,4,4,0,2,5,0,3,6,1,4,6];
var firstdays = new Array();//[2,5,5,1,3,6,1,4,0,2,5,0];
for (var i=0; i<12; i++)
	firstdays[i] = firstDayOfMonth(i, curr_Year);
for (var i=12; i<24; i++)
	firstdays[i] = firstDayOfMonth(i-12, curr_Year+1);
//2004 firstdays = [3,6,7,3,5,1,3,6,2,4,0,2];





//BY SUJOY.............
function firstDayOfMonth(month,year)
{
	var firstOfMonth = new Date (year, month, 1);
	return firstOfMonth.getDay();
}



function getDaysInMonth(month,year)  {
var days;
if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)  days=31;
else if (month==4 || month==6 || month==9 || month==11) days=30;
else if (month==2)  {
if (isLeapYear(year)) { days=29; }
else { days=28; }
}
return (days);
}
function isLeapYear (Year) {
if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) {
return (true);
} else { return (false); }
}
//BY SUJOY..............



function CheckDate(month,dayno)

{

   var retval = new String("<td class=nonHol align=center>" + dayno + "</td>");

   var m = month + 1;

   

   for(var app = 0; app < apps.length; app++)

   {

      if(m == apps[app][1] ) //first month

      {

         if(apps[app][3] - apps[app][1] > 0)

         {

            if(dayno >= apps[app][0])

            {

               if (apps[app][5]==0)
				   retval = "<td align=center class='hol' title='" + apps[app][4] + "'>" + dayno + "</td>";
				else
					retval = "<td align=center class='booked' title='" + apps[app][4] + "'>" + dayno + "</td>";

            }

         }

         else

         {

            if(dayno >= apps[app][0] && dayno <= apps[app][2])

            {

               if (apps[app][5]==0)
				   retval = "<td align=center class='hol' title='" + apps[app][4] + "'>" + dayno + "</td>";
				else
					retval = "<td align=center class='booked' title='" + apps[app][4] + "'>" + dayno + "</td>";

            }

         }

      }

      else if(m == apps[app][3]) // second month

      {

         if(dayno <= apps[app][2])

         {

               if (apps[app][5]==0)
				   retval = "<td align=center class='hol' title='" + apps[app][4] + "'>" + dayno + "</td>";
				else
					retval = "<td align=center class='booked' title='" + apps[app][4] + "'>" + dayno + "</td>";

         }

      }

      else if( m > apps[app][1] && m < apps[app][3] )

      {    

               if (apps[app][5]==0)
				   retval = "<td align=center class='hol' title='" + apps[app][4] + "'>" + dayno + "</td>";
				else
					retval = "<td align=center class='booked' title='" + apps[app][4] + "'>" + dayno + "</td>";

      }

   }



   return retval;

}



function PrintMonth(month)

{

   var done = false;

   var day = 0;

	var tmpYear = "";
	
	if (month>11)
		tmpYear = curr_Year + 1;
	else
		tmpYear = curr_Year;

   document.write("<table width=100% cellspacing=1 class='inner'><caption class='banner'><b>" + months[month] + " " + tmpYear + "</b></caption><thead class=header>");

   document.write("<td width='14%'>Sun</td><td width='14%'>Mon</td><td width='14%'>Tue</td><td>Wed</td><td width='14%'>Thu</td><td width='14%'>Fri</td><td width='14%'>Sat</td></thead>");

   while(!done)

   {

      document.write("<tr>");

      PrintWeek(month,day, firstdays[month], daycounts[month]);

      document.write("</tr>");

      day = day + 7;

      if( day > daycounts[month] + firstdays[month])

      {

         done = true;

      }

   }

   document.write("</tbody></table>");

}





function PrintWeek(monthno,start,min,max)

{

   var d;

   var desc;

   for(var j = 0; j < 7; j++)

   {

      

      d = start + j;

      if(d >= min && d < max + min)

      {

         desc = CheckDate(monthno,d - min + 1);

         document.write(desc);

      }
	  else
	  {
	  	  document.write("<td>");
	      document.write("</td>");
	  }

   }

}


