File: /home/guardian/public_html/wp-content/plugins/salient-social/js/salient-social.js
/**
* Salient Social.
*
* @author ThemeNectar
*/
/* global jQuery */
jQuery(document).ready(function ($) {
"use strict";
function NectarSocial() {
this.$body = $('body');
this.$window = $(window);
this.$wpAdminBar = $('#wpadminbar');
this.usingMobileBrowser = (navigator.userAgent.match(/(Android|iPod|iPhone|iPad|BlackBerry|IEMobile|Opera Mini)/)) ? true : false;
// Events.
this.mouseEvents();
// Nectar Love
this.nectarLove();
// Fixed to bottom social sharing style.
if( $('body').find('.nectar-social.fixed') ) {
this.fixedStyle();
}
}
NectarSocial.prototype.mouseEvents = function() {
this.$body.on('click', '#single-below-header .nectar-social a', function () {
return false;
});
$('body.single-product .nectar-social').addClass('woo');
this.$body.on('click', '.facebook-share:not(.inactive)', this.facebookShare);
this.$body.on('click', '.nectar-social:not(".woo") .twitter-share:not(.inactive)', this.twitterShare);
this.$body.on('click', '.nectar-social.woo .twitter-share', this.wooTwitterShare);
this.$body.on('click', '.nectar-social:not(".woo") .linkedin-share:not(.inactive)', this.linkedInShare);
this.$body.on('click', '.nectar-social.woo .linkedin-share', this.woolinkedInShare);
this.$body.on('click', '.nectar-social:not(".woo") .pinterest-share:not(.inactive)', this.pinterestShare);
this.$body.on('click', '.nectar-social.woo .pinterest-share', this.wooPinterestShare);
this.$body.on('click', '.nectar-social.fixed > a', function () {
return false;
});
// Hover style
// desktop
if (!this.usingMobileBrowser) {
var $socialTimeout;
this.$body.on('mouseenter', '.nectar-social.hover .share-btn', function () {
clearTimeout($socialTimeout);
// Hide other sibling items when needed.
if( $(this).parents('[id*="-meta"]').length > 0 ) {
$(this).parents('[id*="-meta"]').addClass('social-hovered');
}
if( $(this).parents('#single-below-header').length > 0 ) {
$(this).parents('#single-below-header').addClass('social-hovered');
}
$(this).parent().addClass('visible');
});
this.$body.on('mouseleave', '.nectar-social.hover', function () {
var $that = $(this);
$socialTimeout = setTimeout(function () {
$that.removeClass('visible');
if( $that.parents('[id*="-meta"]').length > 0 ) {
$that.parents('[id*="-meta"]').removeClass('social-hovered');
}
if( $that.parents('#single-below-header').length > 0 ) {
$that.parents('#single-below-header').removeClass('social-hovered');
}
}, 200);
});
}
// Click triggered on mobile
else {
this.$body.on('click', '.nectar-social.hover .share-btn', function () {
// Hide other sibling items when needed.
if( $(this).parents('[id*="-meta"]').length > 0 ) {
$(this).parents('[id*="-meta"]').addClass('social-hovered');
}
if( $(this).parents('#single-below-header').length > 0 ) {
$(this).parents('#single-below-header').addClass('social-hovered');
}
$(this).parent().addClass('visible');
return false;
});
}
};
NectarSocial.prototype.facebookShare = function() {
var windowLocation = window.location.href.replace(window.location.hash, '');
window.open('https://www.facebook.com/sharer/sharer.php?u=' + windowLocation, "facebookWindow", "height=380,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0");
return false;
};
NectarSocial.prototype.facebookShare = function() {
var windowLocation = window.location.href.replace(window.location.hash, '');
window.open('https://www.facebook.com/sharer/sharer.php?u=' + windowLocation, "facebookWindow", "height=380,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0");
return false;
};
NectarSocial.prototype.twitterShare = function() {
var windowLocation = window.location.href.replace(window.location.hash, '');
var $pageTitle;
if ($(".section-title h1").length > 0) {
$pageTitle = encodeURIComponent($(".section-title h1").text());
} else {
$pageTitle = encodeURIComponent($(document).find("title").text());
}
window.open('http://twitter.com/intent/tweet?text=' + $pageTitle + ' ' + windowLocation, "twitterWindow", "height=380,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0");
return false;
};
NectarSocial.prototype.wooTwitterShare = function() {
var windowLocation = window.location.href.replace(window.location.hash, '');
window.open('http://twitter.com/intent/tweet?text=' + $("h1.product_title").text() + ' ' + windowLocation, "twitterWindow", "height=380,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0");
return false;
};
NectarSocial.prototype.linkedInShare = function() {
var windowLocation = window.location.href.replace(window.location.hash, '');
var $pageTitle;
if ($(".section-title h1").length > 0) {
$pageTitle = encodeURIComponent($(".section-title h1").text());
} else {
$pageTitle = encodeURIComponent($(document).find("title").text());
}
window.open('http://www.linkedin.com/shareArticle?mini=true&url=' + windowLocation + '&title=' + $pageTitle + '', "linkedInWindow", "height=480,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0");
return false;
};
NectarSocial.prototype.woolinkedInShare = function() {
var windowLocation = window.location.href.replace(window.location.hash, '');
window.open('http://www.linkedin.com/shareArticle?mini=true&url=' + windowLocation + '&title=' + $("h1.product_title").text(), "twitterWindow", "height=380,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0");
return false;
};
NectarSocial.prototype.pinterestShare = function() {
var windowLocation = window.location.href.replace(window.location.hash, '');
var $sharingImg = ($('.single-portfolio').length > 0 && $('div[data-featured-img]').attr('data-featured-img') != 'empty') ? $('div[data-featured-img]').attr('data-featured-img') : $('#ajax-content-wrap img').first().attr('src');
var $pageTitle;
if ($(".section-title h1").length > 0) {
$pageTitle = encodeURIComponent($(".section-title h1").text());
} else {
$pageTitle = encodeURIComponent($(document).find("title").text());
}
window.open('http://pinterest.com/pin/create/button/?url=' + windowLocation + '&media=' + $sharingImg + '&description=' + $pageTitle, "pinterestWindow", "height=640,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0");
return false;
};
NectarSocial.prototype.wooPinterestShare = function () {
var $imgToShare = ($('img.attachment-shop_single').length > 0) ? $('img.attachment-shop_single').first().attr('src') : $('.single-product-main-image img').first().attr('src');
var windowLocation = window.location.href.replace(window.location.hash, '');
window.open('http://pinterest.com/pin/create/button/?url=' + windowLocation + '&media=' + $imgToShare + '&description=' + $('h1.product_title').text(), "pinterestWindow", "height=640,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0");
return false;
};
NectarSocial.prototype.nectarLove = function() {
this.$body.on('click', '.nectar-love', function () {
var $loveLink = $(this),
$id = $(this).attr('id'),
$that = $(this);
if ($loveLink.hasClass('loved') || $(this).hasClass('inactive')) {
return false;
}
var $dataToPass = {
action: 'nectar-love',
loves_id: $id,
love_nonce: window.nectarLove.loveNonce
};
$.post(window.nectarLove.ajaxurl, $dataToPass, function (data) {
$loveLink.find('.nectar-love-count').html(data);
$loveLink.addClass('loved').attr('title', 'You already love this!');
$that.find('.icon-salient-heart-2').addClass('loved');
});
$(this).addClass('inactive');
return false;
});
};
NectarSocial.prototype.fixedStyle = function() {
// Move DOM postiion.
$('.wpb_wrapper .nectar-social.fixed').each(function(i){
// Remove any after first instance.
if( i !== 0 ) {
$(this).remove();
} else {
var $fixedMarkup = $(this).clone();
$('body').append($fixedMarkup);
$(this).remove();
}
});
function showFixedSharing() {
if ( $(window).scrollTop() > 150) {
$('.nectar-social.fixed').addClass('visible');
$(window).off('scroll', showFixedSharing);
$(window).on('scroll', hideFixedSharing);
}
}
function hideFixedSharing() {
if ( $(window).scrollTop() < 150) {
$('.nectar-social.fixed').removeClass('visible');
$(window).off('scroll', hideFixedSharing);
$(window).on('scroll', showFixedSharing);
}
}
if ( $(window).width() < 1000 && $('.nectar-social.fixed').length > 0) {
if ( $(window).scrollTop() > 150) {
$(window).on('scroll', hideFixedSharing);
} else {
$(window).on('scroll', showFixedSharing);
}
}
$(window).on('smartresize',function () {
if ( $(window).width() > 1000) {
$('.nectar-social.fixed').addClass('visible');
} else if ( $(window).scrollTop() < 150) {
$(window).off('scroll', hideFixedSharing);
$(window).on('scroll', showFixedSharing);
$('.nectar-social.fixed').removeClass('visible');
} else {
$(window).off('scroll', showFixedSharing);
$(window).on('scroll', hideFixedSharing);
}
});
};
var nectarSocialInit = new NectarSocial();
window.NectarSocial = NectarSocial;
});