var displayMonth,displayYear,formElement;
function showPicker()
{
	var date=new Date();
	var isThisYear = (displayYear == date.getFullYear());
	var isThisMonth = (isThisYear && displayMonth == date.getMonth());
	var today=(isThisYear && isThisMonth ? date.getDate():-1);
	var months = new Array("一月", "二月", "三月", "四月", "五月", "六月", "七月","八月", "九月", "十月", "十一月", "十二月");

	var html="<table id=tablePicker width=100% height=100% cellspacing=0 cellpadding=0 borderColorLight=#006699 borderColorDark=#006699 border=1 bgcolor=#ffffff style='font-size:12px;font-family:宋体;table-layout:fixed'>";
	html+="<tr height=20px borderColor=#000080 bgColor=#000080 align=center><td colSpan=7 style='padding-top:3px'>";
	//display year
	html+="<font style='cursor:hand' onmousedown=\"window.parent.execScript('incYear(-1)')\" color=white>&lt;&lt;</font>&nbsp";
	html+="<font color=" + (isThisYear ? "lightgreen":"white") + ">" + displayYear + "年</font>";
	html+="&nbsp<font style='cursor:hand' onmousedown=\"window.parent.execScript('incYear(1)')\" color=white>&gt;&gt</font>&nbsp;&nbsp;&nbsp;";
	//display month
	html+="<font style='cursor:hand' onmousedown=\"window.parent.execScript('incMonth(-1)')\" color=white>&lt;&lt;</font>&nbsp";
	if(displayMonth<10)html+="&nbsp";
	html+="<font color=" + (isThisMonth ? "lightgreen":"white") + ">" + months[displayMonth] + "</font>";
	if(displayMonth<10)html+="&nbsp";
	html+="&nbsp<font style='cursor:hand' onmousedown=\"window.parent.execScript('incMonth(1)')\" color=white>&gt;&gt</font>";
	html+="</td></tr>";
	//display day
	html+="<tr height=20px align=center><td class=week><font color='#FF0000'>周日</font></td><td class=week>周一</td><td class=week>周二</td><td class=week>周三</td><td class=week>周四</td><td class=week>周五</td><td class=week><font color='#FF0000'>周六</font></td</tr>";

	var startDay=new Date(displayYear,displayMonth,1).getDay();
	var dayOfMonthOfFirstSunday = (7 - startDay + 1);
	var intDaysInMonth=getDays(displayMonth, displayYear);
	for (var intWeek = 0; intWeek < 6; intWeek++)
	{
		html+="<tr height=18px align=center>";
		var dayOfMonth;
	     	for (var intDay = 0; intDay < 7; intDay++)
		{
	     		dayOfMonth = (intWeek * 7) + intDay + dayOfMonthOfFirstSunday - 7;
		 	if (dayOfMonth <= 0)
			{
	          		html+="<td height=18px borderColor=#ffffff>&nbsp</td>";
			}
			else if(dayOfMonth <= intDaysInMonth)
			{
		   		html+="<td borderColor=#ffffff onmousedown=\"window.parent.execScript('setDay(" + dayOfMonth + ")')\"";
		   		html+="style='cursor:hand;color:" + (dayOfMonth==today ? "#1E71CC":(intDay==0||intDay==6?"red":"black")) + "'>" + dayOfMonth + "</td>";
			}
		}
		html+="</tr>";
	}
	html+="</table>";
	frames("IFPicker").document.body.innerHTML=html;
}

function getDays(month, year)
{
	if (1==month)return ((0 == year % 4) && (0 != (year % 100))) || (0 == year % 400) ? 29 : 28;
	var daysInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31,30, 31, 30, 31);
	return daysInMonth[month];
}
function incMonth(delta)
{
	displayMonth+=delta;
	if (displayMonth>=12)
	{
		displayMonth = 0;
		incYear(1);
	}
	else if(displayMonth<=-1)
	{
	     displayMonth = 11;
	     incYear(-1);
	}
	else
	{
		showPicker();
	}
}
function incYear(delta,eltName)
{
	displayYear+=delta;
	showPicker();
}
function setDay(day)
{
	formElement.value = displayYear + "-" + (displayMonth<9 ? "0":"") + (displayMonth+1) + "-" + (day<10 ? "0":"") + day;
	formElement.focus();
}
function hidePicker()
{
	var e=document.activeElement;
	var div=document.all.divHide;
	if(e.id=="IFPicker")
	{
		div.focus();
		return;
	}
	div.style.visibility = 'hidden';
}
function toggleDatePicker(formElt,pElt)
{
	formElement=formElt;
	var pElement=(!pElt ? document.body:pElt);
	var div=document.all.divHide;
  	if(!div)
	{
		div=document.createElement("<DIV id=divHide style='left:0;top:0;overflow:hidden;position:absolute;visibility:hidden;display:block;'></DIV>");
		pElement.appendChild(div);
	}
	div.onblur=hidePicker;
	div.innerHTML="<IFRAME id=IFPicker width=100% height=100%></IFRAME>";
	var doc=frames("IFPicker").document;
	doc.open();
	doc.write("<style>A{TEXT-DECORATION: none; TEXT-TRANSFORM: none}.week{padding-top:3px;BORDER-LEFT:none;BORDER-RIGHT:none}</style>");
	doc.write("<body leftmargin=0 topmargin=0 rightmargin=0 bottommargin=0 style='overflow:hidden;border:none'></body>");
	doc.close();
	var time,dateValue=formElt.value;
	if(dateValue!='')
	{
		var re=new RegExp("-","g");
		dateValue=dateValue.replace(re,'/');
		time=new Date(dateValue);
	}
	if(!time || time=='NaN')time=new Date();
	displayMonth = time.getMonth();
	displayYear = time.getFullYear();

	var style=div.style;
	var width=270,height=156;
	var elt=formElement;
	var x=0,y=0;
 	while(elt!=pElement)
	{
 		x+=elt.offsetLeft;
		y+=elt.offsetTop;
	 	elt = elt.offsetParent
	}
	style.left=x+2;
	if(x+2-pElement.scrollLeft+width>pElement.offsetWidth-20)
	{
		x=pElement.offsetWidth-width+pElement.scrollLeft-20-4;
		style.left=(x>0 ? x:0);
	}
	style.top=y+formElement.offsetHeight+2;
	if(y+formElement.offsetHeight+2-pElement.scrollTop+height>pElement.offsetHeight)
	{
		y=y-height-2;
		if(y>0)style.top=y;
	}
	style.width=width;
	style.height=height;
	showPicker();
	style.visibility="visible";
	div.focus();
}