var months = new Array("Styczen", "Luty", "Marzec", "Kwiecien", "Maj", "Czerwiec", "Lipiec", "Sierpien", "Wrzesien", "Pazdziernik", "Listopad", "Grudzien");
var dweek = new Array("p", "w", "s", "c", "p", "s", "n");
var exd = new Date();
var _month = exd.getMonth();
var _year = exd.getFullYear();
var cDay = exd.getDate();
var cMonth = _month;
var cYear = _year;
var url = '';

function setCalendarToday(y, m, d){
	cYear = y;
	_year = y;
	cMonth = m-1;
	_month = m-1;
	cDay = d;
}

function setCalendarMonths(_months){
	months = _months;
}

function setCalendarDWeek(_dweek){
	dweek = _dweek;
}

function setCalendarUrl(_url){
	url = _url;
}

function DaysInMonth(Y, M) {
	with(new Date(Y, M, 1, 12)){
		setDate(0);
		return getDate();
	}
}

function parseDay(day){
	return (day < 10) ? '0'+day : day
}

function parseMonth(month){
	month++;
	return (month < 10) ? '0'+month : month
}

function setCal(month, year){
	month = month + 1;
	var days = DaysInMonth(year, month);
	var D = new Date(month+"/01/"+year);
	var day = D.getDay() - 1;
	if(day == -1)day = 6;

	var df = months[month - 1];
	df = df+", "+D.getFullYear();
	document.getElementById('cdate').innerHTML = df;

	var ddf = 41;

	for(var xx=0; xx<ddf; xx++){
		document.getElementById('d'+xx).innerHTML = '';
		document.getElementById('p'+xx).className = "hide";
	}

	var ss = 1;
	for(var xx=day; xx<day+days; xx++){
		xday = ss++;
		
		document.getElementById('d'+xx).innerHTML = '<a href="'+url+'&amp;d='+_year+'-'+parseMonth(_month)+'-'+parseDay(xday)+'">'+xday+'<a/>';
	
		if(cYear == _year && cMonth == _month && cDay == ss-1){ 
			document.getElementById('p'+xx).className = "today";
		} else {
			if((xx+1)%7 == 0){
				document.getElementById('p'+xx).className = "holiday";
			} else {
				document.getElementById('p'+xx).className = "day";
			}
		}
	}
}

function prev(){
	_month = _month - 1;
	if(_month < 0){
		_year = _year - 1;	
		_month = 11;
	}

	setCal(_month, _year);
	return false;
}

function next(){
	_month = _month + 1;
	if(_month > 11)	{
		_year = _year + 1;	
		_month = 0;
	}

	setCal(_month, _year);
	return false;
}

function thisMonth(){
	//_year = _year+1900;
	setCal(_month, _year);
}

function startCalendar(){
	document.write('<table cellspacing="0" cellpadding="0" class="mcalendar"><tr><td class="mheader"></td></tr><tr><td class="mmain">');
	document.write('<table cellspacing="0" cellpadding="0" class="calendar">');
	document.write('<tr><td align="right"><a style="cursor: pointer;" onclick="return prev();">&laquo;</a></td><td align="center" colspan="5"><div id="cdate"></div></td><td><a style="cursor: pointer;" onclick="return next()">&raquo;</a></td></tr>');
	document.write('<tr class="header"><td>'+dweek[0]+'</td><td>'+dweek[1]+'</td><td>'+dweek[2]+'</td><td>'+dweek[3]+'</td><td>'+dweek[4]+'</td><td>'+dweek[5]+'</td><td class="holiday">'+dweek[6]+'</td></tr>');
	for(var xx=0; xx<6; xx++){
		document.write('<tr class="main">');
		for(var cc=0; cc<7; cc++){
			var dd = (xx*7) + cc;
			if(dd == 41){
				document.write('<td class="hide"></td>');
			} else {
				document.write('<td id="p'+dd+'" class="hide"><span id="d'+dd+'">'+dd+'</span></td>');
			}
		}
		document.write("</tr>");
	}

	document.write('</table></td></tr><tr><td class="mfooter">&nbsp;</td></tr></table>');

	thisMonth();
}