{"version":3,"file":"rrssb.min.js","sources":["scripts/rrssb/js/rrssb.min.js"],"sourcesContent":["/*!\r\n Ridiculously Responsive Social Sharing Buttons\r\n Team: @dbox, @joshuatuscan\r\n Site: http://www.kurtnoble.com/labs/rrssb\r\n Twitter: @therealkni\r\n\r\n ___ ___\r\n /__/| /__/\\ ___\r\n | |:| \\ \\:\\ / /\\\r\n | |:| \\ \\:\\ / /:/\r\n __| |:| _____\\__\\:\\ /__/::\\\r\n /__/\\_|:|____ /__/::::::::\\ \\__\\/\\:\\__\r\n \\ \\:\\/:::::/ \\ \\:\\~~\\~~\\/ \\ \\:\\/\\\r\n \\ \\::/~~~~ \\ \\:\\ ~~~ \\__\\::/\r\n \\ \\:\\ \\ \\:\\ /__/:/\r\n \\ \\:\\ \\ \\:\\ \\__\\/\r\n \\__\\/ \\__\\/\r\n*/\r\n\r\n+(function(window, $, undefined) {\r\n\t'use strict';\r\n\r\n\tvar support = {\r\n\t\tcalc : false\r\n\t};\r\n\r\n\t/*\r\n\t * Public Function\r\n\t */\r\n\r\n\t $.fn.rrssb = function( options ) {\r\n\r\n\t\t// Settings that $.rrssb() will accept.\r\n\t\tvar settings = $.extend({\r\n\t\t\tdescription: undefined,\r\n\t\t\temailAddress: undefined,\r\n\t\t\temailBody: undefined,\r\n\t\t\temailSubject: undefined,\r\n\t\t\timage: undefined,\r\n\t\t\ttitle: undefined,\r\n\t\t\turl: undefined\r\n\t\t}, options );\r\n\r\n\t\t// use some sensible defaults if they didn't specify email settings\r\n\t\tsettings.emailSubject = settings.emailSubject || settings.title;\r\n\t\tsettings.emailBody = settings.emailBody ||\r\n\t\t\t(\r\n\t\t\t\t(settings.description ? settings.description : '') +\r\n\t\t\t\t(settings.url ? '\\n\\n' + settings.url : '')\r\n\t\t\t);\r\n\r\n\t\t// Return the encoded strings if the settings have been changed.\r\n\t\tfor (var key in settings) {\r\n\t\t\tif (settings.hasOwnProperty(key) && settings[key] !== undefined) {\r\n\t\t\t\tsettings[key] = encodeString(settings[key]);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tif (settings.url !== undefined) {\r\n\t\t\t$(this).find('.rrssb-facebook a').attr('href', 'https://www.facebook.com/sharer/sharer.php?u=' + settings.url);\r\n\t\t\t$(this).find('.rrssb-tumblr a').attr('href', 'http://tumblr.com/share/link?url=' + settings.url + (settings.title !== undefined ? '&name=' + settings.title : '') + (settings.description !== undefined ? '&description=' + settings.description : ''));\r\n\t\t\t$(this).find('.rrssb-linkedin a').attr('href', 'http://www.linkedin.com/shareArticle?mini=true&url=' + settings.url + (settings.title !== undefined ? '&title=' + settings.title : '') + (settings.description !== undefined ? '&summary=' + settings.description : ''));\r\n\t\t\t$(this).find('.rrssb-twitter a').attr('href', 'https://twitter.com/intent/tweet?text=' + (settings.description !== undefined ? settings.description : '') + '%20' + settings.url);\r\n\t\t\t$(this).find('.rrssb-hackernews a').attr('href', 'https://news.ycombinator.com/submitlink?u=' + settings.url + (settings.title !== undefined ? '&text=' + settings.title : ''));\r\n\t\t\t$(this).find('.rrssb-reddit a').attr('href', 'http://www.reddit.com/submit?url=' + settings.url + (settings.description !== undefined ? '&text=' + settings.description : '') + (settings.title !== undefined ? '&title=' + settings.title : ''));\r\n\t\t\t$(this).find('.rrssb-googleplus a').attr('href', 'https://plus.google.com/share?url=' + (settings.description !== undefined ? settings.description : '') + '%20' + settings.url);\r\n\t\t\t$(this).find('.rrssb-pinterest a').attr('href', 'http://pinterest.com/pin/create/button/?url=' + settings.url + ((settings.image !== undefined) ? '&media=' + settings.image : '') + (settings.description !== undefined ? '&description=' + settings.description : ''));\r\n\t\t\t$(this).find('.rrssb-pocket a').attr('href', 'https://getpocket.com/save?url=' + settings.url);\r\n\t\t\t$(this).find('.rrssb-github a').attr('href', settings.url);\r\n\t\t}\r\n\r\n\t\tif (settings.emailAddress !== undefined || settings.emailSubject) {\r\n\t\t\t$(this).find('.rrssb-email a').attr('href', 'mailto:' + (settings.emailAddress ? settings.emailAddress : '') + '?' + (settings.emailSubject !== undefined ? 'subject=' + settings.emailSubject : '') + (settings.emailBody !== undefined ? '&body=' + settings.emailBody : ''));\r\n\t\t}\r\n\r\n\t};\r\n\r\n\t/*\r\n\t * Utility functions\r\n\t */\r\n\tvar detectCalcSupport = function(){\r\n\t\t//detect if calc is natively supported.\r\n\t\tvar el = $('
');\r\n\t\tvar calcProps = [\r\n\t\t\t'calc',\r\n\t\t\t'-webkit-calc',\r\n\t\t\t'-moz-calc'\r\n\t\t];\r\n\r\n\t\t$('body').append(el);\r\n\r\n\t\tfor (var i=0; i < calcProps.length; i++) {\r\n\t\t\tel.css('width', calcProps[i] + '(1px)');\r\n\t\t\tif(el.width() === 1){\r\n\t\t\t\tsupport.calc = calcProps[i];\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tel.remove();\r\n\t};\r\n\r\n\tvar encodeString = function(string) {\r\n\t\t// Recursively decode string first to ensure we aren't double encoding.\r\n\t\tif (string !== undefined && string !== null) {\r\n\t\t\tif (string.match(/%[0-9a-f]{2}/i) !== null) {\r\n\t\t\t\tstring = decodeURIComponent(string);\r\n\t\t\t\tencodeString(string);\r\n\t\t\t} else {\r\n\t\t\t\treturn encodeURIComponent(string);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tvar setPercentBtns = function() {\r\n\t\t// loop through each instance of buttons\r\n\t\t$('.rrssb-buttons').each(function(index) {\r\n\t\t\tvar self = $(this);\r\n\t\t\tvar buttons = $('li:visible', self);\r\n\t\t\tvar numOfButtons = buttons.length;\r\n\t\t\tvar initBtnWidth = 100 / numOfButtons;\r\n\r\n\t\t\t// set initial width of buttons\r\n\t\t\tbuttons.css('width', initBtnWidth + '%').attr('data-initwidth',initBtnWidth);\r\n\t\t});\r\n\t};\r\n\r\n\tvar makeExtremityBtns = function() {\r\n\t\t// loop through each instance of buttons\r\n\t\t$('.rrssb-buttons').each(function(index) {\r\n\t\t\tvar self = $(this);\r\n\t\t\t//get button width\r\n\t\t\tvar containerWidth = self.width();\r\n\t\t\tvar buttonWidth = $('li', self).not('.small').eq(0).width();\r\n\t\t\tvar buttonCountSmall = $('li.small', self).length;\r\n\r\n\t\t\t// enlarge buttons if they get wide enough\r\n\t\t\tif (buttonWidth > 170 && buttonCountSmall < 1) {\r\n\t\t\t\tself.addClass('large-format');\r\n\t\t\t\tvar fontSize = buttonWidth / 12 + 'px';\r\n\t\t\t\tself.css('font-size', fontSize);\r\n\t\t\t} else {\r\n\t\t\t\tself.removeClass('large-format');\r\n\t\t\t\tself.css('font-size', '');\r\n\t\t\t}\r\n\r\n\t\t\tif (containerWidth < buttonCountSmall * 20) {\r\n\t\t\t\tself.removeClass('small-format').addClass('tiny-format');\r\n\t\t\t} else {\r\n\t\t\t\tself.removeClass('tiny-format');\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tvar backUpFromSmall = function() {\r\n\t\t// loop through each instance of buttons\r\n\t\t$('.rrssb-buttons').each(function(index) {\r\n\t\t\tvar self = $(this);\r\n\r\n\t\t\tvar buttons = $('li', self);\r\n\t\t\tvar smallButtons = buttons.filter('.small');\r\n\t\t\tvar totalBtnSze = 0;\r\n\t\t\tvar totalTxtSze = 0;\r\n\t\t\tvar upCandidate = smallButtons.eq(0);\r\n\t\t\tvar nextBackUp = parseFloat(upCandidate.attr('data-size')) + 55;\r\n\t\t\tvar smallBtnCount = smallButtons.length;\r\n\r\n\t\t\tif (smallBtnCount === buttons.length) {\r\n\t\t\t\tvar btnCalc = smallBtnCount * 42;\r\n\t\t\t\tvar containerWidth = self.width();\r\n\r\n\t\t\t\tif ((btnCalc + nextBackUp) < containerWidth) {\r\n\t\t\t\t\tself.removeClass('small-format');\r\n\t\t\t\t\tsmallButtons.eq(0).removeClass('small');\r\n\r\n\t\t\t\t\tsizeSmallBtns();\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\t\t\t\tbuttons.not('.small').each(function(index) {\r\n\t\t\t\t\tvar button = $(this);\r\n\t\t\t\t\tvar txtWidth = parseFloat(button.attr('data-size')) + 55;\r\n\t\t\t\t\tvar btnWidth = parseFloat(button.width());\r\n\r\n\t\t\t\t\ttotalBtnSze = totalBtnSze + btnWidth;\r\n\t\t\t\t\ttotalTxtSze = totalTxtSze + txtWidth;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tvar spaceLeft = totalBtnSze - totalTxtSze;\r\n\r\n\t\t\t\tif (nextBackUp < spaceLeft) {\r\n\t\t\t\t\tupCandidate.removeClass('small');\r\n\t\t\t\t\tsizeSmallBtns();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tvar checkSize = function(init) {\r\n\t\t// loop through each instance of buttons\r\n\t\t$('.rrssb-buttons').each(function(index) {\r\n\r\n\t\t\tvar self = $(this);\r\n\t\t\tvar buttons = $('li', self);\r\n\r\n\t\t\t// get buttons in reverse order and loop through each\r\n\t\t\t$(buttons.get().reverse()).each(function(index, count) {\r\n\r\n\t\t\t\tvar button = $(this);\r\n\r\n\t\t\t\tif (button.hasClass('small') === false) {\r\n\t\t\t\t\tvar txtWidth = parseFloat(button.attr('data-size')) + 55;\r\n\t\t\t\t\tvar btnWidth = parseFloat(button.width());\r\n\r\n\t\t\t\t\tif (txtWidth > btnWidth) {\r\n\t\t\t\t\t\tvar btn2small = buttons.not('.small').last();\r\n\t\t\t\t\t\t$(btn2small).addClass('small');\r\n\t\t\t\t\t\tsizeSmallBtns();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!--count) backUpFromSmall();\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t// if first time running, put it through the magic layout\r\n\t\tif (init === true) {\r\n\t\t\trrssbMagicLayout(sizeSmallBtns);\r\n\t\t}\r\n\t};\r\n\r\n\tvar sizeSmallBtns = function() {\r\n\t\t// loop through each instance of buttons\r\n\t\t$('.rrssb-buttons').each(function(index) {\r\n\t\t\tvar self = $(this);\r\n\t\t\tvar regButtonCount;\r\n\t\t\tvar regPercent;\r\n\t\t\tvar pixelsOff;\r\n\t\t\tvar magicWidth;\r\n\t\t\tvar smallBtnFraction;\r\n\t\t\tvar buttons = $('li', self);\r\n\t\t\tvar smallButtons = buttons.filter('.small');\r\n\r\n\t\t\t// readjust buttons for small display\r\n\t\t\tvar smallBtnCount = smallButtons.length;\r\n\r\n\t\t\t// make sure there are small buttons\r\n\t\t\tif (smallBtnCount > 0 && smallBtnCount !== buttons.length) {\r\n\t\t\t\tself.removeClass('small-format');\r\n\r\n\t\t\t\t//make sure small buttons are square when not all small\r\n\t\t\t\tsmallButtons.css('width','42px');\r\n\t\t\t\tpixelsOff = smallBtnCount * 42;\r\n\t\t\t\tregButtonCount = buttons.not('.small').length;\r\n\t\t\t\tregPercent = 100 / regButtonCount;\r\n\t\t\t\tsmallBtnFraction = pixelsOff / regButtonCount;\r\n\r\n\t\t\t\t// if calc is not supported. calculate the width on the fly.\r\n\t\t\t\tif (support.calc === false) {\r\n\t\t\t\t\tmagicWidth = ((self.innerWidth()-1) / regButtonCount) - smallBtnFraction;\r\n\t\t\t\t\tmagicWidth = Math.floor(magicWidth*1000) / 1000;\r\n\t\t\t\t\tmagicWidth += 'px';\r\n\t\t\t\t} else {\r\n\t\t\t\t\tmagicWidth = support.calc+'('+regPercent+'% - '+smallBtnFraction+'px)';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbuttons.not('.small').css('width', magicWidth);\r\n\r\n\t\t\t} else if (smallBtnCount === buttons.length) {\r\n\t\t\t\t// if all buttons are small, change back to percentage\r\n\t\t\t\tself.addClass('small-format');\r\n\t\t\t\tsetPercentBtns();\r\n\t\t\t} else {\r\n\t\t\t\tself.removeClass('small-format');\r\n\t\t\t\tsetPercentBtns();\r\n\t\t\t}\r\n\t\t}); //end loop\r\n\r\n\t\tmakeExtremityBtns();\r\n\t};\r\n\r\n\tvar rrssbInit = function() {\r\n\t\t$('.rrssb-buttons').each(function(index) {\r\n\t\t\t$(this).addClass('rrssb-'+(index + 1));\r\n\t\t});\r\n\r\n\t\tdetectCalcSupport();\r\n\r\n\t\tsetPercentBtns();\r\n\r\n\t\t// grab initial text width of each button and add as data attr\r\n\t\t$('.rrssb-buttons li .rrssb-text').each(function(index) {\r\n\t\t\tvar buttonTxt = $(this);\r\n\t\t\tvar txtWdth = buttonTxt.width();\r\n\t\t\tbuttonTxt.closest('li').attr('data-size', txtWdth);\r\n\t\t});\r\n\r\n\t\tcheckSize(true);\r\n\t};\r\n\r\n\tvar rrssbMagicLayout = function(callback) {\r\n\t\t//remove small buttons before each conversion try\r\n\t\t$('.rrssb-buttons li.small').removeClass('small');\r\n\r\n\t\tcheckSize();\r\n\r\n\t\tcallback();\r\n\t};\r\n\r\n\tvar popupCenter = function(url, title, w, h) {\r\n\t\t// Fixes dual-screen position Most browsers Firefox\r\n\t\tvar dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : screen.left;\r\n\t\tvar dualScreenTop = window.screenTop !== undefined ? window.screenTop : screen.top;\r\n\r\n\t\tvar width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width;\r\n\t\tvar height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height;\r\n\r\n\t\tvar left = ((width / 2) - (w / 2)) + dualScreenLeft;\r\n\t\tvar top = ((height / 3) - (h / 3)) + dualScreenTop;\r\n\r\n\t\tvar newWindow = window.open(url, title, 'scrollbars=yes, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);\r\n\r\n\t\t// Puts focus on the newWindow\r\n\t\tif (newWindow && newWindow.focus) {\r\n\t\t\tnewWindow.focus();\r\n\t\t}\r\n\t};\r\n\r\n\tvar waitForFinalEvent = (function () {\r\n\t\tvar timers = {};\r\n\t\treturn function (callback, ms, uniqueId) {\r\n\t\t\tif (!uniqueId) {\r\n\t\t\t\tuniqueId = \"Don't call this twice without a uniqueId\";\r\n\t\t\t}\r\n\t\t\tif (timers[uniqueId]) {\r\n\t\t\t\tclearTimeout (timers[uniqueId]);\r\n\t\t\t}\r\n\t\t\ttimers[uniqueId] = setTimeout(callback, ms);\r\n\t\t};\r\n\t})();\r\n\r\n\t// init load\r\n\t$(document).ready(function(){\r\n\t\t/*\r\n\t\t * Event listners\r\n\t\t */\r\n\r\n\t\ttry {\r\n\t\t\t$(document).on('click', '.rrssb-buttons a.popup', {}, function popUp(e) {\r\n\t\t\t\tvar self = $(this);\r\n\t\t\t\tpopupCenter(self.attr('href'), self.find('.rrssb-text').html(), 580, 470);\r\n\t\t\t\te.preventDefault();\r\n\t\t\t});\r\n\t\t}\r\n\t\tcatch (e) { // catching this adds partial support for jQuery 1.3\r\n\t\t}\r\n\r\n\t\t// resize function\r\n\t\t$(window).resize(function () {\r\n\r\n\t\t\trrssbMagicLayout(sizeSmallBtns);\r\n\r\n\t\t\twaitForFinalEvent(function(){\r\n\t\t\t\trrssbMagicLayout(sizeSmallBtns);\r\n\t\t\t}, 200, \"finished resizing\");\r\n\t\t});\r\n\r\n\t\trrssbInit();\r\n\t});\r\n\r\n\t// Make global\r\n\twindow.rrssbInit = rrssbInit;\r\n\r\n})(window, jQuery);\r\n"],"names":["window","$","undefined","setPercentBtns","each","index","self","this","buttons","initBtnWidth","length","css","attr","checkSize","init","get","reverse","count","txtWidth","button","hasClass","parseFloat","width","btn2small","not","last","addClass","sizeSmallBtns","backUpFromSmall","rrssbMagicLayout","rrssbInit","el","calcProps","append","i","support","calc","remove","buttonTxt","txtWdth","closest","timers","encodeString","fn","rrssb","options","key","settings","extend","description","emailAddress","emailBody","emailSubject","image","title","url","hasOwnProperty","find","string","match","encodeURIComponent","decodeURIComponent","smallButtons","filter","totalBtnSze","totalTxtSze","upCandidate","eq","nextBackUp","smallBtnCount","removeClass","btnWidth","regButtonCount","regPercent","magicWidth","pixelsOff","smallBtnFraction","innerWidth","Math","floor","containerWidth","buttonWidth","buttonCountSmall","callback","waitForFinalEvent","ms","uniqueId","clearTimeout","setTimeout","document","ready","on","e","w","h","dualScreenLeft","dualScreenTop","height","html","screenLeft","screen","left","screenTop","top","documentElement","clientWidth","innerHeight","clientHeight","newWindow","open","focus","preventDefault","resize","jQuery"],"mappings":"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"}