id:kejinan:20070712:1184184301 修正

// ==UserScript==
// @name           Hatena Star: Large & Small
// @namespace      http://d.hatena.ne.jp/kejinan/
// @include        http://d.hatena.ne.jp/*/*
// @include        http://*.g.hatena.ne.jp/*/*
// ==/UserScript==

Function.prototype.bind = unsafeWindow.Function.prototype.bind;

with (unsafeWindow) {
    if (Hatena && Hatena.Star && Hatena.Star.Entry) {
	Hatena.Star.Entry.prototype.bindStarEntry = function(se) {
	    this.starEntry = se;
	    if (se.stars.length == 3 && typeof(se.stars[1]) == 'number') {
		//var star = new Hatena.Star.Star(se.stars[2]);
		var star = document.createElement('img');
		star.src = Hatena.Star.Star.ImgSrc;
		with (star.style) {
		    padding = '0';
		    border = 'none';
		    cursor = 'pointer';
		}
		star.width = star.height = Math.log(se.stars[1]) * 10;
		star.title = (se.stars[1] + 2) + ' stars';

		star.onclick = function() {
		    unsafeWindow.e = this.entry;
		    this.entry.__proto__ = Hatena.Star.Entry.prototype;
		    var url = Hatena.Star.BaseURL + 'entry.json?uri=' + encodeURIComponent(this.entry.uri);
		    new Ten.JSONP(url, [,Hatena.Star.InnerCount.prototype.receiveStarEntry.bind(this)], 1);
		}.bind(this);

		this.stars.push(star);
	    } else {
		se.stars.forEach(function(s) { this.stars.push(new Hatena.Star.Star(s)) }, this);
	    }
	    if (se.comments) {
		for (var i = 0; i < se.comments.length; i++) {
		    this.comments.push(new Hatena.Star.Comment(se.comments[i]));
		}
	    }
	    this.can_comment = se.can_comment;
	}
    }
}