/*
 * 
 * Author: Paweł Wieczorek 
 * Version: 1.0
 * Date: 2006-09-06
 *
 */

var aWeekDays = new Array('Nd','Pn','Wt','Śr','Cz','Pt','So');
var aMonths = new Array('Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec','Lipiec',
'Sierpień','Wrzesień','Październik','Listopad','Grudzień');

/*
 * example: showCalendar(2, 2004, new Array(5, 21, 29));
 */
function showCalendar(month, year, aSelectedDays) {

var Calendar = new Date();
var calYear = Calendar.getYear();	
var calMonth = Calendar.getMonth();    

if(calYear < 1900) 
  calYear += 1900; // for !IE

if(!year)
	year = calYear;

if(!month)
	month = calMonth;
else
	month -= 1; // count from 0


var today = Calendar.getDate();    // Returns day (1-31)
var weekday = Calendar.getDay();    // Returns day (1-31)


var DAYS_OF_WEEK = 7;    
var DAYS_OF_MONTH = 31;    
var out;    // Used for printing

Calendar.setDate(1);    // Start the calendar day at '1'
Calendar.setMonth(month);    
Calendar.setYear(year);    

out =  '<table class="Cal" cellspacing="0">';
out += '<thead class="Cal"><th colspan="' + DAYS_OF_WEEK + '">' + aMonths[month]  + ' ' + year + '</th></thead>';

out += '<tr class="Cal">';
// LOOPS FOR EACH DAY OF WEEK
for(i=0; i < DAYS_OF_WEEK; i++)  {

	// strong only today day in current month
	if(weekday == i && calYear == year && calMonth == month)
		out += '<td><strong>' + aWeekDays[i] + '</strong></td>';
	else
		out += '<td>' + aWeekDays[i] + '</td>';
}

out += '</tr>';
out += '<tr>';

// fill one emtpy cell till first day
if(Calendar.getDay() > 0)
	out += '<td colspan="'+ Calendar.getDay() +'"></td>';

for(i=1; i <= DAYS_OF_MONTH; i++)	{

	// next week day 0 - Sunday, 6 Saturday
	var nextWeekDay = Calendar.getDay();

	// next day 1-31
	var nextDay  = Calendar.getDate();

	// sometimes i is 31 and nextDay is 1
	if(nextDay >= i )  {
	  
		// new row for Sunday
		if(nextWeekDay == 0)
		  	out += '<tr>';		

		// defined classes Cal, CalSelect, CalToday CalSelectToday
		var className="Cal";

		if(aSelectedDays)
			for(s=0; s<aSelectedDays.length; s++) 
				if(aSelectedDays[s] == nextDay) 
					className="CalSelect";
  
		// today
		if( today==Calendar.getDate() && calYear == year && calMonth == month)	
			className+="Today";

		out += '<td class="'+ className +'">' + nextDay + /*'<small>(' + nextWeekDay + ')</small>'+*/ '</td>';


		// end row for Saturday
		if(nextWeekDay == DAYS_OF_WEEK)
		  	out += '</tr>';
	}

  // increment calendar one day forward
  Calendar.setDate(Calendar.getDate()+1);

}

out += '</td></tr></table>';

document.write(out);

}
