	var months   = ['Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień'];
	var days     = ['N', 'Pn', 'Wt', 'Śr', 'Cz', 'Pt', 'So'];
	var navLinks = {p:'<<', n:'>>', t:'akt'};
	var _firstDayOfWeek=1;

	function calendarsStart () {
		var calendarDiv;
		jQuery('div#calendars').html('');
		
		var html = "<table><tr>";
		for (i=0; i<12; i++) {
			if (i%4==0)	html+="</tr><tr>";
			html += '<td><div class="jcalendar" id="cal'+i+'"></div></td>';
		}
		html+="</tr></table>";
		jQuery('div.calendars').html(html);
		for (i=0; i<12; i++) calendarStart(today.getFullYear(), i, 'cal'+i, 1);
	}
	function calendarStart (year, month, calendarDivId, withOutNav) {
		var dateIn = new Date(year, month, 1);
	    dateIn.setDate(1);
		$.getJSON('kalendarz.php?year='+dateIn.getFullYear()+'&month='+(dateIn.getMonth()+1)+'&json=?',function(daysData) {
			
			calendarDraw (dateIn, daysData, calendarDivId, withOutNav);
        });
	}
	function dymekIn (obj) {
//		var cell = obj.parent("td");
		var cell = obj;
		var toolTipHtml = "<div id='tooltip'>"+obj.attr('rel')+"</div>";				
		if ($("#tooltip").length==0) {							
			$("body").append(toolTipHtml);
			if ($("#tooltip").width()>200) $("#tooltip").css("width","200px");
			var posLeft = cell.offset().left+cell.width()+4;
			var posTop  = cell.offset().top+3;
			if ( cell.offset().left+$("#tooltip").width() > $("body").width() ) {
				posLeft = cell.offset().left - $("#tooltip").width() - 40;
			}
			if ( cell.offset().top+$("#tooltip").height() > $("body").height() ) {
				posTop = cell.offset().top - $("#tooltip").height()+2;
			}

			$("#tooltip")
				.css("top", (posTop)  + "px")
				.css("left",(posLeft) + "px")
				.fadeIn("fast");
		}
	}
	function dymekOut () {
		$("#tooltip").remove();
	}
	function calendarDraw (d, daysData, calendarDivId, withOutNav) {
		if (document.getElementById(calendarDivId)==null) return;
		
		var html = '';
		
		html += "<thead><tr>";
		for (var i=_firstDayOfWeek; i<_firstDayOfWeek+7; i++) {
			var weekday = i%7;
			var wordday = days[weekday];
			html += '<th scope="col" abbr="'+ wordday +'" title="'+ wordday +'" class="'+ (weekday == 0 || weekday == 6 ? 'weekend' : 'weekday') +'">'+ wordday +'</th>';
		}
		html += '</tr></thead>';
	
		html += "<tbody>";
		var lastDay = (new Date(d.getFullYear(), d.getMonth()+1, 0)).getDate();
		var curDay = _firstDayOfWeek - d.getDay();
		if (curDay > 0) curDay -= 7;

		var todayDate = today.getDate();
		var thisMonth = d.getMonth() == today.getMonth() && d.getFullYear() == today.getFullYear();

		do {
			html += "<tr>";
  			for (var i=0; i<7; i++) {
				var weekday = (_firstDayOfWeek + i) % 7;
				var klasa = weekday == 0 || weekday == 6 ? 'weekend ' : 'weekday ';

  				if (curDay < 0 || curDay >= lastDay) html += '<td class="'+klasa+'"></td>';
	  			else {
					if (thisMonth && curDay+1 == todayDate)	klasa = 'today';
                                        d.setDate(curDay+1);
                                        if (daysData[curDay+1]!=undefined && curDay+1 == todayDate){ klasa = 'info today2';
                                            html += '<td class="'+klasa+'" onmouseover="javascript: dymekIn($(this));" onmouseout="javascript:dymekOut();" rel="'+ daysData[curDay + 1].replace(/"/g,"'") +'">'+ (curDay+1) +'</td>';
                                        }
							
					if (daysData[curDay+1]!=undefined && curDay+1 != todayDate) {
						klasa = 'info';
						html += '<td class="'+klasa+'" onmouseover="javascript: dymekIn($(this));" onmouseout="javascript:dymekOut();" rel="'+ daysData[curDay + 1].replace(/"/g,"'") +'">'+ (curDay+1) +'</td>';
					}
                                        if (daysData[curDay+1]==undefined && curDay+1 != todayDate){
                                         html += '<td class="'+klasa+'">'+ (curDay+1) +'</td>';
                                        }
                                         if (curDay+1 == todayDate && daysData[curDay+1]==undefined){
                                                                   
                                         html += '<td class="'+klasa+'">'+ (curDay+1) +'</td>';
                                        }
  				}
  				curDay++;
		    }
			html += "</tr>";
		} while (curDay < lastDay);
	
		html += "</tbody>";

		var lastMonth = d.getMonth() == 0 ? new Date(d.getFullYear()-1, 11, 1) : new Date(d.getFullYear(), d.getMonth()-1, 1);
		var nextMonth = new Date(d.getFullYear(), d.getMonth()+1, 1);

		var naglowek="";
		if (withOutNav==undefined) {
			naglowek += '<div style="float:left"><a href="javascript:calendarStart('+lastMonth.getFullYear()+','+lastMonth.getMonth()+',\''+calendarDivId+'\');">'+ navLinks.p +'</a></div>';
			naglowek += '<div style="float:right"><a href="javascript: calendarStart ('+nextMonth.getFullYear()+','+nextMonth.getMonth()+',\''+calendarDivId+'\');">'+ navLinks.n +'</a></div>';
		}
		naglowek += '<div style="">'+months[d.getMonth()]+" "+d.getFullYear()+'</div>';

		jQuery('div#'+calendarDivId).html('<div class="jcalendar-links">'+naglowek+'</div><table cellspacing="1">'+html+'</table>');
	};
