1$(function () { 2 3 // copy accountlinks to mobile menu 4 $('#memberNav ul').clone().appendTo('#accountLinks'); 5 6 // Initialize plugins 7 if (window.divide) { 8 // Call to mobile menu 9 if (window.divide.menu && typeof window.divide.menu.register == 'function') { 10 window.divide.menu.register(); 11 } 12 13 // Register cookies 14 if (window.divide.cookies && typeof window.divide.cookies.register == 'function') { 15 window.divide.cookies.register({ 16 displayType: 'bar', // 'popup' || 'bar' 17 }); 18 } 19 20 // Toggle Panels 21 if (window.divide.mobilePanels && typeof window.divide.mobilePanels.register == 'function') { 22 window.divide.mobilePanels.register(); 23 } 24 25 // Register refresher 26 if (window.divide.refresher && typeof window.divide.refresher.register == 'function') { 27 window.divide.refresher.register(); 28 } 29 30 // Register Content Detail menu 31 if (window.divide.contentDetailMenu && typeof window.divide.contentDetailMenu.register == 'function') { 32 window.divide.contentDetailMenu.register(); 33 } 34 35 // Register slider 36 if (window.divide.slider && typeof window.divide.slider.register == 'function') { 37 window.divide.slider.register(); 38 } 39 40 // Register lazyload 41 if (sitesetting.lazyloading && window.divide.lazyload && typeof window.divide.lazyload.register == 'function') { 42 window.divide.lazyload.register(); 43 } 44 45 // Register fixed bottom content 46 if (window.divide.fixedcalltoaction && typeof window.divide.fixedcalltoaction.register == 'function') { 47 window.divide.fixedcalltoaction.register(); 48 } 49 50 // Register letters 51 if (window.divide.letters && typeof window.divide.letters.register == 'function') { 52 window.divide.letters.register(); 53 } 54 55 // Accordion 56 if (window.divide.accordion && typeof window.divide.accordion.register == 'function') { 57 window.divide.accordion.register(); 58 } 59 60 // inline quickview 61 if (sitesetting.inlinequickview && window.divide.inlineQuickview && typeof window.divide.inlineQuickview.register == 'function') { 62 window.divide.inlineQuickview.register({ 63 scrollOnOpen: true, 64 scrollSpeed: 300, 65 scrollOffset: 106 66 }); 67 } 68 69 // divide extensions 70 if (window.divide.extensions && typeof window.divide.extensions.register == 'function') { 71 window.divide.extensions.register(); 72 } 73 74 // Register search 75 if (window.divide.search && typeof window.divide.search.register == 'function') { 76 window.divide.search.register(); 77 } 78 79 // Register Arrow Navigation 80 if (window.divide.arrowNavigation && typeof window.divide.arrowNavigation.register == 'function') { 81 window.divide.arrowNavigation.register(); 82 } 83 84 // GMT Dynamic Datalayers 85 if (sitesetting.datalayers && window.divide.dataLayer && typeof window.divide.dataLayer.register == 'function') { 86 window.divide.dataLayer.register({ 87 priceCurrency: price_currency, 88 track: { 89 productClicks: true, 90 addToCart: false 91 } 92 }); 93 } 94 95 // Register Favorites 96 if (window.divide.favorites && typeof window.divide.favorites.register == 'function') { 97 window.divide.favorites.register({ 98 openPanelOnAdd: false, 99 panelName: 'overviewPanel' 100 }); 101 } 102 } 103 104 if (window.tweakwise) { 105 // Register searchAutoComplete 106 if (window.tweakwise.searchAutoComplete && typeof window.tweakwise.searchAutoComplete.register == 'function') { 107 window.tweakwise.searchAutoComplete.register(); 108 } 109 } 110 111 // Address auto fill 112 $('#content').find('[data-address-autofill]').each(function () { 113 var $this = $(this); 114 115 $this.applyAutocomplete({ 116 postcode: $this.find('[data-address-autofill-zipcode]'), 117 street: $this.find('[data-address-autofill-street]'), 118 city: $this.find('[data-address-autofill-city]') 119 }); 120 });
121 122 // Custom: fixed submenu op content detailpagina's 123 var localNavMenu = $(document).find("#localNav.specialMenu"), 124 sidecol = $(document).find("#sidecol"), 125 header = $(document).find("#header"); 126 127 $(window).on("scroll", function () { 128 var scroll = $(window).scrollTop(), 129 elementScroll = sidecol.offset().top; 130 131 if ($("body").hasClass("isMobile")) { 132 elementScroll -= header.height(); 133 } 134 135 if (scroll >= elementScroll) { 136 localNavMenu.addClass("fixed"); 137 138 } else { 139 localNavMenu.removeClass("fixed"); 140 } 141 }); 142 143 // prevent bubbling created by previous function 144 $('#globalNav a').on('click', function (event) { 145 event.stopPropagation(); 146 }); 147 148 // show/hide searchbar 149 $('#searchToggle').on('click', function () { 150 $('#searchDropdown').toggle().clickOutside(function (event) { 151 event.preventDefault(); 152 $('#searchDropdown').hide(); 153 }); ; 154 return false; 155 }); 156 157 // =========== regular init =========== \\ 158 159 var $content = $('#content'); 160 161 // Toggle items. 162 $content.on('click', '[data-toggle-selector]', function () { 163 var $this = $(this), 164 sToggleSelector = $this.data('toggle-selector'); 165 166 $content.find(sToggleSelector).toggleClass('hidden').trigger('change'); 167 168 return false; 169 }); 170 171 $('#sidecol #localNav, #sidecol #categoryNav').find('h3').click(function (event) { 172 event.preventDefault(); 173 event.stopPropagation(); 174 $(this).parent().toggleClass('active'); 175 $(this).next('.ul-1').clickOutside(function (event) { 176 event.preventDefault(); 177 $('#sidecol #localNav').removeClass('active'); 178 }); 179 }); 180 181 182 //make valMessage removable 183 $('.valMessage').not('.noList').click(function () { 184 $(this).find('> *').hide(); 185 }) 186 187 188 // Detect if pixel density > 1 189 Modernizr.addTest('retina', function () { 190 var dpr = window.devicePixelRatio || (window.screen.deviceXDPI / window.screen.logicalXDPI) || 1; 191 return !!(dpr > 1); 192 }); 193 194 195 $('div.tabsWrapper').divideTabs({ responsive: true }); 196 197 198 // anchors instead of buttons, attach submit 199 $('a[title=submit]').on('click', function () { 200 $(this).parents('form').submit(); 201 return false; 202 }); 203 204 205 // make the enter button work, but only for last pasword box (prevent post for all other textboxes) 206 $(document).on('keydown', 'input[type="text"], input[type="password"], input[type="email"], input[type="search"]', function (event) { 207 var keyCode = event.which || event.keyCode; 208 209 if (keyCode == 13) { 210 var $checkNode = $(this).parent(), 211 $input = $(); 212 213 while (!$checkNode.is('#content') && !$input[0]) { 214 $checkNode = $checkNode.parent(); 215 216 $input = $checkNode.find(':submit, .submit').first(); 217 } 218 219 if ($input[0]) { 220 $input[0].click(); 221 } 222 223 return false; 224 } 225 }); 226 227 228 // SizeUnit dropdown 229 $('.sizeConversionCombo').change(function () { 230 var selectedValue = $(this).val(); 231 $.ajax({
232 url: _root + "Pages/Ajax/SizeConversionHandler.ashx", 233 data: { id: selectedValue }, 234 async: false, 235 cache: false 236 }).done(function (msg) { 237 document.location.reload(); 238 }); 239 }); 240 241 242 //Show subcategories if available before following link 243 $('.isMobile #globalNav li.more > a, .isTablet #globalNav li.more > a').on('touchstart click', function (e) { 244 var $this = $(this), 245 $parentLi = $this.parent('li'); 246 247 if (!$parentLi.hasClass('active')) { 248 e.preventDefault(); 249 $('#globalNav li.more').not($parentLi).removeClass('active'); 250 $parentLi.toggleClass('active'); 251 } 252 }); 253 254 255 // Convert media from NOW 256 $('div.media').media(); 257}); 258 259// Find img tags with a src that ends with an SVG extension and replace the extension with PNG in case the browser does not support SVG. 260window.onload = function () { 261 262 if (!Modernizr.svg) { 263 var imgs = document.getElementsByTagName('img'); 264 var svgExtension = /.*\.svg$/ 265 var l = imgs.length; 266 for (var i = 0; i < l; i++) { 267 if (imgs[i].src.match(svgExtension)) { 268 if (imgs[i].getAttribute('data-svg-fallback')) { 269 imgs[i].src = imgs[i].getAttribute('data-svg-fallback'); 270 console.log(imgs[i].src); 271 } else { 272 imgs[i].src = imgs[i].src.slice(0, -3) + 'png'; 273 console.log(imgs[i].src); 274 } 275 } 276 } 277 } 278} 279 280// ie8 Polyfill indexOf 281if (!Array.prototype.indexOf) { 282 Array.prototype.indexOf = function (elem, startFrom) { 283 var startFrom = startFrom || 0; 284 if (startFrom > this.length) return -1; 285 286 for (var i = 0; i < this.length; i++) { 287 if (this[i] == elem && startFrom <= i) { 288 return i; 289 } else if (this[i] == elem && startFrom > i) { 290 return -1; 291 } 292 } 293 return -1; 294 } 295}
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.