"use strict"; (function () { // global variables let useragent = navigator.useragent.tolowercase(), isie = useragent.indexof("msie") !== -1 ? parseint(useragent.split("msie")[1], 10) : useragent.indexof("trident") !== -1 ? 11 : useragent.indexof("edge") !== -1 ? 12 : false; // unsupported browsers if (isie !== false && isie < 12) { console.warn("[core] detected ie" + isie + ", load alert"); var script = document.createelement("script"); script.src = "./js/support.js"; document.queryselector("head").appendchild(script); } var initialdate = new date(), $document = $(document), $window = $(window), $html = $("html"), $body = $("body"), isdesktop = $html.hasclass("desktop"), ismobile = /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(navigator.useragent), windowready = false, isnovibuilder = false, livedemo = true, plugins = { rdnavbar: $('.rd-navbar'), wow: $('.wow') }; /** * @desc check the element was been scrolled into the view * @param {object} elem - jquery object * @return {boolean} */ function isscrolledintoview(elem) { if (isnovibuilder) return true; return elem.offset().top + elem.outerheight() >= $window.scrolltop() && elem.offset().top <= $window.scrolltop() + $window.height(); } /** * @desc calls a function when element has been scrolled into the view * @param {object} element - jquery object * @param {function} func - init function */ function lazyinit(element, func) { var scrollhandler = function () { if ((!element.hasclass('lazy-loaded') && (isscrolledintoview(element)))) { func.call(element); element.addclass('lazy-loaded'); } }; scrollhandler(); $window.on('scroll', scrollhandler); } // initialize scripts that require a finished document $(function () { isnovibuilder = window.xmode; /** * wrapper to eliminate json errors * @param {string} str - json string * @returns {object} - parsed or empty object */ function parsejson ( str ) { try { if ( str ) return json.parse( str ); else return {}; } catch ( error ) { console.warn( error ); return {}; } } /** * @desc sets the actual previous index based on the position of the slide in the markup. should be the most recent action. * @param {object} swiper - swiper instance */ function setrealprevious(swiper) { var element = swiper.$wrapperel[0].children[swiper.activeindex]; swiper.realprevious = array.prototype.indexof.call(element.parentnode.children, element); } /** * @desc sets slides background images from attribute 'data-slide-bg' * @param {object} swiper - swiper instance */ function setbackgrounds(swiper) { var swipersbg = swiper.el.queryselectorall('[data-slide-bg]'); for (var i = 0; i < swipersbg.length; i++) { var swiperbg = swipersbg[i]; swiperbg.style.backgroundimage = 'url(' + swiperbg.getattribute('data-slide-bg') + ')'; } } // additional class on html if mac os. if (navigator.platform.match(/(mac)/i)) { $html.addclass("mac-os"); } // adds some loosing functionality to ie browsers (ie polyfills) if (isie) { if (isie === 12) $html.addclass("ie-edge"); if (isie === 11) $html.addclass("ie-11"); if (isie < 10) $html.addclass("lt-ie-10"); if (isie < 11) $html.addclass("ie-10"); } // ui to top if (isdesktop && !isnovibuilder) { $().uitotop({ easingtype: 'easeoutquad', containerclass: 'ui-to-top fa fa-angle-up', scrollspeed: 100 }); } // rd navbar if (plugins.rdnavbar.length) { var navbar = plugins.rdnavbar, aliases = { '-': 0, '-sm-': 576, '-md-': 768, '-lg-': 992, '-xl-': 1200, '-xxl-': 1600 }, responsive = {}; for (var alias in aliases) { var link = responsive[aliases[alias]] = {}; if (navbar.attr('data' + alias + 'layout')) link.layout = navbar.attr('data' + alias + 'layout'); if (navbar.attr('data' + alias + 'device-layout')) link.devicelayout = navbar.attr('data' + alias + 'device-layout'); if (navbar.attr('data' + alias + 'hover-on')) link.focusonhover = navbar.attr('data' + alias + 'hover-on') === 'true'; if (navbar.attr('data' + alias + 'auto-height')) link.autoheight = navbar.attr('data' + alias + 'auto-height') === 'true'; if (navbar.attr('data' + alias + 'stick-up-offset')) link.stickupoffset = navbar.attr('data' + alias + 'stick-up-offset'); if (navbar.attr('data' + alias + 'stick-up')) link.stickup = navbar.attr('data' + alias + 'stick-up') === 'true'; if (isnovibuilder) link.stickup = false; else if (navbar.attr('data' + alias + 'stick-up')) link.stickup = navbar.attr('data' + alias + 'stick-up') === 'true'; } plugins.rdnavbar.rdnavbar({ anchornav: !isnovibuilder, stickupclone: (plugins.rdnavbar.attr("data-stick-up-clone") && !isnovibuilder) ? plugins.rdnavbar.attr("data-stick-up-clone") === 'true' : false, responsive: responsive, callbacks: { onstuck: function () { var navbarsearch = this.$element.find('.rd-search input'); if (navbarsearch) { navbarsearch.val('').trigger('propertychange'); } }, ondropdownover: function () { return !isnovibuilder; }, onunstuck: function () { if (this.$clone === null) return; var navbarsearch = this.$clone.find('.rd-search input'); if (navbarsearch) { navbarsearch.val('').trigger('propertychange'); navbarsearch.trigger('blur'); } } } }); } // wow if ($html.hasclass("wow-animation") && plugins.wow.length && !isnovibuilder && isdesktop) { new wow().init(); } }); $(function(){ var nav = $('.rd-navbar-nav'), logo = $('.rd-navbar-brand'), doc = $(document), win = $(window); win.scroll(function() { if (doc.scrolltop() > 80) { nav.addclass('scrolled'); logo.addclass('scrolled'); } else { nav.removeclass('scrolled'); logo.removeclass('scrolled'); } }); win.scroll(); }); }());