// ==UserScript==
// @name		UbuntuSackComment
// @namespace	http://www.kanasansoft.com/
// @description	Ubuntu sack comment.
// @include		http://b.hatena.ne.jp/entry/*
// ==/UserScript==

(function(){

	var sackComment=function(){

		var list_ubuntu=document.getElementById("bookmark-user-Ubuntu");
		if(!list_ubuntu){return;}
		var comments_ubuntu=list_ubuntu.getElementsByClassName("comment");
		if(comments_ubuntu.length!=0){return;}

		var bookmarked_user=document.getElementById("bookmarked_user");
		if(!bookmarked_user){return;}
		var lists_users=bookmarked_user.getElementsByTagName("li");

		var index_other=parseInt(lists_users.length*Math.random(),10);
		if(lists_users[index_other].getAttribute("id")=="bookmark-user-Ubuntu"){return;}
		var comments_other=lists_users[index_other].getElementsByClassName("comment");
		if(comments_other.length!=1){return;}

		var sack_nodes=[];
		for(var i=0;i<comments_other[0].childNodes.length;i++){
			var check_node=comments_other[0].childNodes[i];
			if(check_node.nodeType==document.ELEMENT_NODE&&/hatena-star/.test(check_node.className)){
				continue;
			}
			sack_nodes.push(check_node);
		}

		var sacked_node=document.createElement("span");
		sacked_node.setAttribute("style","color:#ff9999;");
		sacked_node.textContent="sacked";
		comments_other[0].insertBefore(sacked_node,comments_other[0].firstChild);

		var star_nodes=[];
		for(var i=0;i<list_ubuntu.childNodes.length;i++){
			var check_node=list_ubuntu.childNodes[i];
			if(check_node.nodeType==document.ELEMENT_NODE&&/hatena-star/.test(check_node.className)){
				star_nodes.push(check_node);
			}
		}

		var comment_node=document.createElement("span");
		comment_node.setAttribute("class","comment");
		list_ubuntu.appendChild(comment_node);

		for(var i=0;i<sack_nodes.length;i++){
			comment_node.appendChild(sack_nodes[i]);
		}
		for(var i=0;i<star_nodes.length;i++){
			comment_node.appendChild(star_nodes[i]);
		}

	};

	window.addEventListener("load",sackComment,true);

})();

