PageSourceSearch

https://www.endokrinologie.net/files/tao/js/script.js

js endokrinologie.net collected 2026-10-02 11:19:05 UTC 22,395 bytes, 777 lines download raw bytes

1// must be loaded at the end of the body element
2(function(){
3	var addEvent = function(element, events, func){
4			events = events.split(' ');
5			for (var i = 0; i < events.length; i++) {
6				if(element.addEventListener){
7					element.addEventListener(events[i], func, false);
8				}
9				else{
10					element.attachEvent('on'+events[i], func);
11				}
12			}
13		},
14		triggerEvent = function(element, eventName) {
15			var evt = document.createEvent('HTMLEvents');
16			evt.initEvent(eventName, true, true);
17			element.dispatchEvent(evt);
18		},
19		eventPreventDefault = function(event){
20			event = event || window.event;
21			if (!event) {
22				return;
23			}
24			if(event.preventDefault){
25				event.preventDefault();
26			}
27			else{
28				event.returnValue = false;
29			}
30		},
31		eventStop = function(event) {
32			event = event || window.event;
33			if (!event) {
34				return;
35			}
36			if(event.stopPropagation){
37				event.stopPropagation();
38			}
39			else{
40				event.cancelBubble = true;
41			}
42		},
43		elementMatches = function(element, selector) {
44			var methods = ['matches', 'matchesSelector', 'msMatchesSelector', 'mozMatchesSelector', 'webkitMatchesSelector'];
45			for (var i = 0; i < methods.length; i++) {
46				if (methods[i] in element) {
47					return element[methods[i]](selector);
48				}
49			}
50			return false;
51		},
52		addClass = function(element, className) {
53			var elements = ('length' in element && !('className' in element))
54				? element
55				: [element];
56			for (var i = 0; i < elements.length; i++) {
57				if (!hasClass(elements[i], className)) {
58					elements[i].className += ' ' + className;
59				}
60			}
61		},
62		removeClass = function(element, className) {
63			var elements = ('length' in element && !('className' in element))
64				? element
65				: [element];
66			for (var i = 0; i < elements.length; i++) {
67				if (hasClass(elements[i], className)) {
68					elements[i].className = elements[i].className.replace(new RegExp('(?:^|\\s+)' + className + '(?:$|\\s+)'), ' ');
69				}
70			}
71		},
72		hasClass = function(element, className) {
73			return !!element.className.match('(?:^|\\s)' + className + '(?:$|\\s)');
74		},
75		toggleClass = function(element, className) {
76			return hasClass(element, className)
77				? removeClass(element, className)
78				: addClass(element, className);
79		},
80		getZoomLevel = function() {
81			if (document.documentElement.clientWidth && window.innerWidth){
82				return document.documentElement.clientWidth / window.innerWidth;
83			}
84			return 1;
85		},
86		each = function(array, callback) {
87			if (!array || !array.length) {
88				return;
89			}
90			for (var i = 0; i < array.length; i++) {
91				callback(array[i], i);
92			}
93		},
94		navMain = document.getElementById('main-navigation'),
95		navMainLis, i, element, navMainTouched, touchUsed;
96
97	// Main navigation search
98	(function(elements){
99		for (var i = 0; i < elements.length; i++) {
100			addEvent(elements[i].getElementsByTagName('input')[0], 'focus', function(){
101				addClass(this.parentNode, 'focus');
102			});
103			addEvent(elements[i].getElementsByTagName('button')[0], 'focus', function(){
104				addClass(this.parentNode, 'focus');
105			});
106			addEvent(elements[i].getElementsByTagName('input')[0], 'blur', function(){
107				removeClass(this.parentNode, 'focus');
108			});
109			addEvent(elements[i].getElementsByTagName('button')[0], 'blur', function(){
110				removeClass(this.parentNode, 'focus');
111			});
112		}
113	})(document.querySelectorAll && document.querySelectorAll('.main-navigation-search'));
114
115	// Dropdown fix for all touch devices
116	if(window.Modernizr && Modernizr.touch){
117		if(navMain && navMain.getElementsByTagName('ul').length){
118			// devices supporting touch events may not mean touch input is used
119			// e.g. touch enabled laptops running Windows 8
120			addEvent(navMain, 'touchstart', function(event) {
121				touchUsed = true;
122			});
123			navMainLis = navMain.getElementsByTagName('ul')[0].childNodes;
124			for(i = 0; i < navMainLis.length; i++){
125				if(navMainLis[i].nodeName && navMainLis[i].nodeName.toLowerCase() === 'li' && navMainLis[i].querySelector('ul,.mega-dropdown')){
126					element = navMainLis[i].getElementsByTagName('a');
127					if(element && (element = element[0])){
128						addEvent(element, 'click', function(event){
129							if(navMainTouched !== this && touchUsed){
130								navMainTouched = this;
131								eventPreventDefault(event);
132							}
133						});
134					}
135				}
136			}
137		}
138	}
139
140	// Fixed elements
141	(function(header, tagline) {
142
143		if (!header) {
144			return;
145		}
146
147		var nav = header.querySelector('.header-navigation-inner');
148		var bar = header.querySelector('.header-bar');
149		var originalHeight;
150		var originalNavHeight;
151		var originalBarHeight;
152		var minNavHeight;
153		var minBarHeight;
154
155		var resetStyles = function() {
156			removeClass(header, 'is-fixed');
157			header.parentNode.style.paddingTop = '';
158			if (nav) {
159				nav.style.height = '';
160			}
161			if (bar) {
162				bar.style.overflow = '';
163				bar.style.height = '';
164			}
165			if (tagline) {
166				tagline.parentNode.style.overflow = '';
167				tagline.style.transform = tagline.style.WebkitTransform = '';
168				tagline.style.opacity = '';
169			}
170		};
171
172		var updateOriginalValues = function() {
173			resetStyles();
174			originalHeight = header.offsetHeight;
175			originalNavHeight = nav && nav.offsetHeight;
176			originalBarHeight = bar && bar.offsetHeight;
177			if (nav) {
178				nav.style.height = 0;
179			}
180			if (bar) {
181				bar.style.height = 0;
182			}
183			minNavHeight = nav && nav.offsetHeight;
184			minBarHeight = bar && bar.offsetHeight;
185			if (nav) {
186				nav.style.height = '';
187			}
188			if (bar) {
189				bar.style.height = '';
190			}
191		};
192
193		updateOriginalValues();
194
195		var scroll = function() {
196
197			if (getZoomLevel() > 1.01 || (window.matchMedia && window.matchMedia("(max-width: 900px)").matches)) {
198				resetStyles();
199				return;
200			}
201
202			var taglineHeight = tagline && tagline.offsetHeight;
203			var documentHeight = window.innerHeight || document.documentElement.clientHeight;
204			var offset = window.pageYOffset || document.documentElement.scrollTop || 0;
205
206			// Only allow scroll positions inside the possible range
207			offset = Math.min(
208				document.documentElement.scrollHeight - documentHeight,
209				offset
210			);
211			offset = Math.max(0, offset);
212
213			addClass(header, 'is-fixed');
214			header.parentNode.style.paddingTop = originalHeight + 'px';
215
216			if (nav) {
217				nav.style.height = Math.max(minNavHeight, originalNavHeight - offset) + 'px';
218				offset -= originalNavHeight - Math.max(minNavHeight, originalNavHeight - offset);
219			}
220
221			if (bar) {
222				if (offset > 0) {
223					bar.style.overflow = 'hidden';
224				}
225				else {
226					bar.style.overflow = '';
227				}
228				bar.style.height = Math.max(minBarHeight, originalBarHeight - offset) + 'px';
229				offset -= originalBarHeight - Math.max(minBarHeight, originalBarHeight - offset);
230			}
231
232			if (tagline) {
233				if (
234					offset > 0
235					&& offset < taglineHeight
236					&& taglineHeight + originalHeight < documentHeight
237				) {
238					tagline.parentNode.style.overflow = 'hidden';
239					tagline.style.transform = tagline.style.WebkitTransform =
240						'translate3d(0,'
241						+ Math.round(Math.min(offset, taglineHeight) / 2) + 'px,0)';
242					tagline.style.opacity = (taglineHeight - (offset / 1.5)) / taglineHeight;
243				}
244				else {
245					tagline.parentNode.style.overflow = '';
246					tagline.style.transform = tagline.style.WebkitTransform = 'translate3d(0,
2460,0)';
247					tagline.style.opacity = '';
248				}
249			}
250
251		};
252
253		addEvent(window, 'resize load', updateOriginalValues);
254		addEvent(window, 'scroll resize load', scroll);
255		scroll();
256
257	})(
258		document.querySelector && document.querySelector('.page-header'),
259		document.querySelector && document.querySelector('.tagline-inner')
260	);
261
262	// Mobile navigation
263	(function(nav, page) {
264		if (!nav) {
265			return;
266		}
267		document.body.insertBefore(nav, document.body.firstChild);
268		var navLink;
269		var isOpened;
270		var open, close;
271		var updateHeight = function() {
272			if (!isOpened) {
273				return;
274			}
275			if (!nav.offsetHeight) {
276				// Close the nav if it is not visible anymore
277				return close();
278			}
279			nav.style.minHeight = 0;
280			page.style.height = Math.max((window.innerHeight || document.documentElement.clientHeight), nav.offsetHeight) + 'px';
281			page.style.position = 'relative';
282			page.style.overflow = 'hidden';
283			nav.style.minHeight = '';
284		};
285		open = function() {
286			isOpened = true;
287			addClass(nav, 'is-active');
288			updateHeight();
289		};
290		close = function() {
291			isOpened = false;
292			removeClass(nav, 'is-active');
293			page.style.height = '';
294			page.style.position = '';
295			page.style.overflow = '';
296		};
297		addEvent(window, 'resize', updateHeight);
298		addClass(nav, 'is-enabled');
299		navLink = document.createElement('a');
300		navLink.innerHTML = 'navigation';
301		navLink.href = '';
302		addClass(navLink, 'main-navigation-mobile-open');
303		addEvent(navLink, 'click', function(event) {
304			eventPreventDefault(event);
305			if (hasClass(nav, 'is-active')) {
306				close();
307			}
308			else {
309				open();
310			}
311		});
312		if (document.querySelector && document.querySelector('.page')) {
313			document.querySelector('.page').insertBefore(
314				navLink,
315				document.querySelector('.page').firstChild
316			);
317		}
318		else {
319			nav.parentNode.insertBefore(navLink, nav);
320		}
321		closeButton = document.createElement('button');
322		closeButton.innerHTML = 'close';
323		addClass(closeButton, 'main-navigation-mobile-close');
324		addEvent(closeButton, 'click', function(event) {
325			if (isOpened) {
326				close();
327			}
328			eventPreventDefault(event);
329		});
330		nav.appendChild(closeButton);
331		var uls = nav.querySelectorAll('ul ul');
332		var button;
333		var buttonOnClick = function(event) {
334			toggleClass(this.parentNode, 'is-expanded');
335			toggleClass(this.parentNode, 'is-collapsed');
336			updateHeight();
337		};
338		for (var i = 0; i < uls.length; i++) {
339			button = document.createElement('button');
340			button.innerHTML = 'expand';
341			button.className = 'main-navigation-mobile-expand';
342			addEvent(button, 'click', buttonOnClick);
343			uls[i].parentNode.insertBefore(button, uls[i]);
344			if (hasClass(uls[i].parentNode, 'active') || hasClass(uls[i].parentNode, 'trail')) {
345				addClass(uls[i].parentNode, 'is-expanded');
346			}
347			else {
348				addClass(uls[i].parentNode, 'is-collapsed');
349			}
350		}
351	})(
352		document.querySelector && document.querySelector('.main-navigation-mobile'),
353		document.querySelector && document.querySelector('.page')
354	);
355
356	// Animations
357	(function() {
358
359		if (!window.Modernizr || !Modernizr.csstransitions) {
360			return;
361		}
362
363		var getCounterValue = function(data, multiplier) {
364			var value = data.number * multiplier;
365			return data.prefix
366				+ value.toFixed(data.precision).split('.').join(data.separator)
367				+ data.suffix;
368		};
369
370		var initCounterAnimation = function(element) {
371			if (!element.counterAnimationData) {
372				var value = element.innerHTML;
373				var matches = /^(.*?)(-?[0-9,.]*\d)(.*)$/.exec(value);
374				if (!matches || !matches.length) {
375					return;
376				}
377				var separator = matches[2].indexOf(',') > 0 ? ',' : '.';
378				matches[2] = matches[2].split(',').join('.');
379				if (isNaN(matches[2] * 1)) {
380					return;
381				}
382				element.counterAnimationData = {
383					original: value,
384					prefix: matches[1],
385					suffix: matches[3],
386					number: matches[2] * 1,
387					precision: Math.max(
388						0,
389						matches[2].length - matches[2].split('.')[0].length - 1
390					),
391					separator: separator,
392					duration: (element.getAttribute('data-animation-duration') || 1000) * 1
393				};
394			}
395			element.innerHTML = getCounterValue(element.counterAnimationData, 0);
396		};
397
398		var counterAnimations = [];
399
400		var runCounterAnimation = function() {
401			var animations = [];
402			var animation;
403			var multiplier;
404			for (var i = 0; i < counterAnimations.length; i++) {
405				animation = counterAnimations[i];
406				multiplier = Math.min(1, (
407					new Date().getTime() - animation.start
408				) / animation.data.duration);
409				if (multiplier < 1) {
410					animation.element.innerHTML = getCounterValue(
411						animation.data,
412						multiplier
413					);
414					animations.push(animation);
415				}
416				else {
417					animation.element.innerHTML = animation.data.original;
418				}
419			}
420			counterAnimations = animations;
421			if (window.requestAnimationFrame && counterAnimations.length) {
422				window.requestAnimationFrame(runCounterAnimation);
423			}
424		};
425
426		var startCounterAnimation = function(element) {
427			if (window.requestAnimationFrame && !counterAnimations.length) {
428				window.requestAnimationFrame(runCounterAnimation);
429			}
430			counterAnimations.push({
431				element: element,
432				data: element.counterAnimationData,
433				start: new Date().getTime()
434			});
435		};
436
437		var isHiddenInSlider = function (element) {
438			if (!element.slider) {
439				return false;
440			}
441			return !window.jQuery(element.element).closest('.rsts-slide').is(element.slider.getSlides()[element.slider.slideIndex].element);
442		};
443
444		var isInView = function(element) {
445			return (
446				(element.element.offsetWidth || element.element.offsetHeight)
447				&& (
448					element.element.getBoundingClientRect().top < (window.innerHeight || document.documentElement.clientHeight) * 0.8
449					|| element.element.getBoundingClientRect().bottom <= (window.innerHeight || document.documentElement.clientHeight)
450				)
451				&& !isHiddenInSlider(element)
452			);
453		};
454
455		var isNotInView = function(element) {
456			return (
457				(!element.element.offsetWidth && !element.element.offsetHeight)
458				|| element.element.getBoundingClientRect().top > (window.innerHeight || document.documentElement.clientHeight) * 1.2
459				|| isHiddenInSlider(element)
460			);
461		};
462
463		var elements = [];
464
465		var update = function() {
466			var rect;
467			each(elements, function(element) {
468				if (isInView(element)) {
469					if (element.element.counterAnimationData && !hasClass(element.element, 'in-view')) {
470						if (!hasClass(element.element, 'has-shown') || element.doesRepeat) {
471							startCounterAnimation(element.element);
472						}
473					}
474					addClass(element.element, 'in-view');
475					addClass(element.element, 'has-shown');
476					removeClass(element.element, 'not-in-view');
477				}
478				else if(isNotInView(element)) {
479					if (element.element.counterAnimationData && !hasClass(element.element, 'not-in-view') && element.doesRepeat) {
480						initCounterAnimation(element.element);
481					}
482					if (element.doesRepeat) {
483						addClass(element.element, 'not-in-view');
484						removeClass(element.element, 'in-view');
485					}
486				}
487			});
488		};
489
490		var updateElements = function(wrapper) {
491			wrapper = wrapper || document;
492			var newElements = wrapper.querySelectorAll && wrapper.querySelectorAll('.is-animated');
493			if (!newElements) {
494				return;
495			}
496			each(newElements, function(element) {
497				if (
498					!elementMatches(element, '.not-animated *, .not-animated')
499					&& elements.map(function(element) {
500						return element.element;
501					}).indexOf(element) === -1
502				) {
503					elements.push({
504						element: element,
505						doesRepeat: elementMatches(element, '.does-repeat *, .does-repeat'),
506						slider: window.jQuery && window.jQuery(element).closest('.rsts-main').data('rstSlider')
507					});
508					if (hasClass(element, '-counter')) {
509						initCounterAnimation(element);
510					}
511					addClass(element, 'not-in-view');
512				}
513			});
514		};
515
516		updateElements();
517
518		addEvent(window, 'scroll resize load', update);
519		if (window.jQuery) {
520			window.jQuery('.rsts-main, .mod_rocksolid_slider').on('rsts-slidestop', function() {
521				updateElements(this);
522				update();
523			});
524		}
525		setTimeout(update, 0);
526
527		if (window.requestAnimationFrame) {
528			window.requestAnimationFrame(runCounterAnimation);
529		}
530		else {
531			setInterval(runCounterAnimation, 16);
532		}
533
534	})();
535
536	// Background videos
537	(function(elements) {
538		if (!elements || !elements.length || !navigator.userAgent.match(/(iPhone|iPod)/)) {
539			return;
540		}
541		for (var i = 0; i < elements.length; i++) {
542			if (elements[i].poster) {
543				elements[i].parentNode.style.backgroundImage = 'url("' + elements[i].poster + '")';
544			}
545			elements[i].parentNode.removeChild(elements[i]);
546		}
547	})(document.querySelectorAll && document.querySelectorAll('.centered-wrapper-background > video'));
548
549	// Moving backgrounds
550	(function(elements) {
551		if (!elements || !elements.length || navigator.userAgent.match(/(iPad|iPhone|iPod)/)) {
552			return;
553		}
554		addEvent(window, 'mousemove', function(event) {
555			var percentage;
556			for (var i = 0; i < elements.length; i++) {
557				percentage = event.clientX / (
558					window.innerWidth ||
559					document.documentElement.clientWidth
560				);
561				if (hasClass(elements[i].parentNode, '-background-mousemove')) {
562					percentage = 1 - percentage;
563				}
564				percentage = Math.max(0, Math.min(1, percentage));
565				elements[i].style.transform =
566					elements[i].style.webkitTransform =
567					'translate3d(' + (percentage * -10) + '%, 0, 0)';
568			}
569		});
570	})(document.querySelectorAll && document.querySelectorAll('.-background-mousemove-inverted > .centered-wrapper-background, .-background-mousemove > .centered-wrapper-background'));
571
572	// Parallax backgrounds
573	(function(elements) {
574
575		if (!elements || !elements.length || navigator.userAgent.match(/(iPad|iPhone|iPod)/)) {
576			return;
577		}
578
579		if (!('transform' in elements[0].style) && !('webkitTransform' in elements[0].style)) {
580			return;
581		}
582
583		var imageCache = [];
584
585		var update = function(event) {
586
587			var windowHeight = window.innerHeight || document.documentElement.clientHeight;
588
589			// Get all dimensions from the browser before applying styles for better performance
590			var parentRects = [];
591			for (var i = 0; i < elements.length; i++) {
592				parentRects[i] = elements[i].parentNode.getBoundingClientRect();
593				if (!('width' in parentRects[i]) || !('height' in parentRects[i])) {
594					return;
595				}
596			}
597
598			var position, height;
599			for (i = 0; i < elements.length; i++) {
600				// Skip invisible elements
601				if (parentRects[i].bottom < 0 || parentRects[i].top > windowHeight) {
602					continue;
603				}
604				height = 0;
605				if (imageCache[i].width && imageCache[i].height) {
606					height = imageCache[i].height / imageCache[i].width * parentRects[i].width;
607				}
608				height = Math.round(Math.max(
609					height,
610					Math.min(parentRects[i].height, windowHeight) * 1.1
611				));
612				elements[i].style.bottom = 'auto';
613				elements[i].style.height = height + 'px';
614				if (height < windowHeight || (windowHeight < parentRects[i].height && height < parentRects[i].height)) {
615					position = parentRects[i].top / (windowHeight - parentRects[i].height)
616						* -(height - parentRects[i].height);
617				}
618				else {
619					position = (windowHeight - parentRects[i].top) / (windowHeight + parentRects[i].height)
620						* -(height - parentRects[i].height);
621				}
622				elements[i].style.transform =
623				elements[i].style.webkitTransform =
624					'translate3d(0, ' + Math.round(position) + 'px, 0)';
625			}
626
627		};
628		addEvent(window, 'scroll resize', update);
629
630		for (var i = 0; i < elements.length; i++) {
631			imageCache[i] = new Image();
632			addEvent(imageCache[i], 'load', update);
633			imageCache[i].src = elements[i].getAttribute
634				&& elements[i].getAttribute('data-image-url');
635		}
636
637	})(document.querySelectorAll && document.querySelectorAll('.-background-parallax > .centered-wrapper-background'));
638
639	// Header login
640	(function(elements) {
641		if (!elements || !elements.length) {
642			return;
643		}
644		var click = function(event) {
645			eventPreventDefault(event);
646			toggleClass(this.parentNode, 'is-active');
647			var input = this.parentNode.querySelector('input[type=text]');
648			if (input && hasClass(this.parentNode, 'is-active')) {
649				input.focus();
650			}
651			else {
652				this.blur();
653			}
654		};
655		var headline;
656		var button;
657		for (var i = 0; i < elements.length; i++) {
658			headline = elements[i].querySelector('h1, h2, h3, h4, h5, h6');
659			if (headline) {
660				headline.setAttribute('tabindex', '0');
661				addEvent(headline, 'click', click);
662				if (
663					hasClass(elements[i], 'logout')
664					&& (button = elements[i].querySelector('input[type=submit]'))
665				) {
666					headline.innerHTML = button.value;
667				}
668			}
669			if (elements[i].querySelector('.error')) {
670				addClass(elements[i], 'is-active');
671			}
672		}
673	})(document.querySelectorAll && document.querySelectorAll('.header-login'));
674
675	// Header Dropdown touch support
676	(function(elements) {
677		if (!elements || !elements.length) {
678			return;
679		}
680		var headline;
681		for (var i = 0; i < elements.length; i++) {
682			headline = elements[i].querySelector('h1, h2, h3, h4, h5, h6');
683			if (headline) {
684				headline.setAttribute('tabindex', '0');
685				addEvent(headline, 'click', function() {});
686			}
687		}
688	})(document.querySelectorAll && document.querySelectorAll('.header-dropdown'));
689
690	// Rotating boxes touch support
691	(function(elements) {
692		if (!elements || !elements.length) {
693			return;
694		}
695		for (var i = 0; i < elements.length; i++) {
696			addEvent(elements[i], 'touchend', function(event) {
697				if (event.target && hasClass(event.target, 'rotating-boxes-item-link')) {
698					return;
699				}
700				eventPreventDefault(event);
701				// Remove the hover state from the element on iOS
702				if (hasClass(this, 'hover')) {
703					var parent = this.parentNode;
704					var next = this.nextSibling;
705					parent.removeChild(this);
706					if (next) {
707						parent.insertBefore(this, next);
708					}
709					else {
710						parent.appendChild(this);
711					}
712					this.offsetWidth;
713				}
714				toggleClass(this, 'hover');
715			});
716		}
717	})(document.querySelectorAll && document.querySelectorAll('.rotating-boxes-item'));
718
719	// Tabs
720	(function(navigations) {
721
722		if (!navigations || !navigations.length) {
723			return;
724		}
725
726		var documentHref = document.location.href.split('#');
727
728		each(navigations, function(navigation) {
729
730			var links = navigation.querySelectorAll('a');
731			var targets = [];
732			var clickFirst;
733
734			each(links, function(link, i) {
735
736				var href = link.href.split('#');
737				if (
738					href[0] &&
739					documentHref[0].substr(- href[0].length) !== href[0]
740				) {
741					return;
742				}
743				var target = document.querySelector('#' + href[1]);
744				if (!target) {
745					return;
746				}
747
748				targets.push(target);
749
750				var onclick = function(event) {
751					eventPreventDefault(event);
752					eventStop(event);
753					each(targets, function(target) {
754						target.style.display = 'none';
755					});
756					removeClass(links, 'is-active');
757					addClass(link, 'is-active');
758					target.style.display = '';
759					link.blur();
760					triggerEvent(window, 'resize');
761				};
762				addEvent(link, 'click', onclick);
763
764				// First element
765				if (!clickFirst) {
766					clickFirst = onclick;
767				}
768
769			});
770
771			clickFirst();
772
773		});
774
775	})(document.querySelectorAll && document.querySelectorAll('.tab-navigation'));
776
777})();

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.