Amazon short URI with hatena bookmark

By Sugano Yoshihisa(E) Last update Apr 24, 2008 — Installed 49 times. Daily Installs: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
// ==UserScript==
// @name           Amazon short URI with hatena bookmark
// @namespace      http://www.misao.gr.jp/~koshian/
// @description    Short URI for amazon.
// @include        http://www.amazon.co.jp/*
// @include        http://amazon.co.jp/*
// @include        http://www.amazon.jp/*
// @include        http://amazon.jp/*
// ==/UserScript==

(function() {
  var asin = document.getElementById('ASIN');
  var base = 'http://amazon.jp/';
  var dirs = ['dp/', 'o/ASIN/', 'gp/product/'];
  var panel;

  if (asin) {
    var target = document.getElementById('nonmemberStripe');
    var block = document.createElement('div');
    block.setAttribute('style', 'text-align: right;');

    panel = '<select id="ASUselect" onChange="' + 
      'document.getElementById(\'ASUtext\').value =\'' + base +'\'+' +
      'document.getElementById(\'ASUselect\').value + ' +
      'document.getElementById(\'ASIN\').value; ">';

    for( var i = 0; i < dirs.length; i++ ){
		var el = '<option value="ASUValue" selected>ASUValue</option>';
		if(location.pathname.indexOf(dirs[i]) != 1) {
          el = el.replace(/ selected/g, "");
        }
		panel += el.replace(/ASUValue/g, dirs[i]);
	}

    panel += '</select>';
    panel += '<input type="text" size="30" id="ASUtext"' +
      'readonly="readonly" onfocus="this.select();">';
    panel += '<input type="button" value = "Go!" ' +
      'onClick="location.href = ASUtext.value;">';
    panel += ' <a href="http://b.hatena.ne.jp/add?mode=confirm&title=' +
      escape(document.title) + '&url=' +
      escape('http://www.amazon.co.jp/gp/product/' + asin.value) +
      '"><img src="data:image/gif;base64,' +
      'R0lGODlhEAAMAJECABhBzv///////wAAACH5BAEAAAIALAAAAAAQAAwAAAIm' +
      'FI6ZFu3/DgzKSWpBuxJtTYFKV4VbhnLoZ4baZcJZwk42YIy6UAAAOw=="' + 
      'alt="はてなブックマークに追加" style="border: none;"></a>';
    block.innerHTML = panel;
    target.appendChild(block);

    var view = document.getElementById('ASUtext');
    var select = document.getElementById('ASUselect');

    view.value = base + select.value + asin.value;
  }
})();