PageSourceSearch

https://www.digitalcombatsimulator.com/local/templates/dcs/compone…/sale.basket.basket/.default/script.js

js digitalcombatsimulator.com collected 2026-10-01 10:27:19 UTC 11,333 bytes, 389 lines download raw bytes

1var obPopupWin;
2var LicenceButton = function(params)
3{
4    LicenceButton.superclass.constructor.apply(this, arguments);
5    this.nameNode = BX.create('span', {
6        props : { className : 'bx_medium bx_bt_button', id : this.id },
7        text: params.text
8    });
9    this.buttonNode = BX.create('span', {
10        attrs: { className: params.ownerClass },
11        style: { marginBottom: '0', borderBottom: '0 none transparent' },
12        children: [this.nameNode],
13        events : this.contextEvents
14    });
15    if (BX.browser.IsIE())
16    {
17        this.buttonNode.setAttribute("hideFocus", "hidefocus");
18    }
19};
20BX.extend(LicenceButton, BX.PopupWindowButton);
21function Licence()
22{
23    BX.ajax.load(
24        {
25        url: basketJSParams.PATH_TO_LICENSE,
26        type: 'html',
27        callback: LicenceResult
28        }
29    );
30}
31
32function LicenceResult(strContent)
33{
34    var buttons = [];
35
36    if (!!obPopupWin)
37    {
38        obPopupWin.close();
39    }
40    popupTitle = {
41        content: BX.create('div', {
42            text: BX.message('EULA')
43        })
44    };
45
46    InitPopupWindow();
47    strContent = strContent + '<p>' + BX.message('EULA_AGREE_TEXT') + '</p>';
48    strContent = strContent + '<div class="row"><input type="checkbox" name="legal_accept" id="edit-legal-accept" value="1" class="form-checkbox" />&nbsp;'+BX.message('EULA_AGREE')+'</div>';
49    buttons = [
50        new LicenceButton({
51            ownerClass: "btn btn-primary margin",
52            text: BX.message('EULA_CONFIRM'),
53            events: {
54                click: BX.delegate(ValidateEula)
55            }
56        }),
57        new LicenceButton({
58            ownerClass: "btn btn-default margin",
59            text: BX.message('EULA_CLOSE'),
60            events: {
61                click: BX.delegate(obPopupWin.close, obPopupWin)
62            }
63        })
64    ];
65    BX.adjust(obPopupWin.popupContainer, {
66        style : {
67            overflow: 'auto',
68            width: '85%',
69            height: '90%'
70        }
71    });
72    obPopupWin.popupContainer.className = 'popup-window-license';
73    obPopupWin.setTitleBar(popupTitle);
74    obPopupWin.setContent(strContent);
75    obPopupWin.setButtons(buttons);
76    obPopupWin.show();
77}
78function ValidateEula()
79{
80    if (document.getElementById("edit-legal-accept").checked)
81        document.location.href = basketJSParams.PATH_TO_ORDER;
82    else
83        alert(BX.message('EULA_CHECK'));
84}
85function InitPopupWindow()
86{
87    if (!!obPopupWin)
88    {
89        return;
90    }
91    obPopupWin = BX.PopupWindowManager.create('Licence', null, {
92        autoHide: true,
93        offsetLeft: 0,
94        offsetTop: 0,
95        overlay : true,
96        closeByEsc: true,
97        titleBar: true,
98        closeIcon: {}
99    });
100}
101function updateBasketTable(basketItemId, res)
102{
103    var table = BX("basket_items");
104
105    if (!table)
106        return;
107
108    var rows = table.rows,
109        newBasketItemId = res['BASKET_ID'];
110
111    // update product params after recalculation
112    for (var id in res.BASKET_DATA.GRID.ROWS)
113    {
114        if (res.BASKET_DATA.GRID.ROWS.hasOwnProperty(id))
115        {
116            var item = res.BASKET_DATA.GRID.ROWS[id];
117
118            if (BX('discount_value_' + id))
119                BX('discount_value_' + id).innerHTML = parseInt(item.DISCOUNT_PRICE_PERCENT)+"%";
120
121            if (BX('current_price_' + id))
122                BX('current_price_' + id).innerHTML = item.PRICE_FORMATED;
123
124            if (BX('old_price_' + id))
125                BX('old_price_' + id).innerHTML = (item.FULL_PRICE_FORMATED !== item.PRICE_FORMATED) ? item.FULL_PRICE_FORMATED : '';
126
127            if (BX('sum_' + id))
128                BX('sum_' + id).innerHTML = item.SUM;
129
130            /*if (BX('miles_' + id))
131                BX('miles_' + id).innerHTML = item.MILES;*/
132        }
133    }
134
135    // update coupon info
136    if (!!res.BASKET_DATA)
137        couponListUpdate(res.BASKET_DATA);
138
139    // update warnings if any
140    if (res.hasOwnProperty('WARNING_MESSAGE'))
141    {
142        var warningText = '';
143
144        for (var i = res['WARNING_MESSAGE'].length - 1; i >= 0; i--)
145            warningText += res['WARNING_MESSAGE'][i] + '<br/>';
146
147        BX('warning_message').innerHTML = warningText;
148        BX.removeClass(BX('warning_message'), 'hidden');
149    }
150    else
151    {
152        if (!BX.hasClass(BX('warning_message'), 'hidden'))
153            BX.addClass(BX('warning_message'), 'hidden');
154    }
155
156    if (BX('allSum_FORMATED'))
157        BX('allSum_FORMATED').innerHTML = res['BASKET_DATA']['allSum_FORMATED'];
158
159    if (BX('PRICE_WITHOUT_DISCOUNT'))
160        BX('PRICE_WITHOUT_DISCOUNT').innerHTML = (res['BASKET_DATA']['PRICE_WITHOUT_DISCOUNT'] !== res['BASKET_DATA']['allSum_FORMATED']) ? res['BASKET_DATA']['PRICE_WITHOUT_DISCOUNT'] : '';
161}
162
163function checkOut(){
164    BX("basket_form").submit();
165    return true;
166}
167
168function enterCoupon()
169{
170    var newCoupon = BX('COUPON');
171    if (!!newCoupon && !!newCoupon.value)
172        recalcBasketAjax({'COUPON' : newCoupon.value});
173}
174
175function recalcBasketAjax(params)
176{
177    BX.showWait();
178
179    var property_values = {},
180        action_var = BX('action_var').value,
181        postData,
182        i;
183
184    postData = {
185        'sessid': BX.bitrix_sessid(),
186        'site_id': BX.message('SITE_ID'),
187        'props': property_values,
188        'action_var': action_var,
189        'select_props': BX('column_headers').value,
190        'hide_coupon': BX('hide_coupon').value
191    };
192
193    postData[action_var] = 'recalculate';
194    if (!!params && typeof params === 'object')
195    {
196        for (i in params)
197        {
198            if (params.hasOwnProperty(i))
199                postData[i] = params[i];
200        }
201    }
202
203    BX.ajax({
204        url: '/'+BX('lang').value+'/personal/cart/ajax.php',
205        method: 'POST',
206        data: postData,
207        dataType: 'json',
208        onsuccess: function(result)
209        {
210            BX.closeWait();
211            if(params.COUPON)
212            {
213                //hello, gifts!
214                if(!!result && !!result.BASKET_DATA && !!result.BASKET_DATA.NEED_TO_RELOAD_FOR_GETTING_GIFTS)
215                {
216                    BX.reload();
217                }
218            }
219            BX.closeWait();
220            updateBasketTable(null, result);
221        }
222    });
223}
224
225function couponListUpdate(res)
226{
227    var couponBlock,
228        couponClass,
229        fieldCoupon,
230        couponsCollection,
231        couponFound,
232        i,
233        j,
234        key;
235
236    if (!!res && typeof res !== 'object')
237    {
238        return;
239    }
240
241    couponBlock = BX('coupons_block');
242    if (!!couponBlock)
243    {
244        if (!!res.COUPON_LIST && BX.type.isArray(res.COUPON_LIST))
245        {
246            fieldCoupon = BX('COUPON');
247            if (!!fieldCoupon)
248            {
249                fieldCoupon.value = '';
250            }
251            couponsCollection = BX.findChildren(couponBlock, { tagName: 'div', class: 'basket-coupon-alert' }, true);
252
253            if (!!couponsCollection)
254            {
255                if (BX.type.isElementNode(couponsCollection))
256                {
257                    couponsCollection = [couponsCollection];
258                }
259                for (i = 0; i < res.COUPON_LIST.length; i++)
260                {
261                    couponFound = false;
262                    key = -1;
263                    for (j = 0; j < couponsCollection.length; j++)
264                    {
265                        if ($(couponsCollection[j]).data('val') === res.COUPON_LIST[i].COUPON)
266                        {
267                            couponFound = true;
268                            key = j;
269                            couponsCollection[j].couponUpdate = true;
270                            break;
271                        }
272                    }
273                    if (couponFound)
274                    {
275                        couponClass = 'basket-coupon-alert';
276                        if (res.COUPON_LIST[i].JS_STATUS === 'APPLYED')
277                            couponClass = couponClass+' text-muted text-success';
278                        else
279                            couponClass = couponClass+' text-danger';
280
281                        BX.adjust(couponsCollection[key], {props: {className: couponClass}});
282                        $(couponsCollection[key]).find('.js-check-code').html(res.COUPON_LIST[i].JS_CHECK_CODE);
283                    }
284                    else
285                    {
286                        couponCreate(couponBlock, res.COUPON_LIST[i]);
287                    }
288                }
289                for (j = 0; j < couponsCollection.length; j++)
290                {
291                    if (typeof (couponsCollection[j].couponUpdate) === 'undefined' || !couponsCollection[j].couponUpdate)
292                    {
293                        BX.remove(couponsCollection[j]);
294                        couponsCollection[j] = null;
295                    }
296                    else
297                    {
298                        couponsCollection[j].couponUpdate = null;
299                    }
300                }
301            }
302            else
303            {
304                for (i = 0; i < res.COUPON_LIST.length; i++)
305                {
306                    couponCreate(couponBlock, res.COUPON_LIST[i]);
307                }
308            }
309        }
310    }
311    couponBlock = null;
312}
313
314function couponCreate(couponBlock, oneCoupon)
315{
316    var couponClass = 'basket-coupon-alert';
317
318    if (!BX.type.isElementNode(couponBlock))
319        return;
320
321    if (oneCoupon.JS_STATUS === 'APPLYED')
322        couponClass = couponClass+' text-muted text-success';
323    else
324        couponClass = couponClass+' text-danger';
325
326    var el = '<strong>'+oneCoupon.COUPON+'</strong> - '+ BX.message('COUPON_NAME')+' <span class="js-check-code">'+oneCoupon.JS_CHECK_CODE+'</span> ';
327    if(oneCoupon.DISCOUNT_NAME != '')
328        el += '('+oneCoupon.DISCOUNT_NAME+')';
329
330    couponBlock.appendChild(BX.create(
331        'div',
332        {
333            props: {
334                className: couponClass
335            },
336            attrs: {
337                'data-val': oneCoupon.COUPON
338            },
339            children: [
340                BX.create(
341                    'span',
342                    {
343                        props: {
344                            className: 'basket-coupon-text'
345                        },
346                        html: el
347                    }
348                ),
349                BX.create(
350                    'span',
351                    {
352                        props: {
353                            className: 'close-link'
354                        },
355                        attrs: {
356                            'data-coupon': oneCoupon.COUPON,
357                            'data-entity': "basket-coupon-delete"
358                        },
359                        text: ' '+ BX.message('COUPON_DELETE')
360                    }
361                )
362            ]
363        }
364    ));
365}
366
367function deleteCoupon()
368{
369    var target = this,
370        value;
371
372    if (BX.type.isElementNode(target) && target.hasAttribute('data-coupon'))
373    {
374        value = target.getAttribute('data-coupon');
375        if (BX.type.isNotEmptyString(value))
376        {
377            recalcBasketAjax({'delete_coupon' : value});
378        }
379    }
380}
381
382BX.ready(function() {
383
384    var couponBlock = BX('coupons_block');
385
386    if (BX.type.isElementNode(couponBlock))
387        BX.bindDelegate(couponBlock, 'click', { 'attribute': 'data-coupon' }, deleteCoupon);
388
389});

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.