function isResidentNo(pResidnetNo) { if(isNaN(pResidnetNo)) return false; if(pResidnetNo.length != 13) return false; var c = pResidnetNo.substr(6,1); if(c == '5' || c == '6') return true; last = pResidnetNo.substr(12,1); regNo = new Array(12); regNo[12] = 0; for(var i = 0; i < (regNo.length - 1); i++) { regNo[i] = eval(pResidnetNo.substr(i, 1)) * ((i % 8) + 2); } for(var i = 0; i < (regNo.length - 1); i++) { regNo[12] += regNo[i]; } var result = ((11 - (regNo[12] % 11)) % 10); if(result == eval(last)) { return true; } else { return isForegnResidentNo(pResidnetNo); } } function getFullAge(pResidentNo, pDate, pPosition) { if(isNaN(pResidentNo)) return -1; var pivotYY = ""; var pivotMM = ""; var pivotDD = ""; var regYY = ""; var regMM = ""; var regDD = ""; if(typeof(pDate) == "undefined" || pDate == "" || pDate == null) { var today = new Date(); pivotYY = today.getYear(); pivotMM = today.getMonth() + 1; pivotDD = today.getDate(); } else { pivotYY = pDate.getYear(); pivotMM = pDate.getMonth() + 1; pivotDD = pDate.getDate(); } if(pResidentNo.length == 13 && isResidentNo(pResidentNo)){ gender = pResidentNo.substr(6, 1); regYY = eval(pResidentNo.substr(0, 2)); regMM = eval(pResidentNo.substr(2, 2)); regDD = eval(pResidentNo.substr(4, 2)); if(gender == '3' || gender == '4' || gender == '7' || gender == '8') { regYY += 2000; } else if(gender == '0' || gender == '9') { regYY += 1800; } else { regYY += 1900; } }else if(pResidentNo.length == 8 && isValidDateTime(pResidentNo, "YYYYMMDD")){ regYY = eval(pResidentNo.substr(0, 4)); regMM = eval(pResidentNo.substr(4, 2)); regDD = eval(pResidentNo.substr(6, 2)); }else{ return -1; } var age = pivotYY - regYY; if(age > 0) { if(pivotMM == regMM) { if(pivotDD < regDD) { age -= 1; } } else if(pivotMM < regMM) { age -= 1; } } if ( pPosition == "M") { if(age <= 0){ if(pivotYY > regYY) { pivotMM += 12; } age = pivotMM - regMM ; if(pivotDD < regDD) { age -= 1; } age = "0."+age; } } return age; } function getGender(pResidentNo) { if(pResidentNo.length != 13 && pResidentNo.length != 7) return false; var rrns = 0; if(pResidentNo.length == 13) { rrns = eval(pResidentNo.substr(6, 1)); } else { rrns = eval(pResidentNo.substr(0, 1)); } return (rrns % 2) ? "M" : "F"; } function isBusinessNo(pWorkNo) { if(isNaN(pWorkNo)) return false; if(pWorkNo.length != 10) return false; var chkValue = new Array(1,3,7,1,3,7,1,3,5); var epNo = new Array(10); for(var i = 0; i < 10; i++) epNo[i] = eval(pWorkNo.substr(i, 1)); for(var i = 0, sum = 0; i < 9; i++) sum += epNo[i] * chkValue[i]; sum += ((epNo[8] * 5) / 10); var mod = sum % 10; var epNoChk = ((mod == 0) ? 0 : 10 - mod); return ((epNoChk == epNo[9]) ? true : false); } function isEMail(pEmail) { var email = pEmail.split("@"); if(email.length != 2) return false; if(email[0].replace(/(^\s*)|(\s*$)/g, "").length == 0) return false; var domain = email[1].split("."); if(domain.length != 2 || domain.length != 3) return false; if(domain[0].replace(/(^\s*)|(\s*$)/g, "").length == 0) return false; if(domain[1].replace(/(^\s*)|(\s*$)/g, "").length == 0) return false; return true; } function isTelephoneZoneNo(pDDD) { var strDDD = pDDD + ""; if( strDDD != "02" && strDDD != "031" && strDDD != "032" && strDDD != "033" && strDDD != "041" && strDDD != "042" && strDDD != "043" && strDDD != "051" && strDDD != "052" && strDDD != "053" && strDDD != "054" && strDDD != "055" && strDDD != "061" && strDDD != "062" && strDDD != "063" && strDDD != "064" ) return false; return true; } function installBarcodeFont(fontNm){ body.createChild("xforms:object", "id:LiveUtil; clsid:{7b1f53ab-6137-4773-88cc-53a46af2d289}; visibility:hidden; left:0px; top:0px; width:0px; height:0px;"); if (fontNm == null || fontNm == "") { fontNm = "FREE3OF9.TTF"; } LiveUtil.installFont(fontNm); } function isForegnResidentNo(pResidnetNo) { var sum = 0; var odd = 0; buf = new Array(13); for (i = 0; i < 13; i++) { buf[i] = parseInt(pResidnetNo.charAt(i)); } odd = buf[7]*10 + buf[8]; if (odd%2 != 0) { return false; } if ((buf[11] != 6)&&(buf[11] != 7)&&(buf[11] != 8)&&(buf[11] != 9)) { return false; } multipliers = [2,3,4,5,6,7,8,9,2,3,4,5]; for (i = 0, sum = 0; i < 12; i++) { sum += (buf[i] *= multipliers[i]); } sum=11-(sum%11); if (sum>=10) sum-=10; sum += 2; if (sum>=10) sum-=10; if ( sum != buf[12]) { return false; } else { return true; } }