$(document).ready(function () {
    $("body").on("blur", ".barcode", itemModalShow);
    $(".iTbody").on("click", ".itemTr", addTrVal);
    $(".itemModal").on("blur keyup", ".isearch", getItemData);
    $(".itemModal").on("change", ".isortBy, iorderAS", getItemData);
    $(".inoRecord").hide();

    window.addEventListener('keydown', function (e) {
        if (e.keyIdentifier == 'U+000A' || e.keyIdentifier == 'Enter' || e.keyCode == 13) {
            if (e.target.nodeName == 'INPUT' && e.target.type == 'text' && e.target.className == "iname") {
                addTrVal(e);
            }
        }
    }, true);

    function itemModalShow() {
        var tr = $(this).closest("tr"),
                srno = tr.find(".srno").val(),
                party = $(".cmbparty").val(),
                source = $("#source").val(),
                file = $(".file").val(),
                margin = srno * 1,
                barcode = tr.find(".barcode").val(),
                itemcode = tr.find(".itemcode").val();
//        $(".modal-content").css("margin-top", margin + "%")

        if (barcode == "") {
            $(".itemname").removeClass("dataItemname");
            $(".barcode").removeClass("dataBarcode");
            $(".itemcode").removeClass("dataItemcode");
            $(".rate").removeClass("dataRate");
            $(".cartqty").removeClass("dataCartQty");
            $(".qty").removeClass("dataQty");
            $(".hsncode").removeClass("dataHsncode");
            $(".gstperc").removeClass("dataGstperc");
            $(".mrp").removeClass("dataMrp");
            $(".stkqty").removeClass("dataStk");
            $(".batch").removeClass("dataBatch");

            tr.find(".stkqty").addClass("dataStk");
            tr.find(".itemname").addClass("dataItemname");
            tr.find(".barcode").addClass("dataBarcode");
            tr.find(".itemcode").addClass("dataItemcode");
            tr.find(".gram").addClass("dataGram");
            tr.find(".unit").addClass("dataUnit");
            tr.find(".rate").addClass("dataRate");
            tr.find(".cartqty").addClass("dataCartQty");
            tr.find(".qty").addClass("dataQty");
            tr.find(".hsncode").addClass("dataHsncode");
            tr.find(".mrp").addClass("dataMrp");
            tr.find(".gstperc").addClass("dataGstperc");
            tr.find(".batch").addClass("dataBatch");
            $(".itemModal").modal("show");
            getItemData();
        } else {
            $.ajax({
                type: "POST",
                datatype: "json",
                url: "search_ibarcode.php",
                data: {barcode: barcode, itemcode: itemcode, party: party, file: file},
                success: function (response) {
                    var m = response;

                    tr.find(".itemname").val(m.name);
                    tr.find(".barcode").val(m.barcode);
                    tr.find(".itemcode").val(m.itemcode);
                    tr.find(".gram").val(m.gram);
                    tr.find(".unit").val(m.unit).trigger("change");
                    tr.find(".hsncode").val(m.hsncode);
                    tr.find(".mrp").val(m.mrp);
                    tr.find(".cost").val(m.cost);
                    tr.find(".rate").val(m.rate);
                    tr.find(".gstperc").val(m.gstperc);
                    tr.find(".cartqty").val(m.cartqty);
                    tr.find(".stkqty").val(m.stkqty);
                    // if (source != "PU" || source != "IN" || source != "SR") {
                    //    tr.find(".batch").val(m.batch);
                    // }

//                    debugger
                    var rate = tr.find(".rate").val();
                    var cost = tr.find(".cost").val();
                    var mrp = tr.find(".mrp").val();
                    if (rate != 0) {
                        tr.find(".rate").val(rate);
                    } else {
                        tr.find(".rate").val(m.rate);
                    }
                    if (cost != 0) {
                        tr.find(".cost").val(cost);
                    } else {
                        tr.find(".cost").val(m.cost);
                    }
                    if (mrp != 0) {
                        tr.find(".mrp").val(mrp);
                    } else {
                        tr.find(".mrp").val(m.mrp);
                    }

                    tr.find(".qty").focus();
                    tr.find(".qty").select();

                },
                error: function (request, textStatus, errorThrown) {

                }
            });
        }
    }

    $(".itemModal").on('shown.bs.modal', function () {
        $(".isearch").focus();
        $(".isearch").val("");
        $(".ifield").val("1");
        getItemData();
    });

    $(".itemModal").on('hidden.bs.modal', function () {
        $(".dataQty").focus();
//        $(".qty").focus();
        $(".dataQty").select();
    });

    var imrangeFrom = 0,
            imrangeTo = 40;

    function getItemData(pagination) {

        $(".iloader").show();

        if (pagination == 'prev') {
            if (imrangeFrom > 0) {
                imrangeFrom = (imrangeFrom - 40);
                imrangeTo = (imrangeTo - 40);
            }
        }
        if (pagination == 'next') {
            imrangeFrom = (imrangeFrom + 40);
            imrangeTo = (imrangeTo + 40);
        }

        var vouchno = $(".vouchno").val(),
                file = $(".file").val(),
                isearch = $(".isearch").val(),
                ifield = $(".ifield").val(),
                ioperator = $(".ioperator").val(),
                sortBy = $(".isortBy").val(),
                orderAs = $(".iorderBy").val(),
                party = $(".cmbparty").val(),
                data = {isearch: isearch, ifield: ifield, ioperator: ioperator, sortBy: sortBy, orderAs: orderAs,
                    vouchno: vouchno, file: file, rangeFrom: imrangeFrom, rangeTo: imrangeTo, party: party},
                values = "";
        $.ajax({
            type: 'GET',
            dataType: 'json',
            url: "search_item.php",
            data: data,
            success: function (response) {
                $.each(response, function () {
                    values += "<tr class='itemTr'>" +
//                            "<td align='left'><input type='text' class='itemcode' value='" + this.itemcode + "' readonly style='width:100%'tabindex='-1'></td>" +
                            "<td align='left'><input type='text' class='ibarcode' value='" + this.barcode + "' readonly style='width:100%'tabindex='-1'></td>" +
                            "<td align='left'><input type='text' class='iname' value='" + this.name + "' readonly style='width:100%'></td>" +
                            "<td align='left' style='"+this.bgcolr+"'><input type='text' class='istk' value='" + this.stk + "' readonly style='width:100%'tabindex='-1'></td>" +
                            "<td align='left'><input type='text' class='icost' value='" + this.cost + "' readonly style='width:100%'></td>" +
                            "<td align='left'><input type='text' class='irate' value='" + this.rate + "' readonly style='width:100%'></td>" +
//                            "<td align='left'><input type='text' class='igram' value='" + this.gram + "' readonly style='width:100%'tabindex='-1'></td>" +
//                             <input type='hidden' class='ihsncode' value='" + this.hsncode + "'  style='width:100%'tabindex='-1'>\n\
//                            "<td align='left'>
//                             <input type='hidden' class='imrp' value='" + this.mrp + "'  style='width:100%'tabindex='-1'>\n\
//                             <input type='hidden' class='igstperc' value='" + this.gstperc + "' readonly style='width:100%'tabindex='-1'></td>" +
                            "<td align='left'><input type='text' class='imrp' value='" + this.mrp + "' readonly style='width:100%'tabindex='-1'>" +
                            "<input type='hidden' class='ibatch' value='" + this.batch + "' readonly style='width:100%'tabindex='-1'>" +
                            "<input type='hidden' class='iunit' value='" + this.unit + "' readonly style='width:100%'tabindex='-1'>" +
                            "<input type='hidden' class='icartqty' value='" + this.cartqty + "'  style='width:100%'tabindex='-1'></td>" +
                            "</tr>";
                });
                $(".iloader").hide();
                $(".iTbody").empty();
                $(".iTbody").html(values);
                if (response) {
                    $(".search-action-bar").show();
                }
            },
            error: function (request, textStatus, errorThrown) {

            }
        });
    }
    $(".iload").click(function () {
        getItemData();
    });
//    $(".isearch").change(function () {
//        getItemData();
//    });
    $(".iprevious").click(function () {
        getItemData('prev');
    });
    $(".inext").click(function () {
        getItemData('next');
    });

    function addTrVal(e) {
        var source = $('.source').val();
        var tr = "";
        if (e == "undefined") {
            tr = $(this).closest("tr");
        } else {
            tr = $(e.target).closest("tr");
        }

        var iname = tr.find(".iname").val(),
                ibarcode = tr.find(".ibarcode").val(),
                itemcode = tr.find(".itemcode").val(),
                igram = tr.find(".igram").val(),
                iunit = tr.find(".iunit").val(),
                ihsncode = tr.find(".ihsncode").val(),
                igstperc = tr.find(".igstperc").val(),
                imrp = tr.find(".imrp").val(),
                icartqty = tr.find(".icartqty").val(),
                istk = tr.find(".istk").val(),
                irate = tr.find(".irate").val();
                // if (source != "PU" || source != "IN" || source != "SR") {
                        // ibatch = tr.find(".ibatch").val();
                    // }



        $(".dataItemname").val(iname);
        $(".dataBarcode").val(ibarcode);
        $(".dataItemcode").val(itemcode);
        $(".dataGram").val(igram);
        $(".dataUnit").val(iunit).trigger("change");
        $(".dataHsncode").val(ihsncode);
        $(".dataGstperc").val(igstperc);
        $(".dataMrp").val(imrp);
        $(".dataRate").val(irate);
        // if (source != "PU" || source != "IN" || source != "SR") {
                        // $(".dataBatch").val(ibatch);
                    // }
        $(".dataStk").val(istk);
        $(".dataCartQty").val(icartqty);


        $(".dataItemname").removeClass('dataItemname');
        $(".dataBarcode").removeClass('dataBarcode');
        $(".dataItem").removeClass('dataItem');
        $(".dataGram").removeClass("dataGram");
        $(".dataUnit").removeClass("dataUnit");
        $(".dataHsncode").removeClass("dataHsncode");
        $(".dataGstperc").removeClass("dataGstperc");
        $(".dataMrp").removeClass("dataMrp");
        $(".dataRate").removeClass("dataRate");
        $(".dataCartQty").removeClass("dataCartQty");
        $(".dataStk").removeClass("dataStk");
        // if (source != "PU" || source != "IN" || source != "SR") {
                        // $(".dataBatch").removeClass("dataBatch");
                    // }

        $(".itemModal").modal("hide");
//        $(".dataQty").focus();
        $(".cartqty").focus();

    }


    $(".rate").focus(function () {
        $(".dataQty").removeClass("dataQty");
    });
});