if (!UI) { var UI = {}; }
if (!UI.Control) { UI.Control = {}; }

UI.Control.Calendar = Class.create();
UI.Control.Calendar.prototype = {
	initialize: function(name) {
		this.name = name;
		var d = this.date = new Date();
		this.year = d.getYear();
		this.month = d.getMonth()+1;
		this.day = d.getDate();
		this.name = name;
		this.url = '';
		this.listYears = null;
		this.periodType = 'day';
	},
	ParseUrl: function(url) {
		// TODO: парсинг года и месяца из урла
		var day = this.day;
		var u = this.url = (!url) ? window.location.href : url;
		var n = u.indexOf('/rqdate');
		if (n!=-1) { var nday = u.substr(n+12, 2); nday = parseInt('0x0'+nday); if (isNaN(nday)) { nday = day;} }
		if (nday != (new Date(this.year, this.month-1, nday)).getDate()) { nday = day; }
		this.day = nday;
	},
	HighLight: function() {
		var nday = this.day;	
		if (nday < 10)
		{
		    nday = "0" + nday;
		}
		
		var td = document.getElementById(this.name + "." + nday);
		if (td) {
			switch (this.periodType) 
			{
				case "day":
					td.className = "current";
					break;
				case "period":
					td.parentNode.className = "current";
					break;
				case "month":
					td.className = "current";
					break;
			}
		}
	},
	LoadPart: function(target, url) {
	},
	ScrollYears: function() {
		var e = window.event; 
		var year = parseInt(listYears.childNodes[0].childNodes[0].innerHTML); 
		year = (isNaN(year)) ? (new Date()).getYear()-2 : year; 
		year += (e.wheelDelta < 0) ? 1 : -1; 
		var s = ''; 
		for (var i=0; i<3; i++) {
			s += '<li onmouseover="this.className=\'over\';" onmouseout="this.className=\'\';"><a href="'+url.replace('###', (year+i).toHex())+'" onclick=" PageManager.LoadPart(\'part_news_calendar\', \'archive\', \''+url.replace('###', (year+i).toHex())+'\'); return false; ">'+(year+i)+'</a></li>';
		}
		listYears.innerHTML = s;
	}
}

function GetControlCalendar(name) {
	var ctrl = new UI.Control.Calendar(name)
	return ctrl;
}
