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.