﻿var PopCalMonthsArray = new Array('January','February','March','April','May','June','July','August','September','October','November','December')
var PopCalD1 = new Date();
var PopCalMYPyear;
var PopCalMYPmon;
var	PopCalImg;

function PopCalPrevMon() {
	PopCalFill(new Date(PopCalD1.valueOf() - 86400000));
	window.event.cancelBubble = true;
	PopCalWeeks.focus();
}
function PopCalNextMon() {
	PopCalFill(new Date(PopCalD1.valueOf() + 32 * 86400000));
	window.event.cancelBubble = true;
	PopCalWeeks.focus();
}
function PopCalHidePopup() {
	PopCalDiv.style.visibility = "hidden";
	PopCalFrame.frameElement.style.visibility = "hidden";
	document.detachEvent("onclick",PopCalHidePopup)
}
function PopCalOnClick(e) {
	cell = window.event.srcElement;
	if (cell.tagName == "TD") {
		var tb = document.all(PopCalDiv.tb);
		var dt = new Date(cell.day);
		tb.value = (dt.getMonth()+1) + '/' + dt.getDate() + '/' + dt.getFullYear();
	}
	PopCalHidePopup();
}
function PopCalOnKeydown(e) {
	var ms;
	if ((e.keyCode >= 33 && e.keyCode <= 47) || e.keyCode == 27 || e.keyCode == 9)
		switch (e.keyCode) {
		case 27:
		case 9:
			alert(PopCalDiv.innerHTML);
			PopCalDiv.easeCapture();
			PopCalDiv.style.visibility = "hidden";
			PopCalHidePopup();
			e.cancelBubble = true;
			break;
		case 33:
			PopCalFill(new Date(PopCalD1.valueOf() - 86400000));
			break;
		case 34:
			PopCalFill(new Date(PopCalD1.valueOf() + 32 * 86400000));
			break;
		}
}
function PopCalOnKeypress(e) {
	if ((e.keyCode < 33 || e.keyCode > 47) && e.keyCode != 27)  // already handled in OnKeyDown
		switch (String.fromCharCode(e.keyCode)) {
		case "T":
		case "t":
			PopCalFill(new Date())
			break;
		}
	e.cancelBubble = true;
}
function PopCalFill(d) {
	if (d==null) {
		d = new Date();
		d.setHours(0,0,0,0);
	}
	PopCalD1 = d;
	PopCalD1.setDate(1);
	var d31 = new Date(PopCalD1);
	d31.setDate(32); // force into next month
	d31.setDate(0); // last day of prev month
	var td = new Date();
	td.setHours(0,0,0,0);
	var dd,c,r,wn,wd;
	dd = new Date(PopCalD1);
	dd.setDate(dd.getDate()-PopCalD1.getDay()); // back up to sunday
	
	for (wn = 0; wn < 6; wn++) {
		row = PopCalWeeks.rows(wn);
		for (wd = 0; wd < 7; wd++) {
			c = row.cells(wd)
			c.innerText=dd.getDate();
			c.setAttribute("day",dd.valueOf());
			if (dd == td)
				c.className="Today";
			else if (dd < PopCalD1 || dd > d31)
				c.className = "OtherDay";
			else
				c.className = "Day";
			dd.setDate(dd.getDate()+1);
		}
	}
	PopCalHeader.innerHTML = PopCalMonthsArray[d.getUTCMonth()] + "&nbsp;" + d.getUTCFullYear();
}
function getTop(e){
	for(var top=e.clientHeight;e;e=e.offsetParent)
		top += e.offsetTop;
	return top;
}
function getLeft(e){
	left = e.clientWidth;
	for(var left=0;e;e=e.offsetParent)
		left += e.offsetLeft;
	left -= PopCalDiv.clientWidth;
	if (left < 0) left = 0;
	return left;
}
function PopCalShow(bt) {
	var s = bt.id.substr(bt.id.indexOf("_")+1);
	var tb = document.all(s)
	var d = PopCalParseDate(tb)
	window.event.cancelBubble=true;
	PopCalFrame.frameElement.style.top = getTop(bt);
	PopCalFrame.frameElement.style.left = getLeft(bt);
	PopCalFrame.frameElement.style.visibility = "visible";
	PopCalFill(d);
	PopCalFrame.frameElement.style.width = PopCalDiv.clientWidth + 9;
	PopCalFrame.frameElement.style.height = PopCalDiv.clientHeight + 9;
	PopCalDiv.style.top = getTop(bt);
	PopCalDiv.style.left = getLeft(bt);
	PopCalDiv.style.visibility = "visible";
	PopCalDiv.style.zIndex = 99;
	PopCalWeeks.focus();
	document.attachEvent("onclick", PopCalHidePopup);
	PopCalDiv.setAttribute("tb",tb.id);
}
function PopCalHideMYP() {
	PopCalMYP.style.visibility = "hidden";
	document.detachEvent("onclick",PopCalHideMYP)
	window.event.cancelBubble = true;
	PopCalWeeks.focus();
	document.attachEvent("onclick",PopCalHidePopup)
}
function PopCalMYPOkClick() {
	window.event.cancelBubble = true;
	PopCalMYP.style.visibility = "hidden";
	document.detachEvent("onclick",PopCalHideMYP)
	window.event.cancelBubble = true;
	PopCalWeeks.focus();
	PopCalFill(new Date(PopCalMYPyear,PopCalMYPmon,1))
	document.attachEvent("onclick",PopCalHidePopup)
}
function PopCalPrevYears() {
	PopCalFillYears(PopCalMYPCurYear.innerText - 10);
	window.event.cancelBubble = true;
	PopCalMYP.focus();
}
function PopCalNextYears() {
	PopCalFillYears(PopCalMYPCurYear.innerText-0 + 10);
	window.event.cancelBubble = true;
	PopCalMYP.focus();
}
function PopCalFillYears(y) {
	for (var r=0;r<5;r++) {
		var row = PopCalYears.rows(r);
		row.cells(0).innerText = y-5;
		row.cells(1).innerText = y++;
	}
}
function PopCalMonthStyles(mon) {
	PopCalMYPmon = mon-1;
	for (var r=0;r<6;r++) {
		var row = PopCalMonths.rows(r);
		for(var c=0;c<2;c++) {
			var cell = row.cells(c);
			if (cell.Mon == mon)
				cell.className = 'SelectedMonthCell';		
			else
				cell.className = 'MonthCell';
		}
	}
}
function PopCalYearStyles(year) {
	PopCalMYPyear = year;
	for (var r=0;r<5;r++) {
		var row = PopCalYears.rows(r);
		for (var c=0;c<2;c++) {
			var cell = row.cells(c);			
			if (cell.innerText == year)
				cell.className = 'SelectedYearCell';		
			else
				cell.className = 'YearCell';
		}
	}
}
function PopCalMonthsOnclick() {
	cell = window.event.srcElement;
	if (cell.tagName == "TD")
		PopCalMonthStyles(cell.Mon);
	window.event.cancelBubble = true;
}
function PopCalYearsOnclick() {
	cell = window.event.srcElement;
	if (cell.tagName == "TD")
		PopCalYearStyles(cell.innerText);
	window.event.cancelBubble = true;
}
function PopCalMYPShow() {
	window.event.cancelBubble=true;
	PopCalFillYears(PopCalD1.getFullYear());
	PopCalMonthStyles(PopCalD1.getMonth()+1)
	PopCalYearStyles(PopCalD1.getFullYear())
	PopCalMYP.style.top = PopCalDiv.offsetTop+100;
	PopCalMYP.style.left = PopCalDiv.offsetLeft+100;
	PopCalMYP.style.visibility = "visible";
	PopCalMYP.style.zIndex = 100;
	PopCalMYP.focus();
	document.detachEvent("onclick", PopCalHidePopup);
	document.attachEvent("onclick", PopCalHideMYP);
}
function PopCalParseDate(tb)
{
	if (tb.value.length == 0)
		return null;   
//	if ((tb.value.length > 2) && (tb.value.indexOf('/') == -1))
//		AutoFillInDateSeparators(tb);
	var ret = null;
	var td = new Date();
	var Year = 0;
	var Month = 0;
	var Day = 0;
	var OK = true;
	var parts = tb.value.split('/');
	if (parts.length < 3)
		Year = td.getFullYear();
	if (parts.length < 2)
		Month = td.getMonth() + 1;
	var order = new String('mdy');
	for (var i=0;OK && i<3;i++)
	{
		switch (order.charAt(i))
		{
		case 'd':
			Day = new Number(parts[i]);
			OK = Day > 0;
			break;
		case 'm':
			if (Month == 0) 
			{
				if (parts[i] == '')
					Month = td.getMonth();
				else 
					Month = new Number(parts[i]);
				OK = Month <= 12 && Month>0;
			}
			break;
		case 'y':
			if (Year == 0)
			{
				if (parts[i] == '')
					Year = td.getFullYear();
				else
					Year = new Number(parts[i]);
				if (Year < 100)	
					if (Year < 50)
						Year += 2000;
					else
						Year += 1900;
				OK = Year <= 9999;
			}
			break;
		}
	}
	if (OK)
	{
		ret = new Date(Year, Month - 1, Day);
		OK = ret.getFullYear()==Year && ret.getMonth()==Month-1;
	}
	if (!OK)
		ret = null;
	return ret;
}
function PopCalInit() {
	PopCalImg = new Image();
	PopCalImg.src = "images/LeftCmdBlue.gif";
	PopCalImg = new Image();
	PopCalImg.src = "images/RightCmdBlue.gif";
	PopCalImg = new Image();
	PopCalImg.src = "images/LeftCmdBluePressed.gif";
	PopCalImg = new Image();
	PopCalImg.src = "images/RightCmdBluePressed.gif";
	
	document.body.insertAdjacentHTML("beforeEnd",'\
<div id=PopCalDiv class=Calendar style="VISIBILITY:hidden; POSITION:absolute; z-order:50">\
<table border=0 cellpadding=0 cellspacing=0>\
<tr><td>\
	<table border=0 cellpadding=2 cellspacing=0 width="100%" class=HeaderTable>\
		<tr><td onClick="PopCalPrevMon()"\
			onmousedown="LeftCmdBlue.src=\'images/LeftCmdBluePressed.gif\'"\
			onmouseup="LeftCmdBlue.src=\'images/LeftCmdBlue.gif\'">\
				<img id=LeftCmdBlue src="images/LeftCmdBlue.gif"></td>\
			<td id=PopCalHeader align=center onclick="PopCalMYPShow()"></td>\
			<td align="right" onClick="PopCalNextMon()"\
				onmousedown="RightCmdBlue.src=\'images/RightCmdBluePressed.gif\'"\
				onmouseup="RightCmdBlue.src=\'images/RightCmdBlue.gif\'">\
				<img id=RightCmdBlue src="images/RightCmdBlue.gif"></td></tr>\
	</table></td></tr>\
<tr><td>\
	<table border=0 cellpadding=3 cellspacing=0 class=DayHeader>\
		<tr>\
			<td width="14%">Sun</td>\
			<td width="14%">Mon</td>\
			<td width="14%">Tue</td>\
			<td width="14%">Wed</td>\
			<td width="14%">Thu</td>\
			<td width="14%">Fri</td>\
			<td width="14%">Sat</td>\
			</tr>\
	</table></td></tr>\
<tr><td>\
	<table id=PopCalWeeks \
		border=1 width="100%" cellpadding=2 cellspacing=0 class=WeekRowsTable>\
		<tr>\
			<td align=right width="14%"></td>\
			<td align=right></td>\
			<td align=right></td>\
			<td align=right></td>\
			<td align=right></td>\
			<td align=right></td>\
			<td align=right></td></tr>\
		<tr><td align=right></td>\
			<td align=right></td>\
			<td align=right></td>\
			<td align=right></td>\
			<td align=right></td>\
			<td align=right></td>\
			<td align=right></td></tr>\
		<tr><td align=right></td>\
			<td align=right></td>\
			<td align=right></td>\
			<td align=right></td>\
			<td align=right></td>\
			<td align=right></td>\
			<td align=right></td></tr>\
		<tr><td align=right></td>\
			<td align=right></td>\
			<td align=right></td>\
			<td align=right></td>\
			<td align=right></td>\
			<td align=right></td>\
			<td align=right></td></tr>\
		<tr><td align=right></td>\
			<td align=right></td>\
			<td align=right></td>\
			<td align=right></td>\
			<td align=right></td>\
			<td align=right></td>\
			<td align=right></td></tr>\
		<tr><td align=right></td>\
			<td align=right width="14%"></td>\
			<td align=right width="14%"></td>\
			<td align=right width="14%"></td>\
			<td align=right width="14%"></td>\
			<td align=right width="14%"></td>\
			<td align=right width="14%"></td></tr>\
	</table></td></tr>\
</table>\
</div>\
<iframe id=PopCalFrame style="position:absolute;VISIBILITY:hidden; z-order:49">ttt</iframe>\
<TABLE class=MonthYearPicker style="position:absolute;visibility:hidden" id=PopCalMYP cellSpacing=0 cellPadding=3 border=0>\
<TR><TD valign=top>\
		<TABLE class=MonthTable id=PopCalMonths cellSpacing=0 cellPadding=1 border=0>\
		<TR><TD Mon=1>Jan</TD>\
			<TD Mon=7>Jul</TD></TR>\
		<TR><TD Mon=2>Feb</TD>\
			<TD Mon=8>Aug</TD></TR>\
		<TR><TD Mon=3>Mar</TD>\
			<TD Mon=9>Sep</TD></TR>\
		<TR><TD Mon=4>Apr</TD>\
			<TD Mon=10>Oct</TD></TR>\
		<TR><TD Mon=5>May</TD>\
			<TD Mon=11>Nov</TD></TR>\
		<TR><TD Mon=6>Jun</TD>\
			<TD Mon=12>Dec</TD></TR>\
		</TABLE></TD>\
	<TD valign=top>\
		<TABLE class=YearTable id=PopCalYears cellSpacing=0 cellPadding=1 border=0>\
		<TR><TD>1997</TD>\
			<TD id=PopCalMYPCurYear>2002</TD></TR>\
		<TR><TD>1998</TD><TD>2003</TD></TR>\
		<TR><TD>1999</TD><TD>2004</TD></TR>\
		<TR><TD>2000</TD><TD>2005</TD></TR>\
		<TR><TD>2001</TD><TD>2006</TD></TR>\
		<TR><TD align="center" language="javascript"\
				onClick="PopCalPrevYears()"\
				onDblclick="PopCalPrevYears()" \
				onMouseDown="LeftCmdBlue2.src=\'images/LeftCmdBluePressed.gif\'" \
				onMouseUp="LeftCmdBlue2.src=\'images/LeftCmdBlue.gif\'">\
				<img id="LeftCmdBlue2" src=\'images/LeftCmdBlue.gif\'></TD>\
			<TD align="center"  language="javascript"\
				onClick="PopCalNextYears()"\
				onDblclick="PopCalNextYears()" \
				onMouseDown="RightCmdBlue2.src=\'images/RightCmdBluePressed.gif\'" \
				onMouseUp="RightCmdBlue2.src=\'images/RightCmdBlue.gif\'">\
				<img id=RightCmdBlue2 src=\'images/RightCmdBlue.gif\'></TD></TR>\
		</TABLE></TD></TR>\
<TR><TD align=right colSpan=2>\
	<INPUT id="PopCalMYPOk" type=button value="OK">\
	<INPUT id="PopCalMYPCancel" type=button value="Cancel"></TD></TR>\
</TABLE>');
	PopCalWeeks.onclick = PopCalOnClick;
	PopCalWeeks.attachEvent("onkeydown", PopCalOnKeydown);
	PopCalWeeks.attachEvent("onkeypress", PopCalOnKeypress);
	PopCalMYPOk.onclick = PopCalMYPOkClick;
	PopCalMYPCancel.onclick = PopCalHideMYP;
	PopCalYears.onclick = PopCalYearsOnclick;
	PopCalMonths.onclick = PopCalMonthsOnclick;
}
