/*
//changelog
2005-10-03
・はてなグループでも作動するようにした。

2005-08-17
・テクノラティ、gooブログサーチ、RSSGateとcococ（RSSリーダー）に対応。

2005-08-05
・整理を強化。
*/

// ==UserScript==
// @name hatenaDiaryRefererMakeup
// @author busky
// @namespace http://orera.g.hatena.ne.jp/busky/
// @version 1.0 
// ==/UserScript==


if(window.location.href.match(/^http:..([0-9a-zA-Z_]+.)?[dg].hatena.ne.jp./)){
	document.addEventListener(
		'load',
		function(){
			var t=document.getElementsByName('delurl');
			if(t.length == 0)return ;
			var st=document.createElement('span');
			st.innerText='  now making...';
			var div=t[0].parentNode.parentNode.parentNode.getElementsByTagName('div')[0];
			div.appendChild(st);
			var dl=document.createElement('dl');
				var dt_h=document.createElement('dt');
					dt_h.innerText="blog";
					var dd_h=document.createElement('dd');
					var ul_h_d=document.createElement('ul');
					var ul_h_b=document.createElement('ul');
						
				var dt_sbm=document.createElement('dt');
					dt_sbm.innerText="SBM";
					var dd_sbm=document.createElement('dd');
					var ul_sbm=document.createElement('ul');
						
				var dt_a=document.createElement('dt');
					dt_a.innerText="antenna";
					var dd_a=document.createElement('dd');
					var ul_a=document.createElement('ul');
				
				var dt_s=document.createElement('dt');
					dt_s.innerText="search";
					var dd_s=document.createElement('dd');
					var ul_s=document.createElement('ul');
				
				var dt_o=document.createElement('dt');
					dt_o.innerText="other";
					var dd_o=document.createElement('dd');
					var ul_o=document.createElement('ul');
				
				var dt_r=document.createElement('dt');
					dt_r.innerText="reader";
					var dd_r=document.createElement('dd');
					var ul_r=document.createElement('ul');
				
			for(var i=0;t[i]; i++){
				var url=t[i].getAttribute('value');
				var tx=t[i].nextSibling.nextSibling.firstChild.nodeValue;
				var value='<li>'+t[i].nextSibling.nodeValue+'<a href="'+url+'">'+tx+'</a></li>';
				if(
					// reader
					url.indexOf('http://feedbringer.net/feed') == 0 ||
					url.indexOf('http://r.hatena.ne.jp/') == 0 ||
					url.indexOf('http://localhost')==0 || // RSSGateかcococだと見なしていいと思う
					url.match('^http://(www.)?bloglines.com/') 
					){
						ul_r.innerHTML+=value;
				}else if(
					// SBM
						url.indexOf('http://b.hatena.ne.jp') == 0 ||
						url.indexOf('http://1470.net/mm/') == 0
					){
						ul_sbm.innerHTML+=value;
				}else if(
					// antenna
					url.indexOf('http://i-know.jp/') == 0 ||
					url.indexOf('http://a.hatena.ne.jp') == 0
					){
						ul_a.innerHTML+=value;
				}else if(
					// search
					url.indexOf('http://www.google.') == 0 ||
					url.indexOf('http://search.yahoo.') == 0 ||
					url.indexOf('msn.com') > -1 || url.indexOf('msn.co.jp') > -1 ||
					url.indexOf('search?q=cache:') > -1 ||
					url.indexOf('http://blog.goo.ne.jp/search/search.php?')==0 ||
					url.indexOf('http://www.technorati.jp/search/') == 0
					){
						ul_s.innerHTML+=value;
					
				}else if(
					// blog
						url.indexOf('http://d.hatena.ne.jp/') == 0 ||
						url.indexOf('http://blog.livedoor.jp/') == 0 ||
						url.indexOf('http://blog.goo.ne.jp/') == 0 ||
						url.match('^http://[a-zA-Z0-9]+.g.hatena.ne.jp/') ||
						url.match('^http://[a-zA-Z0-9]+.seesaa.net/') ||
						url.match('^http://[a-zA-Z0-9]+.exblog.jp/')
					){
						ul_h_d.innerHTML+=value;
				}else{
					// other
					ul_o.innerHTML+=value;
				}
			}
				dl.appendChild(dt_h);
				dd_h.appendChild(ul_h_d);
				dl.appendChild(dd_h);
				
				dl.appendChild(dt_s);
				dd_s.appendChild(ul_s);
				dl.appendChild(dd_s);
				
				dl.appendChild(dt_sbm);
				dd_sbm.appendChild(ul_sbm);
				dl.appendChild(dd_sbm);
				
				dl.appendChild(dt_r);
				dd_r.appendChild(ul_r);
				dl.appendChild(dd_r);
				
				dl.appendChild(dt_a);
				dd_a.appendChild(ul_a);
				dl.appendChild(dd_a);
				
				dl.appendChild(dt_o);
				dd_o.appendChild(ul_o);
				dl.appendChild(dd_o);
			var old=t[0].parentNode.parentNode;
			old.parentNode.replaceChild(dl,old);
			
			st.parentNode.removeChild(st);
		},
		false
	)
}