/home/arranoyd/empl/wp-content/plugins/keydesign-addon/assets/js/kd_addon_script.js
/* ------------------------------------------------------------------------
jQuery Appear
------------------------------------------------------------------------*/
!function(e){e.fn.appear=function(a,r){var p=e.extend({data:void 0,one:!0,accX:0,accY:0},r);return this.each(function(){var r=e(this);if(r.appeared=!1,a){var n=e(window),t=function(){if(r.is(":visible")){var e=n.scrollLeft(),a=n.scrollTop(),t=r.offset(),c=t.left,i=t.top,o=p.accX,f=p.accY,s=r.height(),l=n.height(),h=r.width(),d=n.width();i+s+f>=a&&i<=a+l+f&&c+h+o>=e&&c<=e+d+o?r.appeared||r.trigger("appear",p.data):r.appeared=!1}else r.appeared=!1},c=function(){if(r.appeared=!0,p.one){n.unbind("scroll",t);var c=e.inArray(t,e.fn.appear.checks);c>=0&&e.fn.appear.checks.splice(c,1)}a.apply(this,arguments)};p.one?r.one("appear",p.data,c):r.bind("appear",p.data,c),n.scroll(t),e.fn.appear.checks.push(t),t()}else r.trigger("appear",p.data)})},e.extend(e.fn.appear,{checks:[],timeout:null,checkAll:function(){var a=e.fn.appear.checks.length;if(a>0)for(;a--;)e.fn.appear.checks[a]()},run:function(){e.fn.appear.timeout&&clearTimeout(e.fn.appear.timeout),e.fn.appear.timeout=setTimeout(e.fn.appear.checkAll,20)}}),e.each(["append","prepend","after","before","attr","removeAttr","addClass","removeClass","toggleClass","remove","css","show","hide"],function(a,r){var p=e.fn[r];p&&(e.fn[r]=function(){var a=p.apply(this,arguments);return e.fn.appear.run(),a})})}(jQuery);
/* ------------------------------------------------------------------------
jQuery easing
------------------------------------------------------------------------*/
!function(n){"function"==typeof define&&define.amd?define(["jquery"],function(e){return n(e)}):"object"==typeof module&&"object"==typeof module.exports?module.exports=n(require("jquery")):n(jQuery)}(function(n){function e(n){var e=7.5625,t=2.75;return n<1/t?e*n*n:n<2/t?e*(n-=1.5/t)*n+.75:n<2.5/t?e*(n-=2.25/t)*n+.9375:e*(n-=2.625/t)*n+.984375}void 0!==n.easing&&(n.easing.jswing=n.easing.swing);var t=Math.pow,u=Math.sqrt,r=Math.sin,i=Math.cos,a=Math.PI,o=1.70158,c=1.525*o,s=2*a/3,f=2*a/4.5;return n.extend(n.easing,{def:"easeOutQuad",swing:function(e){return n.easing[n.easing.def](e)},easeInQuad:function(n){return n*n},easeOutQuad:function(n){return 1-(1-n)*(1-n)},easeInOutQuad:function(n){return n<.5?2*n*n:1-t(-2*n+2,2)/2},easeInCubic:function(n){return n*n*n},easeOutCubic:function(n){return 1-t(1-n,3)},easeInOutCubic:function(n){return n<.5?4*n*n*n:1-t(-2*n+2,3)/2},easeInQuart:function(n){return n*n*n*n},easeOutQuart:function(n){return 1-t(1-n,4)},easeInOutQuart:function(n){return n<.5?8*n*n*n*n:1-t(-2*n+2,4)/2},easeInQuint:function(n){return n*n*n*n*n},easeOutQuint:function(n){return 1-t(1-n,5)},easeInOutQuint:function(n){return n<.5?16*n*n*n*n*n:1-t(-2*n+2,5)/2},easeInSine:function(n){return 1-i(n*a/2)},easeOutSine:function(n){return r(n*a/2)},easeInOutSine:function(n){return-(i(a*n)-1)/2},easeInExpo:function(n){return 0===n?0:t(2,10*n-10)},easeOutExpo:function(n){return 1===n?1:1-t(2,-10*n)},easeInOutExpo:function(n){return 0===n?0:1===n?1:n<.5?t(2,20*n-10)/2:(2-t(2,-20*n+10))/2},easeInCirc:function(n){return 1-u(1-t(n,2))},easeOutCirc:function(n){return u(1-t(n-1,2))},easeInOutCirc:function(n){return n<.5?(1-u(1-t(2*n,2)))/2:(u(1-t(-2*n+2,2))+1)/2},easeInElastic:function(n){return 0===n?0:1===n?1:-t(2,10*n-10)*r((10*n-10.75)*s)},easeOutElastic:function(n){return 0===n?0:1===n?1:t(2,-10*n)*r((10*n-.75)*s)+1},easeInOutElastic:function(n){return 0===n?0:1===n?1:n<.5?-t(2,20*n-10)*r((20*n-11.125)*f)/2:t(2,-20*n+10)*r((20*n-11.125)*f)/2+1},easeInBack:function(n){return 2.70158*n*n*n-o*n*n},easeOutBack:function(n){return 1+2.70158*t(n-1,3)+o*t(n-1,2)},easeInOutBack:function(n){return n<.5?t(2*n,2)*(7.189819*n-c)/2:(t(2*n-2,2)*((c+1)*(2*n-2)+c)+2)/2},easeInBounce:function(n){return 1-e(1-n)},easeOutBounce:e,easeInOutBounce:function(n){return n<.5?(1-e(1-2*n))/2:(1+e(2*n-1))/2}}),n});
/* ------------------------------------------------------------------------
jQuery inViweport
------------------------------------------------------------------------*/
jQuery(document).ready(function($) {
/* ------------------------------------------------------------------------
FAQ
------------------------------------------------------------------------*/
$(document).on("click", ".vc_toggle:not(.vc_toggle_active) .vc_toggle_title", function(e) {
e.preventDefault();
if ($('body').hasClass("collapsible-faq")) {
$('.vc_toggle.vc_toggle_active .vc_toggle_title').trigger('click');
}
});
/* ------------------------------------------------------------------------
TEXT ROTATOR
------------------------------------------------------------------------*/
$(".kd-text-rotator").each(function(){
var animationDelay = parseInt($(this).attr('data-speed'),10);
animateHeadline($('.kd-text-rotator-container'));
function animateHeadline($headlines) {
$headlines.each(function(){
var headline = $(this);
setTimeout(function(){ hideWord( headline.find('.is-visible') ) }, animationDelay);
});
}
function hideWord($word) {
var nextWord = takeNext($word);
switchWord($word, nextWord);
setTimeout(function(){ hideWord(nextWord) }, animationDelay);
}
function takeNext($word) {
return (!$word.is(':last-child')) ? $word.next() : $word.parent().children().eq(0);
}
function switchWord($oldWord, $newWord) {
$oldWord.removeClass('is-visible').addClass('is-hidden');
$newWord.removeClass('is-hidden').addClass('is-visible');
}
});
/* ------------------------------------------------------------------------
PORTFOLIO CAROUSEL
------------------------------------------------------------------------*/
if ($(".fullwidth-carousel").length) {
setTimeout(function() {
$(".fullwidth-carousel .vc_pageable-slide-wrapper").owlCarousel({
stageClass: "owl-wrapper",
stageOuterClass: "owl-wrapper-outer",
loadedClass: "owl-carousel",
responsive:{
0:{
items: 1,
nav: true,
navSpeed: 500,
dots: false,
},
767:{
items: 3,
nav: true,
navSpeed: 500,
dots: false,
},
960:{
nav: true,
items: 3,
navSpeed: 500,
dots: false,
}
},
items: 3,
navSpeed: 500,
nav: true,
dots: false,
rewind: true,
loop: true,
});
}, 2000)
}
(function($, win) {
$.fn.inViewport = function(cb) {
return this.each(function(i, el) {
function visPx() {
var H = $(this).height(),
r = el.getBoundingClientRect(),
t = r.top,
b = r.bottom;
return cb.call(el, Math.max(0, t > 0 ? H - t : (b < H ? b : H)));
}
visPx();
$(win).on("resize scroll", visPx);
});
};
}(jQuery, window));
/* ------------------------------------------------------------------------
ANIMATION
------------------------------------------------------------------------*/
$(".kd-animated").inViewport(function(px) {
if (px) $(this).addClass("kd-animate");
});
/* ------------------------------------------------------------------------
COUNTDOWN
------------------------------------------------------------------------*/
$('.kd-countdown').each(function(index, value) {
var text_days = $(this).attr("data-text-days");
var text_hours = $(this).attr("data-text-hours");
var text_minutes = $(this).attr("data-text-minutes");
var text_seconds = $(this).attr("data-text-seconds");
var count_year = $(this).attr("data-count-year");
var count_month = $(this).attr("data-count-month");
var count_day = $(this).attr("data-count-day");
var count_hour = $(this).attr("data-count-hour");
var count_minute = $(this).attr("data-count-minute");
var count_date = count_year + '/' + count_month + '/' + count_day + ' ' + count_hour + ':' + count_minute + ':00';
$(this).countdown(count_date, function(event) {
$(this).html(
event.strftime('<span class="CountdownContent">%D<span class="CountdownLabel">' + text_days + '</span></span><span class="CountdownSeparator">:</span><span class="CountdownContent">%H <span class="CountdownLabel">' + text_hours + '</span></span><span class="CountdownSeparator">:</span><span class="CountdownContent">%M <span class="CountdownLabel">' + text_minutes + '</span></span><span class="CountdownSeparator">:</span><span class="CountdownContent">%S <span class="CountdownLabel">' + text_seconds + '</span></span>')
);
});
});
/* ------------------------------------------------------------------------
IMAGE GROUP
------------------------------------------------------------------------*/
jQuery(".kd-photo-group.enable-parallax .kd-group-image").inViewport(function(px) {
if (px) {
var firstTop = $(this).offset().top;
var winScrollTop = $(window).scrollTop();
var parallaxCoef = 0;
if($(this).hasClass('second-image-wrapper')) {
parallaxCoef = 0.10;
}
var shiftDistance = (firstTop - winScrollTop)*parallaxCoef;
$(this).css('transform','translateY('+shiftDistance+'px)');
}
});
/* ------------------------------------------------------------------------
DOTS PARALLAX
------------------------------------------------------------------------*/
jQuery(".kd-shapes.shape_dots.with-parallax").inViewport(function(px) {
if (px) {
var firstTop = $(this).offset().top;
var winScrollTop = $(window).scrollTop();
var parallaxCoef = $(this).attr("data-parallax-speed");
var shiftDistance = (firstTop - winScrollTop)*parallaxCoef;
$(this).css('transform','translateY('+shiftDistance+'px)');
}
});
/* ------------------------------------------------------------------------
PRICING TABLE HOVER & SWITCHER
------------------------------------------------------------------------*/
$( ".comparison-pricing-table .pricing-row,.comparison-pricing-table .pricing-headings .vc_custom_heading" ).hover(
function() {
var index = $(this).index();
$('.comparison-pricing-table .pricing-options-container,.comparison-pricing-table .pricing-headings .wpb_wrapper').each(function(){
$(this).children().eq(index).addClass( "active" );
});
}, function() {
var index = $(this).index();
$('.comparison-pricing-table .pricing-options-container,.comparison-pricing-table .pricing-headings .wpb_wrapper').each(function(){
$(this).children().eq(index).removeClass( "active" );
});
}
);
$(".comparison-pricing-table .pricing-headings .vc_custom_heading" ).each(
function() {
var index = $(this).index();
var title = $(this).text();
var strong = '';
if($(this).hasClass('strong')) { strong = 'strong'; }
$('.comparison-pricing-table .pricing-options-container').each(function(){
$(this).children().eq(index).prepend('<span class="mobile-title '+ strong +'">' + title + ':</span>');
});
}
);
$('.kd-price-switch input').on('click', function() {
// $(".kd-price-switch input").click( function(){
$(this).parents(".kd-ps-wrapper").toggleClass('active');
jQuery(".pricing .tt_button").each(function(index, value) {
var pricing_btn = $(this);
var primary_btn_url = pricing_btn.attr("href");
var secondary_btn_url = pricing_btn.attr("data-secondary-link");
var aux_url = primary_btn_url;
pricing_btn.attr("href", secondary_btn_url);
pricing_btn.attr("data-secondary-link", aux_url);
});
if( $(this).is(':checked') ) {
$(this).parents(".vc_row-fluid").find(".pricing").addClass('secondary-price');
} else {
$(this).parents(".vc_row-fluid").find(".pricing").removeClass('secondary-price');
}
});
/* ------------------------------------------------------------------------
PIE CHART
------------------------------------------------------------------------*/
jQuery(".kd_pie_chart .kd_chart").each(function(index, value) {
jQuery(this).appear(function() {
jQuery(this).easyPieChart({
barColor: "#000",
trackColor: "rgba(210, 210, 210, 0.2)",
animate: 2000,
size: "160",
lineCap: 'round',
lineWidth: "2",
scaleColor: false,
onStep: function(from, to, percent) {
jQuery(this.el).find(".pc_percent").text(Math.round(percent));
}
});
});
var chart = window.chart = jQuery(".kd_pie_chart .kd_chart").data("easyPieChart");
});
/* ------------------------------------------------------------------------
REV SLIDER FONT FIX
------------------------------------------------------------------------*/
$("rs-layer[data-type='text'], .rs-layer[data-type='text']").each(function(index, value) {
if ($(this).css('font-family') == '"inherit"') {
$(this).css('font-family','');
}
});
/* ------------------------------------------------------------------------
COUNTERS
------------------------------------------------------------------------*/
jQuery(".kd_number_string").each(function(index, value) {
jQuery(this).appear(function() {
jQuery(this).countTo();
});
});
/* ------------------------------------------------------------------------
REFRESH GOOGLE MAP WITH THE ACTIVE TAB
------------------------------------------------------------------------*/
if (jQuery(".contact-map-container").length) {
jQuery('.vc_tta-tabs a').on('show.vc.tab', function() {
setTimeout(function() {
google.maps.event.trigger(window, 'resize', {});
}, 500)
});
}
jQuery('.toggle-map-info').on('click', function(e) {
e.preventDefault();
jQuery('.business-info-wrapper').toggleClass('minimize');
});
/* ------------------------------------------------------------------------
VIDEO MODAL
------------------------------------------------------------------------*/
function autoPlayYouTubeModal() {
var trigger = $("body").find('.video-container [data-toggle="modal"]');
trigger.click(function() {
var theModal = $(this).data("target");
videoSRC = $(this).data("src");
videoSRCauto = videoSRC + "?showinfo=0&autoplay=1&enablejsapi=1&wmode=opaque";
$(theModal + ' iframe').attr('src', videoSRCauto);
$(theModal + ' button.close').click(function() {
$(theModal + ' iframe').attr('src', videoSRC);
});
$('.modal').click(function() {
$(theModal + ' iframe').attr('src', videoSRC);
});
});
}
autoPlayYouTubeModal();
function autoPlayVideoModal() {
var trigger = $("body").find('.video-container [data-toggle="modal"]');
trigger.click(function() {
var theModal = $(this).data("target");
if ($(theModal + ' .video-modal-local').length) {
$(theModal + ' .video-modal-local')[0].play();
}
});
}
autoPlayVideoModal();
$('body').on('hidden.bs.modal', '.modal', function () {
$('video').trigger('pause');
});
if (jQuery(".modal.video-modal").length > 0) {
jQuery(".video-modal").each(function() {
jQuery(this).insertAfter("#footer");
});
}
/* ------------------------------------------------------------------------
FLOATING MENU
------------------------------------------------------------------------*/
if (jQuery(".fm-wrapper.enable-scrollspy").length > 0) {
jQuery('body').scrollspy({
offset: 80,
target: '.fm-nav'
});
}
/* ------------------------------------------------------------------------
FEATURE SECTIONS
------------------------------------------------------------------------*/
if (jQuery(".feature-sections-wrapper").length > 0) {
jQuery('body').scrollspy({
offset: 180,
target: '.kd-feature-tabs'
});
}
});
jQuery(window).on('load', function() {
jQuery('.fm-wrapper.enable-scrollspy li a[href*=\\#]').bind('click', function(e) {
e.preventDefault();
var target = jQuery(this).attr("href");
jQuery('html, body').stop().animate({
scrollTop: jQuery(target).offset().top - 76
}, 1000, 'easeInOutQuart');
return false;
});
/* ------------------------------------------------------------------------
STICKY MENU
------------------------------------------------------------------------*/
jQuery(".fm-wrapper").each(function() {
setTimeout(function (){
jQuery('.fm-wrapper').addClass('visible');
}, 1000);
});
/* ------------------------------------------------------------------------
EXTENDED TABS
------------------------------------------------------------------------*/
if ( jQuery(".features-tabs").length > 0 ) {
jQuery(".features-tabs").each( function () {
jQuery( "li.tab-control-item", this ).appendTo( jQuery( ".tab-controls", this ) );
});
jQuery(".features-tabs").easytabs({
updateHash: false,
animationSpeed: "fast",
transitionIn: "fadeIn"
});
}
/* ------------------------------------------------------------------------
STICKY NAVIGATION ELEMENT
------------------------------------------------------------------------*/
if (jQuery(".feature-sections-wrapper").length > 0) {
var adminbar_offset = 0;
if (jQuery("#wpadminbar").length > 0) { adminbar_offset = 32; }
if (jQuery(".vc_editor.compose-mode").length > 0) { adminbar_offset = 0; }
if (jQuery('.navbar-default.with-topbar-sticky').length > 0) {
var sticky_offset = jQuery('.navbar-default.with-topbar-sticky').outerHeight();
if (jQuery( '.navbar-default' ).hasClass( 'fixed-menu' )) { sticky_offset = 0;}
jQuery('.feature-sections-tabs').css( "top", sticky_offset + adminbar_offset );
} else {
var sticky_offset = jQuery('.navbar.navbar-default .menubar').outerHeight();
if (jQuery( '.navbar-default' ).hasClass( 'fixed-menu' )) { sticky_offset = 0;}
jQuery('.feature-sections-tabs').css( "top", sticky_offset + adminbar_offset );
}
jQuery(".feature-sections-wrapper").each(function() {
var tabNumber = 1;
jQuery(".nav-number").each(function() {
jQuery(this).html(tabNumber);
tabNumber++;
});
jQuery("li.nav-label", this).appendTo(jQuery(".sticky-tabs", this));
});
jQuery('.sticky-tabs li a[href*=\\#]').bind('click', function(e) {
e.preventDefault();
var target = jQuery(this).attr("href");
jQuery('html, body').stop().animate({
scrollTop: jQuery(target).offset().top - 176
}, 1000, 'easeInOutQuart');
return false;
});
jQuery('.feature-sections-wrapper').each(function() {
var feature_container = jQuery(this);
var feature_nav = jQuery(".feature-sections-tabs");
var offset = feature_container.offset().top;
jQuery(window).scroll(function(event) {
var scroll = jQuery(window).scrollTop();
var total = feature_container.height() + offset - 200;
if (scroll > total) {
feature_nav.addClass('sticky-hide')
}
if (scroll < total) {
feature_nav.removeClass('sticky-hide')
}
});
});
}
/* ------------------------------------------------------------------------
MASONRY GALLERY ELEMENT
------------------------------------------------------------------------*/
if (jQuery('.mg-gallery').length > 0) {
jQuery('.mg-gallery').each(function() {
var msnry = new Masonry(this, {
itemSelector: '.mg-single-img',
columnWidth: '.mg-sizer',
percentPosition: true,
gutter: 30
});
});
var classes = '.vc_tta-tabs-list .vc_tta-tab,' + '.vc_pagination .vc_pagination-item';
jQuery('body').on('click', classes,
function() {
setInterval(function(){
var reloadMasonry = jQuery('.vc_active .mg-gallery').masonry({
itemSelector: '.mg-single-img',
columnWidth: '.mg-sizer',
percentPosition: true,
gutter: 30
});
reloadMasonry.masonry("reloadItems");
reloadMasonry.masonry('layout');
},200);
});
}
/* ------------------------------------------------------------------------
ALERT BOX ELEMENT
------------------------------------------------------------------------*/
jQuery('.kd-alertbox .ab-close').on('click', function(e) {
e.preventDefault();
jQuery(this).closest('.kd-alertbox').hide(200);
});
});