PageSourceSearch

https://www.patrimoinevivantnouvelleaquitaine.com/files/cto_layout/scripts/scripts.js

js patrimoinevivantnouvelleaquitaine.com collected 2026-10-08 08:46:52 UTC 24,842 bytes, 850 lines download raw bytes

1/* =============================================================================
2 * Set viewport meta tag
3 * ========================================================================== */
4jQuery(document).ready(function() 
5{
6	if( jQuery('body').hasClass('mobile') )
7	{
8		jQuery('head').append('<meta name="viewport" content="width=device-width,initial-scale=1.0">');
9	}
10});
11
12
13/* =============================================================================
14 * IOS workaround for wrong position bug under IOS11,12
15 * ========================================================================== */
16jQuery(document).ready(function() 
17{
18	if( jQuery('body').hasClass('ios') )
19	{
20		// current chrome, safari 11, safari 12
21		if( jQuery('body').hasClass('ch70') || jQuery('body').hasClass('sf11') || jQuery('body').hasClass('sf12')  )
22		{
23			jQuery("html, body").animate({scrollTop: 0});
24		}
25	} 
26});
27
28
29/* =============================================================================
30 * Universal optin loader
31 * ========================================================================== */
32function Eclipse_optin(strElementType)
33{
34	if(strElementType == undefined || strElementType == '')
35	{
36		return;
37	}
38	// user settings not applied yet
39	if(localStorage.getItem('user_privacy_settings') == undefined || localStorage.getItem('user_privacy_settings') == '' || localStorage.getItem('user_privacy_settings') <= 0)
40	{
41		return
42	}
43
44	// find all scripts having a data-src attribute
45	var targets = jQuery(strElementType+'[data-src]');	
46	
47	if(targets.length > 0)
48	{
49		jQuery.each(targets,function(i,e)
50		{
51			var privacy = jQuery(e).data('privacy');
52			if(privacy == undefined)
53			{
54				privacy = 0;
55			}
56			
57			var attr = 'src';
58			if(strElementType == 'link')
59			{
60				attr = 'href';
61			}
62			else if(strElementType == 'object')
63			{
64				attr = 'data';
65			}
66			
67			if(localStorage.getItem('user_privacy_settings') >= privacy)
68			{
69				jQuery(e).attr(attr,jQuery(e).data('src') );
70			}
71		});
72	}
73}
74
75jQuery(document).ready(function() 
76{
77	Eclipse_optin('script');
78	Eclipse_optin('link');
79	Eclipse_optin('iframe');
80	Eclipse_optin('object');
81	Eclipse_optin('img');
82});
83
84// listen to Eclipse.user_privacy Event
85jQuery(document).on('Eclipse.user_privacy',function(event,params)
86{
87	Eclipse_optin('script');
88	Eclipse_optin('link');
89	Eclipse_optin('iframe');
90	Eclipse_optin('object');
91	Eclipse_optin('img');
92});
93
94
95/* =============================================================================
96 * Eclipse_setPrivacy(intLevel)
97 * @param integer	Level of privacy
98 * ========================================================================== */
99function Eclipse_setPrivacy(intLevel)
100{
101	// set local storage
102	localStorage.setItem('user_privacy_settings',intLevel);
103	// set cookie for php
104	jQuery.cookie('user_privacy_settings',intLevel,{expires:30,path:'/'});
105	// fire event
106	jQuery(document).trigger('Eclipse.user_privacy',{'level':intLevel});
107}
108
109
110/* =============================================================================
111 * Eclipse_clearPrivacy(blnReload)
112 * @param boolean	Reload page true/false
113 * ========================================================================== */
114function Eclipse_clearPrivacy(blnReload)
115{
116	if(blnReload == undefined || blnReload == null)
117	{
118		blnReload = true;
119	}
120	
121	// clear local storage
122	localStorage.removeItem('user_privacy_settings');
123	// empty cookie
124	jQuery.removeCookie('user_privacy_settings',{path:'/'});
125	// fire event
126	jQuery(document).trigger('Eclipse.clear_privacy_settings',{});
127	
128	// reload page
129	if(blnReload)
130	{
131		location.reload();
132	}
133}
134
135
136/* =============================================================================
137 * mainmenu menuheader (deactivate link)
138 * ========================================================================== */
139jQuery(document).ready(function(){
140	jQuery('.mainmenu .menuheader').removeAttr("href");
141});
142
143/* =============================================================================
144 * mainmenu avoid_click
145 * ========================================================================== */
146jQuery(document).ready(function(){
147	jQuery('.mainmenu a.avoid_click, .smartmenu-content a.avoid_click, #mobnav a.avoid_click').attr("href","javascript:void(0);");
148	jQuery('.mainmenu a.avoid-click, .smartmenu-content a.avoid-click, #mobnav a.avoid-click').attr("href","javascript:void(0);");
149});
150
151/* =============================================================================
152 * ce_parallax scripts/parallax/
153 * ========================================================================== */
154if(!jQuery('body').hasClass('ios')){
155	jQuery(window).stellar({
156		horizontalScrolling: false,
157		responsive:true,
158	})
159}
160
161/* =============================================================================
162 * ce_table responsive 
163 * ========================================================================== */
164function respTables() {
165	jQuery('.ce_table').each(function() {
166	 	var tableWidth = jQuery(this).find('table').width();
167	 	var ce_tableWidth = jQuery(this).width();
168	 	if (tableWidth > ce_tableWidth) {
169		 	jQuery(this).addClass('overflow');
170	 	} else {
171		 	jQuery(this).removeClass('overflow');
172	 	}
173	});	
174};
175
176jQuery(document).ready(function(){
177	respTables();
178});
179
180jQuery(window).on("resize", function(){ 
181	respTables(); 
182});
183
184/* =============================================================================
185 * css3 animation (css/animate.css)
186 * ========================================================================== */
187var el = jQuery("body");
188var animationClasses = ["fadeIn", "zoomIn", "fadeInDown","fadeInDownBig","fadeInLeft","fadeInLeftBig","fadeInRight","fadeInRightBig","fadeInUp","fadeInUpBig","rotateIn","zoomIn","slideInDown","slideInLeft","slideInRight","slideInUp","bounceIn","bounceInDown","bounceInLeft","bounceInRight","bounceInUp"];
189jQuery.each(animationClasses, function(key, value){
190	el.find("." + value).each(function(){
191		jQuery(this).removeClass(value).attr("data-animate", value);
192		
193	});
194});
195	
196jQuery(document).ready(function() {
197	var animate_start = function(element) {
198		element.find('.animate').not('.nowaypoint').each(function() {
199			var item = jQuery(this);
200		    var animation = item.data("animate");
201		    if(jQuery('body').hasClass('ios') || jQuery('body').hasClass('android')) {
202		    	item.removeClass('animate');
203		    	return true;
204		    	
205		    } else {
206			    
207	            item.waypoint(function(direction) {
208	    			item.removeClass('animate').addClass('animated '+animation).one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function() {
209	    				item.removeClass(animation+' animated');
210	    			});
211	            },{offset: '90%',triggerOnce: true});
212	        }
213		});
214	};
215	
216	setTimeout(function() {
217		jQuery('.mod_article').each(function() {
218	        animate_start( jQuery(this) );
219	    });
220	},500);
221	
222});
223
224/* =============================================================================
225 * ce_youtube_background (scripts/jquery.mb.YTPlayer/)
226 * ========================================================================== */
227jQuery(document).ready(function() {
228	if(!jQuery('body').hasClass('mobile')) {
229		jQuery(".player").mb_YTPlayer();
230	}
231});
232
233/* =============================================================================
234 * scrollToTop
235 * ========================================================================== */
236jQuery(document).ready(function(){
237	jQuery('a.totop').click(function(e){
238    	e.preventDefault();
239    	jQuery("html, body").animate({scrollTop: jQuery('#contentwrapper').offset().top - 100}, 500);
240	});
241});
242
243/* =============================================================================
244 * sticky header
245 * ========================================================================== */
246jQuery(document).ready(function()
247{  
248	var header = jQuery('#header');
249	if(header)
250	{		
251		var childs = header.clone();
252		
253		var inner = '';
254		childs.wrap(function() 
255		{
256		  	inner += jQuery( this ).html();
257		});
258		inner += '';
259		
260		var stickyheader = document.createElement('div');
261		jQuery(stickyheader).attr('id','stickyheader').addClass('stickyheader').html(inner).insertAfter('.body_bottom');
262		jQuery('#stickyheader .inside').wrap('<div class="header cloned"></div>');
263		jQuery(stickyheader).find('a').removeAttr('tabindex');
264	}
265});
266
267function headerFixed() {
268	var topHeight = jQuery("#top-wrapper").outerHeight();
269	if(topHeight == jQuery(window).innerHeight())
270	{
271		topHeight = jQuery(window).innerHeight() / 3;
272	}
273	
274	if (jQuery(this).scrollTop() > topHeight) {
275		jQuery("body").addClass("fixed-header");
276		
277	} else {
278		jQuery("body").removeClass("fixed-header");
279    }
280};
281	
282jQuery(document).ready(function(){ 
283	headerFixed();
284});
285
286jQuery(window).scroll(function() {
287	headerFixed();
288});
289
290/* =============================================================================
291 * generate smartmenu on onepage_page
292 * ========================================================================== */
293jQuery(document).ready(function() {	
294	
295	/* delete menu of smartmenu */
296	var smartmenu = jQuery('body.onepage_page .body_bottom .smartmenu-content .smartmenu-table');
297	smartmenu.empty();
298	
299	/* clone mainmenu to smartmenu */
300	var mobSmartmenu = jQuery("body.onepage_page .header.original nav.mainmenu ul.level_1").clone().removeClass("mainmenu");
301	smartmenu.append(mobSmartmenu);
302});	
303
304/* =============================================================================
305 * smartmenu
306 * ========================================================================== */
307jQuery(document).ready(function(){ 
308
309	jQuery('.smartmenu-trigger').click(function(e){
310		jQuery('.smartmenu-content').addClass('open');
311		jQuery('.smartmenu').addClass('open');
312		jQuery('body').addClass('no_scroll');
313	});
314	
315	jQuery('.smartmenu-content .smartmenu-close').click(function(e){
316		jQuery('.smartmenu-content').removeClass('open');
317		jQuery('.smartmenu').removeClass('open');
318		jQuery('body').removeClass('no_scroll');
319	});
320	
321	jQuery('.smartmenu-content a:not(.submenu)').click(function(e){
322		// is not new window
323		if(jQuery(e.target).attr('target') != '_blank')
324		{
325			jQuery('.smartmenu-content').removeClass('open');
326			jQuery('body').removeClass('no_scroll');
327		}
328	});
329	
330	// open trail content on page load
331	jQuery('.smartmenu-content').find('.trail').addClass('open');
332	jQuery('.smartmenu-content').find('.trail > ul').show();
333});
334
335jQuery(document).ready(function(){ 
336	
337	jQuery('.smartmenu-content .subitems_trigger').on('click', function(){
338		var element = jQuery(this).parent('li');
339		if (element.hasClass('open')) {
340			element.removeClass('open');
341			element.find('li').removeClass('open');
342			element.find('ul').slideUp();
343		}
344		else {
345			element.addClass('open');
346			element.children('ul').slideDown();
347			element.siblings('li').children('ul').slideUp();
348			element.siblings('li').removeClass('open');
349			element.siblings('li').find('li').removeClass('open');
350			element.siblings('li').find('ul').slideUp();
351		}
352	});
353	
354});
355
356/* =============================================================================
357 * mmenu // jquery.mmenu.min.all.js
358 * ========================================================================== */
359jQuery(document).ready(function() {
360	
361	var mobnav = jQuery("body.onepage_page .header nav.mainmenu").clone().attr("id","mobnav").removeClass("mainmenu");
362	jQuery('.body_bottom').append(mobnav);
363	
364	mobnav = jQuery("#mobnav");
365	
366	// inject additional layout section [mmenu_top]
367	var content_mmenu_top = '';
368	if(jQuery('#mmenu_top'))
369	{
370		content_mmenu_top = jQuery('#mmenu_top').html();
371		mobnav.addClass('has_section mmenu_top');
372		jQuery('body > #mmenu_top').remove();
373	}
374	
375	// inject additional layout section [mmenu_bottom]
376	var content_mmenu_bottom = '';
377	if(jQuery('#mmenu_bottom'))
378	{
379		content_mmenu_bottom = jQuery('#mmenu_bottom').html();
380		mobnav.addClass('has_section mmenu_bottom');
381		jQuery('body > #mmenu_bottom').remove();
382	}
383	
384	// init mmenu
385	mobnav.mmenu(
386	{
387		"navbars": 
388		[
389			{"position": "top", "content": [content_mmenu_top]},
390			{"position": "bottom","content": [content_mmenu_bottom]}
391		],
392		setSelected: {parent: true, current: true},
393		onClick: {close: false, preventDefault: false}
394	});
395	
396	// open mmenu
397	var api = mobnav.data('mmenu');
398	jQuery('#nav-open-btn, #stickyheader #nav-open-btn').click(function()
399	{
400		api.open();
401	});
402
403	// is onepage
404	if(mobnav.hasClass('onepagenav')){
405		jQuery("#mobnav a:not(.backlink)").bind('click',function(e)
406		{
407	   		if(jQuery('body').hasClass('is_regular_page'))
408	   		{
409		   		window.location = jQuery(this).attr('href');
410		   		return true;
411	   		}
412	   		else
413	   		{
414	   			api.close();
415	   		}
416	 	});
417	}
418
419	// use internal forward pages as placeholders
420	mobnav.find('li.forward').click(function(e)
421	{
422		// check if button has a nested level
423		var next = jQuery(this).find('.mm-next');
424		if (next == undefined || next == null)
425		{
426			return true;
427		}
428		// prevent regular click event
429		e.preventDefault();
430		// open panel
431		api.openPanel( jQuery( next.data('target') ) );
432	});
433
434
435});
436
437/* =============================================================================
438 * megamenu
439 * ========================================================================== */
440jQuery(document).ready(function(){
441	jQuery('.mainmenu li.megamenu .level_2').wrap('<div class="megamenu-wrapper"></div>');
442	jQuery('li.megamenu.remove-link a.a-level_2').removeAttr("href");
443});
444	
445function megamenuWidth() {
446	var elWidth = jQuery(".header .inside").width();
447	jQuery(".header .mainmenu ul .megamenu-wrapper").css('width', elWidth);
448};
449	
450jQuery(window).on("resize", function(){ 
451	megamenuWidth(); 
452});
453
454jQuery(document).ready(function(){ 
455	megamenuWidth();
456});
457
458/* =============================================================================
459 * doubleTapToGo scripts/doubletaptogo/
460 * ========================================================================== */
461jQuery(document).ready(function(){
462	if(jQuery('body').hasClass('android') || jQuery('body').hasClass('win') || jQuery('body').hasClass('ios')){
463		jQuery('nav.mainmenu li.submenu:not(.level_2 .megamenu)').doubleTapToGo();
464		jQuery('.smartmenu li.submenu').doubleTapToGo();
465		jQuery('.top_metanavi li.submenu').doubleTapToGo();
466		jQuery('.header_metanavi li.submenu').doubleTapToGo();
467		jQuery('.mod_langswitcher li').doubleTapToGo();
468		
469		jQuery.each(jQuery('.mod_langswitcher li a'),function(i,elem)
470		{
471			jQuery(elem).click(function(e) { e.preventDefault(); window.location.href = jQuery(this).attr('href'); });
472		});
473	}
474});
475
476/* =============================================================================
477 * Add no-scroll class to body when lightbox opens
478 * ========================================================================== */
479jQuery(document).bind('cbox_open',function() {
480	jQuery('body').addClass('no_scroll');
481});
482
483jQuery(document).bind('cbox_closed',function() {
484	jQuery('body').removeClass('no_scroll');
485});
486
487/* =============================================================================
488 * remove class mainmenu in offcanvas menu
489 * ========================================================================== */
490jQuery(document).ready(function(){ 
491	jQuery('.mm-menu').removeClass('mainmenu');
492});
493
494/* =============================================================================
495 * offcanvas-top
496 * ========================================================================== */
497jQuery(document).ready(function(){ 
498	jQuery('.offcanvas-trigger').click(function(){
499		jQuery('#offcanvas-top').toggleClass('offcanvas-top-open');
500		jQuery('.offcanvas-trigger').toggleClass('offcanvas-top-open');
501	});
502});
503
504
505/* =============================================================================
506 * one-page-nav
507 * ========================================================================== */
508
509/**
510 * Add an item counter class to the body on one_page sites
511 */
512jQuery(document).ready(function() 
513{
514	if(jQuery('body').hasClass('onepage_page'))
515	{
516		// count articles in #slider
517		jQuery('body').addClass( 'onepage_items_' + jQuery('#slider .inside > .mod_article').length );
518	}
519});
520
521/**
522 * Initialize smooth scrolling to one page anchor links	
523 */
524jQuery(document).ready(function() {
525	
526	if(jQuery('body').hasClass('is_regular_page'))
527	{
528		jQuery('.smartmenu-content a').addClass('backlink');
529		jQuery('.onepage_page a').addClass('backlink');
530	}
531	
532	var stickyheader = jQuery(".stickyheader");
533	var header = jQuery(".header.original");
534	var lastActive = null;
535	var links = jQuery(".onepage_page .mainmenu a:not(.backlink), .onepage_page .onepagenav a:not(.backlink), .page_navigation a:not(.backlink), .smartmenu-content a:not(.backlink)");
536	var horizontalScroll = jQuery('body').hasClass('horizontal_scrolling');
537	// not on mobile devices because content is 100% 
538	if(horizontalScroll && jQuery('body').hasClass('mobile'))
539	{
540		horizontalScroll = false;
541	}
542	
543	var duration = 300;
544	var timeout = 200;
545	
546	// jump to hashtag anchor in url
547	var strHash = window.location.hash.toString();
548	if(strHash.length > 0)
549	{
550		var target = jQuery(strHash);
551		jQuery(strHash+' a').addClass('active');
552		
553		lastActive = jQuery(".onepagenav a:not(.backlink)[href*=\\"+strHash+"]");
554		lastActive.addClass('active');
555		
556		var offsetX = 0;
557		var posX = target.offset().left - offsetX;
558		
559		var offsetY = stickyheader.height();
560		var posY = target.offset().top - offsetY;
561		
562		jQuery("html, body").animate({scrollTop: posY, scrollLeft:posX},
563		{
564			start		: function()
565			{
566				jQuery.cookie('onepage_animate',1);
567			},
568			complete	: function()
569			{
570				setTimeout(function()
571				{
572					jQuery.cookie('onepage_animate',0);
573				}, timeout);
574			}
575		}, 0);
576	}
577	
578	// set the last anchor to active on page load and scroll to it
579	if(jQuery.cookie('onepage_active') !== null && jQuery.cookie('onepage_active') != undefined && strHash.length < 1) 
580	{
581		jQuery.each(links, function(index, elem) {
582			var hash = this.href.split("#");
583			if(!hash[1])
584			{
585				return;
586			}
587			var anchor = hash[1].toString();
588			if(anchor == jQuery.cookie('onepage_active'))
589			{
590				jQuery(elem).addClass('active');
591				lastActive = jQuery(elem);
592			}
593		});
594		
595		// find target in page
596		var target = jQuery("#"+jQuery.cookie('onepage_active'));
597		if(target.length > 0)
598		{
599			var offsetX = 0;
600			var posX = target.offset().left - offsetX;
601			
602			var offsetY = stickyheader.height();
603			var posY = target.offset().top - offsetY;
604			
605			jQuery("html,body").stop().animate({scrollTop: posY, scrollLeft: posX}, {
606				duration	: 0,
607				start		: function()
608				{
609					// on start: flag that onepage started its animation
610					jQuery.cookie('onepage_animate',1);
611				},
612				complete	: function()
613				{
614					setTimeout(function()
615					{
616						jQuery.cookie('onepage_animate',0);
617						jQuery.cookie('onepage_position',null);
618					}, timeout);
619				}
620			});
621		}
622	}
623		
624	// click event listener	
625	links.click(function(event) 
626	{ 
627		var hash = this.href.split("#");
628		if(!hash[1])
629		{
630			return true;
631		}
632		var anchor = hash[1].toString();
633		var target = jQuery("#"+anchor);
634		if(target.length < 1) 
635		{
636			return false;
637		}
638		
639		// store the current active anchor as cookie for further use
640		jQuery.cookie('onepage_active',anchor);
641		
642		var offsetX = 0;
643		var posX = target.offset().left - offsetX;
644		
645		var offsetY = stickyheader.height();
646		var posY = target.offset().top - offsetY;
647		
648		jQuery("html,body").stop().animate({scrollTop: posY, scrollLeft: posX}, 
649		{
650			duration	: duration,
651			start		: function()
652			{
653				jQuery.cookie('onepage_animate',1);
654			},
655			step		: function()
656			{
657				// on start: flag that onepage started its animation
658				jQuery.cookie('onepage_animate',1);
659			},
660			complete	: function()
661			{
662				// on complete: remove the flag
663				setTimeout(function()
664				{
665					jQuery.cookie('onepage_animate',0);
666				}, timeout);
667				
668				// store last position
669				jQuery.cookie('onepage_position',{'x':posX,'y':posY,'anchor':anchor});
670			}
671		});
672		
673		// toggle active class
674		if(lastActive != jQuery(this)) 
675		{
676			links.removeClass('active');
677			
678			jQuery(".onepagenav a[href*="+anchor+"]").addClass('active');
679			jQuery(".mainmenu a[href*="+anchor+"]").addClass('active');
680			
681			jQuery(this).addClass('active');
682		}
683		
684		event.preventDefault();
685		return false;
686	});	
687});
688
689
690/**
691 * Set navi active on scroll
692 */
693jQuery(document).ready(function() {
694	var links = jQuery(".onepage_page .mainmenu a:not(.backlink), .onepage_page .onepagenav a:not(.backlink), .page_navigation a");
695	var stickyheader = jQuery(".stickyheader");
696	var header = jQuery(".header.original");
697	var lastActive = jQuery(".onepage_page .mainmenu a.active, .onepage_page .onepagenav a.active");
698	var horizontalScroll = jQuery('body').hasClass('horizontal_scrolling');
699	// not on mobile devices because content is 100% 
700	if(horizontalScroll && jQuery('body').hasClass('mobile'))
701	{
702		horizontalScroll = false;
703	}
704	
705	var lastScrollX = 0;
706	var lastScrollY = 0;
707	
708	jQuery(window).scroll(function() 
709	{
710		// escape when animation is running
711		if(jQuery.cookie('onepage_animate') > 0) 
712		{
713			return;
714		}
715		
716		// remove active class from all links
717		links.removeClass('active');
718		
719		var scrollX = jQuery(window).scrollLeft();
720		var scrollY = jQuery(window).scrollTop();
721		var offsetX = 10;
722		var offsetY = stickyheader.height();
723		
724		jQuery.each(links, function(index, elem) 
725		{
726			var hash = elem.href.split("#");
727			if(!hash[1]) 
728			{
729				return;
730			}
731			var anchor = hash[1].toString();
732			var target = jQuery("#"+anchor);
733			if(target.length < 1) 
734			{
735				return;
736			}
737			
738			// vertical scrolling
739			var posY = target.offset().top - offsetY;
740			var sizeY = posY + target.height();
741			if (posY <= scrollY && sizeY >= scrollY && !horizontalScroll) 
742			{
743	        	jQuery(elem).addClass("active");
744	        }
745	        
746	        // horizontal scolling
747	        var posX = target.offset().left - offsetX;
748			var sizeX = posX + target.width();
749			if (posX <= scrollX && sizeX >= scrollX && horizontalScroll) 
750			{
751	        	jQuery(elem).addClass("active");
752	        }
753	    });
754	});
755	
756});
757
758/* =============================================================================
759 * imagebox workaround if content height > fix height
760 * ========================================================================== */
761function imageboxHeight() {
762	jQuery(".ce_text_imagebox").each(function() {
763		var fixHeight = jQuery(this).height();
764		var contentHeight = jQuery(this).find(".inside").outerHeight();
765		if (contentHeight > fixHeight) {
766			jQuery(this).addClass("oversize");
767		} else {
768			jQuery(this).removeClass("oversize");
769		}
770	});
771};
772
773jQuery(document).ready(function(){
774	imageboxHeight();
775});
776
777jQuery(window).on("resize", function(){ 
778	imageboxHeight(); 
779});
780
781/* =============================================================================
782 * ce_text_image_bar workaround if content height > fix height
783 * ========================================================================== */
784function imagebarHeight() {
785	jQuery(".ce_text_image_bar").each(function() {
786		var fixHeight = jQuery(this).height();
787		var contentHeight = jQuery(this).find(".text-table").outerHeight();
788		if (contentHeight > fixHeight) {
789			jQuery(this).addClass("oversize");
790		} else {
791			jQuery(this).removeClass("oversize");
792		}
793	});
794};
795
796jQuery(document).ready(function(){
797	imagebarHeight();
798});
799
800jQuery(window).on("resize", function(){ 
801	imagebarHeight(); 
802});
803
804/* =============================================================================
805 * search top trigger
806 * ========================================================================== */
807jQuery(document).ready(function(){
808	jQuery(".ce_search_label").click(function(){
809    	jQuery(".body_bottom .mod_search").addClass("show-search");
810	});
811	jQuery(".body_bottom .close-window").click(function(){
812    	jQuery(".body_bottom .mod_search").removeClass("show-search");
813	});
814});
815
816/* =============================================================================
817 * scroll to anchors
818 * ========================================================================== */
819jQuery(document).ready(function()
820{
821    jQuery('#main a[href*=\\#], #left a[href*=\\#], #right a[href*=\\#], #slider a[href*=\\#], #footer a[href*=\\#], #bottom a[href*=\\#]').click(function(e)
822	{
823		// return with default behavior
824		if( jQuery(this).hasClass('external-anchor') || jQuery(this).hasClass('not-anchor') )
825		{
826			return true;
827		}
828		
829    	var target = jQuery('#'+jQuery(this).attr("href").split('#')[1]);
830		if(target == undefined || target == null)
831        {
832            return true;    
833        }
834        else if(target.length < 1)
835        {
836	        return true;
837        }
838        
839        e.preventDefault();
840        
841        var stickheaderHeight = 0;
842		if(jQuery('#stickyheader'))
843		{
844			stickheaderHeight = jQuery('#stickyheader').height();
845        }
846		
847        jQuery("html, body").animate({scrollTop: target.offset().top - stickheaderHeight}, 500);
848        return false;
849    });
850});

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.