(function($) { 'use strict'; var 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 (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows()); } }; $(document).ready(function(e) { // global var Modernizr = window.Modernizr; // support for CSS Transitions & transforms var support = Modernizr.csstransitions && Modernizr.csstransforms; var support3d = Modernizr.csstransforms3d; // transition end event name and transform name // transition end event name var transEndEventNames = { 'WebkitTransition' : 'webkitTransitionEnd', 'MozTransition' : 'transitionend', 'OTransition' : 'oTransitionEnd', 'msTransition' : 'MSTransitionEnd', 'transition' : 'transitionend' }, transformNames = { 'WebkitTransform' : '-webkit-transform', 'MozTransform' : '-moz-transform', 'OTransform' : '-o-transform', 'msTransform' : '-ms-transform', 'transform' : 'transform' }; if( support ) { this.transEndEventName = transEndEventNames[ Modernizr.prefixed( 'transition' ) ] + '.PMMain'; this.transformName = transformNames[ Modernizr.prefixed( 'transform' ) ]; //console.log('this.transformName = ' + this.transformName); } runParallax(); /* ========================================================================== PrettyPhoto activation ========================================================================== */ if( $("a[rel^='prettyPhoto']").length > 0 ){ $("a[rel^='prettyPhoto']").prettyPhoto(); } /* ========================================================================== Testimonials widget ========================================================================== */ if( $('.pm-testimonials-widget-quotes').length > 0 ){ $('.pm-testimonials-widget-quotes').PMTestimonials({ speed : 450, slideShow : true, slideShowSpeed : 6000, controlNav : false, arrows : true }); } /* ========================================================================== Homepage slider ========================================================================== */ if($('#pm-slider').length > 0){ $('#pm-slider').PMSlider({ speed : 520, easing : 'ease', loop : true, controlNav : true, //false = no bullets / true = bullets / 'thumbnails' activates thumbs controlNavThumbs : true, animation : 'fade', fullScreen : false, slideshow : true, slideshowSpeed : 7000, pauseOnHover : true, arrows : true, fixedHeight : true, fixedHeightValue : 800, touch : true, progressBar : false }); } /* ========================================================================== Detect page scrolls on buttons ========================================================================== */ if( $('.pm-page-scroll').length > 0 ){ $('.pm-page-scroll').click(function(e){ e.preventDefault(); var $this = $(e.target); var sectionID = $this.attr('href'); $('html, body').animate({ scrollTop: $(sectionID).offset().top - 80 }, 1000); }); } /* ========================================================================== Mobile Menu trigger ========================================================================== */ var menuOpen = false, $icon = null; $('#pm-mobile-menu-trigger').click(function(e) { $icon = $(this).find('i').removeClass('fa fa-bars').addClass('fa fa-close'); if( !menuOpen ){ menuOpen = true; $('body').removeClass('menu-collapsed').addClass('menu-opened'); } e.preventDefault(); }); $('#pm-mobile-menu-overlay').click(function(e) { if( menuOpen ){ menuOpen = false; $('body').removeClass('menu-opened').addClass('menu-collapsed'); $icon.removeClass('fa fa-close').addClass('fa fa-bars'); } e.preventDefault(); }); $('.pm-mobile-global-menu').css({ 'height' : $('#pm_layout_wrapper').height() }); /* ========================================================================== Datepicker ========================================================================== */ if($("#datepicker").length > 0){ $("#datepicker").datepicker(); } /*$( "#datepicker" ).datepicker({ dateFormat: "yy-mm-dd" });*/ /* ========================================================================== Isotope menu expander (mobile only) ========================================================================== */ if($('.pm-isotope-filter-system-expand').length > 0){ var totalHeight = 0; $('.pm-isotope-filter-system-expand').click(function(e) { var $this = $(this), $parentUL = $this.parent('ul'); //get the height of the total li elements $parentUL.children('li').each(function(index, element) { totalHeight += $(this).height(); }); if( !$parentUL.hasClass('expanded') ){ //expand the menu $parentUL.addClass('expanded'); $parentUL.css({ "height" : totalHeight }); $this.find('i').removeClass('fa-angle-down').addClass('fa-close'); } else { //close the menu $parentUL.removeClass('expanded'); $parentUL.css({ "height" : 80 }); $this.find('i').removeClass('fa-close').addClass('fa-angle-down'); } //reset totalheight totalHeight = 0; }); } /* ========================================================================== Language Selector drop down ========================================================================== */ if($('.pm-dropdown.pm-language-selector-menu').length > 0){ $('.pm-dropdown.pm-language-selector-menu').on('mouseover', methods.dropDownMenu).on('mouseleave', methods.dropDownMenu); } /* ========================================================================== Search activator ========================================================================== */ var searchActive = false; $('#pm-search-btn').click(function(e) { if(!searchActive) { searchActive = true; $('#pm-search-container').css({ 'top' : '0px' }); } e.preventDefault(); }); $('#pm-search-collapse').click(function(e) { if(searchActive) { searchActive = false; $('#pm-search-container').css({ 'top' : '-160px' }); } e.preventDefault(); }); /* ========================================================================== Main menu interaction ========================================================================== */ if( $('.pm-nav').length > 0 ){ //superfish activation $('.pm-nav').superfish({ delay: 0, animation: {opacity:'show',height:'show'}, speed: 300, dropShadows: false, }); }; /* ========================================================================== Checkout expandable forms ========================================================================== */ if ($('#pm-returning-customer-form-trigger').length > 0){ var $returningFormExpanded = false; $('#pm-returning-customer-form-trigger').on('click', function(e) { e.preventDefault(); if( !$returningFormExpanded ) { $returningFormExpanded = true; $('#pm-returning-customer-form').fadeIn(700); } else { $returningFormExpanded = false; $('#pm-returning-customer-form').fadeOut(300); } }); } if ($('#pm-promotional-code-form-trigger').length > 0){ var $promotionFormExpanded = false; $('#pm-promotional-code-form-trigger').on('click', function(e) { e.preventDefault(); if( !$promotionFormExpanded ) { $promotionFormExpanded = true; $('#pm-promotional-code-form').fadeIn(700); } else { $promotionFormExpanded = false; $('#pm-promotional-code-form').fadeOut(300); } }); } /* ========================================================================== isTouchDevice - return true if it is a touch device ========================================================================== */ function isTouchDevice() { return !!('ontouchstart' in window) || ( !! ('onmsgesturechange' in window) && !! window.navigator.maxTouchPoints); } //dont load parallax on mobile devices function runParallax() { //enforce check to make sure we are not on a mobile device if( !isMobile.any()){ //stellar parallax $.stellar({ horizontalOffset: 0, verticalOffset: 0, horizontalScrolling: false, }); $('.pm-parallax-panel').stellar(); } }//end of function /* ========================================================================== Checkout form - Account password activation ========================================================================== */ if( $('#pm-create-account-checkbox').length > 0){ $('#pm-create-account-checkbox').change(function(e) { if( $('#pm-create-account-checkbox').is(':checked') ){ $('#pm-checkout-password-field').fadeIn(500); } else { $('#pm-checkout-password-field').fadeOut(500); } }); } /* ========================================================================== Accordion and Tabs ========================================================================== */ $('#accordion').collapse({ toggle: false }) $('#accordion2').collapse({ toggle: false }) if($('.panel-title').length > 0){ var $prevItem = null; var $currItem = null; $('.pm-accordion-link').click(function(e) { var $this = $(this); if($prevItem == null){ $prevItem = $this; $currItem = $this; } else { $prevItem = $currItem; $currItem = $this; } if( $currItem.attr('href') != $prevItem.attr('href') ) { //toggle previous item if( $prevItem.parent().find('i').hasClass('fa fa-minus') ){ $prevItem.parent().find('i').removeClass('fa fa-minus').addClass('fa fa-plus'); } $currItem.parent().find('i').removeClass('fa fa-plus').addClass('fa fa-minus'); } else if($currItem.attr('href') == $prevItem.attr('href')) { //else toggle same item if( $currItem.parent().find('i').hasClass('fa fa-minus') ){ $currItem.parent().find('i').removeClass('fa fa-minus').addClass('fa fa-plus'); } else { $currItem.parent().find('i').removeClass('fa fa-plus').addClass('fa fa-minus'); } } else { //console.log('toggle current item'); $currItem.parent().find('i').removeClass('fa fa-plus').addClass('fa fa-minus'); } }); } //tab menu if($('.nav-tabs').length > 0){ //actiavte first tab of tab menu $('.nav-tabs a:first').tab('show'); $('.nav.nav-tabs li:first-child').addClass('active'); } /* ========================================================================== When the window is scrolled, do ========================================================================== */ $(window).scroll(function () { //toggle back to top btn if ($(this).scrollTop() > 50) { if( support ) { $('#back-top').css({ right : 0 }); } else { $('#back-top').animate({ right : 0 }); } } else { if( support ) { $('#back-top').css({ right : -70 }); } else { $('#back-top').animate({ right : -70 }); } } //toggle fixed nav if( $(window).width() > 991 ){ if ($(this).scrollTop() > 47) { $('header').addClass('fixed'); } else { $('header').removeClass('fixed'); } } }); /* ========================================================================== Detect page scrolls on buttons ========================================================================== */ if( $('.pm-page-scroll').length > 0 ){ $('.pm-page-scroll').click(function(e){ e.preventDefault(); var $this = $(e.target); var sectionID = $this.attr('href'); $('html, body').animate({ scrollTop: $(sectionID).offset().top - 80 }, 1000); }); } /* ========================================================================== Mobile menu button toggle ========================================================================== */ if( $('#pm-mobile-menu-btn').length > 0 ){ var menuCollapsed = false; $('#pm-mobile-menu-btn').on('click', function(e) { var $icon = $(this).find('i'); if( !menuCollapsed ){ menuCollapsed = true; $icon.removeClass('fa-bars').addClass('fa-minus'); } else { menuCollapsed = false; $icon.removeClass('fa-minus').addClass('fa-bars'); } }); } /* ========================================================================== Back to top button ========================================================================== */ $('#back-top').click(function () { $('body,html').animate({ scrollTop: 0 }, 800); return false; }); /* ========================================================================== Accordion menu ========================================================================== */ if($('#accordionMenu').length > 0){ $('#accordionMenu').collapse({ toggle: false, parent: false, }); } /* ========================================================================== Tab menu ========================================================================== */ if($('.pm-nav-tabs').length > 0){ //actiavte first tab of tab menu $('.pm-nav-tabs a:first').tab('show'); $('.pm-nav-tabs li:first-child').addClass('active'); } /* ========================================================================== Parallax check ========================================================================== */ var $window = $(window); var $windowsize = 0; function checkWidth() { $windowsize = $window.width(); if ($windowsize < 980) { //if the window is less than 980px, destroy parallax... $.stellar('destroy'); } else { runParallax(); } } // Execute on load checkWidth(); // Bind event listener $(window).resize(checkWidth); /* ========================================================================== Window resize call ========================================================================== */ $(window).resize(function(e) { methods.windowResize(); }); if( $('#pm-search-btn').length > 0 ){ var $searchBtn = $('#pm-search-btn'); $searchBtn.click(function(e) { //CALL METHODS FUNCTION methods.displaySearch(); $('#pm-search-exit').click(function(e) { methods.hideSearch(); }); e.preventDefault(); }); } /* ========================================================================== Tooltips ========================================================================== */ if( $('.pm_tip').length > 0 ){ $('.pm_tip').PMToolTip(); } if( $('.pm_tip_static_bottom').length > 0 ){ $('.pm_tip_static_bottom').PMToolTip({ floatType : 'staticBottom' }); } if( $('.pm_tip_static_top').length > 0 ){ $('.pm_tip_static_top').PMToolTip({ floatType : 'staticTop' }); } /* ========================================================================== TinyNav ========================================================================== */ $("#pm-footer-nav").tinyNav(); $("#pm-members-nav").tinyNav(); }); //end of document ready /* ========================================================================== Options ========================================================================== */ var options = { dropDownSpeed : 100, slideUpSpeed : 200, slideDownTabSpeed: 50, changeTabSpeed: 200, } /* ========================================================================== Methods ========================================================================== */ var methods = { displaySearch : function(e) { var searchContainer = $("#pm-search-container"); searchContainer.css({ 'height' : $(window).height(), 'opacity' : 1 }); }, hideSearch : function(e) { var searchContainer = $("#pm-search-container"); searchContainer.css({ 'opacity' : 0, 'height' : 0 }); }, dropDownMenu : function(e){ var body = $(this).find('> :last-child'); var head = $(this).find('> :first-child'); if (e.type == 'mouseover'){ body.fadeIn(options.dropDownSpeed); } else { body.fadeOut(options.dropDownSpeed); } }, windowResize : function() { //resize calls }, }; })(jQuery);