/*
檔名：check_util.js
功能說明：檢查相關輸入欄位資料
建檔時間：2007/05/09
*/

function chkEmail(mail,maxlen){
	var val=(mail.value=myTrim(mail.value))
	if(val != ""){	
		var expStr=new RegExp("^([0-9a-zA-Z])([0-9a-zA-Z_-])*(\\.[0-9a-zA-Z_-]+)*@([0-9a-zA-Z_-]+\\.)+([0-9a-zA-Z_-]+)([a-zA-Z])$","g")
		if (val.length <= 8 || val.match(expStr)==null){
			alert("請檢查您的E-Mail格式")
			mail.focus();
			return false;
		}
	}
	if (maxlen!="")
		if(!charlen(mail,maxlen,1)) return false
	return true
}

function myDate(y,m)
{
  montht = parseInt(m);
  yeart = parseInt(y);
  switch(montht)
  {
      case 1:
      case 3:
      case 5:
 			case 7:
      case 8:
      case 10:
      case 12:
        return 31;
      case 2:
        if((yeart % 4) == 0){
          if(((yeart % 100) == 0) && !((yeart % 400 == 0)))
            return 28;
          else
            return 29;
        }
        else
          return 28;
      case 4:
      case 6:
      case 9:
			case 11:
        return 30;
      default:
	      return 0;
  }        
}

function isNum(fs,maxlen)
{
	if(isNaN(fs.value=myTrim(fs.value))){
		alert("此欄位只能填入阿拉伯數字")
		fs.focus()
		fs.select()
		return false
	}
	if (maxlen!="")
		if(!charlen(fs,maxlen,2)) return false
	return true	
}

function myTrim(val){
	var expStr=new RegExp("(\\s*)(\\w*\\s*\\w+)+(\\s*)","g")
	val=val.replace(expStr,"$2")
	return val
}

function charlen(obj,maxlen,alpha,isTel,isMemo){
	var cnt=0
	var str
	if (maxlen <= 100 && !isMemo)
		str=(obj.value=obj.value)
	else
		str=obj.value
	var errMsg
	switch(alpha){
		case 1:
			errMsg="請勿超過"+maxlen+"個英數字";
			break;
		case 2:
			errMsg="請勿超過"+maxlen+"個數字";
			break;
		default:
			errMsg="請勿超過"+parseInt(maxlen/2)+"個中文或"+maxlen+"個英數字"	
			break;		
	}
	for (var i=0;i<str.length;i++){
		if (str.indexOf("'")!=-1 || str.indexOf("&")!=-1 || str.indexOf("=")!=-1){
			alert("請勿輸入 \"\ ' \" , \" & \" , \" = \" 等特殊字元!")
			obj.focus()
			return false
		}
		if (escape(str.charAt(i)).length>=4)
		 cnt+=2
		else
		 cnt+=1	 
	}
	if (cnt>maxlen){
		alert(errMsg)
		obj.focus()
		return false
	}
	if (isTel){
		telFormat(obj)
	}
	return true
}

function sfocus(f1)
{
	
	f1.value ="";
	return f1.value;
}

function sblur(f1)
{
	f1.value = "   請點選  →";
	return f1.value;
}

/*Add by Eric 2002-10-7 9:52*/
function loopChk(obj,errMsg){
	var flg=false
	for (i=0;i<obj.length;i++){
		if (obj[i].checked){
			flg = true
			break
		}			
	}
	if (!flg){
		alert(errMsg)
		obj[0].focus()
	}
	return flg
}

function selectChk(obj,val,errMsg){
	if (obj.options[obj.selectedIndex].value==val){
		alert(errMsg)
		obj.focus()
		return false
	}
	return true
}

function txtChk(obj,errMsg,maxlen,alpha,isTel){
	if ((obj.value=myTrim(obj.value))==""){
		if(errMsg!=""){
			alert(errMsg)
			obj.focus()
		}			
		return false
	}
	if (maxlen)
		if(!charlen(obj,maxlen,alpha,isTel)) return false
	return true
}

function isNS() {
	if (navigator.appVersion.indexOf("MSIE")==-1)
		return true
	else
		return false
}

function chkPopMenu(obj){
	if (obj.value.length == 0 || obj.value == "   請點選  →")
		return false;
	return true;					
}
/*Add by Eric 2002-10-7 9:52*/

function blurchklen(obj,max)
{
 var jsLen, byteLen;
 jsLen = obj.value.length;
 byteLen=0;
 for (var i=0; i<obj.value.length; i++){
  if (obj.value.charCodeAt(i)>256) byteLen+=2;
  else byteLen++;
  if (byteLen>max){
	 alert("Please check string length again!");
   obj.value=obj.value.substr(0,i);
	 obj.focus();
	 obj.select();
	 SubmitFalg = false;
   break;
  }
 }
}

function telFormat(obj){
	var expStr
	var tel=(obj.value=myTrim(obj.value))
	if (tel=="") return true
	var ary=tel.split("-")
	if (ary.length > 1){
		expStr=new RegExp("^0([0-9]{1,2})-[1-9]([0-9]{5,7})((-[0-9]{1,5})?)$","g")
	}
	else{
		expStr=new RegExp("^0[1-9]([0-9]{8})$","g")
	}
	if (tel.match(expStr)==null){
		alert("請確認您所輸入的電話格式")
		obj.focus()
		return false
	}
	return true
}

function charlen2(){
	var cnt=0
	var str=(obj.value=myTrim(obj.value))
	var errMsg
	switch(alpha){
		case 1:
			errMsg="請勿超過"+maxlen+"個英數字";
			break;
		case 2:
			errMsg="請勿超過"+maxlen+"個數字";
			break;
		default:
			errMsg="請勿超過"+parseInt(maxlen/2)+"個中文或"+maxlen+"個英數字"	
			break;		
	}
	for (var i=0;i<str.length;i++){
		if (str.indexOf("'")!=-1 || str.indexOf("&")!=-1){
			alert("請勿輸入 \"\ ' \" , \" & \" 等特殊字元!")
			obj.focus()
			return false
		}
		if (escape(str.charAt(i)).length>=4)
		 cnt+=2
		else
		 cnt+=1	 
	}
	if (cnt>maxlen){
		alert(errMsg)
		obj.focus()
		return false
	}
	if (isTel){
		telFormat(obj)
	}
	return true
}


function checkMyid(myid,msg)
{  
	var LegalID = "0123456789"
    	var fResult=true;
    	var value = 0;
    	var sId=myid;
	if(sId.length<10) fResult=false;
    	else
    	{
     		if((sId.charAt(0)=='A') || (sId.charAt(0)=='a')) value=10
     		else if((sId.charAt(0)=='B') || (sId.charAt(0)=='b')) value=11
     		else if((sId.charAt(0)=='C') || (sId.charAt(0)=='c')) value=12
     		else if((sId.charAt(0)=='D') || (sId.charAt(0)=='d')) value=13
     		else if((sId.charAt(0)=='E') || (sId.charAt(0)=='e')) value=14
     		else if((sId.charAt(0)=='F') || (sId.charAt(0)=='f')) value=15
     		else if((sId.charAt(0)=='G') || (sId.charAt(0)=='g')) value=16
     		else if((sId.charAt(0)=='H') || (sId.charAt(0)=='h')) value=17
     		else if((sId.charAt(0)=='J') || (sId.charAt(0)=='j')) value=18
     		else if((sId.charAt(0)=='K') || (sId.charAt(0)=='k')) value=19
     		else if((sId.charAt(0)=='L') || (sId.charAt(0)=='l')) value=20
      		else if((sId.charAt(0)=='M') || (sId.charAt(0)=='m')) value=21
     		else if((sId.charAt(0)=='N') || (sId.charAt(0)=='n')) value=22
      		else if((sId.charAt(0)=='P') || (sId.charAt(0)=='p')) value=23
     		else if((sId.charAt(0)=='Q') || (sId.charAt(0)=='q')) value=24
      		else if((sId.charAt(0)=='R') || (sId.charAt(0)=='r')) value=25
     		else if((sId.charAt(0)=='S') || (sId.charAt(0)=='s')) value=26
      		else if((sId.charAt(0)=='T') || (sId.charAt(0)=='t')) value=27
      		else if((sId.charAt(0)=='U') || (sId.charAt(0)=='u')) value=28
      		else if((sId.charAt(0)=='V') || (sId.charAt(0)=='v')) value=29
     		else if((sId.charAt(0)=='X') || (sId.charAt(0)=='x')) value=30
     		else if((sId.charAt(0)=='Y') || (sId.charAt(0)=='y')) value=31
     		else if((sId.charAt(0)=='W') || (sId.charAt(0)=='w')) value=32
      		else if((sId.charAt(0)=='Z') || (sId.charAt(0)=='z')) value=33
      		else if((sId.charAt(0)=='I') || (sId.charAt(0)=='i')) value=34
      		else if((sId.charAt(0)=='O') || (sId.charAt(0)=='o')) value=35
      		else fResult = false ;
      		//alert('Value='+ value) ;
    	}
    	if(fResult==true)
     	{
      		value = Math.floor(value/10) + (value%10)*9 +
              	parseInt(sId.charAt(1))*8+
              	parseInt(sId.charAt(2))*7+
              	parseInt(sId.charAt(3))*6+
              	parseInt(sId.charAt(4))*5+
              	parseInt(sId.charAt(5))*4+
              	parseInt(sId.charAt(6))*3+
              	parseInt(sId.charAt(7))*2+
              	parseInt(sId.charAt(8))+
              	parseInt(sId.charAt(9)) ;
      		value = value % 10 ;
      		if(value!=0) fResult = false ;
 
      		var i;
     		var c;
      		for (i = 1; i < sId.length; i++)
      		{
       			c = sId.charAt(i);
       			if (LegalID.indexOf(c) == -1) fResult = false;
      		}
     	}
	if(fResult==false)	
	{
		alert(msg)
		return false
	}
	else
	{
		return true
	}
}

function myIdCheck(obj)
{  
	obj.value=myTrim(obj.value.toUpperCase());
	var expStr=new RegExp("^([A-Z])([0-9A-Z]+)","g")
	if (obj.value.match(expStr)!=null){
		if (obj.value.length != 10){
			if (obj.value.match(expStr)!=null && (obj.value.length > 10 && obj.value.length < 21))
			 	return true;
		 	else{
				alert("護照號碼有誤")
				obj.focus()
				return false;
			}
		 }
		var LegalID = "0123456789"
		var fResult=true;
		var value = 0;
		//var sId=id.value;
	
		//因為護照號碼字數不一定 所以先取消其中一條件 obj.value.length!=10
		if(obj.value != "" && obj.value != "或填寫身分證字號" && obj.value.length!=10){ 
		//if(obj.value != "" && obj.value != "或填寫身分證字號"){
		 alert("請輸入正確身份證字號\n必須是 10 個字元");
		 obj.focus();
		 return false;
	}	 
	else
	{
	  if((obj.value.charAt(0)=='A') || (obj.value.charAt(0)=='a')) value=10
	  else if((obj.value.charAt(0)=='B') || (obj.value.charAt(0)=='b')) value=11
	  else if((obj.value.charAt(0)=='C') || (obj.value.charAt(0)=='c')) value=12
	  else if((obj.value.charAt(0)=='D') || (obj.value.charAt(0)=='d')) value=13
	  else if((obj.value.charAt(0)=='E') || (obj.value.charAt(0)=='e')) value=14
	  else if((obj.value.charAt(0)=='F') || (obj.value.charAt(0)=='f')) value=15
	  else if((obj.value.charAt(0)=='G') || (obj.value.charAt(0)=='g')) value=16
	  else if((obj.value.charAt(0)=='H') || (obj.value.charAt(0)=='h')) value=17
	  else if((obj.value.charAt(0)=='J') || (obj.value.charAt(0)=='j')) value=18
	  else if((obj.value.charAt(0)=='K') || (obj.value.charAt(0)=='k')) value=19
	  else if((obj.value.charAt(0)=='L') || (obj.value.charAt(0)=='l')) value=20
	  else if((obj.value.charAt(0)=='M') || (obj.value.charAt(0)=='m')) value=21
	  else if((obj.value.charAt(0)=='N') || (obj.value.charAt(0)=='n')) value=22
	  else if((obj.value.charAt(0)=='P') || (obj.value.charAt(0)=='p')) value=23
	  else if((obj.value.charAt(0)=='Q') || (obj.value.charAt(0)=='q')) value=24
	  else if((obj.value.charAt(0)=='R') || (obj.value.charAt(0)=='r')) value=25
	  else if((obj.value.charAt(0)=='S') || (obj.value.charAt(0)=='s')) value=26
	  else if((obj.value.charAt(0)=='T') || (obj.value.charAt(0)=='t')) value=27
	  else if((obj.value.charAt(0)=='U') || (obj.value.charAt(0)=='u')) value=28
	  else if((obj.value.charAt(0)=='V') || (obj.value.charAt(0)=='v')) value=29
	  else if((obj.value.charAt(0)=='X') || (obj.value.charAt(0)=='x')) value=30
	  else if((obj.value.charAt(0)=='Y') || (obj.value.charAt(0)=='y')) value=31
	  else if((obj.value.charAt(0)=='W') || (obj.value.charAt(0)=='w')) value=32
	  else if((obj.value.charAt(0)=='Z') || (obj.value.charAt(0)=='z')) value=33
	  else if((obj.value.charAt(0)=='I') || (obj.value.charAt(0)=='i')) value=34
	  else if((obj.value.charAt(0)=='O') || (obj.value.charAt(0)=='o')) value=35
	  else fResult = false ;
	  //alert('Value='+value) ;
	}
	if(fResult==true)
	 {
	  value = Math.floor(value/10) + (value%10)*9 +
	          parseInt(obj.value.charAt(1))*8+
	          parseInt(obj.value.charAt(2))*7+
	          parseInt(obj.value.charAt(3))*6+
	          parseInt(obj.value.charAt(4))*5+
	          parseInt(obj.value.charAt(5))*4+
	          parseInt(obj.value.charAt(6))*3+
	          parseInt(obj.value.charAt(7))*2+
	          parseInt(obj.value.charAt(8))+
	          parseInt(obj.value.charAt(9)) ;
	  value = value % 10 ;
	  if(value!=0) fResult = false ;
	
	  var i;
	  var c;
	  for (i = 1; i < obj.value.length; i++)
	  {
	   c = obj.value.charAt(i);
	   if (LegalID.indexOf(c) == -1) fResult = false;
	  }
	 }
	if(fResult==false){
		alert(" 您的身份證字號有誤, 請檢查後重新輸入!");
		obj.select();
		return false
	}
	}
	return true;
}



//檢驗是否為半形英文或數字 START
  function isNumEng(str1)
  {
    var str2="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    for (i=0 ; i< str1.length ; i++ )
    {
      if (str2.indexOf(str1.substring(i,i+1))==-1)
      {
	    return false;   //只要有一個字元不是半形英文或數字就傳回false                     
      }   
    }
    return true;
  }  
//檢驗是否為半形英文或數字 END



//檢驗身分證字號(登入時) START
  function iseng(a)
  {
    var big = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    var x="abcdefghijklmnopqrstuvwxyz";
    if ((a.length == 1) && ((big.indexOf(a) != -1) || (x.indexOf(a) != -1)))
      return true;
    else
      return false;
  }

  function isnum(d)
  {
    var digit = "0123456789"
    if ((d.length == 1) && (digit.indexOf(d) != -1))
      return true;
    else
      return false;
  }

  function id_check(id)
  {
    if (id.length == 10)
    {
      if ((iseng(id.charAt(0))) && ((id.charAt(1) == "1") || (id.charAt(1) == "2")) &&
		  (isnum(id.charAt(2))) && (isnum(id.charAt(3))) && (isnum(id.charAt(4))) && (isnum(id.charAt(5))) &&
	 	  (isnum(id.charAt(6))) && (isnum(id.charAt(7))) && (isnum(id.charAt(8))) && (isnum(id.charAt(9))))
        return true;
      else
        return false;
    }
    else
      return false;
  }
//檢驗身分證字號(登入時) END



