( function ( theme, $ ) {
'use strict';
theme = theme || {};
$.extend( theme, {
mfpConfig: {
tClose: js_porto_vars.popup_close,
tLoading: '
',
gallery: {
tPrev: js_porto_vars.popup_prev,
tNext: js_porto_vars.popup_next,
tCounter: js_porto_vars.mfp_counter
},
image: {
tError: js_porto_vars.mfp_img_error
},
ajax: {
tError: js_porto_vars.mfp_ajax_error
},
callbacks: {
open: function () {
$( 'body' ).addClass( 'lightbox-opened' );
var fixed = this.st.fixedContentPos;
if ( fixed ) {
$( '#header.sticky-header .header-main.sticky, #header.sticky-header .main-menu-wrap, .fixed-header #header.sticky-header .header-main, .fixed-header #header.sticky-header .main-menu-wrap' ).css( theme.rtl_browser ? 'left' : 'right', theme.getScrollbarWidth() );
}
/* D3-Ahsan - Start */
var that = $( this._lastFocusedEl );
if ( ( that.closest( '.portfolios-lightbox' ).hasClass( 'with-thumbs' ) ) && $( document ).width() >= 1024 ) {
var portfolio_lightbox_thumbnails_base = that.closest( '.portfolios-lightbox.with-thumbs' ).find( '.porto-portfolios-lighbox-thumbnails' ).clone(),
magnificPopup = $.magnificPopup.instance;
$( 'body' ).prepend( portfolio_lightbox_thumbnails_base );
var $portfolios_lightbox_thumbnails = $( 'body > .porto-portfolios-lighbox-thumbnails' ),
$portfolios_lightbox_thumbnails_carousel = $portfolios_lightbox_thumbnails.children( '.owl-carousel' );
$portfolios_lightbox_thumbnails_carousel.themeCarousel( $portfolios_lightbox_thumbnails_carousel.data( 'plugin-options' ) );
$portfolios_lightbox_thumbnails_carousel.trigger( 'refresh.owl.carousel' );
var $carousel_items_wrapper = $portfolios_lightbox_thumbnails_carousel.find( '.owl-stage' );
$carousel_items_wrapper.find( '.owl-item' ).removeClass( 'current' );
$carousel_items_wrapper.find( '.owl-item' ).eq( magnificPopup.currItem.index ).addClass( 'current' );
$.magnificPopup.instance.next = function () {
var magnificPopup = $.magnificPopup.instance;
$.magnificPopup.proto.next.call( this );
$carousel_items_wrapper.find( '.owl-item' ).removeClass( 'current' );
$carousel_items_wrapper.find( '.owl-item' ).eq( magnificPopup.currItem.index ).addClass( 'current' );
};
$.magnificPopup.instance.prev = function () {
var magnificPopup = $.magnificPopup.instance;
$.magnificPopup.proto.prev.call( this );
$carousel_items_wrapper.find( '.owl-item' ).removeClass( 'current' );
$carousel_items_wrapper.find( '.owl-item' ).eq( magnificPopup.currItem.index ).addClass( 'current' );
};
$carousel_items_wrapper.find( '.owl-item' ).on( 'click', function () {
$carousel_items_wrapper.find( '.owl-item' ).removeClass( 'current' );
$.magnificPopup.instance.goTo( $( this ).index() );
$( this ).addClass( 'current' );
} );
}
/* End - D3-Ahsan */
},
close: function () {
$( 'body' ).removeClass( 'lightbox-opened' );
var fixed = this.st.fixedContentPos;
if ( fixed ) {
$( '#header.sticky-header .header-main.sticky, #header.sticky-header .main-menu-wrap, .fixed-header #header.sticky-header .header-main, .fixed-header #header.sticky-header .main-menu-wrap' ).css( theme.rtl_browser ? 'left' : 'right', '' );
}
$( '.owl-carousel .owl-stage' ).each( function () {
var $this = $( this ),
w = $this.width() + parseInt( $this.css( 'padding-left' ) ) + parseInt( $this.css( 'padding-right' ) );
$this.css( { 'width': w + 200 } );
setTimeout( function () {
$this.css( { 'width': w } );
}, 0 );
} );
/* D3-Ahsan - Start */
var that = $( this._lastFocusedEl );
if ( ( that.parents( '.portfolios-lightbox' ).hasClass( 'with-thumbs' ) ) && $( document ).width() >= 1024 ) {
$( ' body > .porto-portfolios-lighbox-thumbnails' ).remove();
}
/* End - D3-Ahsan */
}
}
},
} );
} ).apply( this, [ window.theme, jQuery ] );
// Lightbox
( function ( theme, $ ) {
'use strict';
theme = theme || {};
var instanceName = '__lightbox';
var Lightbox = function ( $el, opts ) {
return this.initialize( $el, opts );
};
Lightbox.defaults = {
callbacks: {
open: function () {
$( 'body' ).addClass( 'lightbox-opened' );
},
close: function () {
$( 'body' ).removeClass( 'lightbox-opened' );
}
}
};
Lightbox.prototype = {
initialize: function ( $el, opts ) {
if ( $el.data( instanceName ) ) {
return this;
}
this.$el = $el;
this
.setData()
.setOptions( opts )
.build();
return this;
},
setData: function () {
this.$el.data( instanceName, this );
return this;
},
setOptions: function ( opts ) {
this.options = $.extend( true, {}, Lightbox.defaults, theme.mfpConfig, opts, {
wrapper: this.$el
} );
return this;
},
build: function () {
if ( !( $.isFunction( $.fn.magnificPopup ) ) ) {
return this;
}
this.options.wrapper.magnificPopup( this.options );
return this;
}
};
// expose to scope
$.extend( theme, {
Lightbox: Lightbox
} );
// jquery plugin
$.fn.themeLightbox = function ( opts ) {
return this.map( function () {
var $this = $( this );
if ( $this.data( instanceName ) ) {
return $this.data( instanceName );
} else {
return new theme.Lightbox( $this, opts );
}
} );
}
} ).apply( this, [ window.theme, jQuery ] );
// Visual Composer Image Zoom
( function ( theme, $ ) {
'use strict';
theme = theme || {};
var instanceName = '__toggle';
var VcImageZoom = function ( $el, opts ) {
return this.initialize( $el, opts );
};
VcImageZoom.defaults = {
};
VcImageZoom.prototype = {
initialize: function ( $el, opts ) {
if ( $el.data( instanceName ) ) {
return this;
}
this.$el = $el;
this
.setData()
.setOptions( opts )
.build();
return this;
},
setData: function () {
this.$el.data( instanceName, this );
return this;
},
setOptions: function ( opts ) {
this.options = $.extend( true, {}, VcImageZoom.defaults, opts, {
wrapper: this.$el
} );
return this;
},
build: function () {
var self = this,
$el = this.options.container;
$el.parent().magnificPopup( $.extend( true, {}, theme.mfpConfig, {
delegate: ".porto-vc-zoom",
gallery: {
enabled: true
},
mainClass: 'mfp-with-zoom',
zoom: {
enabled: true,
duration: 300
},
type: 'image'
} ) );
return this;
}
};
// expose to scope
$.extend( theme, {
VcImageZoom: VcImageZoom
} );
// jquery plugin
$.fn.themeVcImageZoom = function ( opts ) {
return this.map( function () {
var $this = $( this );
if ( $this.data( instanceName ) ) {
return $this.data( instanceName );
} else {
return new theme.VcImageZoom( $this, opts );
}
} );
}
} ).apply( this, [ window.theme, jQuery ] );
// Post Ajax on Modal
( function ( theme, $ ) {
'use strict';
theme = theme || {};
var $rev_sliders;
$.extend( theme, {
PostAjaxModal: {
defaults: {
elements: '.page-portfolios'
},
initialize: function ( $elements, post_type ) {
this.$elements = ( $elements || $( this.defaults.elements ) );
if ( typeof post_type == 'undefined' ) {
post_type = 'portfolio';
}
this.build( post_type );
return this;
},
build: function ( post_type ) {
var parentobj = this,
postAjaxOnModal = {
$wrapper: null,
modals: [],
currentModal: 0,
total: 0,
p_type: 'portfolio',
build: function ( $this, p_type ) {
var self = this;
self.$wrapper = $this;
if ( !self.$wrapper ) {
return;
}
self.modals = [];
self.total = 0;
self.p_type = p_type;
$this.find( 'a[data-ajax-on-modal]' ).each( function () {
self.add( $( this ) );
} );
$this.off( 'mousedown', 'a[data-ajax-on-modal]' ).on( 'mousedown', 'a[data-ajax-on-modal]', function ( ev ) {
if ( ev.which == 2 ) {
ev.preventDefault();
return false;
}
} );
},
add: function ( $el ) {
var self = this,
href = $el.attr( 'href' ),
index = self.total;
self.modals.push( { src: href } );
self.total++;
$el.off( 'click' ).on( 'click', function ( e ) {
e.preventDefault();
self.show( index );
return false;
} );
},
next: function () {
var self = this;
if ( self.currentModal + 1 < self.total ) {
self.show( self.currentModal + 1 );
} else {
self.show( 0 );
}
},
prev: function () {
var self = this;
if ( ( self.currentModal - 1 ) >= 0 ) {
self.show( self.currentModal - 1 );
} else {
self.show( self.total - 1 );
}
},
show: function ( i ) {
var self = this;
self.currentModal = i;
if ( i < 0 || i > ( self.total - 1 ) ) {
return false;
}
$.magnificPopup.close();
$.magnificPopup.open( $.extend( true, {}, theme.mfpConfig, {
type: 'ajax',
items: self.modals,
gallery: {
enabled: true
},
ajax: {
settings: {
type: 'post',
data: {
ajax_action: self.p_type + '_ajax_modal'
}
}
},
mainClass: self.p_type + '-ajax-modal',
fixedContentPos: false,
callbacks: {
parseAjax: function ( mfpResponse ) {
var $response = $( mfpResponse.data ),
$post = $response.find( '#content article.' + self.p_type ),
$vc_css = $response.filter( 'style[data-type]:not("")' ),
vc_css = '';
$vc_css.each( function () {
vc_css += $( this ).text();
} );
if ( $( '#' + self.p_type + 'AjaxCSS' ).get( 0 ) ) {
$( '#' + self.p_type + 'AjaxCSS' ).text( vc_css );
} else {
$( '' ).appendTo( "head" )
}
$post.find( '.' + self.p_type + '-nav-all' ).html( '' );
$post.find( '.' + self.p_type + '-nav' ).html( '' );
$post.find( '.elementor-invisible' ).removeClass( 'elementor-invisible' );
mfpResponse.data = '' + $post.html() + '
';
},
ajaxContentAdded: function () {
// Wrapper
var $wrapper = $( '.' + self.p_type + '-ajax-modal' );
// Close
$wrapper.find( 'a[data-ajax-' + self.p_type + '-close]' ).on( 'click', function ( e ) {
e.preventDefault();
$.magnificPopup.close();
return false;
} );
$rev_sliders = $wrapper.find( '.rev_slider, rs-module' );
// Remove Next and Close
if ( self.modals.length <= 1 ) {
$wrapper.find( 'a[data-ajax-' + self.p_type + '-prev], a[data-ajax-' + self.p_type + '-next]' ).remove();
} else {
// Prev
$wrapper.find( 'a[data-ajax-' + self.p_type + '-prev]' ).on( 'click', function ( e ) {
e.preventDefault();
if ( $rev_sliders && $rev_sliders.get( 0 ) ) {
try { $rev_sliders.revkill(); } catch ( err ) { }
}
$wrapper.find( '.mfp-arrow-left' ).trigger( 'click' );
return false;
} );
// Next
$wrapper.find( 'a[data-ajax-' + self.p_type + '-next]' ).on( 'click', function ( e ) {
e.preventDefault();
if ( $rev_sliders && $rev_sliders.get( 0 ) ) {
try { $rev_sliders.revkill(); } catch ( err ) { }
}
$wrapper.find( '.mfp-arrow-right' ).trigger( 'click' );
return false;
} );
}
if ( 'portfolio' == self.p_type ) {
$( window ).trigger( 'resize' );
}
porto_init();
theme.refreshVCContent( $wrapper );
setTimeout( function () {
var videos = $wrapper.find( 'video' );
if ( videos.get( 0 ) ) {
videos.each( function () {
$( this )[ 0 ].play();
$( this ).parent().parent().parent().find( '.video-controls' ).attr( 'data-action', 'play' );
$( this ).parent().parent().parent().find( '.video-controls' ).html( '' );
} );
}
}, 600 );
$wrapper.off( 'scroll' ).on( 'scroll', function () {
$.fn.appear.run();
} );
},
change: function () {
$( '.mfp-wrap .ajax-container' ).click();
},
beforeClose: function () {
if ( $rev_sliders && $rev_sliders.get( 0 ) ) {
try { $rev_sliders.revkill(); } catch ( err ) { }
}
// Wrapper
var $wrapper = $( '.' + self.p_type + '-ajax-modal' );
$wrapper.off( 'scroll' );
}
}
} ), i );
}
};
parentobj.$elements.each( function () {
var $this = $( this );
if ( !$this.find( 'a[data-ajax-on-modal]' ).get( 0 ) )
return;
postAjaxOnModal.build( $this, post_type );
$this.data( post_type + 'AjaxOnModal', postAjaxOnModal );
} );
return parentobj;
}
}
} );
// Key Press
$( document.documentElement ).on( 'keydown', function ( e ) {
try {
if ( e.keyCode == 37 || e.keyCode == 39 ) {
if ( $rev_sliders && $rev_sliders.get( 0 ) ) {
$rev_sliders.revkill();
}
}
} catch ( err ) { }
} );
} ).apply( this, [ window.theme, jQuery ] );
// Portfolio Ajax on Page
( function ( theme, $ ) {
'use strict';
theme = theme || {};
var activePortfolioAjaxOnPage;
$.extend( theme, {
PortfolioAjaxPage: {
defaults: {
elements: '.page-portfolios'
},
initialize: function ( $elements ) {
this.$elements = ( $elements || $( this.defaults.elements ) );
this.build();
return this;
},
build: function () {
var self = this;
self.$elements.each( function () {
var $this = $( this );
if ( !$this.find( '#portfolioAjaxBox' ).get( 0 ) )
return;
var $container = $( this ),
portfolioAjaxOnPage = {
$wrapper: $container,
pages: [],
currentPage: 0,
total: 0,
$ajaxBox: $this.find( '#portfolioAjaxBox' ),
$ajaxBoxContent: $this.find( '#portfolioAjaxBoxContent' ),
build: function () {
var self = this;
self.pages = [];
self.total = 0;
$this.find( 'a[data-ajax-on-page]' ).each( function () {
self.add( $( this ) );
} );
$this.off( 'mousedown', 'a[data-ajax-on-page]' ).on( 'mousedown', 'a[data-ajax-on-page]', function ( ev ) {
if ( ev.which == 2 ) {
ev.preventDefault();
return false;
}
} );
},
add: function ( $el ) {
var self = this,
href = $el.attr( 'href' );
self.pages.push( href );
self.total++;
$el.off( 'click' ).on( 'click', function ( e ) {
e.preventDefault();
/* D3-Start */
var _class = e.target.className
if ( _class == 'owl-next' ) {
return false;
} else if ( _class == 'owl-prev' ) {
return false;
} else {
self.show( self.pages.indexOf( href ) );
}
/* End-D3 */
return false;
} );
},
events: function () {
var self = this;
// Close
$this.off( 'click', 'a[data-ajax-portfolio-close]' ).on( 'click', 'a[data-ajax-portfolio-close]', function ( e ) {
e.preventDefault();
self.close();
return false;
} );
if ( self.total <= 1 ) {
$( 'a[data-ajax-portfolio-prev], a[data-ajax-portfolio-next]' ).remove();
} else {
// Prev
$this.off( 'click', 'a[data-ajax-portfolio-prev]' ).on( 'click', 'a[data-ajax-portfolio-prev]', function ( e ) {
e.preventDefault();
self.prev();
return false;
} );
// Next
$this.off( 'click', 'a[data-ajax-portfolio-next]' ).on( 'click', 'a[data-ajax-portfolio-next]', function ( e ) {
e.preventDefault();
self.next();
return false;
} );
}
},
close: function () {
var self = this;
if ( self.$ajaxBoxContent.find( '.rev_slider, rs-module' ).get( 0 ) ) {
try { self.$ajaxBoxContent.find( '.rev_slider, rs-module' ).revkill(); } catch ( err ) { }
}
self.$ajaxBoxContent.empty();
self.$ajaxBox.removeClass( 'ajax-box-init' ).removeClass( 'ajax-box-loading' );
},
next: function () {
var self = this;
if ( self.currentPage + 1 < self.total ) {
self.show( self.currentPage + 1 );
} else {
self.show( 0 );
}
},
prev: function () {
var self = this;
if ( ( self.currentPage - 1 ) >= 0 ) {
self.show( self.currentPage - 1 );
} else {
self.show( self.total - 1 );
}
},
show: function ( i ) {
var self = this;
activePortfolioAjaxOnPage = null;
if ( self.$ajaxBoxContent.find( '.rev_slider, rs-module' ).get( 0 ) ) {
try { self.$ajaxBoxContent.find( '.rev_slider, rs-module' ).revkill(); } catch ( err ) { }
}
self.$ajaxBoxContent.empty();
self.$ajaxBox.removeClass( 'ajax-box-init' ).addClass( 'ajax-box-loading' );
theme.scrolltoContainer( self.$ajaxBox );
self.currentPage = i;
if ( i < 0 || i > ( self.total - 1 ) ) {
self.close();
return false;
}
// Ajax
$.ajax( {
url: self.pages[ i ],
complete: function ( data ) {
var $response = $( data.responseText ),
$portfolio = $response.find( '#content article.portfolio' ),
$vc_css = $response.filter( 'style[data-type]:not("")' ),
vc_css = '';
if ( $( '#portfolioAjaxCSS' ).get( 0 ) ) {
$( '#portfolioAjaxCSS' ).text( vc_css );
} else {
$( '' ).appendTo( "head" )
}
$portfolio.find( '.portfolio-nav-all' ).html( '' );
$portfolio.find( '.portfolio-nav' ).html( '' );
self.$ajaxBoxContent.html( $portfolio.html() ).append( '' );
self.$ajaxBox.removeClass( 'ajax-box-loading' );
$( window ).trigger( 'resize' );
porto_init();
theme.refreshVCContent( self.$ajaxBoxContent );
self.events();
activePortfolioAjaxOnPage = self;
self.$ajaxBoxContent.find( '.lightbox:not(.manual)' ).each( function () {
var $this = $( this ),
opts;
var pluginOptions = $this.data( 'plugin-options' );
if ( pluginOptions )
opts = pluginOptions;
$this.themeLightbox( opts );
} );
}
} );
}
};
portfolioAjaxOnPage.build();
$this.data( 'portfolioAjaxOnPage', portfolioAjaxOnPage );
} );
return self;
}
}
} );
// Key Press
$( document.documentElement ).on( 'keyup', function ( e ) {
try {
if ( !activePortfolioAjaxOnPage ) return;
// Next
if ( e.keyCode == 39 ) {
activePortfolioAjaxOnPage.next();
}
// Prev
if ( e.keyCode == 37 ) {
activePortfolioAjaxOnPage.prev();
}
} catch ( err ) { }
} );
} ).apply( this, [ window.theme, jQuery ] );
// Post Filter
( function ( theme, $ ) {
'use strict';
theme = theme || {};
$.extend( theme, {
PostFilter: {
defaults: {
elements: '.portfolio-filter'
},
initialize: function ( $elements, post_type ) {
this.$elements = ( $elements || $( this.defaults.elements ) );
this.post_type = ( typeof post_type == 'undefined' ? 'portfolio' : post_type );
this.build();
return this;
},
build: function () {
var self = this;
self.$elements.each( function () {
var $this = $( this );
$this.find( 'li' ).on( 'click', function ( e ) {
e.preventDefault();
if ( $( this ).hasClass( 'active' ) ) {
return;
}
var selector = $( this ).attr( 'data-filter' ),
position = $this.data( 'position' ),
$parent;
$this.find( '.active' ).removeClass( 'active' );
if ( position == 'sidebar' ) {
$parent = $( '.main-content .page-' + self.post_type + 's' );
//theme.scrolltoContainer($parent);
$( '.sidebar-overlay' ).click();
} else if ( position == 'global' ) {
$parent = $( '.main-content .page-' + self.post_type + 's' );
} else {
$parent = $( this ).closest( '.page-' + self.post_type + 's' );
}
if ( 'faq' == self.post_type ) {
$parent.find( '.faq' ).each( function () {
var $that = $( this ), easing = "easeInOutQuart", timeout = 300;
if ( selector == '*' ) {
if ( $that.css( 'display' ) == 'none' ) $that.stop( true ).slideDown( timeout, easing, function () {
$( this ).attr( 'style', '' ).show();
} );
selected++;
} else {
if ( $that.hasClass( selector ) ) {
if ( $that.css( 'display' ) == 'none' ) $that.stop( true ).slideDown( timeout, easing, function () {
$( this ).attr( 'style', '' ).show();
} );
selected++;
} else {
if ( $that.css( 'display' ) != 'none' ) $that.stop( true ).slideUp( timeout, easing, function () {
$( this ).attr( 'style', '' ).hide();
} );
}
}
} );
if ( !selected && $parent.find( '.faqs-infinite' ).length && typeof ( $.fn.infinitescroll ) != 'undefined' ) {
$parent.find( '.faqs-infinite' ).infinitescroll( 'retrieve' );
}
} else if ( $parent.hasClass( 'portfolios-timeline' ) ) {
var selected = 0;
$parent.find( '.portfolio' ).each( function () {
var $that = $( this ), easing = "easeInOutQuart", timeout = 300;
if ( selector == '*' ) {
if ( $that.css( 'display' ) == 'none' ) $that.stop( true ).slideDown( timeout, easing, function () {
$( this ).attr( 'style', '' ).show();
} );
selected++;
} else {
if ( $that.hasClass( selector ) ) {
if ( $that.css( 'display' ) == 'none' ) $that.stop( true ).slideDown( timeout, easing, function () {
$( this ).attr( 'style', '' ).show();
} );
selected++;
} else {
if ( $that.css( 'display' ) != 'none' ) $that.stop( true ).slideUp( timeout, easing, function () {
$( this ).attr( 'style', '' ).hide();
} );
}
}
} );
if ( !selected && $parent.find( '.portfolios-infinite' ).length && typeof ( $.fn.infinitescroll ) != 'undefined' ) {
$parent.find( '.portfolios-infinite' ).infinitescroll( 'retrieve' );
}
setTimeout( function () {
theme.FilterZoom.initialize( $parent );
}, 400 );
} else {
$parent.find( '.' + self.post_type + '-row' ).isotope( {
filter: selector == '*' ? selector : '.' + selector
} );
}
$( this ).addClass( 'active' );
if ( position == 'sidebar' ) {
self.$elements.each( function () {
var $that = $( this );
if ( $that == $this && $that.data( 'position' ) != 'sidebar' ) return;
$that.find( 'li' ).removeClass( 'active' );
$that.find( 'li[data-filter="' + selector + '"]' ).addClass( 'active' );
} );
}
window.location.hash = '#' + selector;
theme.refreshVCContent();
} );
} );
function hashchange() {
var $filter = $( self.$elements.get( 0 ) ), hash = window.location.hash;
if ( hash ) {
var $o = $filter.find( 'li[data-filter="' + hash.replace( '#', '' ) + '"]' );
if ( !$o.hasClass( 'active' ) ) {
$o.click();
}
}
}
$( window ).on( 'hashchange', hashchange );
hashchange();
return self;
}
}
} );
} ).apply( this, [ window.theme, jQuery ] );
// Member Ajax on Page
( function ( theme, $ ) {
'use strict';
theme = theme || {};
var activeMemberAjaxOnPage;
$.extend( theme, {
MemberAjaxPage: {
defaults: {
elements: '.page-members'
},
initialize: function ( $elements ) {
this.$elements = ( $elements || $( this.defaults.elements ) );
this.build();
return this;
},
build: function () {
var self = this;
self.$elements.each( function () {
var $this = $( this );
if ( !$this.find( '#memberAjaxBox' ).get( 0 ) )
return;
var $container = $( this ),
memberAjaxOnPage = {
$wrapper: $container,
pages: [],
currentPage: 0,
total: 0,
$ajaxBox: $this.find( '#memberAjaxBox' ),
$ajaxBoxContent: $this.find( '#memberAjaxBoxContent' ),
build: function () {
var self = this;
self.pages = [];
self.total = 0;
$this.find( 'a[data-ajax-on-page]' ).each( function () {
self.add( $( this ) );
} );
$this.off( 'mousedown', 'a[data-ajax-on-page]' ).on( 'mousedown', 'a[data-ajax-on-page]', function ( ev ) {
if ( ev.which == 2 ) {
ev.preventDefault();
return false;
}
} );
},
add: function ( $el ) {
var self = this,
href = $el.attr( 'href' );
self.pages.push( href );
self.total++;
$el.off( 'click' ).on( 'click', function ( e ) {
e.preventDefault();
self.show( self.pages.indexOf( href ) );
return false;
} );
},
next: function () {
var self = this;
if ( self.currentPage + 1 < self.total ) {
self.show( self.currentPage + 1 );
} else {
self.show( 0 );
}
},
prev: function () {
var self = this;
if ( ( self.currentPage - 1 ) >= 0 ) {
self.show( self.currentPage - 1 );
} else {
self.show( self.total - 1 );
}
},
show: function ( i ) {
var self = this;
activeMemberAjaxOnPage = null;
if ( self.$ajaxBoxContent.find( '.rev_slider, rs-module' ).get( 0 ) ) {
try { self.$ajaxBoxContent.find( '.rev_slider, rs-module' ).revkill(); } catch ( err ) { }
}
self.$ajaxBoxContent.empty();
self.$ajaxBox.removeClass( 'ajax-box-init' ).addClass( 'ajax-box-loading' );
theme.scrolltoContainer( self.$ajaxBox );
self.currentPage = i;
if ( i < 0 || i > ( self.total - 1 ) ) {
self.close();
return false;
}
// Ajax
$.ajax( {
url: self.pages[ i ],
complete: function ( data ) {
var $response = $( data.responseText ),
$member = $response.find( '#content article.member' ),
$vc_css = $response.filter( 'style[data-type]:not("")' ),
vc_css = '';
$vc_css.each( function () {
vc_css += $( this ).text();
} );
if ( $( '#memberAjaxCSS' ).get( 0 ) ) {
$( '#memberAjaxCSS' ).text( vc_css );
} else {
$( '' ).appendTo( "head" )
}
var $append = self.$ajaxBox.find( '.ajax-content-append' ), html = '';
if ( $append.length ) html = $append.html();
self.$ajaxBoxContent.html( $member.html() ).prepend( '' ).append( '' + html );
self.$ajaxBox.removeClass( 'ajax-box-loading' );
$( window ).trigger( 'resize' );
porto_init();
theme.refreshVCContent( self.$ajaxBoxContent );
activeMemberAjaxOnPage = self;
}
} );
}
};
memberAjaxOnPage.build();
$this.data( 'memberAjaxOnPage', memberAjaxOnPage );
} );
return self;
}
}
} );
// Key Press
$( document.documentElement ).on( 'keyup', function ( e ) {
try {
if ( !activeMemberAjaxOnPage ) return;
// Next
if ( e.keyCode == 39 ) {
activeMemberAjaxOnPage.next();
}
// Prev
if ( e.keyCode == 37 ) {
activeMemberAjaxOnPage.prev();
}
} catch ( err ) { }
} );
} ).apply( this, [ window.theme, jQuery ] );
// Filter Zoom
( function ( theme, $ ) {
'use strict';
theme = theme || {};
$.extend( theme, {
FilterZoom: {
defaults: {
elements: null
},
initialize: function ( $elements ) {
this.$elements = ( $elements || this.defaults.elements );
this.build();
return this;
},
build: function () {
var self = this;
self.$elements.each( function () {
var $this = $( this ),
zoom = $this.find( '.zoom, .thumb-info-zoom' ).get( 0 );
if ( !zoom ) return;
$this.find( '.zoom, .thumb-info-zoom' ).off( 'click' );
var links = [];
var i = 0;
$this.find( 'article' ).each( function () {
var $that = $( this );
if ( $that.css( 'display' ) != 'none' ) {
var $zoom = $that.find( '.zoom, .thumb-info-zoom' ),
slide,
src = $zoom.data( 'src' ),
title = $zoom.data( 'title' );
$zoom.data( 'index', i );
if ( Array.isArray( src ) ) {
$.each( src, function ( index, value ) {
slide = {};
slide.src = value;
slide.title = title[ index ];
links[ i ] = slide;
i++;
} );
} else {
slide = {};
slide.src = src;
slide.title = title;
links[ i ] = slide;
i++;
}
}
} );
$this.find( 'article' ).each( function () {
var $that = $( this );
if ( $that.css( 'display' ) != 'none' ) {
$that.off( 'click', '.zoom, .thumb-info-zoom' ).on( 'click', '.zoom, .thumb-info-zoom', function ( e ) {
var $zoom = $( this ), $parent = $zoom.parents( '.thumb-info' ), offset = 0;
if ( $parent.get( 0 ) ) {
var $slider = $parent.find( '.porto-carousel' );
if ( $slider.get( 0 ) ) {
offset = $slider.data( 'owl.carousel' ).current() - $slider.find( '.cloned' ).length / 2;
}
}
e.preventDefault();
if ( $.fn.magnificPopup ) {
$.magnificPopup.close();
$.magnificPopup.open( $.extend( true, {}, theme.mfpConfig, {
items: links,
gallery: {
enabled: true
},
type: 'image'
} ), $zoom.data( 'index' ) + offset );
}
return false;
} );
}
} );
} );
return self;
}
}
} );
} ).apply( this, [ window.theme, jQuery ] );
/* initialize */
jQuery( document ).ready( function ( $ ) {
'use strict';
// Visual Composer Image Zoom
if ( $.isFunction( $.fn.themeVcImageZoom ) ) {
$( function () {
var $galleryParent = null;
$( '.porto-vc-zoom:not(.manual)' ).each( function () {
var $this = $( this ),
opts,
gallery = $this.attr( 'data-gallery' );
var pluginOptions = $this.data( 'plugin-options' );
if ( pluginOptions )
opts = pluginOptions;
if ( typeof opts == "undefined" ) {
opts = {};
}
opts.container = $this.parent();
if ( gallery == 'true' ) {
var container = 'vc_row';
if ( $this.attr( 'data-container' ) )
container = $this.attr( 'data-container' );
var $parent = $( $this.closest( '.' + container ).get( 0 ) );
if ( $parent.length > 0 && $galleryParent != null && $galleryParent.is( $parent ) ) {
return;
} else if ( $parent.length > 0 ) {
$galleryParent = $parent;
}
if ( $galleryParent != null && $galleryParent.length > 0 ) {
opts.container = $galleryParent;
}
}
$this.themeVcImageZoom( opts );
} );
} );
}
function porto_modal_open( $this ) {
var trigger = $this.data( 'trigger-id' ),
overlayClass = $this.data( 'overlay-class' ),
extraClass = $this.data( 'extra-class' ) ? $this.data( 'extra-class' ) : '',
type = $this.data( 'type' );
if ( typeof trigger != 'undefined'/* && $('#' + escape(trigger)).length > 0*/ ) {
if ( typeof type == 'undefined' ) {
type = 'inline';
}
if ( type == 'inline' ) {
trigger = '#' + escape( trigger );
}
var args = {
items: {
src: trigger
},
type: type,
mainClass: extraClass
};
if ( $this.hasClass( 'porto-onload' ) ) {
args[ 'callbacks' ] = {
'beforeClose': function () {
if ( $( '.mfp-wrap .porto-modal-content .porto-disable-modal-onload' ).length && ($( '.mfp-wrap .porto-modal-content .porto-disable-modal-onload' ).is( ':checked' ) || $( '.mfp-wrap .porto-modal-content .porto-disable-modal-onload input[type="checkbox"]' ).is( ':checked' ))) {
$.cookie( 'porto_modal_disable_onload', 'true', { expires: 7 } );
}
}
};
}
if ( typeof overlayClass != "undefined" && overlayClass ) {
args.mainClass += escape( overlayClass );
}
$.magnificPopup.open( $.extend( true, {}, theme.mfpConfig, args ), 0 );
}
}
function porto_init_magnific_popup_functions() {
$( '.lightbox:not(.manual)' ).each( function () {
var $this = $( this ),
opts;
var pluginOptions = $this.data( 'plugin-options' );
if ( pluginOptions )
opts = pluginOptions;
$this.themeLightbox( opts );
} );
// Popup with video or map
$( '.porto-popup-iframe' ).magnificPopup( $.extend( true, {}, theme.mfpConfig, {
disableOn: 700,
type: 'iframe',
mainClass: 'mfp-fade',
removalDelay: 160,
preloader: false,
fixedContentPos: false
} ) );
// Popup with ajax
$( '.porto-popup-ajax' ).magnificPopup( $.extend( true, {}, theme.mfpConfig, {
type: 'ajax'
} ) );
// Popup with content
$( '.porto-popup-content' ).each( function () {
var animation = $( this ).attr( 'data-animation' );
$( this ).magnificPopup( $.extend( true, {}, theme.mfpConfig, {
type: 'inline',
fixedContentPos: false,
fixedBgPos: true,
overflowY: 'auto',
closeBtnInside: true,
preloader: false,
midClick: true,
removalDelay: 300,
mainClass: animation
} ) );
} );
// Porto Modal
$( '.popup-youtube, .popup-vimeo, .popup-gmaps' ).each( function ( index ) {
var overlayClass = $( this ).find( '.porto-modal-trigger' ).data( 'overlay-class' ),
args = {
type: 'iframe',
removalDelay: 160,
preloader: false,
fixedContentPos: false
};
if ( typeof overlayClass != "undefined" && overlayClass ) {
args.mainClass = escape( overlayClass );
}
$( this ).magnificPopup( args );
} );
if ( $( '.porto-modal-trigger.porto-onload' ).length > 0 ) {
var $obj = $( '.porto-modal-trigger.porto-onload' ).eq( 0 ),
timeout = 0;
if ( $obj.data( 'timeout' ) ) {
timeout = parseInt( $obj.data( 'timeout' ), 10 );
}
setTimeout( function () {
porto_modal_open( $obj );
}, timeout );
}
$( '.porto-modal-trigger' ).on( 'click', function ( e ) {
e.preventDefault();
porto_modal_open( $( this ) );
} );
/* Woocommerce */
// login popup
$( '.login-popup .porto-link-login, .login-popup .porto-link-register' ).magnificPopup( {
items: {
src: theme.ajax_url + '?action=porto_account_login_popup&nonce=' + js_porto_vars.porto_nonce,
type: 'ajax'
},
tLoading: '',
callbacks: {
ajaxContentAdded: function () {
$( window ).trigger( 'porto_login_popup_opened' );
}
}
} );
$( '.product-images' ).magnificPopup(
$.extend( true, {}, theme.mfpConfig, {
delegate: '.img-thumbnail a.zoom',
type: 'image',
gallery: { enabled: true }
} )
);
}
if ( $.isFunction( $.fn.magnificPopup ) ) {
porto_init_magnific_popup_functions();
} else {
setTimeout( function () {
if ( $.isFunction( $.fn.magnificPopup ) ) {
porto_init_magnific_popup_functions();
}
}, 500 );
}
// Post Ajax Modal
if ( typeof theme.PostAjaxModal !== 'undefined' ) {
// Portfolio
if ( $( '.page-portfolios' ).length ) {
theme.PostAjaxModal.initialize( $( '.page-portfolios' ) );
}
// Member
if ( $( '.page-members' ).length ) {
theme.PostAjaxModal.initialize( $( '.page-members' ), 'member' );
}
}
// Portfolio Ajax on Page
if ( typeof theme.PortfolioAjaxPage !== 'undefined' ) {
theme.PortfolioAjaxPage.initialize();
}
// Post Filter
if ( typeof theme.PostFilter !== 'undefined' ) {
// Portfolio
if ( $( '.portfolio-filter' ).length ) {
theme.PostFilter.initialize( $( '.portfolio-filter' ), 'portfolio' );
}
// Member
if ( $( '.member-filter' ).length ) {
theme.PostFilter.initialize( $( '.member-filter' ), 'member' );
}
// Faq
if ( $( '.faq-filter' ).length ) {
theme.PostFilter.initialize( $( '.faq-filter' ), 'faq' );
}
}
// Member Ajax on Page
if ( typeof theme.MemberAjaxPage !== 'undefined' ) {
theme.MemberAjaxPage.initialize();
}
// Filter Zooms
if ( typeof theme.FilterZoom !== 'undefined' ) {
// Portfolio Filter Zoom
theme.FilterZoom.initialize( $( '.page-portfolios' ) );
// Member Filter Zoom
theme.FilterZoom.initialize( $( '.page-members' ) );
// Posts Related Style Filter Zoom
theme.FilterZoom.initialize( $( '.blog-posts-related' ) );
}
// close popup using esc key
var $minicart_offcanvas = $('.minicart-offcanvas'),
$mobile_sidebar = $('.mobile-sidebar'),
$mobile_panel = $('#side-nav-panel'),
$html = $('html');
if ( $minicart_offcanvas.length || $mobile_sidebar.length || $mobile_panel.length || $('.skeleton-loading').length ) {
$(document.documentElement).on('keyup', function(e) {
try {
if ( e.keyCode == 27 ) {
$minicart_offcanvas.removeClass( 'minicart-opened' );
if ($mobile_sidebar.length) {
$html.removeClass('filter-sidebar-opened');
$html.removeClass('sidebar-opened');
$('.sidebar-overlay').removeClass('active');
}
if ($mobile_panel.length && $html.hasClass('panel-opened')) {
$html.removeClass('panel-opened');
$('.panel-overlay').removeClass('active');
}
}
} catch ( err ) { }
});
$('.skeleton-loading').on('skeleton-loaded', function() {
$mobile_sidebar = $('.mobile-sidebar');
});
}
} );