
var today = new Date();
var currentYear = today.getFullYear();
var currentMonth = today.getMonth();
var currentDate = today.getDate();
var currentDay = today.getDay();
var year = currentYear;
var month = currentMonth;
var date = currentDate;
var day = currentDay;
var yearUnits = "年";
var monthUnits = "月";
var dateUnits = "日";
var selectYear = 0;
var selectMonth = 0;
var selectDate = 0;
var todayStyle = 'border: 1px solid #FFFFFF; background-color: #66FFFF; font-weight: bold; cursor:default';
var selectDayStyle = 'border: 1px solid #FFFFFF; background-color: #0066FF; font-weight: bold; color: #FFFFFF; cursor:default';
var noTodayStyle = 'border: 1px solid #FFFFFF; cursor:default';
var showDateTimeBarArgs = null;
var outObj = null;

var monthDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var monthNames = new Array("一","二","三","四","五","六","七","八","九","十","十一","十二");
var hasSubDateTime = false;
var subDateTimeFormStr = "";
var subDateTimeForm = "";
document.onload = initDateTimeBar();
function changeMonth(n)
{
month += n;
while(month<0)
{
month += 12;
year--;
}
year += Math.floor(month/12);
month = month % 12;
showDateTable();
}
function showYearMonth()
{
var str = "";
str += year + yearUnits;
str += monthNames[month] + monthUnits;
var YM = document.getElementById("YearMonth");
YM.innerHTML = str;
}
function showDateTable()
{
getMonthFirstDate(year,month)
showYearMonth();
var i = 1 - day;
var j = 1;
var monthDays = getMonthDays(year,month);
var emptyTD = '<td style="border: 1px solid #FFFFFF; cursor:default ">&nbsp;</td>';
var TRstr = '<tr align="center" valign="middle">';
var table = '<table width="100%" border="0" cellspacing="0" cellpadding="0">';
table += '<tr>';
table += ' <td align="center">日</td>';
table += ' <td align="center">一</td>';
table += ' <td align="center">二</td>';
table += ' <td align="center">三</td>';
table += ' <td align="center">四</td>';
table += ' <td align="center">五</td>';
table += ' <td align="center">六</td>';
table += '</tr>';
table += TRstr;
for(; i<1 ; i++,j++)
{
table += emptyTD;
}
for(; i<=monthDays ; i++,j++)
{
if(j>7)
{
table += '</tr>' + TRstr;
j = 1;
}
table += getDateTD(year,month,i);
}
for(; j<=7 ; i++,j++)
{
table += emptyTD;
}
table += '</tr></table>';
var Dtbl = document.getElementById("dateTable");
Dtbl.innerHTML = table;
}
function getDateTD(y,m,d)
{
var TDstyle = noTodayStyle;
var TDstr = '<td ';
if(currentYear==y && currentMonth==m && currentDate==d)
{
TDstyle = todayStyle;
}
if(selectYear==y && selectMonth==m && selectDate==d)
{
TDstyle = selectDayStyle;
}
TDstr += 'style="' + TDstyle + '" ';
TDstr += 'onmouseover="onMouseOverTD(this)" ';
TDstr += 'onmouseout="onMouseOutTD(this)" ';
TDstr += 'onclick="onMouseClickTD(' + y + ',' + m + ',' + d + ')" )"';
TDstr += '>';
TDstr += d;
TDstr += '</td>';
return TDstr;
}
function getMonthFirstDate(y,m)
{
var dateObj = new Date(y,m);
year = dateObj.getFullYear();
month = dateObj.getMonth();
date = dateObj.getDate();
day = dateObj.getDay();
}
function getTodayDate()
{
var TodayDate = new Date();
year = TodayDate.getFullYear();
month = TodayDate.getMonth();
date = TodayDate.getDate();
}
function getMonthDays(y,m)
{
d = monthDays[m];
if(m==1)
d += isLeapYear(y);
return d;
}
function isLeapYear(y)
{
if((y%4==0 && y%100!=0) || y%400==0)
return 1;
else
return 0;
}

function initDateTimeBar()
{
var allStr = '';
allStr += '<div id="DateTimeLayer" style="position:absolute; left:50px; top:50px; z-index:1; background-color: #9999FF; layer-background-color: #9999FF; border: 1px solid #000000; font-size: 12px; visibility: hidden;">';
allStr += '<table width="380" border="0" cellpadding="0" cellspacing="0" bgcolor="#D4D0C8">';
allStr += ' <tr align="center" valign="middle">';
allStr += ' <td width="31"><input type="button" name="Submit5" value="前一年" onclick="changeMonth(-12)" /></td>';
allStr += ' <td width="24"><input type="button" name="Submit22" value="前一月" onclick="changeMonth(-1)" /></td>';
allStr += ' <td width="100" id="YearMonth">日期时间板</td>';
allStr += ' <td width="23"><input type="button" name="Submit32" value="后一月" onclick="changeMonth(1)" /></td>';
allStr += ' <td width="30"><input type="button" name="Submit42" value="后一年" onclick="changeMonth(12)" /></td>';
allStr += ' <td width="31"><input type="button" value="X" onclick="hideDateTimeBar()"></td>';
allStr += ' </tr>';
allStr += ' <tr>';
allStr += ' <td colspan="6" id="dateTable">&nbsp;</td>';
allStr += ' </tr>';
allStr += ' <tr>';
allStr += ' <td colspan="2" id="timeTable"></td>';
allStr += ' <td align="center"><input type="button" value=" 确定 " onclick="onConfirm()"></td>';
allStr += ' </tr>';
allStr += '</table>';
document.writeln(allStr);
hideDateTimeBar();
}
function writeToObj(y, m, d)
{
if(y==0)
{
y = currentYear;
m = currentMonth;
d = currentDate;
}
var fun = showDateTimeBarArgs[3];
var args = new Array();
for(var i=4; i<showDateTimeBarArgs.length; i++)
{
args.push(showDateTimeBarArgs[i]);
}
m++;

m = m<10 ? ('0' + m) : m;
d = d<10 ? ('0' + d) : d;

var dateStr = y + "-" + m + "-" + d;
if(outObj != null)
{
outObj.value = dateStr;
}
if(fun != null)
{
fun.apply(null,args);;
}

return dateStr;
}
function getTop(obj)
{
var h=0;
h = obj.offsetTop;
if(obj.tagName != "BODY")
h += getTop(obj.offsetParent);
return h;
}
function getLeft(obj)
{
var h=0;
h = obj.offsetLeft;
if(obj.tagName != "BODY")
h += getLeft(obj.offsetParent);
return h;
}
function setSelectDataTime(variable, value)
{
if(value==null) value = 0;
switch(variable)
{
case 'Year':
selectYear = value;
break;
case 'Month':
selectMonth = value;
break;
case 'Date':
selectDate = value;
break;
case 'init':
selectYear = 0;
selectMonth = 0;
selectDate = 0;
break;
}
}
function setDefault(datetimeStr)
{
var now = null;
if(datetimeStr != "")
{
datetimeStr = datetimeStr.toLowerCase();
datetimeStr = datetimeStr.replace('y',currentYear);
datetimeStr = datetimeStr.replace('m',currentMonth);
datetimeStr = datetimeStr.replace('d',currentDate);
now = new Date(datetimeStr);
}
else
{
now = new Date();
}
year = now.getFullYear();
month = now.getMonth();
date = now.getDate();
}
function getNow()
{
var today = new Date();
currentYear = today.getFullYear();
currentMonth = today.getMonth();
currentDate = today.getDate();
currentDay = today.getDay();
}
function onMouseOverTD(obj)
{
obj.style.border="1px solid #0000FF";
}
function onMouseOutTD(obj)
{
obj.style.border="1px solid #FFFFFF";
}
function onMouseClickTD(y, m, d)
{
selectYear = y;
selectMonth = m;
selectDate = d;
showDateTable();
}
function hideDateTimeBar()
{
outObj = null;
showDateTimeBarArgs = null;
var DTL = document.getElementById("DateTimeLayer");
DTL.style.visibility="hidden";
}
function showDateTimeBar()
{
showDateTimeBarArgs=showDateTimeBar.arguments;
outObj = showDateTimeBarArgs[0];
var DTL = document.getElementById("DateTimeLayer");
var i=0;
getNow();
setSelectDataTime('init');
if(showDateTimeBarArgs[2] == null)
{
setDefault('');
}
else
{
setDefault(showDateTimeBarArgs[2]);
}
DTL.style.left = getLeft(outObj) + "px";
DTL.style.top = (getTop(outObj) + outObj.offsetHeight) + "px";
showDateTable();
DTL.style.visibility = "visible";
}
function onConfirm()
{
writeToObj(selectYear, selectMonth, selectDate);
hideDateTimeBar();
}
