1/** 2 * Load utils - BEGIN 3 */ 4/* 5 CSS Browser Selector 1.0 6 Originally written by Rafael Lima (http://rafael.adm.br) 7 http://rafael.adm.br/css_browser_selector 8 License: http://creativecommons.org/licenses/by/2.5/ 9 10 Co-maintained by: 11 https://github.com/ridjohansen/css_browser_selector 12 https://github.com/wbruno/css_browser_selector 13 */ 14 15 "use strict"; 16 17 window.requestAnimFrame = (function() { 18 return window.requestAnimationFrame || 19 window.webkitRequestAnimationFrame || 20 window.mozRequestAnimationFrame || 21 window.oRequestAnimationFrame || 22 window.msRequestAnimationFrame || 23 function(/* function */ callback, /* DOMElement */ element){ 24 window.setTimeout(callback, 1000 / 60); 25 }; 26 })(); 27 28 window.requestTimeout = function(fn, delay) { 29 if( !window.requestAnimationFrame && 30 !window.webkitRequestAnimationFrame && 31 !(window.mozRequestAnimationFrame && window.mozCancelRequestAnimationFrame) && // Firefox 5 ships without cancel support 32 !window.oRequestAnimationFrame && 33 !window.msRequestAnimationFrame) 34 return window.setTimeout(fn, delay); 35 36 var start = new Date().getTime(), 37 handle = new Object(); 38 39 function loop(){ 40 var current = new Date().getTime(), 41 delta = current - start; 42 43 delta >= delay ? fn.call() : handle.value = requestAnimFrame(loop); 44 }; 45 46 handle.value = requestAnimFrame(loop); 47 return handle; 48 }; 49 50 window.clearRequestTimeout = function(handle) { 51 if ( typeof handle !== 'undefined' ) { 52 window.cancelAnimationFrame ? window.cancelAnimationFrame(handle.value) : 53 window.webkitCancelAnimationFrame ? window.webkitCancelAnimationFrame(handle.value) : 54 window.webkitCancelRequestAnimationFrame ? window.webkitCancelRequestAnimationFrame(handle.value) : /* Support for legacy API */ 55 window.mozCancelRequestAnimationFrame ? window.mozCancelRequestAnimationFrame(handle.value) : 56 window.oCancelRequestAnimationFrame ? window.oCancelRequestAnimationFrame(handle.value) : 57 window.msCancelRequestAnimationFrame ? window.msCancelRequestAnimationFrame(handle.value) : 58 clearTimeout(handle); 59 } 60 }; 61 62 var uaInfo = { 63 ua: '', 64 is: function(t) { 65 return RegExp(t, "i").test(uaInfo.ua); 66 }, 67 version: function(p, n) { 68 n = n.replace(".", "_"); 69 var i = n.indexOf('_'), 70 ver = ""; 71 while (i > 0) { 72 ver += " " + p + n.substring(0, i); 73 i = n.indexOf('_', i + 1); 74 } 75 ver += " " + p + n; 76 return ver; 77 }, 78 getBrowser: function() { 79 var g = 'gecko', 80 w = 'webkit', 81 c = 'chrome', 82 f = 'firefox', 83 s = 'safari', 84 o = 'opera', 85 a = 'android', 86 bb = 'blackberry', 87 dv = 'device_', 88 ua = uaInfo.ua, 89 is = uaInfo.is; 90 return [ 91 (!(/opera|webtv/i.test(ua)) && /msie\s(\d+)/.test(ua)) ? ('ie ie' + (/trident\/4\.0/.test(ua) ? '8' : RegExp.$1)) 92 : is('edge\/') ? 'edge ie' + (/edge\/(\d+)\.(\d+)/.test(ua) ? RegExp.$1 + ' ie' + RegExp.$1 + '_' + RegExp.$2 : '') // IE Edge 93 : is('trident\/') ? 'ie ie'+ (/trident\/.+rv:(\d+)/i.test(ua) ? RegExp.$1 : '') //ie11+ 94 : is('firefox/') ? g + " " + f + (/firefox\/((\d+)(\.(\d+))(\.\d+)*)/.test(ua) ? ' ' + f + RegExp.$2 + ' ' + f + RegExp.$2 + "_" + RegExp.$4 : '') 95 : is('gecko/') ? g 96 : is('opera') ? o + (/version\/((\d+)(\.(\d+))(\.\d+)*)/.test(ua) ? ' ' + o + RegExp.$2 + ' ' + o + RegExp.$2 + "_" + RegExp.$4 : (/opera(\s|\/)(\d+)\.(\d+)/.test(ua) ? ' ' + o + RegExp.$2 + " " + o + RegExp.$2 + "_" + RegExp.$3 : '')) 97 : is('konqueror') ? 'konqueror' 98 : is('blackberry') ? (bb + (/Version\/(\d+)(\.(\d+)+)/i.test(ua) ? " " + bb + RegExp.$1 + " " + bb + RegExp.$1 + RegExp.$2.replace('.', '_') : (/Blackberry ?(([0-9]+)([a-z]?))[\/|;]/gi.test(ua) ? ' ' + bb + RegExp.$2 + (RegExp.$3 ? ' ' + bb + RegExp.$2 + RegExp.$3 : '') : ''))) // blackberry 99 : is('android') ? (a + (/Version\/(\d+)(\.(\d+))+/i.test(ua) ? " " + a + RegExp.$1 + " " + a + RegExp.$1 + RegExp.$2.replace('.', '_') : '') + (/Android (.+); (.+) Build/i.test(ua) ? ' ' + dv + ((RegExp.$2).replace(/ /g, "_")).replace(/-/g, "_") : '')) //android 100 : is('chrome') ? w + ' ' + c + (/chrome\/((\d+)(\.(\d+))(\.\d+)*)/.test(ua) ? ' ' + c + RegExp.$2 + ((RegExp.$4 > 0) ? ' ' + c + RegExp.$2 + "_" + RegExp.$4 : '') : '') 101 : is('iron') ? w + ' iron' 102 : is('applewebkit/') ? (w + ' ' + s + (/version\/((\d+)(\.(\d+))(\.\d+)*)/.test(ua) ? ' ' + s + RegExp.$2 + " " + s + RegExp.$2 + RegExp.$3.replace('.', '_') : (/ Safari\/(\d+)/i.test(ua) ? ((RegExp.$1 == "419" || RegExp.$1 == "417" || RegExp.$1 == "416" || RegExp.$1 == "412") ? ' ' + s + '2_0' : RegExp.$1 == "312" ? ' ' + s + '1_3' : RegExp.$1 == "125" ? ' ' + s + '1_2' : RegExp.$1 == "85" ? ' ' + s + '1_0' : '') : ''))) //applewebkit 103 : is('mozilla/') ? g : '' 104 ]; 105 }, 106 getPlatform : function() { 107 var wp = 'winphone', 108 a = 'android', 109 bb = 'blackberry', 110 dv = 'device_', 111 112 ua = uaInfo.ua, 113 version = uaInfo.version, 114 is = uaInfo.is; 115 116 return [ 117 is('j2me') ? 'j2me' 118 :is('windows phone') ? (wp + (/Windows Phone (\d+)(\.(\d+))+/i.test(ua) ? " " + wp + RegExp.$1 + " " + wp + RegExp.$1 + RegExp.$2.replace('.', '_') : (/Windows Phone OS (\d+)(\.(\d+))+/i.test(ua) ? " " + wp + RegExp.$1 + " " + wp + RegExp.$1 + RegExp.$2.replace('.', '_') : ''))) // Windows Phone 119 :is('blackberry') ? (bb + (/Version\/(\d+)(\.(\d+)+)/i.test(ua) ? " " + bb + RegExp.$1 + " " + bb + RegExp.$1 + RegExp.$2.replace('.', '_') : (/Blackberry ?(([0-9]+)([a-z]?))[\/|;]/gi.test(ua) ? ' ' + bb + RegExp.$2 + (RegExp.$3 ? ' ' + bb + RegExp.$2 + RegExp.$3 : '') : ''))) // blackberry 120 :is('android') ? (a + (/Version\/(\d+)(\.(\d+))+/i.test(ua) ? " " + a + RegExp.$1 + " " + a + RegExp.$1 + RegExp.$2.replace('.', '_') : '') + (/Android (.+); (.+) Build/i.test(ua) ? ' ' + dv + ((RegExp.$2).replace(/ /g, "_")).replace(/-/g, "_") : '')) //android 121 :is('ipad|ipod|iphone') ? ( 122 (/CPU( iPhone)? OS (\d+[_|\.]\d+([_|\.]\d+)*)/i.test(ua) ? 'ios' + version('ios', RegExp.$2) : '') + ' ' + (/(ip(ad|od|hone))/gi.test(ua) ? RegExp.$1 : "")) //'iphone' 123 //:is('ipod')?'ipod' 124 //:is('ipad')?'ipad' 125 :is('playbook') ? 'playbook' 126 :is('kindle|silk') ? 'kindle' 127 :is('playbook') ? 'playbook' 128 :is('mac') ? 'mac' + (/mac os x ((\d+)[.|_](\d+))/.test(ua) ? (' mac'
128+ (RegExp.$2) + ' mac' + (RegExp.$1).replace('.', "_")) : '') 129 :is('win') ? 'win' + (is('windows nt 10.0') ? ' win10' 130 :is('windows nt 6.3') ? ' win8_1' 131 :is('windows nt 6.2') ? ' win8' 132 :is('windows nt 6.1') ? ' win7' 133 :is('windows nt 6.0') ? ' vista' 134 :is('windows nt 5.2') || is('windows nt 5.1') ? ' win_xp' 135 :is('windows nt 5.0') ? ' win_2k' 136 :is('windows nt 4.0') || is('WinNT4.0') ? ' win_nt' : '') 137 :is('freebsd') ? 'freebsd' 138 :is('x11|linux') ? 'linux' : '' 139 ]; 140 }, 141 getMobile: function() { 142 var is = uaInfo.is; 143 return [ 144 is("android|mobi|mobile|j2me|iphone|ipod|ipad|blackberry|playbook|kindle|silk") ? 'mobile' : '' 145 ]; 146 }, 147 getIpadApp: function() { 148 var is = uaInfo.is; 149 return [ 150 (is('ipad|iphone|ipod') && !is('safari')) ? 'ipad_app' : '' 151 ]; 152 }, 153 getLang: function() { 154 var ua = uaInfo.ua; 155 return [/[; |\[](([a-z]{2})(\-[a-z]{2})?)[)|;|\]]/i.test(ua) ? ('lang_' + RegExp.$2).replace("-", "_") + (RegExp.$3 != '' ? (' ' + 'lang_' + RegExp.$1).replace("-", "_") : '') : '']; 156 } 157 } 158 var screenInfo = { 159 width: document.documentElement.clientWidth ? document.documentElement.clientWidth + 15 : window.outerWidth, 160 height: document.documentElement.clientHeight || window.outerHeight, 161 screens: [ 162 [340, 'screen-xxs'], 163 [570, 'screen-xs'], 164 [960, 'screen-sm'], 165 [1500, 'screen-md'], 166 [1700, 'screen-lg'], 167 ], 168 screenSize: function() { 169 screenInfo.width = document.documentElement.clientWidth ? document.documentElement.clientWidth + 15 : window.outerWidth; 170 screenInfo.height = document.documentElement.clientHeight || window.outerHeight; 171 var screens = screenInfo.screens, 172 i = screens.length, 173 arr = []; 174 175 while (i--) { 176 if (screenInfo.width >= screens[i][0]) { 177 arr.push(screens[i][1]); 178 } 179 } 180 181 return arr; 182 }, 183 getOrientation: function() { 184 return screenInfo.width < screenInfo.height ? ["orientation_portrait"] : ["orientation_landscape"]; 185 }, 186 getInfo: function() { 187 var arr = []; 188 arr = arr.concat(screenInfo.screenSize()); 189 arr = arr.concat(screenInfo.getOrientation()); 190 return arr; 191 }, 192 getPixelRatio: function() { 193 var arr = [], 194 pixelRatio = window.devicePixelRatio ? window.devicePixelRatio : 1; 195 if (pixelRatio > 1) { 196 arr.push('retina_' + parseInt(pixelRatio) + 'x'); 197 arr.push('hidpi'); 198 } else { 199 arr.push('no-hidpi'); 200 } 201 return arr; 202 } 203 } 204 var dataUriInfo = { 205 data: new Image(), 206 div: document.createElement("div"), 207 isIeLessThan9: false, 208 getImg: function() { 209 dataUriInfo.data.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw=="; 210 dataUriInfo.div.innerHTML = "<!--[if lt IE 9]><i></i><![endif]-->"; 211 dataUriInfo.isIeLessThan9 = dataUriInfo.div.getElementsByTagName("i").length == 1; 212 return dataUriInfo.data; 213 }, 214 checkSupport: function() { 215 if (dataUriInfo.data.width != 1 || dataUriInfo.data.height != 1 || dataUriInfo.isIeLessThan9) { 216 return ["no-datauri"]; 217 } else { 218 return ["datauri"]; 219 } 220 } 221 } 222 223 function css_browser_selector(u, ns) { 224 var html = document.documentElement, 225 b = [] 226 ns = ns ? ns : ""; 227 /* ua */ 228 uaInfo.ua = u.toLowerCase(); 229 var browser = uaInfo.getBrowser(); 230 if (browser == 'gecko') browser = (!(window.ActiveXObject) && "ActiveXObject" in window) ? 'ie ie11' : browser; 231 var pattTouch = /no-touch/g; 232 if (pattTouch.test(html.className)) b = b.concat('no-touch'); 233 else b = b.concat('touch'); 234 var pattAdmin = /admin-mode/g; 235 if (pattAdmin.test(html.className)) b = b.concat('admin-mode'); 236 b = b.concat(browser); 237 b = b.concat(uaInfo.getPlatform()); 238 b = b.concat(uaInfo.getMobile()); 239 b = b.concat(uaInfo.getIpadApp()); 240 b = b.concat(uaInfo.getLang()); 241 /* js */ 242 b = b.concat(['js']); 243 /* no animations */ 244 var noAnimations = /no-cssanimations/g; 245 if (noAnimations.test(html.className)) { 246 b = b.concat('no-cssanimations'); 247 } 248 /* pixel ratio */ 249 b = b.concat(screenInfo.getPixelRatio()); 250 /* screen */ 251 b = b.concat(screenInfo.getInfo()); 252 var updateScreen = function() { 253 html.className = html.className.replace(/ ?orientation_\w+/g, "").replace(/ [min|max|cl]+[w|h]_\d+/g, ""); 254 html.className = html.className.replace(/ ?screen-\w+/g, ""); 255 html.className = html.className + ' ' + screenInfo.getInfo().join(' '); 256 } 257 if (SiteParameters.listen_for_screen_update) { 258 window.addEventListener('resize', updateScreen); 259 window.addEventListener('orientationchange', updateScreen); 260 } 261 /* dataURI */ 262 var data = dataUriInfo.getImg(); 263 data.onload = data.onerror = function() { 264 html.className += ' ' + dataUriInfo.checkSupport().join(' '); 265 }
266 /* removendo itens invalidos do array */ 267 b = b.filter(function(e) { 268 return e; 269 }); 270 /* prefixo do namespace */ 271 b[0] = ns ? ns + b[0] : b[0]; 272 html.className = b.join(' ' + ns); 273 return html.className; 274 } 275 // define css_browser_selector_ns before loading this script to assign a namespace 276 var css_browser_selector_ns = css_browser_selector_ns || ""; 277 // init 278 css_browser_selector(navigator.userAgent, css_browser_selector_ns); 279 /** 280 * skip-link-focus-fix.js 281 * 282 * Helps with accessibility for keyboard only users. 283 * 284 * Learn more: https://github.com/Automattic/_s/pull/136 285 */ 286 (function() { 287 var is_webkit = navigator.userAgent.toLowerCase().indexOf('webkit') > -1, 288 is_opera = navigator.userAgent.toLowerCase().indexOf('opera') > -1, 289 is_ie = navigator.userAgent.toLowerCase().indexOf('msie') > -1; 290 if ((is_webkit || is_opera || is_ie) && document.getElementById && window.addEventListener) { 291 window.addEventListener('hashchange', function() { 292 var id = location.hash.substring(1), 293 element; 294 if (!(/^[A-z0-9_-]+$/.test(id))) { 295 return; 296 } 297 element = document.getElementById(id); 298 if (element) { 299 if (!(/^(?:a|select|input|button|textarea)$/i.test(element.tagName))) { 300 element.tabIndex = -1; 301 } 302 element.focus(); 303 } 304 }, false); 305 } 306 })(); 307 // Polyfill for creating CustomEvents on IE9/10/11 308 // code pulled from: 309 // https://github.com/d4tocchini/customevent-polyfill 310 // https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent#Polyfill 311 try { 312 new CustomEvent("test"); 313 } catch (e) { 314 var CustomEvent = function(event, params) { 315 var evt; 316 params = params || { 317 bubbles: false, 318 cancelable: false, 319 detail: undefined 320 }; 321 evt = document.createEvent("CustomEvent"); 322 evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail); 323 return evt; 324 }; 325 CustomEvent.prototype = window.Event.prototype; 326 window.CustomEvent = CustomEvent; // expose definition to window 327 } 328 // Evento - v1.0.0 329 // by Erik Royall <[email protected]> (http://erikroyall.github.io) 330 // Dual licensed under MIT and GPL 331 // Array.prototype.indexOf shim 332 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf 333 Array.prototype.indexOf || (Array.prototype.indexOf = function(n) { 334 "use strict"; 335 if (null == this) throw new TypeError; 336 var t, e, o = Object(this), 337 r = o.length >>> 0; 338 if (0 === r) return -1; 339 if (t = 0, arguments.length > 1 && (t = Number(arguments[1]), t != t ? t = 0 : 0 != t && 1 / 0 != t && t != -1 / 0 && (t = (t > 0 || -1) * Math.floor(Math.abs(t)))), t >= r) return -1; 340 for (e = t >= 0 ? t : Math.max(r - Math.abs(t), 0); r > e; e++) 341 if (e in o && o[e] === n) return e; 342 return -1 343 }); 344 var evento = function(n) { 345 var t, e, o, r = n, 346 i = r.document, 347 f = {}; 348 return t = function() { 349 return "function" == typeof i.addEventListener ? function(n, t, e) { 350 n.addEventListener(t, e, !1), f[n] = f[n] || {}, f[n][t] = f[n][t] || [], f[n][t].push(e) 351 } : "function" == typeof i.attachEvent ? function(n, t, e) { 352 n.attachEvent(t, e), f[n] = f[n] || {}, f[n][t] = f[n][t] || [], f[n][t].push(e) 353 } : function(n, t, e) { 354 n["on" + t] = e, f[n] = f[n] || {}, f[n][t] = f[n][t] || [], f[n][t].push(e) 355 } 356 }(), e = function() { 357 return "function" == typeof i.removeEventListener ? function(n, t, e) { 358 n.removeEventListener(t, e, !1), Helio.each(f[n][t], function(o) { 359 o === e && (f[n] = f[n] || {}, f[n][t] = f[n][t] || [], f[n][t][f[n][t].indexOf(o)] = void 0) 360 }) 361 } : "function" == typeof i.detachEvent ? function(n, t, e) { 362 n.detachEvent(t, e), Helio.each(f[n][t], function(o) { 363 o === e && (f[n] = f[n] || {}, f[n][t] = f[n][t] || [], f[n][t][f[n][t].indexOf(o)] = void 0) 364 }) 365 } : function(n, t, e) { 366 n["on" + t] = void 0, Helio.each(f[n][t], function(o) { 367 o === e && (f[n] = f[n] || {}, f[n][t] = f[n][t] || [], f[n][t][f[n][t].indexOf(o)] = void 0) 368 }) 369 } 370 }(), o = function(n, t) { 371 f[n] = f[n] || {}, f[n][t] = f[n][t] || []; 372 for (var e = 0, o = f[n][t].length; o > e; e += 1) f[n][t][e]() 373 }, { 374 add: t, 375 remove: e, 376 trigger: o, 377 _handlers: f 378 } 379 }(this); 380 // DOM class helper 381 (function(window) { 382 'use strict'; 383 // class helper functions from bonzo https://github.com/ded/bonzo 384 function classReg(className) { 385 return new RegExp("(^|\\s+)" + className + "(\\s+|$)"); 386 } 387 // classList support for class management 388 // altho to be fair, the api sucks because it won't accept multiple classes at once 389 var hasClass, addClass, removeClass; 390 if ('classList' in document.documentElement) { 391 hasClass = function(elem, c) { 392 if ( elem !== null && typeof elem !== 'undefined' && typeof elem.classList !== 'undefined' ) return elem.classList.contains(c); 393 }; 394 addClass = function(elem, c) { 395 if ( elem !== null && typeof elem !== 'undefined' && typeof elem.classList !== 'undefined' ) elem.classList.add(c); 396 }; 397 removeClass = function(elem, c) { 398 if ( elem !== null && typeof elem !== 'undefined' && typeof elem.classList !== 'undefined' ) elem.classList.remove(c); 399 }; 400 } else { 401 hasClass = function(elem, c) { 402 if (elem !== null) return classReg(c).test(elem.className); 403 }; 404 addClass = function(elem, c) { 405 if (!hasClass(elem, c)) { 406 if (elem !== null) elem.className = elem.className + ' ' + c; 407 } 408 }; 409 removeClass = function(elem, c) { 410 if (elem !== null) elem.className = elem.className.replace(classReg(c), ' '); 411 }; 412 } 413 414 function toggleClass(elem, c) { 415 var fn = hasClass(elem, c) ? removeClass : addClass; 416 fn(elem, c); 417 } 418 var classie = { 419 // full names 420 hasClass: hasClass, 421 addClass: addClass, 422 removeClass: removeClass, 423 toggleClass: toggleClass, 424 // short names 425 has: hasClass, 426 add: addClass, 427 remove: removeClass, 428 toggle: toggleClass 429 }; 430 // transport 431 if (typeof define === 'function' && define.amd) { 432 // AMD 433 define(classie); 434 } else { 435 // browser global 436 window.classie = classie; 437 } 438 439 window.wrap = function(wrapper, elms) { 440 if ( elms === undefined ) { 441 return; 442 } 443 if (!elms.length) { 444 elms = [elms]; 445 } 446 447 for (var i = elms.length - 1; i >= 0; i--) { 448 var child = (i > 0) ? wrapper.cloneNode(true) : wrapper; 449 var el = elms[i]; 450 451 var parent = el.parentNode; 452 var sibling = el.nextSibling; 453 454 child.appendChild(el); 455 456 if (sibling) { 457 parent.insertBefore(child, sibling); 458 } else { 459 parent.appendChild(child); 460 } 461 } 462 }; 463 464 window.wrapAll = function(wrapper, nodes) { 465 var parent = nodes[0].parentNode; 466 var previousSibling = nodes[0].previousSibling; 467 468 for (var i = 0; nodes.length - i;
468 wrapper.firstChild === nodes[0] && i++) { 469 wrapper.appendChild(nodes[i]); 470 } 471 472 var nextSibling = previousSibling ? previousSibling.nextSibling : parent.firstChild; 473 parent.insertBefore(wrapper, nextSibling); 474 475 return wrapper; 476 }; 477 })(window); 478 /* From Modernizr */ 479 function whichTransitionEvent() { 480 var t; 481 var el = document.createElement('fakeelement'); 482 var transitions = { 483 'transition': 'transitionend', 484 'OTransition': 'oTransitionEnd', 485 'MozTransition': 'transitionend', 486 'WebkitTransition': 'webkitTransitionEnd' 487 } 488 for (t in transitions) { 489 if (el.style[t] !== undefined) { 490 return transitions[t]; 491 } 492 } 493 } 494 function whichAnimationEvent() { 495 var t; 496 var el = document.createElement('fakeelement'); 497 var animations = { 498 'animation': 'animationend', 499 'OAnimation': 'oAnimationEnd', 500 'MozAnimation': 'animationend', 501 'WebkitAnimation': 'webkitAnimationEnd' 502 } 503 for (t in animations) { 504 if (el.style[t] !== undefined) { 505 return animations[t]; 506 } 507 } 508 } 509 /** 510 * Load utils - END 511 */ 512 513 /** 514 * Start main js 515 */ 516 (function(window, undefined) { 517 'use strict'; 518 519 // Init variables 520 var bodyTop, 521 scrollbarWidth = false, 522 noScroll = false, 523 boxEvent = new CustomEvent('boxResized'), 524 menuClose = new CustomEvent('menuClose'), 525 menuOpen = new CustomEvent('menuOpen'), 526 bodyBorder = 0, 527 adminBarHeight = 0, 528 boxWidth = 0, 529 boxLeft = 0, 530 parallaxRows, 531 parallaxCols, 532 parallaxHeaders, 533 kenburnsHeaders, 534 kenburnsRows, 535 kenburnsCols, 536 backwashHeaders, 537 backwashRows, 538 backwashCols, 539 visibleRows, 540 headerWithOpacity,
541 speedDivider = SiteParameters.parallax_factor, 542 adminBar, 543 pageHeader, 544 headerVideo, 545 masthead, 546 mastheadMobile, 547 menuMobileTransparent, 548 mastheadMobilePaddingTop = 0, 549 offcanvas_overlay_close, 550 maincontainer, 551 menuwrapper, 552 menuhide, 553 $mainHeader, 554 mainHeader, 555 $mainWrapper, 556 $initBox, 557 menusticky, 558 menuStickyMobile, 559 menuHeight = 0, 560 menuMobileHeight = 0, 561 mainmenu = new Array(), 562 secmenu = new Array(), 563 secmenuHeight = 0, 564 transmenuHeight = 0, 565 header, 566 transmenuel, 567 logo, 568 logoel, 569 logolink, 570 logoMinScale, 571 lastScrollValue = 0, 572 wwidth = uaInfo.getIpadApp() == 'ipad_app' ? document.documentElement.clientWidth : window.innerWidth || document.documentElement.clientWidth, 573 wheight = uaInfo.getIpadApp() == 'ipad_app' ? document.documentElement.clientHeight : window.innerHeight || document.documentElement.clientHeight, 574 mediaQuery = 959, 575 mediaQueryMobile = 569, 576 printDialogOpen = false, 577 isScrolling = false, 578 boxWrapper, 579 docheight = 0, 580 isMobile = wwidth <= mediaQuery, 581 isIE = classie.hasClass(document.documentElement, 'ie') || classie.hasClass(document.documentElement, 'opera12') ? true : false, 582 isFF = classie.hasClass(document.documentElement, 'firefox') ? true : false, 583 isFullPage, 584 isFullPageSnap, 585 isFrontEndEditor, 586 transitionEvent = whichTransitionEvent(), 587 animationEvent = whichAnimationEvent(), 588 footerScroller = false, 589 menuOpened = false, 590 overlayOpened = false, 591 menuMobileTriggerEvent = new CustomEvent('menuMobileTrigged'), 592 resizeTimer_, 593 resizeTimer, 594 hidingTimer, 595 isSplitMenu = false, 596 mainNavMenu, 597 mainNavWrapper, 598 isMobileTransparent = false, 599 isMobileParallaxAllowed = SiteParameters.mobile_parallax_allowed, 600 loadedFonts = new Array(), 601 already_font = false, 602 scrollRowHeight_fix = window.pageYOffset, 603 isQuickView = false, 604 menuStickyMobileOverlay = false, 605 already_init_overlay = false, 606 607 checkVisible = function (elm) { 608 var rect = elm.getBoundingClientRect(); 609 var viewHeight = Math.max(document.documentElement.clientHeight, window.innerHeight); 610 return !(rect.bottom < 0 || rect.top - viewHeight >= 0); 611 }, 612 initBox = function () { 613 var bodyBorderDiv = document.querySelectorAll('.body-borders .top-border'); 614 if (bodyBorderDiv.length) { 615 bodyBorder = outerHeight(bodyBorderDiv[0]); 616 } else bodyBorder = 0; 617 UNCODE.isRTL = classie.hasClass(document.body, 'rtl') ? true : false, 618 UNCODE.bodyBorder = bodyBorder; 619 UNCODE.isFrontEndEditor = classie.hasClass(document.body, 'compose-mode') && classie.hasClass(document.body, 'vc_editor'); 620 UNCODE.isFullPage = !UNCODE.isFrontEndEditor && classie.hasClass(document.body, 'uncode-fullpage-slide') && !(UNCODE.isMobile && classie.hasClass(document.body, 'uncode-fp-mobile-disable') && window.innerWidth < 570); 621 UNCODE.isFullPageSnap = !UNCODE.isFrontEndEditor && classie.hasClass(document.body, 'uncode-scroll-snap'); 622 if (bodyBorder != 0) { 623 if (!UNCODE.isFullPage) { 624 document.documentElement.style.paddingTop = bodyBorder + 'px'; 625 } 626 wheight = (uaInfo.getIpadApp() == 'ipad_app' ? document.documentElement.clientWidth : window.innerHeight || document.documentElement.clientHeight) - (bodyBorder * 2); 627 } 628 if (!isMobile && !scrollbarWidth) { 629 // Create the measurement node 630 var scrollDiv = document.createElement("div"); 631 scrollDiv.className = "scrollbar-measure"; 632 var dombody = document.body; 633 if (dombody != null) { 634 dombody.appendChild(scrollDiv); 635 // Get the scrollbar width 636 scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth; 637 // Delete the DIV 638 dombody.removeChild(scrollDiv); 639 } 640 } 641 if (!isMobile) { 642 forEachElement('.box-container', function (el, i) { 643 if (!classie.hasClass(el, 'limit-width')) { 644 var elWidth = outerWidth(el), 645 newWidth = 12 * Math.ceil((wwidth - scrollbarWidth) / 12); 646 boxWidth = newWidth - (bodyBorder * 2); 647 boxLeft = (wwidth - boxWidth - scrollbarWidth) / 2; 648 el.style.width = boxWidth + 'px'; 649 if (UNCODE.isRTL) 650 el.style.marginRight = boxLeft + 'px'; 651 else 652 el.style.marginLeft = boxLeft + 'px'; 653 if (mainmenu != undefined && mainmenu[0] != undefined) { 654 mainmenu[0].style.width = boxWidth + 'px'; 655 } 656 } 657 }); 658 } 659 660 if (classie.hasClass(document.body, 'menu-mobile-transparent') && !classie.hasClass(document.body, 'hmenu-center')) isMobileTrans
660parent = true; 661 662 if (!isMobileTransparent) { 663 if (wwidth > mediaQuery && classie.hasClass(document.body, 'menu-force-opacity')) classie.removeClass(document.body, 'menu-force-opacity'); 664 if (wwidth <= mediaQuery && !classie.hasClass(document.body, 'menu-force-opacity')) classie.addClass(document.body, 'menu-force-opacity'); 665 } 666 667 UNCODE.isQuickView = isQuickView; 668 669 }, 670 fixMenuHeight = function () { 671 if (!classie.hasClass(document.body, 'vmenu')) noScroll = true; 672 673 menuwrapper = document.querySelectorAll(".menu-wrapper"); 674 masthead = document.getElementById("masthead"); 675 offcanvas_overlay_close = document.querySelector('.uncode-close-offcanvas-overlay'); 676 if (classie.hasClass(document.body, 'hmenu-center-split') && document.getElementById("logo-container-mobile") != null && document.getElementById("main-logo") != null) { 677 mastheadMobile = new Array(document.getElementById("logo-container-mobile"), document.getElementById("main-logo").parentNode); 678 } else mastheadMobile = document.getElementById("logo-container-mobile"); 679 menuhide = document.querySelector('#masthead .menu-hide, .main-header .menu-hide, #masthead .menu-hide-vertical'); 680 menusticky = document.querySelectorAll('.menu-sticky, .menu-sticky-vertical'); 681 transmenuel = document.querySelectorAll('.menu-transparent:not(.vmenu-container)'); 682 var menuItemsButton = document.querySelectorAll('.menu-item-button .menu-btn-table'); 683 logo = document.querySelector('#main-logo'); 684 if (logo != undefined) logolink = (logo.firstElementChild || logo.firstChild); 685 if (logolink != undefined) logoMinScale = logolink.getAttribute("data-minheight"); 686 logoel = document.querySelectorAll('.menu-shrink .logo-container'); 687 mainmenu = document.querySelectorAll('.vmenu .vmenu-container, .menu-primary .menu-container'); 688 if (classie.hasClass(document.body, 'hmenu-center')) { 689 var mainmenucenter = document.querySelectorAll('.hmenu-center .menu-container-mobile'); 690 var first_array = Array.prototype.slice.call(mainmenu); 691 var second_array = Array.prototype.slice.call(mainmenucenter); 692 mainmenu = first_array.concat(second_array); 693 } 694 secmenu = document.querySelectorAll('.menu-secondary'); 695 calculateMenuHeight(true); 696 for (var k = 0;
696 k < menuItemsButton.length; k++) { 697 var a_item = menuItemsButton[k].parentNode, 698 buttonHeight = outerHeight(menuItemsButton[k]); 699 a_item.style.height = buttonHeight + 'px'; 700 } 701 if (classie.hasClass(document.body, 'hmenu-center-split')) { 702 mainNavMenu = document.querySelector('#masthead .navbar-main .menu-primary-inner'); 703 mainNavWrapper = document.querySelector('#masthead > .menu-container'); 704 isSplitMenu = true; 705 } 706 707 var $secondary_menu_html = document.getElementById("secondary-menu-html"); 708 if ((classie.hasClass(document.body, 'vmenu') || classie.hasClass(document.body, 'menu-offcanvas')) && $secondary_menu_html == null) { 709 classie.addClass(document.body, 'menu-offcanvas-additional-text') 710 } 711 712 fixMenu(); 713 menuOpacity(); 714 }, 715 menuOpacity = function () { 716 transmenuel = document.querySelectorAll('.menu-transparent:not(.vmenu-container)'); 717 if (typeof transmenuel === 'undefined' || !transmenuel.length) { 718 return false; 719 } 720 if (wwidth > mediaQuery && classie.hasClass(transmenuel[0], 'menu-desktop-transparent')) { 721 classie.removeClass(transmenuel[0], 'menu-desktop-transparent'); 722 classie.addClass(transmenuel[0], 'menu-desktop-transparent'); 723 } else if (wwidth <= mediaQuery && classie.hasClass(transmenuel[0], 'menu-desktop-transparent')) { 724 classie.removeClass(transmenuel[0], 'menu-desktop-transparent'); 725 classie.addClass(transmenuel[0], 'menu-desktop-transparent'); 726 } 727 }, 728 verticalRightMenu = function () { 729 var setVrightMenu, vRightMenuw; 730 var vRightMenu = function () { 731 $initBox = document.getElementById("initBox"); 732 $mainHeader = document.querySelector('.main-header'); 733 if ($mainHeader != null) { 734 mainHeader = $mainHeader.innerHTML; 735 $mainWrapper = document.querySelector('.main-wrapper'); 736 if (classie.hasClass(document.body, 'vmenu') && ((classie.hasClass(document.body, 'vmenu-position-right') && !classie.hasClass(document.body, 'rtl')) || (classie.hasClass(document.body, 'vmenu-position-left') && classie.hasClass(document.body, 'rtl')))) { 737 if (wwidth <= mediaQuery) { 738 $initBox.parentNode.insertBefore($mainHeader, $initBox.nextSibling); 739 } else { 740 $mainWrapper.parentNode.insertBefore($mainHeader, $mainWrapper.nextSibling); 741 } 742 $mainHeader.removeChild; 743 } 744 window.dispatchEvent(new Event('lateral_resize')); 745 } 746 }; 747 vRightMenu(); 748 window.addEventListener("resize", function () { 749 if (wwidth != vRightMenuw) { 750 clearRequestTimeout(setVrightMenu); 751 setVrightMenu = requestTimeout(function () { 752 vRightMenuw = wwidth; 753 vRightMenu(); 754 }, 100); 755 } 756 }); 757 }, 758 calculateMenuHeight = function (first) { 759 menuHeight = transmenuHeight = secmenuHeight = 0; 760 761 if (mastheadMobile != null) { 762 if (mastheadMobile.length === 2) { 763 if (wwidth > mediaQuery) { 764 UNCODE.menuMobileHeight = outerHeight(mastheadMobile[1]); 765 mastheadMobilePaddingTop = parseFloat(getComputedStyle(mastheadMobile[1]).paddingTop); 766 } else { 767 UNCODE.menuMobileHeight = outerHeight(mastheadMobile[0]); 768 mastheadMobilePaddingTop = parseFloat(getComputedStyle(mastheadMobile[0]).paddingTop); 769 } 770 } else { 771 UNCODE.menuMobileHeight = outerHeight(mastheadMobile); 772 mastheadMobilePaddingTop = parseFloat(getComputedStyle(mastheadMobile).paddingTop); 773 } 774 } 775 776 secmenu = document.querySelectorAll('.menu-secondary:not(.menu-primary)'); 777 if (wwidth > mediaQuery) { 778 for (var i = 0; i < mainmenu.length; i++) { 779 if (classie.hasClass(document.body, 'hmenu-center') && i === 1) continue; 780 if (!classie.hasClass(masthead, 'masthead-vertical')) { 781 menuHeight = menuHeight + outerHeight(mainmenu[i]); 782 if (classie.hasClass(document.body, 'hmenu-center') && document.getElementById("logo-container-mobile") != null) { 783 menuHeight = menuHeight + outerHeight(document.getElementById("logo-container-mobile")); 784 } 785 } else menuHeight = 0; 786 787 if (isIE && first) { 788 getDivChildren(mainmenu[i], '.menu-horizontal-inner', function (innerMenu, i) { 789 innerMenu.style.height = menuHeight + 'px'; 790 }); 791 } 792 793 if (classie.hasClass(mainmenu[i].parentNode, 'menu-transparent')) { 794 transmenuHeight += menuHeight; 795 } 796 } 797 798 for (var j = 0; j < secmenu.length; j++) {
799 secmenuHeight += outerHeight(secmenu[j]); 800 } 801 menuHeight += secmenuHeight; 802 } else { 803 menuHeight = UNCODE.menuMobileHeight; 804 if (isMobileTransparent) { 805 for (var i = 0; i < mainmenu.length; i++) { 806 if (classie.hasClass(mainmenu[i].parentNode, 'menu-transparent')) { 807 transmenuHeight += menuHeight; 808 } 809 } 810 } 811 var search_box = document.querySelectorAll('.search-icon .drop-menu'); 812 for (var i = 0; i < search_box.length; i++) { 813 search_box[i].removeAttribute('style'); 814 } 815 816 for (var j = 0; j < secmenu.length; j++) { 817 secmenuHeight += outerHeight(secmenu[j]); 818 } 819 menuHeight += secmenuHeight; 820 } 821 822 823 if (classie.hasClass(document.documentElement, 'admin-mode')) { 824 adminBar = document.getElementById("wpadminbar"); 825 if (wwidth > 600) { 826 if (adminBar != null) adminBarHeight = outerHeight(adminBar); 827 else { 828 if (wwidth > 782) adminBarHeight = 32; 829 else adminBarHeight = 46; 830 } 831 } else adminBarHeight = 0; 832 } 833 UNCODE.adminBarHeight = adminBarHeight; 834 UNCODE.menuHeight = menuHeight; 835 836 if (UNCODE.isFullPage && !UNCODE.isFrontEndEditor) { 837 if (UNCODE.adminBarHeight > 0) 838 document.body.style.marginTop = ((UNCODE.adminBarHeight + UNCODE.bodyBorder) * -1) + 'px'; 839 840 document.body.style.paddingTop = (UNCODE.adminBarHeight + UNCODE.bodyBorder) + 'px'; 841 } else { 842 document.body.style.marginTop = 0; 843 document.body.style.paddingTop = 0; 844 } 845 846 if (masthead != undefined) { 847 //masthead.parentNode.style.height = menuHeight + 'px'; 848 if (classie.hasClass(masthead, 'menu-transparent')) { 849 if (wwidth > mediaQuery) masthead.parentNode.style.height = '0px'; 850 } 851 } 852 853 if (typeof menuhide == 'object' && menuhide != null && mainmenu[0] != undefined) { 854 var sticky_element = (typeof mainmenu.item === 'undefined' ? ((wwidth > mediaQuery) ? mainmenu[0] : mainmenu[1]) : mainmenu[0]); 855 if (sticky_element.style.top != '') { 856 sticky_element.style.top = UNCODE.bodyBorder + 'px' 857 } 858 } 859 860 }, 861 centerSplitMenu = function () { 862 if (typeof mainNavMenu !== 'undefined' && mainNavMenu !== null) { 863 if (wwidth > mediaQuery && mainNavMenu) { 864 if (mainNavMenu.style.left == '') { 865 mainNavMenu.style.left = '0px'; 866 var logoPos = logo.parentNode.getBoundingClientRect(); 867 mainNavMenu.style.left = (wwidth / 2) - (logoPos.left + (logoPos.width / 2)) + 'px'; 868 mainNavWrapper.style.opacity = '1'; 869 } 870 mainNavWrapper.style.opacity = '1'; 871 } else { 872 mainNavMenu.style.left = ''; 873 } 874 } 875 }, 876 initHeader = function () { 877 pageHeader = document.getElementById("page-header"); 878 if (SiteParameters.dynamic_srcset_active === '1') { 879 UNCODE.adaptive_srcset_replace_bg(pageHeader); 880 } 881 UNCODE.adaptive(); 882 883 parallaxHeaders = document.querySelectorAll('.header-parallax > .header-bg-wrapper'); 884 header = document.querySelectorAll('.header-wrapper.header-uncode-block, .header-wrapper.header-revslider, .header-wrapper.header-layerslider, .header-basic .header-wrapper, .header-uncode-block > .row-container:first-child > .row > .row-inner > .col-lg-12 > .uncol, .header-uncode-block > div[data-sticky] > .row-container:first-child > .row > .row-inner > .col-lg-12 > .uncol, .header-uncode-block .uncode-slider .owl-carousel > .row-container:first-child .column_child .uncoltable, .header-uncode-block > section > .row > .row-container:first-child > .row > .row-inner > .col-lg-12 > .uncol, .header-uncode-block > section > .row > div[data-sticky] > .row-container:first-child > .row > .row-inner > .col-lg-12 > .uncol'); 885 headerWithOpacity = document.querySelectorAll('.header-scroll-opacity'); 886 if (typeof pageHeader === 'object' && pageHeader !== null) { 887 headerVideo = pageHeader.querySelectorAll('.uncode-video-container:not(.t-entry-drop)'); 888 kenburnsHeaders = pageHeader.querySelectorAll('.with-kburns > .header-bg-wrapper'); 889 backwashHeaders = pageHeader.querySelectorAll('.with-zoomout > .header-bg-wrapper'); 890 if (headerVideo.length) { 891 classie.addClass(pageHeader, 'has-video'); 892 } 893 } 894 if (pageHeader != undefined) { 895 var backs = pageHeader.querySelectorAll('.header-bg'), 896 backsCarousel = pageHeader.querySelectorAll('.header-uncode-block .background-inner'), 897 uri_pattern = /\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»ââââ]))/ig; 898 if (backs.length == 0 && backsCarousel.length == 0) { 899 pageHeader.setAttribute('data-imgready', 'true'); 900 } else { 901 if (backsCarousel.length) { 902 for (var j = 0; j < backsCarousel.length; j++) { 903 if (j == 0) { 904 if (classie.hasClass(backsCarousel[j], 'lazyload')) { 905 pageHeader.setAttribute('data-imgready', 'true'); 906 } 907 908 if (!!backsCarousel[j].style.backgroundImage && backsCarousel[j].style.backgroundImage !== void 0) { 909 var url = (backsCarousel[j].style.backgroundImage).match(uri_pattern), 910 image = new Image(); 911 if (url === null) { 912 url = (backsCarousel[j].style.backgroundImage).slice(4, -1).replace(/"/g, ""); 913 } 914 image.onload = function () { 915 pageHeader.setAttribute('data-imgready', 'true'); 916 }; 917 image.src = url[0]; 918 } else { 919 pageHeader.setAttribute('data-imgready', 'true'); 920 } 921 } 922 } 923 } else { 924 for (var i = 0; i < backs.length; i++) { 925 if (i == 0) { 926 if (classie.hasClass(backs[i], 'lazyload')) { 927 pageHeader.setAttribute('data-imgready', 'true'); 928 } 929 930 if (!!backs[i].style.backgroundImage && backs[i].style.backgroundImage !== void 0) { 931 var url = (backs[i].style.backgroundImage).match(uri_pattern), 932 image = new Image(); 933 if (url === null) { 934 url = (backs[i].style.backgroundImage).slice(4, -1).replace(/"/g, ""); 935 } 936 image.onload = function () { 937 pageHeader.setAttribute('data-imgready', 'true'); 938 }; 939 image.src = url[0]; 940 } else { 941 pageHeader.setAttribute('data-imgready', 'true'); 942 } 943 } 944 } 945 } 946 } 947 } 948 949 if (masthead != undefined && !classie.hasClass(masthead, 'masthead-vert
949ical')) { 950 if (header.length) { 951 masthead.parentNode.style.height = (menuHeight - 1) + 'px'; 952 if (offcanvas_overlay_close != undefined) { 953 offcanvas_overlay_close.style.height = (menuHeight - 1) + 'px'; 954 offcanvas_overlay_close.style.lineHeight = (menuHeight - 5) + 'px'; 955 } 956 if (menuwrapper[0] != undefined) classie.addClass(menuwrapper[0], 'with-header'); 957 for (var j = 0; j < header.length; j++) { 958 var headerel = header[j], 959 closestStyle = getClosest(headerel, 'style-light'), 960 wcClosestStyle = getClosest(headerel, 'wc-parent-style-light'); 961 if (closestStyle != null && classie.hasClass(closestStyle, 'style-light')) { 962 switchColorsMenu(0, 'light'); 963 } else if (wcClosestStyle != null && classie.hasClass(wcClosestStyle, 'wc-parent-style-light')) { 964 switchColorsMenu(0, 'light'); 965 } else if (getClosest(headerel, 'style-dark') != null) { 966 switchColorsMenu(0, 'dark'); 967 } else if (getClosest(headerel, 'wc-parent-style-dark') != null) { 968 switchColorsMenu(0, 'dark'); 969 } else { 970 if (masthead.style.opacity !== 1) masthead.style.opacity = 1; 971 } 972 if (classie.hasClass(masthead, 'menu-transparent')) { 973 if (isMobileTransparent || wwidth > mediaQuery) { 974 masthead.parentNode.style.height = '0px'; 975 if (classie.hasClass(masthead, 'menu-add-padding')) { 976 var headerBlock = getClosest(headerel, 'header-uncode-block'); 977 if (headerBlock != null) { 978 var parentRow = headerBlock.querySelector('.vc_row'); 979 if (parentRow != null) { 980 var innerRows = parentRow.querySelectorAll('.column_parent > .uncol > .uncoltable > .uncell > .uncont, .uncode-slider .column_child > .uncol > .uncoltable > .uncell > .uncont'); 981 for (var k = 0; k < innerRows.length; k++) { 982 if (innerRows[k] != undefined) { 983 if (wwidth > mediaQuery) innerRows[k].style.paddingTop = transmenuHeight + 'px'; 984 else innerRows[k].style.paddingTop = (transmenuHeight - mastheadMobilePaddingTop) + 'px'; 985 } 986 } 987 } 988 } else { 989 getDivChildren(headerel, '.header-content', function (headerContent, i) { 990 if (wwidth > mediaQuery) headerContent.style.paddingTop = transmenuHeight + 'px'; 991 else headerContent.style.paddingTop = (transmenuHeight - mastheadMobilePaddingTop) + 'px'; 992 }); 993 } 994 } 995 } 996 } 997 if (classie.hasClass(headerel, 'uncoltable')) { 998 break; 999 } 1000 } 1001 } else { 1002 if (menuwrapper[0] != undefined) classie.addClass(menuwrapper[0], 'no-header'); 1003 classie.removeClass(masthead, 'menu-transparent'); 1004 transmenuHeight = 0; 1005 isMobileTransparent = false; 1006 } 1007 } else { 1008 isMobileTransparent = false; 1009 } 1010 if (typeof transmenuel === 'undefined' || !transmenuel.length) isMobileTransparent = false; 1011 bodyTop = document.documentElement['scrollTop'] || document.body['scrollTop']; 1012 UNCODE.bodyTop = bodyTop; 1013 headerHeight('.header-wrapper'); 1014 if (!classie.hasClass(document.body, 'vmenu')) 1015 initBox(); 1016 scrollFunction(); 1017 showHideScrollup(bodyTop); 1018 1019 if (UNCODE.isMobile) { 1020 1021 var eventName = 'loadedmetadata'; 1022 eventName = eventName.replace(/^on/, ''); 1023 var elt = document.createElement('video'[eventName]); 1024 var eventIsSupported = ('on' + eventName in elt); 1025 elt = null; 1026 if (!eventIsSupported || (classie.hasClass(document.documentElement, 'firefox') && classie.hasClass(document.documentElement, 'android'))) { 1027 classie.addClass(document.body, 'video-not-supported'); 1028 } 1029 } 1030 1031 }, 1032 initRow = function (currentRow) { 1033 if (SiteParameters.dynamic_srcset_active === '1') { 1034 UNCODE.adaptive_srcset_replace_bg(currentRow); 1035 } 1036 UNCODE.adaptive(); 1037 var el = typeof currentRow.parentNode !== 'undefined' && currentRow.parentNode.parentNode.getAttribute("data-parent") == 'true' ? currentRow.parentNode : (currentRow.getAttribute("data-parent") == 'true' ? currentRow.querySelector('.row-parent') : currentRow.parentNode.parentNode), 1038 rowParent = el.parentNode, 1039 rowInner = currentRow.parentNode, 1040 percentHeight = el.getAttribute("data-height-ratio"), 1041 minHeight = el.getAttribute("data-minheight"), 1042 calculateHeight, 1043 calculatePadding = 0, 1044 isHeader = false, 1045 isFirst = false, 1046 uri_pattern = /\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»ââââ]))/ig; 1047 1048 /** Add class to the row when contains responsive column size */ 1049 getDivChildren(el.parentNode, '.column_parent, .column_child', function (obj, i, total) { 1050 if ((obj.className).indexOf("col-md-") > - 1) { 1051 classie.addClass(obj.parentNode, 'cols-md-responsive'); 1052 } 1053 obj.className = obj.className.replace(/vc_col-sm-(\d{1,2})/g, ""); 1054 if ((obj.className).indexOf("col-sm-") > - 1 && (obj.className).indexOf("col-sm-clear") == - 1) { 1055 classie.addClass(obj.parentNode, 'cols-sm-responsive'); 1056 } 1057 }); 1058 1059 setRowHeight(el); 1060 1061 var elements = 0; 1062 getDivChildren(el, '.row-internal .background-inner', function (obj, i, total) { 1063 elements++; 1064 if (i == 0) { 1065 if (!!obj.style.backgroundImage && obj.style.backgroundImage !== void 0) { 1066 var url = (obj.style.backgroundImage).match(uri_pattern), 1067 image = new Image(); 1068 if (url === null) { 1069 url = (obj.style.backgroundImage).slice(4, -1).replace(/"/g, ""); 1070 } 1071 image.onload = function () { 1072 el.setAttribute('data-imgready', 'true'); 1073 el.dispatchEvent(new CustomEvent('imgLoaded')); 1074 }; 1075 image.src = url[0]; 1076 } else { 1077 el.setAttribute('data-imgready', 'true'); 1078 el.dispatchEvent(new CustomEvent('imgLoaded')); 1079 } 1080 } 1081 }); 1082 if (elements == 0) { 1083 el.setAttribute('data-imgready', 'true'); 1084 } 1085 1086 // var $bgs = rowParent.querySelectorAll('.background-inner'); 1087 1088 // for (var i = 0; i < $bgs.length; i++) { 1089 // var $bg = $bgs[i]; 1090 // if ($bg.style.backgroundImage && $bg.style.backgroundImage !== '') { 1091 // var url = ($bg.style.backgroundImage).match(uri_pattern), 1092 // image = new Image(); 1093 // url = url[0]; 1094 // image.source = url; 1095 // image.el = $bg; 1096 // image.onload = function() { 1097 // var _this = this; 1098 // _this.el.setAttribute('data-imgloaded', 'true'); 1099 // }; 1100 // image.src = url; 1101 // } else { 1102 // $bg.setAttribute('data-imgloaded', 'true'); 1103 // } 1104 // } 1105 1106 /** init parallax is not mobile */ 1107 if (!UNCODE.isFullPage) { 1108 bodyTop = document.documentElement['scrollTop'] || document.body['scrollTop']; 1109 kenburnsRows = el.parentNode.parentNode.querySelectorAll('.with-kburns > .row-background > .background-wrapper, .with-kburns > .uncode-multi-bgs > .row-background > .background-wrapper, .with-kburns > .fp-tableCell > .row-background > .background-wrapper, .with-kburns > .fp-tableCell > .fp-scrollable > .fp-scroller > .row-background > .background-wrapper'); 1110 kenburnsCols = el.querySelectorAll('.with-kburns > .column-background > .background-wrapper, .with-kburns > .uncode-multi-bgs > .column-background > .background-wrapper'); 1111 backwashRows = el.parentNode.parentNode.querySelectorAll('.with-zoomout > .row-background > .background-wrapper, .with-zoomout > .uncode-multi-bgs > .row-background > .background-wrapper, .with-zoomout > .fp-tableCell > .row-background > .background-wrapper, .with-zoomout > .fp-tableCell > .fp-scrollable > .fp-scroller > .row-background > .background-wrapper'); 1112 backwashCols = el.querySelectorAll('.with-zoomout > .column-background > .background-wrapper'); 1113 if (isMobileParallaxAllowed || !UNCODE.isMobile) {
1114 parallaxRows = el.parentNode.parentNode.querySelectorAll('.with-parallax > .row-background > .background-wrapper, .with-parallax > .uncode-multi-bgs > .row-background > .background-wrapper, .with-parallax > .fp-tableCell > .row-background > .background-wrapper, .with-parallax > .fp-tableCell > .fp-scrollable > .fp-scroller > .row-background > .background-wrapper'); 1115 parallaxCols = el.querySelectorAll('.with-parallax > .column-background > .background-wrapper, .with-parallax > .uncode-multi-bgs > .column-background > .background-wrapper'); 1116 visibleRows = el.parentNode.parentNode; 1117 parallaxRowCol(bodyTop); 1118 visibleRowCol(bodyTop); 1119 } else { 1120 if (UNCODE.isMobile) { 1121 kenburnsHeader(bodyTop); 1122 kenburnsRowCol(bodyTop); 1123 backwashHeader(bodyTop); 1124 backwashRowCol(bodyTop); 1125 } 1126 } 1127 } 1128 1129 shapeDivider(); 1130 1131 //Text animation, automatic lines and highlights 1132 var setWrap; 1133 1134 //Font style of grouped products 1135 function product_relative_font_style(el) { 1136 var $labels = el.querySelectorAll('.woocommerce-grouped-product-list-item__label, .woocommerce-grouped-product-list-item__price'); 1137 if ($labels.length) { 1138 var $main_price = el.querySelectorAll('.heading-text .woocommerce-Price-amount'); 1139 if ($main_price.length) { 1140 var $price_wrap = $main_price[0].closest('.heading-text'), 1141 $price_nest = $price_wrap.querySelector(':first-child'), 1142 font_class = $price_nest.getAttribute('class').split(' '), 1143 cli, labI; 1144 1145 for (labI = 0; labI < $labels.length; labI++) { 1146 for (cli = 0; cli < font_class.length; cli++) { 1147 if (font_class[cli].indexOf('font') !== -1 && font_class[cli].indexOf('fontsize') === -1) { 1148 classie.addClass($labels[labI], font_class[cli]); 1149 } 1150 } 1151 } 1152 1153 } 1154 } 1155 } 1156 product_relative_font_style(el) 1157 1158 function vc_row_full_width_size() { 1159 if (boxWidth != 0 && classie.hasClass(rowParent, 'vc_row-full-width')) { 1160 var vmenu = document.querySelector('.vmenu .vmenu-container'), 1161 vmenuW = 0; 1162 if (typeof vmenu == 'object' && vmenu != null && wwidth > mediaQuery) { 1163 vmenuW = vmenu.offsetWidth; 1164 } 1165 rowParent.style.maxWidth = (boxWidth - vmenuW) + 'px'; 1166 } 1167 } 1168 vc_row_full_width_size(); 1169 1170 window.addEventListener("resize", function () { 1171 vc_row_full_width_size(); 1172 }); 1173 1174 function heading_inline_images() { 1175 var $headings = currentRow.querySelectorAll('.heading-text'); 1176 for (var head_k = 0; head_k < $headings.length; head_k++) { 1177 var $heading = $headings[head_k], 1178 $imgs = $heading.querySelectorAll('.un-inline-image'); 1179 1180 for (var im = 0; im < $imgs.length; im++) { 1181 var $img = $imgs[im].querySelectorAll('img, video'), 1182 $span = $imgs[im].querySelectorAll('span'), 1183 ratio_att = $imgs[im].getAttribute('data-ratio'), 1184 // span_bound = $span[0].getBoundingClientRect(), 1185 // span_h = span_bound.height; 1186 span_h = $span[0].offsetHeight; 1187 1188 if (ratio_att != undefined) { 1189 var final_w = span_h * parseFloat(ratio_att); 1190 } else { 1191 if ($img.length) { 1192 // var img_bound = $img[0].getBoundingClientRect(), 1193 // img_w = img_bound.width, 1194 // img_h = img_bound.height, 1195 var img_w = $img[0].offsetWidth, 1196 img_h = $img[0].offsetHeight, 1197 img_r = img_w / img_h 1198 if (isNaN(img_r)) { 1199 img_w = parseFloat($img[0].getAttribute('width')); 1200 img_h = parseFloat($img[0].getAttribute('height')); 1201 img_r = img_w / img_h 1202 if (isNaN(img_r)) { 1203 img_r = 1; 1204 } 1205 } 1206 var final_w = span_h * img_r; 1207 $imgs[im].setAttribute('data-ratio', img_r); 1208 } 1209 } 1210 classie.addClass($imgs[im], 'inline-img-loaded'); 1211 $imgs[im].style.width = final_w + 'px'; 1212 } 1213 1214 if (span_h === 0 && $span[0].offsetParent !== null) { 1215 heading_inline_images(); 1216 } 1217 1218 } 1219 }; 1220 1221 heading_inline_images(); 1222 1223 var evtWordLines = new CustomEvent('uncodeWordLines') 1224 1225 function word_for_lines(event, $parent_el) { 1226 var iPhone = /iPhone/.test(navigator.userAgent) && !window.MSStream, 1227 android = /Android/.test(navigator.userAgent) && !window.MSStream; 1228 1229 if ( event === 'resize' && ( iPhone || (android && Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0) < 750) ) ) { 1230 return; 1231 } 1232 1233 if (typeof $parent_el === 'undefined' || $parent_el === null) { 1234 $parent_el = document.body; 1235 } 1236 1237 var $headings = $parent_el.querySelectorAll('.heading-text'); 1238 1239 for (var head_k = 0; head_k < $headings.length; head_k++) { 1240 var $heading = $headings[head_k], 1241 heading_cont = $heading.innerHTML, 1242 $row = $heading.closest('.row-parent'), 1243 $owl_carousel = $heading.closest('.owl-carousel-wrapper'), 1244 $owl_item = $heading.closest('.owl-item'), 1245 $words = $heading.querySelectorAll('.split-word'); 1246 1247 if (!$words.length) { 1248 if ($owl_item !== null) 1249 continue; 1250 } 1251 1252 if ($owl_carousel === null && typeof event !== 'undefined' && event !== 'resize' && event !== false) { 1253 continue; 1254 } 1255 1256 if ($owl_carousel !== null) { 1257 if ( 1258 ($owl_item === null) 1259 || 1260 ($owl_item !== null && classie.hasClass($owl_item, 'active') && $owl_item.getAttribute('data-index') !== '1') 1261 || 1262 ($owl_item !== null && classie.hasClass($owl_item, 'active') && $owl_item.getAttribute('data-index') === '1' && $owl_item.getAttribute('data-already-reached') === 'true') 1263 ) { 1264 continue; 1265 } 1266 } 1267 1268 $heading.innerHTML = heading_cont; 1269 $words = $heading.querySelectorAll('.split-word, .heading-foreword'); 1270 var lineArray = [], 1271 lineIndex = 0, 1272 lineStart = true, 1273 lineEnd = false, 1274 $text_highlight = $heading.querySelectorAll('.heading-text-highlight'), 1275 $line_wraps = $heading.querySelectorAll('.heading-line-wrap'); 1276 1277 if ( $line_wraps.length && typeof event === 'undefined' ) { 1278 continue; 1279 } 1280 1281 var lettering = function(){ 1282 var $wraps = $parent_el.querySelectorAll('.animate_inner_when_almost_visible.curtain, .animate_inner_when_almost_visible.perspective, .animate_inner_when_almost_visible.perspective-words, .animate_inner_when_almost_visible.curtain-words, .animate_inner_when_almost_visible.typewriter, .animate_inner_when_almost_visible.single-curtain, .animate_inner_when_almost_visible.single-slide, .animate_inner_when_almost_visible.single-slide-opposite, .text-reveal'); 1283 1284 for (var i = 0; i < $wraps.length; i++) { 1285 var $wrap = $wraps[i], 1286 $lines = $wrap.querySelectorAll('.heading-line-wrap'), 1287 $words = $wrap.querySelectorAll('.split-word:not(.uncode-rotating-span)'), 1288 containerDelay = $wrap.getAttribute('data-delay'), 1289 containerSpeed = $wrap.getAttribute('data-speed'), 1290 containerSpeed_val = typeof containerSpeed !== 'undefined' && containerSpeed !== null ? parseFloat(containerSpeed) : 400, 1291 containerInterval = typeof $wrap.getAttribute('data-interval') !== 'undefined' && $wrap.getAttribute('data-interval') !== null ? $wrap.getAttribute('data-interval') : 0, 1292 $cloned = $wrap.closest('.cloned'), 1293 delayAttr = (containerDelay != undefined) ? containerDelay : 0; 1294 1295 if ( classie.hasClass($wrap, 'already-animated') ) { 1296 continue; 1297 } 1298 1299 if ( $cloned !== null ) { 1300 continue; 1301 } 1302 1303 if ($cloned !== null) { 1304 continue; 1305 } 1306 1307 if (classie.hasClass($wrap, 'curtain')) { 1308 1309 for (var il = 0; il < $lines.length; il++) { 1310 var $line = $lines[il], 1311 $spans = $line.querySelectorAll('.split-word-inner'); 1312 1313 for (var is = 0; is < $spans.length; is++) { 1314 1315 var $span = $spans[is]; 1316 1317 $span.setAttribute('data-delay', (parseFloat(delayAttr) + ((parseFloat(containerInterval) + 100) * il))); 1318 1319 if (typeof containerSpeed_val !== 'undefined') { 1320 $span.setAttribute('data-speed', containerSpeed_val); 1321 } 1322 1323 classie.addClass($span, 'animate_when_parent_almost_visible'); 1324 classie.addClass($span, 'text-bottom-t-top'); 1325 1326 if (is + 1 === $spans.length && il + 1 === $lines.length) { 1327 classie.addClass($span, 'anim-tot-checker'); 1328 } 1329 } 1330 1331 } 1332 1333 } else if (classie.hasClass($wrap, 'perspective')) { 1334 1335 for (var il = 0; il < $lines.length; il++) { 1336 var $line = $lines[il], 1337 $spans = $line.querySelectorAll('.split-word'); 1338 1339 for (var is = 0; is < $spans.length; is++) { 1340 1341 var $span = $spans[is]; 1342 1343 $span.setAttribute('data-delay', (parseFloat(delayAttr) + ((parseFloat(containerInterval) + 100) * il))); 1344 1345 if (typeof containerSpeed_val !== 'undefined') { 1346 $span.setAttribute('data-speed', containerSpeed_val); 1347 } 1348 1349 classie.addClass($span, 'animate_when_parent_almost_visible'); 1350 classie.addClass($span, 'perspective-bottom-t-top'); 1351 1352 if (is + 1 === $spans.length && il + 1 === $lines.length) { 1353 classie.addClass($span, 'anim-tot-checker'); 1354 } 1355 } 1356 1357 } 1358 1359 } else if (classie.hasClass($wrap, 'single-curtain') && !SiteParameters.uncode_has_ligatures ) { 1360 1361 var $spans = $wrap.querySelectorAll('.split-char'); 1362 1363 for (var is = 0; is < $spans.length; is++) { 1364 var $span = $spans[is]; 1365 1366 $span.setAttribute('data-delay', (parseFloat(delayAttr) + ((parseFloat(containerInterval) + 20) * is))); 1367 1368 if (typeof containerSpeed_val !== 'undefined') { 1369 $span.setAttribute('data-speed', containerSpeed_val); 1370 } 1371 1372 classie.addClass($span, 'animate_when_parent_almost_visible'); 1373 if (!classie.hasClass($span, 'un-inline-image')) { 1374 classie.addClass($span, 'text-bottom-t-top'); 1375 } 1376 1377 if (is + 1 == $spans.length) { 1378 classie.addClass($span, 'anim-tot-checker'); 1379 } 1380 }; 1381 1382 } else if (classie.hasClass($wrap, 'typewriter') && ! SiteParameters.uncode_has_ligatures) { 1383 1384 var $spans = $wrap.querySelectorAll('.split-char'); 1385 1386 for (var is = 0; is < $spans.length; is++) { 1387 var $span = $spans[is]; 1388 1389 $span.setAttribute('data-delay', (parseFloat(delayAttr) + ((parseFloat(containerInterval) + 20) * is))); 1390 1391 if (typeof containerSpeed_val !== 'undefined') { 1392 $span.setAttribute('data-speed', containerSpeed_val); 1393 } 1394 1395 classie.addClass($span, 'animate_when_parent_almost_visible'); 1396 classie.addClass($span, 'typewriter'); 1397 1398 if (is + 1 == $spans.length) { 1399 classie.addClass($span, 'anim-tot-checker'); 1400 } 1401 1402 } 1403 1404 } else if (classie.hasClass($wrap, 'single-slide')) { 1405 1406 var $spans = $wrap.querySelectorAll('.split-word-inner'); 1407 1408 for (var is = 0; is < $spans.length; is++) { 1409 var $span = $spans[is]; 1410 1411 $span.setAttribute('data-delay', (parseFloat(delayAttr) + ((parseFloat(containerInterval) + 50) * is))); 1412 1413 if (typeof containerSpeed_val !== 'undefined') { 1414 $span.setAttribute('data-speed', containerSpeed_val); 1415 } 1416 1417 classie.addClass($span, 'animate_when_parent_almost_visible'); 1418 if (classie.hasClass(document.body, 'rtl')) { 1419 classie.addClass($span, 'text-left-t-right'); 1420 } else { 1421 classie.addClass($span, 'text-right-t-left'); 1422 } 1423 1424 if (is + 1 == $spans.length) { 1425 classie.addClass($span, 'anim-tot-checker'); 1426 } 1427 } 1428 1429 } else if (classie.hasClass($wrap, 'single-slide-opposite')) { 1430 1431 var $spans = $wrap.querySelectorAll('.split-word-inner'); 1432 1433 for (var is = 0; is < $spans.length; is++) { 1434 var $span = $spans[is]; 1435 1436 $span.setAttribute('data-delay', (parseFloat(delayAttr) + ((parseFloat(containerInterval) + 50) * is))); 1437 1438 if (typeof containerSpeed_val !== 'undefined') { 1439 $span.setAttribute('data-speed', containerSpeed_val); 1440 } 1441 1442 classie.addClass($span, 'animate_when_parent_almost_visible'); 1443 if (classie.hasClass(document.body, 'rtl')) { 1444 classie.addClass($span, 'text-right-t-left'); 1445 } else { 1446 classie.addClass($span, 'text-left-t-right'); 1447 } 1448 1449 if (is + 1 == $spans.length) { 1450 classie.addClass($span, 'anim-tot-checker'); 1451 } 1452 } 1453 1454 } else if (classie.hasClass($wrap, 'curtain-words')) { 1455 1456 var $spans = $wrap.querySelectorAll('.split-word-inner'); 1457 1458 for (var is = 0; is < $spans.length; is++) { 1459 var $span = $spans[is]; 1460 1461 $span.setAttribute('data-delay', (parseFloat(delayAttr) + ((parseFloat(containerInterval) + 50) * is))); 1462 1463 if (typeof containerSpeed_val !== 'undefined') { 1464 $span.setAttribute('data-speed', containerSpeed_val); 1465 } 1466 1467 classie.addClass($span, 'animate_when_parent_almost_visible'); 1468 classie.addClass($span, 'text-bottom-t-top'); 1469 1470 if (is + 1 == $spans.length) { 1471 classie.addClass($span, 'anim-tot-checker'); 1472 } 1473 } 1474 1475 } else if (classie.hasClass($wrap, 'perspective-words')) { 1476 1477 var $spans = $wrap.querySelectorAll('.split-word'); 1478 1479 for (var is = 0; is < $spans.length; is++) { 1480 var $span = $spans[is]; 1481 1482 $span.setAttribute('data-delay', (parseFloat(delayAttr) + ((parseFloat(containerInterval) + 50) * is))); 1483 1484 if (typeof containerSpeed_val !== 'undefined') { 1485 $span.setAttribute('data-speed', containerSpeed_val); 1486 } 1487 1488 classie.addClass($span, 'animate_when_parent_almost_visible'); 1489 classie.addClass($span, 'perspective-bottom-t-top'); 1490 1491 if (is + 1 == $spans.length) { 1492 classie.addClass($span, 'anim-tot-checker'); 1493 } 1494 } 1495 1496 } 1497 1498 } 1499 } 1500 1501 var removeOldLines = function () { 1502 for (var wrap_k = 0; wrap_k < $line_wraps.length; wrap_k++) { 1503 var $line_wrap = $line_wraps[wrap_k]; 1504 var $parent_wrap = $line_wrap.parentNode; 1505 if ($parent_wrap !== null) { 1506 while ($line_wrap.firstChild) { 1507 $parent_wrap.insertBefore($line_wrap.firstChild, $line_wrap); 1508 } 1509 $parent_wrap.removeChild($line_wrap); 1510 } 1511 } 1512 window.dispatchEvent(new CustomEvent('removeOldLines')); 1513 } 1514 1515 var createHighlightSpans = function () { 1516 for (var high_k = 0; high_k < $text_highlight.length; high_k++) { 1517 var $highlight = $text_highlight[high_k], 1518 atts = $highlight.getAttribute('data-atts'), 1519 objAtts, 1520 styleEl = '', 1521 classEl = '', 1522 animation = false, 1523 hexRe = /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i, 1524 $h_words = $highlight.querySelectorAll('.split-word:not(.uncode-rotating-span)'); 1525 1526 if (typeof atts !== 'undefined' && atts != '') { 1527 objAtts = JSON.parse(atts); 1528 if (typeof objAtts.bg != 'undefined') { 1529 if (hexRe.test(objAtts.bg)) { 1530 styleEl += 'background-color:' + objAtts.bg + ';'; 1531 } else { 1532 classEl += ' ' + objAtts.bg; 1533 } 1534 } 1535 if (typeof objAtts.color != 'undefined') { 1536 if (hexRe.test(objAtts.color)) { 1537 styleEl += 'color:' + objAtts.color + ';'; 1538 } else {
1539 var classChild = objAtts.color; 1540 } 1541 } 1542 if (typeof objAtts.height != 'undefined') { 1543 styleEl += 'height:' + objAtts.height + ';'; 1544 } 1545 if (typeof objAtts.offset != 'undefined') { 1546 styleEl += 'bottom:' + objAtts.offset + ';'; 1547 } 1548 if (typeof objAtts.opacity != 'undefined') { 1549 styleEl += 'opacity:' + objAtts.opacity + ';'; 1550 } 1551 if (objAtts.animated == 'yes') { 1552 animation = true; 1553 } 1554 1555 } 1556 1557 for (var h_words_k = 0; h_words_k < $h_words.length; h_words_k++) { 1558 var $word = $h_words[h_words_k], 1559 $new_el = document.createElement('span'); 1560 1561 if (typeof classChild !== 'undefined') { 1562 classie.addClass($word, objAtts.color); 1563 } 1564 1565 if (h_words_k === 0) { 1566 classie.addClass($word, 'first-highlight'); 1567 } else if ((h_words_k + 1) === $h_words.length) { 1568 classie.addClass($word, 'last-highlight'); 1569 } 1570 1571 $new_el.className = 'heading-text-highlight-inner' + classEl; 1572 if (styleEl !== '') { 1573 $new_el.setAttribute('style', styleEl); 1574 } 1575 1576 if (animation) { 1577 $new_el.setAttribute('data-animated', 'yes'); 1578 } 1579 1580 $word.appendChild($new_el); 1581 1582 }; 1583 1584 var $parent_highlight = $highlight.parentNode; 1585 if ($parent_highlight != null) { 1586 while ($highlight.firstChild) { 1587 $parent_highlight.insertBefore($highlight.firstChild, $highlight); 1588 } 1589 $parent_highlight.removeChild($highlight); 1590 } 1591 } 1592 1593 } 1594 1595 var createNewLines = function () { 1596 var wordsL = $words.length; 1597 for (var word_k = 0; word_k < wordsL; word_k++) { 1598 var $word = $words[word_k], 1599 top = $word.offsetTop, 1600 elH = $word.offsetHeight, 1601 $next = typeof $words[(word_k + 1)] !== 'undefined' ? $words[(word_k + 1)] : null, 1602 nextTop = $next !== null ? $next.offsetTop : null; 1603 1604 if (lineStart) { 1605 lineArray[lineIndex] = [word_k]; 1606 1607 if (nextTop !== null && elH > 0 && nextTop > (top + elH / 2)) {//tollerance 1608 lineArray[lineIndex].push(word_k); 1609 lineIndex++; 1610 lineStart = true; 1611 } else { 1612 lineStart = false;
1613 } 1614 } else { 1615 if (nextTop !== null && elH > 0 && nextTop > (top + elH / 2)) {//tollerance 1616 lineArray[lineIndex].push(word_k); 1617 lineIndex++; 1618 lineStart = true; 1619 } else if (nextTop === null) { 1620 lineArray[lineIndex].push(word_k); 1621 } 1622 } 1623 } 1624 1625 for (var i = 0; i < lineArray.length; i++) { 1626 var start = lineArray[i][0], 1627 end = lineArray[i][1] + 1; 1628 1629 var spanWrap = document.createElement('span'); 1630 spanWrap.className = 'heading-line-wrap'; 1631 1632 if (!end) { 1633 window.wrap(spanWrap, $words[start]); 1634 } else { 1635 for (var _i = start; _i < end; _i++) { 1636 if (typeof $words[_i] !== 'undefined' && $words[_i] !== null) { 1637 classie.addClass($words[_i], 'heading-temp'); 1638 $words[_i].style.zIndex = end - _i; 1639 } 1640 } 1641 var $towrap = $heading.querySelectorAll('.heading-temp'); 1642 if (typeof $towrap[0] !== 'undefined' && $towrap[0] !== null) { 1643 window.wrapAll(spanWrap, $towrap); 1644 for (var _i = 0; _i < $towrap.length; _i++) { 1645 classie.removeClass($towrap[_i], 'heading-temp'); 1646 } 1647 } 1648 } 1649 1650 if ((i + 1) == lineArray.length) { 1651 classie.addClass($row, 'loaded-split-word'); 1652 rowParent.dispatchEvent(evtWordLines); 1653 } 1654 1655 classie.addClass($heading, 'heading-lined'); 1656 } 1657 lettering(); 1658 1659 } 1660 1661 removeOldLines(); 1662 createHighlightSpans(); 1663 createNewLines(); 1664 1665 $parent_el.addEventListener("owl-carousel-changed", function () { 1666 removeOldLines(); 1667 createHighlightSpans(); 1668 createNewLines(); 1669 }); 1670 1671 if (event !== 'resize') { 1672 document.body.dispatchEvent(new CustomEvent('uncode_waypoints')); 1673 } 1674 1675 } 1676 1677 } 1678 1679 var $h_markup = document.body.querySelectorAll('.font-obs'), 1680 fontArr = new Array(); 1681 1682 for (var i = 0; i < $h_markup.length; i++) { 1683 var font_to_check = $h_markup[i].getAttribute("data-font"); 1684 1685 if (font_to_check === null) { 1686 word_for_lines(false, el); 1687 } else { 1688 var font_weight = $h_markup[i].getAttribute("data-weight"); 1689 var font_style = $h_markup[i].getAttribute("data-style"); 1690 1691 if (font_weight === null) { 1692 font_weight = 'normal'; 1693 } 1694 1695 if (font_style === null) { 1696 font_style = 'normal'; 1697 } 1698 1699 font_to_check = font_to_check.split(','); 1700 1701 var font_val = font_to_check[0].replace(/['"]+/g, ''), 1702 font_key = '\'' + font_val + '_' + font_weight + '_' + font_style + '\''; 1703 1704 if (fontArr.indexOf(font_val + '_' + font_weight) === -1) { 1705 fontArr[font_key] = { 'family': font_val, 'weight': font_weight, 'style': font_style }; 1706 } 1707 } 1708 } 1709 1710 var counter = 0; 1711 1712 for (var key in fontArr) { 1713 if (fontArr.hasOwnProperty(key)) { 1714 var font = new FontFaceObserver(fontArr[key].family, { weight: fontArr[key].weight, style: fontArr[key].style }); 1715 1716 font.load(null, 10000).then(function (font) { 1717 counter++; 1718 if (counter == Object.keys(fontArr).length) { 1719 already_font = true; 1720 requestTimeout(function () { 1721 word_for_lines(false, el); 1722 heading_inline_images(); 1723 }, 10); 1724 } 1725 }, function (error) { 1726 word_for_lines(false, el); 1727 heading_inline_images(); 1728 }); 1729 } 1730 } 1731 1732 el.addEventListener("owl-carousel-initialized", function () { 1733 word_for_lines("owl-carousel-initialized", el); 1734 }); 1735 1736 el.addEventListener("vc-shortcodeView-updated", function () { 1737 heading_inline_images(); 1738 word_for_lines(false, el); 1739 }); 1740 1741 window.addEventListener("resize", function () { 1742 clearRequestTimeout(setWrap); 1743 setWrap = requestTimeout(function () { 1744 word_for_lines('resize', el); 1745 }, 100); 1746 heading_inline_images(); 1747 }); 1748 1749 window.addEventListener("uncode-sticky-trigger-observe", function(){ 1750 word_for_lines('resize', el); 1751 }); 1752 1753 window.addEventListener("load", function () { 1754 if (!UNCODE.isFrontEndEditor && wwidth <= mediaQuery) { 1755 heading_inline_images(); 1756 } 1757 }); 1758 1759 scrollFunction(); 1760 1761 var videos = document.querySelectorAll('.wp-video-shortcode'); 1762 for (var i = 0; i < videos.length; i++) { 1763 var video = videos[i]; 1764 if (typeof video.getAttribute('autoplay') !== 'undefined' && video.getAttribute('autoplay') !== null && (typeof video.getAttribute('muted') === 'undefined' || video.getAttribute('muted') === null)) { 1765 video.oncanplay = function (e) { 1766 video.muted = true; 1767 video.play(); 1768 }; 1769 break; 1770 } 1771 } 1772 1773 // Single Product reviews counter on Page Builder module 1774 var singleProductReviewsCounter = function () { 1775 var $reviews = document.getElementById("reviews"), 1776 $comments = $reviews != undefined ? $reviews.querySelector(".commentlist") : undefined; 1777 if ($reviews != undefined && $comments != undefined) { 1778 var dataReviews = $reviews.getAttribute('data-reviewed'), 1779 comments = $comments.getAttribute('data-comment-amout'), 1780 count_review_class = comments > 0 ? '' : ' hidden'; 1781 if (typeof dataReviews == 'undefined' || dataReviews == null || dataReviews == '') { 1782 $reviews.setAttribute('data-reviewed', 'reviewed'); 1783 var $tabPane = getClosest($reviews, 'tab-pane'), 1784 $panel = getClosest($reviews, 'wpb_accordion_section'); 1785 if ($tabPane != undefined) { 1786 var revID = $tabPane.getAttribute('id'), 1787 $spanTxt = document.querySelector('[data-tab-id=' + revID + '] > a > span'); 1788 1789 if (typeof revID !== 'undefined' && revID !== '' && $spanTxt != null) { 1790 var $spanCount = $spanTxt.querySelector('span.review-count'); 1791 if ($spanCount != null) { 1792 $spanCount.innerHTML = comments; 1793 } else { 1794 var textReviews = $spanTxt.innerHTML; 1795 $spanTxt.innerHTML = textReviews + ' <span class="review-count' + count_review_class + '">' + comments + '</span>'; 1796 } 1797 } 1798 } 1799 if ($panel != undefined) { 1800 var $spanTxt = $panel.querySelector('.panel-title > a > span'); 1801 1802 if ($spanTxt != null) { 1803 var $spanTxt_0 = $spanTxt; 1804 if ($spanTxt[0] != undefined) { 1805 $spanTxt_0 = $spanTxt[0]; 1806 } 1807 var $spanCount = $spanTxt.querySelector('span.review-count'); 1808 if ($spanCount != null) { 1809 $spanCount.innerHTML = comments; 1810 } else { 1811 var textReviews = $spanTxt.innerHTML; 1812 $spanTxt.innerHTML = textReviews + ' <span class="review-count' + count_review_class + '">' + comments + '</span>'; 1813 } 1814 } 1815 } 1816 } 1817 } 1818 }; 1819 singleProductReviewsCounter(); 1820 window.addEventListener("vc_panel_title_edited", singleProductReviewsCounter); 1821 1822 //Check for empty additional info tabs 1823 var checkEmptyAdditionalInfo = function () { 1824 var $emptyAdditional = document.getElementById("no_additional_info"), 1825 $emptyPane, 1826 empty_pane_ID, 1827 $tabsParent, 1828 $emptyTab; 1829 if ($emptyAdditional != undefined) { 1830 $emptyPane = getClosest($emptyAdditional, 'tab-pane'); 1831 $tabsParent = getClosest($emptyAdditional, 'uncode-tabs'); 1832 if ($emptyPane == undefined) 1833 return false;
1834 empty_pane_ID = $emptyPane.getAttribute('id'); 1835 1836 $emptyTab = $tabsParent.querySelector('li[data-tab-id="' + empty_pane_ID + '"]'); 1837 $emptyTab.parentNode.removeChild($emptyTab); 1838 $emptyPane.parentNode.removeChild($emptyPane); 1839 } 1840 }; 1841 checkEmptyAdditionalInfo(); 1842 1843 var waitForSrcSetMedia = function () { 1844 var $thumbs = el.querySelectorAll('.srcset-lazy-animations'); 1845 1846 if ($thumbs.length) { 1847 $thumbs.forEach(function ($thumb) { 1848 var $media = $thumb.querySelectorAll('.srcset-auto'); 1849 1850 if ($media.length) { 1851 var $media_inside = $media[0].querySelectorAll('.srcset-sizes-done'); 1852 if (classie.hasClass($media[0], 'srcset-sizes-done') || $media_inside.length) { 1853 classie.removeClass($thumb, 'srcset-lazy-animations'); 1854 } 1855 } else { 1856 classie.removeClass($thumb, 'srcset-lazy-animations'); 1857 } 1858 }); 1859 } 1860 1861 var $posters = el.querySelectorAll('.no-control-lazy-poster'); 1862 1863 if ($posters.length) { 1864 1865 $posters.forEach(function ($thumb) { 1866 var $media = $thumb.querySelectorAll('.srcset-auto'); 1867 1868 var loadForPosters = function ($thumb, $media) { 1869 var url = ($media[0].getAttribute('src')), 1870 image = new Image(); 1871 if (url !== null) { 1872 image.onload = function () { 1873 setTimeout(function () { 1874 classie.removeClass($thumb, 'no-control-lazy-poster'); 1875 }, 200); 1876 }; 1877 image.src = url; 1878 } else { 1879 classie.removeClass($thumb, 'no-control-lazy-poster'); 1880 } 1881 }; 1882 1883 if ($media.length) { 1884 var $media_inside = $media[0].querySelectorAll('.srcset-sizes-done'); 1885 var checkSrcSetDone = function () { 1886 if (classie.hasClass($media[0], 'srcset-sizes-done') || $media_inside.length) { 1887 loadForPosters($thumb, $media); 1888 } else { 1889 setTimeout(checkSrcSetDone, 100); 1890 } 1891 } 1892 checkSrcSetDone(); 1893 } else { 1894 $media = $thumb.querySelectorAll('img[src]'); 1895 if ($media.length) { 1896 loadForPosters($thumb, $media); 1897 } else { 1898 classie.removeClass($thumb, 'no-control-lazy-poster'); 1899 } 1900 } 1901 }); 1902 } 1903 }; 1904 waitForSrcSetMedia(); 1905 window.addEventListener("uncode-ajax-filtered", waitForSrcSetMedia, { 1906 passive: true, 1907 once: false, 1908 }); 1909 window.addEventListener("uncode-more-items-loaded", waitForSrcSetMedia, { 1910 passive: true, 1911 once: false, 1912 }); 1913 1914 }, 1915 1916 initSection = function (currentSection) { 1917 if (SiteParameters.dynamic_srcset_active === '1') { 1918 UNCODE.adaptive_srcset_replace_bg(currentSection); 1919 } 1920 }, 1921 1922 setRowHeight = function(container, forced, resized) { 1923 var currentTallest = 0, 1924 percentHeight = 0, 1925 minHeight = 0, 1926 el, 1927 child, 1928 hasSubCols = false; 1929 if (container.length == undefined) { 1930 container = [container]; 1931 } 1932 // Loop for each container element to match their heights 1933 for (var i = 0; i < container.length; i++) { 1934 var el = container[i], 1935 $row = el, 1936 totalHeight = 0, 1937 colsArray = new Array(), 1938 calculatePadding = 0, 1939 $rowParent = $row.parentNode, 1940 isHeader = false, 1941 isFirst = false; 1942 $row.oversized = false; 1943 percentHeight = el.getAttribute("data-height-ratio"); 1944 var dataScrolltrigger = $rowParent.getAttribute("data-anim-inner-rows-options"); 1945 if ( dataScrolltrigger === 'parent-sticky') { 1946 continue; 1947 } 1948 minHeight = el.getAttribute("data-minheight"); 1949 // child = (el.firstElementChild || el.firstChild); 1950 child = (el.lastElementChild || el.lastChild); 1951 if ( typeof child.style !== 'object' ) { 1952 continue; 1953 } 1954 child.style.height = false; 1955 var childHeight = outerHeight(child); 1956 /** window height without header **/ 1957 if (!!percentHeight || !!minHeight || forced || (isIE && classie.hasClass(el, 'unequal')) ) { 1958 if (!!percentHeight) { 1959 if (percentHeight == 'full') { 1960 currentTallest = parseInt(UNCODE.wheight); 1961 } else { 1962 currentTallest = parseInt((UNCODE.wheight * percentHeight) / 100); 1963 } 1964 } else { 1965 currentTallest = el.clientHeight; 1966 } 1967 1968 if (!!minHeight) { 1969 if (currentTallest < minHeight || currentTallest == undefined) currentTallest = parseInt(minHeight); 1970 } 1971 1972 if (getClosest(el, 'header-uncode-block') != null) { 1973 el.setAttribute('data-row-header', 'true'); 1974 isHeader = true; 1975 } else { 1976 if (pageHeader == null) { 1977 var prevRow = $rowParent.previousSibling; 1978 if (prevRow != null && prevRow.innerText == 'UNCODE.initHeader();') { 1979 isFirst = true; 1980 } 1981 } 1982 } 1983
1984 menuMobileTransparent = document.querySelector('.menu-absolute.menu-transparent'); 1985 if (classie.hasClass(el, 'row-slider')) { 1986 percentHeight = el.getAttribute("data-height-ratio"); 1987 minHeight = el.getAttribute("data-minheight"); 1988 if (percentHeight == 'full') { 1989 currentTallest = parseInt(UNCODE.wheight); 1990 } else { 1991 currentTallest = parseInt((UNCODE.wheight * percentHeight) / 100); 1992 } 1993 1994 var computedStyleRow = getComputedStyle(el), 1995 computedStyleRowParent = getComputedStyle($rowParent); 1996 calculatePadding -= (parseFloat(computedStyleRow.paddingTop) + parseFloat(computedStyleRowParent.paddingTop)); 1997 calculatePadding -= (parseFloat(computedStyleRow.paddingBottom) + parseFloat(computedStyleRowParent.paddingBottom)); 1998 1999 if (isHeader || isFirst) { 2000 if ( ( isMobileTransparent && menuMobileTransparent !== null ) || wwidth > mediaQuery) { 2001 currentTallest -= menuHeight - transmenuHeight; 2002 } else { 2003 currentTallest -= menuHeight; 2004 } 2005 currentTallest += calculatePadding; 2006 } else { 2007 if ( ( isMobileTransparent && menuMobileTransparent !== null ) || wwidth > mediaQuery) { 2008 currentTallest += calculatePadding; 2009 } else { 2010 currentTallest = 'auto'; 2011 } 2012 } 2013 2014 getDivChildren(el, '.owl-carousel', function(owl, i) { 2015 owl.style.height = (currentTallest == 'auto' ? 'auto' : currentTallest + 'px'); 2016 if (isIE) { 2017 getDivChildren(owl, '.owl-stage', function(owlIn, i) { 2018 owlIn.style.height = (currentTallest == 'auto' ? '100%' : currentTallest + 'px'); 2019 }); 2020 } 2021 }); 2022 if ( UNCODE.isFullPageSnap || classie.hasClass(masthead, 'menu-transparent') ) 2023 continue; 2024 else { 2025 if ( classie.hasClass(document.body, 'uncode-fp-menu-hide') ) { 2026 $rowParent.parentNode.style.paddingTop = menuHeight + 'px'; 2027 } 2028 } 2029 } else { 2030 if (isHeader || isFirst || UNCODE.isFullPage ) { 2031 if ( !( UNCODE.isFullPage && !classie.hasClass(masthead, 'menu-transparent') && classie.hasClass(document.body, 'uncode-fp-menu-hide') && !isHeader && !isFirst ) ) { 2032 if (isMobileTransparent || wwidth > mediaQuery) { 2033 currentTallest -= menuHeight - transmenuHeight; 2034 } else { 2035 currentTallest -= menuHeight - secmenuHeight; 2036 } 2037 } 2038 if ( UNCODE.isFullPage && classie.hasClass(document.body, 'uncode-scroll-safe-padding') && classie.hasClass(masthead, 'menu-transparent') && !classie.hasClass(document.body, 'uncode-fp-menu-hide') ) { 2039 var safeMenuHeight = parseFloat(document.body.getAttribute("data-additional-padding")) + parseFloat(menuHeight); 2040 if ( (" " + child.parentNode.className + " ").replace(/[\n\t]/g, " ").indexOf("-top-padding ") < 0 || classie.hasClass(child.parentNode, 'single-top-padding') ) { 2041 classie.addClass(child.parentNode, 'fp-safe-padding-top'); 2042 child.parentNode.style.paddingTop = safeMenuHeight + 'px'; 2043 } 2044 if ( (" " + child.parentNode.className + " ").replace(/[\n\t]/g, " ").indexOf("-bottom-padding ") < 0 || classie.hasClass(child.parentNode, 'single-bottom-padding') ) { 2045 classie.addClass(child.parentNode, 'fp-safe-padding-bottom'); 2046 child.parentNode.style.paddingBottom = safeMenuHeight + 'px'; 2047 } 2048 } 2049 if ( !classie.hasClass(masthead, 'menu-transparent') && classie.hasClass(document.body, 'uncode-fp-menu-hide') && ( isFirst || isHeader ) ) { 2050 $rowParent.parentNode.style.paddingTop = menuHeight + 'px'; 2051 } 2052 2053 var computedStyleRow = getComputedStyle(el), 2054 computedStyleRowParent = getComputedStyle($rowParent); 2055 calculatePadding -= (parseFloat(computedStyleRow.paddingTop) + parseFloat(computedStyleRowParent.paddingTop)); 2056 calculatePadding -= (parseFloat(computedStyleRow.paddingBottom) + parseFloat(computedStyleRowParent.paddingBottom)); 2057 2058 currentTallest += calculatePadding; 2059 2060 } else { 2061 2062 var computedStyleRow = getComputedStyle(el), 2063 computedStyleRowParent = getComputedStyle($rowParent); 2064 calculatePadding -= (parseFloat(computedStyleRow.paddingTop) + parseFloat(computedStyleRowParent.paddingTop)); 2065 calculatePadding -= (parseFloat(computedStyleRow.paddingBottom) + parseFloat(computedStyleRowParent.paddingBottom)); 2066 2067 if (wwidth > mediaQuery) currentTallest += calculatePadding; 2068 else currentTallest = 'auto'; 2069 2070 } 2071 } 2072 if ( UNCODE.isFullPage ) { 2073 currentTallest -= UNCODE.adminBarHeight; 2074 } 2075 if (!!minHeight) { 2076 if (currentTallest < minHeight || currentTallest == 'auto') currentTallest = parseInt(minHeight); 2077 } 2078 2079 if ( $rowParent != null ) { 2080 if ( classie.hasClass($rowParent, 'unmargin-top-force') ) { 2081 currentTallest -= 18; 2082 } 2083 if ( classie.hasClass($rowParent, 'unmargin-bottom-force') ) { 2084 currentTallest -= 18; 2085 } 2086 } 2087 2088 if ( UNCODE.isFrontEndEditor && child !== null ) { 2089 var innerWrapper = child.querySelectorAll('.owl-carousel-wrapper.vc_uncode_slider'); 2090 if ( innerWrapper.length ) { 2091 getDivChildren(child, '.owl-carousel-wrapper.vc_uncode_slider', function(wrapper, i) { 2092 if ( wrapper !== null ) { 2093 wrapper.style.height = (currentTallest == 'auto' ? 'auto' : currentTallest + 'px'); 2094 } else { 2095 child.style.height = (currentTallest == 'auto' ? 'auto' : currentTallest + 'px'); 2096 } 2097 }); 2098 } else { 2099 child.style.height = (currentTallest == 'auto' ? 'auto' : currentTallest + 'px'); 2100 } 2101 } else { 2102 //here 2103 child.style.height = (currentTallest == 'auto' ? 'auto' : currentTallest + 'px'); 2104 } 2105 2106 if ( wwidth < mediaQuery && classie.hasClass(child, 'auto-height-device') ) { 2107 child.style.height = 'auto'; 2108 } 2109 2110 } else { 2111 currentTallest = 0; 2112 if ( UNCODE.isFrontEndEditor && child !== null ) { 2113 2114 child.style.height = ''; 2115 2116 getDivChildren(el, '.owl-carousel', function(owl, i) { 2117 owl.style.height = ''; 2118 if (isIE) { 2119 getDivChildren(owl, '.owl-stage', function(owlIn, i) { 2120 owlIn.style.height = ''; 2121 }); 2122 } 2123 }); 2124 } 2125 } 2126 2127 if (wwidth > mediaQuery) { 2128 if ( ! classie.hasClass(el, 'unequal-flex') && ! classie.hasClass(el, 'wpb-content-wrapper') ) { 2129 getDivChildren(el, '.column_parent', function(col, i, total) { 2130 var $col = col, 2131 $colHeight = 0, 2132 $colDiff = 0, 2133 $colPercDiff = 100; 2134 $col.oversized = false;
2135 $col.forceHeight = currentTallest; 2136 currentTallest = child.clientHeight; 2137 if ((isHeader || isFirst) && currentTallest != 'auto') currentTallest -= transmenuHeight; 2138 var getFirstCol = null, 2139 getMargin = 0, 2140 getSubMargin = 0; 2141 getDivChildren(col, '.row-child', function(obj, i, total) { 2142 var $colChild = obj, 2143 $colParent = $colChild.parentNode, 2144 computedStyleCol = getComputedStyle($colParent); 2145 parseFloat(computedStyleCol.marginTop); 2146 getSubMargin += parseFloat(computedStyleCol.marginTop); 2147 }); 2148 currentTallest += getSubMargin; 2149 getDivChildren(col, '.row-child', function(obj, i, total) { 2150 var $colChild = obj, 2151 $colInner, 2152 $colParent = $colChild.parentNode, 2153 $uncont = $colParent.parentNode; 2154 for (var it = 0; it < $colChild.childNodes.length; it++) { 2155 if ( ! classie.hasClass($colChild.childNodes[it], 'uncode-divider-wrap') ) { 2156 $colInner = $colChild.childNodes[it]; 2157 break; 2158 } 2159 } 2160 if (i == 0 && total > 1) getFirstCol = $colInner; 2161 $colChild.oversized = false; 2162 percentHeight = $colChild.getAttribute("data-height"); 2163 minHeight = $colChild.getAttribute("data-minheight"); 2164 if (percentHeight != null || minHeight != null) { 2165 if ( ! classie.hasClass($colInner, 'uncode-divider-wrap') ) 2166 $colInner.style.height = ''; 2167 $colParent.style.height = 'auto'; 2168 $uncont.style.height = '100%'; 2169 $colChild.removeAttribute("style"); 2170 var newHeight = (percentHeight != null) ? Math.ceil((currentTallest) * (percentHeight / 100)) : parseInt(minHeight); 2171 var computedStyleCol = getComputedStyle($colParent); 2172 getMargin = parseFloat(computedStyleCol.marginTop); 2173 newHeight -= (getMargin); 2174 $colPercDiff -= (percentHeight != null) ? percentHeight : 0; 2175 if (currentTallest >= newHeight) { 2176 var getColHeight = outerHeight($colChild); 2177 if (getColHeight > newHeight) { 2178 $colHeight += getColHeight; 2179 $colDiff += getColHeight; 2180 $colChild.oversized = true; 2181 $col.oversized = true; 2182 $row.oversized = true; 2183 } else { 2184 $colHeight += newHeight; 2185 if ( ! classie.hasClass($colInner, 'uncode-divider-wrap') ) { 2186 $colInner.style.height = newHeight + 'px'; 2187 } 2188 } 2189 } 2190 } else { 2191 $colHeight += outerHeight($colChild); 2192 } 2193 }); 2194 if (getFirstCol != null) { 2195 getFirstCol.style.height = (parseFloat(getFirstCol.style.height) - getMargin) + 'px'; 2196 } 2197 colsArray.push({ 2198 colHeight: $colHeight, 2199 colDiv: $col 2200 }); 2201 $col.colDiff = $colDiff; 2202 $col.colPercDiff = $colPercDiff; 2203 2204 }); 2205 2206 if ($row.oversized) { 2207 child.style.height = ''; 2208 colsArray.sort(function(a, b) { 2209 if (a.colHeight < b.colHeight) return 1; 2210 if (a.colHeight > b.colHeight) return -1; 2211 return 0; 2212 }); 2213 var $totalHeight = 0; 2214 colsArray.forEach(function(col) { 2215 var $col = col.colDiv, 2216 $colHeight = col.colHeight; 2217 getDivChildren($col, '.row-child', function(obj, i, total) { 2218 var $colChild = obj, 2219 $colInner = $colChild.children[0], 2220 percentHeight = parseFloat($colChild.getAttribute("data-height")), 2221 $colParent = $colChild.parentNode, 2222 $uncont = $colParent.parentNode, 2223 newHeight; 2224 2225 $colHeight = $col.forceHeight - $col.colDiff; 2226 if (percentHeight != null) { 2227 if ($colHeight > 0) { 2228 if ($col.oversized) { 2229 if (!$colChild.oversized) { 2230 newHeight = Math.ceil(($colHeight) * (percentHeight / $col.colPercDiff)); 2231 if (i == total - 1 && total > 1) { 2232 $uncont.style.height = 'auto'; 2233 $colChild.style.display = 'none'; 2234 newHeight = outerHeight($col.parentNode) - outerHeight($uncont); 2235 $uncont.style.height = '100%'; 2236 $colChild.style.display = 'table'; 2237 }
2238 if (newHeight == 0) newHeight = Math.ceil(($col.forceHeight) * (percentHeight / 100)); 2239 $colInner.style.height = newHeight + 'px'; 2240 } 2241 } else { 2242 if ($totalHeight == 0) newHeight = Math.ceil(($colHeight) * (percentHeight / $col.colPercDiff)); 2243 else { 2244 newHeight = Math.ceil(($totalHeight) * (percentHeight / $col.colPercDiff)); 2245 } 2246 if (i == total - 1 && total > 1) { 2247 $uncont.style.height = 'auto'; 2248 $colChild.style.display = 'none'; 2249 newHeight = outerHeight($col.parentNode) - outerHeight($uncont); 2250 $uncont.style.height = '100%'; 2251 $colChild.style.display = 'table'; 2252 } 2253 $colInner.style.height = newHeight + 'px'; 2254 } 2255 } else { 2256 if ($colChild.oversized) { 2257 if ($totalHeight == 0) newHeight = Math.ceil(($colHeight) * (percentHeight / $col.colPercDiff)); 2258 else { 2259 if ($col.colPercDiff == 0) $col.colPercDiff = 100; 2260 newHeight = Math.ceil(($totalHeight) * (percentHeight / $col.colPercDiff)); 2261 } 2262 if (i == total - 1 && total > 1) { 2263 $uncont.style.height = 'auto'; 2264 $colChild.style.display = 'none'; 2265 newHeight = outerHeight($col.parentNode) - outerHeight($uncont); 2266 $uncont.style.height = '100%'; 2267 $colChild.style.display = 'table'; 2268 } 2269 //and here 2270 $colInner.style.height = newHeight + 'px'; 2271 } 2272 } 2273 } 2274 }); 2275 var uncell = $col.getElementsByClassName('uncell'); 2276 if (uncell[0] != undefined && $totalHeight == 0) $totalHeight = outerHeight(uncell[0]); 2277 }); 2278 } 2279 if (isFF) { 2280 getDivChildren(el, '.uncoltable', function(col, i, total) { 2281 if (col.style.minHeight != '') { 2282 col.style.height = ''; 2283 } 2284 }); 2285 } 2286 if (resized) { 2287 getDivChildren(el, '.row-child > .row-inner', function(obj, k, total) { 2288 if (obj.style.height == '') { 2289 if (wwidth > mediaQueryMobile) { 2290 var getStyle = (window.getComputedStyle((obj.parentNode), null)), 2291 getInnerHeight = (parseInt(obj.parentNode.clientHeight) - parseInt(getStyle.paddingTop) - parseInt(getStyle.paddingBottom)); 2292 obj.style.height = getInnerHeight + 'px'; 2293 //obj.style.marginBottom = '-1px'; 2294 } 2295 } 2296 }); 2297 getDivChildren(el, '.row-parent > .row-inner', function(obj, k, total) { 2298 if (obj.style.height != '') { 2299 var getStyle = (window.getComputedStyle((obj.parentNode), null)), 2300 getInnerHeight = (parseInt(obj.parentNode.clientHeight) - parseInt(getStyle.paddingTop) - parseInt(getStyle.paddingBottom)), 2301 getTempHeight = parseInt(obj.style.height); 2302 if (getInnerHeight > getTempHeight && ( obj.parentNode.parentNode == null || ! classie.hasClass(obj.parentNode.parentNode, 'pin-trigger') ) ) { 2303 obj.style.height = getInnerHeight + 'px'; 2304 //obj.style.marginBottom = '-1px'; 2305 } 2306 } 2307 }); 2308 } 2309 } 2310 } else { 2311 if (isFF) { 2312 getDivChildren(el, '.uncoltable', function(col, i, total) { 2313 if (col.style.minHeight != '') { 2314 col.style.height = ''; 2315 col.style.height = outerHeight(col.parentNode) + 'px'; 2316 } 2317 }); 2318 } 2319 if (isIE && (wwidth > mediaQueryMobile)) { 2320 if (child.style.height == 'auto') { 2321 child.style.height = outerHeight(child) + 'px'; 2322 } 2323 } 2324 } 2325 if (isFF) { 2326 var sliderColumnFix = document.querySelector('.uncode-slider .row-inner > .column_child:only-child'); 2327 if (sliderColumnFix != null) { 2328 if (wwidth > mediaQuery) { 2329 sliderColumnFix.style.setProperty("height", ""); 2330 } else { 2331 sliderColumnFix.style.setProperty("height", ""); 2332 sliderColumnFix.style.setProperty("height", outerHeight(sliderColumnFix.parentNode) + "px", "important"); 2333 } 2334 } 2335 } 2336 2337 //Flex Justify Equal Height 2338 if ( classie.hasClass( $row, 'unequal-flex') ) { 2339 var $cols = $row.querySelectorAll('.wpb_column.column_parent'), 2340 $colMds = $row.querySelectorAll('.wpb_column.column_parent[class*=col-md]:not(.col-md-100)'), 2341 maxMd = 0, 2342 $colSms = $row.querySelectorAll('.wpb_column.column_parent[class*=col-sm]:not(.col-sm-100)'), 2343 maxSm = 0; 2344 if ( $colSms.length || $colMds.length ) { 2345 if ( UNCODE.wwidth <= UNCODE.mediaQueryMobile && $colSms.length ) { 2346 for (var sMi = 0; sMi < $colSms.length; sMi++) { 2347 $colSms[sMi].style.height = ''; 2348 var colH = outerHeight($colSms[sMi]); 2349 if ( maxSm < colH ) { 2350 maxSm = colH; 2351 } 2352 } 2353 for (var sMi = 0; sMi < $colSms.length; sMi++) { 2354 $colSms[sMi].style.height = maxMd; 2355 } 2356 } else if ( UNCODE.wwidth <= UNCODE.mediaQuery && UNCODE.wwidth > UNCODE.mediaQueryMobile && $colMds.length ) { 2357 for (var mDi = 0; mDi < $colMds.length; mDi++) { 2358 $colMds[mDi].style.height = ''; 2359 var colH = outerHeight($colMds[mDi]); 2360 if ( maxMd < colH ) { 2361 maxMd = colH; 2362 } 2363 } 2364 for (var mDi = 0; mDi < $colMds.length; mDi++) { 2365 $colMds[mDi].style.height = maxMd + 'px'; 2366 } 2367 2368 } else { 2369 for (var colI = 0; colI < $cols.length; colI++) { 2370 $cols[colI].style.height = ''; 2371 } 2372 } 2373 } 2374 } 2375 container[i].dispatchEvent(new CustomEvent('setResized')); 2376 }; 2377 if ( resized || UNCODE.isFrontEndEditor ) { 2378 window.scroll(0, scrollRowHeight_fix); 2379 } 2380 }, 2381 headerHeight = function(container) {
2382 menuMobileTransparent = document.querySelector('.menu-absolute.menu-transparent'); 2383 forEachElement(container, function(el, i) { 2384 var getHeight = parseFloat(el.getAttribute("data-height")), 2385 newHeight = ((wheight * getHeight) / 100); 2386 if (getHeight != 'fixed' && newHeight != 0) { 2387 if ( ( isMobileTransparent && menuMobileTransparent !== null ) || wwidth > mediaQuery) newHeight -= menuHeight - transmenuHeight; 2388 else newHeight -= menuHeight - secmenuHeight; 2389 el.style.height = newHeight + 'px'; 2390 } 2391 }); 2392 if ( masthead == undefined ) { 2393 masthead = document.getElementById("masthead"); 2394 } 2395 if (masthead != undefined) { 2396 menuStickyMobile = UNCODE.isMobile ? document.querySelectorAll('.menu-sticky-mobile') : null; 2397 masthead.parentNode.style.height = (menuHeight-1) + 'px'; 2398 var $overlay = masthead.parentNode.parentNode.querySelector('div.overlay-menu'), 2399 $navbarmain; 2400 2401 if ( typeof $overlay == 'object' && $overlay != null ) { 2402 if ( menuStickyMobile !== null && menuStickyMobile.length ) { 2403 UNCODE.menuStickyMobileOverlay = true; 2404 $overlay.style.top = menuHeight + 'px'; 2405 } else { 2406 UNCODE.menuStickyMobileOverlay = false; 2407 $overlay.style.top = '0'; 2408 if ( isMobileTransparent && menuMobileTransparent !== null && !classie.hasClass(document.body, 'menu-mobile-off-canvas') ) { 2409 $navbarmain = $overlay.querySelector('div.navbar-main'); 2410 if (wwidth > mediaQuery) { 2411 $navbarmain.style.paddingTop = false; 2412 } else { 2413 $navbarmain.style.paddingTop = menuHeight + 'px'; 2414 } 2415 } 2416 } 2417 } 2418 if (header != undefined && header.length) { 2419 if (classie.hasClass(masthead, 'menu-transparent')) { 2420 if ( ( isMobileTransparent && menuMobileTransparent !== null ) || wwidth > mediaQuery) { 2421 masthead.parentNode.style.height = '0px'; 2422 if (classie.hasClass(masthead, 'menu-add-padding')) { 2423 for (var j = 0; j < header.length; j++) { 2424 var headerel = header[j]; 2425 var headerBlock = getClosest(headerel, 'header-uncode-block'); 2426 if (headerBlock != null) { 2427 var parentRow = headerBlock.querySelector('.vc_row'), 2428 innerRows; 2429 if ( parentRow !== null ) { 2430 innerRows = parentRow.querySelectorAll('.column_parent > .uncol > .uncoltable > .uncell > .uncont, .uncode-slider .column_child > .uncol > .uncoltable > .uncell > .uncont'); 2431 } 2432 if ( innerRows != undefined && innerRows !== null ) { 2433 for (var k = 0; k < innerRows.length; k++) { 2434 if (innerRows[k] != undefined) { 2435 if (wwidth > mediaQuery) innerRows[k].style.paddingTop = transmenuHeight + 'px'; 2436 else innerRows[k].style.paddingTop = (transmenuHeight - mastheadMobilePaddingTop) + 'px'; 2437 } 2438 } 2439 } 2440 } else { 2441 getDivChildren(headerel, '.header-content', function(headerContent, i) { 2442 if (wwidth > mediaQuery) headerContent.style.paddingTop = transmenuHeight + 'px'; 2443 else headerContent.style.paddingTop = (transmenuHeight - mastheadMobilePaddingTop) + 'px'; 2444 }); 2445 } 2446 } 2447 } 2448 } 2449 } 2450 } 2451 } 2452 }, 2453 initVideoComponent = function(container, classTarget) { 2454 if ( UNCODE.isFrontEndEditor ) 2455 return; 2456 getDivChildren(container, classTarget, function(el, i) { 2457 if ( classie.hasClass(el, 'fluid-object') ) { 2458 return; 2459 } 2460 var width = outerWidth(el), 2461 pWidth, // player width, to be defined 2462 height = outerHeight(el), 2463 pHeight, // player height, tbd 2464 $tubularPlayer = (el.getElementsByTagName('iframe').length == 1) ? el.getElementsByTagName('iframe') : el.getElementsByTagName('video'), 2465 ratio = (el.getAttribute("data-ratio") != null) ? Number(el.getAttribute("data-ratio")) : typeof $tubularPlayer[0] !== 'undefined' ? $tubularPlayer[0].getAttribute("data-ratio") : '1.8', 2466 heightOffset = 80, 2467 widthOffset = heightOffset * ratio; 2468 // when screen aspect ratio differs from video, video must center and underlay one dimension 2469 if ($tubularPlayer[0] != undefined) {
2470 if (width / ratio < height) { // if new video height < window height (gap underneath) 2471 pWidth = Math.ceil((height + heightOffset) * ratio); // get new player width 2472 $tubularPlayer[0].style.width = pWidth + widthOffset + 'px'; 2473 $tubularPlayer[0].style.height = height + heightOffset + 'px'; 2474 $tubularPlayer[0].style.left = ((width - pWidth) / 2) - (widthOffset / 2) + 'px'; 2475 $tubularPlayer[0].style.top = '-' + (heightOffset / 2) + 'px'; 2476 $tubularPlayer[0].style.position = 'absolute'; 2477 } else { // new video width < window width (gap to right) 2478 pHeight = Math.ceil(width / ratio); // get new player height 2479 $tubularPlayer[0].style.width = width + widthOffset + 'px'; 2480 $tubularPlayer[0].style.height = pHeight + heightOffset + 'px'; 2481 $tubularPlayer[0].style.left = '-' + (widthOffset / 2) + 'px'; 2482 $tubularPlayer[0].style.top = ((height - pHeight) / 2) - (heightOffset / 2) + 'px'; 2483 $tubularPlayer[0].style.position = 'absolute'; 2484 } 2485 } 2486 }); 2487 }, 2488 init_overlay = function() { 2489 if ( UNCODE.isFrontEndEditor ) 2490 return; 2491 var triggerButton, 2492 globalBtnn, 2493 sequential = false, 2494 ddCloseBtn = false, 2495 closeButtons = new Array(); 2496 already_init_overlay = true; 2497 function toggleOverlay(btn) { 2498 if ( classie.hasClass(triggerButton, 'menu-button-offcanvas') || classie.hasClass(triggerButton, 'opening') || classie.hasClass(triggerButton, 'closing') ) { 2499 return true; 2500 } 2501 Array.prototype.forEach.call(document.querySelectorAll('div.overlay'), function(overlay) { 2502 if (btn.getAttribute('data-area') == overlay.getAttribute('data-area')) { 2503 var container = document.querySelector('div.' + btn.getAttribute('data-container')), 2504 menuCont = overlay.querySelector('.menu-container'), 2505 masthead = document.getElementById("masthead"), 2506 inputField = overlay.querySelector('.search-field'); 2507 if (classie.has(overlay, 'open')) { 2508 globalBtnn = false; 2509 window.dispatchEvent(menuClose); 2510 overlayOpened = false; 2511 classie.remove(overlay, 'open'); 2512 classie.remove(document.body, 'navbar-hover'); 2513 classie.remove(document.body, 'open-megamenu'); 2514 classie.add(overlay, 'close'); 2515 classie.remove(overlay, 'open-items'); 2516 classie.remove(document.body, 'menu-overlay-open'); 2517 classie.add(document.body, 'menu-dd-search-closing'); 2518 requestTimeout(function(){ 2519 if ( classie.has( masthead, 'style-dark-stop' ) ) { 2520 classie.remove( masthead, 'style-dark-stop' ); 2521 classie.remove( masthead, 'style-light-override' ); 2522 classie.add( masthead, 'style-dark-override' ); 2523 } else if ( classie.has( masthead, 'style-light-stop' ) ) { 2524 classie.remove( masthead, 'style-light-stop' ); 2525 classie.remove( masthead, 'style-dark-override' ); 2526 classie.add( masthead, 'style-light-override' ); 2527 } 2528 // if ( classie.has( masthead, 'is_stuck-stop' ) ) { 2529 // classie.remove( masthead, 'is_stuck-stop' ); 2530 // classie.add( masthead, 'is_stuck' ); 2531 // } 2532 classie.remove(document.documentElement, 'overlay-open'); 2533 classie.remove(document.body, 'menu-dd-search-open'); 2534 classie.remove(document.body, 'menu-dd-search-closing'); 2535 ddCloseBtn = false; 2536 }, 500); 2537 var onEndTransitionFn = function(ev) { 2538 if (transitionEvent) { 2539 if (ev.propertyName !== 'visibility') return; 2540 this.removeEventListener(transitionEvent, onEndTransitionFn); 2541 } 2542 classie.remove(overlay, 'close'); 2543 if ( sequential !== false ) { 2544 toggleOverlay(sequential); 2545 sequential = false; 2546 } 2547 }; 2548 if (transitionEvent) { 2549 overlay.addEventListener(transitionEvent, onEndTransitionFn); 2550 } else { 2551 onEndTransitionFn(); 2552 } 2553 } else if (!classie.has(overlay, 'close') && !classie.hasClass(btn, 'overlay-close')) { 2554 globalBtnn = btn; 2555 window.dispatchEvent(menuOpen); 2556 overlayOpened = true; 2557 classie.add(overlay, 'open'); 2558 if ( ( classie.hasClass(document.body, 'menu-dd-search') && wwidth > mediaQuery ) || classie.hasClass(document.body, 'menu-dd-search-mobile') ) { 2559 classie.add(document.body, 'navbar-hover'); 2560 ddCloseBtn = btn; 2561 } 2562 if ( ( classie.hasClass(document.body, 'menu-dd-search') && wwidth > mediaQuery ) ) { 2563 classie.add(document.body, 'menu-dd-search-open'); 2564 ddCloseBtn = btn; 2565 } 2566 classie.add(container, 'overlay-open'); 2567 if ( wwidth > mediaQuery && overlay.getAttribute('data-area') != 'search' ) { 2568 classie.add(document.documentElement, 'overlay-open'); 2569 classie.add(document.documentElement, 'menu-overlay-open'); 2570 } 2571 if ( classie.has( menuCont, 'style-light' ) ) { 2572 if ( classie.has( masthead, 'style-dark-override' ) && ! classie.has( masthead, 'style-light-override' ) ) { 2573 classie.remove( masthead, 'style-dark-override' ); 2574 classie.add( masthead, 'style-dark-stop' ); 2575 classie.add( masthead, 'style-light-override' ); 2576 } 2577 } else if ( classie.has( menuCont, 'style-dark' ) ) { 2578 if ( classie.has( masthead, 'style-light-override' ) && ! classie.has( masthead, 'style-dark-override' ) ) { 2579 classie.remove( masthead, 'style-light-override' ); 2580 classie.add( masthead, 'style-light-stop' ); 2581 classie.add( masthead, 'style-dark-override' ); 2582 } 2583 } 2584 // if ( classie.has( masthead, 'is_stuck' ) ) { 2585 // classie.remove( masthead, 'is_stuck' ); 2586 // classie.add( masthead, 'is_stuck-stop' ); 2587 // } 2588 if (jQuery('body.menu-overlay').length == 0 && inputField != null) { 2589 setTimeout(function() { 2590 inputField.focus(); 2591 }, 1000); 2592 } 2593 setTimeout(function() { 2594 if (classie.has(overlay, 'overlay-sequential')) classie.add(overlay, 'open-items'); 2595 }, 800); 2596 } 2597 } 2598 }); 2599 2600 if (classie.hasClass(btn, 'search-icon') || classie.hasClass(btn, 'menu-close-search') || classie.hasClass(btn, 'mobile-search-icon')) return; 2601 2602 if (classie.hasClass(triggerButton, 'close')) { 2603 UNCODE.menuOpened = false;
2604 classie.removeClass(triggerButton, 'close'); 2605 classie.addClass(triggerButton, 'closing'); 2606 Array.prototype.forEach.call(closeButtons, function(closeButton) { 2607 if (!classie.hasClass(closeButton, 'menu-close-search')) { 2608 classie.removeClass(closeButton, 'close'); 2609 classie.addClass(closeButton, 'closing'); 2610 } 2611 }); 2612 setTimeout(function() { 2613 classie.removeClass(triggerButton, 'closing'); 2614 // triggerButton.style.opacity = 1; 2615 Array.prototype.forEach.call(closeButtons, function(closeButton) { 2616 if (!classie.hasClass(closeButton, 'menu-close-search')) { 2617 classie.removeClass(closeButton, 'closing'); 2618 // closeButton.style.opacity = 0; 2619 } 2620 }); 2621 }, 1000); 2622 } else { 2623 UNCODE.menuOpened = true; 2624 // triggerButton.style.opacity = 0; 2625 var getBtnRect = !classie.hasClass(triggerButton, 'search-icon') ? triggerButton.getBoundingClientRect() : null; 2626 classie.addClass(triggerButton, 'opening'); 2627 Array.prototype.forEach.call(closeButtons, function(closeButton) { 2628 if (!classie.hasClass(closeButton, 'menu-close-search')) { 2629 // classie.addClass(triggerButton, 'close'); 2630 // if (getBtnRect != null) closeButton.setAttribute('style', 'top:' + getBtnRect.top + 'px; left:'+ getBtnRect.left + 'px !important'); 2631 classie.addClass(closeButton, 'close'); 2632 classie.addClass(closeButton, 'opening'); 2633 // closeButton.style.opacity = 1; 2634 } 2635 }); 2636 setTimeout(function() { 2637 classie.removeClass(triggerButton, 'opening'); 2638 Array.prototype.forEach.call(closeButtons, function(closeButton) { 2639 if (!classie.hasClass(closeButton, 'menu-close-search')) { 2640 classie.removeClass(closeButton, 'opening'); 2641 } 2642 }); 2643 }, 1000); 2644 window.addEventListener("resize", function() { 2645 positionCloseBtn(triggerButton, closeButtons); 2646 }); 2647 } 2648 } 2649 function positionCloseBtn(triggerButton, closeButtons){ 2650 var getBtnRect = !classie.hasClass(triggerButton, 'search-icon') ? triggerButton.getBoundingClientRect() : null; 2651 // Array.prototype.forEach.call(closeButtons, function(closeButton) { 2652 // if (!classie.hasClass(closeButton, 'menu-close-search')) { 2653 // if (getBtnRect != null) closeButton.setAttribute('style', 'top:' + getBtnRect.top + 'px; left:'+ getBtnRect.left + 'px !important'); 2654 // closeButton.style.opacity = 1; 2655 // } 2656 // }); 2657 } 2658 (function bindEscape() { 2659 document.onkeydown = function(evt) { 2660 evt = evt || window.event; 2661 var isEscape = false;
2662 if ("key" in evt) { 2663 isEscape = (evt.key == "Escape" || evt.key == "Esc"); 2664 } else { 2665 isEscape = (evt.keyCode == 27); 2666 } 2667 if (isEscape && overlayOpened) { 2668 Array.prototype.forEach.call(closeButtons, function(closeButton) { 2669 if (classie.hasClass(closeButton, 'overlay-close') && classie.hasClass(closeButton, 'menu-button-overlay')) { 2670 closeButton.click(); 2671 } 2672 }); 2673 } 2674 }; 2675 })(); 2676 Array.prototype.forEach.call(document.querySelectorAll('.trigger-overlay'), function(triggerBttn) { 2677 if ( UNCODE.menuOpened || ( (classie.hasClass(document.body, 'vmenu') || classie.hasClass(triggerBttn, 'menu-button-offcanvas')) && UNCODE.wwidth >= 960 ) ) return; 2678 triggerBttn.addEventListener('click', function(e) { 2679 triggerButton = e.currentTarget; 2680 // if (wwidth < mediaQuery && classie.hasClass(triggerButton, 'search-icon')) { 2681 if ( wwidth < mediaQuery && triggerButton.getAttribute('data-area') != 'search' ) { 2682 return true; 2683 } else { 2684 e.stopPropagation(); 2685 // if (wwidth > mediaQuery) toggleOverlay(triggerButton); 2686 // else { 2687 // if (classie.addClass(triggerButton, 'search-icon')) return true; 2688 // } 2689 if ( triggerButton.getAttribute('data-area') == 'search' ) { 2690 if ( globalBtnn !== undefined && globalBtnn !== false && globalBtnn !== triggerButton ) { 2691 sequential = triggerButton; 2692 globalBtnn.dispatchEvent(new Event("click")); 2693 } else { 2694 window.dispatchEvent(new CustomEvent('menuMobileTrigged')); 2695 toggleOverlay(triggerButton); 2696 } 2697 } else { 2698 window.dispatchEvent(new CustomEvent('menuMobileTrigged')); 2699 toggleOverlay(triggerButton); 2700 } 2701 e.preventDefault(); 2702 return false; 2703 } 2704 }, false); 2705 }); 2706 Array.prototype.forEach.call(document.querySelectorAll('.overlay-close, .menu-button-overlay'), function(closeBttn) { 2707 closeButtons.push(closeBttn); 2708 if ( classie.hasClass(closeBttn, 'menu-close-search') ) { 2709 closeBttn.addEventListener('click', function(e) { 2710 // if (wwidth > mediaQuery) toggleOverlay(closeBttn); 2711 toggleOverlay(closeBttn); 2712 e.preventDefault(); 2713 return false; 2714 }, false); 2715 } 2716 }); 2717 document.body.addEventListener('click', function(e) { 2718 if ( ddCloseBtn !== false ) { 2719 var close_overlay = getClosest( e.target, 'overlay-search'); 2720 if ( close_overlay === null ) { 2721 toggleOverlay(ddCloseBtn); 2722 } 2723 } 2724 }); 2725 document.addEventListener('keydown', function(e) { 2726 e = e || window.event; 2727 if ( ddCloseBtn !== false && ( e.key === "Escape" || e.key === "Esc" ) ) { 2728 toggleOverlay(ddCloseBtn); 2729 } 2730 }); 2731 }, 2732 /** All scrolling functions - Begin */ 2733 /** Shrink menu **/ 2734 shrinkMenu = function(bodyTop) { 2735 if ( UNCODE.isFrontEndEditor ) 2736 return; 2737 var logoShrink, 2738 offset = 100; 2739 for (var i = 0; i < logoel.length; i++) { 2740 if (((secmenuHeight == 0) ? bodyTop > menuHeight : bodyTop > secmenuHeight + offset) && !classie.hasClass(logoel[i], 'shrinked') && (wwidth > mediaQuery)) { 2741 classie.addClass(logoel[i], 'shrinked'); 2742 if (logoMinScale != undefined) { 2743 logoShrink = logolink.children; 2744 Array.prototype.forEach.call(logoShrink, function(singleLogo) { 2745 singleLogo.style.height = logoMinScale + 'px'; 2746 singleLogo.style.lineHeight = logoMinScale + 'px'; 2747 if (classie.hasClass(singleLogo, 'text-logo')) singleLogo.style.fontSize = logoMinScale + 'px'; 2748 }); 2749 } 2750 setTimeout(function() { 2751 calculateMenuHeight(false); 2752 //window.dispatchEvent(new Event('resize')); 2753 }, 300); 2754 } else if ((((secmenuHeight == 0) ? bodyTop == 0 : bodyTop <= secmenuHeight + offset) || (wwidth < mediaQuery)) && classie.hasClass(logoel[i], 'shrinked')) { 2755 classie.removeClass(logoel[i], 'shrinked'); 2756 if (logoMinScale != undefined) { 2757 logoShrink = logolink.children; 2758 Array.prototype.forEach.call(logoShrink, function(singleLogo) { 2759 singleLogo.style.height = singleLogo.getAttribute('data-maxheight') + 'px'; 2760 singleLogo.style.lineHeight = singleLogo.getAttribute('data-maxheight') + 'px'; 2761 if (classie.hasClass(singleLogo, 'text-logo')) singleLogo.style.fontSize = singleLogo.getAttribute('data-maxheight') + 'px'; 2762 }); 2763 } 2764 setTimeout(function() { 2765 calculateMenuHeight(false); 2766 //window.dispatchEvent(new Event('resize')); 2767 }, 300); 2768 } 2769 } 2770 }, 2771 /** Switch colors menu **/ 2772 switchColorsMenu = function(bodyTop, style) { 2773 for (var i = 0; i < transmenuel.length; i++) { 2774 if (masthead.style.opacity !== 1) masthead.style.opacity = 1;
2775 if ((secmenuHeight == 0) ? bodyTop > menuHeight / 2 : bodyTop > secmenuHeight) { 2776 if (classie.hasClass(masthead, 'style-dark-original')) { 2777 logo.className = logo.className.replace("style-light", "style-dark"); 2778 } 2779 if (classie.hasClass(masthead, 'style-light-original')) { 2780 logo.className = logo.className.replace("style-dark", "style-light"); 2781 } 2782 if (style != undefined) { 2783 if (style == 'dark') { 2784 classie.removeClass(transmenuel[i], 'style-light-override'); 2785 } 2786 if (style == 'light') { 2787 classie.removeClass(transmenuel[i], 'style-dark-override'); 2788 } 2789 classie.addClass(transmenuel[i], 'style-' + style + '-override'); 2790 } 2791 } else { 2792 if (style != undefined) { 2793 if (style == 'dark') { 2794 classie.removeClass(transmenuel[i], 'style-light-override'); 2795 } 2796 if (style == 'light') { 2797 classie.removeClass(transmenuel[i], 'style-dark-override'); 2798 } 2799 classie.addClass(transmenuel[i], 'style-' + style + '-override'); 2800 } 2801 } 2802 } 2803 if (pageHeader != undefined) { 2804 if (style != undefined) { 2805 if (classie.hasClass(pageHeader, 'header-style-dark')) { 2806 classie.removeClass(pageHeader, 'header-style-dark'); 2807 } 2808 if (classie.hasClass(pageHeader, 'header-style-light')) { 2809 classie.removeClass(pageHeader, 'header-style-light'); 2810 } 2811 classie.addClass(pageHeader, 'header-style-' + style); 2812 } 2813 } 2814 }, 2815 /** VisibleRows **/ 2816 visibleRowCol = function(bodyTop) { 2817 if ( typeof visibleRows == 'object') { 2818 for (var i = 0; i < visibleRows.length; i++) { 2819 var section = visibleRows[i], 2820 sectionHeight = outerHeight(section), 2821 offSetTop = bodyTop + ( section != null ? section.getBoundingClientRect().top : 0 ), 2822 offSetPosition = UNCODE.wheight + bodyTop - offSetTop; 2823 if (offSetPosition > 0 && offSetPosition < (sectionHeight + UNCODE.wheight)) { 2824 classie.addClass($kenburnsInner[0], 'uncode-scroll-visible'); 2825 visibleRows[i].dispatchEvent(new CustomEvent('enter-row')); 2826 } else { 2827 classie.removeClass($kenburnsInner[0], 'uncode-scroll-visible'); 2828 visibleRows[i].dispatchEvent(new CustomEvent('exit-row')); 2829 } 2830 } 2831 } 2832 }, 2833 /** KenBurns **/ 2834 kenburnsHeader = function(bodyTop) { 2835 var value; 2836 if ( typeof kenburnsHeaders == 'object' && kenburnsHeaders.length ) { 2837 for (var i = 0; i < kenburnsHeaders.length; i++) { 2838 var section = kenburnsHeaders[i].parentNode, 2839 sectionHeight = outerHeight(section), 2840 offSetTop = bodyTop + (section != null ? (classie.hasClass(section.parentNode.parentNode, 'owl-carousel') ? section.parentNode.parentNode.getBoundingClientRect().top : section.getBoundingClientRect().top) : 0), 2841 offSetPosition = UNCODE.wheight + bodyTop - offSetTop, 2842 $kenburnsInner = kenburnsHeaders[i].querySelectorAll('.header-bg'); 2843 if (classie.hasClass(kenburnsHeaders[i], 'header-carousel-wrapper')) { 2844 $kenburnsInner = kenburnsHeaders[i].querySelectorAll('.t-background-cover'); 2845 } 2846 if (offSetPosition > 0 && offSetPosition < (sectionHeight + UNCODE.wheight)) { 2847 for (var i = 0; i < $kenburnsInner.length; i++) { 2848 classie.addClass($kenburnsInner[i], 'uncode-kburns'); 2849 $kenburnsInner[i].dispatchEvent(new CustomEvent('enter-kburns')); 2850 } 2851 } else { 2852 for (var i = 0; i < $kenburnsInner.length; i++) { 2853 classie.removeClass($kenburnsInner[i], 'uncode-kburns'); 2854 $kenburnsInner[i].dispatchEvent(new CustomEvent('exit-kburns')); 2855 } 2856 } 2857 } 2858 } 2859 }, 2860 kenburnsRowCol = function(bodyTop) { 2861 var value; 2862 if ( UNCODE.isFrontEndEditor || UNCODE.isQuickView ) { 2863 kenburnsRows = document.querySelectorAll('.with-kburns > .row-background > .background-wrapper, .with-kburns > .uncode-multi-bgs > .row-background > .background-wrapper, .with-kburns > .fp-tableCell > .row-background > .background-wrapper, .with-kburns > .fp-tableCell > .fp-scrollable > .fp-scroller > .row-background > .background-wrapper'); 2864 } 2865 if ( typeof kenburnsRows == 'object' && kenburnsRows.length ) { 2866 for (var i = 0; i < kenburnsRows.length; i++) { 2867 var section = kenburnsRows[i].parentNode, 2868 sectionHeight = outerHeight(section), 2869 offSetTop = bodyTop + (section != null ? (classie.hasClass(section.parentNode.parentNode, 'owl-carousel') ? section.parentNode.parentNode.getBoundingClientRect().top : section.getBoundingClientRect().top) : 0), 2870 offSetPosition = UNCODE.wheight + bodyTop - offSetTop, 2871 $kenburnsInner = kenburnsRows[i].querySelectorAll('.background-inner, .header-bg'); 2872 if (offSetPosition >
2872 0 && offSetPosition < (sectionHeight + UNCODE.wheight)) { 2873 classie.addClass($kenburnsInner[0], 'uncode-kburns'); 2874 $kenburnsInner[0].dispatchEvent(new CustomEvent('enter-kburns')); 2875 } else { 2876 classie.removeClass($kenburnsInner[0], 'uncode-kburns'); 2877 $kenburnsInner[0].dispatchEvent(new CustomEvent('exit-kburns')); 2878 } 2879 } 2880 } 2881 if ( UNCODE.isFrontEndEditor || UNCODE.isQuickView ) { 2882 kenburnsCols = document.querySelectorAll('.with-kburns > .column-background > .background-wrapper, .with-kburns > .uncode-multi-bgs > .column-background > .background-wrapper'); 2883 } 2884 if ( typeof kenburnsCols == 'object' && kenburnsCols.length ) { 2885 for (var j = 0; j < kenburnsCols.length; j++) { 2886 var elm = kenburnsCols[j], 2887 $kenburnsInner = elm.querySelectorAll('.background-inner'); 2888 if (checkVisible(elm)) { 2889 classie.addClass($kenburnsInner[0], 'uncode-kburns'); 2890 $kenburnsInner[0].dispatchEvent(new CustomEvent('enter-kburns')); 2891 } else { 2892 classie.removeClass($kenburnsInner[0], 'uncode-kburns'); 2893 $kenburnsInner[0].dispatchEvent(new CustomEvent('exit-kburns')); 2894 } 2895 } 2896 } 2897 }, 2898 /** Zoom Out BackWash **/ 2899 backwashHeader = function(bodyTop) { 2900 var value; 2901 var onEndAnimationFn = function(ev){ 2902 if (animationEvent) { 2903 if (ev.animationName !== 'backwash') { 2904 return; 2905 } 2906 this.removeEventListener(animationEvent, onEndAnimationFn); 2907 } 2908 classie.addClass(ev.target, 'uncode-zoomout-already'); 2909 } 2910 if ( typeof backwashHeaders == 'object' && backwashHeaders.length ) { 2911 for (var i = 0; i < backwashHeaders.length; i++) { 2912 var section = backwashHeaders[i].parentNode, 2913 sectionHeight = outerHeight(section), 2914 offSetTop = bodyTop + (section != null ? (classie.hasClass(section.parentNode.parentNode, 'owl-carousel') ? section.parentNode.parentNode.getBoundingClientRect().top : section.getBoundingClientRect().top) : 0), 2915 offSetPosition = UNCODE.wheight + bodyTop - offSetTop, 2916 $backwashInner = backwashHeaders[i].querySelectorAll('.header-bg'); 2917 2918 if ( classie.hasClass($backwashInner[0], 'uncode-video-container') ) { 2919 continue; 2920 } 2921 2922 if (classie.hasClass(backwashHeaders[i], 'header-carousel-wrapper')) { 2923 $backwashInner = backwashHeaders[i].querySelectorAll('.t-background-cover'); 2924 } 2925 2926 if (offSetPosition > 0 && offSetPosition < (sectionHeight + UNCODE.wheight)) { 2927 for (var i = 0; i < $backwashInner.length; i++) { 2928 classie.addClass($backwashInner[i], 'uncode-zoomout'); 2929 $backwashInner[i].dispatchEvent(new CustomEvent('enter-zoomout')); 2930 } 2931 } else { 2932 for (var i = 0; i < $backwashInner.length; i++) { 2933 classie.removeClass($backwashInner[i], 'uncode-zoomout'); 2934 $backwashInner[i].dispatchEvent(new CustomEvent('exit-zoomout')); 2935 } 2936 } 2937 for (var i = 0; i < $backwashInner.length; i++) { 2938 $backwashInner[i].addEventListener(animationEvent, onEndAnimationFn); 2939 } 2940 } 2941 } 2942 }, 2943 backwashRowCol = function(bodyTop) { 2944 var value; 2945 var onEndAnimationFn = function(ev){ 2946 if (animationEvent) { 2947 if (ev.animationName !== 'backwash') { 2948 return; 2949 } 2950 this.removeEventListener(animationEvent, onEndAnimationFn); 2951 } 2952 classie.addClass(ev.target, 'uncode-zoomout-already'); 2953 } 2954 if ( UNCODE.isFrontEndEditor || UNCODE.isQuickView ) { 2955 backwashRows = document.querySelectorAll('.with-zoomout > .row-background > .background-wrapper, .with-zoomout > .fp-tableCell > .row-background > .background-wrapper, .with-zoomout > .fp-tableCell > .fp-scrollable > .fp-scroller > .row-background > .background-wrapper'); 2956 } 2957 if ( typeof backwashRows == 'object' && backwashRows.length ) { 2958 for (var i = 0; i < backwashRows.length; i++) { 2959 var section = backwashRows[i].parentNode, 2960 sectionHeight = outerHeight(section), 2961 offSetTop = bodyTop + (section != null ? (classie.hasClass(section.parentNode.parentNode, 'owl-carousel') ? section.parentNode.parentNode.getBoundingClientRect().top : section.getBoundingClientRect().top) : 0), 2962 offSetPosition = UNCODE.wheight + bodyTop - offSetTop, 2963 $backwashInner = backwashRows[i].querySelectorAll('.background-inner'); 2964 2965 if ( classie.hasClass($backwashInner[0], 'uncode-video-container') ) { 2966 continue; 2967 } 2968 2969 if (offSetPosition >
2969 0 && offSetPosition < (sectionHeight + UNCODE.wheight) ) { 2970 classie.addClass($backwashInner[0], 'uncode-zoomout'); 2971 $backwashInner[0].dispatchEvent(new CustomEvent('enter-zoomout')); 2972 } else { 2973 classie.removeClass($backwashInner[0], 'uncode-zoomout'); 2974 $backwashInner[0].dispatchEvent(new CustomEvent('exit-zoomout')); 2975 } 2976 $backwashInner[0].addEventListener(animationEvent, onEndAnimationFn); 2977 } 2978 2979 } 2980 if ( UNCODE.isFrontEndEditor || UNCODE.isQuickView ) { 2981 backwashCols = document.querySelectorAll('.with-zoomout > .column-background > .background-wrapper, .with-zoomout > .uncode-multi-bgs > .column-background > .background-wrapper'); 2982 } 2983 if ( typeof backwashCols == 'object' && backwashCols.length ) { 2984 for (var j = 0; j < backwashCols.length; j++) { 2985 var elm = backwashCols[j], 2986 $backwashInner = elm.querySelectorAll('.background-inner'); 2987 if (checkVisible(elm)) { 2988 classie.addClass($backwashInner[0], 'uncode-zoomout'); 2989 $backwashInner[0].dispatchEvent(new CustomEvent('enter-zoomout')); 2990 } else { 2991 classie.removeClass($backwashInner[0], 'uncode-zoomout'); 2992 $backwashInner[0].dispatchEvent(new CustomEvent('exit-zoomout')); 2993 } 2994 $backwashInner[0].addEventListener(animationEvent, onEndAnimationFn); 2995 } 2996 } 2997 }, 2998 /** Parallax Rows **/ 2999 parallaxRowCol = function(bodyTop) { 3000 var value; 3001 if ( UNCODE.isFrontEndEditor || UNCODE.isQuickView ) { 3002 parallaxRows = document.querySelectorAll('.with-parallax > .row-background > .background-wrapper, .with-parallax > .uncode-multi-bgs > .row-background > .background-wrapper, .with-parallax > .fp-tableCell > .row-background > .background-wrapper, .with-parallax > .fp-tableCell > .fp-scrollable > .fp-scroller > .row-background > .background-wrapper'); 3003 } 3004 if (typeof parallaxRows == 'object') { 3005 for (var i = 0; i < parallaxRows.length; i++) { 3006 var section = parallaxRows[i].parentNode, 3007 thisHeight = outerHeight(parallaxRows[i]), 3008 sectionHeight = outerHeight(section), 3009 offSetTop = bodyTop + (section != null ? (classie.hasClass(section.parentNode.parentNode, 'owl-carousel') ? section.parentNode.parentNode.getBoundingClientRect().top : section.getBoundingClientRect().top) : 0), 3010 offSetPosition = UNCODE.wheight + bodyTop - offSetTop; 3011 if (offSetPosition > 0 && offSetPosition < (sectionHeight + UNCODE.wheight)) { 3012 value = ((offSetPosition - UNCODE.wheight) * speedDivider); 3013 if (Math.abs(value) < (thisHeight - sectionHeight)) {
3014 translateElement(parallaxRows[i], Math.floor(value)); 3015 } else { 3016 translateElement(parallaxRows[i], Math.floor(thisHeight - sectionHeight)); 3017 } 3018 } 3019 } 3020 } 3021 if ( UNCODE.isFrontEndEditor || UNCODE.isQuickView ) { 3022 parallaxCols = document.querySelectorAll('.with-parallax > .column-background > .background-wrapper, .with-parallax > .uncode-multi-bgs > .column-background > .background-wrapper'); 3023 } 3024 if (typeof parallaxCols == 'object') { 3025 for (var j = 0; j < parallaxCols.length; j++) { 3026 var section = parallaxCols[j].parentNode, 3027 thisHeight = outerHeight(parallaxCols[j]), 3028 sectionHeight = outerHeight(section), 3029 offSetTop = bodyTop + (section != null ? section.getBoundingClientRect().top : 0), 3030 offSetPosition = UNCODE.wheight + bodyTop - offSetTop; 3031 if (offSetPosition > 0 && offSetPosition < (sectionHeight + UNCODE.wheight)) { 3032 value = ((offSetPosition - UNCODE.wheight) * speedDivider); 3033 value *= .8; 3034 if (Math.abs(value) < (thisHeight - sectionHeight)) { 3035 translateElement(parallaxCols[j], Math.floor(value)); 3036 } else { 3037 translateElement(parallaxCols[j], Math.floor(thisHeight - sectionHeight)); 3038 } 3039 } 3040 } 3041 } 3042 }, 3043 /** Parallax Headers **/ 3044 parallaxHeader = function(bodyTop) { 3045 var value; 3046 if (typeof parallaxHeaders == 'object') { 3047 for (var i = 0; i < parallaxHeaders.length; i++) { 3048 var section = parallaxHeaders[i].parentNode, 3049 thisSibling = section.nextSibling, 3050 thisHeight, 3051 sectionHeight, 3052 offSetTop, 3053 offSetPosition; 3054 if (classie.hasClass(parallaxHeaders[i], 'header-carousel-wrapper')) { 3055 getDivChildren(parallaxHeaders[i], '.t-entry-visual-cont', function(item, l, total) { 3056 thisHeight = outerHeight(item); 3057 sectionHeight = outerHeight(section); 3058 offSetTop = bodyTop + section.getBoundingClientRect().top; 3059 offSetPosition = UNCODE.wheight + bodyTop - offSetTop; 3060 if (offSetPosition > 0 && offSetPosition < (sectionHeight + UNCODE.wheight)) { 3061 value = ((offSetPosition - UNCODE.wheight) * speedDivider); 3062 if (Math.abs(value) < (thisHeight - sectionHeight)) { 3063 translateElement(item, Math.floor(value)); 3064 } 3065 } 3066 }); 3067 } else { 3068 thisHeight = outerHeight(parallaxHeaders[i]); 3069 sectionHeight = outerHeight(section); 3070 offSetTop = bodyTop + section.getBoundingClientRect().top; 3071 offSetPosition = UNCODE.wheight + bodyTop - offSetTop; 3072 if (offSetPosition > 0 && offSetPosition < (sectionHeight + UNCODE.wheight)) { 3073 value = ((offSetPosition - UNCODE.wheight) * speedDivider); 3074 if (Math.abs(value) < (thisHeight - sectionHeight)) { 3075 translateElement(parallaxHeaders[i], Math.floor(value)); 3076 } 3077 } 3078 } 3079 } 3080 } 3081 }, 3082 /** Header opacity **/ 3083 headerOpacity = function(bodyTop) { 3084 if ( UNCODE.isFrontEndEditor ) { 3085 return; 3086 } 3087 if (headerWithOpacity && headerWithOpacity.length) { 3088 var thisHeight = outerHeight(headerWithOpacity[0]); 3089 if (bodyTop > thisHeight / 8) { 3090 if (pageHeader != undefined) classie.addClass(pageHeader, 'header-scrolled'); 3091 } else { 3092 if (pageHeader != undefined) classie.removeClass(pageHeader, 'header-scrolled'); 3093 } 3094 } 3095 }, 3096 /** Show hide scroll top arrow **/ 3097 showHideScrollup = function(bodyTop) { 3098 if ( bodyTop != 0 ) { 3099 if (bodyTop > UNCODE.wheight || ((bodyTop + UNCODE.wheight) >= docheight) && docheight > 0) { 3100 classie.addClass(document.body, 'window-scrolled'); 3101 classie.removeClass(document.body, 'hide-scrollup'); 3102 if (footerScroller && footerScroller[0] != undefined) { 3103 footerScroller[0].style.display = ''; 3104 } 3105 } else { 3106 if (classie.hasClass(document.body, 'window-scrolled')) classie.addClass(document.body, 'hide-scrollup'); 3107 classie.removeClass(document.body, 'window-scrolled'); 3108 } 3109 } 3110 }, 3111 /** Fix menu **/ 3112 fixMenu = function(){ 3113 if ( UNCODE.isFrontEndEditor ) 3114 return; 3115 menuwrapper = document.querySelectorAll(".menu-wrapper"); 3116 if ( ! classie.hasClass(document.body, 'vmenu') && UNCODE.isFullPage && !UNCODE.isFullPageSnap && classie.hasClass(document.body, 'uncode-fp-menu-hide') ) { 3117 menuwrapper = document.querySelector(".menu-wrapper"); 3118 pageHeader = document.getElementById("page-header"); 3119 menuwrapper.style.position = 'fixed'; 3120 menuwrapper.style.zIndex = '5'; 3121 } 3122 }, 3123 /** Hide Menu **/ 3124 hideMenu = function(bodyTop) { 3125 if ( UNCODE.isFrontEndEditor ) 3126 return; 3127 if (UNCODE.menuOpened || bodyTop < 0) return; 3128 if (classie.hasClass(document.body, 'vmenu')) { 3129 if (wwidth < mediaQuery) menuhide = document.querySelector('#masthead .menu-hide-vertical'); 3130 else menuhide = null; 3131 } else if (classie.hasClass(document.body, 'hmenu-center')) { 3132 if (wwidth > mediaQuery) menuhide = document.querySelector('#masthead .menu-hide'); 3133 else menuhide = document.querySelector('.menu-sticky-mobile .menu-hide'); 3134 } else { 3135 if (wwidth <= mediaQuery) menuhide = document.querySelector('.menu-sticky-mobile .menu-hide'); 3136 }
3137 menuMobileTransparent = document.querySelector('.menu-absolute.menu-transparent'); 3138 if (typeof menuhide == 'object' && menuhide != null && mainmenu[0] != undefined) { 3139 var translate, 3140 scrollingDown = true; 3141 /** fix for hmenu-center **/ 3142 var sticky_element = (typeof mainmenu.item === 'undefined' ? ((wwidth > mediaQuery) ? mainmenu[0] : mainmenu[1]) : mainmenu[0]); 3143 if (lastScrollValue == bodyTop) return; 3144 3145 if (lastScrollValue > bodyTop) scrollingDown = false; 3146 else scrollingDown = true; 3147 lastScrollValue = bodyTop; 3148 3149 if (!scrollingDown) { 3150 if (!UNCODE.scrolling) { 3151 if ((secmenuHeight == 0) ? bodyTop == 0 : bodyTop < secmenuHeight) { 3152 classie.removeClass(sticky_element.parentNode, 'is_stuck'); 3153 if (classie.hasClass(masthead, 'menu-transparent')) { 3154 if (( ( isMobileTransparent && menuMobileTransparent !== null ) || wwidth > mediaQuery) && !classie.hasClass(masthead.parentNode, 'no-header')) masthead.parentNode.style.height = '0px'; 3155 } 3156 if (wwidth < mediaQuery && secmenuHeight === 0) sticky_element.style.position = 'fixed'; 3157 else sticky_element.style.position = ''; 3158 hideMenuReset(sticky_element); 3159 clearTimeout(hidingTimer); 3160 } 3161 3162 if (classie.hasClass(menuhide, 'menu-hided')) { 3163 classie.removeClass(menuhide, 'menu-hided'); 3164 hidingTimer = setTimeout(function() { 3165 classie.addClass(sticky_element.parentNode, 'is_stuck'); 3166 hideMenuReset(sticky_element); 3167 }, 400); 3168 } 3169 } 3170 } else { 3171 if (menusticky.length == 0 && bodyTop < UNCODE.wheight / 3) { 3172 if (sticky_element.style.position == 'fixed') sticky_element.style.position = ''; 3173 } 3174 if (bodyTop > UNCODE.wheight / 2) { 3175 clearTimeout(hidingTimer); 3176 if (!classie.hasClass(menuhide, 'menu-hided')) { 3177 classie.addClass(menuhide, 'menu-hided'); 3178 classie.addClass(sticky_element.parentNode, 'is_stuck'); 3179 if (sticky_element.style.position != 'fixed') { 3180 sticky_element.style.visibility = 'hidden'; 3181 sticky_element.style.position = 'fixed'; 3182 sticky_element.style.top = '0px'; 3183 } 3184 translateElement(menuhide, -UNCODE.menuMobileHeight - 1); 3185 } 3186 } 3187 } 3188 } 3189 }, 3190 hideMenuReset = function(sticky_element) { 3191 var topOffset = 0; 3192 if (sticky_element.style.visibility == 'hidden') sticky_element.style.visibility = ''; 3193 if (bodyBorder > 0) topOffset += bodyBorder; 3194 if (adminBar != null && window.getComputedStyle(adminBar,null).getPropertyValue("position") != 'fixed') adminBarHeight = 0; 3195 if (adminBarHeight > 0) topOffset += adminBarHeight; 3196 //sticky_element.style.top = topOffset + 'px'; 3197 if (!classie.hasClass(document.body, 'boxed-width') && boxWidth > 0) sticky_element.style.width = boxWidth + 'px'; 3198 translateElement(menuhide, 0); 3199 }, 3200 /** Stick Menu **/ 3201 stickMenu = function(bodyTop) { 3202 if ( mainmenu[0] == undefined ) { 3203 mainmenu = document.querySelectorAll('.vmenu .vmenu-container, .menu-primary .menu-container'); 3204 } 3205 if (header && mainmenu[0] != undefined) { 3206 var stickyHeight = secmenuHeight; 3207 menuMobileTransparent = document.querySelector('.menu-absolute.menu-transparent'); 3208 if (classie.hasClass(mainmenu[0], 'vmenu-container') && wwidth > mediaQuery) return; 3209 /** fix for hmenu-center **/ 3210 var sticky_element = (typeof mainmenu.item === 'undefined' ? (( ( isMobileTransparent && menuMobileTransparent !== null ) || wwidth > mediaQuery) ? mainmenu[0] : mainmenu[1]) : mainmenu[0]); 3211 if ( classie.hasClass(document.body, 'hmenu-center') && document.getElementById("logo-container-mobile") != null ) { 3212 stickyHeight = secmenuHeight + outerHeight(document.getElementById("logo-container-mobile")); 3213 } 3214 3215 if ((stickyHeight == 0 && ( ( isMobileTransparent && menuMobileTransparent !== null ) || wwidth > mediaQuery)) ? bodyTop > (0 + adminBarHeight) : bodyTop > (stickyHeight + adminBarHeight)) { 3216 if (!classie.hasClass(sticky_element.parentNode, 'is_stuck')) { 3217 classie.addClass(sticky_element.parentNode, 'is_stuck'); 3218 sticky_element.style.position = 'fixed'; 3219 var getAnchorTop = bodyBorder; 3220 if (adminBar != null && window.getComputedStyle(adminBar,null).getPropertyValue("position") != 'fixed') adminBarHeight = 0; 3221 if (adminBarHeight > 0) getAnchorTop += adminBarHeight; 3222 sticky_element.style.top = getAnchorTop + 'px'; 3223 if (!classie.hasClass(document.body, 'boxed-width') && boxWidth > 0) sticky_element.style.width = boxWidth + 'px'; 3224 } 3225 } else { 3226 clearTimeout(hidingTimer); 3227 classie.removeClass(sticky_element.parentNode, 'is_stuck'); 3228 sticky_element.style.position = '';
3229 if ( ( isMobileTransparent && menuMobileTransparent !== null ) || wwidth > mediaQuery) sticky_element.style.position = ''; 3230 if (classie.hasClass(document.body, 'hmenu-center')) sticky_element.style.position = 'absolute'; 3231 sticky_element.style.top = ''; 3232 } 3233 } 3234 }, 3235 translateElement = function(element, valueY) { 3236 var translate = 'translate3d(0, ' + valueY + 'px' + ', 0)'; 3237 element.style['-webkit-transform'] = translate; 3238 element.style['-moz-transform'] = translate; 3239 element.style['-ms-transform'] = translate; 3240 element.style['-o-transform'] = translate; 3241 element.style['transform'] = translate; 3242 }, 3243 setScrollPosition, 3244 scrollFunction = function() { 3245 if ( ! UNCODE.isFullPage ) { 3246 menusticky = UNCODE.isMobile ? document.querySelectorAll('.menu-sticky-mobile') : document.querySelectorAll('.menu-sticky, .menu-sticky-vertical'); 3247 if (menusticky != undefined && menusticky.length) stickMenu(bodyTop); 3248 kenburnsHeader(bodyTop); 3249 kenburnsRowCol(bodyTop); 3250 backwashHeader(bodyTop); 3251 backwashRowCol(bodyTop); 3252 if (logoel != undefined && logoel.length && !isMobile) shrinkMenu(bodyTop); 3253 hideMenu(bodyTop); 3254 if (isMobileParallaxAllowed || !isMobile) { 3255 if (header && menusticky != undefined && menusticky.length) 3256 switchColorsMenu(bodyTop); 3257 parallaxRowCol(bodyTop); 3258 parallaxHeader(bodyTop); 3259 headerOpacity(bodyTop); 3260 visibleRowCol(bodyTop); 3261 } 3262 clearRequestTimeout(setScrollPosition); 3263 setScrollPosition = requestTimeout( function(){ 3264 scrollRowHeight_fix = window.pageYOffset; 3265 }, 100 ); 3266 } 3267 }, 3268 /** Custom Cursor **/ 3269 initCursor = function(){ 3270 var clientX, clientY; 3271 3272 var $customCursor = document.getElementById('uncode-custom-cursor'), 3273 $customPilot = document.getElementById('uncode-custom-cursor-pilot'), 3274 cursorType = 'auto', 3275 loadedCursor = false; 3276 3277 document.addEventListener("mousemove", function(e) { 3278 clientX = e.clientX; 3279 clientY = e.clientY; 3280 3281 if ( loadedCursor !== true ) { 3282 loadedCursor = true; 3283 classie.addClass($customCursor, 'loaded-cursor'); 3284 if ( $customPilot !== null ) { 3285 classie.addClass($customPilot, 'loaded-cursor'); 3286 } 3287 } 3288 }); 3289 3290 function render() { 3291 if ( $customCursor != null ) { 3292 $customCursor.style.transform = 'translate3d(' + clientX + 'px, ' + clientY + 'px, 0)'; 3293 if ( $customPilot !== null ) { 3294 $customPilot.style.transform = 'translate3d(' + clientX + 'px, ' + clientY + 'px, 0)'; 3295 } 3296 requestAnimationFrame(render); 3297 } 3298 }; 3299 requestAnimationFrame(render); 3300 }, 3301 3302 /** Shape Dividers **/ 3303 shapeDivider = function() { 3304 var $shape = '.uncode-divider-wrap'; 3305 3306 forEachElement($shape, function($el, i) { 3307 var elH = parseInt( $el.getAttribute('data-height') ), 3308 elHunit = $el.getAttribute('data-unit'), 3309 newEl, 3310 $parent = $el.parentNode, 3311 parentH, 3312 $svg = $el.getElementsByTagName('svg')[0]; 3313 3314 if ( elHunit == 'px' ) { 3315 3316 switch (true) { 3317 case (wwidth < 1500 && wwidth >= 1180): 3318 newEl = elH*0.8; 3319 break; 3320 3321 case (wwidth < 1180 && wwidth >= 960): 3322 newEl = elH*0.65; 3323 break; 3324 3325 case (wwidth < 960 && wwidth >= 570): 3326 newEl = elH*0.5; 3327 break; 3328 3329 case (wwidth < 570): 3330 newEl = elH*0.25; 3331 break; 3332 3333 default: 3334 newEl = elH; 3335 } 3336 3337 $el.style.height = newEl + elHunit; 3338 } 3339 3340 3341 if ( classie.hasClass($el, 'uncode-divider-preserve-ratio') && ( window.navigator.userAgent.indexOf('MSIE ') !== -1 || window.navigator.userAgent.indexOf('Trident/') !== -1 ) ) { 3342 3343 $svg.setAttribute('preserveAspectRatio','none'); 3344 3345 var sizes = $svg.getAttribute('viewBox').split(' '), 3346 svgW = sizes[2], 3347 svgH = sizes[3], 3348 newSvgW; 3349 3350 newSvgW = newEl * ( svgW / svgH ); 3351 3352 $svg.style.width = newSvgW + 'px'; 3353 3354 } 3355 }); 3356 }; 3357 if (!noScroll && document.body == null) { 3358 window.addEventListener('scroll', function(e) { 3359 if ( ! UNCODE.isFullPage ) { 3360 bodyTop = document.documentElement.scrollTop || document.body.scrollTop; 3361 scrollFunction(); 3362 showHideScrollup(bodyTop); 3363 } 3364 }, false); 3365 } 3366 window.addEventListener('uncode-quick-view-loaded', function() { 3367 document.getElementById('unmodal-content').addEventListener('scroll', function(e) { 3368 bodyTop = document.getElementById('unmodal-content').scrollTop; 3369 scrollFunction(); 3370 showHideScrollup(bodyTop); 3371 }, false); 3372 }, false); 3373 /** All scrolling functions - End */ 3374 /** help functions */ 3375 function getClosest(el, tag) { 3376 do { 3377 if (el.className != undefined && el.className.indexOf(tag) > -1) return el; 3378 } while (el = el.parentNode); 3379 // not found :( 3380 return null; 3381 } 3382 3383 function outerHeight(el, includeMargin) { 3384 if (el != null) { 3385 var height = el.offsetHeight; 3386 if (includeMargin) { 3387 var style = el.currentStyle || getComputedStyle(el); 3388 height += parseInt(style.marginTop) + parseInt(style.marginBottom); 3389 } 3390 return height; 3391 } 3392 } 3393 3394 function outerWidth(el, includeMargin) { 3395 var width = el.offsetWidth; 3396 if (includeMargin) { 3397 var style = el.currentStyle || getComputedStyle(el); 3398 width += parseInt(style.marginLeft) + parseInt(style.marginRight); 3399 } 3400 return width; 3401 } 3402 // Replicate jQuery .each method 3403 function forEachElement(selector, fn) { 3404 var elements = document.querySelectorAll(selector); 3405 for (var i = 0; i < elements.length; i++) fn(elements[i], i); 3406 } 3407 3408 function getDivChildren(containerId, selector, fn) { 3409 if (containerId !== null) { 3410 var elements = containerId.querySelectorAll(selector); 3411 for (var i = 0; i < elements.length; i++) fn(elements[i], i, elements.length); 3412 } 3413 } 3414 3415 function hideFooterScroll() { 3416 if (classie.hasClass(document.body, 'hide-scrollup')) footerScroller[0].style.display = "none"; 3417 } 3418 window.addEventListener("load", function(event) {
3419 if (SiteParameters.dynamic_srcset_active === '1') { 3420 UNCODE.adaptive_srcset_bg(); 3421 UNCODE.adaptive_srcset(false); 3422 } 3423 classie.addClass(document.body, 'uncode-loaded'); 3424 }); 3425 window.addEventListener("dynamic_srcset_load", function(event) { 3426 if (SiteParameters.dynamic_srcset_active === '1') { 3427 UNCODE.refresh_dynamic_srcset_size(false); 3428 } 3429 }); 3430 document.addEventListener("DOMContentLoaded", function(event) { 3431 UNCODE.adaptive(); 3432 boxWrapper = document.querySelectorAll('.box-wrapper'); 3433 docheight = boxWrapper[0] != undefined ? boxWrapper[0].offsetHeight : 0; 3434 // if (!classie.hasClass(document.body, 'vmenu') && !classie.hasClass(document.body, 'menu-offcanvas')) init_overlay(); 3435 if ( already_init_overlay !== true ) { 3436 init_overlay(); 3437 } 3438 kenburnsRows = document.querySelectorAll('.with-kburns > .row-background > .background-wrapper, .with-kburns > .uncode-multi-bgs > .row-background > .background-wrapper, .with-kburns > .fp-tableCell > .row-background > .background-wrapper, .with-kburns > .fp-tableCell > .fp-scrollable > .fp-scroller > .row-background > .background-wrapper'); 3439 kenburnsCols = document.querySelectorAll('.with-kburns > .column-background > .background-wrapper, .with-kburns > .uncode-multi-bgs > .column-background > .background-wrapper'); 3440 backwashRows = document.querySelectorAll('.with-zoomout > .row-background > .background-wrapper, .with-zoomout > .uncode-multi-bgs > .row-background > .background-wrapper, .with-zoomout > .fp-tableCell > .row-background > .background-wrapper, .with-zoomout > .fp-tableCell > .fp-scrollable > .fp-scroller > .row-background > .background-wrapper'); 3441 backwashCols = document.querySelectorAll('.with-zoomout > .column-background > .background-wrapper, .with-zoomout > .uncode-multi-bgs > .column-background > .background-wrapper'); 3442 if (!UNCODE.isMobile || isMobileParallaxAllowed) { 3443 parallaxRows = document.querySelectorAll('.with-parallax > .row-background > .background-wrapper, .with-parallax > .uncode-multi-bgs > .row-background > .background-wrapper, .with-parallax > .fp-tableCell > .row-background > .background-wrapper, .with-parallax > .fp-tableCell > .fp-scrollable > .fp-scroller > .row-background > .background-wrapper'); 3444 parallaxCols = document.querySelectorAll('.with-parallax > .column-background > .background-wrapper, .with-parallax > .uncode-multi-bgs > .column-background > .background-wrapper'); 3445 } 3446 footerScroller = document.querySelectorAll('.footer-scroll-top'); 3447 if (footerScroller && footerScroller[0] != undefined) { 3448 if (transitionEvent) { 3449 footerScroller[0].addEventListener(transitionEvent, hideFooterScroll); 3450 } 3451 } 3452 Array.prototype.forEach.call(document.querySelectorAll('.row-inner'), function(el) { 3453 el.style.height = ''; 3454 el.style.marginBottom = ''; 3455 }); 3456 setRowHeight(document.querySelectorAll('.page-wrapper .row-parent, footer .row-parent')); 3457 initVideoComponent(document.body, '.uncode-video-container.video:not(.drop-move):not(.fluid-object), .uncode-video-container.self-video:not(.drop-move)'); 3458 }); 3459 /** On resize events **/ 3460 window.addEventListener("vc-resize", function() { 3461 scrollRowHeight_fix = window.pageYOffset; 3462 Array.prototype.forEach.call(document.querySelectorAll('.row-inner'), function(el) { 3463 el.style.height = ''; 3464 el.style.marginBottom = ''; 3465 }); 3466 setRowHeight(document.querySelectorAll('.page-wrapper .row-parent, footer .row-parent'), false, true); 3467 }); 3468 var setIsScrolling; 3469 window.addEventListener("scroll", function() { 3470 UNCODE.setIsScrolling = true; 3471 clearRequestTimeout(setIsScrolling); 3472 3473 setIsScrolling = requestTimeout(function() { 3474 UNCODE.setIsScrolling = false; 3475 }, 66); 3476 }); 3477 window.addEventListener("resize", function(e) { 3478 scrollRowHeight_fix = window.pageYOffset; 3479 docheight = (boxWrapper != undefined && boxWrapper[0] != undefined) ? boxWrapper[0].offsetHeight : 0; 3480 var oldWidth = wwidth; 3481 UNCODE.wwidth = wwidth = window.innerWidth || document.documentElement.clientWidth; 3482 UNCODE.wheight = wheight = (window.innerHeight || document.documentElement.clientHeight) - (bodyBorder * 2); 3483 if ( isSplitMenu && typeof resizeTimer_ === 'undefined' ) centerSplitMenu(); 3484 if (isMobile && (oldWidth == wwidth)) return false;
3485 calculateMenuHeight(false); 3486 initBox(); 3487 window.dispatchEvent(boxEvent); 3488 scrollFunction(); 3489 shapeDivider(); 3490 showHideScrollup(bodyTop); 3491 clearTimeout(resizeTimer_); 3492 resizeTimer_ = setTimeout(function() { 3493 if (isSplitMenu) centerSplitMenu(); 3494 }, 10); 3495 resizeThrottle( 3496 function() { 3497 if (SiteParameters.dynamic_srcset_active === '1') { 3498 UNCODE.refresh_dynamic_srcset_size(false); 3499 } 3500 UNCODE.isMobile = UNCODE.wwidth <= UNCODE.mediaQuery; 3501 menuOpacity(); 3502 headerHeight('.header-wrapper'); 3503 }, 100 3504 ); 3505 if ( UNCODE.setIsScrolling !== true ) { 3506 clearTimeout(resizeTimer); 3507 resizeTimer = setTimeout(function() { 3508 if ( UNCODE.setIsScrolling !== true ) { 3509 UNCODE.wheight = wheight = (window.innerHeight || document.documentElement.clientHeight) - (bodyBorder * 2); 3510 Array.prototype.forEach.call(document.querySelectorAll('.row-inner'), function(el) { 3511 el.style.height = ''; 3512 el.style.marginBottom = ''; 3513 }); 3514 3515 setRowHeight(document.querySelectorAll('.page-wrapper .row-parent, footer .row-parent'), false, true); 3516 } 3517 initVideoComponent(document.body, '.uncode-video-container.video:not(.drop-move):not(.fluid-object), .uncode-video-container.self-video:not(.drop-move)'); 3518 }, 500); 3519 } 3520 }); 3521 3522 window.addEventListener("lateral_resize", function(e) { 3523 fixMenuHeight(); 3524 calculateMenuHeight(false); 3525 scrollFunction(); 3526 headerHeight('.header-wrapper'); 3527 }); 3528 3529 var resizeThrottle = (function () { 3530 var timer = 0; 3531 return function (callback, ms) { 3532 clearTimeout(timer); 3533 timer = setTimeout(callback, ms); 3534 }; 3535 })(); 3536 3537 /** 3538 * On DOM ready 3539 */ 3540 window.addEventListener("load", function(){ 3541 if (!UNCODE.isMobile) { 3542 setTimeout(function() { 3543 // window.dispatchEvent(UNCODE.boxEvent); 3544 if (typeof Waypoint !== 'undefined') { 3545 Waypoint.refreshAll(); 3546 } 3547 }, 2000); 3548 } 3549 //repeat it for mobile since it changes layout on carousel after DOM loading 3550 if (UNCODE.isMobile && !isMobileParallaxAllowed) { 3551 kenburnsHeader(bodyTop); 3552 kenburnsRowCol(bodyTop); 3553 } 3554 backwashHeader(bodyTop); 3555 backwashRowCol(bodyTop); 3556 scrollFunction(); 3557 showHideScrollup(bodyTop); 3558 3559 // if (document.createEvent) { // W3C 3560 // var ev = document.createEvent('Event'); 3561 // ev.initEvent('resize', true, true); 3562 // window.dispatchEvent(ev); 3563 // } else { // IE 3564 // document.fireEvent('onresize'); 3565 // } 3566 3567 scrollRowHeight_fix = window.pageYOffset; 3568 docheight = (boxWrapper != undefined && boxWrapper[0] != undefined) ? boxWrapper[0].offsetHeight : 0; 3569 var oldWidth = wwidth; 3570 UNCODE.wwidth = wwidth = window.innerWidth || document.documentElement.clientWidth; 3571 UNCODE.wheight = wheight = (window.innerHeight || document.documentElement.clientHeight) - (bodyBorder * 2); 3572 if ( isSplitMenu && typeof resizeTimer_ === 'undefined' ) { 3573 centerSplitMenu(); 3574 } 3575 calculateMenuHeight(false); 3576 headerHeight('.header-wrapper'); 3577 3578 }, false); 3579 3580 function localStorageAvailable() { 3581 try { 3582 var storage = window['localStorage'], 3583 x = '__storage_test__'; 3584 storage.setItem(x, x); 3585 storage.removeItem(x); 3586 return true; 3587 } catch(e) { 3588 return false; 3589 } 3590 } 3591 3592 /** 3593 * Print Dialog check 3594 */ 3595 window.addEventListener("beforeprint", function(event) { 3596 UNCODE.printDialogOpen = true; 3597 }); 3598 window.addEventListener("afterprint", function(event) { 3599 UNCODE.printDialogOpen = false; 3600 window.dispatchEvent(new Event('resize')); 3601 }); 3602 3603 var UNCODE = { 3604 bodyTop: bodyTop, 3605 boxEvent: boxEvent, 3606 bodyBorder: bodyBorder, 3607 initBox: initBox, 3608 adminBarHeight: 0, 3609 menuHeight: 0, 3610 menuMobileHeight: 0, 3611 menuOpacity: menuOpacity, 3612 fixMenuHeight: fixMenuHeight, 3613 verticalRightMenu: verticalRightMenu, 3614 initHeader: initHeader, 3615 initRow: initRow, 3616 initSection: initSection, 3617 initCursor: initCursor, 3618 setRowHeight: setRowHeight, 3619 switchColorsMenu: switchColorsMenu, 3620 isMobile: isMobile, 3621 scrolling: false, 3622 menuHiding: false, 3623 menuOpened: false, 3624 menuMobileTriggerEvent: menuMobileTriggerEvent, 3625 mediaQuery: mediaQuery, 3626 mediaQueryMobile: mediaQueryMobile, 3627 initVideoComponent: initVideoComponent, 3628 hideMenu: hideMenu, 3629 wwidth: wwidth, 3630 wheight: wheight, 3631 printDialogOpen: printDialogOpen,
3632 webp_lossy_supported: SiteParameters.force_webp ? true : localStorageAvailable() && localStorage.getItem('webp_lossy_supported') === 'true' ? true : false, 3633 webp_lossless_supported: SiteParameters.force_webp ? true : localStorageAvailable() && localStorage.getItem('webp_lossless_supported') === 'true' ? true : false, 3634 }; 3635 // transport 3636 if (typeof define === 'function' && define.amd) { 3637 // AMD 3638 define(UNCODE); 3639 } else { 3640 // browser global 3641 window.UNCODE = UNCODE; 3642 } 3643 3644 UNCODE.check_webp_support = function(feature, callback) { 3645 // https://developers.google.com/speed/webp/faq#in_your_own_javascript 3646 var kTestImages = { 3647 lossy: "UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA", 3648 lossless: "UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==", 3649 alpha: "UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==", 3650 // animation: "UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA" 3651 }; 3652 var img = new Image(); 3653 img.onload = function () { 3654 var result = (img.width > 0) && (img.height > 0); 3655 callback(feature, result); 3656 }; 3657 img.onerror = function () { 3658 callback(feature, false); 3659 }; 3660 img.src = "data:image/webp;base64," + kTestImages[feature]; 3661 } 3662 3663 UNCODE.check_webp_support('lossy', function (feature, isSupported) { 3664 if (isSupported) { 3665 UNCODE.webp_lossy_supported = true; 3666 if (localStorageAvailable()) { 3667 localStorage.setItem('webp_lossy_supported', true); 3668 } 3669 } 3670 }); 3671 3672 UNCODE.check_webp_support('lossless', function (feature, isSupported) { 3673 if (isSupported) { 3674 UNCODE.webp_lossless_supported = true; 3675 if (localStorageAvailable()) { 3676 localStorage.setItem('webp_lossless_supported', true); 3677 } 3678 } 3679 }); 3680 3681 UNCODE.adaptive = function() { 3682 if (SiteParameters.dynamic_srcset_active === '1') { 3683 return; 3684 } 3685 3686 var images = new Array(), 3687 getImages = document.querySelectorAll('.adaptive-async:not(.adaptive-fetching)'); 3688 for (var i = 0; i < getImages.length; i++) { 3689 var imageObj = {}, 3690 el = getImages[i]; 3691 if (classie.hasClass(el, 'woocommerce-product-gallery__image-first__img')) { 3692 continue; 3693 } 3694 classie.addClass(el, 'adaptive-fetching'); 3695 imageObj.unique = el.getAttribute('data-uniqueid'); 3696 imageObj.url = el.getAttribute('data-guid'); 3697 imageObj.path = el.getAttribute('data-path'); 3698 imageObj.singlew = el.getAttribute('data-singlew'); 3699 imageObj.singleh = el.getAttribute('data-singleh'); 3700 imageObj.origwidth = el.getAttribute('data-width'); 3701 imageObj.origheight = el.getAttribute('data-height'); 3702 imageObj.crop = el.getAttribute('data-crop'); 3703 imageObj.fixed = el.getAttribute('data-fixed') == undefined ? null : el.getAttribute('data-fixed'); 3704 imageObj.screen = window.uncodeScreen; 3705 imageObj.images = window.uncodeImages; 3706 images.push(imageObj); 3707 } 3708 3709 var post_data = { 3710 images: JSON.stringify(images), 3711 action: 'get_adaptive_async', 3712 ai_breakpoints: SiteParameters.ai_breakpoints, 3713 resize_quality: SiteParameters.resize_quality, 3714 register_metadata: SiteParameters.register_metadata, 3715 nonce_adaptive_images: SiteParameters.nonce_adaptive_images 3716 }; 3717 3718 if (images.length > 0) { 3719 var xhr = new XMLHttpRequest(); 3720 xhr.open('POST', SiteParameters.ajax_url, true); 3721 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); 3722 xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); 3723 3724 xhr.onreadystatechange = function() { 3725 if (xhr.readyState == XMLHttpRequest.DONE) { 3726 if (xhr.status == 200 && xhr.responseText) { 3727 var jsonResponse = JSON.parse(xhr.responseText); 3728 3729 if (jsonResponse.success && jsonResponse.data.images) { 3730 var images = jsonResponse.data.images; 3731 3732 for (var i = 0; i < images.length; i++) { 3733 var val = images[i]; 3734 var processedImageID = val.id; 3735 var processedImageUniqueID = val.unique; 3736 var processedImageisNew = val.new_crop === true ? true : false;
3737 var getImage = document.querySelectorAll('[data-uniqueid="'+processedImageUniqueID+'"]'); 3738 3739 for (var j = 0; j < getImage.length; j++) { 3740 var attrScr = getImage[j].getAttribute('src'), 3741 replaceImg = new Image(); 3742 replaceImg.source = attrScr; 3743 replaceImg.el = getImage[j]; 3744 3745 classie.removeClass(getImage[j], 'adaptive-async'); 3746 classie.removeClass(getImage[j], 'adaptive-fetching'); 3747 3748 replaceImg.onload = function () { 3749 3750 var _this = this, 3751 parentNode = (_this.el).parentNode, 3752 placeH; 3753 3754 //Workaround for lazy-load flickering on Firefox 3755 if ( typeof parentNode.prepend == 'undefined') { 3756 if (_this.source !== null) { 3757 (_this.el).src = _this.src; 3758 } else { 3759 (_this.el).style.backgroundImage = 'url("'+_this.src+'")'; 3760 } 3761 3762 classie.addClass(_this.el, 'async-done'); 3763 _this.el.dispatchEvent(new CustomEvent("async-done")); 3764 } else { 3765 if (_this.source !== null) { 3766 placeH = document.createElement("IMG"); 3767 placeH.setAttribute('class', 'placeH'); 3768 placeH.src = _this.src; 3769 placeH.style.position = 'absolute'; 3770 placeH.style.opacity = '0'; 3771 } else { 3772 placeH = document.createElement("DIV"); 3773 placeH.setAttribute('style', _this.el.getAttribute('style')); 3774 placeH.setAttribute('class', 'placeH ' + _this.el.getAttribute('class')); 3775 placeH.style.backgroundImage = 'url("'+_this.src+'")'; 3776 placeH.style.backgroundSize = 'cover'; 3777 placeH.style.backgroundPosition = 'center'; 3778 placeH.style.position = 'absolute'; 3779 placeH.style.top = '0'; 3780 placeH.style.width = '100%'; 3781 placeH.style.height = '100%'; 3782 } 3783 3784 if ( !classie.hasClass( _this.el, 'box-wrapper') ) { 3785 parentNode.prepend(placeH); 3786 } 3787 3788 requestTimeout(function(){ 3789 if (_this.source !== null) { 3790 (_this.el).src = _this.src; 3791 } else { 3792 (_this.el).style.backgroundImage = 'url("'+_this.src+'")'; 3793 } 3794 if ( !classie.hasClass( _this.el, 'box-wrapper') ) { 3795 parentNode.removeChild(placeH); 3796 } 3797 classie.addClass(_this.el, 'async-done'); 3798 _this.el.dispatchEvent(new CustomEvent("async-done")); 3799 }, 250); 3800 } 3801 } 3802 replaceImg.src = val.url; 3803 } 3804 3805 if (processedImageisNew && SiteParameters.optimize_shortpixel_image == true) { 3806 UNCODE.process_shortpixel_image(processedImageID); 3807 } 3808 } 3809 3810 } else { 3811 if (SiteParameters.enable_debug == true) { 3812 // This console log is disabled by default 3813 // So nothing is printed in a typical installation 3814 // 3815 // It can be enabled for debugging purposes setting 3816 // the 'uncode_enable_debug_on_js_scripts' filter to true 3817 console.log('There was an error: bad response'); 3818 } 3819 } 3820 3821 } else if (xhr.status == 400) { 3822 if (SiteParameters.enable_debug == true) { 3823 // This console log is disabled by default 3824 // So nothing is printed in a typical installation 3825 // 3826 // It can be enabled for debugging purposes setting 3827 // the 'uncode_enable_debug_on_js_scripts' filter to true 3828 console.log('There was an error 400'); 3829 } 3830 } else { 3831 if (SiteParameters.enable_debug == true) { 3832 // This console log is disabled by default 3833 // So nothing is printed in a typical installation 3834 // 3835 // It can be enabled for debugging purposes setting 3836 // the 'uncode_enable_debug_on_js_scripts' filter to true 3837 console.log('Something else other than 200 was returned'); 3838 } 3839 } 3840 } 3841 } 3842 3843 // Serialize our data 3844 var queryString = "", 3845 arrayLength = Object.keys(post_data).length, 3846 arrayCounter = 0; 3847 3848 for (var key in post_data) { 3849 queryString += key + "=" + post_data[key]; 3850 3851 if (arrayCounter < arrayLength - 1) { 3852 queryString += "&"; 3853 } 3854 3855 arrayCounter++; 3856 } 3857 3858 xhr.send(queryString); 3859 } 3860 }; 3861 3862 UNCODE.adaptive_srcset_replace_bg = function (currentRow) { 3863 if (currentRow === null) { 3864 return; 3865 } 3866
3867 var mobileBreakpoint = SiteParameters.dynamic_srcset_bg_mobile_breakpoint ? parseInt(SiteParameters.dynamic_srcset_bg_mobile_breakpoint, 10) : 570; 3868 var images = currentRow.querySelectorAll('.srcset-bg-async:not(.srcset-bg-init)'); 3869 3870 for (var i = 0; i < images.length; i++) { 3871 var el = images[i]; 3872 classie.addClass(el, 'srcset-bg-init'); 3873 var bg_url = el.dataset.backgroundImage; 3874 var mobile_bg_url = el.dataset.mobileBackgroundImage; 3875 3876 if (SiteParameters.activate_webp && el.dataset.backgroundImageWebp) { 3877 if ((el.dataset.mime === 'png' && UNCODE.webp_lossless_supported) || (el.dataset.mime === 'jpeg' && UNCODE.webp_lossy_supported)) { 3878 bg_url = el.dataset.backgroundImageWebp; 3879 el.dataset.backgroundImage = bg_url; 3880 el.removeAttribute('data-background-image-webp'); 3881 } 3882 } 3883 3884 if (SiteParameters.activate_webp && el.dataset.mobileBackgroundImageWebp && mobile_bg_url) { 3885 if ((el.dataset.mime === 'png' && UNCODE.webp_lossless_supported) || (el.dataset.mime === 'jpeg' && UNCODE.webp_lossy_supported)) { 3886 mobile_bg_url = el.dataset.mobileBackgroundImageWebp; 3887 el.dataset.mobileBackgroundImage = mobile_bg_url; 3888 el.removeAttribute('data-mobile-background-image-webp'); 3889 } 3890 } 3891 3892 if (screenInfo.width <= mobileBreakpoint && mobile_bg_url) { 3893 el.style.backgroundImage = 'url("' + mobile_bg_url + '")'; 3894 } else { 3895 el.style.backgroundImage = 'url("' + bg_url + '")'; 3896 } 3897 3898 classie.addClass(el, 'srcset-bg-async'); 3899 } 3900 } 3901 3902 UNCODE.adaptive_srcset_bg = function() { 3903 var mobileSize = SiteParameters.dynamic_srcset_bg_mobile_size ? parseInt(SiteParameters.dynamic_srcset_bg_mobile_size, 10) : false; 3904 3905 if (!(mobileSize > 0)) { 3906 return; 3907 } 3908 3909 var images = new Array(); 3910 var getImages = document.querySelectorAll('.srcset-bg-generate-img:not(.adaptive-fetching)'); 3911 3912 for (var i = 0; i < getImages.length; i++) { 3913 var imageObj = {}; 3914 var el = getImages[i]; 3915 3916 classie.addClass(el, 'srcset-bg-fetching'); 3917 imageObj.unique = el.getAttribute('data-uniqueid'); 3918 imageObj.url = el.getAttribute('data-guid'); 3919 imageObj.path = el.getAttribute('data-path'); 3920 imageObj.origwidth = el.getAttribute('data-width'); 3921 imageObj.origheight = el.getAttribute('data-height'); 3922 3923 images.push(imageObj); 3924 } 3925 3926 if (images.length > 0) { 3927 var post_data = { 3928 images: JSON.stringify(images), 3929 action: 'regenerate_srcset_bg_async', 3930 resize_quality: SiteParameters.resize_quality, 3931 mobile_size: mobileSize, 3932 nonce_srcset_async: SiteParameters.nonce_srcset_async 3933 }; 3934 3935 var xhr = new XMLHttpRequest(); 3936 xhr.open('POST', SiteParameters.ajax_url, true); 3937 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); 3938 xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); 3939 3940 xhr.onreadystatechange = function() { 3941 if (xhr.readyState == XMLHttpRequest.DONE) { 3942 if (xhr.status == 200 && xhr.responseText) { 3943 var jsonResponse = JSON.parse(xhr.responseText); 3944 3945 if (jsonResponse.success && jsonResponse.data.images) { 3946 var processedImages = jsonResponse.data.images; 3947 3948 for (var i = 0; i < processedImages.length; i++) { 3949 var processedImageID = processedImages[i].id; 3950 var processedImageUniqueID = processedImages[i].unique; 3951 var processedImageisNew = processedImages[i].new_crop === true ? true : false; 3952 var getImage = document.querySelectorAll('[data-uniqueid="'+processedImageUniqueID+'"]'); 3953 3954 for (var j = 0; j < getImage.length; j++) { 3955 classie.removeClass(getImage[j], 'srcset-bg-fetching'); 3956 classie.addClass(getImage[j], 'srcset-bg-async-done'); 3957 getImage[j].dispatchEvent(new CustomEvent("async-done")); 3958 } 3959 3960 if (processedImageisNew && SiteParameters.optimize_shortpixel_image == true) { 3961 UNCODE.process_shortpixel_image(processedImageID); 3962 } 3963 } 3964 } else { 3965 if (SiteParameters.enable_debug == true) { 3966 // This console log is disabled by default 3967 // So nothing is printed in a typical installation 3968 // 3969 // It can be enabled for debugging purposes setting 3970 // the 'uncode_enable_debug_on_js_scripts' filter to true 3971 if (jsonResponse.success == false && jsonResponse.data.message) { 3972 console.log('There was an error: ' + jsonResponse.data.message); 3973 } else { 3974 console.log('There was an error: bad response'); 3975 } 3976 } 3977 } 3978 3979 } else if (xhr.status == 400) { 3980 if (SiteParameters.enable_debug == true) { 3981 // This console log is disabled by default 3982 // So nothing is printed in a typical installation 3983 // 3984 // It can be enabled for debugging purposes setting 3985 // the 'uncode_enable_debug_on_js_scripts' filter to true 3986 console.log('There was an error 400'); 3987 } 3988 } else { 3989 if (SiteParameters.enable_debug == true) { 3990 // This console log is disabled by default 3991 // So nothing is printed in a typical installation 3992 // 3993 // It can be enabled for debugging purposes setting 3994 // the 'uncode_enable_debug_on_js_scripts' filter to true 3995 console.log('Something else other than 200 was returned'); 3996 } 3997 } 3998 } 3999 } 4000 4001 // Serialize our data 4002 var queryString = "", 4003 arrayLength = Object.keys(post_data).length, 4004 arrayCounter = 0; 4005 4006 for (var key in post_data) { 4007 queryString += key + "=" + post_data[key]; 4008 4009 if (arrayCounter < arrayLength - 1) { 4010 queryString += "&"; 4011 } 4012 4013 arrayCounter++; 4014 } 4015 4016 xhr.send(queryString); 4017 } 4018 } 4019
4020 UNCODE.refresh_dynamic_srcset_size = function(container) { 4021 var parentSelector = container && container.length > 0 ? container[0] : document; 4022 // If 'container' is false, we assume that we are resizing generic images 4023 var images = container ? parentSelector.querySelectorAll('.srcset-auto') : parentSelector.querySelectorAll('.srcset-auto:not(.srcset-on-layout)'); 4024 4025 for (var i = 0; i < images.length; i++) { 4026 // Update srcset/sizes attributes 4027 UNCODE.set_dynamic_srcset_size(images[i]); 4028 } 4029 } 4030 4031 UNCODE.set_dynamic_srcset_size = function(el) { 4032 if (el.nodeName === 'PICTURE') { 4033 var picture_imgs = el.getElementsByTagName('img'); 4034 var picture_sources = el.getElementsByTagName('source'); 4035 if (picture_imgs.length > 0) { 4036 var picture_img = picture_imgs[0]; 4037 } 4038 if (picture_sources.length > 0 && picture_imgs.length > 0) { 4039 var picture_source = picture_sources[0]; 4040 var parent_width = el.clientWidth; 4041 var parent_height = el.clientHeight; 4042 var picture_img_width = parseInt(picture_img.getAttribute('width'), 10); 4043 var picture_img_height = parseInt(picture_img.getAttribute('height'), 10); 4044 var picture_ratio = picture_img_width / picture_img_height; 4045 4046 var container_ratio = parent_width / parent_height; 4047 var final_width; 4048 if (picture_ratio >= container_ratio) { 4049 final_width = picture_ratio * parent_height; 4050 } else { 4051 final_width = parent_width; 4052 } 4053 4054 picture_source.sizes = final_width + 'px'; 4055 classie.addClass(picture_source, 'srcset-sizes-done'); 4056 if (picture_source.dataset.srcset) { 4057 if (SiteParameters.activate_webp && picture_source.dataset.srcsetWebp && ((el.dataset.mime === 'png' && UNCODE.webp_lossless_supported) || (el.dataset.mime === 'jpeg' && UNCODE.webp_lossy_supported))) { 4058 picture_source.srcset = picture_source.dataset.srcsetWebp; 4059 picture_source.removeAttribute('data-srcset-webp'); 4060 } else { 4061 picture_source.srcset = picture_source.dataset.srcset; 4062 } 4063 picture_source.removeAttribute('data-srcset'); 4064 var $waitingThumb = getClosest( picture_source, 'srcset-lazy-animations'); 4065 if ( $waitingThumb != null ) { 4066 picture_img.onload = function(){ 4067 classie.removeClass( $waitingThumb, 'srcset-lazy-animations'); 4068 }; 4069 } 4070 } 4071 } 4072 if (picture_sources.length > 0 || picture_imgs.length > 0) { 4073 el.dispatchEvent(new CustomEvent("srcset-done")); 4074 } 4075 } else { 4076 if (typeof el.parentNode !== 'undefined') { 4077 if ( classie.hasClass(el.parentNode, 't-entry-drop') ) { 4078 var parent_width = el.parentNode.getAttribute('data-w'); 4079 if ( typeof parent_width !== 'undefined' && parent_width !== null ) {
4080 parent_width = UNCODE.wwidth / 12 * parseFloat( parent_width ); 4081 } 4082 } else { 4083 var parent_width = el.parentNode.parentElement.clientWidth; 4084 } 4085 if ( parseFloat(el.sizes) === parseFloat(parent_width) ) { 4086 return; 4087 } 4088 if ( parent_width === 0 ) { 4089 el.sizes = UNCODE.wwidth; 4090 } else { 4091 el.sizes = parent_width + 'px'; 4092 } 4093 classie.addClass(el, 'srcset-sizes-done'); 4094 if (el.dataset.srcset) { 4095 if (SiteParameters.activate_webp && el.dataset.srcsetWebp && ((el.dataset.mime === 'png' && UNCODE.webp_lossless_supported) || (el.dataset.mime === 'jpeg' && UNCODE.webp_lossy_supported))) { 4096 el.srcset = el.dataset.srcsetWebp; 4097 el.removeAttribute('data-srcset-webp'); 4098 } else { 4099 el.srcset = el.dataset.srcset; 4100 } 4101 el.removeAttribute('data-srcset'); 4102 var $waitingThumb = getClosest( el, 'srcset-lazy-animations'); 4103 if ( $waitingThumb != null ) { 4104 el.onload = function(){ 4105 classie.removeClass( $waitingThumb, 'srcset-lazy-animations'); 4106 }; 4107 } 4108 } 4109 el.dispatchEvent(new CustomEvent("srcset-done")); 4110 } 4111 } 4112 }; 4113 4114 UNCODE.adaptive_srcset = function(container) { 4115 var images = new Array(); 4116 var parentSelector = container ? container[0] : document; 4117 // If 'container' is false, we assume that this is a call on window load 4118 var isLoadingResize = container ? false : true; 4119 var getImages = parentSelector.querySelectorAll('.srcset-async:not(.srcset-fetching)'); 4120 var limit = SiteParameters.dynamic_srcset_bunch_limit ? parseInt(SiteParameters.dynamic_srcset_bunch_limit, 10) : 1; 4121 4122 for (var i = 0; i < getImages.length; i++) { 4123 var imageObj = {}; 4124 var el = getImages[i]; 4125 var missing_breakpoints = el.getAttribute('data-no-bp'); 4126 4127 if (isLoadingResize) { 4128 // Update srcset/sizes attributes 4129 // But skip images that are processed on other events 4130 // (isotope.onLayout for example) to avoid double calls 4131 if (!classie.hasClass(el, 'srcset-on-layout')) { 4132 UNCODE.set_dynamic_srcset_size(el); 4133 } 4134 } 4135 4136 if (missing_breakpoints) { 4137 classie.addClass(el, 'srcset-fetching'); 4138 imageObj.unique = el.getAttribute('data-uniqueid'); 4139 imageObj.url = el.getAttribute('data-guid'); 4140 imageObj.path = el.getAttribute('data-path'); 4141 imageObj.singlew = el.getAttribute('data-singlew'); 4142 imageObj.singleh = el.getAttribute('data-singleh'); 4143 imageObj.origwidth = el.getAttribute('data-width'); 4144 imageObj.origheight = el.getAttribute('data-height'); 4145 imageObj.crop = el.getAttribute('data-crop'); 4146 imageObj.fixed = el.getAttribute('data-fixed') == undefined ? null : el.getAttribute('data-fixed'); 4147 imageObj.missingbp = missing_breakpoints; 4148 4149 images.push(imageObj); 4150 } else { 4151 classie.removeClass(el, 'srcset-async'); 4152 } 4153 } 4154 4155 while (images.length > 0) { 4156 if (images.length >= limit) { 4157 var bunch_images = new Array(); 4158 for (var i = limit - 1; i >= 0; i--) { 4159 bunch_images.push(images[i]); 4160 images.splice(i, 1); 4161 } 4162 UNCODE.adaptive_srcset_async(parentSelector, bunch_images); 4163 } else { 4164 UNCODE.adaptive_srcset_async(parentSelector, images); 4165 break; 4166 } 4167 } 4168 }; 4169 4170 UNCODE.adaptive_srcset_async = function(parentSelector, images) { 4171 var post_data = { 4172 images: JSON.stringify(images), 4173 action: 'regenerate_srcset_async', 4174 resize_quality: SiteParameters.resize_quality, 4175 nonce_srcset_async: SiteParameters.nonce_srcset_async 4176 }; 4177 4178 var xhr = new XMLHttpRequest(); 4179 xhr.open('POST', SiteParameters.ajax_url, true); 4180 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); 4181 xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); 4182 4183 xhr.onreadystatechange = function() { 4184 if (xhr.readyState == XMLHttpRequest.DONE) { 4185 if (xhr.status == 200 && xhr.responseText) { 4186 var jsonResponse = JSON.parse(xhr.responseText); 4187 4188 if (jsonResponse.success && jsonResponse.data.images) { 4189 var processedImages = jsonResponse.data.images; 4190 4191 for (var i = 0; i < processedImages.length; i++) { 4192 var processedImageID = processedImages[i].id; 4193 var processedImageUniqueID = processedImages[i].unique; 4194 var processedImageisNew = processedImages[i].new_crop === true ? true : false;
4195 var getImage = parentSelector.querySelectorAll('[data-uniqueid="'+processedImageUniqueID+'"]'); 4196 4197 for (var j = 0; j < getImage.length; j++) { 4198 classie.removeClass(getImage[j], 'srcset-async'); 4199 classie.removeClass(getImage[j], 'srcset-fetching'); 4200 classie.addClass(getImage[j], 'srcset-async-done'); 4201 getImage[j].dispatchEvent(new CustomEvent("async-done")); 4202 } 4203 4204 if (processedImageisNew && SiteParameters.optimize_shortpixel_image == true) { 4205 UNCODE.process_shortpixel_image(processedImageID); 4206 } 4207 } 4208 } else { 4209 if (SiteParameters.enable_debug == true) { 4210 // This console log is disabled by default 4211 // So nothing is printed in a typical installation 4212 // 4213 // It can be enabled for debugging purposes setting 4214 // the 'uncode_enable_debug_on_js_scripts' filter to true 4215 if (jsonResponse.success == false && jsonResponse.data.message) { 4216 console.log('There was an error: ' + jsonResponse.data.message); 4217 } else { 4218 console.log('There was an error: bad response'); 4219 } 4220 } 4221 } 4222 4223 } else if (xhr.status == 400) { 4224 if (SiteParameters.enable_debug == true) { 4225 // This console log is disabled by default 4226 // So nothing is printed in a typical installation 4227 // 4228 // It can be enabled for debugging purposes setting 4229 // the 'uncode_enable_debug_on_js_scripts' filter to true 4230 console.log('There was an error 400'); 4231 } 4232 } else { 4233 if (SiteParameters.enable_debug == true) { 4234 // This console log is disabled by default 4235 // So nothing is printed in a typical installation 4236 // 4237 // It can be enabled for debugging purposes setting 4238 // the 'uncode_enable_debug_on_js_scripts' filter to true 4239 console.log('Something else other than 200 was returned'); 4240 } 4241 } 4242 } 4243 } 4244 4245 // Serialize our data 4246 var queryString = "", 4247 arrayLength = Object.keys(post_data).length, 4248 arrayCounter = 0; 4249 4250 for (var key in post_data) { 4251 queryString += key + "=" + post_data[key]; 4252 4253 if (arrayCounter < arrayLength - 1) { 4254 queryString += "&"; 4255 } 4256 4257 arrayCounter++; 4258 } 4259 4260 xhr.send(queryString); 4261 }; 4262 4263 })(window); 4264 4265 (function(global){var startY=0;var enabled=false;var supportsPassiveOption=false;try{var opts=Object.defineProperty({},"passive",{get:function(){supportsPassiveOption=true}});window.addEventListener("test",null,opts)}catch(e){}var handleTouchmove=function(evt){var el=evt.target;while(el!==document.body&&el!==document){var style=window.getComputedStyle(el);if(!style){break}if(el.nodeName==="INPUT"&&el.getAttribute("type")==="range"){return}var scrolling=style.getPropertyValue("-webkit-overflow-scrolling");var overflowY=style.getPropertyValue("overflow-y");var height=parseInt(style.getPropertyValue("height"),10);var isScrollable=scrolling==="touch"&&(overflowY==="auto"||overflowY==="scroll");var canScroll=el.scrollHeight>el.offsetHeight;if(isScrollable&&canScroll){var curY=evt.touches?evt.touches[0].screenY:evt.screenY;var isAtTop=startY<=curY&&el.scrollTop===0;var isAtBottom=startY>=curY&&el.scrollHeight-el.scrollTop===height;if(isAtTop||isAtBottom){evt.preventDefault()}return}el=el.parentNode}evt.preventDefault()};var handleTouchstart=function(evt){startY=evt.touches?evt.touches[0].screenY:evt.screenY};var enable=function(){window.addEventListener("touchstart",handleTouchstart,supportsPassiveOption?{passive:false}:false);window.addEventListener("touchmove",handleTouchmove,supportsPassiveOption?{passive:false}:false);enabled=true};var disable=function(){window.removeEventListener("touchstart",handleTouchstart,false);window.removeEventListener("touchmove",handleTouchmove,false);enabled=false};var isEnabled=function(){return enabled};var testDiv=document.createElement("div");document.documentElement.appendChild(testDiv);testDiv.style.WebkitOverflowScrolling="touch";var scrollSupport="getComputedStyle"in window&&window.getComputedStyle(testDiv)["-webkit-overflow-scrolling"]==="touch";document.documentElement.removeChild(testDiv);if(scrollSupport){enable()}var iNoBounce={enable:enable,disable:disable,isEnabled:isEnabled};if(typeof module!=="undefined"&&module.exports){module.exports=iNoBounce}if(typeof global.define==="function"){(function(define){define("iNoBounce",[],function(){return iNoBounce})})(global.define)}else{global.iNoBounce=iNoBounce}})(this); 4266 iNoBounce.disable(); 4267 4268 /* Font Face Observer v2.1.0 - © Bram Stein. License: BSD-3-Clause */(function(){'use strict';var f,g=[];function l(a){g.push(a);1==g.length&&f()}function m(){for(;g.length;)g[0](),g.shift()}f=function(){setTimeout(m)};function n(a){this.a=p;this.b=void 0;this.f=[];var b=this;try{a(function(a){q(b,a)},function(a){r(b,a)})}catch(c){r(b,c)}}var p=2;function t(a){return new n(function(b,c){c(a)})}function u(a){return new n(function(b){b(a)})}function q(a,b){if(a.a==p){if(b==a)throw new TypeError;var c=!1;try{var d=b&&b.then;if(null!=b&&"object"==typeof b&&"function"==typeof d){d.call(b,function(b){c||q(a,b);c=!0},function(b){c||r(a,b);c=!0});return}}catch(e){c||r(a,e);return}a.a=0;a.b=b;v(a)}} 4269 function r(a,b){if(a.a==p){if(b==a)throw new TypeError;a.a=1;a.b=b;v(a)}}function v(a){l(function(){if(a.a!=p)for(;a.f.length;){var b=a.f.shift(),c=b[0],d=b[1],e=b[2],b=b[3];try{0==a.a?"function"==typeof c?e(c.call(void 0,a.b)):e(a.b):1==a.a&&("function"==typeof d?e(d.call(void 0,a.b)):b(a.b))}catch(h){b(h)}}})}n.prototype.g=function(a){return this.c(void 0,a)};n.prototype.c=function(a,b){var c=this;return new n(function(d,e){c.f.push([a,b,d,e]);v(c)})}; 4270 function w(a){return new n(function(b,c){function d(c){return function(d){h[c]=d;e+=1;e==a.length&&b(h)}}var e=0,h=[];0==a.length&&b(h);for(var k=0;k<a.length;k+=1)u(a[k]).c(d(k),c)})}function x(a){return new n(function(b,c){for(var d=0;d<a.length;d+=1)u(a[d]).c(b,c)})};window.Promise||(window.Promise=n,window.Promise.resolve=u,window.Promise.reject=t,
4270window.Promise.race=x,window.Promise.all=w,window.Promise.prototype.then=n.prototype.c,window.Promise.prototype["catch"]=n.prototype.g);}()); 4271 4272 (function(){function l(a,b){document.addEventListener?a.addEventListener("scroll",b,!1):a.attachEvent("scroll",b)}function m(a){document.body?a():document.addEventListener?document.addEventListener("DOMContentLoaded",function c(){document.removeEventListener("DOMContentLoaded",c);a()}):document.attachEvent("onreadystatechange",function k(){if("interactive"==document.readyState||"complete"==document.readyState)document.detachEvent("onreadystatechange",k),a()})};function t(a){this.a=document.createElement("div");this.a.setAttribute("aria-hidden","true");this.a.appendChild(document.createTextNode(a));this.b=document.createElement("span");this.c=document.createElement("span");this.h=document.createElement("span");this.f=document.createElement("span");this.g=-1;this.b.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;";this.c.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;"; 4273 this.f.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;";this.h.style.cssText="display:inline-block;width:200%;height:200%;font-size:16px;max-width:none;";this.b.appendChild(this.h);this.c.appendChild(this.f);this.a.appendChild(this.b);this.a.appendChild(this.c)} 4274 function u(a,b){a.a.style.cssText="max-width:none;min-width:20px;min-height:20px;display:inline-block;overflow:hidden;position:absolute;width:auto;margin:0;padding:0;top:-999px;white-space:nowrap;font-synthesis:none;font:"+b+";"}function z(a){var b=a.a.offsetWidth,c=b+100;a.f.style.width=c+"px";a.c.scrollLeft=c;a.b.scrollLeft=a.b.scrollWidth+100;return a.g!==b?(a.g=b,!0):!1}function A(a,b){function c(){var a=k;z(a)&&a.a.parentNode&&b(a.g)}var k=a;l(a.b,c);l(a.c,c);z(a)};function B(a,b){var c=b||{};this.family=a;this.style=c.style||"normal";this.weight=c.weight||"normal";this.stretch=c.stretch||"normal"}var C=null,D=null,E=null,F=null;function G(){if(null===D)if(J()&&/Apple/.test(window.navigator.vendor)){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))(?:\.([0-9]+))/.exec(window.navigator.userAgent);D=!!a&&603>parseInt(a[1],10)}else D=!1;return D}function J(){null===F&&(F=!!document.fonts);return F} 4275 function K(){if(null===E){var a=document.createElement("div");try{a.style.font="condensed 100px sans-serif"}catch(b){}E=""!==a.style.font}return E}function L(a,b){return[a.style,a.weight,K()?a.stretch:"","100px",b].join(" ")} 4276 B.prototype.load=function(a,b){var c=this,k=a||"BESbswy",r=0,n=b||3E3,H=(new Date).getTime();return new Promise(function(a,b){if(J()&&!G()){var M=new Promise(function(a,b){function e(){(new Date).getTime()-H>=n?b(Error(""+n+"ms timeout exceeded")):document.fonts.load(L(c,'"'+c.family+'"'),k).then(function(c){1<=c.length?a():setTimeout(e,25)},b)}e()}),N=new Promise(function(a,c){r=setTimeout(function(){c(Error(""+n+"ms timeout exceeded"))},n)});Promise.race([N,M]).then(function(){clearTimeout(r);a(c)}, 4277 b)}else m(function(){function v(){var b;if(b=-1!=f&&-1!=g||-1!=f&&-1!=h||-1!=g&&-1!=h)(b=f!=g&&f!=h&&g!=h)||(null===C&&(b=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent),C=!!b&&(536>parseInt(b[1],10)||536===parseInt(b[1],10)&&11>=parseInt(b[2],10))),b=C&&(f==w&&g==w&&h==w||f==x&&g==x&&h==x||f==y&&g==y&&h==y)),b=!b;b&&(d.parentNode&&d.parentNode.removeChild(d),clearTimeout(r),a(c))}function I(){if((new Date).getTime()-H>=n)d.parentNode&&d.parentNode.removeChild(d),b(Error(""+ 4278 n+"ms timeout exceeded"));else{var a=document.hidden;if(!0===a||void 0===a)f=e.a.offsetWidth,g=p.a.offsetWidth,h=q.a.offsetWidth,v();r=setTimeout(I,50)}}var e=new t(k),p=new t(k),q=new t(k),f=-1,g=-1,h=-1,w=-1,x=-1,y=-1,d=document.createElement("div");d.dir="ltr";u(e,L(c,"sans-serif"));u(p,L(c,"serif"));u(q,L(c,"monospace"));d.appendChild(e.a);d.appendChild(p.a);d.appendChild(q.a);document.body.appendChild(d);w=e.a.offsetWidth;x=p.a.offsetWidth;y=q.a.offsetWidth;I();
4278A(e,function(a){f=a;v()});u(e, 4279 L(c,'"'+c.family+'",sans-serif'));A(p,function(a){g=a;v()});u(p,L(c,'"'+c.family+'",serif'));A(q,function(a){h=a;v()});u(q,L(c,'"'+c.family+'",monospace'))})})};"object"===typeof module?module.exports=B:(window.FontFaceObserver=B,window.FontFaceObserver.prototype.load=B.prototype.load);}());
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.