﻿var CurrentCalendarFrame = null;
var CurrentCalendarSender = null;
var CurrentCalendarTarget = null;

function UpdateCalendarPos(frame, sender)
{
	if (frame == null || sender == null)
	{
		return;
	}
	var nLeft = sender.offsetLeft;
	var nTop = sender.offsetTop;
	var offsetTopElement = sender.offsetParent;
	while (offsetTopElement != null)
	{
		nLeft += offsetTopElement.offsetLeft;
		nTop += offsetTopElement.offsetTop;
		offsetTopElement = offsetTopElement.offsetParent;
	}
	frame.style.left = (nLeft + sender.offsetWidth - 220) + "px";
	frame.style.top = (nTop + sender.offsetHeight) + "px";
}

function OpenCalendar(sender, targetId)
{
	var target = document.getElementById(targetId);
	var frame = document.createElement("iframe");
	frame.src = szCalendarSrc;
	frame.frameBorder = "0";
	frame.scrolling = "no";
	frame.style.position = "absolute";
	frame.style.width = "220px";
	frame.style.height = "228px";
	frame.style.zIndex = 1000;
	UpdateCalendarPos(frame, sender);
	
	CloseCalendar();
	sender.offsetParent.appendChild(frame);
	CurrentCalendarFrame = frame;
	CurrentCalendarSender = sender;
	CurrentCalendarTarget = target;
	
	return false;
}

function CloseCalendar()
{
	if (CurrentCalendarFrame != null)
	{
		CurrentCalendarFrame.parentNode.removeChild(CurrentCalendarFrame);
	}
	CurrentCalendarFrame = null;
	CurrentCalendarSender = null;
	CurrentCalendarTarget = null;
}

function SetDate(sender, date)
{
	CurrentCalendarTarget.value = date;
	CloseCalendar();
}

window.onresize = function()
{
	UpdateCalendarPos(CurrentCalendarFrame, CurrentCalendarSender);
}
document.onmouseup = function()
{
	CloseCalendar();
}

