PageSourceSearch

https://www.cisi.org/cisiweb2/js/basket2.js?v=638956009369000091

js cisi.org collected 2026-10-01 12:10:14 UTC 30,398 bytes, 647 lines download raw bytes

1// list of workbooks with no ebooks
2var noEbookArray = [
3    86745343, 86744752, 86743843, 86743738, 86744439, 86744741, 86744719,
4    86744907, 86744914, 86743853, 86744082, 86744798, 86744677, 382, 484, 450,
5    508, 501, 468, 86745116, 86745191, 86745207, 86745276, 86745274, 86745287,
6    86745316, 86745322, 591, 86745354, 86745362, 86745365, 86745383, 86745394,
7    86745398, 86745399, 626, 86745421, 86745435, 86745449, 86745451, 86745455,
8    643, 86745463, 86745471, 86745477, 86745478, 644, 655, 570, 86745510,
9    86745524, 662, 86745585, 86745585, 86745586, 86745590,
10];
11
12$(document).ready(function () {
13    $("#fullscreenMessageClose").text(lang.Close);
14
15    // Hide browse shop block from spanish checkout
16    if (window.location.href.indexOf("/es/") > -1) {
17        $("#browseShopSection").css("visibility", "hidden");
18    }
19
20    $.when(CISI.basket.pageLoadPromise()).done(function () {
21        //$('#messages').html('<div class="generalMessage"></div><div id="loader-wrapper" class="waiting"><div id="loader"></div></div>');
22        loadBasket();
23    });
24
25    $("#basketItems").on("click", ".deleteItem", function () {
26        CISI.basket.removeItem({
27            basketItemID: $(this).data("shopitemid"),
28            //$container: $('#messages'),
29            success: function () {
30                loadBasket();
31            },
32            error: function () { },
33        });
34    });
35
36    if (CISI.urlVars.abandonedbasketid > 0) {
37        if (!CISI.person.isAnonymous) {
38            $("#abandonedBasketMessage").modal();
39            //loadAbandonedBasket(); -- Fix for TFS 74980
40        } else if (CISI.person.isAnonymous) {
41            $("#abandonedBasketMessage").modal();
42            // window.location.href =
43            //     "https://www.cisi.org/cisiweb2/en/Signin?returnURL=https://www.cisi.org/cisiweb2/shop/basket?abandonedbasketid=" +
44            //     CISI.urlVars.abandonedbasketid +
45            //     "";
46        }
47    }
48});
49
50function loadAbandonedBasket() {
51    var changeAbandonedBasketAPI = new BitmarkAPI();
52    changeAbandonedBasketAPI.httpType = "PUT";
53    changeAbandonedBasketAPI.webService =
54        "Basket/" + CISI.person.personID + "/ChangeAbandonedBasket";
55    changeAbandonedBasketAPI.canShowSuccessMessage = false;
56    changeAbandonedBasketAPI.params = {
57        abandonedBasketID: CISI.urlVars.abandonedbasketid,
58        currentBasketID: 0,
59        skipWarningMessages: true,
60    };
61    changeAbandonedBasketAPI.success = function (data) {
62        if (data != null) {
63            loadBasketAbandonedBasket(data.id);
64        }
65    };
66    changeAbandonedBasketAPI.error = function (data) {
67        //disable loader
68        //$('div#loader-wrapper').hide();
69    };
70    changeAbandonedBasketAPI.start();
71}
72
73function loadBasketAbandonedBasket(basketID) {
74    if (basketID > 0) {
75        var getBasketParams = {
76            _basketID: basketID,
77            _hasChanged: true,
78            _isPurchasedBasketSearch: false,
79            success: function (data) {
80                CISI.basket._pageLoadPromise.resolve();
81                window.location.href = "/cisiweb2/shop/basket?ForceUserRefresh=1";
82            },
83        };
84        CISI.basket.getDetails(getBasketParams);
85    }
86}
87
88function loadBasket() {
89    if (CISI.person.isAnonymous == false) {
90        $("#loginDiscountMessage").hide();
91    }
92
93    if (CISI.basket.getNoOfItems() == 0) {
94        $(".basketDetails").remove();
95        $(".basketIntro").html("<h1>Welcome to the CISI Online Shop</h1>");
96
97        //$('.generalMessage').html('Oops, there’s nothing in your basket at the moment').removeClass('error').addClass('warning').fadeIn();
98        //$("#browseShopSection").show();
99    } else {
100        //$("#browseShopSection").hide();
101        loadBasketItems();
102    }
103}
104
105function loadBasketItems() {
106    $("#basketItems").empty().fadeIn();
107    for (var newItemID in CISI.basket.current.items) {
108        var itemImage = "";
109        // show different image for those books that do not have an ebook
110        if (
111            $.cisiInArray(
112                CISI.basket.current.items[newItemID].shopItemID,
113                noEbookArray
114            ) > -1
115        ) {
116            itemImage =
117                '<img src="/cisiweb2/image/shop/productTypeNoEbook.png" class="productType">';
118        }
119        // all other books that do contain ebooks
120        else {
121            itemImage =
122                '<img src="/cisiweb2/image/shop/productType' +
123                CISI.basket.current.items[newItemID].productTypeID +
124                '.png" class="productType">';
125        }
126        var description = CISI.basket.current.items[newItemID].description;
127        if (CISI.basket.current.items[newItemID].isElearning)
128            description = description.replace("Publication: ", "Elearning: ");
129        else if (CISI.basket.current.items[newItemID].shopItemID == 86745530) {
130            description = description.replace("Publication: ", "");
131        } else if (CISI.basket.current.items[newItemID].shopItemID == 86746949) {
132            description = description.replace("Publication: ", "");
133        } else if (CISI.basket.current.items[newItemID].shopItemID == 86746366) {
134            $("#sriRepub").modal();
135        } else if (CISI.basket.current.items[newItemID].shopItemID == 86747923) {
136            $("#ccsRepub").modal();
137        } else if (CISI.basket.current.items[newItemID].shopItemID == 86747470) {
138            $("#vcRepub").modal();
139        } else if (CISI.basket.current.items[newItemID].shopItemID == 86743843) {
140            $("#difcRepub").modal();
141        } else if (
142            CISI.basket.current.items[newItemID].description ==
143            "Exam: Economics and Markets for Wealth Management (Mandarin)"
144        ) {
145            $("#EMWMM").modal();
146        } else if (
147            CISI.basket.current.items[newItemID].description ==
148            "Exam: Wealth Management Practice (Mandarin)"
149        ) {
150            $("#WMPM").modal();
151        } else if (
152            CISI.basket.current.items[newItemID].description ==
153            "Exam: International Certificate in Wealth & Investment Management (Mandarin)"
154        ) {
155            $("#CWIMC").modal();
156        } else if (CISI.basket.current.items[newItemID].shopItemID == 94514551) {
157            $("#cwims").modal();
158        } else if (CISI.basket.current.items[newItemID].shopItemID == 94514587) {
159            $("#fcis").modal();
160        } else if (
161            CISI.basket.current.items[newItemID].shopItemID == 94514543 ||
162            CISI.basket.current.items[newItemID].shopItemID == 94514544
163        ) {
164            $("#fibf").modal();
165        } else if (CISI.basket.current.items[newItemID].shopItemID == 1019) {
166            $("#pabundle").modal({
167                keyboard: false,
168                backdrop: "static",
169            });
170        } else if (CISI.basket.current.items[newItemID].shopItemID == 1181) {
171            $("#pabundle").modal({
172                keyboard: false,
173                backdrop: "static",
174            });
175        } else if (CISI.basket.current.items[newItemID].shopItemID == 1186) {
176            $("#pabundle").modal({
177                keyboard: false,
178                backdrop: "static",
179            });
180        } else if (CISI.basket.current.items[newItemID].shopItemID == 1029) {
181            $("#linkpackBundle").modal({
182                keyboard: false,
183                backdrop: "static",
184            });
185        }
186
187        // remove delete button and quantity select dropdown for IM
188        if (
189            description.includes("IntegrityMatters") ||
190            description.includes("Integrity Matters")
191        ) {
192            CISI.basket.current.items[newItemID].canDelete = false;
193            CISI.basket.current.items[newItemID].hasQuantity = false;
194        }
195        // broken QRF product - missing shopitemid
196        if (CISI.basket.current.items[newItemID].shopItemID) {
197            // bodge to show correct discount amounts for IM modules
198            if (
199                CISI.basket.current.items[newItemID].shopItemID == 23259966 ||
200                CISI.basket.current.items[newItemID].shopItemID == 86744307
201            ) {
202                $("#basketItems").append(
203                    '<div class="row basketItemWrapper verticallyCentre2 basketItemWrapper' +
204                    CISI.basket.current.items[newItemID].shopItemID +
205                    "" +
206                    (CISI.basket.current.items[newItemID].isDiscounted
207                        ? " discountedItem"
208                        : "") +
209                    '" id="' +
210                    CISI.basket.current.items[newItemID].ID +
211                    '">' +
212                    '<div class="col-xs-7 itemLabel verticallyCentre2">' +
213                    itemImage +
214                    '<div class="itemText"><span class="itemDescription">' +
215                    description +
216                    "</span>" +
217                    (CISI.basket.current.items[newItemID].effectiveFrom != null
218                        ? '<span class="effectiveDate">Effective from: ' +
219                        $.cisiPrepareValue(
220                            CISI.basket.current.items[newItemID].effectiveFrom
221                        ) +
222                        " - Effective to: " +
223                        $.cisiPrepareValue(
224                            CISI.basket.current.items[newItemID].effectiveTo
225                        ) +
226                        "</span>"
227                        : "") +
228                    (CISI.basket.current.items[newItemID].date != null
229                        ? '<span class="eventDate">Date: ' +
230                        $.cisiPrepareValue(CISI.basket.current.items[newItemID].date) +
231                        "</span>"
232                        : "") +
233                    (CISI.basket.current.items[newItemID].time != null
234                        ? '<span class="eventTime">Time: ' +
235                        CISI.basket.current.items[newItemID].time +
236                        "</span>"
237                        : "") +
238                    (CISI.basket.current.items[newItemID].venue != null
239                        ? '<span class="eventVenue">Venue: ' +
240                        $.cisiPrepareValue(CISI.basket.current.items[newItemID].venue) +
241                        "</span>"
242                        : "") +
243                    '<span class="discountedItemText">' +
244                    (CISI.basket.current.items[newItemID].isDiscounted
245                        ? '<span class="discountedPrice">' +
246                        lang.Was +
247                        " £20</span> - " +
248                        lang.Now +
249                        " " +
250                        $.cisiPrepareValue(
251                            "£" + CISI.basket.current.items[newItemID].price
252                        ) +
253                        " (" +
254                        (CISI.person.isCISIMember &&
255                            CISI.basket.current.items[newItemID].productTypeID == 76
256                            ? "discount"
257                            : "" + lang.You_saved + "") +
258                        " £20)"
259                        : "") +
260                    "</span>" +
261                    "</div></div>" +
262                    '<div class="col-xs-2 qty">' +
263                    (CISI.basket.current.items[newItemID].hasQuantity &&
264                        !CISI.basket.isSendForPayment()
265                        ? '<select id="itemQuantity' +
266                        CISI.basket.current.items[newItemID].ID +
267                        '"></select>'
268                        : CISI.basket.current.items[newItemID].quantity) +
269                    "</div>" +
270                    '<div class="col-xs-3" >' +
271                    '<div class="price">' +
272                    (CISI.basket.current.items[newItemID].canDelete &&
273                        !CISI.basket.isSendForPayment()
274                        ? '<div class="showDeleteConfirm" data-toggle="collapse" data-target="#delete' +
275                        CISI.basket.current.items[newItemID].ID +
276                        '" data-shopitemid="' +
277                        CISI.basket.current.items[newItemID].ID +
278                        '" data-containerid="' +
279                        CISI.basket.current.items[newItemID].ID +
280                        '"><img src="/cisiweb2/image/shop/delete.png" class="deleteIcon"> <span class="deleteText">Delete</span></div>'
281                        : "") +
282                    '<div class="priceFigure">' +
283                    $.cisiPrepareValue(
284                        "£" + CISI.basket.current.items[newItemID].price
285                    ) +
286                    "</div></div>" +
287                    //(CISI.person.isAnonymous && CISI.basket.current.items[newItemID].productTypeID == 76 ? '<div class="memberPriceNote">This price does not yet include membership discounts</div>' : '') +
288                    "</div>" +
289                    (CISI.basket.current.items[newItemID].canDelete &&
290                        !CISI.basket.isSendForPayment()
291                        ? '<div class="deleteConfirmationWrapper collapse" id="delete' +
292                        CISI.basket.current.items[newItemID].ID +
293                        '"><div class="deleteConfirmationLabel">' +
294                        lang.Are_you_sure_you_want_to_remove_this_product +
295                        '</div><div class="btn btn-primary deleteItem" data-shopitemid="' +
296                        CISI.basket.current.items[newItemID].ID +
297                        '" data-containerid="' +
298                        CISI.basket.current.items[newItemID].ID +
299                        '">' +
300                        lang.Yes +
301                        '</div><div class="btn btn-default hideDeleteConfirm" data-toggle="collapse" data-target="#delete' +
302                        CISI.basket.current.items[newItemID].ID +
303                        '">' +
304                        lang.No +
305                        "</a></div>"
306                        : "") +
307                    "</div>"
308                );
309            } else {
310                $("#basketItems").append(
311                    '<div class="row basketItemWrapper verticallyCentre2 basketItemWrapper' +
312                    CISI.basket.current.items[newItemID].shopItemID +
313                    "" +
314                    (CISI.basket.current.items[newItemID].isDiscounted
315                        ? " discountedItem"
316                        : "") +
317                    '" id="' +
318                    CISI.basket.current.items[newItemID].ID +
319                    '">' +
320                    '<div class="col-xs-7 itemLabel verticallyCentre2">' +
321                    itemImage +
322                    '<div class="itemText"><span class="itemDescription">' +
323                    description +
324                    "</span>" +
325                    (CISI.basket.current.items[newItemID].effectiveFrom != null
326                        ? '<span class="effectiveDate">Effective from: ' +
327                        $.cisiPrepareValue(
328                            CISI.basket.current.items[newItemID].effectiveFrom
329                        ) +
330                        " - Effective to: " +
331                        $.cisiPrepareValue(
332                            CISI.basket.current.items[newItemID].effectiveTo
333                        ) +
334                        "</span>"
335                        : "") +
336                    (CISI.basket.current.items[newItemID].date != null
337                        ? '<span class="eventDate">Date: ' +
338                        $.cisiPrepareValue(CISI.basket.current.items[newItemID].date) +
339                        "</span>"
340                        : "") +
341                    (CISI.basket.current.items[newItemID].time != null
342                        ? '<span class="eventTime">Time: ' +
343                        CISI.basket.current.items[newItemID].time +
344                        "</span>"
345                        : "") +
346                    (CISI.basket.current.items[newItemID].venue != null
347                        ? '<span class="eventVenue">Venue: ' +
348                        $.cisiPrepareValue(CISI.basket.current.items[newItemID].venue) +
349                        "</span>"
350                        : "") +
351                    '<span class="discountedItemText">' +
352                    (CISI.basket.current.items[newItemID].isDiscounted
353                        ? '<span class="discountedPrice">' +
354                        lang.Was +
355                        " " +
356                        $.cisiPrepareValue(
357                            "£" + CISI.basket.current.items[newItemID].priceBeforeDiscount
358                        ) +
359                        "</span> - " +
360                        lang.Now +
361                        " " +
362                        $.cisiPrepareValue(
363                            "£" + CISI.basket.current.items[newItemID].price
364                        ) +
365                        " (" +
366                        (CISI.person.isCISIMember &&
367                            CISI.basket.current.items[newItemID].productTypeID == 76
368                            ? "discount"
369                            : "" + lang.You_saved + "") +
370                        " " +
371                        $.cisiPrepareValue(
372                            "£" + CISI.basket.current.items[newItemID].discount
373                        ) +
374                        ")"
375                        : "") +
376                    "</span>" +
377                    "</div></div>" +
378                    '<div class="col-xs-2 qty">' +
379                    (CISI.basket.current.items[newItemID].hasQuantity &&
380                        !CISI.basket.isSendForPayment()
381                        ? '<select id="itemQuantity' +
382                        CISI.basket.current.items[newItemID].ID +
383                        '"></select>'
384                        : CISI.basket.current.items[newItemID].quantity) +
385                    "</div>" +
386                    '<div class="col-xs-3" >' +
387                    '<div class="price">' +
388                    (CISI.basket.current.items[newItemID].canDelete &&
389                        !CISI.basket.isSendForPayment()
390                        ? '<div class="showDeleteConfirm" data-toggle="collapse" data-target="#delete' +
391                        CISI.basket.current.items[newItemID].ID +
392                        '" data-shopitemid="' +
393                        CISI.basket.current.items[newItemID].ID +
394                        '" data-containerid="' +
395                        CISI.basket.current.items[newItemID].ID +
396                        '"><img src="/cisiweb2/image/shop/delete.png" class="deleteIcon"> <span class="deleteText">Delete</span></div>'
397                        : "") +
398                    '<div class="priceFigure">' +
399                    $.cisiPrepareValue(
400                        "£" + CISI.basket.current.items[newItemID].price
401                    ) +
402                    "</div></div>" +
403                    //(CISI.person.isAnonymous && CISI.basket.current.items[newItemID].productTypeID == 76 ? '<div class="memberPriceNote">This price does not yet include membership discounts</div>' : '') +
404                    "</div>" +
405                    (CISI.basket.current.items[newItemID].canDelete &&
406                        !CISI.basket.isSendForPayment()
407                        ? '<div class="deleteConfirmationWrapper collapse" id="delete' +
408                        CISI.basket.current.items[newItemID].ID +
409                        '"><div class="deleteConfirmationLabel">' +
410                        lang.Are_you_sure_you_want_to_remove_this_product +
411                        '</div><div class="btn btn-primary deleteItem" data-shopitemid="' +
412                        CISI.basket.current.items[newItemID].ID +
413                        '" data-containerid="' +
414                        CISI.basket.current.items[newItemID].ID +
415                        '">' +
416                        lang.Yes +
417                        '</div><div class="btn btn-default hideDeleteConfirm" data-toggle="collapse" data-target="#delete' +
418                        CISI.basket.current.items[newItemID].ID +
419                        '">' +
420                        lang.No +
421                        "</a></div>"
422                        : "") +
423                    "</div>"
424                );
425            }
426        }
427
428        var quantity =
429            10 -
430            (CISI.basket.getNoOfPublications() -
431                CISI.basket.current.items[newItemID].quantity);
432        var quantityList = [];
433        for (var i = 1; i <= quantity; i++) quantityList.push({ val: i, label: i });
434
435        // changing quantity of items
436        $("#itemQuantity" + CISI.basket.current.items[newItemID].ID)
437            .cisiSetupField({
438                fieldType: "select",
439                val: CISI.basket.current.items[newItemID].quantity,
440                inline: true,
441                options: quantityList,
442                itemID: CISI.basket.current.items[newItemID].ID,
443                previousVal: CISI.basket.current.items[newItemID].quantity,
444                isPublication:
445                    CISI.basket.current.items[newItemID].publicationTypeID == 4 ||
446                    CISI.basket.current.items[newItemID].publicationTypeID == 999,
447            })
448            .change(function () {
449                var $this = $(this);
450                var data = $this.data("cisi");
451                CISI.basket.changeItemQuantity({
452                    basketItemID: data.itemID,
453                    //$container: $('#messages'),// do: can probably replace with the main message in the master page
454                    quantity: $this.cisiVal(),
455                    success: function () {
456                        loadBasket();
457                    },
458                    error: function () {
459                        if ($this.cisiVal() != data.previousVal)
460                            $this.cisiVal(data.previousVal);
461                    },
462                });
463            });
464
465        $(".basketItemWrapper86745530 .qty .selectButton").prop(
466            "disabled",
467            "disabled"
468        );
469        $(".basketItemWrapper86745530 .itemLabel .productType").attr(
470            "src",
471            "/cisiweb2/image/shop/exam.png"
472        );
473
474        // AI remove wrong basket item for member grade, remember to use ID for basketItemID not shopItemID
475        if (CISI.basket.current.items[newItemID].shopItemID == 1086) {
476            if (!CISI.person.isCISIMember) {
477                CISI.basket.removeItem({
478                    basketItemID: CISI.basket.current.items[newItemID].ID,
479                    success: function () {
480                        CISI.basket.addPublicationBundle({
481                            shopItemID: 1088,
482                            success: function () {
483                                loadBasket();
484                            },
485                            error: function () { },
486                        });
487                    },
488                    error: function () { },
489                });
490            }
491        } else if (CISI.basket.current.items[newItemID].shopItemID == 1088) {
492            if (CISI.person.isCISIMember) {
493                CISI.basket.removeItem({
494                    basketItemID: CISI.basket.current.items[newItemID].ID,
495                    success: function () {
496                        CISI.basket.addPublicationBundle({
497                            shopItemID: 1086,
498                            success: function () {
499                                loadBasket();
500                            },
501                            error: function () { },
502                        });
503                    },
504                    error: function () { },
505                });
506            }
507        }
508    }
509
510    // Add sub totals
511    // PBI 5672
512    if ((CISI.person.currencyCode || "GBP") != "GBP") {
513        $("#basketSubTotals")
514            .empty()
515            .append(
516                '<div class="row">' +
517                '<div class="col-xs-8 col-sm-10">' +
518                '<div class="subTotalLabel">' +
519                lang.Subtotal_before_discounts +
520                "</div>" +
521                "</div>" +
522                '<div class="col-xs-4 col-sm-2">' +
523                '<div class="subTotalPrice">' +
524                $.cisiPrepareValue(
525                    "£" + CISI.basket.current.subtotalPriceBeforeDiscount
526                ) +
527                "</div>" +
528                "</div>" +
529                "</div>" +
530                (CISI.basket.hasDiscount()
531                    ? '<div class="row">' +
532                    '<div class="col-xs-8 col-sm-10">' +
533                    '<div class="discountLabel">' +
534                    lang.Discount +
535                    "</div>" +
536                    "</div>" +
537                    '<div class="col-xs-4 col-sm-2">' +
538                    '<div class="discountPrice">' +
539                    $.cisiPrepareValue("-£" + CISI.basket.current.discount) +
540                    "</div>" +
541                    "</div>" +
542                    "</div>"
543                    : "") +
544                (CISI.basket.hasDelivery()
545                    ? '<div class="row"><div class="col-xs-2 col-sm-8"></div><div class="col-xs-6 col-sm-2"><div class="postageLabel">Postage <span data-toggle="modal" data-target="#postage" class="glyphicon glyphicon-info-sign" aria-hidden="true"></span></div></div><div class="col-xs-4 col-sm-2"><div class="postagePrice">' +
546                    $.cisiPrepareValue("£" + CISI.basket.current.postage) +
547                    "</div></div></div>"
548                    : "")
549            );
550        $("#basketTotal")
551            .empty()
552            .append(
553                '<div class="row">' +
554                '<div class="col-xs-8 col-sm-10 totalLabel">' +
555                lang.Total_to_pay +
556                "</div>" +
557                '<div class="col-xs-4 col-sm-2 totalPrice">' +
558                $.cisiPrepareValue("£" + CISI.basket.current.totalPriceSurcharge) +
559                // '<br><span class="convertedPrice" data-toggle="modal" data-target="#currencyConvert">Approx. ' +
560                // CISI.person.currencySymbol +
561                // "" +
562                // Math.round(
563                //     CISI.basket.current.totalPriceSurcharge * CISI.person.currencyRate
564                // ) +
565                // ' <span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span></span>' +
566                "</div>" +
567                "</div>" +
568                '<div class="row">' +
569                '<div class="col-xs-12 col-sm-7">' +
570                "</div>" +
571                '<div class="col-xs-12 col-sm-5">' +
572                '<a href="basket/checkout" class="btn btn-default addToBasket">
572' +
573                lang.Proceed_to_checkout +
574                "</a>" +
575                "</div>" +
576                "</div>"
577            );
578    } else {
579        $("#basketSubTotals")
580            .empty()
581            .append(
582                '<div class="row">' +
583                '<div class="col-xs-8 col-sm-10">' +
584                '<div class="subTotalLabel">' +
585                lang.Subtotal_before_discounts +
586                "</div>" +
587                "</div>" +
588                '<div class="col-xs-4 col-sm-2">' +
589                '<div class="subTotalPrice">' +
590                $.cisiPrepareValue(
591                    "£" + CISI.basket.current.subtotalPriceBeforeDiscount
592                ) +
593                "</div>" +
594                "</div>" +
595                "</div>" +
596                (CISI.basket.hasDiscount()
597                    ? '<div class="row">' +
598                    '<div class="col-xs-8 col-sm-10">' +
599                    '<div class="discountLabel">' +
600                    lang.Discount +
601                    "</div>" +
602                    "</div>" +
603                    '<div class="col-xs-4 col-sm-2">' +
604                    '<div class="discountPrice">' +
605                    $.cisiPrepareValue("-£" + CISI.basket.current.discount) +
606                    "</div>" +
607                    "</div>" +
608                    "</div>"
609                    : "") +
610                (CISI.basket.hasDelivery()
611                    ? '<div class="row"><div class="col-xs-2 col-sm-8"></div><div class="col-xs-6 col-sm-2"><div class="postageLabel">Postage <span data-toggle="modal" data-target="#postage" class="glyphicon glyphicon-info-sign" aria-hidden="true"></span></div></div><div class="col-xs-4 col-sm-2"><div class="postagePrice">' +
612                    $.cisiPrepareValue("£" + CISI.basket.current.postage) +
613                    "</div></div></div>"
614                    : "")
615            );
616        $("#basketTotal")
617            .empty()
618            .append(
619                '<div class="row">' +
620                '<div class="col-xs-8 col-sm-10 totalLabel">' +
621                lang.Total_to_pay +
622                "</div>" +
623                '<div class="col-xs-4 col-sm-2 totalPrice">' +
624                $.cisiPrepareValue("£" + CISI.basket.current.totalPriceSurcharge) +
625                "</div>" +
626                "</div>" +
627                '<div class="row">' +
628                '<div class="col-xs-12 col-sm-7">' +
629                "</div>" +
630                '<div class="col-xs-12 col-sm-5">' +
631                '<a href="basket/checkout" class="btn btn-default addToBasket">' +
632                lang.Proceed_to_checkout +
633                "</a>" +
634                "</div>" +
635                "</div>"
636            );
637    }
638}
639
640/*
641if (CISI.person.personID == 341746 || CISI.person.personID == 489884 || CISI.person.personID == 692505 || CISI.person.personID == 198510 || CISI.person.personID == 573894 || CISI.person.personID == 599593) {
642    
643}
644else {       
645    $('#basketMaintenance').modal({backdrop: 'static', keyboard: false})  
646}
647*/

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.