//last update : 2002/07/11
//modify by Benjamin Chang

var isIE = document.all;
var isNS = document.layers;

//常用檢查函數 Start ===================================================
function Trim(str){
	// 將字串左右的空白清除
	
	str = str.replace(/^\s+/,"");
	str = str.replace(/\s+$/,"");
	return str;
}
function ValidEmail(emailtoCheck)
{
	// 規則: 1.只有一個 "@"
	//       2.網址中, 至少要有一個".", 且不能連續出現
	//       3.不能有空白

	var regExp = /^[^@^\s]+@[^\.@^\s]+(\.[^\.@^\s]+)+$/;
	if ( emailtoCheck.match(regExp) )
		return true;
	else
		return false;
}
function checkID(id)
{
	// 規則: 首為英文字母, 第二位為1或2,再接八位數字

	var regExp = /^[a-zA-Z][1,2]\d{8}$/;
	if ( id.match(regExp) )
		return true;
	else
		return false;
}
function checkCarno(carno,cartype)
{
	// 規則: 一般自小客車:2個字元+橫線+4個數字
	// 規則: 一般自小客車:4個數字+橫線+2個字元
	// 規則: 一般自小客車:1個字元+1個數字+橫線+4個數字
	// 規則: 計程車:2個字元+橫線+3個數字
	// 規則: 計程車:3個數字+橫線+2個字元
	
	if(cartype==1){
		//檢查一般自小客車
		var regExp1 = /^\w{2}-\d{4}$/;
		var regExp2 = /^\d{4}-\w{2}$/;
		var regExp3 = /^\w{1}d{1}-\d{4}$/;
		if ( carno.match(regExp1) || carno.match(regExp2) || carno.match(regExp3))
			return true;
		else
			return false;
	}
	else if(cartype==2){
		//檢查計程車
		var regExp1 = /^\w{2}-\d{3}$/;
		var regExp2 = /^\d{3}-\w{2}$/;
		if ( carno.match(regExp1) || carno.match(regExp2))
			return true;
		else
			return false;
	}
	else if(cartype==0){
		//檢查是否為一般自小車or計程車
		return (checkCarno(carno,1)|checkCarno(carno,2));
	}
	else{
		//錯誤
		return false;
	}
}
function checkMobile(mobile)
{
	// 規則: 10個數字
	
	var regExp = /^\d{10}$/;
	if ( mobile.match(regExp) )
		return true;
	else
		return false;
}
function checkSmallDateTime(sdt)
{
	// 規則: yyyy/mm/dd
	
	var regExp = /^\d{4}\/\d{1,2}\/\d{1,2}$/;
	if ( sdt.match(regExp) )
		return true;
	else
		return false;
}
function checkInvoice(invoice)
{
	// 規則: 2個英文+8個數字
	
	var regExp = /^[a-zA-Z]{2}\d{8}$/;
	if ( invoice.match(regExp) )
		return true;
	else
		return false;
}
function CheckFormData(frm, CheckF, CheckFN, CheckFType, Lang)
{
	// 於此三行填入要檢查的欄位,名稱及類型
	/*
	var CheckF = new Array('');
	var CheckFN = new Array('');
	var CheckFType = new Array('');
	*/
	
	var cf;
	var i, sel, chk;
	//if (arguments.length < 5) { Lang = 'TC' ;}
	
	switch(Lang)
	{
		case 'EN':
			ph1 = 'Please fill ';
			ph2 = ' is invalid!';
			ph3 = 'Please check one: ';
			ph4 = 'Please check one: ';
			ph5 = 'Please select: ';
			break;
		default:
			ph1 = '請填入 ';
			ph2 = ' 格式不正確!';
			ph3 = '請選擇 ';
			ph4 = '請勾選 ';
			ph5 = '請選擇 ';
			break;
	}

	for(i=0; i<CheckF.length; i++) {
		element = frm.elements[CheckF[i]];

		if(CheckFType[i] == "text"
				|| CheckFType[i] == "textarea"
				|| CheckFType[i] == "num"
				|| CheckFType[i] == "idno"
				|| CheckFType[i] == "email"
				|| CheckFType[i] == "carno"
				|| CheckFType[i] == "mobile"
				|| CheckFType[i] == "sdt"
				|| CheckFType[i] == "invoice"
				) {
			if(Trim(element.value) == "") {
				alert(ph1 + CheckFN[i] + " !");
				element.focus();
				return false;
			}
			//檢查數值型態
			if(CheckFType[i] == "num" && isNaN(element.value)) {
				alert(CheckFN[i] + ph2);
				element.focus();
				return false;
			}
			//檢查身份證字號
			if(CheckFType[i] == "idno" && !checkID(element.value)) {
				alert(CheckFN[i] + ph2);
				element.focus();
				return false;
			}
			//檢查email格式
			if(CheckFType[i] == "email" && !ValidEmail(element.value)) {
				alert(CheckFN[i] + ph2);
				element.focus();
				return false;
			}
			//檢查車牌格式
			if(CheckFType[i] == "carno" && !checkCarno(element.value,0)) {
				alert(CheckFN[i] + ph2);
				element.focus();
				return false;
			}
			//檢查手機格式
			if(CheckFType[i] == "mobile" && !checkMobile(element.value)) {
				alert(CheckFN[i] + ph2);
				element.focus();
				return false;
			}
			//檢查 Small Date Time 格式
			if(CheckFType[i] == "sdt" && !checkSmallDateTime(element.value)) {
				alert(CheckFN[i] + ph2);
				element.focus();
				return false;
			}
			//檢查統一編號格式
			if(CheckFType[i] == "invoice" && !checkInvoice(element.value)) {
				alert(CheckFN[i] + ph2);
				element.focus();
				return false;
			}
		}
		else if(CheckFType[i] == "radio") {
			sel = false;
			for(j=0; j<element.length; j++) {
				sel |= element[j].checked;
			}
			if(! sel) {
				alert(ph3 + CheckFN[i] + " !");
				element[0].focus();
				return false;
			}
		}
		else if(CheckFType[i] == "checkbox") {
			chk = false;
			FirstElement = 0;
			for(j=0; j<frm.elements.length; j++) {
				if(frm.elements[j].name == CheckF[i]) {
					if(FirstElement==0) FirstElement=j;
					chk |= frm.elements[j].checked;
				}
			}
			if(! chk) {
				alert(ph4 + CheckFN[i] + " !");
				frm.elements[FirstElement].focus();
				return false;
			}
		}
		else if (CheckFType[i] == "select") {
			if (element.selectedIndex<0 || element.options[element.selectedIndex].value=="") {
				alert(ph5 + CheckFN[i] + " !");
				element.focus();
				return false;
			}
		}
	}
	return true;
}
//常用檢查函數 End ===================================================

