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