PageSourceSearch

https://www.autowelt-schmidt.de/typo3temp/assets/vhs/vhs-assets-tx…er-tx-awsvehicle-vehicle-base.1790931965.js

js autowelt-schmidt.de collected 2026-10-05 06:03:51 UTC 8,712 bytes, 250 lines download raw bytes

1jQuery(document).ready(function($) {
2
3    var $resultWrapper,
4        resultWrapperUid,
5        loadBtnClass = '.load-more',
6        loadBtnVisible;
7
8    loadBtnVisible = $(loadBtnClass).is(':visible');
9
10    function defineResultWrapper(resultWrapperUid) {
11        $resultWrapper = $('.news-list-view#news-container-' + resultWrapperUid);
12    }
13    
14    function updateLoadBtn($loadBtn, $newLoadBtn) {
15        if ($newLoadBtn.length > 0) {
16            $loadBtn.attr('data-request-uri', $newLoadBtn.attr('data-request-uri'));
17            $loadBtn.attr('href', $newLoadBtn.attr('href'));
18            if (!loadBtnVisible) {
19                $loadBtn.fadeIn();
20                loadBtnVisible = true;
21            }
22        } else if (loadBtnVisible) {
23            $loadBtn.fadeOut();
24            loadBtnVisible = false;
25        }
26    }
27
28    function replaceResult($result, $newContent, append) {
29        $resultWrapper.animate({opacity: 0}, function () {
30            $resultWrapper.css('visibility', 'hidden');
31            if (!append) {
32                $resultWrapper.contents().remove();
33            }
34            $resultWrapper.append($newContent.contents());
35            $resultWrapper.wrapInner('<div/>');
36            $resultWrapper.css('visibility', 'visible');
37            $resultWrapper.animate({
38                opacity: 1
39            });
40            updateLoadBtn(
41                $resultWrapper.parent('.news').find(loadBtnClass),
42                $result.find(loadBtnClass)
43            );
44        });
45    }
46
47    var ajaxCall = function (url, $target, append) {
48
49        append = (append === undefined || append === null) ? false : append;
50
51        // return if no result wrapper exists
52        if ($resultWrapper.length === 0) {
53            return;
54        }
55        $.ajax({
56            async: 'true',
57            url: url,
58            type: 'POST',
59            dataType: 'html',
60            success: function (result) {
61                replaceResult($(result), $(result).find('.news-list-view'), append);
62            },
63            error: function (error) {}
64        });
65    };
66
67    var activeClass = 'active';
68
69    // handle click of category link
70    $(document).on('click', '.category-item', function (e) {
71        e.preventDefault();
72        if ($(e.target).hasClass(activeClass)) {
73            return;
74        }
75
76        var $targetLink = $(e.target),
77            uri = $targetLink.attr('data-request-uri');
78
79        resultWrapperUid = $targetLink.parents('ul.category-list').attr('data-listrecorduid');
80        defineResultWrapper(resultWrapperUid);
81
82        $('.category-item').removeClass(activeClass);
83        $targetLink.addClass(activeClass);
84
85        ajaxCall(uri, $targetLink);
86    });
87
88    $(document).on('click', loadBtnClass, function(e) {
89        e.preventDefault();
90
91        resultWrapperUid = $(e.target).attr('data-listrecorduid');
92        defineResultWrapper(resultWrapperUid);
93
94        ajaxCall($(e.target).attr('data-request-uri'), $(e.target), true);
95    });
96});
97
98var $vehicleResultWrapper,
99    vehicleAjaxType = 6763484623,
100    modelsCount = [];
101
102function replaceResults($html, callback) {
103    var $vehicleResultWrapper = $('#vehicleresults');
104
105    if ($vehicleResultWrapper.length === 0) {
106        return;
107    }
108
109    $vehicleResultWrapper.fadeOut(function () {
110        $vehicleResultWrapper.empty();
111        $vehicleResultWrapper.html($html.children()).promise().done(function(){
112            typeof callback === 'function' && callback();
113            $vehicleResultWrapper.fadeIn();
114        });
115    });
116}
117
118function cleanUpUrlParams(params, orderby) {
119    // get params only (without '?')
120    params = (params.indexOf('?') > -1) ? params.split('?')[1] : params;
121    // remove params with no values
122    params = params.replace(/[^=&]+=(&|$)/g, '').replace(/&$/, '');
123    // remove params with value 'all'
124    params = params.replace(/[^=&]+=all(&|$)/g, '').replace(/&$/, '');
125    // remove 'type' parameter
126    params = params.replace(/type=[0-9]+(&|$)/g, '');
127    // remove 'o' parameter
128    params = params.replace(/&o=[a-z]+(&|$)/g, '');
129    // prepend '?' back again
130
131    if(orderby && orderby.length > 1) {
132        return (params === '') ? '?o=' + orderby : '?' + params + '&o=' + orderby;
133    } else {
134        return (params === '') ? '' : '?' + params;
135    }
136}
137
138function updateUrlState(data, title, url) {
139    if (url !== '') {
140        history.replaceState(data, title, url);
141    } else {
142        // no query string fallback
143        history.replaceState(data, title, window.location.href.split('?')[0]);
144    }
145}
146
147var vehicleDispatcher = {
148    request: function(requestUrl, resultUrl, data, callback) {
149        $.ajax({
150            url: requestUrl,
151            type: 'POST',
152            dataType: 'json',
153            data: data,
154            success: function (result) {
155                replaceResults($(result), function () {
156                    updateUrlState(data, null, resultUrl);
157                    typeof callback === 'function' && callback(result);
158                });
159            }
160        });
161    },
162
163    updateModelCount: function() {
164        var url = jQuery('.btn-vehicle-search').attr('href')+'?type='+vehicleAjaxType+'&c=1';
165        
166        jQuery.ajax({
167            url: url,
168            type: 'POST',
169            dataType: 'json',
170            success: function (result) {
171                jQuery.each(result,function(key, value) {
172                });
173            }
174        });
175    },
176
177    updatePageCount: function() {
178        var url = $('.btn-vehicle-search').attr('href');
179
180        if (url != undefined) {
181            url = url + '?type=6763484623&c=1';
182
183            jQuery.ajax({
184                url: url,
185                type: 'POST',
186                dataType: 'json',
187                success: function (result) {
188                    if(result && result.hasOwnProperty('all')) {
189                        var $countBtn = jQuery('.btn-vehicle-search')
190                        var countBtnTitle = $countBtn.attr('title');
191                        $countBtn.html('<span>'+result.all+'</span>'+' '+countBtnTitle);
192                    }
193                    if(result && result.hasOwnProperty('models')) {
194                        modelsCount.regular = [];
195                        for(var slugModel in result.models){
196                            if(result.models.hasOwnProperty(slugModel)) {
197                                modelsCount.regular[slugModel] = result.models[slugModel];
198                            }
199                        }
200                    }
201                    if(result && result.hasOwnProperty('modelsElectricity')) {
202                        modelsCount.electricity = [];
203                        for(var slugElectricity in result.modelsElectricity){
204                            if(result.modelsElectricity.hasOwnProperty(slugEle
204ctricity)) {
205                                modelsCount.electricity[slugElectricity] = result.modelsElectricity[slugElectricity];
206                            }
207                        }
208                    }
209                    if(result && result.hasOwnProperty('modelsHybdrid')) {
210                        modelsCount.hybrid = [];
211                        for(var slugHybrid in result.modelsHybdrid){
212                            if(result.modelsHybdrid.hasOwnProperty(slugHybrid)) {
213                                modelsCount.hybrid[slugHybrid] = result.modelsHybdrid[slugHybrid];
214                            }
215                        }
216                    }
217                }
218            });
219        }
220    },
221};
222
223function initializeVehicleCount($modelItems) {
224    if ($.isEmptyObject(modelsCount) === false) {
225        $modelItems.find('.model-count[data-model-slug]').each(function (index, element) {
226            var count = 0;
227            $(element).attr('data-model-slug').split(',').forEach(function (slug) {
228                if ($(element).attr('data-model-hybrid') === '1') {
229                    if (modelsCount.hasOwnProperty('electricity') && modelsCount.electricity.hasOwnProperty(slug)) {
230                        count += Number(modelsCount.electricity[slug]);
231                    } else if (modelsCount.hasOwnProperty('hybrid') && modelsCount.hybrid.hasOwnProperty(slug)) {
232                        count += Number(modelsCount.hybrid[slug]);
233                    }
234                } else {
235                    if (modelsCount.hasOwnProperty('regular') && modelsCount.regular.hasOwnProperty(slug)) {
236                        count += Number(modelsCount.regular[slug]);
237                    }
238                }
239            });
240            if (count > 0) {
241                $(element).text(count);
242            }
243        });
244    }
245}
246
247$(document).ready(function() {
248    vehicleDispatcher.updatePageCount();
249});
250

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.