/* * Copyright (c) 2018 Marketify * Author: Marketify * This file is made for CURRENT TEMPLATE */ jQuery(document).ready(function(){ "use strict"; // here all ready functions buildify_tm_menubarFixingToTop(); buildify_tm_article(); buildify_tm_imgtosvg(); buildify_tm_magnific_popup(); buildify_tm_owl_carousel(); buildify_tm_miniboxes(); buildify_tm_hamburger(); buildify_tm_submenu(); buildify_tm_totop(); buildify_tm_totop_myhide(); buildify_tm_portfolio(); buildify_tm_filter_effect(); buildify_tm_widgetscroll(); buildify_tm_sticky_sidebar(); buildify_tm_contact_form(); buildify_tm_isotope(); buildify_tm_fitty(); buildify_tm_counerbox_shape(); buildify_tm_jarallax(); buildify_tm_justified(); buildify_tm_about_shape(); buildify_tm_sidebar_shape(); buildify_tm_stickyy(); jQuery(window).on('resize',function(e){ e.preventDefault(); buildify_tm_miniboxes(); buildify_tm_widgetscroll(); buildify_tm_animate_submenu(); buildify_tm_isotope(); buildify_tm_counerbox_shape(); buildify_tm_about_shape(); buildify_tm_sidebar_shape(); }); jQuery(window).on('scroll', function(e) { e.preventDefault(); buildify_tm_totop_myhide(); }); jQuery(window).on('load', function(e) { e.preventDefault(); buildify_tm_isotope(); buildify_tm_stickyy(); }); }); // ----------------------------------------------------- // -------------------- FUNCTIONS -------------------- // ----------------------------------------------------- // ----------------------------------------------------- // -------------------- MENUBAR ---------------------- // ----------------------------------------------------- function buildify_tm_menubarFixingToTop(){ "use strict"; var menuBar = jQuery('.buildify_tm_menubar'); var menuLogo = jQuery('.buildify_tm_menubar .menu_logo'); var homeButton = jQuery('.buildify_tm_home_button'); var window_offset = jQuery(window).scrollTop(); if(window_offset>=100){ menuBar.addClass('scrolled'); menuLogo.addClass('scrolled'); homeButton.addClass('scrolled'); }else{ menuBar.removeClass('scrolled'); menuLogo.removeClass('scrolled'); homeButton.removeClass('scrolled'); } jQuery(window).on('scroll',function(){ window_offset = jQuery(window).scrollTop(); if(window_offset>=100){ menuBar.addClass('scrolled'); menuLogo.addClass('scrolled'); homeButton.addClass('scrolled'); }else{ menuBar.removeClass('scrolled'); menuLogo.removeClass('scrolled'); homeButton.removeClass('scrolled'); } }); } // ----------------------------------------------------- // -------------------- SWIPER ------------------------ // ----------------------------------------------------- function buildify_tm_article(){ "use strict"; var swiper = new Swiper('.swiper-container', { direction:'horizontal', loop:'true', pagination: { el: '.swiper-pagination', type: 'custom', renderCustom: function (swiper, current, total) { // console.log(current); var currentIndex; if(current<10){ currentIndex = '0'+ current; }else{ currentIndex = current; } var totalIndex; if(total<10){ totalIndex = '0'+ total; }else{ totalIndex = total; } currentIndex = '' + currentIndex + ''; totalIndex = '' + totalIndex + ''; return currentIndex + ' / ' + totalIndex; } }, navigation: { nextEl: '.tm_next_button', prevEl: '.tm_prev_button', }, }); } // ----------------------------------------------------- // --------------- IMAGE TO SVG ------------------ // ----------------------------------------------------- function buildify_tm_imgtosvg(){ "use strict"; jQuery('img.svg').each(function(){ var jQueryimg = jQuery(this); var imgClass = jQueryimg.attr('class'); var imgURL = jQueryimg.attr('src'); jQuery.get(imgURL, function(data) { // Get the SVG tag, ignore the rest var jQuerysvg = jQuery(data).find('svg'); // Add replaced image's classes to the new SVG if(typeof imgClass !== 'undefined') { jQuerysvg = jQuerysvg.attr('class', imgClass+' replaced-svg'); } // Remove any invalid XML tags as per http://validator.w3.org jQuerysvg = jQuerysvg.removeAttr('xmlns:a'); // Replace image with new SVG jQueryimg.replaceWith(jQuerysvg); }, 'xml'); }); } // ----------------------------------------------------- // -------------- MAGNIFIC POPUP ----------------- // ----------------------------------------------------- function buildify_tm_magnific_popup(){ "use strict"; jQuery('.open-popup-link').magnificPopup({ type:'inline', midClick: true // Allow opening popup on middle mouse click. Always set it to true if you don't provide alternative source in href. }); jQuery('.gallery').each(function() { // the containers for all your galleries jQuery(this).magnificPopup({ delegate: 'a', // the selector for gallery item type: 'image', gallery: { enabled:true } }); }); jQuery('.gallery_zoom').each(function() { // the containers for all your galleries jQuery(this).magnificPopup({ delegate: 'a.zoom', // the selector for gallery item type: 'image', gallery: { enabled:true }, removalDelay: 300, mainClass: 'mfp-fade' }); }); jQuery('.popup-youtube').each(function() { // the containers for all your galleries jQuery(this).magnificPopup({ //type: 'iframe', disableOn: 700, type: 'iframe', mainClass: 'mfp-fade', removalDelay: 160, preloader: false, fixedContentPos: false }); }); } // ----------------------------------------------------- // --------------- OWL CAROUSEL ------------------ // ----------------------------------------------------- function buildify_tm_owl_carousel(){ "use strict"; var carousel2 = jQuery('.buildify_tm_universal_carousel_wrap.testimonial .owl-carousel'); carousel2.owlCarousel({ loop:false, items: 3, lazyLoad: true, margin: 0, autoplay: false, autoplayTimeout: 6000, smartSpeed: 2000, dots: false, nav: true, navSpeed: true, responsive:{ 0:{items:1}, 480:{items:1}, 768:{items:2}, 1040:{items:2}, 1200:{items:2}, 1600:{items:3}, 1920:{items:3} } }); jQuery('.buildify_tm_universal_carousel_wrap.testimonial .custom_nav > a.prev').on('click', function(){ carousel2.trigger('prev.owl.carousel'); return false; }); jQuery('.buildify_tm_universal_carousel_wrap.testimonial .custom_nav > a.next').on('click', function(){ carousel2.trigger('next.owl.carousel'); return false; }); } // ----------------------------------------------------- // ----------------- MINI BOXES ------------------ // ----------------------------------------------------- function buildify_tm_miniboxes(){ "use strict"; var el = jQuery('.buildify_tm_miniboxes'); if(el.length){ el.each(function(index, element) { var child = jQuery(element).find('.buildify_tm_minibox'); child.css({height:'auto'}); // Get an array of all element heights var W = jQuery(window).width(); if(W > 480){ var elementHeights = child.map(function() {return jQuery(this).outerHeight();}).get(); // Math.max takes a variable number of arguments // `apply` is equivalent to passing each height as an argument var maxHeight = Math.max.apply(null, elementHeights); // Set each height to the max height child.css({height:maxHeight+'px'}); } }); } } // ----------------------------------------------------- // ----------------- SUBMENUS -------------------- // ----------------------------------------------------- function buildify_tm_animate_submenu(){ "use strict"; var mainLi = jQuery('.buildify_tm_menubar .menu_nav_content > ul > li'); var offsetLi = jQuery('.buildify_tm_menubar .menu_nav_content > ul > li.active1').offset().top; var winScroll = jQuery(window).scrollTop(); var box = jQuery('.buildify_tm_animate_submenu'); var leftPart = jQuery('.buildify_tm_leftpart_wrap').outerWidth(); var RightPart = jQuery('.buildify_tm_rightpart'); box.css({top:offsetLi-winScroll-10}); box.css({left:leftPart}); mainLi.on('mouseenter',function(){ var element = jQuery(this); var submenu = element.find('.inside_menu').html(); winScroll = jQuery(window).scrollTop(); offsetLi = element.offset().top; box.css({top:offsetLi-winScroll-20}); if(element.hasClass('active1')){ box.removeClass('opened'); box.html(""); box.html(submenu); box.addClass('opened'); }else{ box.removeClass('opened').html(""); } }); RightPart.on('mouseenter',function(){ box.removeClass('opened').html(""); }); } // ----------------------------------------------------- // ------------------ HAMBURGER ---------------------- // ----------------------------------------------------- function buildify_tm_hamburger(){ "use strict"; var hamburger = jQuery('.hamburger'); var mobileMenu = jQuery('.buildify_tm_mobile_header_wrap .navigation_wrap'); hamburger.on('click',function(){ var element = jQuery(this); if(element.hasClass('is-active')){ element.removeClass('is-active'); mobileMenu.slideUp(); }else{ element.addClass('is-active'); mobileMenu.slideDown(); } return false; }); } // ----------------------------------------------------- // ----------------- SUBMENU --------------------- // ----------------------------------------------------- function buildify_tm_submenu(){ "use strict"; var nav = jQuery('ul.nav'); nav.find('a').on('click', function(e){ var element = jQuery(this); var parentItem = element.parent('li'); var parentItems = element.parents('li'); var parentUls = parentItem.parents('ul.sub_menu'); var subMenu = element.next(); var allSubMenusParents = nav.find('li'); allSubMenusParents.removeClass('opened'); if(subMenu.length){ e.preventDefault(); if(!(subMenu.parent('li').hasClass('active'))){ if(!(parentItems.hasClass('opened'))){parentItems.addClass('opened');} allSubMenusParents.each(function(){ var el = jQuery(this); if(!el.hasClass('opened')){el.find('ul.sub_menu').slideUp();} }); allSubMenusParents.removeClass('active'); parentUls.parent('li').addClass('active'); subMenu.parent('li').addClass('active'); subMenu.slideDown(); // for recalculate scrollable height var scrollableE = jQuery('.scrollable'); scrollableE.each(function(){ var elE = jQuery(this); var hhhE = elE.height();hhhE++; setTimeout(function(){elE.css({height:hhhE});},500); setTimeout(function(){hhhE--;elE.css({height:hhhE});},600); }); }else{ subMenu.parent('li').removeClass('active'); subMenu.slideUp(); } return false; } }); } // ----------------------------------------------------- // ------------------ TOTOP ---------------------- // ----------------------------------------------------- function buildify_tm_totop(){ "use strict"; jQuery(".buildify_tm_totop").on('click', function(e) { e.preventDefault(); jQuery("html, body").animate({ scrollTop: 0 }, 'slow'); return false; }); } function buildify_tm_totop_myhide(){ "use strict"; var toTop =jQuery(".buildify_tm_totop"); if(toTop.length){ var topOffSet =toTop.offset().top; if(topOffSet > 1000){ toTop.addClass('opened'); }else{ toTop.removeClass('opened'); } } } // ------------------------------------------------- // -------------- PORTFOLIO ------------------ // ------------------------------------------------- // filterable function buildify_tm_portfolio(){ "use strict"; if(jQuery().isotope) { // Needed variables var list = jQuery('.buildify_tm_portfolio_list'); var filter = jQuery('.buildify_tm_portfolio_filter'); if(filter.length){ // Isotope Filter filter.find('a').on('click', function(){ var selector = jQuery(this).attr('data-filter'); list.isotope({ filter : selector, animationOptions : { duration : 750, easing : 'linear', queue : false } }); return false; }); // Change active element class filter.find('a').on('click', function() { filter.find('a').removeClass('current'); jQuery(this).addClass('current'); return false; }); } } } function buildify_tm_filter_effect(){ "use strict"; var button = jQuery('.buildify_tm_projects_wrap .all_projects'); var element = jQuery('.buildify_tm_projects_wrap .filter_list'); button.on('click',function(){ if(element.hasClass('opened')){ element.removeClass('opened'); element.slideUp(); }else{ element.addClass('opened'); element.slideDown(); } return false; }); } // ----------------------------------------------------- // ------------- WIDGET MENU SCROLL ----------------- // ----------------------------------------------------- function buildify_tm_widgetscroll(){ "use strict"; var H = jQuery(window).height(); var scrollable = jQuery('.scrollable'); var logoH = jQuery('.buildify_tm_menubar .menu_logo').outerHeight(); var verMenu = jQuery('.menu_nav_content'); verMenu.css({height:H-logoH-50}); scrollable.each(function(){ var element = jQuery(this); element.css({height: H-logoH-100}); element.niceScroll({ touchbehavior:false, cursorwidth:0, autohidemode:true, cursorborder:"0px solid #eee" }); }); } // ----------------------------------------------------- // --------------- STICKY SIDEBAR ----------------- // ----------------------------------------------------- function buildify_tm_sticky_sidebar(){ "use strict"; jQuery('.sticky_sidebar').theiaStickySidebar({ containerSelector: '', // The sidebar's container element. If not specified, it defaults to the sidebar's parent. additionalMarginTop: 50, additionalMarginBottom: 0, updateSidebarHeight: true, // Updates the sidebar's height. Use this if the background isn't showing properly, for example. minWidth: 768, // The sidebar returns to normal if its width is below this value. }); } // ----------------------------------------------------- // ---------------- CONTACT FORM ----------------- // ----------------------------------------------------- function buildify_tm_contact_form(){ "use strict"; jQuery(".contact_form #send_message").on('click', function(){ var name = jQuery(".contact_form #name").val(); var email = jQuery(".contact_form #email").val(); var message = jQuery(".contact_form #message").val(); var subject = jQuery(".contact_form #subject").val(); var success = jQuery(".contact_form .returnmessage").data('success'); jQuery(".contact_form .returnmessage").empty(); //To empty previous error/success message. //checking for blank fields if(name===''||email===''||message===''){ jQuery('div.empty_notice').slideDown(500).delay(2000).slideUp(500); } else{ // Returns successful data submission message when the entered information is stored in database. jQuery.post("modal/contact.php",{ ajax_name: name, ajax_email: email, ajax_message:message, ajax_subject: subject}, function(data) { jQuery(".contact_form .returnmessage").append(data);//Append returned message to message paragraph if(jQuery(".contact_form .returnmessage span.contact_error").length){ jQuery(".contact_form .returnmessage").slideDown(500).delay(2000).slideUp(500); }else{ jQuery(".contact_form .returnmessage").append(""+ success +""); jQuery(".contact_form .returnmessage").slideDown(500).delay(4000).slideUp(500); } if(data===""){ jQuery("#contact_form")[0].reset();//To reset form fields on success } }); } return false; }); } // ----------------------------------------------------- // -------------- ISOTOPE MASONRY ---------------- // ----------------------------------------------------- function buildify_tm_isotope(){ "use strict"; jQuery('.masonry').isotope({ itemSelector: '.item', masonry: { } }); } // ----------------------------------------------------- // ------------------- COUNTER ------------------- // ----------------------------------------------------- jQuery('.buildify_tm_counter').each(function() { "use strict"; var el = jQuery(this); el.waypoint({ handler: function(){ if(!el.hasClass('stop')){ el.addClass('stop').countTo({ refreshInterval: 50, formatter: function (value, options) { return value.toFixed(options.decimals).replace(/\B(?=(?:\d{3})+(?!\d))/g, ','); }, }); } },offset:'80%' }); }); // ----------------------------------------------------- // ------------------- FITTY ----------------------- // ----------------------------------------------------- function buildify_tm_fitty(){ "use strict"; fitty('.buildify_tm_counter_list li h3 > span', { minSize: 12, maxSize: 40 }); } // ----------------------------------------------------- // ------------ COUNTERBOX SHAPE ------------------- // ----------------------------------------------------- function buildify_tm_counerbox_shape(){ "use strict"; var box = jQuery('.buildify_tm_counter_wrap_all .leftbox').outerWidth(); var element1 = jQuery('.buildify_tm_counter_wrap_all .leftbox .roof span'); var box2 = jQuery('.buildify_tm_working_process_wrap .leftbox').outerWidth(); var element2 = jQuery('.buildify_tm_working_process_wrap .leftbox .roof span'); var box3 = jQuery('.buildify_tm_working_process_wrap .rightbox').outerWidth(); var element3 = jQuery('.buildify_tm_working_process_wrap .rightbox .roof span'); element1.css({borderLeftWidth:box}); element2.css({borderLeftWidth:box2}); element3.css({borderLeftWidth:box3}); } // ----------------------------------------------------- // -------------------- JARALLAX ----------------- // ----------------------------------------------------- function buildify_tm_jarallax(){ "use strict"; jQuery('.jarallax').each(function(){ var element = jQuery(this); var customSpeed = element.data('speed'); if(customSpeed !== "undefined" && customSpeed !== ""){ customSpeed = customSpeed; }else{ customSpeed = 0.5; } element.jarallax({ speed: customSpeed }); }); } function buildify_tm_justified(){ "use strict"; jQuery('.buildify_tm_justified_wrap').justifiedGallery({ // images : photos, rowHeight: 300, margins:10 }); } // ----------------------------------------------------- // ----------------- ACCORDION ------------------- // ----------------------------------------------------- jQuery(".buildify_tm_accordion").friendslab_accordion({ showIcon: false, //boolean animation: true, //boolean closeAble: true, //boolean slideSpeed: 500 //integer, miliseconds }); // ----------------------------------------------------- // ----------------- ABOUT SHAPE ----------------- // ----------------------------------------------------- function buildify_tm_about_shape(){ "use strict"; var box = jQuery('.qqq').outerWidth(); var boxWidth = Math.floor((box-75)*0.7); var shape = jQuery('.qqq .first'); shape.css({borderLeftWidth:boxWidth}); } // ----------------------------------------------------- // --------------- SIDEBAR SHAPE ----------------- // ----------------------------------------------------- function buildify_tm_sidebar_shape(){ "use strict"; var box = jQuery('.buildify_tm_request_estimate_wrap .definition').outerWidth(); var boxWidth = Math.floor(box*0.267); //80 var boxWidth2 = box-boxWidth; //220 var boxHeight = Math.floor(box*0.183);//55 var shape1 = jQuery('.buildify_tm_request_estimate_wrap .first_shape .first'); var shape2 = jQuery('.buildify_tm_request_estimate_wrap .first_shape .second'); var shape3 = jQuery('.buildify_tm_request_estimate_wrap .first_shape .third'); var shape4 = jQuery('.buildify_tm_request_estimate_wrap .second_shape .first'); var shape5 = jQuery('.buildify_tm_request_estimate_wrap .second_shape .second'); var shape6 = jQuery('.buildify_tm_request_estimate_wrap .second_shape .third'); shape1.css({borderRightWidth:boxWidth,borderBottomWidth:boxWidth}); shape2.css({borderRightWidth:boxWidth,borderBottomWidth:boxWidth}); shape3.css({borderRightWidth:boxWidth,borderBottomWidth:boxHeight}); shape4.css({borderLeftWidth:boxWidth2,borderBottomWidth:boxWidth}); shape5.css({borderLeftWidth:boxWidth2,borderBottomWidth:boxWidth}); shape6.css({borderLeftWidth:boxWidth2,borderBottomWidth:boxHeight}); } function buildify_tm_stickyy(){ "use strict"; var el = jQuery('.fn_w_sminiboxes'); if(el.length){ el.each(function(index, element) { var child = jQuery(element).find('.fn_w_sminibox'); child.css({height:'auto'}); var W = jQuery(window).width(); if(W > 1200){ var elementHeights = child.map(function() {return jQuery(this).outerHeight();}).get(); var maxHeight = Math.max.apply(null, elementHeights); child.css({height:maxHeight+'px'}); } }); } }