// JavaScript Document

function checkForm(theForm)
{
	var obj = theForm || event.srcElement;
	var count = obj.elements.length;
	for(var i=0;i<count;i++)
	{
		input=obj.elements[i];
		var dataType=input.getAttribute("dataType");
		//if(typeof(dataType) == "object" || typeof(obj[dataType]) == "undefined") 
		if(typeof(dataType) == "object")
		{
			continue;
		}
		var err=input.getAttribute("Error");
		switch(dataType)
		{
			case "notNull":
				var re=/^.+$/;
				if(!re.test(input.value))
				{
					if(err=="" || err==null)
					{
						alert("此項不能為空");
					}else{
						alert(err);
					}
					input.focus();
					return false;
				}
				break;
			case "Email":
				var re=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/i;
				if(!re.test(input.value))
				{
					if(err=="" || err==null)
					{
						alert("請輸入正確的Email地址!");
					}else{
						alert(err);
					}
					input.focus();
					return false;
				}
				break;
			case "Number":
				var re=/^\d+$/;
				if(!re.test(input.value))
				{
					if(err=="" || err==null)
					{
						alert("請輸入一個數字！");
					}else{
						alert(err);
					}
					input.focus();
					return false;
				}
				break;
			case "PostCode":
				var re=/^\d{3}$|^\d{6}$/;
				if(!re.test(input.value))
				{
					if(err == "" || err == null)
					{
						alert("郵政編碼只能是3位或6位數字");
					}else{
						alert(err);
					}
					input.focus();
					return false;
				}
				break;
			case "qq":
				var re=/^[1-9]\d{4,8}$/;
				if(!re.test(input.value))
				{
					if (err == "" || err == null)
					{
						alert ("請輸入正確的QQ號碼");
					}else{
						alert (err);
					}
					input.focus();
					return false;
				}
				break;
			case "age":
				var re=/^\d{1,2}$|^1\d{2}$/;
				if(!re.test(input.value))
				{
					if(err == "" || err == null)
					{
						alert ("請輸入正確的年齡");
					}else{
						alert (err);
					}
					input.focus();
					return false;
				}
				break;
			case "mobile_cn":
				var re=/^0?(13\d|159)\d{8}$/;
				if(!re.test(input.value))
				{
					if(err == "" || err == null)
					{
						alert ("請輸入正確的手機號碼!");
					}else{
						alert (err);
					}
					input.focus();
					return false;
				}
				break;
			case "mobile_tw":
				var re=/^\d{10,11}$/;
				if(!re.test(input.value))
				{
					if(err == "" || err == null)
					{
						alert ("請輸入正確的手機號碼!");
					}else{
						alert (err);
					}
					input.focus();
					return false;
				}
				break;
			case "phone":
				var re=/^(\(\d{2,4}\)|\d{2,4}\-|)\d{7,8}(\-\d{2,5}|)$/;
				if(!re.test(input.value))
				{
					if(err == "" || err == null)
					{
						alert ("請輸入正確的電話號碼");
					}else{
						alert (err);
					}
					input.focus();
					return false;
				}
				break;
			case "PhoneAndMobile":
				var re=/^(\(\d{2,4}\)|\d{2,4}\-|)\d{7,8}(\-\d{2,5}|)$|^0?\d{10,11}$/;
				if(!re.test(input.value))
				{
					if(err == "" || err == null)
					{
						alert ("請輸入正確的電話號碼");
					}else{
						alert (err);
					}
					input.focus();
					return false;
				}
				break;
			case "Save":
				if(input.value == "")
				{
					err=input.getAttribute("Error1");
					if(err=="" || err==null)
					{
						alert("此項不能為空");
					}else{
						alert(err);
					}
					input.focus();
					return false;
				}
				_id=input.getAttribute("As");
				input0=document.getElementById(_id);
				if(input0.value != input.value)
				{
					err=input.getAttribute("Error2");
					if(err=="" || err==null)
					{
						alert('兩次輸入不相同');
					}else{
						alert(err);
					}
					input.focus();
					return false;
				}
				break;
			case "date_ymd":
				var re=/^((19|20)\d{2})[\-\/](1[0-2]|0?[1-9])[\-\/](0?[1-9]|[12][0-9]|3[01])$/;
				var matchArray=re.exec(input.value);
				if(matchArray)
				{
					var dateObj=new Date(matchArray[1],matchArray[3]-1,matchArray[4]);
					inputY=matchArray[1] - 0 ;
					inputM=matchArray[3] - 1 ;
					inputD=matchArray[4] - 0 ;
					if(inputY != dateObj.getYear() || inputM != dateObj.getMonth() || inputD != dateObj.getDate())
					{
						alert("輸入的日期不正確");
						return false;
					}
				}else{
					if(err == "" || err == null)
					{
						alert("輸入的日期格式不正確");
					}else{
						alert(err);
					}
					input.focus();
					return false;
				}
				break;
			default:
				break;
		}
	}
}

/* **************************************************
使用方法:
	在要驗證的表單域,添加dataType屬性,指定要驗證的數據類型,
目前數據類型有:
	notNull:	非空
	Email:	郵箱
	Number:	驗證是否純數據
	Save:		驗證兩個輸入域內容一致.
	
	Save類型時,錯誤提示信息為Error1和Error2,Error1是空值時的提示,Error2是不相同時的提示.
	其它類型提示信息為Error.

例如:要驗證一個名字輸入框,不允許空,
	<input type="text" name="name" dataType="notNull" Error="請輸入您好的名字" />

************************************************** */