
var arCalendar = new Array();
var CalendarID = '';
var InputElementName = new Array();

function WriteMonth(y, m){
	var mArray = new Array(31, ((Math.round(y/4)*4 == y)? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	var mnArray = new Array('Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь')
	var someDate = new Date ();
	var sD = 'sjdk flksldjf klsjdfkl jskldjflksjdfklj skldj ';
    var today = {Y: someDate.getFullYear(), D: someDate.getDate(), M: someDate.getMonth()};

	someDate.setYear(y);
	someDate.setMonth(m);

	var d = 1;
	var yy = [((m==0)?y-1:y), (y-1), (y+1), ((m==11)?y+1:y)];
	var mm = [((m==0)?11:m-1), (m), (m), ((m==11)?0:m+1)];

	sD = '<table><tr class="cheader">'+
	'<th><a href="javascript:ShowMonth('+(yy[0])+', '+(mm[0])+', false)">&lt;</a></th>'+
	'<th><a href="javascript:ShowMonth('+(yy[1])+', '+(mm[1])+', false)">&lt;&lt;</a></th>'+
	'<th colspan="3">'+mnArray[m]+'&nbsp;'+y+'</th>'+
	'<th><a href="javascript:ShowMonth('+(yy[2])+', '+(mm[2])+', false)">&gt;&gt;<a></th>'+
	'<th><a href="javascript:ShowMonth('+(yy[3])+', '+(mm[3])+', false)">&gt;</a></th></tr>';

	sD = sD + '<tr><th>Пн</th> <th>Вт</th> <th>Ср</th> <th>Чт</th> <th>Пн</th> <th>Сб</th> <th>Вс</th></tr>';

	while(d <= mArray[m]){
		someDate.setDate(d);
		var k = someDate.getDay();
		var j;
		sD = sD + '<tr>';
		for(i = 1; i <= 7; i++){
			j = (k == 0)? 7 : k;
			if(i < j){
				 sD = sD + '<td></td>';
			}
			else if(d <= mArray[m]){
				var sMonth = new String(m+1), sDay = new String(d);
				sMonth = (sMonth.length == 1)? '0'+sMonth : sMonth;
				sDay = (sDay.length == 1)? '0'+sDay : sDay;
				var sDate = new String(sDay+'.'+sMonth+'.'+y);

				if(today.Y == y && today.D == d && today.M == m) {
					sD = sD + '<td onMouseOver="ActiveColor(this)" onMouseOut="noActiveColor(this)" onClick="DateClick(\''+sDate+'\')" style="border: 1px solid red;">'+d+'</td>';
				}else
					sD = sD + '<td onMouseOver="ActiveColor(this)" onMouseOut="noActiveColor(this)" onClick="DateClick(\''+sDate+'\')">'+d+'</td>';
				d++;
			}
		}
		sD = sD + '</tr>';
	}
	sD = sD + '</table>';
	return sD;
}

function ShowMonth(y, m, isNew){
	var sDate = document.getElementById(InputElementName[CalendarID]).value;
    var arDate = sDate.split(".");

    if(arDate.length == 3 && isNew) {    	y = new Number(arDate[2]);
    	m = (new Number(arDate[1]))-1;    }
	document.getElementById("calendar"+CalendarID).innerHTML = WriteMonth(y, m);
}

function ActiveColor(o){
	o.className = 'calendar-date-active';
}

function noActiveColor(o){
	o.className = 'calendar-date';
}

function DateClick(d){
	if(document.getElementById(InputElementName[CalendarID])){
		document.getElementById(InputElementName[CalendarID]).value = d;
		CalendarClick(CalendarID);
	}
}

function CalendarClick(id){
    CalendarID = id;
    var i;
	if(document.getElementById("calendar"+id).style.display == 'none'){
		for(i in arCalendar) {document.getElementById("calendar"+i).style.display = 'none';}
		document.getElementById("calendar"+id).style.display = 'block';
	}
	else{
		for(i in arCalendar) {
			document.getElementById("calendar"+i).style.display = 'none';
		}
		document.getElementById("calendar"+id).style.display = 'none';
	}
}

function Calendar(id, tElement, tElementValue, float){
	var someDate = new Date();
	CalendarID = id;
	arCalendar[CalendarID] = true;
	InputElementName[CalendarID] = tElement;

	document.write('<table align="'+float+'"><tr><td><input name="'+tElement+'" type="text" value="'+tElementValue+'" id="'+tElement+'"></td>');
	document.write('<td width="25"><img src="/core/jscript/calendar/calendar.gif" onClick="CalendarClick('+id+')" ></td>');
 	document.write('<td valign="top"><div class="calendar" id="calendar'+id+'" style="position:absolute;display:none;"></div></td>');
  	document.write('</tr></table>');

	ShowMonth(someDate.getFullYear(), someDate.getMonth(), true);
}