/**
* Header Connect
* retinaLogo
* ajaxContactForm
* headerFixed
* select js
* mobileNav
* ajaxSubscribe
* alertBox
* loadmore
*/
; (function ($) {
"use strict";
var themesflatTheme = {
// Main init function
init: function () {
this.config();
this.events();
},
// Define vars for caching
config: function () {
this.config = {
$window: $(window),
$document: $(document),
};
},
// Events
events: function () {
var self = this;
// Run on document ready
self.config.$document.on('ready', function () {
// Retina Logos
self.retinaLogo();
});
// Run on Window Load
self.config.$window.on('load', function () {
});
},
}; // end themesflatTheme
// Start things up
themesflatTheme.init();
var retinaLogos = function() {
var retina = window.devicePixelRatio > 1 ? true : false;
if(retina) {
$('#site-logo-inner').find('img').attr( {src:'assets/images/logo.png',width:'197',height:'48'} );
$('#logo-footer.style').find('img').attr( {src:'assets/images/logo/logo-footer@2x.png',width:'197',height:'48'} );
}
};
var ajaxContactForm = function () {
$('#contactform,#commentform').each(function () {
$(this).validate({
submitHandler: function (form) {
var $form = $(form),
str = $form.serialize(),
loading = $('
", {
height: headerHeight
}).insertAfter(nav);
injectSpace.hide();
$(window).on('load scroll', function () {
if ($(window).scrollTop() > offsetTop + headerHeight) {
nav.addClass('is-fixed');
injectSpace.show();
} else {
nav.removeClass('is-fixed');
injectSpace.hide();
}
if ($(window).scrollTop() > 300) {
nav.addClass('is-small');
} else {
nav.removeClass('is-small');
}
})
}
}
};
//=========NICE SELECT=========
$('.select_js').niceSelect();
//Submenu Dropdown Toggle
if($('.main-header li.dropdown2 ul').length){
$('.main-header li.dropdown2').append('
');
//Dropdown Button
$('.main-header li.dropdown2 .dropdown2-btn').on('click', function() {
$(this).prev('ul').slideToggle(500);
});
//Disable dropdown parent link
$('.navigation li.dropdown2 > a').on('click', function(e) {
e.preventDefault();
});
//Disable dropdown parent link
$('.main-header .navigation li.dropdown2 > a,.hidden-bar .side-menu li.dropdown2 > a').on('click', function(e) {
e.preventDefault();
});
$('.price-block .features .arrow').on('click', function(e) {
$(e.target.offsetParent.offsetParent.offsetParent).toggleClass('active-show-hidden')
});
}
// Mobile Nav Hide Show
if($('.mobile-menu').length){
//$('.mobile-menu .menu-box').mCustomScrollbar();
var mobileMenuContent = $('.main-header .nav-outer .main-menu').html();
$('.mobile-menu .menu-box .menu-outer').append(mobileMenuContent);
$('.sticky-header .main-menu').append(mobileMenuContent);
//Hide / Show Submenu
$('.mobile-menu .navigation > li.dropdown2 > .dropdown2-btn').on('click', function(e) {
e.preventDefault();
var target = $(this).parent('li').children('ul');
if ($(target).is(':visible')){
$(this).parent('li').removeClass('open');
$(target).slideUp(500);
$(this).parents('.navigation').children('li.dropdown2').removeClass('open');
$(this).parents('.navigation').children('li.dropdown2 > ul').slideUp(500);
return false;
}else{
$(this).parents('.navigation').children('li.dropdown2').removeClass('open');
$(this).parents('.navigation').children('li.dropdown2').children('ul').slideUp(500);
$(this).parent('li').toggleClass('open');
$(this).parent('li').children('ul').slideToggle(500);
}
});
//3rd Level Nav
$('.mobile-menu .navigation > li.dropdown2 > ul > li.dropdown2 > .dropdown2-btn').on('click', function(e) {
e.preventDefault();
var targetInner = $(this).parent('li').children('ul');
if ($(targetInner).is(':visible')){
$(this).parent('li').removeClass('open');
$(targetInner).slideUp(500);
$(this).parents('.navigation > ul').find('li.dropdown2').removeClass('open');
$(this).parents('.navigation > ul').find('li.dropdown > ul').slideUp(500);
return false;
}else{
$(this).parents('.navigation > ul').find('li.dropdown2').removeClass('open');
$(this).parents('.navigation > ul').find('li.dropdown2 > ul').slideUp(500);
$(this).parent('li').toggleClass('open');
$(this).parent('li').children('ul').slideToggle(500);
}
});
//Menu Toggle Btn
$('.mobile-nav-toggler').on('click', function() {
$('body').addClass('mobile-menu-visible');
});
//Menu Toggle Btn
$('.mobile-menu .menu-backdrop, .close-btn').on('click', function() {
$('body').removeClass('mobile-menu-visible');
$('.mobile-menu .navigation > li').removeClass('open');
$('.mobile-menu .navigation li ul').slideUp(0);
});
$(document).keydown(function(e){
if(e.keyCode === 27) {
$('body').removeClass('mobile-menu-visible');
$('.mobile-menu .navigation > li').removeClass('open');
$('.mobile-menu .navigation li ul').slideUp(0);
}
});
}
var ajaxSubscribe = {
obj: {
subscribeEmail: $('#subscribe-email'),
subscribeButton: $('#subscribe-button'),
subscribeMsg: $('#subscribe-msg'),
subscribeContent: $("#subscribe-content"),
dataMailchimp: $('#subscribe-form').attr('data-mailchimp'),
success_message: '
Thank you for joining our mailing list! Please check your email for a confirmation link.
',
failure_message: '
Error! There was a problem processing your submission.
',
noticeError: '
{msg}
',
noticeInfo: '
{msg}
',
basicAction: 'mail/subscribe.php',
mailChimpAction: 'mail/subscribe-mailchimp.php'
},
eventLoad: function () {
var objUse = ajaxSubscribe.obj;
$(objUse.subscribeButton).on('click', function () {
if (window.ajaxCalling) return;
var isMailchimp = objUse.dataMailchimp === 'true';
if (isMailchimp) {
ajaxSubscribe.ajaxCall(objUse.mailChimpAction);
} else {
ajaxSubscribe.ajaxCall(objUse.basicAction);
}
});
},
ajaxCall: function (action) {
window.ajaxCalling = true;
var objUse = ajaxSubscribe.obj;
var messageDiv = objUse.subscribeMsg.html('').hide();
$.ajax({
url: action,
type: 'POST',
dataType: 'json',
data: {
subscribeEmail: objUse.subscribeEmail.val()
},
success: function (responseData, textStatus, jqXHR) {
if (responseData.status) {
objUse.subscribeContent.fadeOut(500, function () {
messageDiv.html(objUse.success_message).fadeIn(500);
});
} else {
switch (responseData.msg) {
case "email-required":
messageDiv.html(objUse.noticeError.replace('{msg}', 'Error!
Email is required.'));
break;
case "email-err":
messageDiv.html(objUse.noticeError.replace('{msg}', 'Error!
Email invalid.'));
break;
case "duplicate":
messageDiv.html(objUse.noticeError.replace('{msg}', 'Error!
Email is duplicate.'));
break;
case "filewrite":
messageDiv.html(objUse.noticeInfo.replace('{msg}', 'Error!
Mail list file is open.'));
break;
case "undefined":
messageDiv.html(objUse.noticeInfo.replace('{msg}', 'Error!
undefined error.'));
break;
case "api-error":
objUse.subscribeContent.fadeOut(500, function () {
messageDiv.html(objUse.failure_message);
});
}
messageDiv.fadeIn(500);
}
},
error: function (jqXHR, textStatus, errorThrown) {
alert('Connection error');
},
complete: function (data) {
window.ajaxCalling = false;
}
});
}
};
var alertBox = function () {
$(document).on('click', '.close', function (e) {
$(this).closest('.flat-alert').remove();
e.preventDefault();
})
};
// Dom Ready
$(function () {
$( window ).on('load resize',function() {
retinaLogos();
});
headerFixed();
ajaxContactForm();
ajaxSubscribe.eventLoad();
alertBox();
});
})(jQuery);