function callendar(block, year, month) {
    bo = $('#' + block);

    var first   = new Date(year, month, 1).getDay();
    var _y  = new Date(year, month, 1).getFullYear();
    var _m  = new Date(year, month, 1).getMonth();
    var last    = new Date(year, month + 1, 0).getDate();
    if( first == 0 ) {
        first   = 7;
    }

    var html    = '<table id="prog_calendar">';

    var prev    = '';
    var next    = '';
    if( ( calendar_conf.fy == _y && calendar_conf.fd <= _m ) || calendar_conf.fy < _y ) {
        prev    = '<a href="javascript:callendar(\'' + block + '\',' + year + ',' + ( month - 1 )  + ');">&lt;&lt;</a>';
    }
    if( ( calendar_conf.ly == _y && calendar_conf.ld - 1 > _m ) || calendar_conf.ly > _y ) {
        next    = '<a href="javascript:callendar(\'' + block + '\',' + year + ',' + ( month + 1 )  + ');">&gt;&gt;</a>';
    }

    html    += '<tr class="title"><th colspan="7">' + calendar_conf.title + '</th></tr>';
    html    += '<tr class="year"><th class="prev">' + prev + '</th><th colspan="5">' + _y + '-' + ( _m + 1 ) + '</th><th class="next">' + next + '</th></tr>';
    html    += '<tr class="days"><th>H</th><th>K</th><th>SZ</th><th>CS</th><th>P</th><th>SZ</th><th>V</th></tr>';

    var day = 1;
    var pd  = '';
    html    += '<tr>';
    for(var i = 0; i < last + first - 1; ++i) {
        if( i < first - 1 ) {
            html    += '<td></td>';
            continue;
        }

        pd  = _y + '-' + ( (_m + 1) < 10 ? '0' + (_m + 1) : (_m + 1) ) + '-' + ( day < 10 ? '0' + day : day );
        var inprog  = false;
        for(j=0;j<calendar_conf.programs.length;++j) {
            if( calendar_conf.programs[j] == pd ) {
                inprog   = true;
                break;
            }
        }
        if( inprog ) {
            html    += '<td class="eprogram"><a href="http://www.symbolbudapest.hu/?all=prog&amp;d=' + pd + '">' + day  + '</a></td>';
        } else {
            html    += '<td>' + day + '</td>';
        }

        if( i + 1 != 0 && ( i + 1 ) % 7 == 0 ) {
            html += '</tr><tr>';
        }

        ++day;
    }
    html    += '</tr>';

    html    += '</table>';

    bo.html(html);
}