//嚚
var space = new RegExp(/\s/);
function toShowMessage(obj, msg)//錯誤訊息回報
{
	if (msg != null && msg != "") alert(msg);
	try { obj.focus(); }
	catch (err)	{}
}

var eMailReg = new RegExp(/^\w+([-.]\w+)*@\w+([-.]\w+)*\.\w+([.]\w+)*$/);//E-Mail 格式
function IsMailFormat(email)//E-Mail,字串參數
{
	var result = true;
	result &= !space.test(email);
	result &= eMailReg.test(email);
	return result;
}
function IsEMail(obj, msg)//E-Mail，input物件參數
{
	var result = IsMailFormat(obj.value);
	if (!result) toShowMessage(obj, msg);
	return result;
}

var Reg_receiptNum = new RegExp(/[0-9]{8}/);//統一編號
function IsReceiptNum(obj, msg)//統一編號格式
{
	var result = true;
	result &= !isNaN(obj.value);
	result &= Reg_receiptNum.test(obj.value);
	if (!result) toShowMessage(obj, msg);
	return result;
}

var Reg_tel_1 = new RegExp(/^[0][1-9]{1,3}\-[0-9]{5,8}/);//電話號碼
var Reg_tel_2 = new RegExp(/[0-9]{7,12}/);//電話號碼
function IsTelphoneNum(obj, msg)
{
	var result = false;
	result |= Reg_tel_1.test(obj.value);
	result |= Reg_tel_2.test(obj.value);
	if (!result) toShowMessage(obj, msg);
	return result;
}

var Reg_telex = new RegExp(/[0-9]{1,6}/);//電話號碼分機
function IsTelphoneExNum(obj, msg)
{
	var result = true;
	result &= !isNaN(obj.value);
	result &= Reg_telex.test(obj.value);
	if (!result) toShowMessage(obj, msg);
	return result;
}

var Reg_cellphone = new RegExp(/^[0][9][0-9]{8}/);//手機號碼
function IsCellphoneNum(obj, msg)
{
	var result = true;
	result &= !isNaN(obj.value);
	result &= Reg_cellphone.test(obj.value);
	if (!result) toShowMessage(obj, msg);
	return result;
}

var Reg_zip = new RegExp(/[1-9][0-9]{2,4}/);//郵遞區號
function IsZipCode(obj, msg)
{
	var result = true;
	result &= !isNaN(obj.value);
	result &= Reg_zip.test(obj.value);
	if (!result) toShowMessage(obj, msg);
	return result;
}

var Reg_chkCode = new RegExp(/[0-9]{4}/);//驗證碼
function IsCheckCode(obj, msg)
{
	var result = true;
	result &= !isNaN(obj.value);
	result &= Reg_chkCode.test(obj.value);
	if (!result) toShowMessage(obj, msg);
	return result;
}

function IsNum(obj, msg)//數字
{
	var result = true;
	result &= Number(obj.value).toString() == obj.value;
	if (!result) toShowMessage(obj, msg);
	return result;
}

function IsInteger(obj, msg)//整數 含正、負
{
	var result = true;
	result &= parseInt(obj.value).toString() == obj.value;//整數
	if (!result) toShowMessage(obj, msg);
	return result;
}
function IsNotNull(obj, msg){
		var result = obj.value.replace(/^\s*/,"").replace(/\s*$/,"").length > 0;
		if (!result) toShowMessage(obj, msg);
		return result;
}

function IsNaturalNum(obj, msg)//自然數、正整數
{
	var result = true;
	result &= parseInt(obj.value).toString() == obj.value;//整數
	if (result) result &= parseInt(obj.value) > 0;//大於 0 -> 正整數
	if (!result) toShowMessage(obj, msg);
	return result;
}

function IsLoginID(obj, msg)//帳號(申請、登入)
{
	var result = true;
	result &= !space.test(obj.value);
	if (result) result &= /^[a-zA-Z]/.test(obj.value);
	if (result) result &= obj.value.length >= 3;
	if (!result) toShowMessage(obj, msg);
	return result;
}
function IsLoginPw(obj, msg)//密碼(申請、登入)
{
	var result = true;
	result &= !space.test(obj.value);
	if (result) result &= obj.value.length >= 3;
	if (!result) toShowMessage(obj, msg);
	return result;
}
function IsStrDate(obj, msg){
	var sDate = obj.value.replace("-","/").replace(".","/");
	var new_date = new Date(sDate)
	var result = (new_date != "NaN") & (new_date != "Invalid Date");
	if (!result) toShowMessage(obj, msg);
	return result;
}
function toCheckData(obj, msg)
{
	var ok = false;
	switch (obj.type)
	{
	case "text":
	case "textarea":
	case "password":
		ok = (obj.value != "");
		if (!ok)
		{	
			alert(msg);
			obj.focus();
		}
		break;
	case "select-one":
		ok = obj.options.length > 0;
		if (ok) ok &= obj.selectedIndex != -1;
		if (ok) ok &= obj.value != "";
		if (!ok)
		{
			alert(msg);
			obj.focus();
		}
		break;
	case "radio":
		break;
	case "checkbox":
		break;
	case "file":
		break;
	default:
		break;
	}
	return ok;
}
function IsCheckOneItem(obj, msg)
{
	var ok = false;
	for (var i = 0 ; i < obj.length ; i++)
		ok |= obj[i].checked;
	if (!ok) toShowMessage(obj, msg);
	return ok;
}