function Chk_Id(P_id) {
  var ErrCode,Tmp,i,sum;
  var WeightArr=new Array(10,11,12,13,14,15,16,17,34,18,19,20,21,22,35,23,24,25,26,27,28,29,32,30,31,33);
  var EngStr="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  
  P_id=P_id.toUpperCase();
  ErrCode=sum=0;
  if(P_id.length !=10)   ErrCode = 1;  //長度為10
  else
    if(isNaN(P_id.substring(1,10)))   ErrCode = 2;  //2 至 10 位為數值
    else 
      if(P_id.charAt(1) != "1" && P_id.charAt(1) != "2")  ErrCode = 3;  //第二位 1 或 2
      else
        if(P_id.charAt(2)<"0" || P_id.charAt(2)>"3")  ErrCode = 4;  //第三位在 0~3 間
  if(ErrCode==0) {
    Tmp = P_id.charAt(0);
    if(Tmp < "A" || Tmp > "Z")  ErrCode = 5;  //第一位在 A~Z 間
    else  {
      Tmp=WeightArr[EngStr.indexOf(Tmp)];     //乘權重算檢查碼
      sum = parseInt(Tmp/10) + parseInt((Tmp%10) * 9) + parseInt(P_id.charAt(9));
      for(i=1;i<=8;i++)    sum += parseInt(P_id.charAt(i)) * (9 - i);
      Tmp = sum % 10;
    }
  }
  if(Tmp%10==0 && ErrCode==0)  //正確
    return true;
  else
    return false;
}

function Chk_Num(PID) {
  var logicMul = "12121241";  
  var intRc = 0;
  for (var numI=0; numI < 8; numI++) {
    intRc = intRc + TP_GetMulti(PID.substring(numI,numI+1), logicMul.substring(numI,numI+1));
  }
  if ((intRc % 10) != 0) {
    return false;  
  }
  else {
    return true;
  }
}

function TP_GetMulti(strCNo,logicMul) {
  var intRc;
  intRc = parseInt(strCNo) * parseInt(logicMul);
  if(intRc >= 10) {
    intRc = parseInt(intRc / 10) + (intRc % 10);
  }
  return intRc;  
}

