// ==UserScript==
// @name		hatetabu
// @namespace	http://www.kanasansoft.com/
// @description function of tab add to hatena bookmark.
// @include		http://b.hatena.ne.jp/*
// @include		https://b.hatena.ne.jp/*
// ==/UserScript==

(function(){

	var displayinfos=function(){
		var noneargs=arguments;
		return function(){
			var dispargs=arguments;
			return function(){
				for(var i=0;i<noneargs.length;i++){
					noneargs[i].info.style.display="none";
					noneargs[i].head.style.backgroundColor="#cccccc";
					noneargs[i].head.style.border="#cccccc outset 1px";
				}
				for(var i=0;i<dispargs.length;i++){
					dispargs[i].info.style.display="";
					dispargs[i].head.style.backgroundColor="#ffffcc";
					dispargs[i].head.style.border="#ffffcc inset 1px";
				}
			}
		}
	}

	//load
	var onLoad=
		function(){
			var infoitems=
				document.evaluate(
					"//div[@class='info']",
					document,
					null,
					XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
					null
				);
			if(infoitems.snapshotLength==0){return;}

			var infos=[];
			for(var i=0;i<infoitems.snapshotLength;i++){
				var info=infoitems.snapshotItem(i);
				var head=info.getElementsByTagName("h2")[0];
				var body=info.getElementsByTagName("ul")[0];
				infos.push({"info":info,"head":head,"body":body});
			}

			var tabs=document.createElement("div");
			tabs.style.marginTop="15px";
			infos[0].info.parentNode.insertBefore(tabs,infos[0].info);

			var disp=displayinfos.apply(this,infos);

			for(var i=0;i<infos.length;i++){
				infos[i].head.style.cursor="pointer";
				infos[i].head.style.margin="0px";
				infos[i].head.style.fontWeight="bold";
				infos[i].head.style.fontSize="80%";
				infos[i].head.addEventListener("click",disp(infos[i]),true);
				tabs.appendChild(infos[i].head);
			}
			disp(infos[0])();
		}
	onLoad();
	window.addEventListener("load",onLoad,true);

})();

