var ALP_STR = "ABCDEFGHJKLMNPQRSTUVXYWZIO";
var NUM_STR = "0123456789";
function checkid(sPID) {
	var bChk = true;
	var sMsg = "正確";
	sPID = trim(sPID.toUpperCase());
	var iPIDLen = String(sPID).length;

	var iChkNum=0;

	if (iPIDLen!=10) {
		sMsg = "這個身分證字號長度不合法！";
		bChk = false;
	} else {
		var sChk = ALP_STR + NUM_STR;
		for(i=0;i<iPIDLen;i++) {
			if (sChk.indexOf(sPID.substr(i,1))==-1) {
				sMsg = "這個身分證字號含有不正確的字元！";
				bChk = false;
				break;
			}
		}
	}

	if (bChk) {
		iChkNum = ALP_STR.indexOf(sPID.substr(0,1));
		if (iChkNum==-1) {
			sMsg = "身分證字號第一個字應為英文字母！";
			bChk = false;
		} else {
			iChkNum += 10;
			if ((sPID.indexOf("1")!=1) && (sPID.indexOf("2")!=1)) {
				sMsg = "身分證字號第二個字應為 1 或 2！";
				bChk = false;
			}
		}
	}

	if (bChk) {
 		iChkNum = Math.floor(iChkNum/10) + (iChkNum%10*9);
		for(var i=1; i<iPIDLen-1; i++) {
			iChkNum += sPID.substr(i,1) * (9-i);
		}

		var iLastNum = sPID.substr(9,1)*1;
		iChkNum += iLastNum;

		if ((iChkNum % 10) !=0) {
			sMsg = "這個身分證字號不合法！";
			bChk = false;
			for (i=0;i<10;i++) {
				var xRightAlpNum = iChkNum - iLastNum + i;
				if ((xRightAlpNum % 10) ==0) {
					sMsg += "最後一個數應為：" + i;
				}
			}
		}
	}

	//alert(sMsg);
	return bChk;
}

