<!--
/**
 * Check if the email address is valid.
 * @param EMAIL The email address.
 * @return The result boolean value, true for valid, or else invalid.
 * @status OK
 * @date 2005/11/05
 * @by Kevin Koo.
 * @referance http://www.javascriptkit.com/script/script2/acheck.shtml
 */
function isEmail(EMAIL) {
    var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    return filter.test(EMAIL);
}

function validEmail(EMAIL) {
    var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    return filter.test(EMAIL);
}

/**
 * Check if the input is all number or letter or underscore.
 * @param INPUT A string to be checked.
 * @return ture if are all literals.
 */
function validLiteral(INPUT) {
    var litExp = /\W+/;  // non numeral or letter or underscore
    var invalid = litExp.test(INPUT);
    return !invalid;
}

/**
 * Check if the input is all number.
 * @param INPUT A number string.
 * @return ture if are all numerics
 */
function validNum(INPUT) {
    var numExp = /\D+/;  // non numeral
    var invalid = numExp.test(INPUT);
    return !invalid;
}

/**
 * Check if the input is valid phone number.
 * @param INPUT A number string.
 * @return ture if is phone number.
 */
function validPhone(INPUT) {
    var numExp = /^[^\-]?\D+/;  // non phone number
    var invalid = numExp.test(INPUT);
    return !invalid;
}

/**
 * Check if the input is valid date.
 * @param YEAR The year.
 * @param MONTH The month minus 1.
 * @param DAY The day.
 * @return true if is valid.
 */
function validDate(YEAR, MONTH, DAY) {
    if (MONTH < 0 || MONTH > 11 || DAY < 1 || DAY > 31) {
        return false;
    }
    var tmpdate = new Date();
    tmpdate.setFullYear(YEAR);
    tmpdate.setMonth(MONTH);
    tmpdate.setDate(DAY);
    if (tmpdate.getDate() != DAY) {
        return false;
    } else {
        return true;
    }
}

/**
 * Check the email address.
 * @param EMAIL An email address string.
 * @return true if is valid, false if is invalid.
 */
// Note: To be improved.
function checkEmail(EMAIL) {
    if (EMAIL.indexOf("@") < 0) {
        return false;
    }
    if (EMAIL.indexOf(".") < 0) {
        return false;
    }
    if (EMAIL.indexOf("@") > EMAIL.indexOf(".")) {
        return false;
    }
    if (EMAIL.charAt(EMAIL.length-1) == "@") {
        return false;
    }
    if (EMAIL.charAt(EMAIL.length-1) == ".") {
        return false;
    }
    if (EMAIL.charAt(0) == "@") {
        return false;
    }
    if (EMAIL.charAt(0) == ".") {
        return false;
    }
    var regExp = /\w+[@]\w+[.]\w+/;
    if (!regExp.test(EMAIL)) {
        return false;
    }
    return true;
}
/**
 * Check the personal identifiction number.
 * @param PID An personal identification number string.
 * @return true if is valid, false if is invalid.
 */
 /* ??? ?? ??? ?????????
function validPID(PID) {
    var datalen = 10;
    var letters = "ABCDEFGHJKLMNPQRSTUVWXYZIO";
    var weights = "19876543211";
    var pid = PID.toUpperCase();
    if (pid.length != datalen) {
        return false;
    }
    var myExp = /[A-Z][12]\d{8}/
    if (!myExp.test(pid)) {
        return false;
    }
    // Transformed PID.
    var tpid = (letters.indexOf(pid.charAt(0)) + 10) + pid.substring(1, 9);
    var total = 0;
    for (i = 0; i < datalen; i++) {
        var d = tpid.charAt(i);
        var w = weights.charAt(i);
        total += (w * d);
    }
    total += parseInt(pid.substring(9));
    if ((total % 10) > 0) {
        return false;
    }
    return true;
}
*/
/**
* New ??? ?? Modify's johnny 2008/12/02
*/
function check_tw_id(sId){  
  var LegalID = "0123456789"
  var fResult=true; 
  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 ;
  }
  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)
    return false;
  else
    return true;
}

function check_Field_tw_id(obj){
  if (!check_tw_id(obj)){      
    return false;
  }
  return true;
}

function validPID(obj) {   
  if (!check_Field_tw_id(obj)) {   
    return false;
  }
  return true;
}

function trim(strvalue) {
    var ptntrim = /(^\s*)|(\s*$)/g;
    var val = strvalue.replace(ptntrim,"");
    return val;
}
//-->