User:Lythronax/SocialIcon.js

/* Social Media buttons script */ /* Partially from http://dev.wikia.com/wiki/ShowHide/code.js by Daniel Friesen and others */ /* Modified ever so slightly by user:Lythronax is suit wikis with the new global navigation */ // Namespaces the buttons should be loaded on if (!$.isArray(window.SocialMediaButtonsNamespaces)) { window.SocialMediaButtonsNamespaces = [0, 6, 14, 500]; } // Check namespace of article, cross-reference with namespaces entered if (SocialMediaButtonsNamespaces.indexOf(mediaWiki.config.get('wgNamespaceNumber')) > -1 && wgAction === 'view') { (function ($, mw, Wikia) {       "use strict";        //Configuration        var config = window.SocialMediaButtons = $.extend(true, { position: 'top', //Position of the buttons: "top" or "bottom" colorScheme: 'dark', //Color scheme of the buttons: "dark", "light" or "color" buttonSize: 'default', //Button size: "default" or "#px" wikiTwitterAccount: 'default', //Wiki Twitter account: "default" or "accountname" userLang: true, //i18n settings: "true" // German de: { google: "Teile diesen Artikel auf Google+", facebook: "Teile diesen Artikel auf Facebook", twitter: "Teile diesen Artikel auf Twitter", vkontakte: "Teile diesen Artikel auf VKontakte", weibo: "Teile diesen Artikel auf Weibo", via: "via", twitterAccount: "Wikia_de", twitterMessage: "+von+Fans,+für+Fans.+" },           // English en: { google: "Share this on Google+", facebook: "Share this on Facebook", twitter: "Share this on Twitter", vkontakte: "Share this on VKontakte", weibo: "Share this on Weibo", via: "via", twitterAccount: "Wikia", twitterMessage: "+from+the+most+knowledgeable+fans+on+the+planet.+" },           // Spanish es: { google: "Compártelo en Google+", facebook: "Compártelo en Facebook", twitter: "Compártelo en Twitter", vkontakte: "Compártelo en VKontakte", weibo: "Compártelo en Weibo", via: "vía", twitterAccount: "Wikia_es", twitterMessage: "+de+fans,+para+fans.+" },           // French fr: { google: "Partager sur Google+", facebook: "Partager sur Facebook", twitter: "Partager sur Twitter", vkontakte: "Partager sur VKontakte", weibo: "Partager sur Weibo", via: "@Wikia_fr", twitterAccount: "Wikia_fr", twitterMessage: "+from+the+most+knowledgeable+fans+on+the+planet.+" },           // Hungarian hu: { google: "Megosztás a Google+-on", facebook: "Megosztás a Facebookon", twitter: "Megosztás a Twitteren", vkontakte: "Megosztás a VKontakte", weibo: "Megosztás a Weibo-on", via: "via", twitterAccount: "Wikia", twitterMessage: "+a+földkerekség+legnagyobb+tudású+rajongóitól.+" },           // Japanese ja: { google: "Google+でシェアする", facebook: "Facebookでシェアする", twitter: "Twitterでシェアする", vkontakte: "VKontakteでシェアする", weibo: "Weiboでシェアする", via: "を用いて", twitterAccount: "Wikia", twitterMessage: "+from+the+most+knowledgeable+fans+on+the+planet.+" },           // Dutch nl: { google: "Deel dit op Google+", facebook: "Deel dit op Facebook", twitter: "Deel dit op Twitter", vkontakte: "Deel dit op VKontakte", weibo: "Deel dit op Weibo", via: "via", twitterAccount: "Wikia_nl", twitterMessage: "+from+the+most+knowledgeable+fans+on+the+planet.+" },           // Polish pl: { google: "Podziel się na Google+", facebook: "Podziel się na Facebooku", twitter: "Podziel się na Twitterze", vkontakte: "Podziel się na VKontakte", weibo: "Podziel się na Weibo", via: "przez", twitterAccount: "Wikia_pl", twitterMessage: "+from+the+most+knowledgeable+fans+on+the+planet.+" },           // Portuguese pt: { google: "Compartilhe no Google+", facebook: "Compartilhe no Facebook", twitter: "Compartilhe no Twitter", vkontakte: "Compartilhe no VKontakte", weibo: "Compartilhe no Weibo", via: "via", twitterAccount: "Wikia_pt", twitterMessage: "+from+the+most+knowledgeable+fans+on+the+planet.+" },           // Russian ru: { google: "Поделиться в Google+", facebook: "Поделиться в Facebook", twitter: "Поделиться в Twitter", vkontakte: "Поделиться ВКонтакте", weibo: "Поделиться в Weibo", via: "с помощью", twitterAccount: "wikia_ru", twitterMessage: "+—+от+фанатов.+Для+фанатов.+" },           // Chinese zh: { google: "在Google+上分享", facebook: "在Facebook上分享", twitter: "在Twitter上分享", vkontakte: "在VKontakte上分享", weibo: "在Weibo上分享", via: "を用いて", twitterAccount: "Wikia", twitterMessage: "+from+the+most+knowledgeable+fans+on+the+planet.+" }       }, window.SocialMediaButtons || {});        // i18n function        function msg(name) {            if (config.userLang && mw.config.get('wgUserLanguage') in config && name in config[mw.config.get('wgUserLanguage')]) {                return config[mw.config.get('wgUserLanguage')][name];            }            if (mw.config.get('wgContentLanguage') in config && name in config[mw.config.get('wgContentLanguage')]) {                return config[mw.config.get('wgContentLanguage')][name];            }            return config.en[name];        }        // Image colorscheme        if (config.colorScheme === 'light') {            var gInactive = 'http://static.wikia.com/messaging/images/7/7c/Google%2B_Light.png',                fbInactive = 'http://static.wikia.com/messaging/images/5/56/Facebook_Light.png',                twitterInactive = 'http://static.wikia.com/messaging/images/b/b8/Twitter_Light.png'; if (mw.config.get('wgUserLanguage') === "ru") { var vkInactive = 'http://static.wikia.com/messaging/images/1/1d/VKLight.png'; }           if (mw.config.get('wgContentLanguage') === "zh") { var weiboInactive = 'http://static.wikia.com/messaging/images/1/16/WeiboLight.png'; }       } else if (config.colorScheme === 'color') { var gInactive = 'http://static.wikia.com/messaging/images/7/74/Google%2B_Hover.png', fbInactive = 'http://static.wikia.com/messaging/images/2/22/Facebook_Hover.png', twitterInactive = 'http://static.wikia.com/messaging/images/5/5d/Twitter_Hover.png'; if (mw.config.get('wgUserLanguage') === "ru") { var vkInactive = 'http://static.wikia.com/messaging/images/a/a6/VKHover.png'; }           if (mw.config.get('wgContentLanguage') === "zh") { var weiboInactive = 'http://static.wikia.com/messaging/images/9/93/WeiboHover.png'; }       } else { var gInactive = 'http://static.wikia.com/messaging/images/4/45/Google%2B_Dark.png', fbInactive = 'http://static.wikia.com/messaging/images/8/83/Facebook_Dark.png', twitterInactive = 'http://static.wikia.com/messaging/images/d/d1/Twitter_Dark.png'; if (mw.config.get('wgUserLanguage') === "ru") { var vkInactive = 'http://static.wikia.com/messaging/images/1/14/VKDark.png'; }           if (mw.config.get('wgContentLanguage') === "zh") { var weiboInactive = 'http://static.wikia.com/messaging/images/8/8f/WeiboDark.png'; }       }        var gHover = 'http://static.wikia.com/messaging/images/7/74/Google%2B_Hover.png', fbHover = 'http://static.wikia.com/messaging/images/2/22/Facebook_Hover.png', twitterHover = 'http://static.wikia.com/messaging/images/5/5d/Twitter_Hover.png'; // Pre-load the hover images to avoid delay var gHoverLoad = new Image, fbHoverLoad = new Image, twitterHoverLoad = new Image; gHoverLoad.src = gHover; fbHoverLoad.src = fbHover; twitterHoverLoad.src = twitterHover; if (mw.config.get('wgUserLanguage') === "ru") { var vkHover = 'http://static.wikia.com/messaging/images/a/a6/VKHover.png'; var vkHoverLoad = new Image; vkHoverLoad.src = vkHover; }       if (mw.config.get('wgContentLanguage') === "zh") { var weiboHover = 'http://static.wikia.com/messaging/images/9/93/WeiboHover.png'; var weiboHoverLoad = new Image; weiboHoverLoad.src = weiboHover; }       // Share URL's        var currentURL = document.URL; var currentSiteName = mw.config.get('wgSiteName').replace(/ /g, "+"); var currentPageName = mw.config.get('wgPageName').replace(/_/g, "+").replace(/"/g, "%22");       if (mw.config.get('wgContentLanguage') === "zh") {            var siteName = mw.config.get('wgSiteName');            var sudaRef = mw.config.get('wgServer').replace(/http\:\/\//g, "");        }        var gShare = 'https://plus.google.com/share?url=' + currentURL;        var fbShare = 'https://facebook.com/sharer/sharer.php?u=' + currentURL;        if (config.wikiTwitterAccount !== 'default') {            var twitterAcc = config.wikiTwitterAccount;        } else {            var twitterAcc = msg('twitterAccount');        }        var twitterShare = 'https://twitter.com/intent/tweet?original_referer=' + currentURL + '&text=' + currentPageName + msg('twitterMessage') + currentSiteName + '&url=' + currentURL + '&via=' + twitterAcc; + '&via=' + twitterAcc;        if (mw.config.get('wgUserLanguage') === 'ru') { var vkShare = 'http://vk.com/share.php?url=' + currentURL + '&title=' + currentPageName; }       if (mw.config.get('wgContentLanguage') === "zh") { var weiboShare = 'http://service.weibo.com/share/share.php?url=' + currentURL + '&title=' + siteName + '&sudaref=' + sudaRef; }       //Border color, positioning and HTML for the various namespaces if (mediaWiki.config.get('wgNamespaceNumber') === 500) { var borderColor = $('#WikiaUserPagesHeader').css('border-bottom-color'); var appendTo = '#WikiaUserPagesHeader'; var topHTML = 'float: right; margin-top: -24px;'; } else if (mediaWiki.config.get('wgNamespaceNumber') === 1201) { var borderColor = $('#mw-content-text .BreadCrumbs').css('border-bottom-color'); var appendTo = '#mw-content-text .BreadCrumbs'; var topHTML = 'float:right;'; } else { var borderColor = $('#WikiaPageHeader').css('border-bottom-color'); var appendTo = '#WikiaPageHeader'; if (mediaWiki.config.get('wgPageName') === mediaWiki.config.get('wgMainPageTitle').replace(/ /g, '_')) { var topHTML = 'padding-top: 4px; position: absolute; top: 0px; right: 0;'; } else { var topHTML = 'position: absolute; top: 0px; right: 0;'; }       }        // Append the buttons $(function {            if (config.position === 'top') {                if (config.buttonSize !== 'default') {                    var buttonSizePX = config.buttonSize;                } else {                    var buttonSizePX = "21px";                }                var socialHTML = ' '; $(appendTo).append(socialHTML); if ($('#WikiaPageHeader').length) { var WikiaPageHeaderHeight = $('#WikiaPageHeader').height; if (mediaWiki.config.get('wgPageName') !== mediaWiki.config.get('wgMainPageTitle').replace(/ /g, '_')) { var paddingBottom = parseInt(buttonSizePX.replace('px', '')) + 5 + 'px'; $('#WikiaPageHeader').css('padding-bottom', paddingBottom); } else if (mediaWiki.config.get('wgPageName') === mediaWiki.config.get('wgMainPageTitle').replace(/ /g, '_')) { var paddingBottom = parseInt(buttonSizePX.replace('px', '')) + 8 + 'px'; $('#WikiaPageHeader').css('padding-bottom', paddingBottom); }               }            } else { if (config.buttonSize !== 'default') { var buttonSizePX = config.buttonSize; } else { var buttonSizePX = "64px"; }               var socialHTML = ' </a><img style="cursor: pointer; padding-left: 5px;" class="share-button twitter ' + config.colorScheme + '" height="' + buttonSizePX + '" width="' + buttonSizePX + '" src="' + twitterInactive + '"></a> '; $('#mw-content-text').append(socialHTML); }			if (mw.config.get('wgUserLanguage') === 'ru') { if (config.position === 'top') { $('.socialmedia-share').prepend('<img style="cursor: pointer;" class="share-button vkontakte ' + config.colorScheme + '" height="' + buttonSizePX + '" width="' + buttonSizePX + '" src="' + vkInactive + '" /></a>'); } else { $('.socialmedia-share').prepend('<img style="cursor: pointer;" class="share-button vkontakte ' + config.colorScheme + '" height="' + buttonSizePX + '" width="' + buttonSizePX + '" src="' + vkInactive + '" /></a>'); $('.socialmedia-share .googleplus').css('padding-left', '5px'); }           }            if (mw.config.get('wgContentLanguage') === "zh") { if (config.position === 'top') { $('.socialmedia-share').prepend('<img style="cursor: pointer;" class="share-button weibo ' + config.colorScheme + '" height="' + buttonSizePX + '" width="' + buttonSizePX + '" src="' + weiboInactive + '" /></a>'); } else { $('.socialmedia-share').prepend('<img style="cursor: pointer;" class="share-button weibo ' + config.colorScheme + '" height="' + buttonSizePX + '" width="' + buttonSizePX + '" src="' + weiboInactive + '" /></a>'); $('.socialmedia-share .googleplus').css('padding-left', '5px'); }           }            // Change the button on hover $('.socialmedia-share .googleplus').hover(function {                $(this).attr('src', gHover);            }, function  {                $(this).attr('src', gInactive);            }); $('.socialmedia-share .facebook').hover(function {                $(this).attr('src', fbHover);            }, function  {                $(this).attr('src', fbInactive);            }); $('.socialmedia-share .twitter').hover(function {                $(this).attr('src', twitterHover);            }, function  {                $(this).attr('src', twitterInactive);            }); if (mw.config.get('wgUserLanguage') === 'ru') { $('.socialmedia-share .vkontakte').hover(function {                    $(this).attr('src', vkHover);                }, function  {                    $(this).attr('src', vkInactive);                }); }           if (mw.config.get('wgContentLanguage') === "zh") { $('.socialmedia-share .weibo').hover(function {                    $(this).attr('src', weiboHover);                }, function  {                    $(this).attr('src', weiboInactive);                }); }           // Pop-up instead of new window function createPopup(url, windowName) { var popupWindow = window.open(url, windowName, 'height=500,width=600,menubar=0,toolbar=0,location=1,scrollbars=1,status=1,resizable=1'); if (window.focus) { popupWindow.focus; }               return false; }           function trackClick(label, event) { return Wikia.Tracker.track({                   action: Wikia.Tracker.ACTIONS.CLICK_LINK_BUTTON,                    browserEvent: event,                    category: 'custom-share',                    label: label,                    trackingMethod: 'ga'                }); }           $('.socialmedia-share img').on('click', function (event) {                event.preventDefault;                var socialNetwork = $(this).attr('class');                var socialNetworkURL = $(this).parent.attr('href');                if (socialNetwork.indexOf('googleplus') >= 0) {                    createPopup(socialNetworkURL, 'googleplusPopup');                    trackClick('googleplus', event);                } else if (socialNetwork.indexOf('facebook') >= 0) {                    createPopup(socialNetworkURL, 'facebookPopup');                    trackClick('facebook', event);                } else if (socialNetwork.indexOf('twitter') >= 0) {                    createPopup(socialNetworkURL, 'twitterPopup');                    trackClick('twitter', event);                } else if (socialNetwork.indexOf('vkontakte') >= 0) {                    createPopup(socialNetworkURL, 'vkPopup'); trackClick('vk', event); } else if (socialNetwork.indexOf('weibo') >= 0) { createPopup(socialNetworkURL, 'weiboPopup'); trackClick('weibo', event); }           });        });    }(jQuery, mediaWiki, Wikia)); } //