File: /var/www/html/bwcsports-site/wp-content/plugins/salient-core/js/fallback/salient-portfolio.js
/**
* Salient Portfolio.
*
* @author ThemeNectar
*/
/* global Waypoint */
/* global imagesLoaded */
/* global nectar_theme_info */
(function( $ ) {
"use strict";
/*-------------------------------------------------------------------------*/
/* 1. Salient Portfolio Element
/*-------------------------------------------------------------------------*/
function SalientPortfolio(el, fullWidthContentColumns) {
this.$el = el;
this.fullWidthContentColumns = fullWidthContentColumns;
this.$window = $(window);
this.onMobile = false;
this.clearIsoAnimation = null;
this.mediaQuerySize = '';
this.portfolioFiltersInit();
this.mouseEventHandler();
this.masonryInit();
this.resizeHandler();
if( this.$el.find('.inner-wrap[data-animation="perspective"]').length > 0) {
this.perspectiveAnimationInit();
}
this.portfolioAccentColor();
this.isotopeCatSelection();
this.portfolioCommentOrder();
}
SalientPortfolio.prototype.masonryInit = function() {
var instance = this;
this.$el.imagesLoaded(function(){
// initial call to setup isotope.
var $layoutMode = ( instance.$el.hasClass('masonry-items')) ? 'packery' : 'fitRows';
var $startingFilter = (instance.$el.attr('data-starting-filter') != '' && instance.$el.attr('data-starting-filter') != 'default') ? '.' + instance.$el.attr('data-starting-filter') : '*';
instance.reLayout();
instance.$el.addClass('isotope-activated');
instance.$el.isotope({
itemSelector : '.element',
filter: $startingFilter,
layoutMode: $layoutMode,
transitionDuration: '0.6s',
packery: {
gutter: 0
}
}).isotope( 'layout' );
if($startingFilter != '*'){
if( instance.$el.parent().parent().find('.portfolio-filters').length > 0 ) {
instance.$el.parent().parent().find('.portfolio-filters ul a[data-filter="'+$startingFilter+'"]').trigger('click');
} else {
instance.$el.parent().parent().find('.portfolio-filters-inline ul a[data-filter="'+$startingFilter+'"]').trigger('click');
}
} else {
if(instance.$el.parent().parent().find('.portfolio-filters-inline[data-alignment="left"]').length > 0 ||
instance.$el.parent().parent().find('.portfolio-filters-inline[data-alignment="center"]').length > 0) {
instance.$el.parent().parent().find('.portfolio-filters-inline .container > ul > li:nth-child(1) a').addClass('active');
} else {
instance.$el.parent().parent().find('.portfolio-filters-inline .container > ul > li:nth-child(2) a').addClass('active');
}
}
instance.loadAnimationWaypoint();
// call the reLayout to get things rollin'
instance.masonryZindex();
var self = this;
setTimeout(function(){ instance.masonryZindex(); },800);
// inside fwc fix
if(instance.$el.parents('.full-width-content').length > 0) {
setTimeout(function(){ instance.fullWidthContentColumns(); },200);
}
// fadeout the loading animation
$('.portfolio-loading').stop(true,true).fadeOut(200);
// fadeIn items one by one
if(instance.$el.find('.inner-wrap').attr('data-animation') === 'none') {
instance.$el.find('.inner-wrap').removeClass('animated');
}
});
// portfolio external links
$(".portfolio-items").find("a[href*='http://']:not([href*='" + window.location.hostname + "'])").attr("target", "_blank");
$(".recent_projects_widget").find("a[href*='http://']:not([href*='" + window.location.hostname + "'])").attr("target", "_blank");
$(".portfolio-items").find("a[href*='https://']:not([href*='" + window.location.hostname + "'])").attr("target", "_blank");
$(".recent_projects_widget").find("a[href*='https://']:not([href*='" + window.location.hostname + "'])").attr("target", "_blank");
};
SalientPortfolio.prototype.resizeHandler = function(){
var self = this;
this.$window.resize( function(){
setTimeout(function(){
self.reLayout();
self.masonryZindex();
self.portfolioCommentOrder();
},30);
});
};
SalientPortfolio.prototype.mouseEventHandler = function() {
// sorting
if( this.$el.parent().parent().find('.portfolio-filters').length > 0 ) {
this.$el.parent().parent().find('.portfolio-filters ul li a').on('click', this.isoClickFilter.bind(this));
} else {
this.$el.parent().parent().find('.portfolio-filters-inline ul li a').on('click', this.isoClickFilter.bind(this));
}
// portfolio sort
$('body').on('mouseenter','.portfolio-filters',function(){
if(!this.onMobile) {
$(this).find('> ul').stop(true,true).slideDown(500,'easeOutExpo');
}
$(this).find('a#sort-portfolio span').html($(this).find('a#sort-portfolio').attr('data-sortable-label'));
});
$('body').on('mouseleave','.portfolio-filters',function(){
var $activeCat = $(this).find('a.active').html();
if( typeof $activeCat == 'undefined' || $activeCat.length == 0) {
$activeCat = $(this).attr('data-sortable-label');
}
$(this).find('a#sort-portfolio span').html($activeCat);
if(!this.onMobile) {
$(this).find('> ul').stop(true,true).slideUp(500,'easeOutExpo');
}
});
// portfolio selected category
$('body').on('click','.portfolio-filters ul li a', function(){
$(this).parents('.portfolio-filters').find('#sort-portfolio span').html($(this).html());
});
// portfolio prevent jump on parent dropdown click
$('body').on('click','.portfolio-filters > a#sort-portfolio', function(){
return false;
});
// portfolio description remove on hover
var $tmpTitle = null;
$('.portfolio-items > .col a[title]').on('mouseenter', function () {
$tmpTitle = $(this).attr('title');
$(this).attr('title', '');
});
$('.portfolio-items > .col a[title]').on('mouseleave', function () {
$(this).attr('title', $tmpTitle);
});
$('.portfolio-items > .col a[title]').on('click', function () {
$(this).attr('title', $tmpTitle);
});
};
SalientPortfolio.prototype.portfolioFiltersInit = function() {
// mobile sort menu
if($('body').hasClass('mobile') || navigator.userAgent.match(/(iPad|IEMobile)/)){
this.onMobile = true;
this.$el.parent().parent().find('.portfolio-filters').unbind('mouseenter mouseleave');
this.$el.parent().parent().find('.portfolio-filters > a, .portfolio-filters ul li a').on('click',function(e) {
if(e.originalEvent !== undefined) {
$(this).parents('.portfolio-filters').find('> ul').stop(true,true).slideToggle(600,'easeOutCubic');
}
});
}
if(this.$el.parent().parent().find('.portfolio-filters-inline[data-alignment="left"]').length > 0 ||
this.$el.parent().parent().find('.portfolio-filters-inline[data-alignment="center"]').length > 0) {
this.$el.parent().parent().find('.portfolio-filters-inline .container > ul > li:nth-child(1) a').trigger('click');
} else {
this.$el.parent().parent().find('.portfolio-filters-inline .container > ul > li:nth-child(2) a').trigger('click');
}
// portfolio more details page menu highlight
$('body.single-portfolio #header-outer nav > ul > li > a:contains("Portfolio")').parents('li').addClass('current-menu-item');
};
SalientPortfolio.prototype.isoClickFilter = function(e) {
var $timeout;
var self = this;
if(window.innerWidth > 690 && !navigator.userAgent.match(/(Android|iPod|iPhone|iPad|IEMobile|Opera Mini)/)){
clearTimeout($timeout);
$timeout = setTimeout(function(){ self.masonryZindex(); },600);
}
var selector = $(e.target).attr('data-filter');
this.$el.isotope({ filter: selector }).attr('data-current-cat',selector);
// fade in all incase user hasn't scrolled down yet
if(this.$el.find('.inner-wrap[data-animation="none"]').length === 0) {
this.$el.find('.col').addClass('animated-in');
}
// active classes
$(e.target).parent().parent().find('li a').removeClass('active');
$(e.target).addClass('active');
if($(e.target).parents('.portfolio-filters-inline').length > 0) {
$(e.target).parents('.portfolio-filters-inline').find('#current-category').html($(e.target).html());
}
// update pp
if(this.$el.find('a[rel^="prettyPhoto"]').length > 0) {
setTimeout(this.updatePrettyPhotoGallery.bind(this),170);
}
else {
setTimeout(this.updateMagPrettyPhotoGallery.bind(this),170);
}
return false;
};
SalientPortfolio.prototype.loadAnimationWaypoint = function() {
var $portfolioOffsetPos = ($('#nectar_fullscreen_rows').length > 0) ? '200%' : '90%';
if(this.$el.find('.inner-wrap').attr('data-animation') === 'none') { return; }
this.$el.find('.col').each(function(i) {
var $that = $(this);
//loaded visible
if($(this).visible(true) || $(this).parents('#nectar_fullscreen_rows').length > 0) {
var $portfolioAnimationDelay = ($that.is('[data-masonry-type="photography"].masonry-items')) ? 90 : 115;
$(this).delay($portfolioAnimationDelay *i).queue(function(next){
$(this).addClass("animated-in");
next();
});
} else {
// not already visible
var waypoint = new Waypoint({
element: $that,
handler: function() {
if($that.parents('.wpb_tab').length > 0 && $that.parents('.wpb_tab').css('visibility') === 'hidden' || $that.hasClass('animated-in')) {
waypoint.destroy();
return;
}
var $portfolioAnimationDelay = ($that.is('[data-masonry-type="photography"].masonry-items')) ? 85 : 100;
setTimeout(function(){
$that.addClass("animated-in");
},$portfolioAnimationDelay * $that.attr('data-delay-amount'));
waypoint.destroy();
},
offset: $portfolioOffsetPos
}); //waypoint
}
}); //each
};
SalientPortfolio.prototype.perspectiveAnimationInit = function() {
var lastScrollTop = $(window).scrollTop();
var self = this;
this.$el.css('perspective-origin','50% '+ (lastScrollTop + $(window).height()) + 'px');
requestAnimationFrame(updatePerspectiveOrigin);
function updatePerspectiveOrigin() {
var scrollTop = $(window).scrollTop();
if (lastScrollTop === scrollTop) {
requestAnimationFrame(updatePerspectiveOrigin);
return;
} else {
lastScrollTop = scrollTop;
self.$el.css('perspective-origin','50% '+ (lastScrollTop + $(window).height()) + 'px');
requestAnimationFrame(updatePerspectiveOrigin);
}
}
};
SalientPortfolio.prototype.portfolioItemWidths = function() {
var isFullWidth = this.$el.attr('data-col-num') === 'elastic';
if(isFullWidth) {
var $elWidth = this.$el.width();
var $colSize = 4;
var $mult = (this.mediaQuerySize === 'one') ? 1 : 2;
if(this.mediaQuerySize === 'five') {
$colSize = 5;
}
else if(this.mediaQuerySize === 'four') {
$colSize = 4;
}
else if(this.mediaQuerySize === 'three') {
$colSize = 3;
}
else if(this.mediaQuerySize === 'two') {
$colSize = 2;
}
else if(this.mediaQuerySize === 'one') {
$colSize = 1;
}
if(this.$el.is('[data-ps="6"]') && $colSize == 5) {
$colSize = 4;
}
// photography
if( isFullWidth && this.$el.is('[data-masonry-type="photography"]') && !this.$el.hasClass('no-masonry') ) {
if(this.mediaQuerySize === 'five') {
$colSize = 6;
}
if(this.mediaQuerySize === 'four') {
$colSize = 5;
}
if(this.mediaQuerySize === 'three') {
$colSize = 4;
}
}
if( $elWidth % $colSize === 0 ) {
this.$el.find('.elastic-portfolio-item:not(.wide):not(.wide_tall)').css('width',Math.floor($elWidth/$colSize) +'px');
this.$el.find('.elastic-portfolio-item.wide, .elastic-portfolio-item.wide_tall').css('width',Math.floor($elWidth/$colSize*$mult) +'px');
} else {
var $loopEndNum = ($(window).width() > 1000) ? 6 : 3;
if(this.$el.hasClass('fullwidth-constrained') && $(window).width() > 1000) {
$loopEndNum = 4;
}
// find closest number to give 0.
for(var i = 1; i<$loopEndNum; i++) {
if( ($elWidth - i) % $colSize === 0 ) {
this.$el.find('.elastic-portfolio-item:not(.wide):not(.wide_tall)').css('width',($elWidth-i)/$colSize +'px');
this.$el.find('.elastic-portfolio-item.wide, .elastic-portfolio-item.wide_tall').css('width',($elWidth-i)/$colSize*$mult +'px');
}
}
}
} // isFullWidth
};
SalientPortfolio.prototype.masonryZindex = function() {
// escape if no browser support
if($('body .portfolio-items:not(".carousel") > .col').length > 0 &&
$('body .portfolio-items:not(".carousel") > .col').offset().left) {
var self = this;
$('body .portfolio-items:not(".carousel")').each(function(){
var $coords = {};
var $zindexRelation = {};
var $that = $(this);
$(this).find('> .col').each(function(){
var $itemOffset = $(this).offset();
$itemOffset = $itemOffset.left;
$coords[$(this).index()] = $itemOffset;
$(this).css('z-index',Math.abs(Math.floor($(this).offset().left/20)));
});
var $corrdsArr = jQuery.map($coords, function (value) { return value; });
$corrdsArr = self.removeDuplicates($corrdsArr);
$corrdsArr.sort(function(a,b){ return a-b; });
for(var i = 0; i < $corrdsArr.length; i++){
$zindexRelation[$corrdsArr[i]] = i;
}
jQuery.each($coords,function(k,v){
var $zindex;
var $coordCache = v;
jQuery.each($zindexRelation,function(k,v){
if($coordCache === k) {
$zindex = v;
}
});
$that.find('> .col:eq('+k+')').attr('data-delay-amount',$zindex);
});
});
}
};
SalientPortfolio.prototype.removeDuplicates = function(inputArray) {
var i;
var len = inputArray.length;
var outputArray = [];
var temp = {};
for (i = 0; i < len; i++) {
temp[inputArray[i]] = 0;
}
for (i in temp) {
outputArray.push(i);
}
return outputArray;
};
SalientPortfolio.prototype.reLayout = function() {
var self = this;
clearTimeout(this.clearIsoAnimation);
this.$el.find('.col').addClass('no-transition');
this.clearIsoAnimation = setTimeout(function(){
self.$el.find('.col').removeClass('no-transition');
},700);
if(window.innerWidth > 1600) {
if(this.$el.hasClass('fullwidth-constrained')) {
if(this.$el.is('[data-masonry-type="photography"]')) {
this.mediaQuerySize = 'three';
} else {
this.mediaQuerySize = 'four';
}
} else {
if(this.$el.hasClass('constrain-max-cols')) {
this.mediaQuerySize = 'four';
} else {
this.mediaQuerySize = 'five';
}
}
} else if(window.innerWidth <= 1600 && window.innerWidth > 1300){
if(this.$el.hasClass('fullwidth-constrained')) {
if(this.$el.is('[data-masonry-type="photography"]')) {
this.mediaQuerySize = 'three';
} else {
this.mediaQuerySize = 'four';
}
} else {
this.mediaQuerySize = 'four';
}
} else if(window.innerWidth <= 1300 && window.innerWidth > 990){
if(this.$el.hasClass('constrain-max-cols')) {
this.mediaQuerySize = 'four';
} else {
this.mediaQuerySize = 'three';
}
} else if(window.innerWidth <= 990 && window.innerWidth > 470){
this.mediaQuerySize = 'two';
} else if(window.innerWidth <= 470){
this.mediaQuerySize = 'one';
}
// boxed
if($('#boxed').length > 0) {
if(window.innerWidth > 1300){
this.mediaQuerySize = 'four';
} else if(window.innerWidth < 1300 && window.innerWidth > 990){
if(this.$el.hasClass('constrain-max-cols')) {
this.mediaQuerySize = 'four';
} else {
this.mediaQuerySize = 'three';
}
} else if(window.innerWidth < 990){
this.mediaQuerySize = 'one';
}
}
// set widths
this.portfolioItemWidths();
// sizing for large items
if(!this.$el.is('[data-bypass-cropping="true"]')) {
if( this.$el.find('.col.elastic-portfolio-item[class*="regular"]:visible').length > 0 ||
this.$el.find('.col.elastic-portfolio-item[class*="wide"]:visible').length > 0 ||
this.$el.find('.col.elastic-portfolio-item[class*="tall"]:visible').length > 0 ||
this.$el.find('.col.elastic-portfolio-item[class*="wide_tall"]:visible').length > 0) {
var $gutterSize = (this.$el.is('[data-gutter*="px"]') && this.$el.attr('data-gutter').length > 0 && this.$el.attr('data-gutter') != 'none') ? parseInt(this.$el.attr('data-gutter')) : 0;
var multipler = (window.innerWidth > 470) ? 2 : 1;
// reset height for calcs
var $itemClassForSizing = 'regular';
if(this.$el.find('.col.elastic-portfolio-item[class*="regular"]:visible').length === 0 &&
this.$el.find('.col.elastic-portfolio-item.wide:visible').length > 0) {
$itemClassForSizing = 'wide';
} else if(this.$el.find('.col.elastic-portfolio-item[class*="regular"]:visible').length === 0 &&
this.$el.find('.col.elastic-portfolio-item.wide_tall:visible').length > 0) {
$itemClassForSizing = 'wide_tall';
multipler = 1;
} else if(this.$el.find('.col.elastic-portfolio-item[class*="regular"]:visible').length === 0 &&
this.$el.find('.col.elastic-portfolio-item.tall:visible').length > 0) {
$itemClassForSizing = 'tall';
multipler = 1;
}
this.$el.find('.col.elastic-portfolio-item.'+$itemClassForSizing+' img').css('height','auto');
var tallColHeight = this.$el.find('.col.elastic-portfolio-item.'+$itemClassForSizing+':visible img').height();
this.$el.find('.col.elastic-portfolio-item[class*="tall"] img, .col.elastic-portfolio-item.wide img, .col.elastic-portfolio-item.regular img').removeClass('auto-height');
this.$el.find('.col.elastic-portfolio-item[class*="tall"] img:not(.custom-thumbnail)').css('height',(tallColHeight*multipler) + ($gutterSize*2));
if($itemClassForSizing === 'regular' || $itemClassForSizing === 'wide') {
this.$el.find('.col.elastic-portfolio-item.wide img:not(.custom-thumbnail), .col.elastic-portfolio-item.regular img:not(.custom-thumbnail)').css('height',tallColHeight);
} else {
this.$el.find('.col.elastic-portfolio-item.wide img:not(.custom-thumbnail), .col.elastic-portfolio-item.regular img:not(.custom-thumbnail)').css('height',(tallColHeight/2) - ($gutterSize*2));
}
this.$el.find('.col.elastic-portfolio-item[class*="tall"] .parallaxImg').css('height',(tallColHeight*multipler) + parseInt(this.$el.find('.col.elastic-portfolio-item').css('padding-bottom'))*2 );
if($itemClassForSizing === 'regular' || $itemClassForSizing === 'wide') {
this.$el.find('.col.elastic-portfolio-item.regular .parallaxImg, .col.elastic-portfolio-item.wide .parallaxImg').css('height',tallColHeight);
} else {
this.$el.find('.col.elastic-portfolio-item.regular .parallaxImg, .col.elastic-portfolio-item.wide .parallaxImg').css('height',(tallColHeight/2) - ($gutterSize*2));
}
} else {
this.$el.find('.col.elastic-portfolio-item[class*="tall"] img, .col.elastic-portfolio-item.wide img, .col.elastic-portfolio-item.regular img').addClass('auto-height');
}
} // bypass cropping option
// non masonry
if(this.$el.hasClass('no-masonry') && this.$el.find('.col:first:visible').length > 0 && this.$el.parents('.wpb_gallery').length === 0){
// skip style 9
if( !this.$el.is('[data-ps="9"]') && !this.$el.is('[data-bypass-cropping="true"]') ) {
// reset height for calcs
this.$el.find('.col img').css('height','auto');
var tallColHeight = this.$el.find('.col:first:visible img').height();
this.$el.find('.col img:not(.custom-thumbnail)').css('height',tallColHeight);
this.$el.find('.col .parallaxImg').css('height',tallColHeight);
}
}
if(this.$el.isotope()) {
this.$el.isotope( 'layout' );
}
};
SalientPortfolio.prototype.updatePrettyPhotoGallery = function(){
if(this.$el.find('a[rel^="prettyPhoto"]').length > 0) {
var $unique_id = Math.floor(Math.random()*10000);
var $currentCat = this.$el.attr('data-current-cat');
this.$el.find('.col'+$currentCat).find('a[rel^="prettyPhoto"]').attr('rel','prettyPhoto['+$unique_id+'_sorted]');
}
};
SalientPortfolio.prototype.updateMagPrettyPhotoGallery = function() {
var $currentCat = this.$el.attr('data-current-cat');
var $unique_id = Math.floor(Math.random()*10000);
if(this.$el.is('[data-lightbox-only="true"]')){
this.$el.find('.col').each(function(){
$(this).find('a.gallery').removeClass('gallery').removeClass('magnific');
if($(this).is($currentCat)) {
// parallax styles
if($(this).find('.parallaxImg-wrap').length > 0) {
if($('body[data-ls="fancybox"]').length > 0) {
$(this).find('.work-item > a').attr('data-fancybox','group_'+$unique_id);
} else {
$(this).find('.work-item > a').addClass('gallery').addClass('magnific');
}
} else {
// others
if($('body[data-ls="fancybox"]').length > 0) {
$(this).find('.work-item a').attr('data-fancybox','group_'+$unique_id);
} else {
$(this).find('.work-info a').addClass('gallery').addClass('magnific');
}
}
}
});
}
else if (this.$el.find('.work-item.style-1').length > 0){
this.$el.find('.col').each(function(){
$(this).find('a.gallery').removeClass('gallery').removeClass('magnific');
if($(this).is($currentCat)) {
if($('body[data-ls="fancybox"]').length > 0) {
$(this).find('.work-info .vert-center a:first-of-type').attr('data-fancybox','group_'+$unique_id);
}
else {
$(this).find('.work-info .vert-center a:first-of-type').addClass('gallery').addClass('magnific');
}
}
});
}
};
SalientPortfolio.prototype.portfolioAccentColor = function() {
this.$el.find('.col').each(function(){
if ($(this).has('[data-project-color]')) {
$(this).find('.work-info-bg, .bottom-meta').css('background-color',$(this).attr('data-project-color'));
// style5
$(this).find('.parallaxImg-rendered-layer .bg-overlay').css('border-color',$(this).attr('data-project-color'));
}
});
};
SalientPortfolio.prototype.isotopeCatSelection = function() {
var isotopeCatArr = [];
var $portfolioCatCount = 0;
this.$el.parent().parent().find('div[class^=portfolio-filters] ul li').each(function(i){
if($(this).find('a').length > 0) {
isotopeCatArr[$portfolioCatCount] = $(this).find('a').attr('data-filter').substring(1);
$portfolioCatCount++;
}
});
// ice the first (all)
isotopeCatArr.shift();
var itemCats = '';
var self = this;
this.$el.find('> div').each(function(){
itemCats += $(this).attr('data-project-cat');
});
itemCats = itemCats.split(' ');
// remove the extra item on the end of blank space
itemCats.pop();
// make sure the array has no duplicates
itemCats = jQuery.unique(itemCats);
// if user has chosen a set of filters to display - only show those
var $userSelectedCats;
if(this.$el.is('[data-categories-to-show]') &&
this.$el.attr('data-categories-to-show').length != 0 &&
this.$el.attr('data-categories-to-show') != 'all') {
$userSelectedCats = this.$el.attr('data-categories-to-show').replace(/,/g , ' ');
$userSelectedCats = $userSelectedCats.split(' ');
if(!this.$el.hasClass('infinite_scroll')) {
this.$el.removeAttr('data-categories-to-show');
}
} else {
$userSelectedCats = itemCats;
}
// Find which categories are actually on the current page
var notFoundCats = [];
jQuery.grep(isotopeCatArr, function(el) {
if (jQuery.inArray(el, itemCats) == -1) notFoundCats.push(el);
if (jQuery.inArray(el, $userSelectedCats) == -1) notFoundCats.push(el);
});
// manipulate the list
if(notFoundCats.length != 0){
this.$el.parent().parent().find('div[class^=portfolio-filters] ul li').each(function(){
if($(this).find('a').length > 0) {
if( jQuery.inArray($(this).find('a').attr('data-filter').substring(1), notFoundCats) != -1 ){
if($(this).find('> ul.children').length > 0) {
$(this).find('> a').hide();
} else {
$(this).hide();
}
} else {
$(this).show();
}
}
});
}
};
// portfolio single comment order
SalientPortfolio.prototype.portfolioCommentOrder = function(){
if($('body').hasClass('mobile') && $('body').hasClass('single-portfolio') && $('#respond').length > 0){
$('#sidebar').insertBefore('.comments-section');
}
else if($('body').hasClass('single-portfolio') && $('#respond').length > 0) {
$('#sidebar').insertAfter('.post-area');
}
};
/*-------------------------------------------------------------------------*/
/* 2. Salient Fullscreen Recent Project Slider
/*-------------------------------------------------------------------------*/
function SalientRecentProjectsFullScreen(el) {
this.$el = el;
this.rotationSpeed = (el.attr('data-autorotate').length > 0) ? parseInt(el.attr('data-autorotate')) : false;
this.rotationInterval = null;
this.$window = $(window);
this.splitLineText();
this.positionFix();
this.sliderCalcs();
this.sliderInit();
this.resizeHandler();
}
SalientRecentProjectsFullScreen.prototype.resizeHandler = function() {
$(window).resize(this.sliderCalcs.bind(this));
$(window).resize(this.splitLineText.bind(this));
};
SalientRecentProjectsFullScreen.prototype.positionFix = function() {
// remove outside of column setups
if(this.$el.parents('.span_12').find('> .wpb_column').length > 1){
var $zoomProjects = this.$el.clone();
var $zoomProjectsRow = this.$el.parents('.span_12');
this.$el.remove();
$zoomProjectsRow.prepend($zoomProjects);
this.$el = $zoomProjects;
}
};
SalientRecentProjectsFullScreen.prototype.sliderCalcs = function() {
var $bodyBorderSize = ($('.body-border-top').length > 0 && $(window).width() > 1000) ? $('.body-border-top').height(): 0;
// frontend editor fix
var usingFrontEndEditor = (typeof window.vc_iframe === 'undefined') ? false : true;
if(usingFrontEndEditor) {
if(this.$el.parents('.wpb_row').parent().index() > 1) {
this.$el.parents('.first-section').removeClass('first-section');
}
}
if(this.$el.parents('.first-section').length > 0) {
this.$el.css('height',$(window).height() - this.$el.offset().top - $bodyBorderSize);
} else {
this.$el.css('height',$(window).height());
}
};
SalientRecentProjectsFullScreen.prototype.sliderRotate = function(){
if($('body.vc_editor').length > 0) { return; }
var $controlSelector = (this.$el.find('.project-slides').length > 0) ? '.dot-nav > span' : '.controls > li';
var $controlSelectorInd = (this.$el.find('.project-slides').length > 0) ? 'span' : ' li';
var $slideLength = this.$el.find($controlSelector).length;
var $currentSlide = this.$el.find($controlSelector+'.active').index();
if( $currentSlide+1 === $slideLength) {
this.$el.find($controlSelector+':first-child').trigger('click');
} else {
this.$el.find($controlSelector+'.active').next($controlSelectorInd).trigger('click');
}
};
SalientRecentProjectsFullScreen.prototype.sliderResetRotate = function(){
clearInterval(this.rotationInterval);
// reinit autorotate
if(this.rotationSpeed != 0) {
var slide_interval = (this.rotationSpeed < 100) ? 4000 : this.rotationSpeed;
this.rotationInterval = setInterval(this.sliderRotate.bind(this),slide_interval);
}
};
SalientRecentProjectsFullScreen.prototype.splitLineText = function() {
var $slideClass = (this.$el.find('.project-slides').length > 0) ? '.project-slide' : '.nectar-recent-post-slide';
var $slideInfoClass = (this.$el.find('.project-slides').length > 0) ? '.project-info h1' : '.inner-wrap h2 a';
this.$el.find($slideClass).each(function(i){
$(this).find($slideInfoClass).each(function(){
var textArr = $(this).text();
textArr = textArr.trim();
textArr = textArr.split(' ');
$(this)[0].innerHTML = '';
for(var i=0;i<textArr.length;i++) {
$(this)[0].innerHTML += '<span>'+ textArr[i] + '</span> ';
}
});
$(this).find($slideInfoClass + ' > span').wrapInner('<span class="inner" />');
});
};
SalientRecentProjectsFullScreen.prototype.sliderInit = function() {
var $projLength = this.$el.find('.project-slide').length;
var self = this;
// autorotate
if(this.rotationSpeed != 0) {
var slide_interval = (this.rotationSpeed < 100) ? 4000 : this.rotationSpeed;
this.rotationInterval = setInterval(this.sliderRotate.bind(this),slide_interval);
}
// next/prev
this.$el.find('.zoom-slider-controls .next').on('click',function(){
// thres
var $that = $(this);
if(!$that.parent().hasClass('timeout')) {
setTimeout(function(){
$that.parent().removeClass('timeout');
},1150);
}
if($(this).parent().hasClass('timeout')) {
return false;
}
$(this).parent().addClass('timeout');
// switch logic
self.sliderResetRotate(self.$el.bind(self));
var $current = $(this).parents('.nectar_fullscreen_zoom_recent_projects').find('.project-slide.current');
var $sliderInstance = $(this).parents('.nectar_fullscreen_zoom_recent_projects');
$sliderInstance.find('.project-slide').removeClass('next').removeClass('prev');
$sliderInstance.find('.project-slide').each(function(i){
if(i < $current.index()+1 && $current.index()+1 < $projLength) {
$(this).addClass('prev');
}
else {
$(this).addClass('next');
}
});
if($current.index()+1 === $projLength) {
$sliderInstance.find('.project-slide:first-child').addClass('no-trans');
}
setTimeout(function(){
if($current.index()+1 === $projLength) {
$sliderInstance.find('.project-slide:first-child')
.removeClass('no-trans')
.removeClass('next')
.removeClass('prev')
.addClass('current');
$sliderInstance.find('.project-slide:last-child')
.removeClass('next')
.removeClass('current')
.addClass('prev');
} else {
$current
.next('.project-slide')
.removeClass('next')
.removeClass('prev')
.addClass('current');
$current
.removeClass('current')
.addClass('prev');
}
// update dot nav
if($sliderInstance.find('.dot-nav').length > 0) {
$sliderInstance.find('.dot-nav span.active').removeClass('active');
$sliderInstance.find('.dot-nav span:nth-child('+ ($sliderInstance.find('.project-slide.current').index() + 1) +')').addClass('active');
}
},30);
return false;
});
this.$el.find('.zoom-slider-controls .prev').on('click',function(){
// thres
var $that = $(this);
if(!$that.parent().hasClass('timeout')) {
setTimeout(function(){
$that.parent().removeClass('timeout');
},1150);
}
if($(this).parent().hasClass('timeout')) {
return false;
}
$(this).parent().addClass('timeout');
self.sliderResetRotate(self.$el.bind(self));
// switch logic
var $current = $(this).parents('.nectar_fullscreen_zoom_recent_projects').find('.project-slide.current');
var $sliderInstance = $(this).parents('.nectar_fullscreen_zoom_recent_projects');
$sliderInstance.find('.project-slide').removeClass('next').removeClass('prev');
$sliderInstance.find('.project-slide').each(function(i){
if(i < $current.index() || $current.index() == 0) {
$(this).addClass('prev');
}
else {
$(this).addClass('next');
}
});
if($current.index() == 0) {
$sliderInstance.find('.project-slide:last-child').addClass('no-trans');
}
setTimeout(function(){
if($current.index() == 0) {
$sliderInstance.find('.project-slide:last-child')
.removeClass('no-trans')
.removeClass('next')
.removeClass('prev')
.addClass('current');
$sliderInstance.find('.project-slide:first-child')
.removeClass('next')
.removeClass('prev')
.removeClass('current')
.addClass('next');
} else {
$current.prev('.project-slide').removeClass('next').removeClass('prev').addClass('current');
$current.removeClass('current').addClass('next');
}
//update dot nav
if($sliderInstance.find('.dot-nav').length > 0) {
$sliderInstance.find('.dot-nav span.active').removeClass('active');
$sliderInstance.find('.dot-nav span:nth-child('+ ($sliderInstance.find('.project-slide.current').index() + 1) +')').addClass('active');
}
},30);
return false;
});
// pagination
this.$el.find('> .normal-container > .dot-nav').remove();
this.$el.find('> .normal-container').append('<div class="dot-nav"></div>');
for(var $i=0;$i < $projLength;$i++) {
if($i == 0) {
this.$el.find('.dot-nav').append('<span class="dot active"><span></span></span>');
} else {
this.$el.find('.dot-nav').append('<span class="dot"><span></span></span>');
}
}
var $dotIndex = 1;
this.$el.find('.dot-nav > span').on('click',function(){
if($(this).hasClass('active')) {
return;
}
// thres
var $that = $(this);
if(!$that.parent().hasClass('timeout')) {
setTimeout(function(){
$that.parent().removeClass('timeout');
},1150);
}
if($(this).parent().hasClass('timeout')) {
return;
}
$(this).parent().addClass('timeout');
self.sliderResetRotate(self.$el.bind(self));
// switch logic
$(this).parent().find('span.active').removeClass('active');
$(this).addClass('active');
$dotIndex = $(this).index() + 1;
var $current = $(this).parents('.nectar_fullscreen_zoom_recent_projects').find('.project-slide.current');
var $sliderInstance = $(this).parents('.nectar_fullscreen_zoom_recent_projects');
var $prevIndex = $current.index() + 1;
$sliderInstance.find('.project-slide').removeClass('next').removeClass('prev');
$sliderInstance.find('.project-slide').each(function(i){
if(i < $dotIndex-1) {
$(this).addClass('prev');
}
else {
$(this).addClass('next');
}
});
// going prev
if($prevIndex > $dotIndex) {
$sliderInstance.find('.project-slide')
.eq($dotIndex-1)
.addClass('no-trans')
.addClass('prev')
.removeClass('next');
setTimeout(function(){
$sliderInstance.find('.project-slide')
.eq($dotIndex-1)
.removeClass('no-trans')
.removeClass('next')
.removeClass('prev')
.addClass('current');
$current
.removeClass('current')
.addClass('next');
},30);
}
// going forawrd
else {
$sliderInstance.find('.project-slide').eq($dotIndex-1).addClass('no-trans').addClass('next').removeClass('prev');
setTimeout(function(){
$sliderInstance.find('.project-slide').eq($dotIndex-1).removeClass('no-trans').removeClass('next').removeClass('prev').addClass('current');
$current.removeClass('current').addClass('prev');
},30);
}
});
};
/*-------------------------------------------------------------------------*/
/* 3. Salient Recent Project Carousel
/*-------------------------------------------------------------------------*/
function SalientRecentProjectsCarousel(el) {
this.$el = el;
this.carouselInit();
this.resizeHandler();
}
SalientRecentProjectsCarousel.prototype.resizeHandler = function() {
$(window).resize(this.carouselHeightCalcs.bind(this));
};
SalientRecentProjectsCarousel.prototype.carouselInit = function() {
var $that = this.$el;
var self = this;
var maxCols = (this.$el.parents('.carousel-wrap').attr('data-full-width') === 'true') ? 'auto' : 3 ;
var scrollNum = (this.$el.parents('.carousel-wrap').attr('data-full-width') === 'true') ? 'auto' : '' ;
var colWidth = (this.$el.parents('.carousel-wrap').attr('data-full-width') === 'true') ? 500 : 453 ;
var scrollSpeed, easing;
var $autoplayBool = (this.$el.attr('data-autorotate') === 'true') ? true : false;
var $themeSkin, $themeSkin2;
if($('body.ascend').length > 0 && this.$el.parents('.carousel-wrap').attr('data-full-width') !== 'true' ||
$('body.material').length > 0 && this.$el.parents('.carousel-wrap').attr('data-full-width') !== 'true') {
if(this.$el.find('li').length % 3 === 0) {
$themeSkin = true;
$themeSkin2 = true;
} else {
$themeSkin = false;
$themeSkin2 = true;
}
} else {
$themeSkin = true;
$themeSkin2 = true;
}
(parseInt(this.$el.attr('data-scroll-speed'))) ? scrollSpeed = parseInt(this.$el.attr('data-scroll-speed')) : scrollSpeed = 700;
(this.$el.is('[data-easing]')) ? easing = this.$el.attr('data-easing') : easing = 'linear';
var $element = $that;
if($that.find('img').length === 0) {
$element = $('body');
}
imagesLoaded($element,function(){
$that.carouFredSel({
circular: $themeSkin,
infinite: $themeSkin2,
height : 'auto',
responsive: true,
items : {
width : colWidth,
visible : {
min : 1,
max : maxCols
}
},
swipe : {
onTouch : true,
onMouse : true,
options : {
excludedElements: "button, input, select, textarea, .noSwipe",
tap: function(event, target){
if($(target).attr('href') &&
!$(target).is('[target="_blank"]') &&
!$(target).is('[data-fancybox^="group_"]') &&
!$(target).is('[rel^="prettyPhoto"]') &&
!$(target).is('.magnific-popup') &&
!$(target).is('.magnific')) {
window.open($(target).attr('href'), '_self');
}
}
},
onBefore : function(){
// hover effect fix
$that.find('.work-item').trigger('mouseleave');
$that.find('.work-item .work-info a').trigger('mouseup');
}
},
scroll: {
items : scrollNum,
easing : easing,
duration : scrollSpeed,
onBefore : function( data ) {
if($('body.ascend').length > 0 && $that.parents('.carousel-wrap').attr('data-full-width') != 'true' ||
$('body.material').length > 0 && $that.parents('.carousel-wrap').attr('data-full-width') != 'true') {
$that.parents('.carousel-wrap').find('.item-count .total').html(Math.ceil($that.find('> li').length / $that.triggerHandler("currentVisible").length));
}
},
onAfter : function( data ) {
if($('body.ascend').length > 0 && $that.parents('.carousel-wrap').attr('data-full-width') != 'true' ||
$('body.material').length > 0 && $that.parents('.carousel-wrap').attr('data-full-width') != 'true') {
$that.parents('.carousel-wrap').find('.item-count .current').html( $that.triggerHandler('currentPage') +1);
$that.parents('.carousel-wrap').find('.item-count .total').html(Math.ceil($that.find('> li').length / $that.triggerHandler("currentVisible").length));
}
}
},
prev : {
button : function() {
return $that.parents('.carousel-wrap').find('.carousel-prev');
}
},
next : {
button : function() {
return $that.parents('.carousel-wrap').find('.carousel-next');
}
},
auto : {
play: $autoplayBool
}
}, { transition: true }).animate({'opacity': 1},1300);
$that.parents('.carousel-wrap').wrap('<div class="carousel-outer">');
if($that.parents('.carousel-wrap').attr('data-full-width') === 'true') {
$that.parents('.carousel-outer').css('overflow','visible');
}
// add count for non full width ascend skin
if($('body.ascend').length > 0 && $that.parents('.carousel-wrap').attr('data-full-width') != 'true' ||
$('body.material').length > 0 && $that.parents('.carousel-wrap').attr('data-full-width') != 'true') {
$('<div class="item-count"><span class="current">1</span>/<span class="total">'+($that.find('> li').length / $that.triggerHandler("currentVisible").length) +'</span></div>').insertAfter($that.parents('.carousel-wrap').find('.carousel-prev'));
}
$that.addClass('finished-loading');
self.carouselHeightCalcs();
});//images loaded
};
SalientRecentProjectsCarousel.prototype.carouselHeightCalcs = function(){
if( !this.$el.hasClass('finished-loading') ) {
return;
}
var that = this;
var bottomSpace = (this.$el.parents('.carousel-wrap').attr('data-full-width') === 'true' && this.$el.find('.style-2, .style-3, .style-4').length > 0) ? 0 : 28 ;
var tallestMeta = 0;
this.$el.find('> li').each(function(){
($(this).find('.work-meta').height() > tallestMeta) ? tallestMeta = $(this).find('.work-meta').height() : tallestMeta = tallestMeta;
});
setTimeout(function(){
that.$el.parents('.caroufredsel_wrapper').css({
'height' : (that.$el.find('.work-item').outerHeight() + tallestMeta + bottomSpace -2) + 'px'
});
},30);
if($('body.ascend').length > 0 && this.$el.parents('.carousel-wrap').attr('data-full-width') != 'true' ||
$('body.material').length > 0 && this.$el.parents('.carousel-wrap').attr('data-full-width') != 'true') {
this.$el.parents('.carousel-wrap').find('.item-count .current').html(Math.ceil((this.$el.triggerHandler("currentPosition")+1)/this.$el.triggerHandler("currentVisible").length));
this.$el.parents('.carousel-wrap').find('.item-count .total').html(Math.ceil(this.$el.find('> li').length / this.$el.triggerHandler("currentVisible").length));
}
};
window.SalientPortfolio = SalientPortfolio;
window.SalientRecentProjectsFullScreen = SalientRecentProjectsFullScreen;
window.SalientRecentProjectsCarousel = SalientRecentProjectsCarousel;
}( jQuery ));
/*
* jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
*/
jQuery.easing["jswing"]=jQuery.easing["swing"];jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(a,b,c,d,e){return jQuery.easing[jQuery.easing.def](a,b,c,d,e)},easeInQuad:function(a,b,c,d,e){return d*(b/=e)*b+c},easeOutQuad:function(a,b,c,d,e){return-d*(b/=e)*(b-2)+c},easeInOutQuad:function(a,b,c,d,e){if((b/=e/2)<1)return d/2*b*b+c;return-d/2*(--b*(b-2)-1)+c},easeInCubic:function(a,b,c,d,e){return d*(b/=e)*b*b+c},easeOutCubic:function(a,b,c,d,e){return d*((b=b/e-1)*b*b+1)+c},easeInOutCubic:function(a,b,c,d,e){if((b/=e/2)<1)return d/2*b*b*b+c;return d/2*((b-=2)*b*b+2)+c},easeInQuart:function(a,b,c,d,e){return d*(b/=e)*b*b*b+c},easeOutQuart:function(a,b,c,d,e){return-d*((b=b/e-1)*b*b*b-1)+c},easeInOutQuart:function(a,b,c,d,e){if((b/=e/2)<1)return d/2*b*b*b*b+c;return-d/2*((b-=2)*b*b*b-2)+c},easeInQuint:function(a,b,c,d,e){return d*(b/=e)*b*b*b*b+c},easeOutQuint:function(a,b,c,d,e){return d*((b=b/e-1)*b*b*b*b+1)+c},easeInOutQuint:function(a,b,c,d,e){if((b/=e/2)<1)return d/2*b*b*b*b*b+c;return d/2*((b-=2)*b*b*b*b+2)+c},easeInSine:function(a,b,c,d,e){return-d*Math.cos(b/e*(Math.PI/2))+d+c},easeOutSine:function(a,b,c,d,e){return d*Math.sin(b/e*(Math.PI/2))+c},easeInOutSine:function(a,b,c,d,e){return-d/2*(Math.cos(Math.PI*b/e)-1)+c},easeInExpo:function(a,b,c,d,e){return b==0?c:d*Math.pow(2,10*(b/e-1))+c},easeOutExpo:function(a,b,c,d,e){return b==e?c+d:d*(-Math.pow(2,-10*b/e)+1)+c},easeInOutExpo:function(a,b,c,d,e){if(b==0)return c;if(b==e)return c+d;if((b/=e/2)<1)return d/2*Math.pow(2,10*(b-1))+c;return d/2*(-Math.pow(2,-10*--b)+2)+c},easeInCirc:function(a,b,c,d,e){return-d*(Math.sqrt(1-(b/=e)*b)-1)+c},easeOutCirc:function(a,b,c,d,e){return d*Math.sqrt(1-(b=b/e-1)*b)+c},easeInOutCirc:function(a,b,c,d,e){if((b/=e/2)<1)return-d/2*(Math.sqrt(1-b*b)-1)+c;return d/2*(Math.sqrt(1-(b-=2)*b)+1)+c},easeInElastic:function(a,b,c,d,e){var f=1.70158;var g=0;var h=d;if(b==0)return c;if((b/=e)==1)return c+d;if(!g)g=e*.3;if(h<Math.abs(d)){h=d;var f=g/4}else var f=g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(b-=1))*Math.sin((b*e-f)*2*Math.PI/g))+c},easeOutElastic:function(a,b,c,d,e){var f=1.70158;var g=0;var h=d;if(b==0)return c;if((b/=e)==1)return c+d;if(!g)g=e*.3;if(h<Math.abs(d)){h=d;var f=g/4}else var f=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*b)*Math.sin((b*e-f)*2*Math.PI/g)+d+c},easeInOutElastic:function(a,b,c,d,e){var f=1.70158;var g=0;var h=d;if(b==0)return c;if((b/=e/2)==2)return c+d;if(!g)g=e*.3*1.5;if(h<Math.abs(d)){h=d;var f=g/4}else var f=g/(2*Math.PI)*Math.asin(d/h);if(b<1)return-.5*h*Math.pow(2,10*(b-=1))*Math.sin((b*e-f)*2*Math.PI/g)+c;return h*Math.pow(2,-10*(b-=1))*Math.sin((b*e-f)*2*Math.PI/g)*.5+d+c},easeInBack:function(a,b,c,d,e,f){if(f==undefined)f=1.70158;return d*(b/=e)*b*((f+1)*b-f)+c},easeOutBack:function(a,b,c,d,e,f){if(f==undefined)f=1.70158;return d*((b=b/e-1)*b*((f+1)*b+f)+1)+c},easeInOutBack:function(a,b,c,d,e,f){if(f==undefined)f=1.70158;if((b/=e/2)<1)return d/2*b*b*(((f*=1.525)+1)*b-f)+c;return d/2*((b-=2)*b*(((f*=1.525)+1)*b+f)+2)+c},easeInBounce:function(a,b,c,d,e){return d-jQuery.easing.easeOutBounce(a,e-b,0,d,e)+c},easeOutBounce:function(a,b,c,d,e){if((b/=e)<1/2.75){return d*7.5625*b*b+c}else if(b<2/2.75){return d*(7.5625*(b-=1.5/2.75)*b+.75)+c}else if(b<2.5/2.75){return d*(7.5625*(b-=2.25/2.75)*b+.9375)+c}else{return d*(7.5625*(b-=2.625/2.75)*b+.984375)+c}},easeInOutBounce:function(a,b,c,d,e){if(b<e/2)return jQuery.easing.easeInBounce(a,b*2,0,d,e)*.5+c;return jQuery.easing.easeOutBounce(a,b*2-e,0,d,e)*.5+d*.5+c}})
//visible
!function(t){var i=t(window);t.fn.visible=function(t,e,o){if(!(this.length<1)){var r=this.length>1?this.eq(0):this,n=r.get(0),f=i.width(),h=i.height(),o=o?o:"both",l=e===!0?n.offsetWidth*n.offsetHeight:!0;if("function"==typeof n.getBoundingClientRect){var g=n.getBoundingClientRect(),u=g.top>=0&&g.top<h,s=g.bottom>0&&g.bottom<=h,c=g.left>=0&&g.left<f,a=g.right>0&&g.right<=f,v=t?u||s:u&&s,b=t?c||a:c&&a;if("both"===o)return l&&v&&b;if("vertical"===o)return l&&v;if("horizontal"===o)return l&&b}else{var d=i.scrollTop(),p=d+h,w=i.scrollLeft(),m=w+f,y=r.offset(),z=y.top,B=z+r.height(),C=y.left,R=C+r.width(),j=t===!0?B:z,q=t===!0?z:B,H=t===!0?R:C,L=t===!0?C:R;if("both"===o)return!!l&&p>=q&&j>=d&&m>=L&&H>=w;if("vertical"===o)return!!l&&p>=q&&j>=d;if("horizontal"===o)return!!l&&m>=L&&H>=w}}}}(jQuery);
jQuery(document).ready(function($) {
"use strict";
// when not using Salient, get things rollin'
if( nectar_theme_info.using_salient != 'true' ) {
// portfolio el.
var portfolioArr = [];
$('.portfolio-items:not(.carousel)').each(function(i){
$(this).attr('instance',i);
$(this).parent().parent().find('div[class^=portfolio-filters]').attr('instance',i);
portfolioArr[i] = new SalientPortfolio($(this));
});
// fullscreen project slider.
var fsProjectSliderArr = [];
$('.nectar_fullscreen_zoom_recent_projects').each(function(i){
fsProjectSliderArr[i] = new SalientRecentProjectsFullScreen($(this));
});
// project carousel.
var projectCarouselArr = [];
$('ul.portfolio-items.carousel').each(function(i){
projectCarouselArr[i] = new SalientRecentProjectsCarousel($(this));
});
}
});