var print = {
  /**
   * @param {*} d パラメーター
   *            d.WSEQ
   *            d.TABLE
   *            d.PRGID
   *            d.PARAMS 帳票に必要なパラメーター
   *               {  PARAM1:XXXXX1,
   *                  PARAM2:XXXXX2,
   *                  PARAM3:XXXXX3,
   *               }
   * 　　　　　　d.fileName 保存するファイル名
   *  ex)
   *  hogehoge.Servlet.AF999E?TABLE=AF902E&WSEQ=" + data.data;
   *                  {PRGID}?{TABLE}=XXXX&WSEQ={WSEQ}&PARAM1=YYY&PARAM2&YYYYY
   * @param {*} fsuccess　正常時（既知のエラーも含む）
   * @param {*} ferror  　異常時
   * @param {*} type　無視
   */

  downloadExcel: function (d, fsuccess, ferror, type) {
    var me = this;
    if (type) {
      d["DOWNLOAD_EXCEL"] = type;
    }
    common.dispLoading();

    $.ajax({
      url: common.getApiUrl() + "execReport.php",
      type: 'POST',
      dataType: 'json',
      contentType: 'application/json',
      data: JSON.stringify(d),
      //timeout: 12000,
    })
      .done(function (response) {

        var status = response.status;
        var data = JSON.parse(response.data);
        var options = response;
        delete options.status;
        delete options.data;

        if (status == "OK") {
          if (typeof (fsuccess) == "function") {
            fsuccess(data, options);
          } else {
//            alert("正常終了しました。");
          }

          var fileName = data.filename;
          var sendData = {};
          sendData["fileName"] = fileName;
          var url = common.getApiUrl() + "/getFile.php";
          common.getFileData(url, JSON.stringify(sendData), d.fileName);

        } else {

          if (typeof (ferror) == "function") {
            ferror(data, options);
          } else {
            alert("エラーがあります。");
          }

        }
      })
      .fail(function () {
        alert("通信エラーです。");
      })

      .always(function () {
        common.removeLoading()
      });

  },

  downloadPdf: function (d, fsuccess, ferror, type, triggerObj=null) {
    var me = this;
    if (type) {
      d["DOWNLOAD_EXCEL"] = type;
    }
    common.dispLoading();

    $.ajax({
      url: common.getApiUrl() + "execReport.php",
      type: 'POST',
      dataType: 'json',
      contentType: 'application/json',
      data: JSON.stringify(d),
      //timeout: 12000,
    })
      .done(function (response) {

        var status = response.status;
        var data = JSON.parse(response.data);
        var options = response;
        delete options.status;
        delete options.data;

        if (status == "OK") {
          if (typeof (fsuccess) == "function") {
            fsuccess(data, options);
          } else {
//            alert("正常終了しました。");
          }

          var fileName = data.filename;
          var sendData = {};
          sendData["fileName"] = fileName;
          var url = common.getApiUrl() + "/getFile.php";
          common.getFileDataOpen(url, JSON.stringify(sendData), d.fileName, "pdf");

          if(triggerObj != null) {
            $(triggerObj).trigger("afterGetPdf");
          }

        } else {

          if (typeof (ferror) == "function") {
            ferror(data, options);
          } else {
            alert("エラーがあります。");
          }

        }
      })
      .fail(function () {
        alert("通信エラーです。");
      })

      .always(function () {
        common.removeLoading()
      });

  },

  downloadPdf2: function (d, fsuccess, ferror, type, triggerObj=null) {
    var me = this;
    if (type) {
      d["DOWNLOAD_EXCEL"] = type;
    }
    common.dispLoading();

    $.ajax({
      url: common.getApiUrl() + "execReport.php",
      type: 'POST',
      dataType: 'json',
      contentType: 'application/json',
      data: JSON.stringify(d),
      //timeout: 12000,
    })
      .done(function (response) {

        var status = response.status;
        var data = JSON.parse(response.data);
        var options = response;
        delete options.status;
        delete options.data;

        if (status == "OK") {
          if (typeof (fsuccess) == "function") {
            fsuccess(data, options);
          } else {
//            alert("正常終了しました。");
          }

          var fileName = data.filename;
          var sendData = {};
          sendData["fileName"] = fileName;
          var url = common.getApiUrl() + "/getFile.php";
          common.getFileDataOpen2(url, JSON.stringify(sendData), d.fileName, "pdf");

          if(triggerObj != null) {
            $(triggerObj).trigger("afterGetPdf");
          }

        } else {

          if (typeof (ferror) == "function") {
            ferror(data, options);
          } else {
            alert("エラーがあります。");
          }

        }
      })
      .fail(function () {
        alert("通信エラーです。");
      })

      .always(function () {
        common.removeLoading()
      });

  },

}
