
Calendar2 = function(el, elDates)
{
	Calendar2.element = (document.getElementById(el)) ? document.getElementById(el) : el;
	Calendar2.elementDates = [];
	for (var i=0;i<elDates.length;i++)
		Calendar2.elementDates[i] = (document.getElementById(elDates[i])) ? document.getElementById(elDates[i]) : elDates[i];	

	Calendar2.element.select();
	
	clearTimeout(Calendar2.wait); // отмена ожидания
	
	Calendar2.WaitCal();
}

// глобальные
Calendar2.wait = 0; // идентификатор ожидания
Calendar2.element = false; // элемент, куда вписываем дату
Calendar2.elementDates = []; // элементы с датами
Calendar2.calendarFrame = document.getElementById('Calendar2frame'); // фрейм, в котором находится календарь

Calendar2.hideCalendar = function()
{
	Calendar2.calendarFrame.style.visibility = "hidden";
}

Calendar2.showCalendar = function()
{
	Calendar2.calendarFrame.style.display = "block";
	Calendar2.calendarFrame.style.visibility = "visible";
}

// ожидание появления календаря
Calendar2.WaitCal = function()
{
	if (!frames[Calendar2.calendarFrame.name]) Calendar2.wait = setTimeout("Calendar2.WaitCal()", 200);
	else
	{
		Calendar2.calendarFrame = document.getElementById('Calendar2frame');
		setTimeout("Calendar2.DoCal()", 1);
	}
}

Calendar2.DoCal = function()
{
	Calendar2.PosCal(); // позиционируем относительно элемента
	frames[Calendar2.calendarFrame.name].DoCal(Calendar2.element, Calendar2.elementDates);
}


Calendar2.getScrollTop = function()
{
	if (document.documentElement.scrollTop) return document.documentElement.scrollTop;
	if (document.body.scrollTop) return document.body.scrollTop;
	if (window.pageYOffset) return window.pageYOffset;
	return 0;
}

Calendar2.getWinHeight = function()
{
	if (window.innerHeight) return window.innerHeight;
	if (document.documentElement.clientHeight) return document.documentElement.clientHeight;
	if (document.body.clientHeight) return document.body.clientHeight;
	return 0;
}

// позиционирование календаря
Calendar2.PosCal = function()
{
	var cP = Calendar2.element;
	var dB = document.body; var eL = 0; var eT = 0;
	

	for (var p=cP;p&&p.tagName!='BODY';p=p.offsetParent) {eL += p.offsetLeft; eT += p.offsetTop;}
	var eH = cP.offsetHeight;
	var dH = parseInt(Calendar2.calendarFrame.style.height);
	var sT = Calendar2.getScrollTop();
	
	var right = true;
	
	if (right) // позиционирование справа от того, по чему мы кликнули
	{
	    if (eT-dH>=sT&&eT+dH>Calendar2.getWinHeight()+sT) eT-=(dH-eH);
	    Calendar2.calendarFrame.style.left=eL+30+cP.offsetWidth+'px';
		Calendar2.calendarFrame.style.top=eT+'px';
	}
	else
	{
	    if (eT-dH>=sT&&eT+eH+dH>Calendar2.getWinHeight()+sT)eT-=dH;else eT+=eH;
	    Calendar2.calendarFrame.style.left=eL+'px';
		Calendar2.calendarFrame.style.top=eT+'px';
	}
}

// установка даты при клике по ней
Calendar2.CalDateSet = function(date)
{
	Calendar2.element.value = date;
}


if (!document.onclick) document.onclick = Calendar2.hideCalendar;
else eval('document.onclick = ' + (document.onclick+'').substr(0, (document.onclick+'').indexOf('{')+1) + 'Calendar2.hideCalendar();'
	+ (document.onclick+'').substr((document.onclick+'').indexOf('{')+1));