// ==UserScript==
// @name        del.icio.us meets Hatebu Counter
// @namespace   http://ma.la/
// @include     http://del.icio.us*
// @version     1.0.1
// ==/UserScript==

// http://la.ma.la/blog/diary_200607281316.htm
// XML-RPC version http://la.ma.la/blog/diary_200512131313.htm

(function(){
	var entryURI = 'http://b.hatena.ne.jp/entry/';
	var image_base = 'http://b.hatena.ne.jp/entry/image/';

	function create_counter(url){
		var a = document.createElement('a');
		var li = document.createElement('small');
		a.setAttribute('href', entryURI + uri.replace(/#/, '%23'));
		/*
		var logo = document.createElement("img");
		logo.src = 'http://d.hatena.ne.jp/images/b_entry.gif';
		logo.style.marginRight = "3px";
		logo.style.verticalAlign = "middle";*/
		logo = document.createTextNode("?B: ");
		var img = document.createElement("img");
		img.src = image_base + uri.replace(/#/, '%23');
		img.style.verticalAlign = "middle";
		a.appendChild(logo);
		a.appendChild(img);
		li.appendChild(a);
		li.appendChild(document.createTextNode(" "));
		return li;
	}
	// for del.icio.us/url/
	if(location.href.indexOf("del.icio.us/url/") != -1){
		var href = document.evaluate(
			'//h2[@id="page-desc"]//input[@name="url"]/@value', document, null,
			XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
		// alert(href);
		if(!href) return;
		var uri = href.nodeValue;
		var ul = document.evaluate(
			'//h4[contains(@class,"smaller")]', document, null,
			XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
		// no history
		if(!ul){
			ul = document.evaluate(
				'//h4', document, null,
				XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
		}
		var counter = create_counter(uri);
		ul.appendChild(document.createTextNode(" "));
		ul.appendChild(counter);
		return;
	}

	// for bookmarks,inbox
	var item_expr = '//ol[@class="posts"]/li[@class="post"]';
	// return;
	var items = document.evaluate(
		item_expr, document, null,
		XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
	for (var i = 0; i < items.snapshotLength; i++) {
		var uri = document.evaluate(
			'.//h4[@class="desc"]/a/@href', items.snapshotItem(i), null,
			XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
		if(!uri){ continue }
		uri = uri.nodeValue;
		//alert(uri);
		var ul = document.evaluate(
			'.//div[@class="meta"]', items.snapshotItem(i), null,
			XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
		if(!ul) { continue }
		var counter = create_counter (uri);
		// before
		ul.insertBefore(counter, ul.firstChild);
		// after
		// ul.appendChild(counter);
	}
})();

