PageSourceSearch

https://www.jobo.com/shop_jobo_functions.js

js jobo.com collected 2026-10-02 10:28:30 UTC 8,368 bytes, 247 lines download raw bytes

1// main breakpoint definition
2var breakPoints = new Array(480,768,992,1200);
3
4var ecs_shop4 = {
5	/* Function to execute cart canvas close */
6	cartCanvas_execCloseAction: function(){
7		// add hide() after close-transition was complete (add 17.4.2014, JA)
8		$('#site-wrapper > .cart-canvas.canvas-open').removeClass('canvas-open');
9	  			  
10		// set timeout to make transition work
11		setTimeout(function() {	
12			// shortcut for basket preview
13			var c = $('.basket-preview-canvas');
14			
15			if (c.find('.cart-canvas').length == 0){
16				// no cart-canvas-element in basket-preview, moved back
17				c.append($('#site-wrapper > .cart-canvas'));
18			} else {
19				// cart-canvas-element found in basekt-preview, probably create from ajax refesh, remove old content 
20				$('#site-wrapper > .cart-canvas').remove();
21			}
22		}, 20);
23		
24		$('body').toggleClass('canvas-right');	 
25		
26		return true;
27	},
28	
29	/* Function to execute cart canvas open */
30	cartCanvas_execOpenAction: function(){
31		var c = $('.basket-preview-canvas');
32		var p = c.find('.cart-canvas');
33		$('#site-wrapper').append(p);
34	  
35		// set timeout to make transition work
36		setTimeout(function() {
37			// add show() before open-transition is running (add 17.4.2014, JA)
38			$('#site-wrapper > .cart-canvas').addClass('canvas-open');
39		}, 5);		  
40		
41		$('body').toggleClass('canvas-right');	 
42		
43		return true;
44	},
45	
46	/* Function update cart canvas content, if it is necessary */
47	cartCanvas_updateContent: function(){
48		// check if cart canvas is open
49		if ($('.basket-preview-canvas .cart-canvas').hasClass('canvas-open')==false && $('#site-wrapper > .cart-canvas').hasClass('canvas-open') == true){
50			// cart canvas is open, shortcut for basket preview + cart canvas
51			var p = $('.basket-preview-canvas'), c = $('#site-wrapper > .cart-canvas');
52			
53			// check if new canvas-inner in basket-preview and old canvas-inner still in canvas container
54			if (p.find('.canvas-inner').length > 0 && c.find('.canvas-inner').length > 0){
55				// new + old canvas-inner found, replace canvas content with new from basket-preview
56				c.find('.canvas-inner').html(p.find('.canvas-inner').html());
57				p.find('.cart-canvas').remove();
58			}
59			
60		} else {
61			// cart canvas not visible
62		}
63				
64		return true;
65	},
66	
67	/* Function to toggle cart canvas  */
68	cartCanvas_toggle: function(){
69		if ( $(window).width() < breakPoints[2] ){	  
70			if ( ($('.basket-preview-canvas .cart-canvas').hasClass('canvas-open') == false) && ($('#site-wrapper > .cart-canvas').hasClass('canvas-open') == false)){
71				ecs_shop4.cartCanvas_execOpenAction();
72
73			} else if ( ($('.basket-preview-canvas .cart-canvas').hasClass('canvas-open')==false) && ($('#site-wrapper > .cart-canvas').hasClass('canvas-open') == true)){ 
74				ecs_shop4.cartCanvas_execCloseAction();
75			}
76		}
77				
78		return true;
79	},
80	
81	/* Function to close cart canvas */
82	cartCanvas_close: function(){
83		if ( ($('.basket-preview-canvas .cart-canvas').hasClass('canvas-open')==false) && ($('#site-wrapper > .cart-canvas').hasClass('canvas-open') == true)){ 
84			ecs_shop4.cartCanvas_execCloseAction();
85		}	
86				
87		return true;
88	},
89	
90	/* Function to close navigation canvas */
91	navigationCanvas_close: function(){
92		if ( ($('#site-header .navbar .navbar-inner .navbar-collapse').hasClass('canvas-open')==false) && ($('#site-wrapper > .navbar-collapse').hasClass('canvas-open') == true)){ 
93			$('#site-wrapper > .navbar-collapse.canvas-open').removeClass('canvas-open');
94			  
95			setTimeout(function() {
96				var p = $('#site-wrapper > .navbar-collapse');
97				$('#site-header .navbar .navbar-inner').append(p);
98			},20);
99		  
100			$('body').toggleClass('canvas-left');
101		}	
102		
103		return true;
104	},
105	
106	/* Function to toggle navigation canvas */
107	navigationCanvas_toggle: function(){
108		if ( ($('#site-header .navbar .navbar-inner .navbar-collapse').hasClass('canvas-open') == false) && ($('#site-wrapper > .navbar-collapse').hasClass('canvas-open') == false)){
109			var p = $('#site-header .navbar .navbar-inner .navbar-collapse');
110			$('#site-wrapper').append(p);
111			  
112			// set timeout to make transition work
113			setTimeout(function() {
114				  $('#site-wrapper > .navbar-collapse').addClass('canvas-open');
115			}, 20);
116			  
117			$('body').toggleClass('canvas-left');
118			  
119		} else if ( ($('#site-header .navbar .navbar-inner .navbar-collapse').hasClass('canvas-open')==false) && ($('#site-wrapper > .navbar-collapse').hasClass('canvas-open') == true)){ 
120			ecs_shop4.navigationCanvas_close();
121		}
122		  
123		return true;
124	},
125	
126	/* Setup callback for canvas areas  */
127	canvas_setup: function(){
128		if (document.documentMode > 9){
129			$('html').addClass('iegt9').addClass('ie'+document.documentMode);
130		} else if (document.documentMode < 9) {
131			$('html').addClass('ielt9').addClass('ie'+document.documentMode);
132		}
133	  
134		// set eventHandler for toggling cart canvas
135		$('.basket-preview-canvas').on("click",".cart-canvas-toggle", function(){
136			ecs_shop4.cartCanvas_toggle();
137		});
138		
139		// marked cart-canvas-toggle as init
140		$('.basket-preview-canvas > .cart-canvas-toggle').attr('data-cartcanvas', 'on');
141	  
142		// set eventHandler for toggling navigation canvas
143		$('.navbar-inner').on("click", 'button[data-toggle="collapse-v4"]', function(){
144			ecs_shop4.navigationCanvas_toggle();
145		});	      
146	
147		// close all canvas after click on site-container  
148		$('#site-container').on( "click", function(){
149			if ( $(window).width() < breakPoints[2] ){
150				ecs_shop4.cartCanvas_close(); 
151				ecs_shop4.navigationCanvas_close();
152			}
153		});
154			
155		$('.rs-dropdown .title').click(function(){	  
156			if ( $(window).width() < breakPoints[2] ){
157				$(this).parent().toggleClass('toggle-active');			  
158			}
159		});	
160		
161		// register toggle cart canvas new, if node was inserted (e.g. after ajax call) 
162		$('body').on('DOMNodeInserted', '.basket-preview-canvas', function(){	
163			if ($('.basket-preview-canvas > .cart-canvas-toggle').attr('data-cartcanvas') == 'on'){
164				// canvas actions already register
165			} else {
166				// cart-preview updated via ajax request, register canvas action again
167				$('.basket-preview-canvas > .cart-canvas-toggle').attr('data-cartcanvas', 'on');
168				
169				$(this).on("click",".cart-canvas-toggle", function(){
170					ecs_shop4.cartCanvas_toggle();
171				});		
172			}
173			
174			// check if canvas content must be updated 
175			ecs_shop4.cartCanvas_updateContent();
176		});
177
178		// register toggle navigation canvas new, if node was inserted (e.g. after ajax call) 
179		$('body').on('DOMNodeInserted', '#site-header .navbar .navbar-inner .navbar-collapse', function(){
180			$('#site-header .navbar .navbar-inner .navbar-collapse').on("click", 'button[data-toggle="collapse-v4"]', function(){
181				ecs_shop4.navigationCanvas_toggle();
182			});		
183		});	
184		
185		// on resize close canvas if breakpoints reached (e.g. vertical/horizontal tablet) 
186		$(window).resize(function(){
187			if ( $(window).width() > breakPoints[2] ){
188				ecs_shop4.cartCanvas_close();
189				ecs_shop4.navigationCanvas_close();
190			}
191		});
192		  
193		return true;
194	},
195
196	// get the viewport
197	viewport: function viewport() {
198	    var e = window, a = 'inner';
199	    if (!('innerWidth' in window )) {
200	        a = 'client';
201	        e = document.documentElement || document.body;
202	    }
203	    return { width : e[ a+'Width' ] , height : e[ a+'Height' ] };
204	},
205	
206	position_products: function(){
207		
208		var flexThumbs = $(".flexslider .flex-thumbnail-wrapper");			
209		var flexThumbsH = flexThumbs.height();
210		
211		var offset_start = flexThumbs.offset();
212						
213		if (typeof flexThumbsH != "undefined" && flexThumbsH > 0){
214			
215			var halfH = Math.ceil(flexThumbsH / 2);
216			var viewPH = ecs_shop4.viewport().height;
217			
218			var maxVPH = halfH + offset_start.top;
219			
220			if (maxVPH > viewPH && viewPH > 400){
221				flexThumbs.offset({top:(viewPH-halfH),left:offset_start.left}).css("bottom","auto");
222			}			
223		}
224		
225		return true;
226	}
227};
228
229
230/* function to toggle a container and retoggle if another toggle-container is click */	
231function toggle_container(container,selector){
232	$(container).on("click",selector, function(){
233		if ( $(window).width() < breakPoints[1] ){
234			$('[class*="toggle-active"]:not('+container+')').removeClass('toggle-active');			  			
235			$(this).parent().toggleClass('toggle-active');
236		}
237	});
238}
239 		
240/* document ready calls */
241$(document).ready(function () {
242	ecs_shop4.canvas_setup();	
243});
244
245$(window).load(function(){
246	ecs_shop4.position_products();	
247});

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.