PageSourceSearch

https://underwearmw.com/bitrix/templates/aspro_max/js/custom.js?174435467019041

js underwearmw.com collected 2026-10-08 20:27:45 UTC 19,041 bytes, 428 lines download raw bytes

1/*
2You can use this file with your scripts.
3It will not be overwritten when you upgrade solution.
4*/
5
6
7$(document).ready(function (){
8
9
10    // console.log(arMaxOptions['THEME']);
11
12
13    /** Подсказки с сервиса dadata на странице регистрации start **/
14    if ($('.registraion-page.pk-page').length) {
15
16        //подсказки при вводе имени
17        initFio($("#input_SECOND_NAME"), $("#input_NAME"), $("#input_LAST_NAME"));
18        //подсказки при вводе email
19        initEmail($("#input_EMAIL"));
20
21    
22    }
23    /** Подсказки с сервиса dadata на странице регистрации end **/
24
25
26    /** Подсказки с сервиса dadata на странице оформление заказа start **/
27    if (arAsproOptions["PAGES"]["ORDER_PAGE"]) {
28
29        BX.addCustomEvent("onAjaxSuccess", function (data) {
30            if (typeof data === "object" && data !== null) {
31                //console.log(BX.Sale.OrderAjaxComponent.changeProfile());
32                //получаем все поля из свойства заказа
33                //$('input[name="ORDER_PROP_49"]').prop("readonly", true);
34
35
36
37                for (var i = 0; i < BX.Sale.OrderAjaxComponent.result.ORDER_PROP.properties.length; ++i) {
38
39                    var arProperty = BX.Sale.OrderAjaxComponent.result.ORDER_PROP.properties[i];
40
41
42                    //делаем транслейт имени свойства
43                    var trans = BX.translit(arProperty.NAME, {
44                        'change_case': 'L',
45                    })
46
47                    //добавляем класс в каждый input чтобы лучше индифицировать для логике
48                    BX.addClass('soa-property-'+ arProperty.ID, trans+'_custom');
49
50
51                    //console.log(arProperty);
52                    /*
53                    if(arProperty.CODE === 'COMPANY' || arProperty.CODE === 'COMPANY_ADR' || arProperty.CODE === 'KPP') {
54                        $('.bx-soa-customer-field[data-property-id-row="'+ arProperty.ID +'"]').hide();
55                    }
56                     */
57
58                    //если в свойстве заказа есть адрес доставки
59                    if(arProperty.CODE === 'ADDRESS'){
60                        initAddress($('textarea[name="ORDER_PROP_'+ arProperty.ID +'"]'));
61                    }
62
63                    //если в свойстве заказа есть емайл
64                    if(arProperty.CODE === 'EMAIL'){
65                        initEmail($('input[name="ORDER_PROP_'+ arProperty.ID +'"]'));
66                    }
67
68                    //если в свойстве заказа есть поле ИНН
69                    if(arProperty.CODE === 'INN'){
70                        //console.log('Есть поле ИНН');
71
72                        //то берем уникальный ID и проставляем механизм для поиска
73                        $('input[name="ORDER_PROP_'+ arProperty.ID +'"]').suggestions({
74                            // поиск по наименованию компании
75                            token: 'e975ffac90337bc2c3155a36ea57aabc12b35648',
76                            type: 'PARTY',
77                            scrollOnFocus: "false",
78                            mobileWidth: 360,
79                            // вызывается, когда пользователь выбирает одну из подсказок
80                            onSelect: function(suggestion) {
81
82                                console.log(suggestion);
83
84                                // заполнем поле ИНН
85                                if('value' in suggestion)
86                                    $(this).val(suggestion.data.inn);
87
88
89                                //console.log(suggestion.data.fio.surname)
90
91
92                                //название компании
93                                $('input.nazvanie_kompanii_custom').val(suggestion.data.name.short_with_opf);
94
95                                // заполнем поле юр.адрес
96                                //console.log(suggestion.data.address.value);
97                                $('textarea.yuridicheskiy_adres_custom').val(suggestion.data.address.value);
98
99                                // заполнем поле Ген.директор
100                                if (suggestion.data.type === 'LEGAL') {
101                                    // юридическое лицо
102                                    /* если в будущем понадобиться определять данные ФИО
103                                    if('name' in suggestion.data && suggestion.data.management.name){
104                                        //$('input[name="ORDER_PROP_51"]').val(suggestion.data.management.name);
105
106                                        //разбиваем ФИО на массив
107                                        var fullName = suggestion.data.management.name.split(' ')
108                                        // console.log(suggestion.data.management.name.split(' '));
109
110                                        //фамилия
111                                        $("input.familiya_custom").val(fullName[0]);
112
113                                        //имя
114                                        $("input.imya_custom").val(fullName[1])
115
116                                        //отчество
117                                        $("input.otchestvo_custom").val(fullName[2])
118                                    }
119
120                                     */
121
122                                    //КПП
123                                    if(/[^0-9]/.test(suggestion.data.kpp) === false) {
124                                        $('input[name="ORDER_PROP_67"]').val(suggestion.data.kpp);
125                                    }
126                                }
127                                /* если в будущем понадобиться определять данные ФИО
128                               if (suggestion.data.type === 'INDIVIDUAL') {
129
130
131                                   //if('data' in suggestion.data.management.name) {
132                                       // индивидуальный предриниметель
133                                       //$('input[name="ORDER_PROP_51"]').val(suggestion.data.name.full);
134                                   //}
135
136                                   //фамилия
137                                   //if('surname' in suggestion.data && suggestion.data.fio.surname){
138                                       $("input.familiya_custom").val(suggestion.data.fio.surname);
139                                   //}
140
141                                   //имя
142                                   if('name' in suggestion.data && suggestion.data.fio.name){
143                                       $("input.imya_custom").val(suggestion.data.fio.name)
144                                   }
145
146                                   //отчество
147                                   //if('patronymic' in suggestion.data && suggestion.data.fio.patronymic){
148                                       $("input.otchestvo_custom").val(suggestion.data.fio.patronymic)
149                                   //}
150                               }
151                                */
152
153                           }
154                       });
155                   }
156                   initFio($("input.familiya_custom"), $("input.imya_custom"), $("input.otchestvo_custom"));
157
158               }
159           }
160       });
161
162       //initFio($("input.familiya_custom"), $("input.imya_custom"), $("input.otchestvo_custom"));
163       //initFio($('#soa-property-64'), $('#soa-property-65'), $('#soa-property-66'));
164
165       //initEmail($('#soa-property-52'));
166       //initAddress($('#soa-property-57'))
167
168
169       /*
170       function SaleProperties(){
171
172        */
173            for (var i = 0; i < BX.Sale.OrderAjaxComponent.result.ORDER_PROP.properties.length; ++i) {
174                var arProperty = BX.Sale.OrderAjaxComponent.result.ORDER_PROP.properties[i];
175
176                //console.log(arProperty)
177                //делаем транслейт имени свойства
178                var trans = BX.translit(arProperty.NAME, {
179                    'change_case': 'L',
180                })
181
182                //добавляем класс в каждый input чтобы лучше индифицировать для логике
183                BX.addClass('soa-property-'+ arProperty.ID, trans+'_custom');
184
185
186
187                /*
188                //Фамилия
189                if (arProperty.CODE === 'CONTACT_LAST_NAME'){
190                    lastName = BX('soa-property-'+arProperty.ID);
191                }
192
193                //Имя
194                if(arProperty.CODE === 'CONTACT_NAME'){
195                    name = BX('soa-property-'+arProperty.ID);
196                }
197
198                //Отчество
199                if(arProperty.CODE === 'CONTACT_SECOND_NAME'){
200                    secondName = BX('soa-property-'+arProperty.ID);
201                }
202
203
204                if (arProperty.CODE === 'CONTACT_LAST_NAME' || arProperty.CODE === 'CONTACT_NAME' || arProperty.CODE === 'CONTACT_SECOND_NAME') {
205                    initFio(lastName, name, secondName);
206                }
207                */
208
209                //если в свойстве заказа есть адрес доставки
210                if(arProperty.CODE === 'ADDRESS'){
211                    initAddress($('textarea[name="ORDER_PROP_'+ arProperty.ID +'"]'));
212                }
213
214                //если в свойстве заказа есть емайл
215                if(arProperty.CODE === 'EMAIL'){
216                    initEmail($('input[name="ORDER_PROP_'+ arProperty.ID +'"]'));
217                }
218
219                if(arProperty.CODE === 'INN'){
220                    $('input[name="ORDER_PROP_'+ arProperty.ID +'"]').suggestions({
221                        // поиск по наименованию компании
222                        token: 'e975ffac90337bc2c3155a36ea57aabc12b35648',
223                        type: 'PARTY',
224                        scrollOnFocus: "false",
225                        mobileWidth: 360,
226                        // вызывается, когда пользователь выбирает одну из подсказок
227                        onSelect: function(suggestion) {
228
229                            //console.log(suggestion.data.fio.name);
230
231                            // заполнем поле ИНН
232                            if('value' in suggestion)
233                                $(this).val(suggestion.data.inn);
234                            //console.log(suggestion.data.fio.surname)
235
236
237                            //название компании
238                            $('input.nazvanie_kompanii_custom').val(suggestion.data.name.short_with_opf);
239
240                            // заполнем поле юр.адрес
241                            //console.log(suggestion.data.address.value);
242                            $('input.yuridicheskiy_adres_custom').val(suggestion.data.address.value);
243
244                            // заполнем поле Ген.директор
245                            if (suggestion.data.type === 'LEGAL') {
246                                // юридическое лицо
247                                /* если в будущем понадобиться определять данные ФИО
248                               if('name' in suggestion.data && suggestion.data.management.name){
249                                   //$('input.yuridicheskiy_adres_custom').val(suggestion.data.management.name);
250
251                                   //разбиваем ФИО на массив
252                                   var fullName = suggestion.data.management.name.split(' ')
253                                   // console.log(suggestion.data.management.name.split(' '));
254
255                                   //фамилия
256                                   $("input.familiya_custom").val(fullName[0]);
257
258                                   //имя
259                                   $("input.imya_custom").val(fullName[1])
260
261                                   //отчество
262                                   $("input.otchestvo_custom").val(fullName[2])
263                               }
264                               */
265
266                                //КПП
267
268                                if(/[^0-9]/.test(suggestion.data.kpp) === false){
269                                    $('input.kpp_custom').val(suggestion.data.kpp);
270                                }
271
272                            }
273                            /* если в будущем понадобиться определять данные ФИО
274                           if (suggestion.data.type === 'INDIVIDUAL') {
275                               // индивидуальный предриниметель
276                               //$('input.yuridicheskiy_adres_custom').val(suggestion.data.name.full);
277
278                               //фамилия
279                               //if('surname' in suggestion.data && suggestion.data.fio.surname){
280                                   $("input.familiya_custom").val(suggestion.data.fio.surname);
281                               //}
282
283                               //имя
284                               if('name' in suggestion.data && suggestion.data.fio.name){
285                                   $("input.imya_custom").val(suggestion.data.fio.name)
286                               }
287
288                               //отчество
289                               //if('patronymic' in suggestion.data && suggestion.data.fio.patronymic){
290                                   $("input.otchestvo_custom").val(suggestion.data.fio.patronymic)
291                               //}
292                           }
293
294                             */
295                       }
296                   });
297               }
298
299               initFio($("input.familiya_custom"), $("input.imya_custom"), $("input.otchestvo_custom"));
300
301           }
302
303       //}
304
305
306   }
307
308
309
310   //email
311   function initEmail($email){
312       if($email.length)
313       {
314           $email.suggestions({
315               token: "e975ffac90337bc2c3155a36ea57aabc12b35648",
316               type: "EMAIL",
317               scrollOnFocus: "false",
318               mobileWidth: "100",
319               onSelect: function(suggestion){
320                   $email.trigger('change');
321               }
322           });
323       }
324   }
325
326
327   //addr
328   function initAddress($addr){
329       if($addr.length)
330       {
331           $addr.suggestions({
332               token: "e975ffac90337bc2c3155a36ea57aabc12b35648",
333               type: "ADDRESS",
334               scrollOnFocus: "false",
335               mobileWidth: 360,
336               onSelect: function(suggestion){
337                   $addr.trigger('change');
338
339                   //console.log(suggestion);
340
341                   if(typeof suggestion !=="undefined" && ('data' in suggestion))
342                   {
343                       //set index
344                       if('postal_code' in suggestion.data && suggestion.data.postal_code)
345                           $('input.index').val(suggestion.data.postal_code);
346
347                       //set country
348                       if('country' in suggestion.data && suggestion.data.country)
349                           $('input.country').val(suggestion.data.country);
350
351                       //set city
352                       if('city' in suggestion.data && suggestion.data.city)
353                       {
354                           $('input.city').val(suggestion.data.city);
355                           $addr.val(suggestion.value.replace())
356                       }
357                       //format addr
358                       if('city_with_type' in suggestion.data && suggestion.data.city_with_type)
359                       {
360                           $addr.val(suggestion.value.replace(suggestion.data.city_with_type + ', ', ''))
361                       }
362                   }
363               },
364               onSearchStart: function(params) {
365                   var $el = $(this);
366                   params.query = params.query.replace(/_/g, '');
367               },
368           });
369       }
370   }
371
372
373   // Инициализирует подсказки по ФИО на указанном элементе
374   function initFio($surname, $name, $patronymic) {
375       if($surname.length || $name.length || $patronymic.length )
376       {
377           var self = {};
378           self.$surname = $surname;
379           self.$name = $name;
380           self.$patronymic = $patronymic;
381           var fioParts = ["SURNAME", "NAME", "PATRONYMIC"];
382           $.each([$surname, $name, $patronymic], function(index, $el) {
383               var sgt = $el.suggestions({
384                   token: "e975ffac90337bc2c3155a36ea57aabc12b35648",
385                   type: "NAME",
386                   // triggerSelectOnSpace: false,
387                   hint: "",
388                   // noCache: true,
389                   params: {
390                       // каждому полю --- соответствующая подсказка
391                       parts: [fioParts[index]]
392                   },
393                   onSearchStart: function(params) {
394                       // если пол известен на основании других полей,
395                       // используем его
396                       var $el = $(this);
397                       params.gender = isGenderKnown.call(self, $el) ? self.gender : "UNKNOWN";
398                   },
399                   onSelect: function(suggestion) {
400                       // определяем пол по выбранной подсказке
401                       self.gender = suggestion.data.gender;
402                   }
403               });
404           });
405       }
406   };
407
408   // Проверяет, известен ли пол на данный момент
409
410   function isGenderKnown($el) {
411       var self = this;
412       var surname = self.$surname.val(),
413           name = self.$name.val(),
414           patronymic = self.$patronymic.val();
415       if (($el.attr('id') == self.$surname.attr('id') && !name && !patronymic) ||
416           ($el.attr('id') == self.$name.attr('id') && !surname && !patronymic) ||
417           ($el.attr('id') == self.$patronymic.attr('id') && !surname && !name)) {
418           return false;
419       } else {
420           return true;
421       }
422   }
423   //initAddress($("input.address"));
424
425   //initAddress($("input.address"));
426
427   /** Подсказки с сервиса dadata на странице оформление заказа end **/
428});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.