/* 共通設定
@@@================================================================*/
//moment($("#SDDAY").val()).toDate();
//var sdday = new Date($("#SDDAY").val());

/*
common.postData(
  common.getApiUrl() + "getSdday.php"
  , null
  , function name(data) {
    var d = JSON.parse(data);
    var a = moment(d.sdday_yyyy + "-" + d.sdday_mm + "-" + d.sdday_dd);

    sdday = a.toDate();

  }, function name(params) {
    sdday = new Date();
  }
)
*/

var checkDate = {
  sdday: new Date($("#SDDAY").val()),

  isBeforeSdday: function (d) {
    // 業務日以前かどうか
    return moment(d).isBefore(this.sdday);
  },
  isSameOrBeforeSdday: function (d) {
    // 業務日以降
    return moment(d).isSameOrBefore(this.sdday);
  },
  isAfterSdday: function (d) {
    // 業務日以降
    return moment(d).isAfter(this.sdday);
  },
  isSameOrAfterSdday: function (d) {
    // 業務日以降
    return moment(d).isSameOrAfter(this.sdday);
  },
  inThisMonth: function (d) {
    // 当月以内
    if (moment(d).isBefore(moment(this.sdday).startOf("month"))) {
      return false;
    }
    if (moment(d).isAfter(moment(this.sdday).endOf("month"))) {
      return false;
    }
    return true;
  },
  inThisMonth2: function (d) {
    // 翌月以内
    // 当月以内
    if (moment(d).isBefore(moment(this.sdday).startOf("month"))) {
      return false;
    }
    if (moment(d).isAfter(moment(this.sdday).add(1, "month").endOf("month"))) {
      return false;
    }
    return true;
  },
  inBefore3month: function (d) {
    // 過去3ヶ月以内
    if (moment(d).isBefore(moment(this.sdday).add(-3, "month"))) {
      return false;
    }
    return true;
  },
  inBefore4month: function (d) {
    if (stringUtil.isEmpty(d)) {
      return true;
    }
    let d1 = dateUtil.getYYYYMMDDDate(d);
    // 過去3ヶ月以内
    if (moment(d1).isBefore(moment(this.sdday).add(-4, "month"))) {
      return false;
    }
    return true;
  },
  inThisYear: function (d) {
    // 当月以内
    if (moment(d).isBefore(moment(this.sdday).startOf("year"))) {
      return false;
    }
    if (moment(d).isAfter(moment(this.sdday).endOf("year"))) {
      return false;
    }
    return true;
  },


  checkSyukkaDay: function (o) {
    var d = dateUtil.getYYMMDDDate($(o).val());

    // 業務日以降　かつ　当月内　以外はエラー
    if (checkDate.isBeforeSdday(d)) {
      common.addError(o, "日付は当日以降で指定して下さい");
      return false;
    }
    if (!checkDate.inThisMonth(d)) {
      common.addError(o, "日付は当月内で指定して下さい");
      return false;
    }

  },

  checkJyutyu: function (o) {
    var d = dateUtil.getYYMMDDDate($(o).val());

    // 業務日以前　かつ　同年　以外はエラー
    if (checkDate.isAfterSdday(d)) {
      common.addError(o, "日付は当日以前で指定して下さい");
    }
    if (!checkDate.inThisYear(d)) {
      common.addError(o, "日付は同年内で指定して下さい");
      return false;
    }

  },

  checkNouhin: function (o) {
    var d = dateUtil.getYYMMDDDate($(o).val());

    // 業務日以降　または　翌月末日付　以外はエラー
    if (checkDate.isBeforeSdday(d)) {
      common.addError(o, "日付は当日以降で指定して下さい");
      return false;
    }
    if (!checkDate.inThisMonth2(d)) {
      common.addError(o, "日付は翌月末まで指定して下さい");
      return false;
    }

  },

  checkBefore3Month: function (o) {
    var d = dateUtil.getYYMMDDDate($(o).val());
    // 業務日以降　または　翌月末日付　以外はエラー
    if (!checkDate.inBefore3month(d)) {
      common.addError(o, "日付は3ヶ月以内で入力ください");
      return false;
    }
  }


}
