/**
 * Post at once サンプル
 * @version 1.0
 * @author colori http://colo-ri.jp all rights reserved.
 */
 
/**
 * 初期化
 * @access public
 */
function init() {	

	/**
	 * コメント入力欄要素ID
	 * @var String
	 */
	this.id_textarea = "comment";
	
	/**
	 * コメント投稿要素ID
	 * @var String
	 */
	this.id_submit = "pao_submit";
	
	/**
	 * コメント投稿先URI
	 * @var String
	 */
	this.uri_post = "/pao.php";
	
	/**
	 * 未入力エラーメッセージ
	 * @var String
	 */
	this.message_noinput = "内容を入力してください。";
	
	
	//ボタンにイベントを割り当てます。
	Event.observe(id_submit, "click", startPost.bindAsEventListener(this));
}

/**
 * テキスト情報のフィルタリング
 * @access private
 * @param String val テキストデータ
 * @return String フィルタ後のテキストデータ
 */
function filterText(val) {
	//改行や空白のみのデータは無効にします。
	if (val.match(/^[ 　\s\r\n]+$/g)) val = "";
	
	//改行コードを揃えます
	return val.replace(/\r\n/g, "\n");
}

/**
 * コメント内容をポストする
 * @access private
 */
function startPost() {
	
	//入力内容チェック
	var comment = this.filterText($(id_textarea).value);
	
	if (comment=="") {
		alert(message_noinput);
		return false;
	}
	
	//各種フォームを使用停止にします
	$(id_textarea).disabled = true;
	$(id_submit).disabled = true;
	
	//送信用パラメータオブジェクトに必要な設定を加えます
	var postObj = new Object();
	postObj.callTarget		= this;		//呼び出し元判別用に付加したオリジナル属性
	postObj.method			= "post";
	postObj.parameters		= "comment=" + encodeURIComponent(comment);
	postObj.requestHeaders	= ['If-Modified-Since','Wed, 15 Nov 1995 00:00:00 GMT'];	//Safari用対策
	postObj.onComplete		= endPost.bind(this);
	
	//prototype.jsのAjaxオブジェクトを使ってコマンド送信
	new Ajax.Request(uri_post, postObj);
}

/**
 * コメントポスト完了
 * @access private
 */
function endPost(httpObj) {
	var message = httpObj.responseText;
	$(id_textarea).value = message;
}

window.onload = init;