/*
 * 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: "romatica",
	// Your Bit.ly API Key
	// Found here: http://bit.ly/account
	bitly_key: "R_0720c37a8135a25278f0ff083ed67643",
	// The text to replace the links with
	link_text:"この記事を<span>Tweetする</span>",
	// 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: "RT @itoz ",
	// Style information
	styling: "a.retweet { font-size: 13px; color: #888; text-decoration: none; border: 0px;font-family:Georgia, 'Times New Roman', Times, serif; }" +
		"a.retweet span {margin;5px;}" +
		"a.vert {   margin: 0; }" +
		"a.retweet strong.vert { float:left;font-size: 10px; background: #333; color:#ccc;margin:0 7px 0 0 ; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; padding: 1px 3px; }" +
		"a.retweet span.vert { float:left;font-size: 13px; margin-left: 0px;}"+
		"a.retweet span.vert span{margin:0 0 0 5px; background-image:url('http://www.romatica.com/images/retweetBG.jpg'); color: #ccc; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; padding: 3px 3px 3px 24px; }"
};
//////////////// 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 ];
			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 = "<span>" + RetweetJS.link_text + "</span>";
		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');
		}
	}
}
})();
