// Utility.js

// newFunction
function isEmpty(val){
    if (val == null) {
        return true;
    }
    else {
        val = trim(val);
        if (val.length == 0) {
            return true;
        }
        //if (val == null)
    }
    return false;
    
} //isEmpty()
function trim(val){
    if (val != null) {
        var space = ' ' + '\n' + '\r' + '\t';
        var startIndex, endIndex;
        for (startIndex = 0; startIndex < val.length; startIndex++) {
            if (space.indexOf(val.charAt(startIndex)) == -1) 
                break;
        }
        for (endIndex = val.length - 1; endIndex >= 0; endIndex--) {
            if (space.indexOf(val.charAt(endIndex)) == -1) 
                break;
        }
        return val.substring(startIndex, endIndex + 1);
    }
    return val;
}

function getRadioValue(radio){
    for (var i = 0; i < radio.length; ++i) {
        if (radio[i].checked) {
            return radio[i].value;
        }
    }
    return '';
}

function showMeg(msg){
    alert(msg);
}

function checkChkBtn(formName, chkName, isCheck){
    var form = document.getElementById(formName);
    if (form) {
        var chkBtn = form[chkName];
        if (chkBtn) {
            if (chkBtn[0]) {
                //alert('checkChkBtn'  + typeof(chkBtn) + ":" + chkBtn.length + ":" + chkBtn[0].value);
                for (var i = 0; i < chkBtn.length; ++i) {
                    chkBtn[i].checked = isCheck;
                }
            }
            else {
                chkBtn.checked = isCheck;
            }
        }
    }
}

function hasChecked(chkObj){
    if (chkObj[0]) {
        //alert('hasChecked'  + typeof(chkObj) + ":" + chkObj.length + ":" + chkObj[0].value);
        for (var i = 0; i < chkObj.length; ++i) {
            if (chkObj[i].checked) {
                return true;
            }
        }
    }
    else 
        if (chkObj) {
            return chkObj.checked;
        }
    return false;
}

function isAllChecked(chkObj){
    if (chkObj[0]) {
        //alert('isAllChecked'  + typeof(chkObj) + ":" + chkObj.length + ":" + chkObj[0].value);		
        for (var i = 0; i < chkObj.length; ++i) {
            if (!chkObj[i].checked) {
                return false;
            }
        }
        return true;
    }
    else 
        if (chkObj) {
            return chkObj.checked;
        }
        else {
            return false;
        }
}

/*判斷當前字符是英文字符還是中文字符*/
function ifWesternChr(chrInput){
    var chrInput_e;
    chrInput_e = escape(chrInput);
    if (chrInput_e.length == (chrInput.length) * 6 || chrInput == "\r" || chrInput == "\n") 
        return false; /*只有非普通ASCII字符經過escape()函數編碼之後的長度才會等於原長度的6倍，所以用這種方法可以避開內碼直接判斷當前字符是否為中文。*/
    else 
        return true;
    /* true 是英文, false 是中文 */
}

function getRealStringLength(str){
    var length = str.length;
    for (var i = 0; i < str.length; ++i) {
        if (!ifWesternChr(str.charAt(i))) {
            length += 1;
        }
    }
}

function hasChineseWord(str){
    return str.length == getRealStringLength(str);
}

function trimString(strData){
    if ((strData == null) || (strData.length <= 0)) 
        return strData;
    
    var strTrimData = "";
    for (i = 0; i < strData.length; i++) {
        curChar = strData.charAt(i);
        if ((curChar != " ") && (curChar != "\n") && (curChar != "\t") && (curChar != "\r")) 
            strTrimData = strTrimData + curChar;
    } //for (i = 0; i < strData.length; i++)
    return strTrimData;
} //trimString()
function isAllDigtialString(strData){
    var bIsAllDigtial = true;
    if (strData == null) {
        bIsAllDigtial = false;
    }
    else 
        if (strData.length <= 0) {
            bIsAllDigtial = false;
        }
        else {
            var strNewData = trim(strData);
            var i;
            var curChar = "";
            for (i = 0; i < strNewData.length; i++) {
                curChar = strNewData.charAt(i);
                if ((curChar != "1") && (curChar != "2") && (curChar != "3") && (curChar != "4") &&
                (curChar != "5") &&
                (curChar != "6") &&
                (curChar != "7") &&
                (curChar != "8") &&
                (curChar != "9") &&
                (curChar != "0")) {
                    bIsAllDigtial = false;
                    break;
                }
            } //for (i = 0; i < strNewData.length; i++)
        } //if (strData == null)
    return bIsAllDigtial;
} //isAllDigtial
function searchFormObjectByNameAndType(targetForm, strElementName, strElementType){
    var targetElement = null;
    if ((targetForm == null) ||
    ((strElementName == null) || (strElementName.length <= 0)) ||
    ((strElementType == null) || (strElementType.length <= 0))) 
        return targetElement;
    
    var i = 0;
    for (i = 0; i < targetForm.elements.length; i++) {
        if ((targetForm.elements[i].type == strElementType) &&
        (targetForm.elements[i].name == strElementName)) {
            targetElement = targetForm.elements[i];
            break;
        } //if ((targetForm.elements[i].type == strElementType) &&
    } //for (i = 0; i < document.DataListForm.elements.length; i++)
    return targetElement;
} //searchFormObjectByNameAndType()

