jQuery.fn.lsGenerateMiniCalendar = function(options, iYear, iMonth)
{
    $(this).children('li').remove();

    dMonth = iMonth;
    iMonth--;

    dayEvents = new Array();

    obj = $(this);

    $.post(options['url'], { 'y': iYear, 'm': iMonth + 1 }, function(json){
        dayEvents = json;
        lsUpdateMiniCalendar(obj, iYear, iMonth, dayEvents);
    });
} // end lsGenerateMiniCalendar();

function lsUpdateMiniCalendar(obj, iYear, iMonth, dayEvents)
{
    daysInMonth = 32 - new Date(iYear, iMonth, 32, 12,0,0).getDate();
    currentDate = new Date();

    weekdayNames = ['nie.', 'pon.', 'wt', 'śr.', 'czw.', 'pt.', 'so.'];

    for(i = 1; i <= daysInMonth; i++)
    {
        d = new Date(iYear, iMonth, i, 12,0,0);
        classes = '';
        if(dayEvents[i] == true)
        {
            classes = 'today';
        }
        if(d.getDay() == 6)
        {
            classes += ' saturday';
        }
        else if(d.getDay() == 0)
        {
            classes += ' holiday';
        }

        if(d.getYear() == currentDate.getYear() && d.getMonth() == currentDate.getMonth() && d.getDate() == currentDate.getDate())
        {
            classes += ' current';
            obj.append('<li class="active"><a href="/calendar/'+iYear+'/'+dMonth+'/'+i+'"'+(classes != '' ? ' class="'+classes+'"' : '')+'>'+weekdayNames[d.getDay()]+' '+d.getDate()+'</a></li>');
        }
        else
        {
            obj.append('<li><a href="/calendar/'+iYear+'/'+dMonth+'/'+i+'"'+(classes != '' ? ' class="'+classes+'"' : '')+'>'+weekdayNames[d.getDay()]+' '+d.getDate()+'</a></li>');
        }
    }
} // end lsUpdateMiniCalendar();
