﻿/**********************************************************************
** 功能說明 : 檢查「Text 物件」是否有輸入 (會清除前後空白)
** obj     : Text物件
** strName : Text中文名稱
** @return strErr : 錯誤訊息 (無時表示正確)
**
** NOTE：
**	需 include /Common/Javascript/String.js
***********************************************************************/
function chkFormObj_Text(obj, strName)
{
	var strErr = '';
	
	obj.value = trim(obj.value);
	obj.value = (obj.value).replace(/'/g, '’');
	obj.value = (obj.value).replace(/"/g, '”');
	obj.value = (obj.value).replace(/</g, '＜');
	obj.value = (obj.value).replace(/>/g, '＞');
		
	if (obj.value == '')
		strErr += '請輸入「' + strName + '」\n';
	
	return strErr;
}

/**********************************************************************
** 功能說明 : 檢查「TextArea 物件」的內容 (會清除前後空白)
** obj       : TextArea物件
** strName   : TextArea中文名稱
** bitEntry  : 是否一定要輸入
** intMaxLen : 最大長度 (-1 = 不限制)
** @return strErr : 錯誤訊息 (無時表示正確)
**
** NOTE：
**	需 include /Common/Javascript/String.js
***********************************************************************/
function chkFormObj_TextArea(obj, strName, bitEntry, intMaxLen)
{
	var strErr = '';
	var strText;
	
	obj.value = trim(obj.value);
	strText = obj.value;
	
	if (bitEntry && strText == '')
		strErr += '請輸入「' + strName + '」\n';
	if (strErr == '' && intMaxLen > -1 && strText.length > intMaxLen)
		strErr += '「' + strName + '」只能輸入 ' + intMaxLen + ' 個字\n';
	
	return strErr;
}

/**********************************************************************
** 功能說明 : 檢查「TextInt 物件」是否有輸入和是否為數字 (會清除前後空白)
** obj     : Text物件
** strName : Text中文名稱
** bitPosi : 是否可輸入正數
** bitZero : 是否可輸入零
** bitNega : 是否可輸入負數
** @return strErr : 錯誤訊息 (無時表示正確)
**
** NOTE：
**	需 include /Common/Javascript/String.js
***********************************************************************/
function chkFormObj_TextInt(obj, strName, bitPosi, bitZero, bitNega)
{
	var strErr = '';
	
	obj.value = trim(obj.value);
	
	if (obj.value == '')
		strErr += '請輸入「' + strName + '」\n';
	if (isNaN(obj.value))
		strErr += '「' + strName + '」只可以輸入數字\n';
	if (strErr == '') {
		var intObj = parseFloat(obj.value);
		if (! bitPosi && intObj >  0) strErr += '「' + strName + '」不可輸入正數\n';
		if (! bitZero && intObj == 0) strErr += '「' + strName + '」不可輸入零\n';
		if (! bitNega && intObj <  0) strErr += '「' + strName + '」不可輸入負數\n';
	}

	return strErr;
}

/**********************************************************************
** 功能說明 : 檢查「Radio 物件」是否有選擇
** obj     : Text物件
** strName : Text中文名稱
** @return strErr : 錯誤訊息 (無時表示正確)
***********************************************************************/
function chkFormObj_Radio(obj, strName)
{
	var strErr = '';
	var bitChk = 0;
	var i;
	
	for (i=0;i<obj.length;i++) {
		if (obj[i].checked) {
			bitChk = 1;
			break;
		}
	}
	
	if (bitChk == 0)
		strErr += '請選擇「' + strName + '」\n';
	
	return strErr;
}

/**********************************************************************
** 功能說明 : 檢查「File 物件」是否有輸入，且格式是否符合
** obj      : Text物件
** strName  : Text中文名稱
** strAllow : 允許的圖片格式，以4碼的0與1組合 (ex. '1110'=jpg+gif+png)
**				1000 = jpg or jpeg
**				0100 = gif
**				0010 = png
**				0001 = bmp
** @return strErr : 錯誤訊息 (無時表示正確)
***********************************************************************/
function chkFormObj_FileImg(obj, strName, strAllow)
{
	var strErr = '';
	var strAllowType = '';
	
	if (obj.value == '') {
		strErr += '請輸入「' + strName + '」\n';
		return strErr;
	}
	
	// 補足 strAllow 的的長度
	strAllow = strAllow + '0000';
	strAllow = strAllow.substring(0, 4);

	// 組合允許格式
	if (strAllow.substring(0,1) == '1') strAllowType += 'jpg, jpeg, '
	if (strAllow.substring(1,2) == '1') strAllowType += 'gif, '
	if (strAllow.substring(2,3) == '1') strAllowType += 'png, '
	if (strAllow.substring(3,4) == '1') strAllowType += 'bmp, '
	strAllowType = strAllowType.substring(0, strAllowType.length - 2);

	// 取得副檔名
	var ary = obj.value.split('.');
	var strFileType = ary[ary.length - 1].toLowerCase();

	if (strAllowType.indexOf(strFileType) == -1)
		strErr += '「' + strName + '」檔案格式不正確，請選擇副檔名為「' + strAllowType + '」的圖片';
	
	return strErr;
}

/**********************************************************************
** 功能說明 : 檢查「Email」格式
** strEmail : Email
** @return bit : 是否為正確 Email 格式
***********************************************************************/
function chkEmail(strEmail)
{
	var regEmail = /^[-._&0-9a-zA-Z]+[@][-._&0-9a-zA-Z]+[.][._0-9a-zA-Z]+[a-zA-Z]$/;
	
	if (strEmail == '')
		return false;
	else {
		if (strEmail.match(regEmail))
			return true;
		else
			return false;
	}
}

/**********************************************************************
** 功能說明 : 設定「上傳檔案物件」的圖片
** objFile : 上傳檔案物件
** objImg  : 圖片物件
** @Output bitSet : 是否有設定圖片
***********************************************************************/
function setImgOfFileObj(objFile, objImg)
{
	var bitSet = false;		// 記錄是否要設定圖片
	var strAllowType = 'jpg, jpeg, gif, png, bmp';
	
	if (trim(objFile.value) != '') {
		// 取得副檔名
		var ary = objFile.value.split('.');
		var strFileType = ary[ary.length - 1].toLowerCase();
	
		if (strAllowType.indexOf(strFileType) >= 0)
			bitSet = true;
	}
	
	if (bitSet)
		objImg.src = objFile.value;
	
	return bitSet;
}