JS Biểu phí FPTS - PhucVM2019/frontEnd GitHub Wiki

//2019-07-22 15:35:38 PhucVM
function $$(id) { return document.getElementById(id); }

(function () {
    selfSearch = this;

    const ID_TODATE = '#TODate';
    const ID_FROME_DATE = '#FromeDate';
    const ID_PLUS = '#IDTang';
    const ID_INPUTDATE = '#qty';
    const ID_MINUS = '#minus';
    const ID_TODATETS = '#FromeDateMonthTS';
    const ID_TODATEDT = '#FromeDateMonthDT';
    const ID_TOMONTHTS = '#TODateMonthTS';
    const ID_FROMMONTHDT = '#TODateMonthDT';
    const ID_FROMWEEK = '#FromeDateWeek';
    const ID_FORMMONTH = '#FromeDateMonth';
    const ID_TODATEWEEK = '#TODateWeek';
    const COS_GIA_NGAY = '#PriceDaiLy';
    var DateNow = new Date();
    var g_TimeHouse = DateNow.getHours();


    //2019-08-01 14:05:38 PhucVM
    //Begin js Modal biểu phí dịch vụ tính phí theo ngày.
    function formatDate(day) {
        var today = new Date(day);
        var dd = today.getDate();
        var mm = today.getMonth() + 1;
        var yyyy = today.getFullYear();

        if (dd < 10) {
            dd = '0' + dd;
        }
        if (mm < 10) {
            mm = '0' + mm;
        }
        today = dd + '/' + mm + '/' + yyyy;

        return today;
    }

    function mmddyyyy(day) {
        var day = day.split('/');
        var dd = day[0];
        var mm = day[1];
        var yyyy = day[2];
        var mmddyyyy = mm + "/" + dd + "/" + yyyy;

        return mmddyyyy;
    }

    // format date TODate
    function DateClick() {
        //ngày
        if ($(ID_TODATE) != null) {
            $(ID_TODATE).datepicker({
                dateFormat: 'dd/mm/yy',
                changeMonth: true,
                changeYear: true,
                yearRange: 'c:c+20',
            });
        }

        if ($(ID_TOMONTHTS) != null) {
            $(ID_TOMONTHTS).datepicker({
                dateFormat: 'dd/mm/yy',
                changeMonth: true,
                changeYear: true,
                yearRange: 'c:c+20',
            });

        }

        if ($(ID_FROMMONTHDT) != null) {
            $(ID_FROMMONTHDT).datepicker({
                dateFormat: 'dd/mm/yy',
                changeMonth: true,
                changeYear: true,
                yearRange: 'c:c+20',
            });
        }

        //ngày
        if ($('#FromeDate') != null) {
            $('#FromeDate').datepicker({
                dateFormat: 'dd/mm/yy',
                changeMonth: true,
                changeYear: false,

            });
        }

        if ($('#FromeDateMonth') != null) {
            $('#FromeDateMonth').datepicker({
                dateFormat: 'dd/mm/yy',
                changeMonth: true,
                changeYear: false,
            });
        }

        if ($('#FromeDateMonthTS') != null) {
            $('#FromeDateMonthTS').datepicker({
                dateFormat: 'dd/mm/yy',
                changeMonth: true,
                changeYear: false,
            });
        }

        if ($('#FromeDateMonthDT') != null) {
            $('#FromeDateMonthDT').datepicker({
                dateFormat: 'dd/mm/yy',
                changeMonth: true,
                changeYear: false,
            });
        }
    }

    function JqueryUIWeek() {
        //tuần
        if ($('#FromeDateWeek') != null) {
            $('#FromeDateWeek').datepicker({
                dateFormat: 'dd/mm/yy',
                changeMonth: true,
                changeYear: false,
            });
        }
    }

    //lấy ngày hiện tại fromdate
    function FromeDateShow() {
        if ($(ID_FROMWEEK) != null) {
            $(ID_FROMWEEK).val(formatDate(new Date()));
        }

        if ($(ID_FORMMONTH) != null) {
            $(ID_FORMMONTH).val(formatDate(new Date()));
        }
    }

    function populateHidden(dateText) {
        var pieces = dateText.split("/");
        var dd = parseInt(pieces[0]);
        var mm = parseInt(pieces[1]);
        var yy = parseInt(pieces[2]);
    }

    //check time
    function checkTime() {
        if ($$('currtime') != null) {
            var workingday = $$('currtime').value;
            //check workingday = 0 thì check nếu giờ hiện tại < 16h thì lấy ngày hiện tại,
            //nếu > 16h thì lấy ngày làm việc tiếp theo
            // nếu bằng 1 thì lấy ngày làm việc tiếp theo 
            if (workingday == 0) {
                var today = new Date();
                var h = today.getHours();
                var m = today.getMinutes();
                var s = today.getSeconds();

                if (h < 15) {
                    //ngày
                    $(ID_FROME_DATE).val(formatDate(new Date()));
                    //tài sản giao dịch
                    $(ID_TODATETS).val(formatDate(new Date()));
                    //tài sàn ròng
                    $(ID_TODATEDT).val(formatDate(new Date()));
                } else {
                    //ngày
                    $(ID_FROME_DATE).val($('#nextworkingday').val());
                    //tài sản giao dịch
                    $(ID_TODATETS).val($('#nextworkingday').val());
                    //tài sàn ròng
                    $(ID_TODATEDT).val($('#nextworkingday').val());
                }
            } else if (workingday == 1) {
                //ngày
                $(ID_FROME_DATE).val($('#nextworkingday').val());
                //tài sản giao dịch
                $(ID_TODATETS).val($('#nextworkingday').val());
                //tài sàn ròng
                $(ID_TODATEDT).val($('#nextworkingday').val());
            }
        }

        //currtimeWeek
        if ($$('currtimeWeek') != null) {
            var workingday_W = $$('currtimeWeek').value;

            if (workingday_W == 0) {
                var today = new Date();
                var h = today.getHours();
                if (h < 15) {
                    //tuần
                    $(ID_FROMWEEK).val(formatDate(new Date()));
                } else {
                    //tuần
                    $(ID_FROMWEEK).val($('#nextworkingdayWeek').val());
                }
            } else if (workingday_W == 1) {
                //tuần
                $(ID_FROMWEEK).val($('#nextworkingdayWeek').val());
            }
        }

        //currtimeMonth
        if ($$('currtimeMonth') != null) {
            var workingday_M = $$('currtimeMonth').value;

            if (workingday_M == 0) {
                var today = new Date();
                var h = today.getHours();

                if (h < 15) {
                    //tháng
                    $(ID_FORMMONTH).val(formatDate(new Date()));
                } else {
                    //tháng
                    $(ID_FORMMONTH).val($('#nextworkingdayMonth').val());
                }
            } else if (workingday_M == 1) {
                //tháng
                $(ID_FORMMONTH).val($('#nextworkingdayMonth').val());
            }
        }

        //giá trị tài sản currtimeNav
        if ($$('currtimeNav') != null) {
            var workingday_M = $$('currtimeNav').value;

            if (workingday_M == 0) {
                var today = new Date();
                var h = today.getHours();

                if (h < 15) {
                    //NAV
                    $('#FromeDateMonthTS').val(formatDate(new Date()));
                } else {
                    //NAV
                    $('#FromeDateMonthTS').val($('#nextworkingdayNav').val());
                }
            } else if (workingday_M == 1) {
                //NAV
                $('#FromeDateMonthTS').val($('#nextworkingdayNav').val());
            }
        }

        //giá theo giá trị tài sản
        if ($$('currtimeDt') != null) {
            var workingday_M = $$('currtimeDt').value;

            if (workingday_M == 0) {
                var today = new Date();
                var h = today.getHours();

                if (h < 15) {
                    //NAV
                    $('#FromeDateMonthDT').val(formatDate(new Date()));
                } else {
                    //NAV
                    $('#FromeDateMonthDT').val($('#nextworkingdayDt').val());
                }
            } else if (workingday_M == 1) {
                //NAV
                $('#FromeDateMonthDT').val($('#nextworkingdayDt').val());
            }
        }
    }

    //cộng số ngày + tiền
    function ClickPlusDate() {
        if ($(ID_PLUS)) {
            $(ID_PLUS).click(function () {
                var a = $(ID_INPUTDATE).val();

                if (a == null || a == '' || a == NaN) {
                    a = 1;
                    $(ID_INPUTDATE).val(parseInt(a) + 1);
                    CountMoney($(COS_GIA_NGAY).val(), $(ID_INPUTDATE).val());
                } else {
                    $(ID_INPUTDATE).val(parseInt(a) + 1);
                    CountMoney($(COS_GIA_NGAY).val(), $(ID_INPUTDATE).val());
                }
            });
        }
    }

    //check chỉ cho nhập number hoặc text
    //https://stackoverflow.com/questions/469357/html-text-input-allow-only-numeric-input
    //2019-10-14 10:11:38 PhucVM
    function setInputFilter(textbox, inputFilter) {
        ["input", "keydown", "keyup", "mousedown", "mouseup", "select", "contextmenu", "drop"].forEach(function (event) {
            textbox.addEventListener(event, function () {
                if (inputFilter(this.value)) {
                    this.oldValue = this.value;
                    this.oldSelectionStart = this.selectionStart;
                    this.oldSelectionEnd = this.selectionEnd;
                } else if (this.hasOwnProperty("oldValue")) {
                    this.value = this.oldValue;
                    this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd);
                }
            });
        });
    }

    //chỉ nhập number
    function OnlyNumber() {
        //ngày
        if (document.getElementById("qty") != null) {
            setInputFilter(document.getElementById("qty"), function (value) {
                //alert("Chi nhap number");
                return /^\d*$/.test(value);
            });
        }
        //tuần
        if (document.getElementById("qtyWeek") != null) {
            setInputFilter(document.getElementById("qtyWeek"), function (value) {
                return /^\d*$/.test(value);
            });
        }
        //tháng
        if (document.getElementById("qtyMonth") != null) {
            setInputFilter(document.getElementById("qtyMonth"), function (value) {
                return /^\d*$/.test(value);
            });
        }
    }

    //change value ô input số lượng.
    //nếu xóa ô số lượng thì thì gán số lượng = 1 đồng thời tính lại tiền
    function ChangeValueDate() {
        if ($(ID_INPUTDATE) != null) {
            var b = $(ID_INPUTDATE).val();
            $(ID_INPUTDATE).change(function () {
                alert('Số lượng không được để trống');
                $(ID_INPUTDATE).val("1");
                b = 1;
                $(ID_PLUS).click(function () {
                    $(ID_INPUTDATE).val(parseInt(b) + 1);
                    CountMoney($(COS_GIA_NGAY).val(), $(ID_INPUTDATE).val());
                });
            });
        }
    }

    //Trừ số ngày + tiền
    function ClickMinusDate() {
        if ($(ID_MINUS) != null) {
            $(ID_MINUS).click(function () {
                var a = $(ID_INPUTDATE).val();
                if (a == null || a == '') {
                    alert('Không được để trống');
                    a = 1;
                    CountMoney($(COS_GIA_NGAY).val(), $(ID_INPUTDATE).val());
                }
                if (parseInt(a) > 1) {
                    $(ID_INPUTDATE).val(parseInt(a) - 1);

                    CountMoney($(COS_GIA_NGAY).val(), $(ID_INPUTDATE).val());
                }
            });
        }
    }

    //sự kiện keypress
    function onMouseOut() {
        //Ngày
        if ($$('qty')) {
            $$('qty').onkeyup = function () {
                if (event.keyCode == 8 || event.keyCode == 46) {
                    if ($$('qty').value == '' || $$('qty').value == null) {
                        alert('Số lượng không được để trống');
                        $$('qty').value = 1;
                    }
                }
                if ($$('qty').value < 1) {
                    alert('Số lượng không được nhỏ hơn 1');
                    $$('qty').value = 1;
                }
                CountMoney($(COS_GIA_NGAY).val(), $("#qty").val());
            }
        }

        //Tuần
        if ($$('qtyWeek')) {
            $$('qtyWeek').onkeyup = function () {
                // debugger;
                CosMonth($('#PriceWeek').val(), $("#qtyWeek").val());
                if (event.keyCode == 8 || event.keyCode == 46) {
                    if ($$('qtyWeek').value == '' || $$('qtyWeek').value == null) {
                        alert('Số lượng không được để trống');
                        $$('qtyWeek').value = 1;
                    }
                }
                if ($$('qtyWeek').value < 1) {
                    alert('Số lượng không được nhỏ hơn 1');
                    $$('qtyWeek').value = 1;
                }
                lblCos();
            }
        }

        //Tháng
        if ($$('qtyMonth')) {
            $$('qtyMonth').onkeyup = function () {
                CountMoneyMonth($('#UnitPriceYear').val(), $("#qtyMonth").val());
                if (event.keyCode == 8 || event.keyCode == 46) {
                    if ($$('qtyMonth').value == '' || $$('qtyMonth').value == null) {
                        alert('Số lượng không được để trống');
                        $$('qtyMonth').value = 1;
                    }
                }
                if ($$('qtyMonth').value < 1) {
                    alert('Số lượng không được nhỏ hơn 1');
                    $$('qtyMonth').value = 1;
                }
                lblCos();
            }
        }

    }

    //hàm tính giá tiền và số lượng ngày trong ô số ngày ID_INPUTDATE
    function CountMoney(gia, soluong) {
        if (soluong == "" || soluong == null) {
            soluong = 1;
        }
        // tinh gia tien
        var giatien = gia * soluong;
        //lấy ra giá tiền
        document.getElementById('IdUnitPriceDaiLy').value = giatien;
        ////add gia vào lbl
        document.getElementById('lblIdPriceDaiLy').innerHTML = formatNumber(giatien);
        // tinh lai ngay todate
        $('#TODate').val(addDays(soluong));
        //add value vào lable = TODate
        // document.getElementById('lbltoDate').innerHTML = addDays(soluong);
    }

    //currtime == 0 
    //         == 1
    function addDays(days) {
        //ngày
        if ($('#currtime')) {
            if ($('#currtime').val() == 0) {
                var today = new Date();
                var h = today.getHours();
                if (h < 15) {
                    var date = new Date();
                    date.setDate(parseInt(date.getDate()) + parseInt(days) - parseInt(1));
                    return formatDate(date);
                } else {
                    if ($$('FromeDate')) {
                        var arr = $$('FromeDate').value.split('/');
                        var date = new Date();
                        date.setDate(parseInt(arr[0]) + parseInt(days) - parseInt(1));
                        return formatDate(date);
                    }
                }
            } else if ($('#currtime').val() == 1) {
                var arr = $$('FromeDate').value.split('/');
                var date = new Date();
                date.setDate(parseInt(arr[0]) + parseInt(days) - parseInt(1));
                return formatDate(date);
            }
        }
        // tuần
        if ($('#currtimeWeek')) {
            if ($('#currtimeWeek').val() == 0) {
                var today = new Date();
                var h = today.getHours();
                if (h < 15) {
                    var date = new Date();
                    date.setDate(parseInt(date.getDate()) + parseInt(days) - parseInt(1));
                    return formatDate(date);
                } else {
                    if ($$('FromeDateWeek')) {
                        var arr = $$('FromeDateWeek').value.split('/');
                        var date = new Date();
                        date.setDate(parseInt(arr[0]) + parseInt(days) - parseInt(1));
                        return formatDate(date);
                    }
                }
            } else if ($('#currtimeWeek').val() == 1) {
                var arr = $$('FromeDateWeek').value.split('/');
                var date = new Date();
                date.setDate(parseInt(arr[0]) + parseInt(days) - parseInt(1));
                return formatDate(date);
            }
        }
        // tháng ( trường hợp broker chỉ đk 1 gói tháng)
        if ($('#currtimeMonth')) {
            if ($('#currtimeMonth').val() == 0) {
                var today = new Date();
                var h = today.getHours();
                if (h < 15) {
                    var date = new Date();
                    date.setDate(parseInt(date.getDate()) + parseInt(days) - parseInt(1));
                    return formatDate(date);
                } else {
                    if ($$('FromeDateMonth')) {
                        var arr = $$('FromeDateMonth').value.split('/');
                        var date = new Date();
                        date.setDate(parseInt(arr[0]) + parseInt(days) - parseInt(1));
                        return formatDate(date);
                    }
                }
            } else if ($('#currtimeMonth').val() == 1) {
                var arr = $$('FromeDateMonth').value.split('/');
                var date = new Date();
                date.setDate(parseInt(arr[0]) + parseInt(days) - parseInt(1));
                return formatDate(date);
            }
        }
    }

    function OnkeyPrees() {
        var input = document.getElementById("qty");
        if (input != null) {
            // Execute a function when the user releases a key on the keyboard
            input.addEventListener("keyup", function (event) {
                // Number 13 is the "Enter" key on the keyboard
                if (event.keyCode === 13) {
                    CountMoney(10000, $("#qty").val());
                }
            });
        }
    }

    function addvaluelable() {
        var val_fromdate = document.getElementById('FromeDate').value;
        var val_todate = document.getElementById('TODate').value;
        var lbl_todate = document.getElementById('lbltoDate');
        var input_Price = document.getElementById('IdUnitPriceDaiLy').value;
        var vabl_price = document.getElementById('lblIdPriceDaiLy');

        lbl_todate.innerHTML = val_todate;
        vabl_price.innerHTML = input_Price;
    }

    function lblValueInput() {
        var val_todate = document.getElementById('TODate').value;
        var lbl_todate = document.getElementById('lbltoDate');

        lbl_todate.innerHTML = val_todate;
    }
    //********************************************************//
    //biểu phí dịch vụ theo thời gian ( tuần - Week)
    //2019-08-01 15:07:39 PhucVM
    function ClickPlusWeek() {
        if ($('#IDTangWeek') != null) {
            $('#IDTangWeek').click(function () {
                var a = $('#qtyWeek').val();
                if (a == null || a == "" || a == NaN) {
                    a = 1;
                    CosMonth($('#PriceWeek').val(), $('#qtyWeek').val());
                } else {
                    //tính số lượng
                    $('#qtyWeek').val(parseInt(a) + 1);
                    //tính tiền
                    CosMonth($('#PriceWeek').val(), $('#qtyWeek').val());
                }
                lblCos();
            });
        }
    }

    function changevalunumberweek() {
        if ($('#qtyWeek') != null) {
            $('#qtyWeek').change(function () {
                var a = $('#qtyWeek').val();
                if (a == null || a == "" || a == NaN) {
                    alert('Không được để trống');
                    $('#qtyWeek').val("1");
                    a = 1;
                    $('#IDTangWeek').click(function () {
                        //tính số lượng
                        $('#qtyWeek').val(parseInt(a) + 1);
                        //tính tiền
                        CosMonth($('#PriceWeek').val(), $('#qtyWeek').val());

                    });
                } else {
                    $('#IDTangWeek').click(function () {
                        //tính số lượng
                        $('#qtyWeek').val(parseInt(a) + 1);
                        //tính tiền
                        CosMonth($('#PriceWeek').val(), $('#qtyWeek').val());

                    });
                }
            });
        }
    }

    function ClickMinusWeek() {
        if ($('#minusWeek') != null) {
            // debugger;
            $('#minusWeek').click(function () {
                var a = $('#qtyWeek').val();
                if (parseInt(a) > 1) {
                    $('#qtyWeek').val(parseInt(a) - 1);
                    CosMonth($('#PriceWeek').val(), $('#qtyWeek').val());
                }
                lblCos();
            });
        }
    }

    //tính tiền
    function CosMonth(gia, soluong) {
        soluong = soluong * 1;
        if (soluong == '' || soluong == null) {
            soluong = 1;
        }
        var giatien = gia * soluong;
        document.getElementById('IdUnitPriceWeek').value = giatien;
        //đổ giá vào lbl
        document.getElementById('lblIdPriceWeek').innerHTML = formatNumber(giatien);
        addWeek(soluong);
        // tinh lai ngay todate
        $('#TODate').val(addDays(soluong));
    }
    //tính số tuần 
    //trước 15h và sau 15h
    //nếu sau 15h thì lấy ngày làm việc tiếp theo mà tính thôi
    //https://stackoverflow.com/questions/24312296/add-one-day-to-date-in-javascript
    function addWeek(week) {
        if (g_TimeHouse < 15) {
            let now = new Date();
            now.setDate(parseInt(now.getDate() + week * 7) - parseInt(1));
            // console.log(now)
            if ($('#TODateWeek') != null) {
                $('#TODateWeek').val(formatDate(now));
            }
        } else {
            let nextDate = $('#nextworkingdayWeek').val();
            let dd = nextDate.split('/')[0];
            let mm = nextDate.split('/')[1];
            let m = parseInt(mm) - parseInt(1);
            let yyyy = nextDate.split('/')[2];
            let now = new Date(yyyy, m, dd);

            now.setDate(parseInt(now.getDate()) + parseInt(week * 7) - parseInt(1)); // - parseInt( 1 )
            if ($('#TODateWeek') != null) {
                $('#TODateWeek').val(formatDate(now));
            }
        }
    }
    //biểu phí dịch vụ theo thời gian ( Tháng)
    //2019-08-01 15:07:39 PhucVM
    function ClickPlusMonth() {
        if ($('#IDTangMonth') != null) {
            $('#IDTangMonth').click(function () {
                var a = $('#qtyMonth').val();
                $('#qtyMonth').val(parseInt(a) + 1);
                CountMoneyMonth($('#UnitPriceYear').val(), $('#qtyMonth').val());
                lblCos();
            });
        }
    }

    function ClickMinusMonth() {
        if ($('#minusMonth') != null) {
            $('#minusMonth').click(function () {
                var a = $('#qtyMonth').val();
                if (parseInt(a) > 1) {
                    //tuần
                    $('#qtyMonth').val(parseInt(a) - 1);
                    CountMoneyMonth($('#UnitPriceYear').val(), $('#qtyMonth').val());
                    lblCos();
                }
            });
        }
    }

    function CountMoneyMonth(gia, soluong) {
        soluong = soluong * 1;
        if (soluong == '' || soluong == null || soluong == NaN) {
            soluong = 1;
        }
        // tinh gia tien
        var giatien = gia * soluong;
        $('#IdUnitPriceMonth').val(giatien);
        //đổ giá vào lbl
        document.getElementById('lblIdPriceMonth').innerHTML = formatNumber(giatien);
        // console.log(giatien, gia, soluong);
        addMonth(soluong);
    }

    //https://stackoverflow.com/questions/2706125/javascript-function-to-add-x-months-to-a-date
    function addMonth(Number) {
        var countMonth = parseInt(Number);
        var fromDate = $("#FromeDateMonth").val();
        if (fromDate != null) {
            var toDate = selfSearch.getToDate(fromDate, countMonth);
            $("#TODateMonth").val(toDate);
        }
    }
    //check ngày đăng ký phải lớn hơn ngày hiện tại dùng cho NAV & GTGD
    //1 đúng, 0 sai
    function checkDate(fromDate, toDate) {

        var fromdd   = fromDate.split('/')[0];
        var frommm   = fromDate.split('/')[1];
        var fromyyyy = fromDate.split('/')[2];
        var todd     = toDate.split('/')[0];
        var tomm     = toDate.split('/')[1];
        var toyyyy   = toDate.split('/')[2];
        var from     = new Date(fromyyyy, frommm, fromdd);
        var to       = new Date(toyyyy, tomm, todd);
        if (to >= from) {
            return 1;
        } else {
            return 0;
        }
    }

    //Subtract month
    //gán value #qtyNAV
    function SubtracDay() {
        if ($("#TODateMonthTS") != null) {
            $("#TODateMonthTS").on("change", function () {
                var toDate   = $(this).val();
                var fromDate = $("#FromeDateMonthTS").val();

                if (checkDate(fromDate, toDate) == 0) {
                    var message = "Phải lớn hơn ngày hiện tại";
                    $("#ErrRegNAV").show();
                    $("#ErrRegNAV").html(`<lable id="" class="Err2" style="color:#f00">` + message + `</lable>`);
                    $(this).val('');
                    return;
                } else {
                    $("#ErrRegNAV").hide();
                    $("#ErrRegNAV").html('');
                }

                if (fromDate != null && toDate != null && checkDate(fromDate, toDate) == 1) {
                    var dd          = toDate.split('/')[0];
                    var mm          = toDate.split('/')[1];
                    var yyyy        = toDate.split('/')[2];
                    var currentdd   = fromDate.split('/')[0];
                    var currentmm   = fromDate.split('/')[1];
                    var currentyyyy = fromDate.split('/')[2];
                    var olddate     = new Date(yyyy, mm, dd, 0, 0, 0, 0);
                    var newdate     = new Date(currentyyyy, currentmm, currentdd, 0, 0, 0, 0);
                    var timeDiff    = Math.abs(newdate.getTime() - olddate.getTime());
                    var diffDays    = Math.ceil(timeDiff / (1000 * 3600 * 24));

                    $('#qtyNAV').val(parseInt(diffDays) + parseInt(1));
                }
            });
        }
    }

    //Subtract month
    //gán value #qtyGtgd
    function SubtracDayGtgd() {
        if ($("#TODateMonthDT") != null) {
            $("#TODateMonthDT").on("change", function () {
                var toDate   = $(this).val();
                var fromDate = $("#FromeDateMonthDT").val();

                if (checkDate(fromDate, toDate) == 0) {
                    var message = "Phải lớn hơn ngày hiện tại";
                    $("#ErrRegNAV").show();
                    $("#ErrRegNAV").html(`<lable id="" class="Err2" style="color:#f00">` + message + `</lable>`);
                    $(this).val('');
                    return;
                } else {
                    $("#ErrRegNAV").hide();
                    $("#ErrRegNAV").html('');
                }

                if (fromDate != null && toDate != null && checkDate(fromDate, toDate) == 1) {
                    var dd          = toDate.split('/')[0];
                    var mm          = toDate.split('/')[1];
                    var yyyy        = toDate.split('/')[2];
                    var currentdd   = fromDate.split('/')[0];
                    var currentmm   = fromDate.split('/')[1];
                    var currentyyyy = fromDate.split('/')[2];
                    var olddate     = new Date(yyyy, mm, dd, 0, 0, 0, 0);
                    var newdate     = new Date(currentyyyy, currentmm, currentdd, 0, 0, 0, 0);
                    var timeDiff    = Math.abs(newdate.getTime() - olddate.getTime());
                    var diffDays    = Math.ceil(timeDiff / (1000 * 3600 * 24));
                    var quantyti = parseInt(diffDays) + parseInt(1);

                    $('#qtyGtgd').val(quantyti);
                }
            });
        }
    }

    //ngày
    function ajaxSubmit() {
        $('#btnIDsubmitdayly').click(function () {
            if ($('#ckeckValuNote1').is(":checked") == true) {
                if ($('#Passdayly').val() != null && $('#Passdayly').val() != "") {
                    var post_url       = "/SearchAdvisorys/InserValuDBFee";
                    var request_method = "post";
                    var form_data      = $("#CosDaly").serialize();

                    $.ajax({
                        url: post_url,
                        type: request_method,
                        data: form_data
                    }).done(function (response) {
                        if (response != 888) {
                            alert(response);
                            location.reload();

                        } else {
                            alert('Sai mật khẩu giao dịch');
                            $('#Passdayly').focus();
                        }
                    });

                } else {
                    alert("Bạn chưa Nhập mật khẩu giao dịch");
                    $('#Passdayly').focus();
                }
            }
            else {
                alert(LANGUAGE.ALERT_CHOOSE_TERMS_AGREE);
            }
        });
    }
    ///tuần
    function ajaxSubmitWeek() {
        $('#btntuan').click(function () {
          //  console.log("dk gói Phí theo tuần" + new Date());
            if ($('#ckeckValuNote2').is(":checked") == true) {
                if ($('#passezWeek').val() != null && $('#passezWeek').val() != "") {
                    var post_url = "/SearchAdvisorys/InserValuDBFee";
                    var request_method = "post";
                    var form_data = $("#cosweek").serialize();

                    $.ajax({
                        url: post_url,
                        type: request_method,
                        data: form_data
                    }).done(function (response) { //
                        if (response != 888) {
                            alert(response);
                            location.reload();
                        } else {
                            alert("Sai mật khẩu giao dịch");
                            $('#passezWeek').focus();
                        }
                    });

                } else {
                    alert(LANGUAGE.ALERT_ENTER_PASSWORD_PLS);
                    $('#passezWeek').focus();
                }
            }
            else {
                alert(LANGUAGE.ALERT_CHOOSE_TERMS_AGREE);
            }
        });
    }

    //tháng
    function ajaxSubmitMonth() {
        $('#btnthang').click(function () {
           // console.log("dk gói Phí theo tháng" + new Date());
            if ($('#ckeckValuNote3').is(":checked") == true) {
                if ($('#passmonth').val() != null && $('#passmonth').val() != "") {
                    var post_url = "/SearchAdvisorys/InserValuDBFee";
                    var request_method = "post";
                    var form_data = $("#cosmonth").serialize();

                    $.ajax({
                        url: post_url,
                        type: request_method,
                        data: form_data
                    }).done(function (response) { //
                        if (response != 888) {
                            alert(response);
                            location.reload();
                        } else {
                            alert("Sai mật khẩu giao dịch");
                            $('#passmonth').focus();
                        }
                    });
                } else {
                    alert(LANGUAGE.ALERT_ENTER_PASSWORD_PLS);
                    $('#passmonth').focus();
                }
            }
            else {
                alert(LANGUAGE.ALERT_CHOOSE_TERMS_AGREE);
            }
        });
    }

    //nav
    function ajaxSubmitnav() {
        $('#btnnav').click(function () {
            console.log("dk gói Phí theo NAV" + new Date());
            if ($('#ckeckValuNote4').is(":checked") == true) {
                if ($('#passnav').val() != null && $('#passnav').val() != "") {

                    var post_url = "/SearchAdvisorys/InserValuDBFee";
                    var request_method = "post";
                    var form_data = $("#cosnav").serialize();

                    $.ajax({
                        url: post_url,
                        type: request_method,
                        data: form_data
                    }).done(function (response) {
                        if (response != 888) {
                            alert(response);
                            location.reload();
                        } else {
                            alert("Sai mật khẩu giao dịch");
                            $('#passnav').focus();
                        }

                    });

                } else {
                    alert(LANGUAGE.ALERT_ENTER_PASSWORD_PLS);
                    $('#passnav').focus();
                }
            }
            else {
                alert(LANGUAGE.ALERT_CHOOSE_TERMS_AGREE);
            }
        });
    }

    //GTGD
    function ajaxSubmitGtgd() {
        $('#btngtgd').click(function () {
            console.log("dk gói Phí theo giá trị giao dịch" + new Date());
            if ($('#ckeckValuNote5').is(":checked") == true) {
                if ($('#passgtgd').val() != null && $('#passgtgd').val() != "") {

                    var post_url = "/SearchAdvisorys/InserValuDBFee";
                    var request_method = "post";
                    var form_data = $("#cosgtgd").serialize();

                    $.ajax({
                        url: post_url,
                        type: request_method,
                        data: form_data
                    }).done(function (response) {
                        if (response != 888) {
                            alert(response);
                            location.reload();
                        } else {
                            alert("Sai mật khẩu giao dịch");
                            $('#passgtgd').focus();
                        }
                    });

                } else {
                    alert(LANGUAGE.ALERT_ENTER_PASSWORD_PLS);
                    $('#passgtgd').focus();
                }
            }
            else {
                alert(LANGUAGE.ALERT_CHOOSE_TERMS_AGREE);
            }
        });
    }

    //format tiền
    function formatNumber(num) {
        return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1.')    ///"$1." or "$1," để hiển thị 2 kiểu format khác nhau
    }

    //check nếu chỉ broker chỉ đăng ký < 3 gói phí ( ngày, tuần hoặc tháng).
    //thì xảy ra lỗi ko tồn tại ID.
    function formatCos() {
        // console.log("click giá");
        var cosDayLy;
        var cosWeek;
        var cosMonth;
        if ($$('IdUnitPriceDaiLy') != null) {
            //cosDayLy = ;
            $$('IdUnitPriceDaiLy').value = $$('IdUnitPriceDaiLy').value;
        }

        if ($$('IdUnitPriceWeek') != null) {
            cosWeek = $$('IdUnitPriceWeek').value;
            $$('IdUnitPriceWeek').value = $$('IdUnitPriceWeek').value;
        }

        if ($$('IdUnitPriceMonth') != null) {
            cosMonth = $$('IdUnitPriceMonth').value;
            $$('IdUnitPriceMonth').value = $$('IdUnitPriceMonth').value;
        }
    }
    //nếu là ngày nghỉ alter ra thông báo
    //ngày bắt đầu daily
    function checkChooseRanDomDate_daily() {
        if (document.getElementById('FromeDate')) {
            $('#FromeDate').change(function () {
                var today = new Date();
                var h = today.getHours();
                for (var i = 0; i < g_Weekend.length; i++) {
                    if ($$('FromeDate').value == g_Weekend[i].list_Date) {
                        alert("Ngày " + g_Weekend[i].list_Date + " là ngày nghỉ");
                        if (h < 16) {
                            $$('FromeDate').value = formatDate(new Date());
                        }
                    }
                }
            });
        }
    };

    //nếu nhỏ hơn ngày hiện tại thì alter ra thông báo   
    function checkDateInputdays() {
        if (document.getElementById('FromeDate')) {
            $('#FromeDate').change(function () {
                var date = $('#FromeDate').val();
                var fromdate = $(this).val();
                if (checkDate(fromdate, date) == 0) {
                    alert("Ngày đăng ký phải lớn hơn ngày hiện tại");
                    $$('FromeDate').value = formatDate(new Date());
                }
            });
        }
    }

    //kiểm tra nếu có sự thay đổi ở from todate thì thay đổi #qty  và số tiền
    function checkDateInput() {
        if (document.getElementById('TODate')) {
            $('#TODate').change(function () {
                var date = formatDate(new Date());
                var fromdate = $(this).val();
                var TO_DATEDAILY = $$("nextworkingday").value;
                if (g_TimeHouse < 15) {
                    if (checkDate(date, fromdate) == 0) {
                        alert("Ngày đăng ký phải lớn hơn ngày hiện tại");
                        $$('TODate').value = formatDate(new Date());
                    }
                    var todate = $('#TODate').val();
                    var fromdates = $('#FromeDate').val();
                    var number = new Date(mmddyyyy(todate)) - new Date(mmddyyyy(fromdates));
                    number = number / (24 * 60 * 60 * 1000);
                    number = number + 1;
                    $('#qty').val(number);
                    CountMoney($(COS_GIA_NGAY).val(), number);
                } else {
                    if (checkDate(TO_DATEDAILY, fromdate) == 0) {
                        alert("Ngày đăng ký phải lớn hơn ngày hiện tại");
                        $$('TODate').value = $$("nextworkingday").value;
                    }
                    var todate = $('#TODate').val();
                    var fromdates = $('#FromeDate').val();
                    var number = new Date(mmddyyyy(todate)) - new Date(mmddyyyy(fromdates));
                    number = number / (24 * 60 * 60 * 1000);
                    number = number + 1;
                    $('#qty').val(number);
                    CountMoney($(COS_GIA_NGAY).val(), number);
                }
            });
        }
    }

    //nếu là ngày nghỉ alter ra thông báo 
    function checkChooseRanDomDate_Week() {
        if (document.getElementById('FromeDateWeek')) {
            $('#FromeDateWeek').change(function () {
                for (var i = 0; i < g_Weekend.length; i++) {
                    if ($$('FromeDateWeek').value == g_Weekend[i].list_Date) {
                        alert("Ngày " + g_Weekend[i].list_Date + " là ngày nghỉ");
                        $$('FromeDateWeek').value = formatDate(new Date());
                    }
                }
            });
        }
    };

    function checkDateInput_Week() {
        if (document.getElementById('FromeDateWeek')) {
            $('#FromeDateWeek').change(function () {
                var date = formatDate(new Date());
                var fromdate = $(this).val();
                if (checkDate(fromdate, date) == 0) {
                    alert("Ngày đăng ký phải lớn hơn ngày hiện tại");
                    //phai check car h ( lon hon 15h va sau 15h)
                    $$('FromeDateWeek').value = formatDate(new Date());
                }
            });
        }
    }

    //nếu nhỏ hơn ngày hiện tại thì alter ra thông báo
    function checkDateInput_month() {
        if (document.getElementById('FromeDateMonth')) {
            $('#FromeDateMonth').change(function () {
                var date = formatDate(new Date());
                var fromdate = $(this).val();
                if (checkDate(fromdate, date) == 0) {
                    alert("Ngày đăng ký phải lớn hơn ngày hiện tại");
                    $$('FromeDateMonth').value = formatDate(new Date());
                }
            });
        }
    }

    function checkChooseRanDomDate_month() {
        if (document.getElementById('FromeDateMonth')) {
            $('#FromeDateMonth').change(function () {
                for (var i = 0; i < g_Weekend.length; i++) {
                    if ($$('FromeDateMonth').value == g_Weekend[i].list_Date) {
                        alert("Ngày " + g_Weekend[i].list_Date + " là ngày nghỉ");
                        $$('FromeDateMonth').value = formatDate(new Date());
                    }
                }
            });
        }
    };

    function checkDateInput_GT() {
        if (document.getElementById('FromeDateMonthTS')) {
            $('#FromeDateMonthTS').change(function () {
                var date = formatDate(new Date());
                var fromdate = $(this).val();
                if (checkDate(fromdate, date) == 0) {
                    alert("Ngày đăng ký phải lớn hơn ngày hiện tại");
                    $$('FromeDateMonthTS').value = formatDate(new Date());
                }
            });
        }
    }

    function checkChooseRanDomDate_GT() {
        $('#FromeDateMonthTS').change(function () {
            for (var i = 0; i < g_Weekend.length; i++) {
                if ($$('FromeDateMonthTS').value == g_Weekend[i].list_Date) {
                    alert("Ngày " + g_Weekend[i].list_Date + " là ngày nghỉ");
                    $$('FromeDateMonthTS').value = formatDate(new Date());
                }
            }
        });
    };

    function checkChooseRanDomDate_DT() {
        if (document.getElementById('FromeDateMonthDT')) {
            $('#FromeDateMonthDT').change(function () {
                for (var i = 0; i < g_Weekend.length; i++) {
                    if ($$('FromeDateMonthDT').value == g_Weekend[i].list_Date) {
                        alert("Ngày " + g_Weekend[i].list_Date + " là ngày nghỉ");
                        $$('FromeDateMonthDT').value = formatDate(new Date());
                    }
                }
            });
        }

    };

    function checkDateInput_DT() {
        if (document.getElementById('FromeDateMonthDT')) {
            $('#FromeDateMonthDT').change(function () {
                var date = formatDate(new Date());
                var fromdate = $(this).val();
                if (checkDate(fromdate, date) == 0) {
                    alert("Ngày đăng ký phải lớn hơn ngày hiện tại");
                    $$('FromeDateMonthDT').value = formatDate(new Date());
                }
            });
        }

    };

    function lblCos() {
        //lbl giá ngày
        if (document.getElementById('IdUnitPriceDaiLy') != null) {
            var input_Price = document.getElementById('IdUnitPriceDaiLy').value;
            var vabl_price = document.getElementById('lblIdPriceDaiLy');

            vabl_price.innerHTML = formatNumber(input_Price);

            //lbl fromdate
            var val_fromdate = document.getElementById('FromeDate').value;
            var lbl_fromdate = document.getElementById('lblfromDate');

            lbl_fromdate.innerHTML = val_fromdate;
        }


        //lbl giá tuần
        if (document.getElementById('IdUnitPriceWeek') != null) {
            var input_Price_week = document.getElementById('IdUnitPriceWeek').value;
            var vabl_price_week = document.getElementById('lblIdPriceWeek');
            var val_fromdateW = document.getElementById('FromeDateWeek').value;
            var lbl_fromdateW = document.getElementById('lblfromWeek');

            vabl_price_week.innerHTML = formatNumber(input_Price_week);
            lbl_fromdateW.innerHTML = val_fromdateW;
        }

        if (document.getElementById('IdUnitPriceMonth') != null) {
            var input_Price_month = document.getElementById('IdUnitPriceMonth').value;
            var vabl_price_month = document.getElementById('lblIdPriceMonth');
            var val_fromdateM = document.getElementById('FromeDateMonth').value;
            var lbl_fromdateM = document.getElementById('lblfromMonth');

            vabl_price_month.innerHTML = formatNumber(input_Price_month);
            lbl_fromdateM.innerHTML = val_fromdateM;
        }

        if (document.getElementById('idNav')) {
            var input_ToDate_TS = document.getElementById('FromeDateMonthTS').value;
            var vabl_ToDate_TS = document.getElementById('lblfromTS');

            vabl_ToDate_TS.innerHTML = input_ToDate_TS;
        }

        if (document.getElementById('idGtdg')) {
            var input_FromDate_DT = document.getElementById('FromeDateMonthDT').value;
            var vabl_FromDate_DT = document.getElementById('lblfromDT');

            vabl_FromDate_DT.innerHTML = input_FromDate_DT;
        }

        if (document.getElementById("cosweek")) {

            $$('lblToWeek').innerHTML = $('#TODateWeek').val();
        }

        if ($$("cosmonth")) {
            $$("lblToMonth").innerHTML = $$("TODateMonth").value;
        }
    }
    //lấy ra số ngày của tháng
    function getDaysInMonth(month, year) {
        // Here January is 1 based
        //Day 0 is the last day in the previous month
        return new Date(year, month, 0).getDate();
    };

    //click btn đóng ngày : reset lại ô số lượng và tiền và ô nhập mk
    function clickCloseDaily() {
        if (document.getElementById("CloseDaily")) {
            $('#CloseDaily').click(function () {
                var a = $('#qty').val();
                $('#qty').val('1');
                a == 1;
                CountMoney($(COS_GIA_NGAY).val(), $(ID_INPUTDATE).val());
                $("#Passdayly").val("");
                $('#ckeckValuNote1').prop('checked', false);
            });
        }

        $('#FixCloseModal').click(function () {
            var a = $('#qty').val();
            $('#qty').val('1');
            a = 1;
            CountMoney($(COS_GIA_NGAY).val(), $(ID_INPUTDATE).val());
            $("#Passdayly").val("");
            $('#ShowDeleteService').click();
            $('#ckeckValuNote1').prop('checked', false);
        });
    };

    //click btn đóng tuần
    function clickCloseWeek() {
        if (document.getElementById("CloseWeek")) {
            $('#CloseWeek').click(function () {
                var a = $('#qtyWeek').val();
                $('#qtyWeek').val('1');
                a == 1;
                CosMonth($('#PriceWeek').val(), $("#qtyWeek").val());
                $("#passezWeek").val("");
                $('#ckeckValuNote2').prop('checked', false);
            });
        }

        if (document.getElementById("FixCloseModalWeek")) {
            $('#FixCloseModalWeek').click(function () {
                var a = $('#qtyWeek').val();
                $('#qtyWeek').val('1');
                a == 1;
                CosMonth($('#PriceWeek').val(), $("#qtyWeek").val());
                $("#passezWeek").val("");
                $('#ShowDeleteServiceWeek').click();
                $('#ckeckValuNote2').prop('checked', false);
            });
        }
    };

    //click btn đóng tháng
    function clickCloseMonth() {
        if (document.getElementById('CloseMonth')) {
            $('#CloseMonth').click(function () {
                var a = $('#qtyMonth').val();
                $('#qtyMonth').val('1');
                a == 1;
                CountMoneyMonth($('#UnitPriceYear').val(), $('#qtyMonth').val())
                $("#passmonth").val("");
                $('#ckeckValuNote3').prop('checked', false);
            });
        }

        if (document.getElementById('FixCloseModalMonth')) {
            $('#FixCloseModalMonth').click(function () {
                var a = $('#qtyMonth').val();
                $('#qtyMonth').val('1');
                a == 1;
                CountMoneyMonth($('#UnitPriceYear').val(), $('#qtyMonth').val())
                $("#passmonth").val("");
                $('#ShowDeleteServiceMonth').click();
                $('#ckeckValuNote3').prop('checked', false);
            });
        }

    };

    //ngày all SP
    //ngày
    function ajaxSubmitDailyALL() {
        let ID_ERR = document.getElementById("ErrReg");
      
        if (document.getElementById('btnIDsubmitdayly')) {
            $('#btnIDsubmitdayly').click(function () {

                if (g_TimeHouse >= 15) {
                    if ($("#FromeDate").val() != $("#nextworkingday").val()){
                        alert("Bản ghi đã quá hạn và không đăng ký thành công, Quý khách vui lòng đăng ký lại dịch vụ.");
                        window.location.reload();
                        return;
                    }
                } 
                if ($('#Passdayly').val() != null && $('#Passdayly').val() != "") {
                    var post_url       = "/SearchAdvisorys/InsertAllDbCos";
                    var request_method = "post";
                    var form_data      = $("#CosDaly").serialize();

                    $.ajax({
                        url: post_url,
                        type: request_method,
                        data: form_data
                    }).done(function (response) {
                        if (response.msg != 888) {
                            $('#ErrReg').show();
                            ID_ERR.innerHTML = "";
                            if (response.code == 1) {
                                ID_ERR.innerHTML = `<lable id="ErrReg" class="Err2">` + response.msg + `</lable>`;
                            } else {
                                ID_ERR.innerHTML = `<lable id="ErrReg" class="Err2 ErrColor" data-err ="${response.code}" style="color:#f00;">` + response.msg + `</lable>`;
                            }
                            $("#btnIDsubmitdayly").css("display", "none");
                            $("#CloseDaily").addClass("closeDaily");
                            setTimeout(function () {
                                location.reload();
                            }, 7000);

                        } else {
                            $('#ErrReg').show();
                            ID_ERR.innerHTML = "";
                            ID_ERR.innerHTML += ` <lable class="Err1">Sai mật khẩu giao dịch</lable>`;
                            $('#Passdayly').focus();
                        }

                    });
                } else {
                    $('#ErrReg').show();
                    ID_ERR.innerHTML = "";
                    ID_ERR.innerHTML += ` <lable class="Err1">Bạn chưa Nhập mật khẩu giao dịch</lable>`;
                    $('#Passdayly').focus();
                }
            });
        }
    };

    ///tuần
    function ajaxSubmitWeekAll() {
        if (document.getElementById('btntuan')) {
            $('#btntuan').click(function (){
                if (g_TimeHouse >= 15) {
                    if ($("#FromeDateWeek").val() != $("#nextworkingdayWeek").val()) {
                        alert("Bản ghi đã quá hạn và không đăng ký thành công, Quý khách vui lòng đăng ký lại dịch vụ.");
                        window.location.reload();
                        return;
                    }
                } 
                let ID_ERR  = document.getElementById("ErrRegWeek");
                let ID_ERRJ = $('#ErrRegWeek');
                if ($('#passezWeek').val() != null && $('#passezWeek').val() != "") {
                    var post_url       = "/SearchAdvisorys/InsertAllDbCos";
                    var request_method = "post";
                    var form_data      = $("#cosweek").serialize();
                    $.ajax({
                        url: post_url,
                        type: request_method,
                        data: form_data
                    }).done(function (response) { //
                        if (response.msg != 888) {
                            // alert( response );
                            ID_ERRJ.show();
                            ID_ERR.innerHTML = "";
                            if (response.code == 1) {
                                ID_ERR.innerHTML = `<lable id="ErrReg" class="Err2">` + response.msg + `</lable>`;
                            } else {
                                ID_ERR.innerHTML = `<lable id="ErrReg" class="Err2 ErrColor" data-err ="${response.code}" style="color:#f00;">` + response.msg + `</lable>`;
                            }
                            $("#btntuan").css("display", "none");
                            $("#CloseWeek").addClass("closeDaily");
                            setTimeout(function () {
                                location.reload();
                            }, 7000);
                        } else {
                            ID_ERRJ.show();
                            ID_ERR.innerHTML = "";
                            ID_ERR.innerHTML = ` <lable id="ErrReg" class="Err1">Sai mật khẩu giao dịch</lable>`;
                            $('#passezWeek').focus();
                        }
                    });
                } else {
                    ID_ERRJ.show();
                    ID_ERR.innerHTML = "";
                    ID_ERR.innerHTML = `<lable id="ErrReg" class="Err1">Bạn chưa Nhập mật khẩu giao dịch</lable>`;
                    $('#passezWeek').focus();
                }
               
            });
        }
    };

    //tháng
    function ajaxSubmitMonthALL() {
        let ID_ERR = document.getElementById("ErrRegMonth");
        let ID_ERRJ = $('#ErrRegMonth');

        if (document.getElementById('btnthang')) {
            $('#btnthang').click(function () {
                if (g_TimeHouse >= 15) {
                    if ($("#FromeDateMonth").val() != $("#nextworkingdayMonth").val()) {

                        alert("Bản ghi đã quá hạn và không đăng ký thành công, Quý khách vui lòng đăng ký lại dịch vụ.");
                        window.location.reload();
                        return;
                    }
                } 
                if ($('#passmonth').val() != null && $('#passmonth').val() != "") {
                    var post_url = "/SearchAdvisorys/InsertAllDbCos";
                    var request_method = "post";
                    var form_data = $("#cosmonth").serialize();

                    $.ajax({
                        url: post_url,
                        type: request_method,
                        data: form_data
                    }).done(function (response) { //
                        if (response.msg != 888) {
                            //  alert( response );
                            ID_ERRJ.show();
                            ID_ERR.innerHTML = "";
                            if (response.code == 1) {
                                ID_ERR.innerHTML = `<lable id="ErrReg" class="Err2">` + response.msg + `</lable>`;
                            } else {
                                ID_ERR.innerHTML = `<lable id="ErrReg" class="Err2 ErrColor" data-err ="${response.code}" style="color:#f00;">` + response.msg + `</lable>`;
                            }
                            $("#btnthang").css("display", "none");
                            $("#CloseMonth").addClass("closeDaily");
                            setTimeout(function () {
                                location.reload();
                            }, 7000);

                        } else {
                            ID_ERRJ.show();
                            ID_ERR.innerHTML = "";
                            ID_ERR.innerHTML = `<lable id="ErrReg" class="Err1">Sai mật khẩu giao dịch</lable>`;
                            // ID_ERRJ.fadeOut( 3500 );

                            $('#passmonth').focus();
                        }

                    });

                } else {
                    ID_ERRJ.show();
                    ID_ERR.innerHTML = "";
                    ID_ERR.innerHTML = `<lable id="ErrReg" class="Err1">${LANGUAGE.ALERT_ENTER_PASSWORD_PLS}</lable>`;
                    //  ID_ERRJ.fadeOut( 3500 );

                    $('#passmonth').focus();
                }
               
            });
        }
    };

    //nav
    function ajaxSubmitnavALL() {
        let ID_ERR = document.getElementById("ErrRegNAV");
        let ID_ERRJ = $('#ErrRegNAV');

        if (document.getElementById('btnnav')) {
            $('#btnnav').click(function () {
                if (g_TimeHouse >= 15) {
                    if ($("#FromeDateMonthTS").val() != $("#nextworkingdayNav").val()) {
                        alert("Bản ghi đã quá hạn và không đăng ký thành công, Quý khách vui lòng đăng ký lại dịch vụ.");
                        window.location.reload();
                        return;
                    }
                } 

                if ($("#TODateMonthTS").val() != null && $("#TODateMonthTS").val() != "") {
                    if ($('#passnav').val() != null && $('#passnav').val() != "") {
                        var post_url = "/SearchAdvisorys/InsertAllDbCos";
                        var request_method = "post";
                        var form_data = $("#cosnav").serialize();

                        $.ajax({
                            url: post_url,
                            type: request_method,
                            data: form_data
                        }).done(function (response) {
                            if (response.msg != 888) {
                                ID_ERRJ.show();
                                ID_ERR.innerHTML = "";
                                if (response.code == 1) {
                                    ID_ERR.innerHTML = `<lable id="ErrReg" class="Err2">` + response.msg + `</lable>`;
                                } else {
                                    ID_ERR.innerHTML = `<lable id="ErrReg" class="Err2 ErrColor" data-err ="${response.code}" style="color:#f00;">` + response.msg + `</lable>`;
                                }
                                 
                                $("#btnnav").css("display", "none");
                                $("#closeNAV").addClass("closeDaily");
                                setTimeout(function () {
                                    location.reload();
                                }, 7000);

                            } else {
                                ID_ERRJ.show();
                                ID_ERR.innerHTML = "";
                                ID_ERR.innerHTML = `<lable id="ErrReg" class="Err1">Sai mật khẩu giao dịch</lable>`;
                            
                                $('#passnav').focus();
                            }
                        });

                    } else {
                        ID_ERRJ.show();
                        ID_ERR.innerHTML = "";
                        ID_ERR.innerHTML = `<lable id="ErrReg" class="Err1">${LANGUAGE.ALERT_ENTER_PASSWORD_PLS}</lable>`;
                        $('#passnav').focus();
                    }
                } else {
                    ID_ERRJ.show();
                    ID_ERR.innerHTML = "";
                    ID_ERR.innerHTML = `<lable id="ErrReg" class="Err1">Quý khách chưa lựa chọn ngày hết hạn dịch vụ, xin vui lòng nhập lại</lable>`;
                }
            });
        }
    };

    //GTGD
    function ajaxSubmitGtgdALL() {
        let ID_ERR = document.getElementById("ErrRegGTGD");
        let ID_ERRJ = $('#ErrRegGTGD');

        if (document.getElementById('btngtgd')) {
            $('#btngtgd').click(function () {
                if (g_TimeHouse >= 15) {
                    if ($("#FromeDateMonthDT").val() != $("#nextworkingdayDt").val()) {
                        alert("Bản ghi đã quá hạn và không đăng ký thành công, Quý khách vui lòng đăng ký lại dịch vụ.");
                        window.location.reload();
                        return;
                    }
                } 
                if ($("#TODateMonthDT").val() != null && $("#TODateMonthDT").val() != "") {
                    if ($('#passgtgd').val() != null && $('#passgtgd').val() != "") {
                        var post_url = "/SearchAdvisorys/InsertAllDbCos";
                        var request_method = "post";
                        var form_data = $("#cosgtgd").serialize();

                        $.ajax({
                            url: post_url,
                            type: request_method,
                            data: form_data
                        }).done(function (response) {
                            if (response.msg != 888) {
                                ID_ERRJ.show();
                                ID_ERR.innerHTML = "";
                                if (response.code == 1) {
                                    ID_ERR.innerHTML = `<lable id="ErrReg" class="Err2">` + response.msg + `</lable>`;

                                } else {
                                    ID_ERR.innerHTML = `<lable id="ErrReg" class="Err2 ErrColor" data-err ="${response.code}" style="color:#f00;">` + response.msg + `</lable>`;
                                }
                                $("#btngtgd").css("display", "none");
                                $("#closeGTGD").addClass("closeDaily");
                                setTimeout(function () {
                                    location.reload();
                                }, 7000);
                            } else {
                                ID_ERRJ.show();
                                ID_ERR.innerHTML = "";
                                ID_ERR.innerHTML = `<lable id="ErrReg" class="Err1">Sai mật khẩu giao dịch</lable>`;
                                $('#passgtgd').focus();
                            }
                        });

                    } else {
                        ID_ERRJ.show();
                        ID_ERR.innerHTML = "";
                        ID_ERR.innerHTML = `<lable id="ErrReg" class="Err1">${LANGUAGE.ALERT_ENTER_PASSWORD_PLS}</lable>`;
                        $('#passgtgd').focus();
                    }
                } else {
                    ID_ERRJ.show();
                    ID_ERR.innerHTML = "";
                    ID_ERR.innerHTML = `<lable id="ErrReg" class="Err1">Quý khách chưa lựa chọn ngày hết hạn dịch vụ, xin vui lòng nhập lại</lable>`;
                }

            });
        }
    };

    function ClickOutNav() {
        if ($("#FixCloseModalnav")) {
            //click phía biên của modal NAV
            $("#FixCloseModalnav").click(function () {
                $("#TODateMonthTS").val("");
                $("#passnav").val("");
                $("#qtyNAV").val("");
                $("#ShowDeleteServiceMonthTS").click();
                $('#ckeckValuNote4').prop('checked', false);

            });
        }
        //click phía biên của modal GTGD
        if ($("#FixCloseModalGTGD")) {
            $("#FixCloseModalGTGD").click(function () {
                $("#TODateMonthDT").val("");
                $("#passgtgd").val("");
                $("#qtyGtgd").val("");
                $('#ckeckValuNote5').prop('checked', false);
                $("#ShowDeleteServiceMonthDT").click();
            });
        }
        //btn đóng GTGD
        if ($("#closeGTGD")) {
            $("#closeGTGD").click(function () {
                $("#passgtgd").val("");
                $("#TODateMonthDT").val("");
                $("#qtyGtgd").val("");
                $('#ckeckValuNote5').prop('checked', false);
            });
        }
        //btn đóng nav
        if ($("#closeNAV")) {
            $("#closeNAV").click(function () {
                $("#passnav").val("");
                $("#TODateMonthTS").val("");
                $('#ckeckValuNote4').prop('checked', false);
                $("#qtyNAV").val("");
            });
        }
    };

    //NAV from-Date
    //trường hợp trc 15h và sau 15h, ngày nghỉ và ngày làm việc
    function nextDateNavs() {
        if ($$("currtimeNav")) {
            var g_Workingday = document.getElementById("currtimeNav").value;

            if (g_TimeHouse >= 15 && g_Workingday == 0) {
                document.getElementById("FromeDateMonthTS").value = document.getElementById("nextworkingdayNav").value;
            }
            else if (g_TimeHouse < 15 && g_Workingday == 1) {
                document.getElementById("FromeDateMonthTS").value = document.getElementById("nextworkingdayNav").value;
            }
            else if (g_TimeHouse > 15 && g_Workingday == 1) {
                document.getElementById("FromeDateMonthTS").value = document.getElementById("nextworkingdayNav").value;
            } else if (g_TimeHouse < 15 && g_Workingday == 0) {
                var dates = new Date();
                document.getElementById("FromeDateMonthTS").value = formatDate(dates);
            }
        }
    }
    // load trang  
    this.initHandlers = function () {
        DateClick();
        FromeDateShow();
        ClickPlusDate();
        ClickMinusDate();
        onMouseOut();
        clickCloseDaily();
        clickCloseWeek();
        clickCloseMonth();
        ClickPlusMonth();
        ClickMinusMonth();
        ClickPlusWeek();
        ClickMinusWeek();
        SubtracDay();
        SubtracDayGtgd();
        checkTime();
        checkChooseRanDomDate_daily();
        checkChooseRanDomDate_Week();
        checkDateInput();
        checkDateInput_Week();
        checkChooseRanDomDate_month();
        checkDateInput_month();
        checkDateInput_GT();
        checkChooseRanDomDate_GT();
        checkChooseRanDomDate_DT();
        checkDateInput_DT();
        formatCos();
        OnlyNumber();
        checkDateInputdays();
        JqueryUIWeek();
        ClickOutNav();
        nextDateNavs();
        ajaxSubmitDailyALL();
        ajaxSubmitWeekAll();
        ajaxSubmitMonthALL();
        ajaxSubmitnavALL();
        ajaxSubmitGtgdALL();

        $('.phi-thoigian--content').click(function () {
            if (document.getElementById('idDayli')) {
                if (g_TimeHouse < 15) {
                    $(ID_TODATE).val(addDays(1));
                } else {
                    //lấy ngày làm việc tiếp theo :))
                    $(ID_TODATE).val($('#nextworkingday').val());
                }

            }
            if (document.getElementById('idWeek')) {
                if (g_TimeHouse < 15) {
                    $(ID_TODATEWEEK).val(addDays(7));

                } else {
                    //trừ Date 
                    //chú ý sau có gặp thì dùng :) 
                    //2019-11-21 08:39:42 PhucVM
                    var toDay = $('#nextworkingdayWeek').val();
                    var dd = toDay.split('/')[0];
                    var mm = toDay.split('/')[1];
                    var m = parseInt(mm) - parseInt(1);
                    var yyyy = toDay.split('/')[2];
                    var someDate = new Date(yyyy, m, dd);
                    someDate.setDate(someDate.getDate() + 7); //number  of days to add, e.x. 7 days
                    var dateFormated = someDate.toISOString().substr(0, 10);
                    var fulldate = formatDate(dateFormated)

                    $(ID_TODATEWEEK).val(fulldate);
                }
                $$('lblToWeek').innerHTML = $('#TODateWeek').val();
            }
            if (document.getElementById('idMonth')) {
                //getDaysInMonth()
                if (g_TimeHouse < 15) {
                    var dt = new Date();
                    d  = (dt.getDay() - 1);
                    m  = (dt.getMonth() + 1);
                    mm = (dt.getMonth() + 2);
                    y  = (dt.getFullYear());
                    h  = dt.getHours();
                    //https://stackoverflow.com/questions/1531093/how-do-i-get-the-current-date-in-javascript
                    //truong hop la ngay lam viec 
                    if ($('#currtimeMonth').val() == 0) {
                        var toDate = selfSearch.getToDate(formatDate(new Date()), 1);
                        $('#TODateMonth').val(toDate);
                    }
                    //truong hop curent date khong phai ngay lam viec
                    if ($('#currtimeMonth').val() == 1) {
                        var toDate = selfSearch.getToDate(formatDate($("#nextworkingdayMonth").val()), 1);
                        $('#TODateMonth').val(toDate);
                    }
                    
                } else {
                    var toDay = $('#nextworkingdayMonth').val();

                    var dd       = toDay.split('/')[0];
                    var mm       = toDay.split('/')[1];
                    var m        = parseInt(mm) - parseInt(1);
                    var yyyy     = toDay.split('/')[2];
                    var someDate = new Date(yyyy, m, dd);
                    someDate.setMonth(someDate.getMonth() + 1); //number  of days to add, e.x. 7 days
                    var dateFormated = someDate.toISOString().substr(0, 10);
                    var fulldate = formatDate(dateFormated);
                    $('#TODateMonth').val(fulldate);
                }
                lblCos();
            }
        });
        if (vData.length > 0) {
            if (document.getElementById('navigationHeader') != null) {
                document.getElementById('navigationHeader').innerHTML += '<li><a href="/SearchAdvisorys/ServiceFees/' + vData[0].ABROKERCDE + '" class="nav-menu--brokers name-broker--nav">' + vData[0].ABROKERNAME + '</a></li>';
            }
        }
        lblCos();
    }

    // input fromDate + monthCount
    // output toDate
    this.demo = function (fromDate) {
        // 12/01/2019 -> 11/02/2019
        // 01/01/2019 -> 31/01/2019
        // 31/01/2019 -> 28/02/2019
        // 30/09/2019 -> 29/02/2020

        toDate = currentDate - 1
        // thang = thang hien tai + so thang
        // so sanh toDate voi maxDate -> toDate > maxDate => toDate = maxDate
        // neu la ngay 01 -> toDate = maxDate cua thang truoc do 1 thang => so thang bi tru 1 
    }
    // truyen vao ngay thang nam dang so
    // 12/01/2019 -> 11/02/2019
    // 01/01/2019 -> 31/01/2019
    // 31/01/2019 -> 28/02/2019
    // 30/09/2019 -> 29/02/2020
    this.getToDate = function (fromDate, count) {
        var dd = parseInt(fromDate.split('/')[0]);
        var mm = parseInt(fromDate.split('/')[1]);
        var yyyy = parseInt(fromDate.split('/')[2]);
        if (dd == 1) {
            count = count - 1;
        }
        var toMM = (mm + count) % 12;
        var toYYYY = yyyy + Math.floor((mm + count) / 12);
        var toDD = dd - 1;
        if (toMM == 0) {
            toMM = 12;
            toYYYY = toYYYY - 1;
        }
        if (dd == 1) {
            toDD = selfSearch.getDaysInMonth(toMM, toYYYY);
        }

        if (toDD > selfSearch.getDaysInMonth(toMM, toYYYY)) {
            toDD = selfSearch.getDaysInMonth(toMM, toYYYY);
        }
        return toDD.toString() + "/" + toMM.toString() + "/" + toYYYY.toString();
    };
    // lay ngay lon nhat trong thang bat ky
    this.getDaysInMonth = function (month, year) {
        return new Date(year, month, 0).getDate();
    };

    // tat ca init can thiet (init all)
    this.initForm = function () {
        // init event handlers
        this.initHandlers();
    }
    // contructor => auto exec
    this.initForm();
})();
⚠️ **GitHub.com Fallback** ⚠️