function IsNumber(obj)
{
	if (obj.value=="")return;
	if (isNaN(obj.value))
	{
		alert("此欄位內容必須是數字！");
		obj.value="";
		obj.focus();
	}
}

function KeyDown(Pre,Next)
{
	if (event.keyCode==13 || event.keyCode==40) 
	{
		Next.focus();
	}
	if (event.keyCode==38)
	{
		Pre.focus();
	}
}

function CheckNoChinese(obj)
{
	var t;
	for (i=0;i<obj.value.length;i++)
	{
		t=obj.value.substr(i,1).charCodeAt(0);
		if (t>=0 && t<=255)
		{
			alert("此欄位內不能有非中文字！");
			obj.focus();
			break;
		}
	}
}

function CheckLen(obj,len)
{
	if (obj.innerText.length>len)
	{
		alert("您所輸入的資料已超過長度限制！( " + len + " 個字)");
		obj.innerText=obj.innerText.substr(0,len);
	} 
}
			
function Enter(obj)
{
	obj.select();
}

function Leave(obj)
{
	if (obj.value=="")obj.value="0";
}

function ContrlPic(chk,pic)
{
	if (chk.checked)pic.disabled=true;
	else pic.disabled=false;
}
			
function LvCheck(obj,Type)
{ //Type：資料格式。I：數字、M：郵件、T：電話、ID：身份字號、D：日期、B：手機、U：轉大寫、E：英文字母、EN：英數字
  //無條件濾掉資料中的 %、*符號，因為會影響 SQL 陳述式
	obj.value=obj.value.replace('%','');
	obj.value=obj.value.replace('*','');
			
	if (obj.value=='') return;
			
	if (! (Type==null))
	{
		switch(Type.toUpperCase())
		{
			case 'EN':
				obj.value=obj.value.toUpperCase();
				var t;
				for (i=0;i<obj.value.length;i++)
				{
					t=obj.value.substr(i,1).charCodeAt(0);
					if (t<0 || t>255)
					{
						alert("此欄位內只能有英數字！");
						obj.focus();
						break;
					}
				}
				break;
			case 'E':
				obj.value=obj.value.toUpperCase();
				for (i=0;i<obj.value.length;i++)
				{
					if (obj.value.substr(i,1)<'A' || obj.value.substr(i,1)>'Z'){
					ErrMsg(obj,'此欄位的資料必須為英文字母！');
					break;
					}
				}
				break;
			case 'I':
				if (isNaN(obj.value)){
					ErrMsg(obj,'此欄位的資料必須為數字！');
				}
				break;
						
			case 'M':
				if (obj.value.search('@')>0)
				{
					var temp=obj.value;
					temp=temp.replace('@','');
					if (temp.search('@')>0)
					{
						ErrMsg(obj,'這不是一個正確的電子郵件信箱！(多個@)');
					}
					else
					{
						if(obj.value.indexOf('.')<1) //此處若用search(".")竟然會找不到
						{
							ErrMsg(obj,'這不是一個正確的電子郵件信箱！(沒有．)');
						}
					}
				}
				else 
				{
					ErrMsg(obj,'這不是一個正確的電子郵件信箱！(沒有@)');
				}
				
				if (obj.value.indexOf('@.')!=-1) ErrMsg(obj,'這不是一個正確的電子郵件信箱！(@.)');			
				break;
						
			case 'T':	
				var c,val;
				c=GetStrCount(obj.value,'-')
				if (c>2) ErrMsg(obj,'電話號碼格式錯誤！正確範例(區域碼-電話號碼-分機)');
				else
				{
					if (c==0) 
					{
						if (!(obj.value.length ==6 || obj.value.length ==7 || obj.value.length ==8)) ErrMsg(obj,'電話號碼必須為6~8碼的數字！');
						else {if (isNaN(obj.value)) ErrMsg(obj,'電話號碼中有非數字的資料！');}
					}
					else
					{
						if (c==2)
						{
							var n;
							var smsg='';
							for (j=0;j<=c;j++)
							{
								n=obj.value.split('-')[j];
								if (j==0)
								{
									if (n.length==2 || n.length==3) {if (isNaN(n)) smsg='電話區碼中有非數字的資料！' + '\n';}
									else smsg ='電話區碼只能有2或3碼的數字' + '\n';
								}
										
								if (j==1)
								{
									if (n.length==6 || n.length==7 || n.length==8) {if (isNaN(n)) smsg +='電話號碼中有非數字的資料！' + '\n';}
									else smsg +='電話號碼只能有6~8碼的數字' + '\n';
								}
										
								if (j==2)
								{
									if (n.length<=4) {if (isNaN(n)) smsg +='分機號碼中有非數字的資料！' + '\n';}
									else smsg +='分機號碼必須小於4碼' + '\n';
								}
							}
							if (smsg!='') ErrMsg(obj,smsg);
						}
						else
						{
							val=obj.value.replace('-','');
							if (isNaN(val)) ErrMsg(obj,'電話號碼中有非數字的資料！');
						}
					}
				}
				break;
						
			case 'ID':
				var msg;
				obj.value=obj.value.toUpperCase();
				msg=CheckID(obj.value);
				if (msg!='') ErrMsg(obj,msg);
				break;
						
			case 'D':
				FormatDate(obj);
				break;
						
			case 'U':
					obj.value=obj.value.toUpperCase();
					break;

			case 'B':
				var n,i,c;
				c=GetStrCount(obj.value,'-')
				if (c>1) ErrMsg(obj,'手機號碼格式錯誤！正確範例(XXXX-XXXXXX)');
				else
				{
					if (c==0) 
					{
						if (obj.value.length !=10) ErrMsg(obj,'手機號碼必須為10碼的數字！');
						else {if (isNaN(obj.value)) ErrMsg(obj,'手機號碼中有非數字的資料！');}
					}
					else
					{
						var n1=obj.value.split('-')[0];
						var n2=obj.value.split('-')[1];
						var smsg='';
						if (n1.length==4) {if (isNaN(n1)) smsg ='- 左邊有非數字的資料！' + '\n';}else smsg ='- 左邊只能有4碼的數字！' + '\n';
						if (n2.length==6) {if (isNaN(n2)) smsg +='- 右邊有非數字的資料！';}else smsg +='- 右邊只能有6碼的數字！';
						if (smsg!='') ErrMsg(obj,smsg);
					}
				}
						
				break;
		}	
	}
}

function ErrMsg(obj,msg)
{
	alert(msg);
	//obj.value='';
	obj.select();
	obj.focus();
}
		
function CheckID(value)
{
	if (value.length != 10) return '身份證字號錯誤！(正確格式：1碼英文+9碼數字)';
	var firstID=value.substr(0,1);
	var afterID=value.substr(1);
	if (firstID <'A' || firstID >'Z') return '身份證首碼不是英文字母！';
	if ( isNaN(afterID))return '身份證後九碼不是全部為數字！';
	var firstNumber='ABCDEFGHJKLMNPQRSTUVWXYZIO'.indexOf(firstID) + 10;
	value = firstNumber + afterID ;
	var checkSum=eval(value.substr(0,1)) + eval(value.substr(value.length-1,1));
	for (i=1;i<10;i++) checkSum =eval(checkSum) + eval(value.substr(i,1)) * (10-i)
	if (checkSum % 10 ==0) return '';
	else return '錯誤的身份證號碼！';
}

function GetStrCount(value,SearchCode)
{
	var i=0,j=0;
	for (i=0;i<value.length;i++)
	{
		if (value.substr(i,1).toUpperCase()==SearchCode.toUpperCase()) j+=1;
	}
	return j;
}

//檢查副檔名
function CheckExt(value,ext)
{
	return value.toUpperCase().lastIndexOf(ext)==value.length-ext.length;
}

function CheckMail(obj)
{
	if (obj.value.search('@')>0)
	{
		var temp=obj.value;
		temp=temp.replace('@','');
		if (temp.search('@')>0)
		{
			return '這不是一個正確的電子郵件信箱！(多個@)';
		}
		else
		{
			if(obj.value.indexOf('.')<1) //此處若用search(".")竟然會找不到
			{
				return '這不是一個正確的電子郵件信箱！(沒有．)';
			}
		}
	}
	else 
	{
		return '這不是一個正確的電子郵件信箱！(沒有@)';
	}
	
	if (obj.value.indexOf('@.')!=-1) return '這不是一個正確的電子郵件信箱！(@.)';	
	return "";	
}