//嚚
var space = new RegExp(/\s/);
function toShowMessage(obj, msg){//錯誤訊息回報
	if (msg != null && msg != "") alert(msg);
	try { obj.focus(); }
	catch (err)	{}
}
function IsMailFormat(email){//E-Mail,字串參數
	var result = true;
	result &= !space.test(email);
	result &= (/^\w+([-.]\w+)*@\w+([-.]\w+)*\.\w+([.]\w+)*$/).test(email);
	return result;
}
function IsEMail(obj, msg){//E-Mail，input物件參數
	var result = IsMailFormat(obj.value);
	if (!result) toShowMessage(obj, msg);
	return result;
}
function IsReceiptNum(obj, msg){//統一編號格式
	var result = true;
	result &= !isNaN(obj.value);
	result &= (/\d{8}/).test(obj.value);
	if (!result) toShowMessage(obj, msg);
	return result;
}
function IsTelphoneNum(obj, msg){//電話號碼
	var result = false;
	result |= (/^[0][1-9]{1,3}\-\d{5,8}/).test(obj.value);
	result |= (/\d{7,12}/).test(obj.value);
	if (!result) toShowMessage(obj, msg);
	return result;
}
function IsTelphoneExNum(obj, msg){//電話號碼分機
	var result = true;
	result &= !isNaN(obj.value);
	result &= (/\d{1,6}/).test(obj.value);
	if (!result) toShowMessage(obj, msg);
	return result;
}

function IsCellphoneNum(obj, msg){//手機號碼
	var result = true;
	result &= !isNaN(obj.value);
	result &= (/^[0][9]\d{8}/).test(obj.value);
	if (!result) toShowMessage(obj, msg);
	return result;
}
function IsZipCode(obj, msg){//郵遞區號
	var result = true;
	result &= (/^[1-9]\d{2,4}$/).test(obj.value);
	if (!result) toShowMessage(obj, msg);
	return result;
}
function IsCheckCode(obj, msg){//驗證碼
	var result = true;
	result &= (/^\d{4}$/).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 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;
	if (result) result &= /^[a-zA-Z]\w{2,7}$/.test(obj.value);
	if (!result) toShowMessage(obj, msg);
	return result;
}
function IsLoginPw(obj, msg){//密碼(申請、登入)
	var result = true;
	if (result) result &= /^\w{4,8}$/.test(obj.value);
	if (!result) toShowMessage(obj, msg);
	return result;
}
function IsStrDate(obj, msg){
	var sDate = obj.value.replace("-","/").replace(".","/");
	var aryDate = sDate.split("/");
	var dtDate = new Date(sDate);
	var result = !isNaN(dtDate);
	if (result) result &= Number(aryDate[0]) == dtDate.getFullYear();
	if (result) result &= Number(aryDate[1]) == dtDate.getMonth() + 1;
	if (result) result &= Number(aryDate[2]) == dtDate.getDate();
	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 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;
}
