// ==UserScript==
// @name	  Days diaryedit reminder
// @namespace     http://days.yahoo.co.jp/
// @description   hogehoge
// @include       http://blog.days.yahoo.co.jp/blog/compose*
// @include       http://blog.days.yahoo.co.jp/blog/?n=*
// ==/UserScript==
//
// 2008/10/25 version 0.1

(function() {

var saveTimer;
var restoreformHtml;
var mesCheck = [];
var mesCheckWord;

	// フォームの内容を保存する関数
	function saveFormdata() {
		clearInterval(saveTimer);
		saveTimer = setInterval(saveExec, 2000);
	}
	
	// 実際に保存する
	function saveExec() {
		clearInterval(saveTimer);
		var formHtml = document.getElementById('rteEditIframe').contentWindow.document.body.innerHTML;
		if (formHtml) {
			formHtml = formHtml.replace( /<br>/g, "§br§" );
			formHtml = formHtml.replace( /<[^>]*>/g, "" );
			formHtml = formHtml.replace( /§br§/g, "<br>" );
			formHtml = escape(formHtml);
			GM_setValue('daysdiaryBody',formHtml);
		}

	}

	
	// フォームの内容を復帰させる関数
	function loadFormdata() {
		
		
		document.getElementById('rteEditIframe').contentWindow.document.body.innerHTML = restoreformHtml;
	}

	// フォームの内容を消去する
	function clearFormdata() {
		GM_setValue('daysdiaryBody',"");
	}
	
	
	function start() {
		
		// このグリモンが起動された時点での保存フォームデータを呼び出して変数に代入しておく
		restoreformHtml = GM_getValue('daysdiaryBody','');
		restoreformHtml = unescape(restoreformHtml);
		
		// フォームデータが保存されているときだけ復帰リンクを表示する
		if(restoreformHtml) {
			
			// フォームの内容を復帰させるリンクを設置する
			document.getElementsByClassName('mgc_title_func')[0].innerHTML = '<span style="color:#0000FF;text-decoration:underline;">復帰</span>';
			
			// 復帰関数をクリックで起動できるように頑張ってみる
			var elmLink = document.getElementsByClassName('mgc_title_func')[0];
			elmLink.addEventListener("click", loadFormdata, true);
			
		}
			
		// 入力フォーム内でキーが押されるたびに保存関数を呼び出すよう設定
		var formElm = document.getElementById('rteEditIframe').contentWindow;
		formElm.addEventListener("keyup", saveFormdata, false);
	}
	
	
	// まずはこのページが投稿完了なのかを確認する
		mesCheck = document.getElementsByClassName('mgc_body');
	if (mesCheck.length > 0) {
		mesCheckWord = mesCheck[0].innerHTML;
	}

	if (mesCheckWord == "日記が書き込まれました") {
		clearFormdata();
		
	} else {
		addEventListener("load",start, false);
	}
	
})();
	
