<script>
    require(
        ['jquery'],
        function ($) {

            var getServiceUrl = function () {
                return `${window.location.origin}/company/index/index/`;
            }

            var observeVAT = function (scope) {

                var companySelector = `#order-${scope}_address_company`;
                var regComSelector = `#order-${scope}_address_fax`;
                var streetSelector = `#order-${scope}_address_street0`;
                var citySelector = `#order-${scope}_address_city`;
                var regionSelector = `#order-${scope}_address_region_id`;
                $(document).on("change", `#order-${scope}_address_vat_id`,function (e) {
                    var vat_id = e.target.value;

                    var serviceUrl = getServiceUrl();
                    vat_id = vat_id.toLowerCase();
                    if (vat_id.indexOf("ro") !== -1) {
                        vat_id = vat_id.replace("ro", "");
                    }
                    vat_id = parseInt(vat_id) || 0;
                    var payload = {
                        vat_id: vat_id
                    };
                    $.ajax({
                        url: serviceUrl,
                        type: 'POST',
                        dataType: 'json',
                        data: payload,
                        complete: function (response) {
                            var data = response.responseJSON;
                            if (response.status == 200) {
                                if (typeof data.found !== 'undefined' && data.found === true) {
                                    var companyInfo = data.companyInfo;
                                    $(companySelector).val(companyInfo["company"]);
                                    $(regComSelector).val(companyInfo["fax"]);
                                    $(streetSelector).val(companyInfo["street.0"]);
                                    $(citySelector).val(companyInfo["city"]);
                                    $(regionSelector).val(companyInfo["region_id"]).trigger('change');
                                }
                            }
                        },
                        error: function (xhr, status, errorThrown) {
                            console.log('Error happens. Try again.');
                        }
                    });
                });
            }

            
            observeVAT('shipping');
            
            observeVAT('billing');
        }
    )</script>