function __NVL(varExpr1, varExpr2, ZeroStrIsNull /* = false */) {
	var expr1;
	if (typeof varExpr1 == 'string') {
		expr1 = varExpr1;
	} else if (varExpr1 == null) {
		expr1 = null;
	} else if (varExpr1.data != undefined) {
		expr1 = varExpr1.data;
	} else if (varExpr1.value != undefined) {
		expr1 = varExpr1.value;
	} else {
		expr1 = varExpr1;
	}
	if (ZeroStrIsNull == undefined) ZeroStrIsNull = false;	// ZeroStrIsNull が省略されていたらfalseとする
	// 検査対象データがNULLの場合
	if (expr1 == null) {
		return varExpr2;
	} else {
		if (ZeroStrIsNull && expr1 == '') {
			return varExpr2;
		} else {
			return expr1;
		}
	}
}
function __IsZenkaku(fld) {
    var str = __NVL(fld, '');
    var c;
    for (var i = 0; i < str.length; ++i) {
        c = str.charCodeAt(i);
        if (c < 256 || (c >= 0xff61 && c <= 0xff9f)) {
            return false;
        }
    }
    return true;
}
function __getByteCount(fld) {
	var str = __NVL(fld, '');
	var count = 0;
	for ( var i = 0; i < str.length; ++i ) {
		var sub = str.substring(i, i + 1);
		//全角の場合２バイト追加。
		if (__IsZenkaku(sub)) {
			count += 2;
		} else {
			count += 1;
		}
	}
	return count;
}
function __IsValidEMail(str) {
	if (str.match(/^\S+@\S+\.\S+$/)) return true;
	return false;
}

