<script>

{*-- ここからjsでのデータ表示用 ---------------------------------------------------*}

let detail_data=[];
let new_data={};

function chkPageError() { {*表示中のページをチェック!*}
  var frm = $("#headerTop");
  var detail = $("#detail .detail");
  var errflg = false;

  common.clearFormError(detail);

  for(i = 0 ; i < detail.length ; i++) {
    var $me = $(detail[i]);
    if(!stringUtil.isEmpty($me.find(".cucd").val()) {*入力があるものだけチェックする*}
    || !stringUtil.isEmpty($me.find(".jan").val())
    ) {
      {*必須チェック*}
      if(stringUtil.isEmpty($me.find(".jan").val())) {
        common.addError($me.find(".jan"), "入力して下さい。", null, true);
        errflg = true;
      }
      if(stringUtil.isEmpty($me.find(".cucd").val())) {
        common.addError($me.find(".cucd"), "入力して下さい。", null, true);
        errflg = true;
      }

      if(!stringUtil.isEmpty(common.getValue($me.find(".gdstun")))) {
        let wgdstun = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue($me.find(".gdstun"))),"0"));
        if(wgdstun.lt(1)) { {*gdstun < 1*}
          common.addError($me.find(".gdstun"), "1以上を入力して下さい。", null, true);
          errflg = true;
        }
      }
    }
  }
  return errflg;
}

function setArrayData(pgno) {
  var detail = $("#detail .detail");

  if(chkPageError()) { {*配列に格納する前に、妥当性チェック*}
    return false;
  } else {
    if(pgno == $("#lastpage").val()) { {*新規*}
      new_data = [];
      for(i = 0 ; i < detail.length ; i++) {
        let $me = $(detail[i]);
        var new_elem = {};
        var putflg = false;
        if(!stringUtil.isEmpty($me.find(".cucd").val()) {*入力があるものだけ配列に入れる*}
        || !stringUtil.isEmpty($me.find(".jan").val())
        ) {
          putflg = true;
          $me.find("input, select").each(function (index) {
            var inputnm = $(this).attr("name");
            new_elem[inputnm] = common.getValue($(this));
          });
          new_elem["pgno"] = $("#lastpage").val();
          if(putflg) {
            new_data.push(new_elem);
          }
        }
      }
    } else { {*既存更新*}
      for(i = 0 ; i < detail.length ; i++) {
        let $me = $(detail[i]);
        var rnum = Number($me.find(".rnum").val())-1;
        $me.find("input, select").each(function (index) {
          var inputnm = $(this).attr("name");
          if(i == 0) {
            //console.log("["+rnum+"]"+inputnm+":"+common.getValue($(this)));
          }
          detail_data[rnum][inputnm] = common.getValue($(this));
        });
      }
    }

    console.log(detail_data);
    console.log(new_data);
    return true;
  }
}

function dsp_detail(p_pgno) {
  $("#detail .detail").remove();

  var frm = $("#headerTop");
  var el = "";

  //console.log(p_pgno+"/"+$("#lastpage").val());

  if(p_pgno == $("#lastpage").val()) { {*最終ページは新規用ページ*}
    common.setValue(frm.find(".modelbl"), "新規");
    var ret_len = new_data.length;
    for (var i = 0; i < ret_len; i++) {
      el += af90311x_detail.appendRow(new_data[i]);
    }
  } else {
    common.setValue(frm.find(".modelbl"), "修正");
    var ret_len = detail_data.length;
    for (var i = 0; i < ret_len; i++) { {*既存データページを表示*}
      if (Number(detail_data[i].pgno) == Number(p_pgno)) {
        el += af90311x_detail.appendRow(detail_data[i]);
      }
    }
  }

  $("#detail").append(el);

  if(p_pgno == $("#lastpage").val()) { {*最終ページは新規用ページ*}
    if($("#detail .detail").length == '0'){
      setOneRow(); {*最初の１行を表示*}
      doHeaderEnable('D');

      var frm = $("#headerTop");
      var detail = $("#detail .detail");
      if(!stringUtil.isEmpty(common.getValue(frm.find(".hcucd")))) {
        common.setValue(detail.find(".cucd"),common.getValue(frm.find(".cucd")));
        common.setValue(detail.find(".cunm"),common.getValue(frm.find(".cunm")));
      }

    } else {
      $("#lastDetail").focus(); {*１行追加*}
    }
  } else {
    doHeaderEnable('D');
  }

  var detail = $("#detail .detail");

  for(i = 0 ; i < detail.length ; i++) {
    var $me = $(detail[i]);
    if($me.find(".cufhcls").val()=="-1") {
      $me.find(".cufhclschk").prop("checked",true);
    }


    $me.find(".datepicker").each(function (index) {
      common.setDatepickerInfo($(this));
    });

    $me.find("select").each(function(index) {
      var $selectVal = $(this);
      common.setValue($selectVal,common.getValue($me.find(".memo"+$selectVal.attr("name"))));
    });

    if(p_pgno == $("#lastpage").val()) { {*最終ページはreadonlyを外す*}
      $me.find(".cucd").prop("readonly",false);
      $me.find(".cmdCucd").removeClass("noevent");
      $me.find(".jan").prop("readonly",false);
      $me.find(".cmdJan").removeClass("noevent");
    }

    var ret_code;
    ret_code=CheckCutax($me.find(".cucd").val(),$me.find(".cutax").val());
    $me.find(".gdbcst").prop(ret_code,true);
    $me.find(".gdsal").prop(ret_code, true);
  }

  $("#detail .detail").first().find(".keycd").focus();
}

function CheckCutax(cucd, cutax){ {*nvl(cutax)='1'の場合、納入単価(税抜)・売価(税抜)はメンテナンス不可*}

  var retcutax;
  
  if(!stringUtil.isEmpty(cucd)) { {*cucd not null check*}
    if(stringUtil.isEmpty(cutax)) { {*cutax null check*}
      {*afm03.cutax取得*}
      var sendData = {};
      sendData["cucd"] = cucd;

      var ret_code;
      common.postData(
          "./Checkcutax.php"
        , sendData
        , function (data) {
          // 特殊処理があれば
          var obj = JSON.parse(data);
          retcutax = obj.retcutax;
        }
        , function (error) {
          alert(error.msg);
        }
      );
    }else{
      retcutax = cutax;
    }
  }

  if(retcutax == '1') {
      var ret_code='disabled';
  }else{
    var ret_code='enabled';
  }
  
  return ret_code;

}


function doHeaderEnable(pmode) { {*pmode:H Header有効・D 明細有効*}
  let h = $("#headerTop");
  let h1 = h.find(".header1");
  let h2 = h.find(".header2");
  let d = $("#detailTop");
  let m = $("#funcMenu");
  let mode = h.find(".mode").val();
  if (pmode == "H") { {*Header有効*}
    h.removeClass("noevent");
    d.addClass("noevent");
    $(".Func2").removeClass("noevent");
    $(".Func3").addClass("noevent");
    $(".Func4").addClass("noevent");
    $(".Func5").addClass("noevent");
    $(".Func6").addClass("noevent");
    $(".Func7").addClass("noevent");
    $(".Func8").addClass("noevent");
    $(".Func9").addClass("noevent");
    $(".Func12").removeClass("noevent");

    {*ヘッダー項目クリア*}
    h.find(".modelbl").removeClass("newLabel");
    {*ヘッダーフォーカス*}
    h.find(".keycd")[0].focus();
  } else {
    h.addClass("noevent");

    d.removeClass("noevent");
    $(".Func2").addClass("noevent");
    $(".Func3").removeClass("noevent");
    $(".Func4").removeClass("noevent");
    $(".Func5").removeClass("noevent");
    $(".Func6").removeClass("noevent");
    $(".Func7").removeClass("noevent");
    $(".Func8").removeClass("noevent");
    $(".Func9").removeClass("noevent");
    $(".Func12").removeClass("noevent");

    {*ヘッダー項目*}
    h.find(".modelbl").addClass("newLabel");
    {*データ部フォーカス*}
    d.find(".cucd")[0].focus();
  }
}

function clearHeader() {  {*headerクリア*}
  let frm = $("#headerTop");
  let container = frm.closest(".container");
  doHeaderEnable("H");
  common.clearInputData(container);
  $('[name=mode]').prop("selectedIndex", 0);
  $('[name=mode]').trigger("change");
  common.setValue(frm.find(".gstpflg"), "");
}

var init_data={
  vlin:'1',
};

function clearDetail() {
  common.clearAllError();
  $("#detail .detail").remove(); {*明細クリア*}
  $("#lastDetail").show();

  {*明細ヘッダー*}
  let frm = $("#headerTop");
  let mode = common.getValue(frm.find(".mode"));
  var detailHeader = $("#detailHeader");
  if(mode == '1') {
    detailHeader.find(".detailHeader1").show();
    detailHeader.find(".detailHeader2").hide();
  } else if(mode == '2') {
    detailHeader.find(".detailHeader1").hide();
    detailHeader.find(".detailHeader2").show();
  }
}

function setOneRow() {
  clearDetail();  {*一旦クリア*}
  {*明細に最初の一行追加*}
  var el = af90311x_detail.appendRow(init_data);
  $("#detail").append(el);
  var detail = $("#detail").find(".detail");
  detail.find(".datepicker").each(function (index) {
    common.setDatepickerInfo($(this));
  });
}

function chgDetail(pgno) {  {*明細表表示・非表示*}
  let wpgno = "pgno" + pgno;

  dsp_detail(pgno);

  if (common.getValue($("#pagecnt")) == common.getValue($("#lastpage"))) { {*次頁なし*}
    $("#funcMenu").find(".Func7").addClass("noevent");
  } else {
    $("#funcMenu").find(".Func7").removeClass("noevent");
  }
  if (common.getValue($("#pagecnt")) == "1") { {*前頁なし*}
    $("#funcMenu").find(".Func8").addClass("noevent");
  } else {
    $("#funcMenu").find(".Func8").removeClass("noevent");
  }
}
function dspDetail() { {*データ表示*}
  let frm = $("#headerTop");
  let detail = $("#detail").find(".detail");
console.log("1");
console.log("gstpflg:"+frm.find(".gstpflt"));
  clearDetail();  {*一旦クリア*}

  {*明細行配列クリア*}
  detail_data.splice(0);

  {if $header.ret == "0"}
    {*配列作成*}
    detail_data = {$dataList};

    {*行作成*}
    dsp_detail("1");

    doHeaderEnable("D")
    {*頁情報*}
    chgDetail("1");
  {else if $header.ret == "new"}

    doHeaderEnable("H")
    setOneRow();
    common.setValue($("#pagecnt"), "");
    common.setValue($("#lastpage"), "");
  {else if $header.ret == "1"}

    dsp_detail("1");
    doHeaderEnable("D")
    {*頁情報*}
    chgDetail("1");
    common.setValue($("#pagecnt"), "1");
    common.setValue($("#lastpage"), "1");
  {else}

    setOneRow();

    doHeaderEnable("H")

    {if $hasError eq true}
      alert("{$errorMsg}")
    {/if}
  {/if}
}

{*明細行用関数*}
var af90311x_detail = {
  appendRow: function (d) {
    let frm = $("#headerTop");
    let mode = common.getValue(frm.find(".mode"));
    var n = stringUtil.nvl;
    var row =
    ' <div class="col wp-100 detail"> ' +
    '<div class="col wp-100 rowinfo detailMain cucdGrp janGrp">' +
      {*1行目*}
    '  <div class="col wp-100"> ' +
    '    <input name="cucd" type="text" class="form-control input-sm item wd-100 cucd eventcucd popCucd" readonly maxlength="7" value="' + n(d.cucd) + '"> '+
    '    <input type="button" class="col popbtn cmdCucd noevent" tabindex="-1" value="?"/> '+
    '    <input name="cunm"type="text" class="form-control input-sm item wd-L cunm clear "  readonly value="' + n(d.cunm) + '"> '+
    '    <input name="jan" type="text" class="form-control input-sm item wd-jan jan eventjan popJan inpjan" readonly maxlength="13" value="' + n(d.jan) + '"> '+
    '    <input type="button" class="col popbtn cmdJan noevent" tabindex="-1" value="?"/> '+
    '    <input name="gdcls9nm" type="text" class="form-control input-sm item wd-kbn gdcls9nm center" readonly value="' + n(d.gdcls9nm) + '"> '+
    '    <input name="gdjnm" type="text" class="form-control input-sm item wd-50b gdjnm longnm"  readonly value="' + n(d.gdjnm) + '"> '+
    '    <div class="col " style="width:140px;">&nbsp;</div> ' +
    '    <input name="cufhclschk" type="checkbox" class="form-control item input-sm wd-kbn cufhclschk" value="1" tabindex="-1"/>' +
    '    <div class="col " style="width:40px;">&nbsp;</div> ' +
    '    <input name="chkLineDel"  type="checkbox" class="form-control item input-sm wd-kbn chkLineDel  " value="0" tabindex="-1"/> '+
    '  </div>' +
      {*2行目*}
    '  <div class="col wp-100 date calcGrp"> ' +
    '    <div class="col " style="width:102px;">&nbsp;</div> ' +
    '    <input name="gdbcst" type="text" class="form-control input-sm item wd-number number gdbcst calcbcst" maxlength="12" fixed="2" value="' + common.addFigure(n(d.gdbcst),'2') + '"> '+
    '    <input name="gdsal" type="text" class="form-control input-sm item wd-number number gdsal calcsal" maxlength="9" value="' + common.addFigure(n(d.gdsal)) + '"> '+
    '    <div class="col " style="width:25px;">&nbsp;</div> ' +
    '    <input name="gdbcst1" type="text" class="form-control input-sm item wd-090 number gdbcst1 calcbcst1" maxlength="12" fixed="2" value="' + common.addFigure(n(d.gdbcst1),'2') + '"> '+
    '    <input name="gdsal1" type="text" class="form-control input-sm item wd-080 number gdsal1 calcsal1" maxlength="9" value="' + common.addFigure(n(d.gdsal1)) + '"> '+
    '    <div class="col " style="width:11px;">&nbsp;</div> ' +
    '    <input name="gdspcst" type="text" class="form-control input-sm item wd-number number gdspcst" maxlength="12" fixed="2" value="' + common.addFigure(n(d.gdspcst),'2') + '"> '+
    '    <input name="gdspst" type="text" class="form-control input-sm item wd-date datepicker gdspst" maxlength="10" value="' + n(d.gdspst) + '"> '+
    '    <div class="col wd-020 ">&nbsp;～</div> ' +
    '    <input name="gdspen" type="text" class="form-control input-sm item wd-date datepicker gdspen" maxlength="10" value="' + n(d.gdspen) + '"> '+
    '    <div class="col " style="width:5px;">&nbsp;</div> ' +
    '    <input name="cugdde" type="text" class="form-control input-sm item wd-060  cugdde" maxlength="5" value="' + n(d.cugdde) + '"> '+
    '    <input name="gdstun" type="text" class="form-control input-sm item wd-S number gdstun" maxlength="5" value="' + common.addFigure(n(d.gdstun)) + '"> '+
    '    <select name="gdretcls" class="col form-control input-sm wd-select-SS gdretcls item clear"> '+
    '    <option value=""></option>' +
    '      {foreach from=$listGdretcls item=select name=select} '+
    '        <option value="{$select.cd}" >{$select.nm}</option> '+
    '      {/foreach} '+
    '    </select> '+
    '  </div>' +
      {*非表示項目*}
    '  <input name="rnum" type="hidden" class="rnum" value="' + n(d.rnum) + '"/>' +
    '  <input name="cufhcls" type="hidden" class="cufhcls" value="' + n(d.cufhcls) + '"/>' +
    '  <input name="cutax" type="hidden" class="cutax" value="' + n(d.cutax) + '"/>' +
    '  <input name="ijan" type="hidden" class="ijan" value="' + n(d.ijan) + '"/>' +
    '  <input name="gdcls9" type="hidden" class="gdcls9" value="' + n(d.gdcls9) + '"/>' +
    '  <input name="orgcucd" type="hidden" class="orgcucd keyItem forDeleteData" value="' + n(d.orgcucd) + '"/>' +
    '  <input name="orgijan" type="hidden" class="orgijan keyItem forDeleteData" value="' + n(d.orgijan) + '"/>' +
    '  <input name="orgjan" type="hidden" class="orgjan keyItem forDeleteData" value="' + n(d.orgjan) + '"/>' +
    '  <input name="orgcufhcls" type="hidden" class="orgcufhcls keyItem forDeleteData" value="' + n(d.orgcufhcls) + '"/>' +
    '  <input name="orggdbcst" type="hidden" class="orggdbcst keyItem forDeleteData" value="' + n(d.orggdbcst) + '"/>' +
    '  <input name="orggdsal" type="hidden" class="orggdsal keyItem forDeleteData" value="' + n(d.orggdsal) + '"/>' +
    '  <input name="orggdbcst1" type="hidden" class="orggdbcst1 keyItem forDeleteData" value="' + n(d.orggdbcst1) + '"/>' +
    '  <input name="orggdsal1" type="hidden" class="orggdsal1 keyItem forDeleteData" value="' + n(d.orggdsal1) + '"/>' +
    '  <input name="orggdspcst" type="hidden" class="orggdspcst keyItem forDeleteData" value="' + n(d.orggdspcst) + '"/>' +
    '  <input name="orggdspst" type="hidden" class="orggdspst keyItem forDeleteData" value="' + n(d.orggdspst) + '"/>' +
    '  <input name="orggdspen" type="hidden" class="orggdspen keyItem forDeleteData" value="' + n(d.orggdspen) + '"/>' +
    '  <input name="orgcugdde" type="hidden" class="orgcugdde keyItem forDeleteData" value="' + n(d.orgcugdde) + '"/>' +
    '  <input name="orggdstun" type="hidden" class="orggdstun keyItem forDeleteData" value="' + n(d.orggdstun) + '"/>' +
    '  <input name="orggdretcls" type="hidden" class="orggdretcls keyItem forDeleteData" value="' + n(d.orggdretcls) + '"/>' +
    '  <input name="chkLineDelval" type="hidden" class="chkLineDelval" value=""/>' +
    '<hr>' +
    '</div>' +
    ' </div> ';


    return row;
  },
}


{*-- ここまでjsでのデータ表示用 ---------------------------------------------------*}

  function get_tanka(detail) {
    let ijan = common.getValue(detail.find(".ijan"));
    let gdbcst = common.getValue(detail.find(".gdbcst"));
    let gdsal = common.getValue(detail.find(".gdsal"));

    if(!stringUtil.isEmpty(ijan)
    && stringUtil.isEmpty(gdbcst) && stringUtil.isEmpty(gdsal)) {

      var sendData = {};
      sendData["ijan"] = ijan;

      common.postData(
          "./getTanka.php"
        , sendData
        , function (data, options) {
          // 特殊処理があれば
            var obj = JSON.parse(data);
            common.setValue(detail.find(".gdbcst"),obj.gdbcst);
            common.setValue(detail.find(".gdsal"),obj.gdsal);
          }
        , function (error) {
          alert(error.msg);
        }
      );     

    }
  }


  function setNewLineData($me) {
    let frm = $("#headerTop");
    let mode = common.getValue(frm.find(".mode"));
    let detail = $me.closest(".contents").find(".detail.selectRow");

    detail.find(".datepicker").each(function (index) {
      common.setDatepickerInfo($(this));
    });
    detail.find(".popbtn").each(function (index) {
      common.setValue($(this),"?");
    });

    if(!stringUtil.isEmpty(common.getValue(frm.find(".cucd")))) {
      common.setValue(detail.find(".cucd"),common.getValue(frm.find(".cucd")));
      common.setValue(detail.find(".cunm"),common.getValue(frm.find(".cunm")));
    }

    detail.find(".cucd").prop("readonly",false);
    detail.find(".cmdCucd").removeClass("noevent");
    detail.find(".jan").prop("readonly",false);
    detail.find(".cmdJan").removeClass("noevent");
    detail.find(".cucd").focus();
  }


  $(document).ready(function(){
    /* 明細 高さ 自動設定
    //===================================================================*/
    common.setDetailHeight( $("#detail") );

    common.removeLoading();
    dspDetail();  {*明細表示*}

    /* イベント
    //===================================================================*/
    //　F1
    $(document).on("click", ".Func1:not('.noevent')", function(e) {
    });
    //　F2
    $(document).on("click", ".Func2:not('.noevent')", function(e) {
      let frm = $("#headerTop");
      $(".btn-search-before").trigger("click");
    });
    //　F3 行挿入
    $(document).on("click", ".Func3:not('.noevent')", function(e) {
      if($("#pagecnt").val() == $("#lastpage").val()) { {*最終ページ(新規用ページ)なら、行インサート*}
        $(".btnLineIns").trigger("click");
      } else { {*最終ページ(新規用ページ)でないなら、最終ページ(新規用ページ)にとぶ*}
        if(setArrayData($("#pagecnt").val())) { {*現在ページの変更を配列に記憶*}
          common.setValue($("#pagecnt"),$("#lastpage").val()); 
          chgDetail($("#lastpage").val());
        } else {
          alert("エラーがあります");
        }
      }
    });
    //　F4 行削除
    $(document).on("click", ".Func4:not('.noevent')", function(e) {
      $(".btn-del").trigger("click");
    });
    //　F5 クリア
    $(document).on("click", ".Func5:not('.noevent')", function(e) {
        clearHeader();
        setOneRow();
    });
    //　F6
    $(document).on("click", ".Func6:not('.noevent')", function(e) {
      {* 現在選択している行の単価を取得 *}
      var selDetail = $("#detail .detail");
      if(selDetail.length==0) {
        alert("単価を取得するデータを選択して下さい。");
        return false;
      }
      let detail = $(this).closest(".contents").find(".detail.selectRow");
      get_tanka(detail);
    });
    //　F7 次頁
    $(document).on("click", ".Func7:not('.noevent')", function(e) {
      if(setArrayData($("#pagecnt").val())) { {*現在ページの変更を配列に記憶*}
        let pgcnt = 0;
        if (stringUtil.isEmpty(common.getValue($("#pagecnt")))) {
          pgcnt = 1;
        } else {
          pgcnt = Number(common.getValue($("#pagecnt"))) + 1;
        }
        common.setValue($("#pagecnt"),pgcnt); //最初は1ページ
        chgDetail(String(pgcnt));
      } else {
        alert("エラーがあります");
      }      
    });
    //　F8 前頁
    $(document).on("click", ".Func8:not('.noevent')", function(e) {
      if(setArrayData($("#pagecnt").val())) { {*現在ページの変更を配列に記憶*}
        let pgcnt = 0;
        if (stringUtil.isEmpty(common.getValue($("#pagecnt")))) {
          pgcnt = 1;
        } else {
          pgcnt = Number(common.getValue($("#pagecnt"))) - 1;
        }
        common.setValue($("#pagecnt"),pgcnt); {*最初は1ページ*}
        chgDetail(String(pgcnt));
      } else {
        alert("エラーがあります");
      }  

    });
    //　F9 登録/実行
    $(document).on("click", ".Func9:not('.noevent')", function(e) {
      $(".btn-reg-before").trigger("click");
    });
    //　F10 Excel
    $(document).on("click", ".Func10:not('.noevent')", function(e) {
      $(".popup-af0311m").trigger("click");
    });
    //　F11 表示
    $(document).on("click", ".Func11:not('.noevent')", function(e) {
    });
    //　F12 メニュー/戻る
    $(document).on("click", ".Func12:not('.noevent')", function(e) {
      $('.btn-close').trigger('click');
    });

    //画面初期表示時動作

    //MENUボタン===============================
    $(document).on("regSuccess", ".btn-reg-before", function(e,options){
      setOneRow();
      clearHeader();
      alert("登録しました");
    });

    $(document).on("click", ".btn-search-before", function(e) {
      $(".Func2").addClass("noevent");

      var errflg = false;
      var frmh = $(this).closest(".contents").find(".header");
      var mode = common.getValue(frmh.find(".mode"));
      common.clearFormError(frmh);

      if(stringUtil.isEmpty(frmh.find(".hcucd").val())
      && (stringUtil.isEmpty(frmh.find(".sjan").val()) || stringUtil.isEmpty(frmh.find(".ejan").val()))
      && stringUtil.isEmpty(frmh.find(".brand").val())) {
        errflg = true;
        common.addError(frmh.find(".hcucd"), "何れかを入力して下さい", null, true);
        common.addError(frmh.find(".sjan"), "何れかを入力して下さい", null, true);
        common.addError(frmh.find(".ejan"), "何れかを入力して下さい", null, true);
        common.addError(frmh.find(".brand"), "何れかを入力して下さい", null, true);
      }
      if(!stringUtil.isEmpty(frmh.find(".sjan").val()) && !stringUtil.isEmpty(frmh.find(".ejan").val())) {
        if(frmh.find(".sjan").val() > frmh.find(".ejan").val()) {
          errflg = true;
          common.addError(frmh.find(".sjan"), "正しい範囲を入力してください。", null, true);
          common.addError(frmh.find(".ejan"), "正しい範囲を入力してください。", null, true);
        }
      }

      if (errflg) {
        $(".Func2").removeClass("noevent");
        alert('エラーがあります');
      } else {
//        dspDetail();
        common.dispLoading();
        $("#pagecnt").val("1");
        $(".btn-search").trigger("click");
      }
    });

    $(document).on("click", ".btn-reg-before", function(e) {
      var detail = $("#detail .detail");
      var frmh = $(this).closest(".contents").find(".header");
      var mode = common.getValue(frmh.find(".mode"));
      var errflg = false;
      var wret;


      if(setArrayData($("#pagecnt").val())) { {*現在ページの変更を配列に記憶 ついでに必須チェックも行っている。*}
      
      
        var chk_array = detail_data.concat(new_data); {*チェック用配列として、元データ配列と新規データ配列を結合*}
        for(i = 0 ; i < chk_array.length ; i++) {
          if(errflg) {
            return false;
          }

          var joken1 = chk_array[i]["cucd"];
          var joken2 = chk_array[i]["ijan"];

          for(j = i+1 ; j < chk_array.length ; j++) {
            if(errflg) {
              return false;
            }
            var joken1_2 = chk_array[j]["cucd"];
            var joken2_2 = chk_array[j]["ijan"];

            if(i != j && joken1==joken1_2 && joken2==joken2_2) {
              errflg = true;
              //console.log("pgno:"+chk_array[j]["pgno"]);
              
              common.setValue($("#pagecnt"),chk_array[j]["pgno"]); //最初は1ページ
              chgDetail(chk_array[j]["pgno"]);

              var detail = $("#detail .detail");

              {*重複部分にフォーカス*}
              detail.each(function(e) {
                var $me = $(this);
                if($me.find(".cucd").val() == chk_array[j]["cucd"]
                && $me.find(".ijan").val() == chk_array[j]["ijan"] ) {
                  $me.find(".cucd").focus();
                  alert("重複しています");
                }
              });
            }
          }
        }

        if(!errflg) {

          var headerData = [];
          var f = common.getInputData(frmh);
          headerData.push(encodeJson(f));

          var sendData = {};
          sendData["header"] = headerData;
          sendData["data"] = chk_array;

          common.postData(
              "./chkRegBefore.php"
            , sendData
            , function (data) {
              // 特殊処理があれば
              var obj = JSON.parse(data);
              var ret = obj.ret;
              if(ret != '0') {
                alert("既に登録済みの得意先商品マスタがあります");
                let header = $("form.header");
                var form = header.closest(".container").find("form.body");
                var forms = form.find(".detail");
                var formData = [];

                common.setValue($("#pagecnt"),obj.pgno);
                chgDetail(obj.pgno);

                var detail = $("#detail .detail");
                {*重複部分にフォーカス*}
                detail.each(function(e) {
                  var $me = $(this);
                  if($me.find(".cucd").val() == obj.duplicucd
                  && $me.find(".ijan").val() == obj.dupliijan) {
                    $me.find(".cucd").focus();
                  }
                });

              } else {
                if(window.confirm("登録します。よろしいですか？")) {
                  var headerData = [];
                  var f = common.getInputData(frmh);
                  headerData.push(encodeJson(f));

                  var sendData = {};
                  sendData["header"] = headerData;
                  sendData["data"] = chk_array;

                  var me = $(this);
                  var errorFunc = $(this).attr("errorFunc");

                  setComplianceData("reg", sendData);

                  common.postData(
                    "./update.php"
                    , sendData
                    , function (data, options) {
                      $(".btn-reg-before").trigger("regSuccess", [data, options]);
                    }
                    , function (error, options) {
                      alert("登録に失敗しました[" + error.msg + "]");
                      $(".btn-reg-before").trigger("regError", [error, options]);
                    }
                  );
                }
              }
            }
            , function (error) {
              alert(error.msg);
            }
          );

        } else {
        }
      } else {
        alert("エラーがあります");
      }


    });
    $(document).on("focus", ".header .dummy", function(e) {
      $("#topmenu").find(".Func2").focus();
    });
    $(document).on("focus", ".dummy2", function(e) {
      $("#topmenu").find(".Func7").focus();
      //$("#topmenu").find(".Func8").focus();
    });

    //=== header ===
    $(document).on("change",".hcucd,.sjan,.ejan,.brand,.gstpflg", function(e) {
      common.clearFormError($("#headerTop"));
    });

    $(document).on("change",".gstpflg", function(e) {
      var frmh = $(this).closest(".contents").find(".header");
      if(frmh.find(".gstpflg").prop("checked")){
        var chkval = '1' ;
      }else{
        var chkval = '0' ;
      }
      common.setValue(frmh.find(".chkval"),chkval);
    });

    //=== body ===

    function calcPrice($me) {
      let mode = "";
      if($me.hasClass("cucd")) {
        mode = "both";
      } else if($me.hasClass("calcbcst1")) {
        mode = "gdbcst";
      } else if($me.hasClass("calcsal1")) {
        mode = "gdsal";
      }
      var detail = $me.closest(".detail");

      var sendData = {};
      sendData["cucd"] = detail.find(".cucd").val();
      sendData["ijan"] = detail.find(".ijan").val();
      sendData["gdbcst1"] = detail.find(".gdbcst1").val();
      sendData["gdsal1"] = detail.find(".gdsal1").val();

      common.postData(
          "./calcPrice.php"
        , sendData
        , function (data, options) {
          // 特殊処理があれば
            var obj = JSON.parse(data);

            if(!stringUtil.isEmpty(detail.find(".gdbcst1").val())) {
              common.setValue(detail.find(".gdbcst"),common.addFigure(obj.gdbcst,'2'));
            }
            if(!stringUtil.isEmpty(detail.find(".gdsal1").val())) {
              common.setValue(detail.find(".gdsal"),common.addFigure(obj.gdsal));
            }
            detail.find(".gdbcst").trigger("change");
          }
        , function (error) {
          alert(error.msg);
        }
      );      

    }

    $(document).on("change", ".gdbcst1", function(e) {
      var me = $(this);
      var detail = me.closest(".detail");
      if(!stringUtil.isEmpty(detail.find(".gdbcst1").val())){
        calcPrice($(this));
      }
    });

    $(document).on("change", ".gdsal1", function(e) {
      var me = $(this);
      var detail = me.closest(".detail");
      if(!stringUtil.isEmpty(detail.find(".gdsal1").val())){
        calcPrice($(this));
      }
    });

    $(document).on("change", "#detailTop .cucd", function(e) {
      var ret_code;
      var me = $(this);
      var detail = me.closest(".detail");
      ret_code=CheckCutax(detail.find(".cucd").val(),null);
      detail.find(".gdbcst").prop(ret_code,true);
      detail.find(".gdsal").prop(ret_code, true);
    });

    $(document).on("afterChangeCucd", "#detailTop .cucd", function(e) {
      var ret_code;
      var me = $(this);
      var detail = me.closest(".detail");
      ret_code=CheckCutax(detail.find(".cucd").val(),null);
      detail.find(".gdbcst").prop(ret_code,true);
      detail.find(".gdsal").prop(ret_code, true);
    });

    $(document).on("afterSelectAfm03x", "#detailTop .cucd", function(e) {
      var ret_code;
      var me = $(this);
      var detail = me.closest(".detail");
      ret_code=CheckCutax(detail.find(".cucd").val(),null);
      detail.find(".gdbcst").prop(ret_code,true);
      detail.find(".gdsal").prop(ret_code, true);
    });
    
    $(document).on("afterChangeJan", "#detailTop .jan", function(e) {
      var me = $(this);
      var detail = me.closest(".detail");
      if(!stringUtil.isEmpty($(this).val())) {
        if(detail.find(".jan").val() != detail.find(".orgjan").val()){
          if((detail.find(".gdcls9nm").val().indexOf('X') != -1) || (detail.find(".gdcls9nm").val().indexOf('#') != -1)){
            detail.find(".cufhclschk").prop("checked",true);
          }else{
            detail.find(".cufhclschk").prop("checked",false);
          }
        }
      }
    });

    $(document).on("afterSelectAfm02x", "#detail .jan", function(e) {
      var me = $(this);
      var detail = me.closest(".detail");
      if(!stringUtil.isEmpty($(this).val())) {
        if(detail.find(".jan").val() != detail.find(".orgjan").val()){
          if((detail.find(".gdcls9nm").val().indexOf('X') != -1) || (detail.find(".gdcls9nm").val().indexOf('#') != -1)){
            detail.find(".cufhclschk").prop("checked",true);
          }else{
            detail.find(".cufhclschk").prop("checked",false);
          }
        }
      }
    });



    //====明細行動作======
    $(document).on("change", ".cufhclschk", function(e) { {*選択動作 チェックをcufhclsに覚える*}
      var me = $(this);
      var detail = me.closest(".detail");
      var cufhcls;

      if(me.prop("checked")) {
        cufhcls = '-1'
      } else {
        cufhcls = '0'
      }
      common.setValue(detail.find(".cufhcls"),cufhcls);
    });
    $(document).on("change", ".chkLineDel", function(e) {
      var me = $(this);
      var detail = me.closest(".detail");
      var chkLineDel;
      
      if(me.prop("checked")) {
        chkLineDel = '-1'
      } else {
        chkLineDel = '0'
      }
      common.setValue(detail.find(".chkLineDelval"),chkLineDel);
    });

    $(document).on("insertLine", ".selectRow", function(e) {
      setNewLineData($(this));
    });
    $("#lastDetail").focus(function(){
      var details = $("#detailTop .detail:last")[0];
      if(!!!details){
        return true;
      }

       if($("#pagecnt").val() != $("#lastpage").val()) {
        $("#topmenu").find(".Func7").focus();
        //$("#topmenu").find(".Func8").focus();
        return false;
      }

      var newRow = commonLine.insertDetail(details);
      common.setDetailHeight();
      $(newRow).find(":enabled")[0].focus();
      $(window).scrollTop($(newRow).parent().offset().top);
      setNewLineData($(newRow));
    });


    //=== footer ===


  });

</script>
