/**********************************************************************

  グローバル変数定義

**********************************************************************/

var sendFlag = false;
var editFlag = false;

/**********************************************************************

  入力内容チェック

**********************************************************************/

function checkForm(form) {
	if (form.subj && !form.subj.value) {
		alert('題名が入力されていません。');
		return false;
	}
	if (form.text && !form.text.value) {
		alert('本文が入力されていません。');
		return false;
	}

	if (sendFlag == true) {
		alert('二重投稿は禁止です。');
		return false;
	} else {
		sendFlag = true;
	}

	return true;
}

/**********************************************************************

  ファイル挿入

**********************************************************************/

function setFilelist(form) {
	var text = form.text;
	var file = form.file;

	if (file) {
		file.onchange = function() {
			if (file.value) {
				text.focus();

				if (document.selection) {
					document.selection.createRange().text = file.value;
				} else if (text.selectionEnd - text.selectionStart == 0) {
					var before = text.value.substring(0, text.selectionStart);
					var after  = text.value.substring(text.selectionEnd, text.value.length);

					text.value = before + file.value + after;
				} else {
					text.value += file.value;
				}

				text.focus();
			}

			document.getElementById('regist_form').file.selectedIndex = 0;
		};
	}

	return;
}

/**********************************************************************

  リアルタイムプレビュー

**********************************************************************/

function showPreview(form, screen) {
	var text = form.text.value;
	if (form.break_checkbox.checked) {
		text = '<p>' + text.replace(new RegExp('\n', 'g'), '<br />') + '</p>';
	}
	screen.innerHTML = text;

	return;
}

/**********************************************************************

  処理開始

**********************************************************************/

window.onload = function() {
	var node_regist_form = document.getElementById('regist_form');

	if (node_regist_form) {
		//ファイル挿入フォーム
		setFilelist(node_regist_form);

		//入力内容チェック
		node_regist_form.onsubmit = function() {
			return checkForm(node_regist_form);
		};

		//リアルタイムプレビュー
		if (node_regist_form.text && document.getElementById('preview_text')) {
			node_regist_form.text.onkeyup = function() {
				if (!editFlag) {
					editFlag = true;
				}
				return showPreview(node_regist_form, document.getElementById('preview_text'));
			};
			node_regist_form.text.onfocus = function() {
				return showPreview(node_regist_form, document.getElementById('preview_text'));
			};

			node_regist_form.preview.onclick = function() {
				if (node_regist_form.preview_checkbox.checked) {
					document.getElementById('preview_screen').style.display = 'block';
				} else {
					document.getElementById('preview_screen').style.display = 'none';
				}
				return showPreview(node_regist_form, document.getElementById('preview_text'));
			};
			if (!node_regist_form.preview_checkbox.checked) {
				document.getElementById('preview_screen').style.display = 'none';
			}
		}
	}


	return;
};
window.onbeforeunload = function() {
	if (!sendFlag && editFlag) {
		return 'ページを移動した場合、編集中のテキストは破棄されます。';
	}

	return;
};
