/**
 * (@)# check-util.js
 *
 *
 */
function fn_checkform( _mandonly) {
    return fn_checkform2("document",_mandonly);
}

// ex) if (!fn_checkform2("dataframe",dataframe.bodyform,false)) return;
function fn_checkform2(frameName, _mandonly) {
    //var frmObj = document.getElementById(formname);
    var inputObjs = document.getElementsByTagName("input");
    for( i = 0; i < inputObjs.length; i++ ) {
        //-- INPUT ----------------------------------------
        if (inputObjs[i].type.toLowerCase() == "text") {
            var _CM_TYPE     = inputObjs[i].CM_TYPE; // CM_TYPE = (NOCHECK,CHAR, NUMBER, NUMBER(?,?), AMT, AMT(?,?), DATEYMD,DATEYM,DATEYY) : NUMBER(?,?)
            var _CM_NAME     = inputObjs[i].CM_NAME; //
            var _CM_MAND     = inputObjs[i].CM_MAND; // (Y/N)
            var _CM_LENGTH   = inputObjs[i].maxLength;
            var _CM_VALUE    = inputObjs[i].value;
            var _CM_READONLY = inputObjs[i].readOnly;

            if (_CM_TYPE == null || _CM_TYPE == "undefined")
               continue;

            if (_CM_MAND == "Y" && _CM_VALUE == "") {
                if (_CM_READONLY == true) {
                    alertMessage("SC003",_CM_NAME);
                    try{inputObjs[i].focus();}catch(_xe){}
                    return false;
                } else {
                    alertMessage("SC001",_CM_NAME);
                    try{inputObjs[i].focus();}catch(_xe){}
                    return false;
                }
            } else if (_CM_VALUE == "") {
                continue;
            }
            if (_mandonly && _CM_MAND != "Y") continue;

            if (_CM_TYPE.indexOf("CHAR") >= 0) {
                if (_CM_VALUE.byteLength() > _CM_LENGTH) {
                    alertMessage("SC102",_CM_NAME, parseInt(_CM_LENGTH/2));
                    try{inputObjs[i].focus();}catch(_xe){}
                    return false;
                }
            } else if (_CM_TYPE == "NUMBER" || _CM_TYPE == "AMT") {
                var _TMP   = _CM_VALUE.replaceAll(",","");

                if (!_TMP.isNumber() || _TMP.indexOf(".") >=0 ) {
                    if (_CM_TYPE == "NUMBER") _msgno = "SC114"; else _msgno = "SC121";
                    alertMessage(_msgno,_CM_NAME);
                    try{inputObjs[i].focus();}catch(_xe){}
                    return false;
                }
                if (_CM_VALUE.byteLength() > _CM_LENGTH) {
                    alertMessage("SC101",_CM_NAME);
                    try{inputObjs[i].focus();}catch(_xe){}
                    return false;
                }
            } else if (_CM_TYPE == "IP") {
                var _TMP   = _CM_VALUE.replaceAll(",","");
                if (!_TMP.isNumber() || _TMP.indexOf(".") >=0 || eval(_TMP) > 255) {
                    if (_CM_TYPE == "NUMBER") _msgno = "SC114"; else _msgno = "SC121";
                    alertMessage(_msgno,_CM_NAME);
                    try{inputObjs[i].focus();}catch(_xe){}
                    return false;
                }
                if (_CM_VALUE.byteLength() > _CM_LENGTH) {
                    alertMessage("SC101",_CM_NAME);
                    try{inputObjs[i].focus();}catch(_xe){}
                    return false;
                }
            } else if (_CM_TYPE.indexOf("NUMBER") >= 0) {
                try {
                    var _isErr = false;
                    var _FORMATSTR = _CM_TYPE.split("(")[1].split(")")[0];
                    var _PRE = parseInt(_FORMATSTR.split(",")[0]);
                    var _SUF = parseInt(_FORMATSTR.split(",")[1]);
                } catch(e) {
                    _isErr = true;
                }
                if (_isErr || _FORMATSTR.trim() == "" || !(_PRE+"").isNumber() || !(_SUF+"").isNumber()) {
                    alertMessage("SC301",inputObjs[i].name);
                    try{inputObjs[i].focus();}catch(_xe){}
                    return false;
                }

                var _TMP   = _CM_VALUE.replaceAll(",","");

                if (!_TMP.isNumber()) {
                    alertMessage("SC115",_CM_NAME,_FORMATSTR);
                    try{inputObjs[i].focus();}catch(_xe){}
                    return false;
                }
                var _VAL_PRE = _TMP.split(".")[0];
                var _VAL_SUF = _TMP.split(".").length > 1 ? _CM_VALUE.split(".")[1]:"";

                if (_VAL_PRE.length > _PRE) {
                    alertMessage("SC115",_CM_NAME,_FORMATSTR);
                    try{inputObjs[i].focus();}catch(_xe){}
                    return false;
                }
                if (_VAL_SUF.length > _SUF) {
                    alertMessage("SC115",_CM_NAME,_FORMATSTR);
                    try{inputObjs[i].focus();}catch(_xe){}
                    return false;
                }
            } else if (_CM_TYPE.indexOf("AMT") >= 0) {
                try {
                    var _isErr = false;
                    var _FORMATSTR = _CM_TYPE.split("(")[1].split(")")[0];
                    var _PRE = parseInt(_FORMATSTR.split(",")[0]);
                    var _SUF = parseInt(_FORMATSTR.split(",")[1]);
                } catch(e) {
                    _isErr = true;
                }
                if (_isErr || _FORMATSTR.trim() == "" || !(_PRE+"").isNumber() || !(_SUF+"").isNumber()) {
                    alertMessage("SC301",inputObjs[i].name);
                    try{inputObjs[i].focus();}catch(_xe){}
                    return false;
                }

                var _TMP   = _CM_VALUE.replaceAll(",","");

                if (!_TMP.isNumber()) {
                    alertMessage("SC129",_FORMATSTR);
                    try{inputObjs[i].focus();}catch(_xe){}
                    return false;
                }
                var _VAL_PRE = _TMP.split(".")[0];
                var _VAL_SUF = _TMP.split(".").length > 1 ? _CM_VALUE.split(".")[1]:"";

                if (_VAL_PRE.length > _PRE) {
                    alertMessage("SC129",_FORMATSTR);
                    try{inputObjs[i].focus();}catch(_xe){}
                    return false;
                }
                if (_VAL_SUF.length > _SUF) {
                    alertMessage("SC129",_FORMATSTR);
                    try{inputObjs[i].focus();}catch(_xe){}
                    return false;
                }
            } else if (_CM_TYPE == "DATEYY") {
                var _TMP   = _CM_VALUE.replaceAll("-","");
                if (!_TMP.isNumber() || _TMP.indexOf(".") >=0 || _TMP.length != 4) {
                    alertMessage("SC141",_CM_NAME);
                    try{inputObjs[i].focus();}catch(_xe){}
                    return false;
                }
            } else if (_CM_TYPE == "DATEYM") {
                var _TMP   = _CM_VALUE.replaceAll("-","");
                if (!_TMP.isYM()) {
                    alertMessage("SC141",_CM_NAME);
                    try{inputObjs[i].focus();}catch(_xe){}
                    return false;
                }
            } else if (_CM_TYPE == "DATEYMD") {
                var _TMP   = _CM_VALUE.replaceAll("-","");
                if (!_TMP.isYMD()) {
                    alertMessage("SC141",_CM_NAME);
                    try{inputObjs[i].focus();}catch(_xe){}
                    return false;
                }
            } else if (_CM_TYPE == "DATEYMDHM") {
                var _TMP   = _CM_VALUE;
                if (!_TMP.isYMDHM()) {
                    alertMessage("SC141",_CM_NAME);
                    try{inputObjs[i].focus();}catch(_xe){}
                    return false;
                }
            } else if (_CM_TYPE == "NOCHECK") {
            } else {
                alertMessage("SC301",inputObjs[i].name);
                try{inputObjs[i].focus();}catch(_xe){}
                return false;
            }
        }
    }
    inputObjs = document.getElementsByTagName("select");
    for( i = 0; i < inputObjs.length; i++ ) {
      //-- SELECT ----------------------------------------
        if (inputObjs[i].tagName == "SELECT") {
            var _CM_TYPE     = inputObjs[i].CM_TYPE; // CM_TYPE = (NOCHECK,CHAR, NUMBER, NUMBER(?,?), AMT, AMT(?,?), DATEYMD,DATEYM,DATEYY) : NUMBER(?,?)
            var _CM_NAME     = inputObjs[i].CM_NAME;
            var _CM_MAND     = inputObjs[i].CM_MAND;
            var _CM_VALUE    = inputObjs[i].value;

            if (_CM_TYPE == null || _CM_TYPE == "undefined" ||
                _CM_NAME == null || _CM_NAME == "undefined") continue;

            if (_CM_MAND == "Y" && _CM_VALUE == "") {
                alertMessage("SC003",_CM_NAME);
                try{inputObjs[i].focus();}catch(_xe){}
                return false;
            } else if (_CM_VALUE == "") {
                continue;
            }
        }
    }
    inputObjs = document.getElementsByTagName("TEXTAREA");
    for( i = 0; i < inputObjs.length; i++ ) {
        //-- TEXTAREA ----------------------------------------
        if (inputObjs[i].tagName == "TEXTAREA") {
            var _CM_TYPE     = inputObjs[i].CM_TYPE; // CM_TYPE = (NOCHECK,CHAR, NUMBER, NUMBER(?,?), AMT, AMT(?,?), DATEYMD,DATEYM,DATEYY) : NUMBER(?,?)
            var _CM_NAME     = inputObjs[i].CM_NAME; //
            var _CM_MAND     = inputObjs[i].CM_MAND; //
            var _CM_LENGTH   = inputObjs[i].maxlength;
            var _CM_VALUE    = inputObjs[i].value;

            if (_CM_TYPE == null || _CM_TYPE == "undefined" ||
                _CM_NAME == null || _CM_NAME == "undefined") continue;

            if (_CM_MAND == "Y" && _CM_VALUE == "") {
                alertMessage("SC001",_CM_NAME);
                try{inputObjs[i].focus();}catch(_xe){}
                return false;
            } else if (_CM_VALUE == "") {
                continue;
            }
            if (_mandonly && _CM_MAND != "Y") continue;

            if (_CM_VALUE.byteLength() > _CM_LENGTH) {
                alertMessage("SC102",_CM_NAME, parseInt(_CM_LENGTH/2));
                try{inputObjs[i].focus();}catch(_xe){}
                return false;
            }
        }
    }
    return true;
}

function alertMessage(){
  alert("Invalid value!");
}
