var $ = jQuery.noConflict(); var SMM = SMM || {}; (function($){ // USE STRICT "use strict"; SMM.initialize = { init: function(){ SMM.initialize.responsiveClasses(); SMM.initialize.stickyElements(); SMM.initialize.goToTop(); SMM.initialize.fullScreen(); SMM.initialize.verticalMiddle(); SMM.initialize.pageTransition(); SMM.initialize.cookie(); }, responsiveClasses: function(){ var jRes = jRespond([ { label: 'smallest', enter: 0, exit: 479 },{ label: 'handheld', enter: 480, exit: 767 },{ label: 'tablet', enter: 768, exit: 991 },{ label: 'laptop', enter: 992, exit: 1199 },{ label: 'desktop', enter: 1200, exit: 10000 } ]); jRes.addFunc([ { breakpoint: 'desktop', enter: function() { $body.addClass('device-lg'); }, exit: function() { $body.removeClass('device-lg'); } },{ breakpoint: 'laptop', enter: function() { $body.addClass('device-md'); }, exit: function() { $body.removeClass('device-md'); } },{ breakpoint: 'tablet', enter: function() { $body.addClass('device-sm'); }, exit: function() { $body.removeClass('device-sm'); } },{ breakpoint: 'handheld', enter: function() { $body.addClass('device-xs'); }, exit: function() { $body.removeClass('device-xs'); } },{ breakpoint: 'smallest', enter: function() { $body.addClass('device-xxs'); }, exit: function() { $body.removeClass('device-xxs'); } } ]); }, imagePreload: function(selector, parameters){ var params = { delay: 250, transition: 400, easing: 'linear' }; $.extend(params, parameters); $(selector).each(function() { var image = $(this); image.css({visibility:'hidden', opacity: 0, display:'block'}); image.wrap(''); image.one("load", function(evt) { $(this).delay(params.delay).css({visibility:'visible'}).animate({opacity: 1}, params.transition, params.easing, function() { $(this).unwrap(''); }); }).each(function() { if(this.complete) $(this).trigger("load"); }); }); }, verticalMiddle: function(){ if( $verticalMiddleEl.length > 0 ) { $verticalMiddleEl.each( function(){ var element = $(this), verticalMiddleH = element.outerHeight(), headerHeight = $header.outerHeight(); if( element.parents('#slider').length > 0 && !element.hasClass('ignore-header') ) { if( $header.hasClass('transparent-header') && ( $body.hasClass('device-lg') || $body.hasClass('device-md') ) ) { verticalMiddleH = verticalMiddleH - 70; if( $slider.next('#header').length > 0 ) { verticalMiddleH = verticalMiddleH + headerHeight; } } } if( $body.hasClass('device-xs') || $body.hasClass('device-xxs') ) { if( element.parents('.full-screen').length && !element.parents('.force-full-screen').length ){ element.css({ position: 'relative', top: '0', width: 'auto', marginTop: '0', padding: '60px 0' }).addClass('clearfix'); } else { element.css({ position: 'absolute', top: '50%', width: '100%', marginTop: -(verticalMiddleH/2)+'px' }); } } else { element.css({ position: 'absolute', top: '50%', width: '100%', marginTop: -(verticalMiddleH/2)+'px' }); } }); } }, stickyElements: function(){ if( $siStickyEl.length > 0 ) { var siStickyH = $siStickyEl.outerHeight(); $siStickyEl.css({ marginTop: -(siStickyH/2)+'px' }); } $(window).on( 'scroll', function(){ if ($(window).scrollTop() > 1) { $('#header-wrap').addClass('topbar-gone'); } else { $('#header-wrap').removeClass('topbar-gone'); } }) }, goToTop: function(){ $goToTopEl.click(function() { $('body,html').stop(true).animate({scrollTop:0},400); return false; }); }, goToTopScroll: function(){ if( $body.hasClass('device-lg') || $body.hasClass('device-md') || $body.hasClass('device-sm') ) { if($window.scrollTop() > 450) { $goToTopEl.fadeIn(); } else { $goToTopEl.fadeOut(); } } }, fullScreen: function(){ if( $fullScreenEl.length > 0 ) { $fullScreenEl.each( function(){ var element = $(this), scrHeight = $window.height(); if( element.attr('id') == 'slider' ) { var sliderHeightOff = $slider.offset().top; scrHeight = scrHeight - sliderHeightOff; if( element.hasClass('slider-parallax') ) { var transformVal = element.css('transform'), transformX = transformVal.match(/-?[\d\.]+/g); if( !transformX ) { var transformXvalue = 0; } else { var transformXvalue = transformX[5]; } scrHeight = ( $window.height() + Number( transformXvalue ) ) - sliderHeightOff; } if( $('#slider.with-header').next('#header:not(.transparent-header)').length > 0 && ( $body.hasClass('device-lg') || $body.hasClass('device-md') ) ) { var headerHeightOff = $header.outerHeight(); scrHeight = scrHeight - headerHeightOff; } } if( element.parents('.full-screen').length > 0 ) { scrHeight = element.parents('.full-screen').height(); } if( $body.hasClass('device-xs') || $body.hasClass('device-xxs') ) { if( !element.hasClass('force-full-screen') ){ scrHeight = 'auto'; } } element.css('height', scrHeight); if( element.attr('id') == 'slider' && !element.hasClass('canvas-slider-grid') ) { if( element.has('.swiper-slide') ) { element.find('.swiper-slide').css('height', scrHeight); } } }); } }, maxHeight: function(){ if( $commonHeightEl.length > 0 ) { $commonHeightEl.each( function(){ var element = $(this); if( element.has('.common-height') ) { SMM.initialize.commonHeight( element.find('.common-height') ); } SMM.initialize.commonHeight( element ); }); } }, commonHeight: function( element ){ var maxHeight = 0; element.children('[class^=col-]').each(function() { var element = $(this).children('div'); if( element.hasClass('max-height') ){ maxHeight = element.outerHeight(); } else { if (element.outerHeight() > maxHeight) maxHeight = element.outerHeight(); } }); element.children('[class^=col-]').each(function() { $(this).height(maxHeight); }); }, pageTransition: function(){ if( !$body.hasClass('no-transition') ){ var animationIn = $body.attr('data-animation-in'), animationOut = $body.attr('data-animation-out'), durationIn = $body.attr('data-speed-in'), durationOut = $body.attr('data-speed-out'), loaderStyle = $body.attr('data-loader'), loaderColor = $body.attr('data-loader-color'), loaderStyleHtml = '
', loaderBgStyle = '', loaderBorderStyle = '', loaderBgClass = '', loaderBorderClass = '', loaderBgClass2 = '', loaderBorderClass2 = ''; if( !animationIn ) { animationIn = 'fadeIn'; } if( !animationOut ) { animationOut = 'fadeOut'; } if( !durationIn ) { durationIn = 1500; } if( !durationOut ) { durationOut = 800; } if( loaderColor ) { if( loaderColor == 'theme' ) { loaderBgClass = ' bgcolor'; loaderBorderClass = ' border-color'; loaderBgClass2 = ' class="bgcolor"'; loaderBorderClass2 = ' class="border-color"'; } else { loaderBgStyle = ' style="background-color:'+ loaderColor +';"'; loaderBorderStyle = ' style="border-color:'+ loaderColor +';"'; } loaderStyleHtml = '
' } if( loaderStyle == '2' ) { loaderStyleHtml = '
'; } else if( loaderStyle == '3' ) { loaderStyleHtml = '
'; } else if( loaderStyle == '4' ) { loaderStyleHtml = '
'; } else if( loaderStyle == '5' ) { loaderStyleHtml = '
'; } else if( loaderStyle == '6' ) { loaderStyleHtml = '
'; } else if( loaderStyle == '7' ) { loaderStyleHtml = '
'; } else if( loaderStyle == '8' ) { loaderStyleHtml = '
'; } else if( loaderStyle == '9' ) { loaderStyleHtml = '
'; } else if( loaderStyle == '10' ) { loaderStyleHtml = '
'; } else if( loaderStyle == '11' ) { loaderStyleHtml = '
'; } else if( loaderStyle == '12' ) { loaderStyleHtml = '
'; } else if( loaderStyle == '13' ) { loaderStyleHtml = '
'; } else if( loaderStyle == '14' ) { loaderStyleHtml = '
'; } $wrapper.animsition({ inClass : animationIn, outClass : animationOut, inDuration : Number(durationIn), outDuration : Number(durationOut), linkElement : '#primary-menu ul li a:not([target="_blank"]):not([href^=#])', loading : true, loadingParentElement : 'body', loadingClass : 'css3-spinner', loadingHtml : loaderStyleHtml, unSupportCss : [ 'animation-duration', '-webkit-animation-duration', '-o-animation-duration' ], overlay : false, overlayClass : 'animsition-overlay-slide', overlayParentElement : 'body' }); } }, topScrollOffset: function() { var topOffsetScroll = 0; if( ( $body.hasClass('device-lg') || $body.hasClass('device-md') ) && !SMM.isMobile.any() ) { if( $header.hasClass('sticky-header') ) { if( $pagemenu.hasClass('dots-menu') ) { topOffsetScroll = 100; } else { topOffsetScroll = 144; } } else { if( $pagemenu.hasClass('dots-menu') ) { topOffsetScroll = 140; } else { topOffsetScroll = 184; } } if( !$pagemenu.length ) { if( $header.hasClass('sticky-header') ) { topOffsetScroll = 100; } else { topOffsetScroll = 140; } } } else { topOffsetScroll = 40; } return topOffsetScroll; }, defineColumns: function( element ){ var column = 4; if( element.hasClass('portfolio-full') ) { if( element.hasClass('portfolio-3') ) column = 3; else if( element.hasClass('portfolio-5') ) column = 5; else if( element.hasClass('portfolio-6') ) column = 6; else column = 4; if( $body.hasClass('device-sm') && ( column == 4 || column == 5 || column == 6 ) ) { column = 3; } else if( $body.hasClass('device-xs') && ( column == 3 || column == 4 || column == 5 || column == 6 ) ) { column = 2; } else if( $body.hasClass('device-xxs') ) { column = 1; } } else if( element.hasClass('masonry-thumbs') ) { var lgCol = element.attr('data-lg-col'), mdCol = element.attr('data-md-col'), smCol = element.attr('data-sm-col'), xsCol = element.attr('data-xs-col'), xxsCol = element.attr('data-xxs-col'); if( element.hasClass('col-2') ) column = 2; else if( element.hasClass('col-3') ) column = 3; else if( element.hasClass('col-5') ) column = 5; else if( element.hasClass('col-6') ) column = 6; else column = 4; if( $body.hasClass('device-lg') ) { if( lgCol ) { column = Number(lgCol); } } else if( $body.hasClass('device-md') ) { if( mdCol ) { column = Number(mdCol); } } else if( $body.hasClass('device-sm') ) { if( smCol ) { column = Number(smCol); } } else if( $body.hasClass('device-xs') ) { if( xsCol ) { column = Number(xsCol); } } else if( $body.hasClass('device-xxs') ) { if( xxsCol ) { column = Number(xxsCol); } } } return column; }, setFullColumnWidth: function( element ){ if( element.hasClass('portfolio-full') ) { var columns = SMM.initialize.defineColumns( element ); var containerWidth = element.width(); if( containerWidth == ( Math.floor(containerWidth/columns) * columns ) ) { containerWidth = containerWidth - 1; } var postWidth = Math.floor(containerWidth/columns); if( $body.hasClass('device-xxs') ) { var deviceSmallest = 1; } else { var deviceSmallest = 0; } element.find(".portfolio-item").each(function(index){ if( deviceSmallest == 0 && $(this).hasClass('wide') ) { var elementSize = ( postWidth*2 ); } else { var elementSize = postWidth; } $(this).css({"width":elementSize+"px"}); }); } else if( element.hasClass('masonry-thumbs') ) { var columns = SMM.initialize.defineColumns( element ), containerWidth = element.innerWidth(), windowWidth = $window.width(); if( containerWidth == windowWidth ){ containerWidth = windowWidth*1.004; element.css({ 'width': containerWidth+'px' }); } var postWidth = (containerWidth/columns); postWidth = Math.floor(postWidth); if( ( postWidth * columns ) >= containerWidth ) { element.css({ 'margin-right': '-1px' }); } element.children('a').css({"width":postWidth+"px"}); var firstElementWidth = element.find('a:eq(0)').outerWidth(); element.isotope({ masonry: { columnWidth: firstElementWidth } }); var bigImageNumbers = element.attr('data-big'); if( bigImageNumbers ) { bigImageNumbers = bigImageNumbers.split(","); var bigImageNumber = '', bigi = ''; for( bigi = 0; bigi < bigImageNumbers.length; bigi++ ){ bigImageNumber = Number(bigImageNumbers[bigi]) - 1; element.find('a:eq('+bigImageNumber+')').css({ width: firstElementWidth*2 + 'px' }); } var t = setTimeout( function(){ element.isotope('layout'); }, 1000 ); } } }, aspectResizer: function(){ var $aspectResizerEl = $('.aspect-resizer'); if( $aspectResizerEl.length > 0 ) { $aspectResizerEl.each( function(){ var element = $(this), elementW = element.inlineStyle('width'), elementH = element.inlineStyle('height'), elementPW = element.parent().innerWidth(); }); } }, cookie: function(){ //only if the element exists var $cookieClass = $('.cookie-message'); var $cookieButton=$('.cookie-message .toast-close-button'); if($cookieClass.length){ $cookieClass.hide().slideDown('slow'); $cookieButton.click(function(){ $cookieClass.slideUp(400); }); } }, }; SMM.header = { init: function(){ SMM.header.superfish(); SMM.header.menufunctions(); SMM.header.fullWidthMenu(); SMM.header.overlayMenu(); SMM.header.stickyMenu(); SMM.header.onePageScroll(); SMM.header.onepageScroller(); }, superfish: function(){ if ( $().superfish ) { if( $body.hasClass('device-lg') || $body.hasClass('device-md') ) { $('#primary-menu ul ul').css('display', 'block'); SMM.header.menuInvert(); } $('body:not(.side-header) #primary-menu > ul, body:not(.side-header) #primary-menu > div > ul,.top-links > ul').superfish({ popUpSelector: 'ul,.top-link-section', delay: 250, speed: 350, animation: {opacity:'show'}, animationOut: {opacity:'hide'}, cssArrows: false }); $('body.side-header #primary-menu > ul').superfish({ popUpSelector: 'ul', delay: 250, speed: 350, animation: {opacity:'show',height:'show'}, animationOut: {opacity:'hide',height:'hide'}, cssArrows: false }); } }, menuInvert: function() { $('#primary-menu .mega-menu-content, #primary-menu ul ul').each( function( index, element ){ var $menuChildElement = $(element); var windowWidth = $window.width(); var menuChildOffset = $menuChildElement.offset(); var menuChildWidth = $menuChildElement.width(); var menuChildLeft = menuChildOffset.left; if(windowWidth - (menuChildWidth + menuChildLeft) < 0) { $menuChildElement.addClass('menu-pos-invert'); } }); }, menufunctions: function(){ $( '#primary-menu ul li:has(ul)' ).addClass('sub-menu'); $( '.top-links ul li:has(ul) > a' ).append( ' ' ); $( '.top-links > ul' ).addClass( 'clearfix' ); if( $body.hasClass('device-lg') || $body.hasClass('device-md') ) { $('#primary-menu.sub-title > ul > li').hover(function() { $(this).prev().css({ backgroundImage : 'none' }); }, function() { $(this).prev().css({ backgroundImage : 'url("/smm/images/icons/menu-divider.png")' }); }); $('#primary-menu.sub-title').children('ul').children('.current').prev().css({ backgroundImage : 'none' }); } if( SMM.isMobile.Android() ) { $( '#primary-menu ul li.sub-menu' ).children('a').on('touchstart', function(e){ if( !$(this).parent('li.sub-menu').hasClass('sfHover') ) { e.preventDefault(); } }); } if( SMM.isMobile.Windows() ) { $('#primary-menu > ul, #primary-menu > div > ul,.top-links > ul').superfish('destroy').addClass('windows-mobile-menu'); $( '#primary-menu ul li:has(ul)' ).append(''); $( '#primary-menu ul li.sub-menu' ).children('a.wn-submenu-trigger').click( function(e){ $(this).parent().toggleClass('open'); $(this).parent().find('> ul, > .mega-menu-content').stop(true,true).toggle(); return false; }); } }, fullWidthMenu: function(){ if( $body.hasClass('stretched') ) { if( $header.find('.container-fullwidth').length > 0 ) { $('.mega-menu .mega-menu-content').css({ 'width': $wrapper.width() - 120 }); } if( $header.hasClass('full-header') ) { $('.mega-menu .mega-menu-content').css({ 'width': $wrapper.width() - 60 }); } } else { if( $header.find('.container-fullwidth').length > 0 ) { $('.mega-menu .mega-menu-content').css({ 'width': $wrapper.width() - 120 }); } if( $header.hasClass('full-header') ) { $('.mega-menu .mega-menu-content').css({ 'width': $wrapper.width() - 80 }); } } }, overlayMenu: function(){ if( $body.hasClass('overlay-menu') ) { var overlayMenuItem = $('#primary-menu').children('ul').children('li'), overlayMenuItemHeight = overlayMenuItem.outerHeight(), overlayMenuItemTHeight = overlayMenuItem.length * overlayMenuItemHeight, firstItemOffset = ( $window.height() - overlayMenuItemTHeight ) / 2; $('#primary-menu').children('ul').children('li:first-child').css({ 'margin-top': firstItemOffset+'px' }); } }, stickyMenu: function( headerOffset ){ if ($window.scrollTop() > headerOffset) { if( $body.hasClass('device-lg') || $body.hasClass('device-md') ) { $('body:not(.side-header) #header:not(.no-sticky)').addClass('sticky-header'); $('#page-menu:not(.dots-menu,.no-sticky)').addClass('sticky-page-menu'); if( !$headerWrap.hasClass('force-not-dark') ) { $headerWrap.removeClass('not-dark'); } SMM.header.stickyMenuClass(); } else if( $body.hasClass('device-xs') || $body.hasClass('device-xxs') || $body.hasClass('device-sm') ) { if( $body.hasClass('sticky-responsive-menu') ) { $('#header:not(.no-sticky)').addClass('responsive-sticky-header'); SMM.header.stickyMenuClass(); } } } else { SMM.header.removeStickyness(); } }, removeStickyness: function(){ if( $header.hasClass('sticky-header') ){ $('body:not(.side-header) #header:not(.no-sticky)').removeClass('sticky-header'); $header.removeClass().addClass(oldHeaderClasses); $headerWrap.removeClass().addClass(oldHeaderWrapClasses); if( !$headerWrap.hasClass('force-not-dark') ) { $headerWrap.removeClass('not-dark'); } } if( $pagemenu.hasClass('sticky-page-menu') ){ $('#page-menu:not(.dots-menu,.no-sticky)').removeClass('sticky-page-menu'); } if( $header.hasClass('responsive-sticky-header') ){ $('body.sticky-responsive-menu #header').removeClass('responsive-sticky-header'); } if( ( $body.hasClass('device-xs') || $body.hasClass('device-xxs') || $body.hasClass('device-sm') ) && ( typeof responsiveMenuClasses === 'undefined' ) ) { $header.removeClass().addClass(oldHeaderClasses); $headerWrap.removeClass().addClass(oldHeaderWrapClasses); if( !$headerWrap.hasClass('force-not-dark') ) { $headerWrap.removeClass('not-dark'); } } }, onePageScroll: function(){ if( $onePageMenuEl.length > 0 ){ var onePageSpeed = $onePageMenuEl.attr('data-speed'), onePageOffset = $onePageMenuEl.attr('data-offset'), onePageEasing = $onePageMenuEl.attr('data-easing'); if( !onePageSpeed ) { onePageSpeed = 1000; } if( !onePageEasing ) { onePageEasing = 'easeOutQuad'; } $onePageMenuEl.find('a[data-href]').click(function(){ var element = $(this), divScrollToAnchor = element.attr('data-href'), divScrollSpeed = element.attr('data-speed'), divScrollOffset = element.attr('data-offset'), divScrollEasing = element.attr('data-easing'); if( $( divScrollToAnchor ).length > 0 ) { if( !onePageOffset ) { var onePageOffsetG = SMM.initialize.topScrollOffset(); } else { var onePageOffsetG = onePageOffset; } if( !divScrollSpeed ) { divScrollSpeed = onePageSpeed; } if( !divScrollOffset ) { divScrollOffset = onePageOffsetG; } if( !divScrollEasing ) { divScrollEasing = onePageEasing; } if( $onePageMenuEl.hasClass('no-offset') ) { divScrollOffset = 0; } onePageGlobalOffset = Number(divScrollOffset); $onePageMenuEl.find('li').removeClass('current'); $onePageMenuEl.find('a[data-href="' + divScrollToAnchor + '"]').parent('li').addClass('current'); $('#primary-menu > ul, #primary-menu > .container > ul').toggleClass('show', function() { $('html,body').stop(true).animate({ 'scrollTop': $( divScrollToAnchor ).offset().top - Number(divScrollOffset) }, Number(divScrollSpeed), divScrollEasing); }, false); onePageGlobalOffset = Number(divScrollOffset); } return false; }); } }, onepageScroller: function(){ $onePageMenuEl.find('li').removeClass('current'); $onePageMenuEl.find('a[data-href="#' + SMM.header.onePageCurrentSection() + '"]').parent('li').addClass('current'); }, onePageCurrentSection: function(){ var currentOnePageSection = 'home'; $pageSectionEl.each(function(index) { var h = $(this).offset().top; var y = $window.scrollTop(); var offsetScroll = 100 + onePageGlobalOffset; if( y + offsetScroll >= h && y < h + $(this).height() && $(this).attr('id') != currentOnePageSection ) { currentOnePageSection = $(this).attr('id'); } }); return currentOnePageSection; }, stickyMenuClass: function(){ if( stickyMenuClasses ) { var newClassesArray = stickyMenuClasses.split(/ +/); } else { var newClassesArray = ''; } var noOfNewClasses = newClassesArray.length; if( noOfNewClasses > 0 ) { var i = 0; for( i=0; i 0 ) { var i = 0; for( i=0; i 0 ) { var pageTitleHeight = $pageTitle.outerHeight(); sliderParallaxOffsetTop = pageTitleHeight + headerHeight; } else { sliderParallaxOffsetTop = headerHeight; } if( $slider.next('#header').length > 0 ) { sliderParallaxOffsetTop = 0; } return sliderParallaxOffsetTop; }, sliderParallax: function(){ if( $sliderParallaxEl.length > 0 ) { if( ( $body.hasClass('device-lg') || $body.hasClass('device-md') ) && !SMM.isMobile.any() ) { var parallaxOffsetTop = SMM.slider.sliderParallaxOffset(), parallaxElHeight = $sliderParallaxEl.outerHeight(); if( ( parallaxElHeight + parallaxOffsetTop + 50 ) > $window.scrollTop() ){ $sliderParallaxEl.find('.slider-inner').css({ 'display': 'block', 'visibility': 'visible' }); if ($window.scrollTop() > parallaxOffsetTop) { var tranformAmount = (($window.scrollTop()-parallaxOffsetTop) / 1.5 ).toFixed(2); var tranformAmount2 = (($window.scrollTop()-parallaxOffsetTop) / 7 ).toFixed(2); $sliderParallaxEl.stop(true,true).transition({ y: tranformAmount },0); $('.slider-parallax .slider-caption,.ei-title').stop(true,true).transition({ y: -tranformAmount2 },0); } else { $('.slider-parallax,.slider-parallax .slider-caption,.ei-title').transition({ y: 0 },0); } } else { $sliderParallaxEl.find('.slider-inner').css({ 'display': 'none', 'visibility': 'hidden' }); } if (requesting) { requestAnimationFrame(function(){ SMM.slider.sliderParallax(); SMM.slider.sliderElementsFade(); }); } } else { $('.slider-parallax,.slider-parallax .slider-caption,.ei-title').transition({ y: 0 },0); } } }, sliderElementsFade: function(){ if( $sliderParallaxEl.length > 0 ) { if( ( $body.hasClass('device-lg') || $body.hasClass('device-md') ) && !SMM.isMobile.any() ) { var parallaxOffsetTop = SMM.slider.sliderParallaxOffset(); if( $slider.length > 0 ) { if( $header.hasClass('transparent-header') || $('body').hasClass('side-header') ) { var tHeaderOffset = 100; } else { var tHeaderOffset = 0; } $sliderParallaxEl.find('#slider-arrow-left,#slider-arrow-right,.vertical-middle:not(.no-fade),.slider-caption,.ei-title,.camera_prev,.camera_next').css({'opacity':( ( 100 + ( $slider.offset().top + parallaxOffsetTop + tHeaderOffset ) - $window.scrollTop() ) ) /90}); } } else { $sliderParallaxEl.find('#slider-arrow-left,#slider-arrow-right,.vertical-middle:not(.no-fade),.slider-caption,.ei-title,.camera_prev,.camera_next').css({'opacity': 1}); } } }, captionPosition: function(){ $slider.find('.slider-caption').each(function(){ var scapHeight = $(this).outerHeight(); var scapSliderHeight = $slider.outerHeight(); if( $(this).parents('#slider').prev('#header').hasClass('transparent-header') && ( $body.hasClass('device-lg') || $body.hasClass('device-md') ) ) { if( $(this).parents('#slider').prev('#header').hasClass('floating-header') ) { $(this).css({ top: ( scapSliderHeight + 160 - scapHeight ) / 2 + 'px' }); } else { $(this).css({ top: ( scapSliderHeight + 100 - scapHeight ) / 2 + 'px' }); } } else { $(this).css({ top: ( scapSliderHeight - scapHeight ) / 2 + 'px' }); } }); }, swiperSliderMenu: function(){ if( $body.hasClass('device-lg') || $body.hasClass('device-md') ) { var activeSlide = $slider.find('.swiper-slide.swiper-slide-visible'); SMM.slider.headerSchemeChanger(activeSlide); } }, revolutionSliderMenu: function(){ if( $body.hasClass('device-lg') || $body.hasClass('device-md') ) { var activeSlide = $slider.find('.current-sr-slide-visible'); SMM.slider.headerSchemeChanger(activeSlide); } }, headerSchemeChanger: function( activeSlide ){ if( activeSlide.length > 0 ) { if( activeSlide.hasClass('dark') ){ $('#header.transparent-header:not(.sticky-header,.semi-transparent,.floating-header)').addClass('dark'); $('#header.transparent-header.sticky-header,#header.transparent-header.semi-transparent.sticky-header,#header.transparent-header.floating-header.sticky-header').removeClass('dark'); $headerWrap.removeClass('not-dark'); } else { if( $body.hasClass('dark') ) { activeSlide.addClass('not-dark'); $('#header.transparent-header:not(.semi-transparent,.floating-header)').removeClass('dark'); $('#header.transparent-header:not(.sticky-header,.semi-transparent,.floating-header)').find('#header-wrap').addClass('not-dark'); } else { $('#header.transparent-header:not(.semi-transparent,.floating-header)').removeClass('dark'); $headerWrap.removeClass('not-dark'); } } SMM.header.darkLogo(); } }, owlCaptionInit: function(){ if( $owlCarouselEl.length > 0 ){ $owlCarouselEl.each( function(){ var element = $(this); if( element.find('.owl-dot').length > 0 ) { element.find('.owl-controls').addClass('with-carousel-dots'); } }); } } }; SMM.isMobile = { Android: function() { return navigator.userAgent.match(/Android/i); }, BlackBerry: function() { return navigator.userAgent.match(/BlackBerry/i); }, iOS: function() { return navigator.userAgent.match(/iPhone|iPad|iPod/i); }, Opera: function() { return navigator.userAgent.match(/Opera Mini/i); }, Windows: function() { return navigator.userAgent.match(/IEMobile/i); }, any: function() { return (SMM.isMobile.Android() || SMM.isMobile.BlackBerry() || SMM.isMobile.iOS() || SMM.isMobile.Opera() || SMM.isMobile.Windows()); } }; SMM.widget = { init: function(){ SMM.widget.animations(); SMM.widget.linkScroll(); SMM.widget.extras(); SMM.widget.counter(); SMM.widget.toggles(); }, parallax: function(){ if( !SMM.isMobile.any() ){ $.stellar({ horizontalScrolling: false, verticalOffset: 150 }); } else { $parallaxEl.addClass('mobile-parallax'); $parallaxPageTitleEl.addClass('mobile-parallax'); } }, animations: function(){ var $dataAnimateEl = $('[data-animate]'); if( $dataAnimateEl.length > 0 ){ if( $body.hasClass('device-lg') || $body.hasClass('device-md') || $body.hasClass('device-sm') ){ $dataAnimateEl.each(function(){ var element = $(this), animationDelay = element.attr('data-delay'), animationDelayTime = 0; if( animationDelay ) { animationDelayTime = Number( animationDelay ) + 500; } else { animationDelayTime = 500; } if( !element.hasClass('animated') ) { element.addClass('not-animated'); var elementAnimation = element.attr('data-animate'); element.appear(function () { setTimeout(function() { element.removeClass('not-animated').addClass( elementAnimation + ' animated'); }, animationDelayTime); },{accX: 0, accY: -120},'easeInCubic'); } }); } } }, notifications: function( element ){ toastr.clear(); var notifyElement = $(element), notifyPosition = notifyElement.attr('data-notify-position'), notifyType = notifyElement.attr('data-notify-type'), notifyMsg = notifyElement.attr('data-notify-msg'), notifyCloseButton = notifyElement.attr('data-notify-close'); if( !notifyPosition ) { notifyPosition = 'toast-bottom-full-width'; } else { notifyPosition = 'toast-' + notifyElement.attr('data-notify-position'); } if( !notifyMsg ) { notifyMsg = 'Please set a message!'; } if( notifyCloseButton == 'true' ) { notifyCloseButton = true; } else { notifyCloseButton = false; } toastr.options.closeButton = notifyCloseButton; toastr.options.closeHtml = ''; if( notifyType == 'warning' ) { toastr.warning(notifyMsg); } else if( notifyType == 'error' ) { toastr.error(notifyMsg); } else if( notifyType == 'success' ) { toastr.success(notifyMsg); } else { toastr.info(notifyMsg); } return false; }, linkScroll: function(){ $("a[data-scrollto]").click(function(){ var element = $(this), divScrollToAnchor = element.attr('data-scrollto'), divScrollSpeed = element.attr('data-speed'), divScrollOffset = element.attr('data-offset'), divScrollEasing = element.attr('data-easing'); if( !divScrollSpeed ) { divScrollSpeed = 750; } if( !divScrollOffset ) { divScrollOffset = SMM.initialize.topScrollOffset(); } if( !divScrollEasing ) { divScrollEasing = 'easeOutQuad'; } $('html,body').stop(true).animate({ 'scrollTop': $( divScrollToAnchor ).offset().top - Number(divScrollOffset) }, Number(divScrollSpeed), divScrollEasing); return false; }); }, accordions: function(){ var $accordionEl = $('.accordion'); if( $accordionEl.length > 0 ){ $accordionEl.each( function(){ var element = $(this), elementState = element.attr('data-state'), accordionActive = element.attr('data-active'); if( !accordionActive ) { accordionActive = 0; } else { accordionActive = accordionActive - 1; } element.find('.acc_content').hide(); if( elementState != 'closed' ) { element.find('.acctitle:eq('+ Number(accordionActive) +')').addClass('acctitlec').next().show(); } element.find('.acctitle').click(function(){ if( $(this).next().is(':hidden') ) { element.find('.acctitle').removeClass('acctitlec').next().slideUp("normal"); $(this).toggleClass('acctitlec').next().slideDown("normal"); } return false; }); }); } }, toggles: function(){ var $toggle = $('.toggle'); if( $toggle.length > 0 ) { $toggle.each( function(){ var element = $(this), elementState = element.attr('data-state'); if( elementState != 'open' ){ element.find('.togglec').hide(); } else { element.find('.togglet').addClass("toggleta"); } element.find('.togglet').click(function(){ $(this).toggleClass('toggleta').next('.togglec').slideToggle(300); return true; }); }); } }, counter: function(){ var $counterEl = $('.counter:not(.counter-instant)'); if( $counterEl.length > 0 ){ $counterEl.each(function(){ var element = $(this); var counterElementComma = $(this).find('span').attr('data-comma'); if( !counterElementComma ) { counterElementComma = false; } else { counterElementComma = true; } if( $body.hasClass('device-lg') || $body.hasClass('device-md') ){ element.appear( function(){ SMM.widget.runCounter( element, counterElementComma ); },{accX: 0, accY: -120},'easeInCubic'); } else { SMM.widget.runCounter( element, counterElementComma ); } }); } }, runCounter: function( counterElement,counterElementComma ){ if( counterElementComma == true ) { counterElement.find('span').countTo({ formatter: function (value, options) { value = value.toFixed(options.decimals); value = value.replace(/\B(?=(\d{3})+(?!\d))/g, ','); return value; } }); } else { counterElement.find('span').countTo(); } }, extras: function(){ $('#primary-menu-trigger,#overlay-menu-close').click(function() { $( '#primary-menu > ul, #primary-menu > div > ul' ).toggleClass("show"); return false; }); $('#page-submenu-trigger').click(function() { $body.toggleClass('top-search-open', false); $pagemenu.toggleClass("pagemenu-active"); return false; }); $pagemenu.find('nav').click(function(e){ $body.toggleClass('top-search-open', false); $topCart.toggleClass('top-cart-open', false); }); if( SMM.isMobile.any() ){ $body.addClass('device-touch'); } } } SMM.documentOnResize = { init: function(){ var t = setTimeout( function(){ SMM.header.overlayMenu(); SMM.initialize.fullScreen(); SMM.initialize.verticalMiddle(); SMM.initialize.maxHeight(); }, 500 ); } }; SMM.documentOnReady = { init: function(){ SMM.initialize.init(); SMM.header.init(); SMM.documentOnReady.windowscroll(); SMM.widget.init(); }, windowscroll: function(){ var headerOffset = 0; var headerWrapOffset = 0; if( $header.length > 0 ) { headerOffset = $header.offset().top; } if( $header.length > 0 ) { headerWrapOffset = $headerWrap.offset().top; } var headerDefinedOffset = $header.attr('data-sticky-offset'); if( typeof headerDefinedOffset !== 'undefined' ) { if( headerDefinedOffset == 'full' ) { headerWrapOffset = $window.height(); var headerOffsetNegative = $header.attr('data-sticky-offset-negative'); if( typeof headerOffsetNegative !== 'undefined' ) { headerWrapOffset = headerWrapOffset - headerOffsetNegative - 1; } } else { headerWrapOffset = Number(headerDefinedOffset); } } $window.on( 'scroll', function(){ SMM.initialize.goToTopScroll(); $('body.open-header.close-header-on-scroll').removeClass("side-header-open"); SMM.header.stickyMenu( headerWrapOffset ); }); if( $onePageMenuEl.length > 0 ){ $window.scrolled(function() { SMM.header.onepageScroller(); }); } } }; SMM.documentOnLoad = { init: function(){ SMM.initialize.maxHeight(); SMM.initialize.verticalMiddle(); SMM.widget.parallax(); SMM.header.responsiveMenuClass(); } }; var $window = $(window), $body = $('body'), $wrapper = $('#wrapper'), $header = $('#header'), $headerWrap = $('#header-wrap'), $footer = $('#footer'), oldHeaderClasses = $header.attr('class'), oldHeaderWrapClasses = $headerWrap.attr('class'), stickyMenuClasses = $header.attr('data-sticky-class'), responsiveMenuClasses = $header.attr('data-responsive-class'), defaultLogo = $('#logo').find('.standard-logo'), defaultLogoWidth = defaultLogo.find('img').outerWidth(), retinaLogo = $('#logo').find('.retina-logo'), defaultLogoImg = defaultLogo.find('img').attr('src'), $pagemenu = $('#page-menu'), $onePageMenuEl = $('.one-page-menu'), onePageGlobalOffset = 0, $slider = $('#slider'), $sliderParallaxEl = $('.slider-parallax'), $pageTitle = $('#page-title'), $verticalMiddleEl = $('.vertical-middle'), $siStickyEl = $('.si-sticky'), $goToTopEl = $('#gotoTop'), $fullScreenEl = $('.full-screen'), $commonHeightEl = $('.common-height'), $pageSectionEl = $('.page-section'), $parallaxEl = $('.parallax'), $parallaxPageTitleEl = $('.page-title-parallax'); $(document).ready( SMM.documentOnReady.init ); $window.load( SMM.documentOnLoad.init ); $window.on( 'resize', SMM.documentOnResize.init ); })(jQuery);