function showCalend(sMonth,sYear){
$("#calendar").calendarWidget({
	month: sMonth,
	year: sYear						  
});
}

(function($) { 
   
	function calendarWidget(el, params) { 
		
		var now   = new Date();
		var thismonth = now.getMonth();
		var thisyear  = now.getYear() + 1900;
		
		var opts = {
			month: thismonth,
			year: thisyear
		};
		
		$.extend(opts, params);
		
		var monthNames = ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'];
		var dayNames = ['Пн.', 'Вт.', 'Ср.', 'Чт.', 'Пт.', 'Сб.', 'Вс.'];
		month = i = parseInt(opts.month);
		year = parseInt(opts.year);
		var m = 0;
		var table = '';
		
			// next month
			if (month == 11) {
				var nMonth = 0;
                                var nYear = (year + 1);
			} else {
				var nMonth = month + 1;
                                var nYear = year;

			}
				
			// previous month
			if (month == 0) {
				var pMonth = 11;
                                var pYear = (year - 1);
			} else {
				var pMonth = month - 1;
				var pYear = year;
			}		

			table += ('<table class="calendar-month " ' +'id="calendar-month'+i+' " cellspacing="0">');
				
			table += ('<caption><a href="javascript:showCalend('+pMonth+','+pYear+')">&larr;</a> '+monthNames[month]+' '+year+' <a href="javascript:showCalend('+nMonth+','+nYear+')">&rarr;</a></caption>');
		
			table += '<tr>';
			
			for (d=0; d<7; d++) {
				table += '<th class="weekday">' + dayNames[d] + '</th>';
			}
			
			table += '</tr>';
		
			var days = getDaysInMonth(month,year);
            var firstDayDate=new Date(year,month,1);
            var firstDay=firstDayDate.getDay();
			
			var prev_days = getDaysInMonth(month,year);
            var firstDayDate=new Date(year,month,1);
            var firstDay=firstDayDate.getDay();
			
			var prev_m = month == 0 ? 11 : month-1;
			var prev_y = prev_m == 11 ? year - 1 : year;
			var prev_days = getDaysInMonth(prev_m, prev_y);

			firstDay = (firstDay == 0 && firstDayDate) ? 7 : firstDay;
			firstDay--;
	
			var i = 0;
            for (j=0;j<42;j++){
			  
	        if ((j<firstDay)){
			table += ('<td class="other-month">'+ (prev_days-firstDay+j+1) +'</td>');
	 	} else if ((j>=firstDay+getDaysInMonth(month,year))) {
			i = i+1;
	                table += ('<td class="other-month">'+ i +'</td>');
        	} else {
			if ( ( (j-firstDay+1) > now.getDate() && ( month == thismonth ) && ( year == thisyear )  ) || ( ( month > thismonth ) && ( year >= thisyear ) || (year > thisyear) ) ){
		                table += ('<td class="current-month day'+(j-firstDay+1)+'">'+(j-firstDay+1)+'</td>');
			} else {
				$dayText = (j-firstDay+1);
				if ($dayText < 10){
					$dayText = '0' + $dayText;
				}
				$monthText = (month+1);
				if ($monthText < 10){
                                        $monthText = '0' + $monthText;
                                }
				table += ('<td class="current-month day'+(j-firstDay+1)+'"><a href="/news/'+year+'/'+$monthText+'/'+$dayText+'/" class="day">'+(j-firstDay+1)+'</a></td>');
			}
        	}
	 
	       if (j%7==6)  table += ('</tr>');
        
	    }

            table += ('</table>');
			
	    el.html(table);
	}
	
	function getDaysInMonth(month,year)  {
		var daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31];
		if ((month==1)&&(year%4==0)&&((year%100!=0)||(year%400==0))){
		  return 29;
		}else{
		  return daysInMonth[month];
		}
	}
	
	
	// jQuery plugin initialisation
	$.fn.calendarWidget = function(params) {    
		calendarWidget(this, params);		
		return this; 
	}; 

})(jQuery);

