// MODULE TRA CUU HOP DONG
$(document).ready(function() {
    var errorColor = "#F3565D";
    var normalColor = "#ccc";
    // check thay doi ma so thue nguoi mua tracuu
    $("#contractTaxCode").change(function() {
        var contractTaxCode = $("#contractTaxCode").val();
        if (contractTaxCode.length > 0) {
            if (checkMST(contractTaxCode)) {
                $(this).css("border-color", normalColor);
                $("#invalidContractTaxCode").hide();
            } else {
                $(this).css("border-color", errorColor);
                $("#invalidContractTaxCode").show();
            }
        } else {
            $("#invalidContractTaxCode").hide();
        }
    });

    // check thay doi so hop dong tracuu
    $("#contractCode").change(function() {
        var contractCode = $("#contractCode").val();
        if (contractCode.length > 0) {
            $(this).css("border-color", normalColor);
            $("#invalidNumberCode").hide();
        } else {
            $("#invalidNumberCode").hide();
        }
    });

    // check thay doi so hop dong tracuu
    $("#tc_code").change(function() {
        var ma_bao_mat = $("#tc_code").val();
        if (ma_bao_mat.length > 0) {
            $(this).css("border-color", normalColor);
            $("#invalidMaBaoMat").hide();
        } else {
            $("#invalidMaBaoMat").hide();
        }
    });

    // tra cuu hoa don click button 
    $('#btnContractCode').click(function() {
        var data = $("#formSearch")
            .serializeArray()
            .reduce(function(obj, item) {
                obj[item.name] = item.value;
                return obj;
            }, {});
        var contractTaxCode = $("#contractTaxCode").val();
        var contractCode = $('#contractCode').val();
        var tc_code = $("#tc_code").val();
        if (contractTaxCode.length === 0 || !checkMST(contractTaxCode)) {
            $("#contractTaxCode").focus();
            $("#contractTaxCode").css('border-color', errorColor);
        } else if (contractCode.length === 0) {
            $("#contractCode").focus();
            $("#contractCode").css('border-color', errorColor);
        } else if (tc_code.length === 0) {
            $("#tc_code").focus();
            $("#tc_code").css('border-color', errorColor);
        }
        else {
            // Get thong tin hop dong
            var iframe = document.querySelectorAll('iframe')[0];

            $.get('http://192.168.0.198:8090/Front/CheckSoHopDong?ma_so_thue=' + contractTaxCode + '&so_hop_dong=' + contractCode + '&ma_bao_mat=' + tc_code)
                .success(data => {
                    if (data && data.ok) {
                        $("#errorTraCuu").hide();
                        $("#hopdong_id").val(data.ok);
                        var xhr = new XMLHttpRequest;
                        xhr.open('get', 'http://192.168.0.198:8090/Front/TraCuuHopDong?ma_so_thue=' + contractTaxCode + '&so_hop_dong=' + contractCode + '&ma_bao_mat=' + tc_code, true);
                        xhr.responseType = 'arraybuffer';
                        xhr.addEventListener('load', function() {
                            if (xhr.status === 200) {
                                var blob = new Blob([xhr.response], {type: 'application/pdf'});
                                var url = URL.createObjectURL(blob);
                                iframe.onload = function(e) {
                                };
                                iframe.src = url;
                                iframe.hidden = false;
                                $('#btnContractCodeFinish').click();
                            }
                        })

                        xhr.send();
                    } else {
                        $("#errorTraCuu").html(data.error);
                        $("#errorTraCuu").show();
                    }
                })
        }
    })

    // validate mã số thuế
    function checkMST(mst) {
        // Nếu không đủ 10 số return false
        if (!mst || (mst && mst.length !== 10 && mst.length !== 14)) {
            return false;
        }

        // Kiểm tra logic
        let mst_check =
            parseInt(mst[0] * 31) +
            parseInt(mst[1] * 29) +
            parseInt(mst[2] * 23) +
            parseInt(mst[3] * 19) +
            parseInt(mst[4] * 17) +
            parseInt(mst[5] * 13) +
            parseInt(mst[6] * 7) +
            parseInt(mst[7] * 5) +
            parseInt(mst[8] * 3);

        if (10 - (mst_check % 11) === parseInt(mst[9])) {
            return true;
        } else {
            return false;
        }
    }
});
