/* Template: Aria - Business HTML Landing Page Template Author: Inovatik Created: Jul 2019 Description: Custom JS file */ (function($) { "use strict"; /* Preloader */ $(window).on('load', function() { var preloaderFadeOutTime = 500; function hidePreloader() { var preloader = $('.spinner-wrapper'); setTimeout(function() { preloader.fadeOut(preloaderFadeOutTime); }, 500); } hidePreloader(); }); /* Navbar Scripts */ // jQuery to collapse the navbar on scroll $(window).on('scroll load', function() { if ($(".navbar").offset().top > 20) { $(".fixed-top").addClass("top-nav-collapse"); } else { $(".fixed-top").removeClass("top-nav-collapse"); } }); // jQuery for page scrolling feature - requires jQuery Easing plugin $(function() { $(document).on('click', 'a.page-scroll', function(event) { var $anchor = $(this); $('html, body').stop().animate({ scrollTop: $($anchor.attr('href')).offset().top }, 600, 'easeInOutExpo'); event.preventDefault(); }); }); // closes the responsive menu on menu item click $(".navbar-nav li a").on("click", function(event) { if (!$(this).parent().hasClass('dropdown')) $(".navbar-collapse").collapse('hide'); }); /* Rotating Text - Morphtext */ $("#js-rotating").Morphext({ // The [in] animation type. Refer to Animate.css for a list of available animations. animation: "fadeIn", // An array of phrases to rotate are created based on this separator. Change it if you wish to separate the phrases differently (e.g. So Simple | Very Doge | Much Wow | Such Cool). separator: ",", // The delay between the changing of each phrase in milliseconds. speed: 2000, complete: function () { // Called after the entrance animation is executed. } }); /* Card Slider - Swiper */ var cardSlider = new Swiper('.card-slider', { autoplay: { delay: 4000, disableOnInteraction: false }, loop: true, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev' }, slidesPerView: 3, spaceBetween: 20, breakpoints: { // when window is <= 992px 992: { slidesPerView: 2 }, // when window is <= 768px 768: { slidesPerView: 1 } } }); /* Lightbox - Magnific Popup */ $('.popup-with-move-anim').magnificPopup({ type: 'inline', fixedContentPos: false, /* keep it false to avoid html tag shift with margin-right: 17px */ fixedBgPos: true, overflowY: 'auto', closeBtnInside: true, preloader: false, midClick: true, removalDelay: 300, mainClass: 'my-mfp-slide-bottom' }); /* Filter - Isotope */ var $grid = $('.grid').isotope({ // options itemSelector: '.element-item', layoutMode: 'fitRows' }); // filter items on button click $('.filters-button-group').on( 'click', 'a', function() { var filterValue = $(this).attr('data-filter'); $grid.isotope({ filter: filterValue }); }); // change is-checked class on buttons $('.button-group').each( function( i, buttonGroup ) { var $buttonGroup = $( buttonGroup ); $buttonGroup.on( 'click', 'a', function() { $buttonGroup.find('.is-checked').removeClass('is-checked'); $( this ).addClass('is-checked'); }); }); /* Counter - CountTo */ var a = 0; $(window).scroll(function() { if ($('#counter').length) { // checking if CountTo section exists in the page, if not it will not run the script and avoid errors var oTop = $('#counter').offset().top - window.innerHeight; if (a == 0 && $(window).scrollTop() > oTop) { $('.counter-value').each(function() { var $this = $(this), countTo = $this.attr('data-count'); $({ countNum: $this.text() }).animate({ countNum: countTo }, { duration: 2000, easing: 'swing', step: function() { $this.text(Math.floor(this.countNum)); }, complete: function() { $this.text(this.countNum); //alert('finished'); } }); }); a = 1; } } }); /* Move Form Fields Label When User Types */ // for input and textarea fields $("input, textarea").keyup(function(){ if ($(this).val() != '') { $(this).addClass('notEmpty'); } else { $(this).removeClass('notEmpty'); } }); /* Call Me Form */ $("#callMeForm").validator().on("submit", function(event) { if (event.isDefaultPrevented()) { // handle the invalid form... lformError(); lsubmitMSG(false, "Please fill all fields!"); } else { // everything looks good! event.preventDefault(); lsubmitForm(); } }); function lsubmitForm() { // initiate variables with form content var name = $("#lname").val(); var phone = $("#lphone").val(); var email = $("#lemail").val(); var select = $("#lselect").val(); var terms = $("#lterms").val(); $.ajax({ type: "POST", url: "php/callmeform-process.php", data: "name=" + name + "&phone=" + phone + "&email=" + email + "&select=" + select + "&terms=" + terms, success: function(text) { if (text == "success") { lformSuccess(); } else { lformError(); lsubmitMSG(false, text); } } }); } function lformSuccess() { $("#callMeForm")[0].reset(); lsubmitMSG(true, "Request Submitted!"); $("input").removeClass('notEmpty'); // resets the field label after submission } function lformError() { $("#callMeForm").removeClass().addClass('shake animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function() { $(this).removeClass(); }); } function lsubmitMSG(valid, msg) { if (valid) { var msgClasses = "h3 text-center tada animated"; } else { var msgClasses = "h3 text-center"; } $("#lmsgSubmit").removeClass().addClass(msgClasses).text(msg); } /* Contact Form */ $("#contactForm").validator().on("submit", function(event) { if (event.isDefaultPrevented()) { // handle the invalid form... cformError(); csubmitMSG(false, "Please fill all fields!"); } else { // everything looks good! event.preventDefault(); csubmitForm(); } }); function csubmitForm() { // initiate variables with form content var name = $("#cname").val(); var email = $("#cemail").val(); var message = $("#cmessage").val(); var terms = $("#cterms").val(); $.ajax({ type: "POST", url: "php/contactform-process.php", data: "name=" + name + "&email=" + email + "&message=" + message + "&terms=" + terms, success: function(text) { if (text == "success") { cformSuccess(); } else { cformError(); csubmitMSG(false, text); } } }); } function cformSuccess() { $("#contactForm")[0].reset(); csubmitMSG(true, "Message Submitted!"); $("input").removeClass('notEmpty'); // resets the field label after submission $("textarea").removeClass('notEmpty'); // resets the field label after submission } function cformError() { $("#contactForm").removeClass().addClass('shake animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function() { $(this).removeClass(); }); } function csubmitMSG(valid, msg) { if (valid) { var msgClasses = "h3 text-center tada animated"; } else { var msgClasses = "h3 text-center"; } $("#cmsgSubmit").removeClass().addClass(msgClasses).text(msg); } /* Privacy Form */ $("#privacyForm").validator().on("submit", function(event) { if (event.isDefaultPrevented()) { // handle the invalid form... pformError(); psubmitMSG(false, "Please fill all fields!"); } else { // everything looks good! event.preventDefault(); psubmitForm(); } }); function psubmitForm() { // initiate variables with form content var name = $("#pname").val(); var email = $("#pemail").val(); var select = $("#pselect").val(); var terms = $("#pterms").val(); $.ajax({ type: "POST", url: "php/privacyform-process.php", data: "name=" + name + "&email=" + email + "&select=" + select + "&terms=" + terms, success: function(text) { if (text == "success") { pformSuccess(); } else { pformError(); psubmitMSG(false, text); } } }); } function pformSuccess() { $("#privacyForm")[0].reset(); psubmitMSG(true, "Request Submitted!"); $("input").removeClass('notEmpty'); // resets the field label after submission } function pformError() { $("#privacyForm").removeClass().addClass('shake animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function() { $(this).removeClass(); }); } function psubmitMSG(valid, msg) { if (valid) { var msgClasses = "h3 text-center tada animated"; } else { var msgClasses = "h3 text-center"; } $("#pmsgSubmit").removeClass().addClass(msgClasses).text(msg); } /* Back To Top Button */ // create the back to top button $('body').prepend('Back to Top'); var amountScrolled = 700; $(window).scroll(function() { if ($(window).scrollTop() > amountScrolled) { $('a.back-to-top').fadeIn('500'); } else { $('a.back-to-top').fadeOut('500'); } }); /* Removes Long Focus On Buttons */ $(".button, a, button").mouseup(function() { $(this).blur(); }); })(jQuery);