// ==UserScript==
// @name           Separate YamiKuro-Diary
// @namespace      http://junkieta.net/
// @include        http://members.jcom.home.ne.jp/w3c/omake/diary.html
// @include        http://noz.hp.infoseek.co.jp/diary/*
/* 操作解説:
	Ctrl + Left : 一日前の記事を表示
	Ctrl + Right: 一日後の記事を表示
	Ctrl + Up   : その月の最初の記事を表示
	Ctrl + Down : その月の最後の記事を表示
*/
(function(){
	var items=[], index=0;
	// init
	(function(){
		var b = document.body, i = 0, n, tmp;
		for(n = b.firstChild; n.nodeName != "H1"; n = b.firstChild)
			b.appendChild(b.removeChild(b.firstChild));
		if(n) for(
			tmp = (n = n.nextSibling).nextSibling;
			tmp && tmp.nodeName != "H2";
			tmp = (n = tmp).nextSibling
		) b.removeChild(n.nodeName == "DL" ? (items[i++] = n) : n);
		if(i) b.insertBefore(items[0], tmp);
	})();
	if(items.length < 2) return;
	// set keyboard-function
	window.addEventListener("keydown", function(e) {
		if(!e.ctrlKey) return;
		var i = index, b;
		switch(e.keyCode) {
			case 37: i++; break;
			case 39: i--; break;
			case 38: i = items.length-1; break;
			case 40: i = 0; break;
			default: return;
		}
		e.preventDefault();
		if(i != index & i in items) {
			b = document.body;
			b.replaceChild(items[i], items[index]);
			index = i;
			scrollTo(b.offsetLeft, b.offsetTop);
		}
	}, false);
})();