PageSourceSearch

https://www.dachser.de/js/dachser.js?1790150602

js dachser.de collected 2026-09-25 20:08:46 UTC 36,390 bytes, 934 lines download raw bytes

1var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
2
3function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
4var getUrlParameter = function getUrlParameter(sParam) {
5	var sPageURL = decodeURIComponent(window.location.search.substring(1)),
6		sURLVariables = sPageURL.split('&'),
7		sParameterName,
8		i;
9
10	for (i = 0; i < sURLVariables.length; i++) {
11		sParameterName = sURLVariables[i].split('=');
12
13		if (sParameterName[0] === sParam) {
14			return sParameterName[1] === undefined ? true : sParameterName[1];
15		}
16	}
17};
18
19/* Search Results - START */
20const functionsUrl = '/includes/functions.php';
21
22var Search = function () {
23	function Search() {
24		_classCallCheck(this, Search);
25
26		this.page = 1;
27		this.size = 10;
28		this.query = getUrlParameter('search') || '';
29	}
30
31	_createClass(Search, [{
32		key: 'searchLoadMore',
33		value: function searchLoadMore() {
34			
35			var HtmlString = '';
36			$.get(functionsUrl, {
37				loadMore: 1,
38				page: this.page,
39				size: this.size,
40				query: this.query,
41				database: $('html').attr('data-lang')
42			}, function (response) { 
43				$.each(response.hits, function (key, value) {
44					HtmlString = '<li class="search-result"><h2 class="search-result__title"><a href="' + value.data.url + '">' + value.data.title + '</a></h2><a class="search-result__url" href="' + value.data.url + '">' + value.data.url + '</a><p>' + value.highlight + '</p></li>';
45					$('.search-results__list').append(HtmlString);
46				});				
47				$('.search-results__count .from').text($('.search-results__list li.search-result').length)
48				
49				if ($('.search-results__list li.search-result').length == $('.search-results__count .to').text()) {
50				    $('.search-results__footer button').attr('disabled', true);
51				}
52			}).done(
53				
54			);
55		}
56	}]);
57
58	return Search;
59}();
60
61mySearch = new Search();
62
63$('.search-results__footer button').on('click', function(e) {
64	mySearch.page = mySearch.page + 1;
65	mySearch.searchLoadMore();
66});
67
68//tracking internal search
69$(document).ready(function() {
70    if (getUrlParameter('search') != undefined && getUrlParameter('search') != '') {
71        if ($('.search-results__list li.search-result').length) {
72            var searchSuccess = 'success';
73        } else {
74            var searchSuccess = 'no results';
75        }
76        
77        var cc_attributes = new Object();
78            cc_attributes["etcc_cu"] = "onsite";
79            cc_attributes["etcc_med_onsite"] = 'InternalSearch'; 
80            cc_attributes["etcc_cmp_onsite"] = searchSuccess; 
81            cc_attributes["etcc_st_onsite"] = getUrlParameter('search');
82        
83        //console.log(cc_attributes);
84        var etrackerLoaded = new Promise(function (resolve, reject) {
85        	resolve($.getScript('https://code.etracker.com/code/e.js'));
86        });
87        
88        etrackerLoaded.then(function (response) {
89            et_eC_Wrapper(
90                {
91                    et_et: 'YD3eP3',
92                    et_pagename:et_pagename,
93                    cc_attributes:cc_attributes
94                }
95            );
96            // console.log('et_eC_Wrapper loaded');
97        }, function (xhrObj) {
98        
99        });
100    }
101});
102
103/* Search Results - ENDE */
104
105/*
106	Contact Form - START
107*/
108rm.base.registerContactSubmitCallback(function (event) {
109    // `event` is the form's submit event,
110    // so event.target is the form element
111    var $thisForm = $('.contact__form');
112    var formData = $thisForm.serialize();
113    var formSubmitUrl = $thisForm.attr('form-action');
114
115    $.ajax({
116        type: "GET",
117        url: formSubmitUrl,
118        data: formData,
119        dataType: "json",
120        success: function (data) {
121            if(data.send == true) {
122                $thisForm.parent('.contact').hide();
123                $('.contact__confirm').show();
124                
125                //console.log(new et_LinkEvent('contact send', 'contact form'));
126                _etracker.sendEvent(new et_LinkEvent('contact send', 'contact form'));
127                window.scrollTo(0,$('.contact__confirm').offset().top-100);
128            }
129            if(data.entryExists == true) {
130                $thisForm.parent('.contact').hide();
131                $('.contact__entry-exists').show();
132                window.scrollTo(0,$('.contact__entry-exists').offset().top-100);
133            }
134        },
135        error: function () {
136            console.log('error handling here');
137        }
138    });
139});
140
141/*
142    Elastic Search Call
143*/
144$(function() {
145    if($('#header-search').length) {
146        
147        var elasticSearch = {
148            //where to get the string from to search for
149            source: $('#header-search'),
150            //where to insert suggestions
151            target: $('.autocomplete-overlay__result'),
152            //the string, elasic has to find suggestions for
153            queryString:'',
154            //the XMLHTTPRequest object returned from jQuery.post()
155            jqxhr:'',
156            //the response of the api-call
157            response:'',
158            //read queryString from source
159            getQueryString: function() {
160                this.queryString = this.source.val();
161            },
162            //get current language value
163            getLang: function() {
164                var languagevariant = '';
165                languagevariant = languagevariant.toLowerCase();
166                return languagevariant;
167            },
168            //call elastic-search-php
169            findSuggestion: function(visualizer) {
170                this.getQueryString();
171
172                this.jqxhr = $.post(
173                    "", 
174                    {"lang":this.getLang(),"query":this.queryString},
175                    function(data) {
176                        elasticSearch.response = data;
177                    }, 
178                    "json");
179                this.jqxhr.always(visualizer.emptyTarget);
180                this.jqxhr.done(visualizer.showSuggestions);
181                this.jqxhr.fail(visualizer.showError);
182
183            }
184        }
185
186        var esVis = {
187            //clean up target element
188            emptyTarget: function() {
189                elasticSearch.target.empty();
190            },
191            //push suggetions to DOM
192            showSuggestions: function(suggestions) {
193                if(elasticSearch.response.status === 'false' || elasticSearch.response.status === '0') {
194                    esVis.showError(suggestions);
195                } else {
196                    elasticSearch.target.empty();
197                    $.each(elasticSearch.response.values.suggestions, function(key, suggestion) {
198                        esVis.buildSuggestionStructure(suggestion);
199                    });
200                }
201            },
202            //push error-structure into DOM
203            showError: function(suggetions) {
204                elasticSearch.target.empty();
205                if(elasticSearch.response.status === 'false') {
206                    esVis.buildErrorStructureFail();
207                } else if(elasticSearch.response.status === '0') {
208                    esVis.buildErrorStructureNoMatch();
209                } else {
210                    esVis.buildErrorStructureFail();
211                }
212            },
213            //generate html for suggestions
214            buildSuggestionStructure: function(suggestionData, query) {
215                var suggestion = $('<li>',{
216                    class: 'autocomplete-overlay__result-item'
217                });
218                var link = $('<a>',{
219                    href:"search?bookmarked=false&search="+suggestionData.text
220                });
221                link.text(suggestionData.text);
222                suggestion.append(link);
223                elasticSearch.target.append(suggestion);
224            },
225            //generate html for error
226            buildErrorStructureFail: function() {
227                var error = $('<li>',{
228                    class: 'autocomplete-overlay__result-item'
229                });
230                error.text(elasticSearch.target.data('es-fail-message'));
231                elasticSearch.target.append(error);
232            },
233            //generate html for no match
234            buildErrorStructureNoMatch: function() {
235                var noMatch = $('<li>',{
236                    class: 'autocomplete-overlay__result-item'
237                });
238                noMatch.text(elasticSearch.target.data('es-no-match-message'));
239                elasticSearch.target.append(noMatch);
240            }
241        }
242
243        //global code
244        elasticSearch.source.on('input', function() {
245            if($(this).val().length >= 3) {
246                elasticSearch.findSuggestion(esVis);
247            }
248        });
249    }
250});
251/*
252    Elastic Search Call - End
253*/
254
255/*
256    Location Search
257*/
258function initLocationSearch() {
259console.log('initL');
260    if($('div.o-section--location-search').length) {
261    
262        $('.location-search__form').keypress(function (event) {
263			if (event.keyCode === 10 || event.keyCode === 13) {
264				event.preventDefault();
265			}
266		});
267    
268        $.ajax({
269                method: "GET",
270                url: "https://dachser-locations.atrivio.net/api/division",
271                datatype: "json",
272            success: function(response) {
273            console.log('ajaxL');
274                var division = response;
275                if(!division.hasOwnProperty('count') || division.count == 0) {
276                    divisionError();
277                } else {
278                    buildDivisions(division);
279                }
280            },
281            error: function() {
282                divisionError();
283            }
284        });
285    }
286
287    function buildDivisions(divisions) {
288        $.each(divisions.results, function(key, value) {
289            var li      = $('<li>');
290            var label   = $('<label>',{
291                            class: 'radio-button'
292                        });
293            var input   = $('<input>',{
294                            class: 'radio-button__input',
295                            name: 'location-search-type',
296                            type: 'radio'
297                        });
298            var radioOutline = $('<div>',{
299                                class: 'radio-button__box-outline'
300                            });
301            var radioLabel = $('<div>',{
302                                class: 'radio-button__label'
303                            });
304            var structure = li.append(label.append(input,radioOutline,radioLabel));
305        
306            structure.find('.radio-button__label').text(value.title);
307            structure.find('.radio-button__label').attr('data-div-id', value.id);
308
309            insertDivision(structure);
310        });
311
312        bindDivisionEvents();
313    }
314    
315    function insertDivision(set) {
316        $('div.location-search__expand .dropdown .dropdown__content ul.dropdown__list').append(set);
317    }
318
319    function divisionError() {
320        rm.base.locationSearchError('<div>'+$('form.location-search__form').attr('data-error-initial-fail')+'</div>');
321    }
322
323    function bindDivisionEvents() {
324        //select division on left dropdown
325        $('div.location-search__expand ul.dropdown__list li').each(function() {  
326            $(this).unbind().on('click', function() {
327                var divName = $(this).find('.radio-button__label').html();
328                var divisionSelectEvent = new et_UserDefinedEvent(divName, 'Location Search', 'click', 'Division Selection');
329				//console.log(divisionSelectEvent);
330				_etracker.sendEvent(divisionSelectEvent);
331                var divID = $(this).find('.radio-button__label').data('div-id');
332                $('#location-search-input').attr('data-selected-division', divID);
333                //either jump to input or start new search
334                if($('#location-search-input').val() == '') {
335                    $('#location-search-input').focus();
336                } else {
337                    var lat = $('#location-search-input').attr('data-lat');
338                    var lng = $('#location-search-input').attr('data-lng');
339                    var country = $('#location-search-input').attr('data-country');
340                    var divID = [$('#location-search-input').attr('data-selected-division')];
341
342                    getLocations(lat, lng, country, divID);
343                }
344            });
345        });
346
347        //catch input in textfield
348        $('#location-search-input').on('input', function() {
349            var input = $(this).val();
350            if(input.length > 0) {
351                getPlaces(input);
352            }
353        });
354    }
355
356    function getPlaces(input) {
357        autocomplete = new google.maps.places.AutocompleteService();
358        autocomplete.getQueryPredictions({input: input}, showPredictions);
359    }
360
361    function showPredictions(predictions, status) {
362        if(status == 'OK' && predictions.length > 0) {
363            var container = '.location-search__content .location-search__typeahead';
364            $(container).empty();
365            $.each(predictions, function(key, value) {
366
367                var button = $('<button>',{
368                                class:'location-finder'
369                            });
370                button.append('<svg class="icon"><use xlink:href="#icon-pin"></use></svg>');
371                var span = $('<span>',{
372                                id:value.place_id,
373                                class:'location-finder__label'
374                            });
375                span.text(value.description);
376                button.append(span);            
377
378                insertPrediction(button, container);                
379            });
380            bindPredictionEvents(container);
381        } else {
382            showPredictionsError(container);
383        }
384
385    }
386    
387    function insertPrediction(prediction, container) {
388        $(container).append(prediction);
389
390    }
391
392    function showPredictionsError(container) {
393        $(container).empty();
394        var button = $('<button>',{
395            class:'location-finder'
396        });
397        var span = $('<span>',{
398            class:'location-finder__label'
399        });
400        span.text($(container).attr('data-error-nop-connection'));
401        button.append(span);
402        $(container).append(button);
403    }
404    
405    function bindPredictionEvents(container) {
406
407		$(document).keypress(function (event) {
408			if (event.keyCode === 10 || event.keyCode === 13) {
409				$(container + ' .location-finder--focus').click();
410				return true;
411			}
412		});
413
414		$(container + ' .location-finder').each(function() {
415            $(this).unbind().click(function() {
416                var predicitionSelectEvent = new et_UserDefinedEvent($(this).text(), 'Location Search', 'click', 'Prediction Selection');
417				//console.log(predicitionSelectEvent);
418				_etracker.sendEvent(predicitionSelectEvent);
419				searchForPlace($(this), container);
420				return true;
421			});
422        });
423	}
424	
425	function searchForPlace(place, container) {
426		var googlePlace = new google.maps.places.PlacesService(document.createElement('div'));
427		var placeDetailsRequest = {
428			placeId: place.find('.location-finder__label').attr('id'),
429			fields: ['geometry', 'place_id', 'address_component']
430		};
431		var lat;
432		var lng;
433		var country;
434		googlePlace.getDetails(placeDetailsRequest, function(results, status){
435			if(status == google.maps.places.PlacesServiceStatus.OK) {
436				lat = results.geometry.location.lat();
437				lng = results.geometry.location.lng();
438				results.address_components.forEach(function(component) {
439				    if (component.types[0] == 'country') {
440				        country = component.short_name;
441			        }
442				});
443				//set coordinates for furthes searches of the same place
444				$('#location-search-input').attr('data-lat', lat);
445				$('#location-search-input').attr('data-lng', lng);
446				$('#location-search-input').attr('data-country', country);
447
448				var divID = [$('#location-search-input').attr('data-selected-division')];
449
450				getLocations(lat,lng,country,divID);     
451			} else {
452				placeDetailsError(container);
453			}
454		});
455	}
456
457    function placeDetailsError(container) {
458        showPredictionsError(container);
459    }
460
461    function getLocations(lat, lng, country, divID) {        
462        var container = '.location-search__results';
463        var url = "https://dachser-locations.atrivio.net/api/locations?";
464        var params = {lat:lat,lng:lng,filterDivision:divID,country:country};
465        params = encodeURIComponent(JSON.stringify(params));
466        url = url+"params="+params;
467        $.ajax({
468                method: "GET",
469                url: url,
470                datatype: "json",
471            success: function(response) {
472                var locations = response.results;
473                if(response.count > 0) {
474                    buildLocation(locations, container, '', '');
475                    $('.location-search__background-image--no-results').hide();
476                    $('.location-search__background-image--active-results').show();
477                } else {
478                    locationsError(container);
479                }
480            },
481            error: function() {
482                locationsError(container);
483            }
484        });
485    }
486
487    function locationsError(container) {
488        $(container).empty();
489        var errorItem = $('<div>',{
490            class:'location-search-result-item'
491        });
492        var errorTitle = $('<div>',{
493            class:'location-search-result__title'
494        });
495        errorTitle.text($(container).attr('data-error-no-locations'));
496
497        errorItem.append(errorTitle);
498
499        insertSearchResult(errorItem, container);
500    }
501
502    function buildLocation(locations, container, browserLat, browserLng) {
503        $(container).empty();
504        $.each(locations, function(key, location) {
505            var searchResult = $('<div>',{
506                class:'location-search-result-item'
507            });
508            
509            /*#########################################################*/
510            var resultTitle = $('<div>',{
511                class:'location-search-result__title'
512            });
513            resultTitle.text(location.legal + ' ' + location.orientation);
514    
515            /*#########################################################*/
516            var resultBody = $('<div>',{
517                class:'location-search-result__body'
518            });
519            
520            /*#########################################################*/
521            var address = $('<div>',{
522                class:'location-search-result__address location-search-result__column'
523            });
524            address.html(location.legal+'<br>'+location.address1+'<br>'+location.countryISO.toUpperCase()+' - '+location.zip+' '+location.city);
525            
526            /*#########################################################*/            
527            var contact = $('<div>',{
528                class:'location-search-result__contact location-search-result__column'
529            });
530            
531            /*#########################################################*/
532            if(location.phone != "") {
533                var tel = $('<a>',{
534                    href:'tel:'+location.phone
535                });
536                var telLabel = $('<span>'+$('.location-search__results').attr('data-txt-ls-phone')+' </span>');
537                tel.text(location.phone);
538                var telIconLine = $('<div>',{
539                    class:'location-search-result__icon-line'
540                });
541                telIconLine.append(telLabel);
542                tel = telIconLine.append(tel);
543            }
544            
545            /*#########################################################*/
546            if(location.fax != "") {
547                var fax = $('<span>');
548                fax.text(location.fax);
549                var faxLabel = $('<span>'+$('.location-search__results').attr('data-txt-ls-fax')+' </span>');
550                var faxIconLine = $('<div>',{
551                    class:'location-search-result__icon-line'
552                });
553                faxIconLine.append(faxLabel);
554                fax = faxIconLine.append(fax);
555            }
556
557            /*#########################################################*/
558            var mail = $('<a>',{
559                href:'mailto:'+location.email
560            });
561            mail.text(location.email);
562            var mailIconLine = $('<div>',{
563                class:'location-search-result__icon-line'
564            });
565            mail = mailIconLine.append(mail);
566            
567            /*#########################################################*/
568            var web = $('<a>',{
569                href:location.web
570            });
571            web.text(location.web);
572            var webIconLine = $('<div>',{
573                class:'location-search-result__icon-line'
574            });
575            web = webIconLine.append(web);
576            
577            /*#########################################################*/
578            contact.append(tel);
579            contact.append(fax);
580            contact.append(mail);
581            contact.append(web);
582
583            /*#########################################################*/
584            var resultLocation = $('<div>',{
585                class:'location-search-result__location location-search-result__column'
586            });
587            
588            /*#########################################################*/
589            if(browserLat != '' && browserLng != '') {
590                var mapsLink = $('<a>',{
591                    class: 'btn',
592                    href:'http://maps.google.com/?saddr='+browserLat+','+browserLng+'&daddr='+location.lat+','+location.lng,
593                    target:'_blank'
594                });
595            } else {
596                var mapsLink = $('<a>',{
597                    class: 'btn',
598                    href:'http://maps.google.com/?saddr=&daddr='+location.lat+','+location.lng,
599                    target:'_blank'
600                });
601            }
602            mapsLink.text($('#location-search-input').data('open-gmaps'));
603            mapsLink.attr('data-result_title', resultTitle.text());
604            
605            /*#########################################################*/
606            var resultCords = $('<div>',{
607                class:'location-search-result__icon-line--coords'
608            });
609            resultCords.html('<div>' + $('.location-search__form').data('coordinates-label') + '</div><div>'+location.lat+', '+location.lng+'</div>');
610            
611            /*#########################################################*/
612            resultLocation.append(resultCords);
613            
614            /*#########################################################*/
615            var mapsLinkResultLocation = $('<div>',{
616                class:'location-search-result__icon-line location-search-result__column'
617            });
618            mapsLinkResultLocation.append(mapsLink);
619
620            /*#########################################################*/
621            resultBody.append(address);
622            resultBody.append(contact);
623            resultBody.append(resultLocation);
624            resultBody.append(mapsLinkResultLocation);
625
626            /*#########################################################*/
627            searchResult.append(resultTitle);
628            searchResult.append(resultBody);
629
630            /*#########################################################*/
631            insertSearchResult(searchResult, container);
632        });
633    }
634    
635    function insertSearchResult(item, container) {
636        $(container).append(item);
637        $(container).show(1, function() {
638            $(item).find('a.btn').off('click').on('click', function() {
639                var title = $(this).attr('data-result_title');
640                var serachResultEvent = new et_UserDefinedEvent(title, 'Location Search', 'click', 'Map link');
641                //console.log(serachResultEvent);
642                _etracker.sendEvent(serachResultEvent);
643            });
644        });
645        
646        
647        /*$('.location-search-result-item').each(function(item) {
648            $(item).find('a.btn').off('click').on('click', function() {
649                var title = $(this).attr('data-result_title');
650                var serachResultEvent = new et_UserDefinedEvent(title, 'Location Search', 'click', 'Map link');
651                //console.log(serachResultEvent);
652                _etracker.sendEvent(serachResultEvent);
653            });
654        });*/
655    }
656};
657/*
658    Location Search - END
659*/
660/*
661/*
662    eTracker - START
663*/
664function initTracking() {
665    //Accordion
666    if($('.collapsible_box.js-collapsible_box').length) {
667        $('.collapsible_box.js-collapsible_box').on('mousedown', function(e) {
668            var title = $(this).find('span.collapsible_box__header__text')[0].innerHTML;
669            if ($(this).hasClass('is-closed')) {
670                var accordionEvent = new et_ClickEvent(title + '-open', 'Accordion');
671            } else {
672                var accordionEvent = new et_ClickEvent(title + '-close', 'Accordion');
673            }
674            _etracker.sendEvent(accordionEvent);
675        });
676    }
677    
678    //Sticky navigation
679    if($('#sticky-navigation').length) {
680        $('#sticky-navigation>section.elogistics').on('mousedown', function(e) {
681            var stickyNavEvent = new et_UserDefinedEvent('eLogistics', 'Sticky Nav', 'click', 'External Link');
682            //console.log(stickyNavEvent);
683            _etracker.sendEvent(stickyNavEvent);
684        });
685
686        $('#sticky-navigation>section:nth-child(2)').on('mousedown', function(e) {
687            var stickyNavEvent = new et_UserDefinedEvent('Country Switch', 'Sticky Nav', 'click', 'anchor');
688            //console.log(stickyNavEvent);
689            _etracker.sendEvent(stickyNavEvent);
690        });
691
692        $('#sticky-navigation>section:nth-child(3)').on('mousedown', function(e) {
693            var stickyNavEvent = new et_UserDefinedEvent('Contact', 'Sticky Nav', 'click', 'anchor');
694            //console.log(stickyNavEvent);
695            _etracker.sendEvent(stickyNavEvent);
696        });
697    }
698    
699    //Flyout navigation
700    if($('.main-nav').length) {
701        $('.main-nav').each(function() {
702            var navHeadline = $(this).find('.main-nav__header').html();
703            $(this).find('.main-nav__link').on('mousedown', function(e) {
704                var flyoutEvent = new et_UserDefinedEvent(e.target.innerHTML, 'Flyout Nav', 'click', navHeadline);
705                console.log(flyoutEvent);
706                _etracker.sendEvent(flyoutEvent);
707            });
708        });
709    }
710    
711	// Country Switch
712    if ($('.country-list__regions').length) {
713        $('.country-list__region').each(function() {
714			var country = $(this).find('.country-list__region__header').text().trim();
715			$(this).find('a').on('click', function() {
716				var countryLang = $(this).text().trim();
717				if (countryLang != country) {
718					var switchCountryTarget = country+'-'+countryLang;
719				} else {
720					var switchCountryTarget = country;
721				}
722				var languageSwitchEvent = new et_UserDefinedEvent(switchCountryTarget, 'Language Switch', 'click', 'Country Switch');
723				_etracker.sendEvent(languageSwitchEvent);
724			});
725		});
726	}
727
728    //tack & trace box
729    if ($('.track-trace__form').length) {
730        $('.track-trace__form').on('submit', function() {
731            var input = $('#track-trace-search-input').val();
732            var lang = $(this).find('input[name="javalocale"]').val();
733
734            var cc_attributes = new Object();
735            cc_attributes["etcc_cu"] = "onsite";
736            cc_attributes["etcc_med_onsite"] = 'Track&Trace'; 
737            cc_attributes["etcc_cmp_onsite"] = lang; 
738            cc_attributes["etcc_st_onsite"] = input;
739
740            if (input != '') {
741                et_eC_Wrapper(
742                    {
743                        et_et: 'YD3eP3',
744                        et_pagename:et_pagename,
745                        cc_attributes:cc_attributes
746                    }
747                );
748            }
749        });
750        
751        //eLogistics
752        $('.track-trace__tabs>a:nth-child(5)').unbind('click').bind('click', function(e) {
753            var linkEvent = new et_LinkEvent('eLogistics', 'track&trace-box');
754            //console.log(linkEvent);
755            _etracker.sendEvent(linkEvent);
756        });
757    }
758    
759    $('a[href^="mailto:"]').on('click', function (e) {
760        var uri = $(this).attr('href');
761        var email = uri.replace('mailto:', '');
762        var linkEvent = new et_LinkEvent(email[1], 'email mailto');
763        //console.log(linkEvent);
764        _etracker.sendEvent(linkEvent);
765    });
766    
767    $('.cards-related .card__overlay__actions a.btn').on('click', function() {
768        var linkEvent = new et_LinkEvent($(this).attr('href'), 'related cards');
769        //console.log(linkEvent);
770        _etracker.sendEvent(linkEvent);
771    });
772    
773    $('.overview__card a.btn').on('click', function() {
774        var linkEvent = new et_LinkEvent($(this).attr('href'), 'related cards');
775        //console.log(linkEvent);
776        _etracker.sendEvent(linkEvent);
777    });
778
779    //Footer
780    if ($('.footer__row').length) {
781
782        $('.footer__col.footer__col--newsletter').find('a.btn').unbind('click').bind('click', function() {
783            var newsletterClickSubscribe = new et_UserDefinedEvent('Newsletter Subscribe', 'Footer', 'click', 'Newsletter Section');
784            //console.log(newsletterClickSubscribe);
785            _etracker.sendEvent(newsletterClickSubscribe);
786        });
787    
788        $('.footer__col.footer__col--legal').find('a').unbind('click').bind('click', function() {
789            var legalClickEvent = new et_UserDefinedEvent($(this).text(), 'Footer', 'click', 'Legal Section');
790            //console.log(legalClickEvent);
791            _etracker.sendEvent(legalClickEvent);
792        });
793    
794        $('.footer__col.footer__col--mediaroom').find('a').unbind('click').bind('click', function() {
795            var mediaroomClickEvent = new et_UserDefinedEvent($(this).text(), 'Footer', 'click', 'Mediaroom Section');
796            //console.log(mediaroomClickEvent);
797            _etracker.sendEvent(mediaroomClickEvent);
798        });
799    
800        $('.footer__col.footer__col--social').find('a').unbind('click').bind('click', function() {
801            var socialClickEvent = new et_UserDefinedEvent($(this).text(), 'Footer', 'click', 'SocialMedia Section');
802            //console.log(socialClickEvent);
803            _etracker.sendEvent(socialClickEvent);
804        });
805    }
806    
807    if($('.search-results__list').length > 0) {
808        $('li.search-result a').on('click', function(e) {
809            var urlParams = new URLSearchParams(window.location.search);
810            var search = urlParams.get('search');
811            _etracker.sendEvent(new et_UserDefinedEvent($(this).attr('href'), 'Search Click Path', 'click', search));
812            //console.log($(this).attr('href'), 'Search Click Path', 'click', search);
813        });
814    }
815}
816/*
817    eTracker - END
818*/
819
820/*
821	Textlinks - START
822*/
823function createTextLinkList(href) {
824	$('#modal-text-links').find('.country-list__region').removeClass('hidden');
825	$('#modal-text-links').find('.country-list__region').removeClass('active');
826	$('#modal-text-links').find('[data-hreflang]').addClass('hidden');
827	$('#modal-text-links').find('.country-list__country__wrapper').addClass('hidden');
828	$('#modal-text-links').find('.country-list__country').addClass('hidden')
829	$.ajax({
830        type: "GET",
831		data: { file: href },
832        url: '../includes/textlink-proxy.php',
833        success: function (data) {
834			var hrefLang = '',
835				thisHref = '',
836				$thisElement;
837			data.forEach((element) => {
838				hrefLang = $(element).attr('hreflang');
839				thisHref = $(element).attr('href');
840				$thisElement = $('#modal-text-links').find('[data-hreflang="' + hrefLang + '"]');
841				$thisElement.attr('href', thisHref);
842				$thisElement.removeClass('hidden');
843				$thisElement.parents('.country-list__country').removeClass('hidden');
844				if($thisElement.parent().hasClass('app-switch__lang')) {
845					$thisElement.parents('.country-list__country').find('.country-list__country__wrapper').removeClass('hidden');
846				}
847				
848				if(hrefLang === 'fr-BE' || hrefLang === 'fr-LU' || hrefLang === 'de-CH') {
849					$('#modal-text-links').find('[data-hreflang="' + hrefLang + '"]').parents('.country-list__country').find('.country-list__country__wrapper').attr('href', thisHref);
850				}
851			});
852			
853			// Hide empty regions
854			var foundCountry = false;
855			$('#modal-text-links').find('.country-list__region').each(function() {
856				foundCountry = false;
857				$(this).find('.country-list__country').each(function() {
858					if(!$(this).hasClass('hidden')) {
859						foundCountry = true;
860					}
861				});
862				if(!foundCountry) {
863					$(this).addClass('hidden');
864				}
865			});
866        },
867        error: function () {
868            //console.log('error handling here');
869        }
870    });
871	$('#modal-text-links').find('.country-list__region__header').off().on('click', function(e) {
872		console.log($(e));
873		//$('#modal-text-links').find('.country-list__region').removeClass('active');
874		if(!$(this).parent('.country-list__region').hasClass('active')) {
875			$('#modal-text-links').find('.country-list__region').removeClass('active');
876			$(this).parent('.country-list__region').addClass('active');
877		} else {
878			$(this).parent('.country-list__region').removeClass('active');
879		}
880	});
881}
882$(document).ready(function() {
883	$('.modal-text-link').on('click', function(e) {
884		createTextLinkList($(this).attr('href'));
885	});
886});
887/*
888	Textlinks - END
889*/
890
891$(function() {
892var $zoomImage = $('.zoom');
893
894  $zoomImage.on('click', function () {
895    var zoomImageClone = $(this).find('img').clone();
896    var zoomCloseIcon = $(this).find('.zoom__close--icon').clone();
897    if ($('.zoomContainer').length < 1) {
898      $('body').append('<div class="zoomContainer"><div class="zoomContainerInner"></div></div>');
899      $('.zoomContainerInner').append([zoomImageClone, zoomCloseIcon]);
900
901      setTimeout(function () {
902        $('.zoomContainerInner').addClass('zoomScale');
903      }, 100);
904      zoomCloseIcon.off().on('click', function () {
905        $('.zoomContainerInner').removeClass('zoomScale');
906        setTimeout(function () {
907          $('.zoomContainer').remove();
908        }, 500);
909      });
910    }
911  });
912});
913
914$(document).ready(function() {
915	const media = document.querySelector('video');
916	$('.mute').on('click', function() {
917		if (media.muted) {
918			$(this).find('.sound-on').removeClass('hidden');
919			$(this).find('.sound-off').addClass('hidden');
920		} else {
921			$(this).find('.sound-on').addClass('hidden');
922			$(this).find('.sound-off').removeClass('hidden');
923		}
924		media.muted = !media.muted;
925	});
926	
927	if($('.overview-tiles-content').length > 0) { 
928	    $('.overview-tiles-content').each(function() { 
929	        if($(this).find('.overview__card').length < 3) { 
930	            $(this).siblings('h3').addClass('overviewTilesCenter');
931	        }
932	    })
933	}
934});

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.