/* * Easy Retweet Button * http://ejohn.org/blog/retweet/ * by John Resig (ejohn.org) * * Licensed under the MIT License: * http://www.opensource.org/licenses/mit-license.php */ (function(){ window.RetweetJS = { // Your Bit.ly Username bitly_user: "retweetjs", // Your Bit.ly API Key // Found here: http://bit.ly/account bitly_key: "R_6287c92ecaf9efc6f39e4f33bdbf80b1", // The text to replace the links with link_text: (/windows/i.test( navigator.userAgent) ? "" : "") + "Tweet this!", // What # to show (Use "clicks" for # of clicks or "none" for nothing) count_type: "clicks", // Tweet Prefix text // "RT @jeresig " would result in: "RT @jeresig Link Title http://bit.ly/asdf" prefix: "", // Style information styling: "a.retweet { font: 12px Helvetica,Arial; color: #000; text-decoration: none; border: 0px; }" + "a.retweet span { color: #105CB6; font-weight:bold; margin-left:3px; }" + "a.retweet span:hover { text-decoration:underline; color: #E47911; }" + "a.vert { display: block; text-align: center; font-size: 16px; float: left; margin: 4px; }" + "a.retweet strong.vert { display: block; margin-bottom: 4px; background: #F5F5F5; border: 1px solid #EEE; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; padding: 3px; }" + "a.retweet span.vert { display: block; font-size: 12px; margin-left: 0px; }" }; //////////////// No Need to Configure Below Here //////////////// var loadCount = 1; // Asynchronously load the Bit.ly JavaScript API // If it hasn't been loaded already if ( typeof BitlyClient === "undefined" ) { var head = document.getElementsByTagName("head")[0] || document.documentElement; var script = document.createElement("script"); script.src = "http://bit.ly/javascript-api.js?version=latest&login=" + RetweetJS.bitly_user + "&apiKey=" + RetweetJS.bitly_key; script.charSet = "utf-8"; head.appendChild( script ); var check = setInterval(function(){ if ( typeof BitlyCB !== "undefined" ) { clearInterval( check ); head.removeChild( script ); loaded(); } }, 10); loadCount = 0; } if ( document.addEventListener ) { document.addEventListener("DOMContentLoaded", loaded, false); } else if ( window.attachEvent ) { window.attachEvent("onload", loaded); } function loaded(){ // Need to wait for doc ready and js ready if ( ++loadCount < 2 ) { return; } var elems = [], urlElem = {}, hashURL = {}; BitlyCB.shortenResponse = function(data) { for ( var url in data.results ) { var hash = data.results[url].userHash; hashURL[hash] = url; var elems = urlElem[ url ]; if (!elems) return; for ( var i = 0; i < elems.length; i++ ) { elems[i].href += hash; } if ( RetweetJS.count_type === "clicks" ) { BitlyClient.stats(hash, 'BitlyCB.statsResponse'); } } }; BitlyCB.statsResponse = function(data) { var clicks = data.results.clicks, hash = data.results.userHash; var url = hashURL[ hash ], elems = urlElem[ url ]; if ( clicks > 0 ) { for ( var i = 0; i < elems.length; i++ ) { var strong = document.createElement("strong"); strong.appendChild( document.createTextNode( clicks + " " ) ); elems[i].insertBefore(strong, elems[i].firstChild); if ( /(^|\s)vert(\s|$)/.test( elems[i].className ) ) { elems[i].firstChild.className = elems[i].lastChild.className = "vert"; } } } hashURL[ hash ] = urlElem[ url ] = null; }; if ( document.getElementsByClassName ) { elems = document.getElementsByClassName("retweet"); } else { var tmp = document.getElementsByTagName("a"); for ( var i = 0; i < tmp.length; i++ ) { if ( /(^|\s)retweet(\s|$)/.test( tmp[i].className ) ) { elems.push( tmp[i] ); } } } if ( elems.length && RetweetJS.styling ) { var style = document.createElement("style"); style.type = "text/css"; try { style.appendChild( document.createTextNode( RetweetJS.styling ) ); } catch (e) { if ( style.styleSheet ) { style.styleSheet.cssText = RetweetJS.styling; } } document.body.appendChild( style ); } for ( var i = 0; i < elems.length; i++ ) { var elem = elems[i]; if ( /(^|\s)self(\s|$)/.test( elem.className ) ) { elem.href = window.location; elem.title = document.title; } var origText = elem.title || elem.textContent || elem.innerText, href = elem.href; elem.innerHTML = "" + RetweetJS.link_text + ""; elem.title = ""; elem.href = "http://twitter.com/home?status=" + encodeURIComponent(RetweetJS.prefix + origText + " http://bit.ly/"); if ( urlElem[ href ] ) { urlElem[ href ].push( elem ); } else { urlElem[ href ] = [ elem ]; BitlyClient.shorten(href, 'BitlyCB.shortenResponse'); } } } })();