PageSourceSearch

https://www.expert4house.com/modules/tvcmsfooterproduct/views/js/front.js

js expert4house.com collected 2026-10-06 17:37:16 UTC 4,845 bytes, 116 lines download raw bytes

1/**
2 * 2007-2025 PrestaShop
3 *
4 * NOTICE OF LICENSE
5 *
6 * This source file is subject to the Academic Free License (AFL 3.0)
7 * that is bundled with this package in the file LICENSE.txt.
8 * It is also available through the world-wide-web at this URL:
9 * http://opensource.org/licenses/afl-3.0.php
10 * If you did not receive a copy of the license and are unable to
11 * obtain it through the world-wide-web, please send an email
12 * to [email protected] so we can send you a copy immediately.
13 *
14 * DISCLAIMER
15 *
16 * Do not edit or add to this file if you wish to upgrade PrestaShop to newer
17 * versions in the future. If you wish to customize PrestaShop for your
18 * needs please refer to http://www.prestashop.com for more information.
19 *
20 *  @author    PrestaShop SA <[email protected]>
21 *  @copyright 2007-2025 PrestaShop SA
22 *  @license   http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
23 *  International Registered Trademark & Property of PrestaShop SA
24 *
25 * Don't forget to prefix your containers with your own identifier
26 * to avoid any conflicts with others containers.
27 */
28
29var mobileViewSize = 991;
30var storage;
31var langId = document.getElementsByTagName("html")[0].getAttribute("lang");
32var currentFtrProdModule = tvthemename + "_ftrprod_" + langId;
33jQuery(document).ready(function($) {
34    storage = $.localStorage;
35
36    function storageGet(key) {
37        return "" + storage.get(currentFtrProdModule + key);
38    }
39
40    function storageSet(key, value) {
41        storage.set(currentFtrProdModule + key, value);
42    }
43
44    function storageClear(key) {
45        storage.remove(currentFtrProdModule + key);
46    }
47    var StatusPopupAjax = true;
48
49    function footerproductslider() {
50        var customFooterproductSlider = [
51            //['slider className','navigation nextClass','navigation prevClass']
52            ['.tvcmsfooter-featured-product .tvmain-featured-product-wrapper-info-box', '.tvfooter-featured-product-next', '.tvfooter-featured-product-prev'],
53            ['.tvcmsfooter-new-product .tvmain-new-product-wrapper-info-box', '.tvfooter-new-product-next', '.tvfooter-new-product-prev'],
54            ['.tvcmsfooter-best-seller-product .tvmain-new-product-wrapper-info-box', '.tvfooter-best-seller-product-next', '.tvfooter-best-seller-product-prev'],
55        ];
56        for (var i = 0; i < customFooterproductSlider.length; i++) {
57            if ($(customFooterproductSlider[i][0]).length) {
58                $(customFooterproductSlider[i][0]).owlCarousel({
59                    loop: false,
60                    dots: false,
61                    nav: false,
62                    smartSpeed: tvMainSmartSpeed,
63                    responsive: {
64                        0: { items: 1 },
65                        320: { items: 1, slideBy: 1 },
66                        576: { items: 1, slideBy: 1 },
67                        768: { items: 1, slideBy: 1 },
68                        992: { items: 1, slideBy: 1 },
69                        1200: { items: 1, slideBy: 1 },
70                        1600: { items: 2, slideBy: 1 },
71                        1800: { items: 2, slideBy: 1 }
72                    }
73                });
74
75                $(customFooterproductSlider[i][1]).on('click', function(e) {
76                    e.preventDefault();
77                    $('.' + $(this).attr('data-parent') + ' .owl-nav .owl-next').trigger('click');
78                });
79
80                $(customFooterproductSlider[i][2]).on('click', function(e) {
81                    e.preventDefault();
82                    $('.' + $(this).attr('data-parent') + ' .owl-nav .owl-prev').trigger('click');
83                });
84            }
85        }
86    }
87    var gettvcmsfooterproductsajax = function() {
88        if (StatusPopupAjax && $('.tvfooter-product-box-layout').length) {
89            /*****Load Cache*****/
90            var data = storageGet("");
91            if (data != "null") {
92                $('.tvfooter-product-box-layout').html(data);
93                footerproductslider();
94            }
95            /*****Load Cache*****/
96            StatusPopupAjax = false;
97            $.ajax({
98                type: 'POST',
99                url: gettvcmsfooterproductlink,
100                success: function(data) {
101                    var dataCache = storageGet("");
102                    storageSet("", data);
103                    if (dataCache === 'null') {
104                        $('.tvfooter-product-box-layout').html(data);
105                        footerproductslider();
106                        customImgLazyLoad('.tvfooter-product-box-layout');
107                    }
108                },
109                error: function(jqXHR, textStatus, errorThrown) {
110                    console.log(textStatus, errorThrown);
111                }
112            });
113        }
114    }
115    themevoltyCallEventsPush(gettvcmsfooterproductsajax, null);
116});

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.