var __today = new Date();
var Glob_YY = parseInt(__today.getFullYear());
var Glob_MM = parseInt(__today.getMonth() + 1);
var Glob_DD = parseInt(__today.getDate());

document.writeln("<div id='dateView' style='width: 135px; height: 175px; padding: 5px; position: absolute; background-color: #CCCCCC; display: none;'><div ID='divYYMM' style='padding-bottom: 5px;'></div><div ID='divDAY'></div></div>");

////////////////////
function __setView(inputText, YY, MM)
{
	document.getElementById("divYYMM").innerHTML = __getYear(YY);
	document.getElementById("divYYMM").innerHTML += __getMonth(MM);
	document.getElementById("divYYMM").innerHTML += __getWeek();
	document.getElementById("divDAY").innerHTML += __getDay(inputText.name);
	__setDay(YY, MM);
}

function __getYear(YY)
{
	var selectYYInnerHTML = "<select ID=\"sYear\" onchange=\"__setDay(this.value, document.getElementById('sMonth').value)\">";
	for (var i = Glob_YY; i <= Glob_YY + 1; i++)
	{
		if (i == YY)
		{
			selectYYInnerHTML += "<option value='" + i + "' selected>" + i + "</option>\r\n";
		} else {
			selectYYInnerHTML += "<option value='" + i + "'>" + i + "</option>\r\n";
		}
	}
	selectYYInnerHTML += "</select>&nbsp;";
	return selectYYInnerHTML;
}

function __getMonth(MM)
{
	var selectMMInnerHTML = "<select ID=\"sMonth\" onchange=\"__setDay(document.getElementById('sYear').value, this.value)\">";
	for (var i = 1; i < 13; i++)
	{
		if (i == MM)
		{
			selectMMInnerHTML += "<option value='" + i + "' selected>" + i + "</option>\r\n";
		} else {
			selectMMInnerHTML += "<option value='" + i + "'>" + i + "</option>\r\n";
		}
	}
	selectMMInnerHTML += "</select>";
	return selectMMInnerHTML;
}

function __getDay(textName)
{
	var dayTable = "<table cellspacing='1'>";
	for(var i=0; i<6; i++)
	{
		dayTable += "<tr>";
		for(var j=0; j<7; j++)
		{
			dayTable += "<td style='font-size: 14px; text-align: center;' onclick='datelist.OK(this, \"" + textName + "\")'>&nbsp;</td>";
		}
		dayTable += "</tr>";
	}
	dayTable += "</tabe>";
	return dayTable;
}

function __getWeek()
{
	var week = ["Sun","Mon","Tue","Wen","Thu","Fri","Sat"];
	var weekTable = "<table cellspacing='1'>";
	weekTable += "<tr>";
	for(var i=0; i<week.length; i++)
	{
		weekTable += "<td style='font-size: 9px; text-align: center;'>" + week[i] + "</td>";
	}
	weekTable += "</tr>";
	weekTable += "</tabe>";
	return weekTable;
}
//////////////////////////

function __setDay(YY, MM)
{
	var DArray = new Array(42);
	for(var i=0; i<new Date(YY, MM, 0).getDate(); i++)
	{
			DArray[i + new Date(YY, MM-1, 1).getDay()] = i + 1;
	}
	
	var TDArr = document.getElementById("divDAY").getElementsByTagName("td");
	for(var i=0; i<42; i++)
	{
		TDArr[i].style.color = "#000000";
		TDArr[i].style.backgroundColor = "#FFFFFF";
		TDArr[i].style.cursor = "auto";
		TDArr[i].tag = 0;
		
		if(DArray[i] == null)
		{
			TDArr[i].innerHTML = "&nbsp;";
		}
		else
		{
			//var stDate = new Date(DArray[i] + "/" + document.getElementById("sMonth").value + "/" + document.getElementById("sYear").value);
			//var jtDate = new Date(Glob_DD + "/" + Glob_MM + "/" + Glob_YY);
			var stDate = new Date(document.getElementById("sYear").value + "/" + document.getElementById("sMonth").value + "/" + DArray[i]);
			var jtDate = new Date(Glob_YY + "/" + Glob_MM + "/" + Glob_DD);
			
			if(stDate < jtDate)
			{
				TDArr[i].style.color = "#C0C0C0";
				TDArr[i].innerHTML = DArray[i];
				TDArr[i].tag = 520;
			}
			else if(stDate.toString() == jtDate.toString())
			{
				TDArr[i].style.cursor = "pointer";
				TDArr[i].style.backgroundColor = "#FF0000";
				TDArr[i].innerHTML = DArray[i];
			}
			else
			{
				TDArr[i].style.cursor = "pointer";
				TDArr[i].innerHTML = DArray[i];
			}
		}
	}
}

datelist = {
	dfd:function (inputText, imgPos)
	{
		if(inputText.value == "")
		{
			__setView(inputText, Glob_YY, Glob_MM);
		}
		else
		{
			__setView(inputText, Glob_YY, Glob_MM);
		}
		
		document.getElementById("dateView").style.display = "block";
		var x = getPost(document.getElementById(imgPos), "x");
		var y = getPost(document.getElementById(imgPos), "y");
		x += 2;
		y += 25;
		
		document.getElementById("dateView").style.left = x + "px";
		document.getElementById("dateView").style.top = y + "px";
	},
	OK:function(_td, inputName)
	{
		if(parseInt(_td.innerHTML) > 0 && _td.tag != 520)
		{
			document.getElementById(inputName).value = _td.innerHTML + "/" + document.getElementById("sMonth").value + "/" + document.getElementById("sYear").value;
			//document.getElementById(inputName).value = document.getElementById("sYear").value + "/" + document.getElementById("sMonth").value + "/" + _td.innerHTML;
			document.getElementById("dateView").style.display = "none";
		}
	}
}

function getPost(obj, p)
{
	var top = obj.offsetTop;
	var left = obj.offsetLeft;
	while(obj = obj.offsetParent)
	{
		top += obj.offsetTop;
		left += obj.offsetLeft;
	}
	if (p == "x")
	{
		return left;
	}
	else
	{
		return top;
	}
}
