var date = new Date();
var m, y, active_days = [];
var READY_STATE_UNINITIALIZED = 0;
var READY_STATE_LOADING = 1;
var READY_STATE_LOADED = 2;
var READY_STATE_INTERACTIVE = 3;
var READY_STATE_COMPLETE = 4;

var req = null;
var isOpera = false;
var obj;
var img_obj;
var loadXMLCallBack;
function draw() {
		var	MonthsLengths = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
		var MonthNames = ['Январь', 'Февраль', 'Март', 'Апрель', 'Май',
                                 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'];
		var weekDays = ['Пн','Вт','Ср','Чт','Пт','Сб','Вс'];
		var date = new Date();
		var firstDayOfMonth = new Date(y, m, 1);
		var dayOfWeekOfTheFirstDay = firstDayOfMonth.getDay() - 1;
		var dw = 0;
		var s = '<table celldadding="1" cellspacing="1" bgColor="#eeeeee"><tr bgColor="White">';
		s += '<td colspan="7" align="center"><a href="javascript:year_left()" class="lnk">&larr;</a> ' + y + 
			' <a href="javascript:year_right()" class="lnk">&rarr;</a></td></tr><tr bgColor="White">';
		s += '<td colspan="7" align="center"><a href="javascript:mon_left()" class="lnk">&larr;</a> ' +  
			MonthNames[m] + ' <a href="javascript:mon_right()" class="lnk">&rarr;</a></td></tr><tr bgColor="White">';
		for (var i = 0; i < weekDays.length; i++) {
			s += '<td>' + weekDays[i] + '</td>';
		}
		s += '</tr><tr bgColor="White">';
		for (var i = 0; i < dayOfWeekOfTheFirstDay; i++) {
			s += '<td></td>';
			dw++;
		}

		for (var i = 1; i <= MonthsLengths[m]; i++) {
			if (dw > 6) {
				s += '</tr><tr bgColor="White">';
				dw = 0;
			}
			if (active_days.in_array(i))
				s += '<td><a href="/newsbydate?d=' + i + '-' + m + '-' + y +'">' + i + '</a></td>';
			else
				s += '<td>' + i + '</td>';
			dw++;
		}
		s += '</tr></table>';
		document.getElementById('calendar').innerHTML = s;
	}

function init(){
		if (navigator.userAgent.indexOf('Opera') != -1) {
			req = new XMLHttpRequest();
			isOpera = true;
        }
		m = date.getMonth();
		y = date.getFullYear();
		getMon();	
}

function processReqChange() {
	if (req.readyState == READY_STATE_COMPLETE) {
		if (req.status == 200) {
			loadXMLCallBack();
		}
	}
}

function loadXMLDoc(url, method) {
	if (!method)
		method = 'GET';
	if (!isOpera) {
		if (window.ActiveXObject)
			req = new ActiveXObject("Microsoft.XMLHTTP");
		else
			if (window.XMLHttpRequest)
				req = new XMLHttpRequest();
    }
	req.onreadystatechange = processReqChange;
	req.open(method, url, true);
	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	req.send(null);

}


Array.prototype.in_array = function(v) {
	for(var i = 0; i < this.length; i++) 
		if(this[i] == v) 
			return true;
	return false;
}

function callback() {
	active_days = req.responseText.split(',');
	draw();
}

function getMon() {
	loadXMLCallBack = callback;
	loadXMLDoc('/getmonth?m=' + (m + 1) + '&y=' + y);
}

function mon_left() {
	m--;
	if(m < 0) {
		m = 11;
		y--;
	}
	getMon();
}
function mon_right() {m++; if(m > 11) {m = 0; y++} getMon();}
function year_left() {y--; getMon();}
function year_right() {y++; getMon();}
