	var d = new Date();
	var y = d.getFullYear();
	var cto;
	function updateCalendarTable() {
		var box = $("#show_archive"), t = $("table.ui-datepicker-calendar", box), arr = box.data("calendar_"+box.data("year")+"_"+box.data("month"));
		$('a', t).removeClass('ui-state-hover');
		$('a.ui-state-active', t).removeClass('ui-state-highlight').addClass('ui-state-highlight-2');
		if(ruriy || rurim || rurid) $('a.ui-state-active', t).removeClass('ui-state-highlight-2').removeClass('ui-state-active');
		var isCurrent = (parseInt($('select.ui-datepicker-year', box).val())==ruriy && parseInt($('select.ui-datepicker-month', box).val())+1==rurim) ? true : false;
		
		$('td:not(.ui-state-disabled)', t).each(function(){
			var td = $(this), d = parseInt(td.text());
			if(ruriy || rurim || rurid) td.removeAttr('class');
			if (d>0 && $.inArray(d, arr)==-1) {
				td.addClass('ui-datepicker-unselectable').addClass('ui-state-disabled').html('<span class="ui-state-default">'+d+'</span>').click(function(){});
				if (isCurrent && d==rurid) $('span', td).addClass('ui-state-highlight-2').addClass('ui-state-active');
			} else {
				td.removeAttr('onclick').click(function(){});
				$('a', td).attr("href", '/main/'+box.data("year")+'/'+box.data("month")+'/'+d+'/').click(function() { return true; });
				if (isCurrent && d==rurid) {
					td.attr('class', 'ui-datepicker-days-cell-over ui-datepicker-current-day ui-datepicker-today');
					$('a', td).addClass('ui-state-highlight-2').addClass('ui-state-active');
				}
			}
		});	
		t.css("visibility", "visible");
	}
	
	$(function(){
		$.datepicker.setDefaults($.extend({showMonthAfterYear: false}, $.datepicker.regional['ru']));
		$('#show_archive').datepicker({
			changeMonth: true,
			changeYear: true,
			dateFormat: 'yy/mm/dd',
			maxDate: 'y m w d',
			minDate: new Date(2009, 4 - 1, 1),
			onChangeMonthYear: function(year, month, inst) {
				var box = $("#show_archive"), t = $("table.ui-datepicker-calendar", box), delay = 1;
				clearTimeout(cto);
				box.data("year", year);
				box.data("month", month);
				
				if (box.data("calendar_"+year+"_"+month)) {
					cto = setTimeout('updateCalendarTable()', delay);
				} else {
					$.get(
						"/jqajax.php", 
						{ 'do': "getcalendardata", year:year, month:month },
						function(data){
							eval("data = "+data+";");
							if (data.stateResponse) {
								 box.data("calendar_"+year+"_"+month, data.dataResponse);
								 cto = setTimeout('updateCalendarTable()', delay);
							}
						},
						"jsonObj"
					);
				}
			}
		});
		if(ruriy || rurim || rurid) $('#show_archive').datepicker('setDate', new Date(ruriy,rurim-1,rurid));
   });
