[greasemonkey] amazonの検索結果に楽天booksの検索ボタンを表示するuserscript

本、CD、DVDの検索(楽天booksで取り扱っているもの)の検索ができます。
CD、DVDの検索にはasin→janする必要があったのでhttp://asin-jan.akitomo.org/を使わせていただきました。

amazon_x_rakutenbooks.user.js

// ==UserScript==
// @name          amazon x rakutenbooks
// @namespace     http://d.hatena.ne.jp/samurai20000/
// @description	  amazon x rakutenbooks
// @include       http://*.amazon.*
// ==/UserScript==

rakuten_books_search();

function rakuten_books_search() {
    if (document.getElementById("ASIN")) {
	var asin = document.getElementById("ASIN").value;
    }

    var book = false;
    if (asin.match(/(\d{9}[\d|X])/)) book = true;

    if (!book) {
	GM_xmlhttpRequest({
	    method: 'GET',
 	    url:    'http://asin-jan.akitomo.org/tags/' + asin,
 	    onload: function(details) {
		asin = details.responseText.match(/(\d{13})/)[0];
 	    }
	});
    }
    
    setTimeout(make_link, 2000);

    function make_link() {
	GM_log(asin);
	var header = document.evaluate("//div[@id='priceBlock']", document, null,XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
	if (header) {
 	    var spl_link = document.createElement('a');
 	    spl_link.setAttribute('href', 'http://esearch.rakuten.co.jp/rms/sd/esearch/vc?sv=30&sitem=' + asin );
 	    spl_link.setAttribute('title', 'go to rakuten books');
 	    spl_link.innerHTML = '</br><span style=\"font-size:90%;background-color:#ffffcc;\">\u697D\u5929books\u3067\u691C\u7D22</span>';
 	    header.parentNode.insertBefore(spl_link, header.nextSibling);
	}
    }
}

追記: 修正してuserscript.orgに上げました。
http://userscripts.org/scripts/show/13745