var subLeft = 5;
var subTop = 5;
var currentField = null;
var iCount = 3;
var strFormat = "";

function chooseDate()
{
	try
	{
		var argc = chooseDate.arguments;

		if ( argc.length == 0 )
		{
			if(document.layers)
			{
				currentField = window.event.target;
			}
			else if(document.all)
			{
				currentField = window.event.srcElement;
			}
		}
		else if ( argc.length == 1 )
		{
			currentField = argc[0];
		}

		if(currentField==null)
		{
			throw "日期对象不存在";
		}
		else if("object" != typeof(currentField))
		{
			throw "日期对象有误";
		}

		var str = currentField.format;
		if("string" != typeof(str)||""==str) str = "yyyy/MM/dd-HH:mm:ss";
		strFormat = str;

		if(str.indexOf('yyyy')==-1||str.indexOf('MM')==-1||str.indexOf('dd')==-1)
		{
			throw "无法解析时间字符串";
		}

		if(str.indexOf('HH')!=-1&&str.indexOf('mm')!=-1&&str.indexOf('ss')!=-1)
		{
			iCount = 6;
		}
		else if(str.indexOf('HH')!=-1&&str.indexOf('mm')!=-1)
		{
			iCount = 5;
		}
		else if(str.indexOf('HH')!=-1)
		{
			iCount = 4;
		}

		var arrDate = new Array(iCount);

		if(isDate(currentField.value,str))
		{
			var i = 0;
			i = str.indexOf('yyyy');
			arrDate[0] = currentField.value.substring(i,i+4);
			i = str.indexOf('MM');
			arrDate[1] = currentField.value.substring(i,i+2);
			i = str.indexOf('dd');
			arrDate[2] = currentField.value.substring(i,i+2);

			if(iCount>3)
			{
				i = str.indexOf('HH');
				arrDate[3] = currentField.value.substring(i,i+2);
			}

			if(iCount>4)
			{
				i = str.indexOf('mm');
				arrDate[4] = currentField.value.substring(i,i+2);
			}

			if(iCount>5)
			{
				i = str.indexOf('ss');
				arrDate[5] = currentField.value.substring(i,i+2);
			}
		}
		else
		{
			var now = new Calendar();
			arrDate[0] = now.year;
			arrDate[1] = now.month;
			arrDate[2] = now.day;

			if(iCount>3)
			{
				arrDate[3] = now.hour;
			}

			if(iCount>4)
			{
				arrDate[4] = now.minute;
			}

			if(iCount>5)
			{
				arrDate[5] = now.second;
			}
		}
	
		if(iCount>5)
		{
			cal.setDate(parseFloat(arrDate[0]),parseFloat(arrDate[1]),parseFloat(arrDate[2]),parseFloat(arrDate[3]),parseFloat(arrDate[4]),parseFloat(arrDate[5]));
		}
		else if(iCount>4)
		{
			cal.setDate(parseFloat(arrDate[0]),parseFloat(arrDate[1]),parseFloat(arrDate[2]),parseFloat(arrDate[3]),parseFloat(arrDate[4]));
		}
		else if(iCount>3)
		{
			cal.setDate(parseFloat(arrDate[0]),parseFloat(arrDate[1]),parseFloat(arrDate[2]),parseFloat(arrDate[3]));
		}
		else
		{
			cal.setDate(parseFloat(arrDate[0]),parseFloat(arrDate[1]),parseFloat(arrDate[2]));
		}

		cal.callbackOnChange = null;			// or any user defined function name
		cal.encoding = "gb2312";				// "gb2312" or "iso8859-1"
		cal.abbrev = 1;							// 0 or 1

		if(document.layers)
		{
			with(document.dateTable)
			{
				document.open();
				document.write(cal.display());
				document.close();
				left += subLeft;
				top += subTop;
			}
		}
		else if(document.all)
		{
			with(dateTable)
			{
				innerHTML = cal.display(); 
				style.top = document.body.scrollTop+event.clientY-event.offsetY+subTop;

				if((event.clientX-event.offsetX+style.posWidth+subLeft)>document.body.offsetWidth)
				{
					style.left = document.body.offsetWidth-style.posWidth-40;
				}
				else
				{
					style.left = document.body.scrollLeft+event.clientX-event.offsetX+subLeft;
				}
			}
		}
		var n = document.all.tags("select").length;
		hideSelect(n-1);
		ShowHideLayers('dateTable','','show');
	}
	catch(err)
	{
		alert(err);
		return false;
	}
}

function clearValue()
{
	currentField.value = "";
	lostFocus();
}

function lostFocus()
{
	var n = document.all.tags("select").length;
	showSelect(n-1);
	dateTable.innerHTML = "";
	ShowHideLayers('dateTable','','hide');
}

function onCalendarChange(day)
{
	var strYear = lenToString(cal.year.toString(),4);
	var strMonth = lenToString(cal.month.toString(),2);
	var strDay = lenToString(day.toString(),2);

	var i = 0;
	i = strFormat.indexOf('yyyy');
	strFormat = strFormat.substring(0,i)+strYear+strFormat.substring(i+4);
	i = strFormat.indexOf('MM');
	strFormat = strFormat.substring(0,i)+strMonth+strFormat.substring(i+2);
	i = strFormat.indexOf('dd');
	strFormat = strFormat.substring(0,i)+strDay+strFormat.substring(i+2);

	if(iCount>3)
	{
		var obj_txt_hour = document.calendar.txt_hour;
		var strHour = lenToString(obj_txt_hour.value,2);
		i = strFormat.indexOf('HH');
		strFormat = strFormat.substring(0,i)+strHour+strFormat.substring(i+2);
	}

	if(iCount>4)
	{
		var obj_txt_minute = document.calendar.txt_minute;
		var strMinute = lenToString(obj_txt_minute.value,2);
		i = strFormat.indexOf('mm');
		strFormat = strFormat.substring(0,i)+strMinute+strFormat.substring(i+2);
	}

	if(iCount>5)
	{
		var obj_txt_second = document.calendar.txt_second;
		var strSecond = lenToString(obj_txt_second.value,2);
		i = strFormat.indexOf('ss');
		strFormat = strFormat.substring(0,i)+strSecond+strFormat.substring(i+2);
	}

	currentField.value = strFormat;
	lostFocus();
}