
var pid_ = 0;

function element_by_name(name)
{
	var els = document.getElementsByName(name);
	if(els.length == 0)
	{
		alert("エラーが発生しました。");
		return 0;
	}
	else
		return els[0];
}

function my_forms()
{
	var name     = element_by_name("name");
	var subject  = element_by_name("subject");
	var comment  = element_by_name("comment");
	var submit   = element_by_name("submit");
	var clear    = element_by_name("clear");

	if(name == 0 || subject == 0 || comment == 0 || submit == 0 || clear == 0)
		return 0;
	else
		return { name: name, subject: subject, comment: comment, submit: submit, clear: clear };
}

function set_value(pid, name, subject, comment)
{
	pid                   = parseInt(pid);
	pid_                  = pid;
	var forms             = my_forms();
	forms.name.value      = "";
	forms.subject.value   = subject;
	forms.comment.value   = "";

	// 返信の場合題名を変更不可にする
	forms.subject.disabled = (pid > 0);
	// 送信ボタンの種類
	forms.submit.value = (pid > 0) ? "返信" : "送信";
	// フォーカスを当てる
	forms.name.focus();

	on_change_text(0);
}

function on_change_text(evt)
{
	var forms      = my_forms();
	var ok_name    = (forms.name.value.length > 0    && forms.name.value.length    <= 100);
	var ok_subject = (forms.subject.value.length > 0 && forms.subject.value.length <= 100);
	var ok_comment = (forms.comment.value.length > 0 && forms.comment.value.length <= 1000);

	forms.name.style.borderColor    = ok_name    ? "#00FF00" : "#FF0000";
	forms.subject.style.borderColor = ok_subject ? "#00FF00" : "#FF0000";
	forms.comment.style.borderColor = ok_comment ? "#00FF00" : "#FF0000";

	// 送信ボタンの無効化
	forms.submit.disabled = !(ok_name && ok_subject && ok_comment);
}

function on_to_reply(pid)
{
	function on_success(data)
	{
		var subject = eval(data);
		set_value(pid, "", subject[0], "");

		// フォーカスを当てる
		var forms = my_forms();
		forms.name.focus();
	}

	jQuery.post("Query.php", { query: "select", pid: pid }, on_success);
}

function on_submit()
{
	function on_success(data)
	{
		// リロード
		window.location.href = "./";
	}

	var forms = my_forms();
	var pid   = pid_;
	var param = {
		query  : (pid > 0) ? "reply" : "add",
		pid    : pid,
		name   : forms.name.value,
		subject: forms.subject.value,
		comment: forms.comment.value
	};

	// フォームの無効化（多重送信防止）
	forms.submit.disabled = true;
	forms.clear.disabled  = true;

	// POST
	jQuery.post("Query.php", param, on_success);
}

function on_clear(evt)
{
	set_value(0, "", "", "");
}

function on_load(evt)
{
	var forms              = my_forms();
	forms.name.onkeyup     = on_change_text;
	forms.name.onchange    = on_change_text;
	forms.subject.onkeyup  = on_change_text;
	forms.subject.onchange = on_change_text;
	forms.comment.onkeyup  = on_change_text;
	forms.comment.onchange = on_change_text;
	forms.submit.onclick   = on_submit;
	forms.clear.onclick    = on_clear;

	// JavaScriptが有効であればフォームを表示し、警告を非表示にする
	var edit    = document.getElementsByName("edit");
	var warning = document.getElementById("warning");
	if(edit.length > 0)
	{
		edit[0].style.display = "block";
		warning.style.display = "none";
	}

	set_value(0, "", "", "");
}

