﻿function IsEmpty(v) { return !v || (typeof(v) != "string") || !v.length || (-1 == v.search(/\S/ig)); }
function IsNumeric(sText)
{
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;
	
	for (i = 0; i < sText.length && IsNumber == true; i++) 
	{
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) 
		{
			IsNumber = false;
		}
	}
	return IsNumber;
}
/////////////////////////////////////////////////////////////////////////////
function IsValidDate(dateStr) 
{
// Checks for the following valid date formats:
// YYYY/MM/DD
// Also separates date into month, day, and year variables

	var datePat = /^(\d{1,4})(\/)(\d{1,2})(\/)(\d{1,2})$/;
	var matchArray = dateStr.match(datePat); // is the format ok?

	if (matchArray == null) {
		alert('無效的日期格式,請輸入"yyyy/mm/dd"!');
		return false;
	}
	year = matchArray[1];
	month = matchArray[3];
	day = matchArray[5];
	
	if (month < 1 || month > 12) { // check month range
		alert("月份必需介於1~12之間!");
		return false;
	}
	
	if (day < 1 || day > 31) {
		alert("日期必需介於1~31之間");
		return false;
	}
	
	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		alert(month + "月沒有31天!")
		return false
	}
	
	if (month == 2) { // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap)) {
			alert(year + "年2月份沒有" + day + "天!");
			return false;
   		}
	}
	return true;  // date is valid
}

/////////////////////////////////////////////////////////////////////////////
function FindForm(formname)
{
	var i;

	if (typeof(formname) == "object") return formname;
	if (typeof(formname) != "string") return 0;

	for (i=0; i<document.forms.length; i++)
		if (document.forms[i].name == formname) 
			return document.forms[i];

	return 0;
}
/////////////////////////////////////////////////////////////////////////////
function FindFormElement(form, elemname)
{
	var i, elem;

	if (typeof(form) == "string") form = FindForm(form);
	if (!form || (typeof(form) != "object")) return 0;

	for (i=0; i<form.elements.length; i++)
		if (form.elements[i].name == elemname) 
			return form.elements[i];

	return 0;
}
/////////////////////////////////////////////////////////////////////////////
function IsFormVar(form, varname)
{
	var elem;

	elem = FindFormElement(form, varname);
	if (elem) return elem.value;
}

/////////////////////////////////////////////////////////////////////////////
function GetFormVar(form, varname)
{
	var value;

	value = IsFormVar(form, varname);
	return (typeof(value) != "undefined") ? value : "";
}

/////////////////////////////////////////////////////////////////////////////
function OpenForm(url, width, height) 
{
	if(!width) width = "800";
	if (!height) height = "600";

	WndTop  = (screen.height - parseInt(height)) / 2;
	WndLeft = (screen.width  - parseInt(width))  / 2;

	var feature = 'toolbar=no,status=no,menubar=no,scrollbars=yes,copyhistory=no,resizable=yes';
	feature += ",left=" + WndLeft + ",top=" + WndTop + ",width=" + width + ",height=" + height;

	var d = new Date();
	var winName = "wnd" + d.getHours() + d.getMinutes() + d.getSeconds();

	var win = window.open(url, winName, feature);
}

/////////////////////////////////////////////////////////////////////////////
function OpenWindow(name, url, attr, width, height)
{
	var wnd, WndTop, WndLeft, i;

	if (!attr)
		attr = "resizable=yes,scrollbars=yes,toolbar=no,menubar=no,status=nolocation=no";
		
	if(!width) width = "800";
	if (!height) height = "600";

	WndTop  = (screen.height - parseInt(height)) / 2;
	WndLeft = (screen.width  - parseInt(width))  / 2;

	attr += ",left=" + WndLeft + ",top=" + WndTop + ",width=" + width + ",height=" + height;
	
	window.open(url, name, attr);
}