/* 共通設定
@@@================================================================*/
var check = {
  isAllChecking: false,
  /* ------------------------------
   * 指定されたフォームの全てのチェックを行う
   ------------------------------ */
  hasError: function (form, isExceptionFunc) {

    var hasError = false;
    this.isAllChecking = true;
    $(form).find("input,select").each(function (index) {

      var el = $(this);
      if (el.hasClass("error")) {
        hasError = true;
        return true;
      }

      if (el.attr('readonly') == 'readonly') {
        return true;
      }

      common.clearError(el);

      // 必須チェック
      if (check.hasRequiredError(el, true)) {
        console.log('[check][req]', el);
        hasError = true;
      }

      // 桁数チェック
      if (check.hasOverFlowError(el, true)) {
        console.log('[check][over]', el);
        hasError = true;
      }

    });
    this.isAllChecking = false;

    return hasError;
  },

  /* ------------------------------
   * 必須チェック
   ------------------------------ */
  hasRequiredError: function (comp, foced) {
    var v = common.isValid($(comp));
    if (!foced && !v) {
      return false;
    }

    common.clearError(comp);

    if ($(comp).hasClass("required") && v) {
      console.log($(comp), $(comp).val());
      if (stringUtil.isEmpty($(comp).val())) {
        common.addError(comp, "必須です", null, true);
        return true;
      }
    }

    return false;
  },
  /* ------------------------------
   * 桁数チェック
   ------------------------------ */
  hasOverFlowError: function (comp, foced) {
    var v = common.isValid($(comp));
    if (!foced && !v) {
      return false;
    }

    var maxlen = comp.attr("maxlength");
    if (maxlen != null) {
      var len = stringUtil.bytes2(comp.val());
      if (parseInt(maxlen) < len) {
        comp.val(stringUtil.substr(comp.val(), 0, maxlen));
        return true;
      }
    }

    return false;
  },

  isNumberPlus: function (comp) {
    if (stringUtil.isEmpty($(comp).val())) {
      return true;
    }

    var isForgiveZero = false;
    if ($(comp).hasClass("isForgiveZero")) {
      isForgiveZero = true;
    }

    var n = stringUtil.toNumber($(comp).val());
    if (n < 0) {
      common.addError($(comp), "マイナスは入力出来ません。");
    }
    if (n == 0 && !isForgiveZero) {
      common.addError($(comp), "ゼロは入力出来ません");
    }
  },


}
