﻿//=============================================
//function  canFocus(Obj)
//desc :	判斷是否游標能停在此Input(Event)
//input:    Obj form物件
//output:   boolean
//=============================================

function canFocus(Obj)
{
	try
	{
		if (Obj.readOnly)
			return false;
		else
		{
			Obj.focus();
			return true;
		}
	}
	catch(e)
	{
		return false;
	}
}

//=============================================
//function checkDate(dateStr)
//desc:		判斷西元日期是否合法
//input:	dateStr  西元日期字串(yyyymmdd)
//output:	boolean
//=============================================

function checkDate(dateStr)
{
	try
	{
		var year	= dateStr.substring(0,4) * 1;
		var month	= dateStr.substring(4,6) * 1;
		var day		= dateStr.substring(6,8) * 1;
		if (dateStr.length != 8)
			return false;
		if (month < 1 || month > 12)
			return false;
		if (day < 1 || day > 31)
			return false;
		if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31)
			return false
		if (month == 2)
		{
			var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
			if (day>29 || (day==29 && !isleap))
				return false;
		}
		return true;
	}
	catch(e)
	{
		throw new Error("<br>" + errorLineStr_ + "<br>/script/check.js." + getFunctionName(arguments) + " Exception:<br>Arguments : " + getArgsContent(arguments) + "<br>Message : " + e.name + " : " + e.description);
	}
}

//=============================================
//function checkCHDate(CHdateStr)
//desc:		判斷民國日期是否合法
//input:	dateStr  民國日期字串(yyymmdd)
//output:	boolean
//=============================================

function checkCHDate(CHdateStr) 
{
	try
	{
		var dateStr="";
		if(CHdateStr.length != 8)
		{
			//轉換民國->西元
			var year=CHdateStr.substring(0,3)*1;
			var month= CHdateStr.substring(3,5);
			var day= CHdateStr.substring(5,7);

			if(CHdateStr.length != 7)
				return false;
			year+=1911;
			dateStr=""+year+month+day;
		}
		else
		{
			if((CHdateStr.substring(0,4)*1)<1000)
			{
				//轉換民國->西元
				var year=CHdateStr.substring(0,4)*1;
				var month= CHdateStr.substring(4,6);
				var day= CHdateStr.substring(6,8);
				year+=1911;
				dateStr=""+year+month+day;
			}
			else
				dateStr=CHdateStr;
		}
		return checkDate(dateStr);
	}
	catch(e)
	{
		throw new Error("<br>" + errorLineStr_ + "<br>/script/check.js." + getFunctionName(arguments) + " Exception:<br>Arguments : " + getArgsContent(arguments) + "<br>Message : " + e.name + " : " + e.description);
	}
}

//顯示日期挑選視窗用
function showCalendar()
{
	try
	{
		var	gNow	=	new Date();
		//inputObj	=	document.forms[0].elements[arguments[0]];
		//inputObj	=	document.all[arguments[0]];
		inputObj	=	document.getElementById(arguments[0]);

		if (inputObj==null || typeof(inputObj)=="undefined"){
			alert("日期物件不存在");
			return false;
		}
		//if (!canFocus(inputObj))
			//return;
		if (checkDate(inputObj.value))
		{
			defaultYear	=	parseInt(inputObj.value.substr(0, 4), 10);
			defaultMonth	=	inputObj.value.substr(4, 2);
			defaultDay	=	inputObj.value.substr(6, 2);
		}
		else
		{
			defaultYear	=	new String(gNow.getFullYear().toString());
			defaultMonth	=	new String(gNow.getMonth() + 1);
			defaultDay	=	new String(gNow.getDate().toString());
		}

		var	posX		=	event.screenX + 10;
		var	posY		=	event.screenY + 5;

		var	style		=	"dialogTop:" + posY + "px;dialogLeft:" + posX + "px;dialogWidth:295px;dialogHeight:240px;center:0;scroll:0;help:0;status:0;";
		window.showModalDialog("../ver2009/calendar.htm", this, style);
	}
	catch(e)
	{
		throw new Error("<br>/js/calendar.js." + "<br>Message : " + e.name + " : " + e.description);
	}
}
