2025-05-30 03:09:08 -06:00

130 lines
2.5 KiB
JavaScript

/*
Name: Church
Written by: Okler Themes - (http://www.okler.net)
Theme Version: 12.1.0
*/
(($ => {
/*
* Validate
*/
if($('#contactFormMessage').get(0) ) {
$('#contactFormMessage').validate({
onkeyup: false,
onclick: false,
onfocusout: false,
errorPlacement(error, element) {
if (element.attr('type') == 'radio' || element.attr('type') == 'checkbox') {
error.appendTo(element.parent().parent());
} else {
error.insertAfter(element);
}
}
});
}
/*
* Ajax on Page
*/
const ajaxOnPagePortfolioDetails = {
pages: [],
$ajaxBox: $('#galleryAjaxBox'),
$ajaxBoxContent: $('#galleryAjaxBoxContent'),
build() {
const self = this;
$('a[data-ajax-on-page]').each(function() {
self.add($(this));
});
$(document).on('mousedown', 'a[data-ajax-on-page]', ev => {
if (ev.which == 2) {
ev.preventDefault();
return false;
}
});
},
add($el) {
const self = this, href = $el.attr('data-href');
self.pages.push(href);
$el.on('click', function(e) {
e.preventDefault();
self.show(self.pages.indexOf(href));
// Remove active from all items
$('a[data-ajax-on-page]').find('.thumb-info-wrapper').removeClass('active');
// Set active current selected item
$(this).find('.thumb-info-wrapper').addClass('active');
});
},
events() {
const self = this;
// Carousel
if ($.isFunction($.fn['themePluginCarousel'])) {
$(() => {
$('[data-plugin-carousel]:not(.manual), .owl-carousel:not(.manual)').each(function() {
const $this = $(this);
let opts;
const pluginOptions = theme.fn.getOptions($this.data('plugin-options'));
if (pluginOptions)
opts = pluginOptions;
$this.themePluginCarousel(opts);
});
});
}
},
show(i) {
const self = this;
self.$ajaxBoxContent.empty();
self.$ajaxBox.removeClass('ajax-box-init').addClass('ajax-box-loading');
$('html, body').animate({
scrollTop: self.$ajaxBox.offset().top - 100
}, 300, 'easeOutQuad');
// Ajax
$.ajax({
url: self.pages[i],
complete({responseText}) {
setTimeout(() => {
self.$ajaxBoxContent.html(responseText);
self.$ajaxBox.removeClass('ajax-box-loading');
self.events();
}, 1000);
}
});
}
};
if($('#galleryAjaxBox').get(0)) {
ajaxOnPagePortfolioDetails.build();
}
})).apply( this, [ jQuery ]);