/* Copyright (C) 2008 PLOTT CO.,LTD. ===========================================*
 *
 *	Ajax拡張関数
 *	
 *	Create Date 	: 2008/1/11
 *	Creator			: T.Kinoshita
 *	Note			:
 *
 * =============================================================================*/

	/*======================================================================*
	 *	変数の宣言
	 *======================================================================*/
	//メッセージ
	ajax_success_msg	= "読み込みに成功しました";
	ajax_complete_msg	= "読み込みが完了しました";
	ajax_failure_msg	= "読み込みに失敗しました";
	ajax_exception_msg	= "読み込み中にエラーが発生しました";

	/* Ajaxリクエスト実行 ------------------------------------------------------*
	 *	[引数]
	 *		url				->	送信先URL
	 *		ajax			->	Ajax.Requestのoption
	 *			+ method		->	メソッド(デフォルトはpost)
	 *				+post
	 *				+get
	 *			+parameters		->	送信パラメーター
	 *			+onComplete		->	Ajax処理完了時の処理
	 *			+onSuccess		->	Ajaxファイル読込成功時の処理(デフォルトは何もしない)
	 *			+onFailure		->	Ajaxファイル読込失敗時の処理(デフォルトはエラーアラート)
	 *			+onException	->	Ajaxファイル読込中エラー時の処理(デフォルトはエラーアラート)
	 *	[戻値]
	 *		back			->	結果
	 * -------------------------------------------------------------------------*/
	function DoAjax(url,ajax,conf) {
		ObjDate = new Date();
		var back;
		
		//デフォルト値設定
		if ( ajax["method"] == null ) {
			ajax["method"] = "post";
		}
		if ( ajax.onFailure == null ) {
			ajax.onFailure = function(request) { alert(ajax_failure_msg); }
//			ajax.onFailure = function(request) { alert("Error:"+request.getMessage()); }
		}
		if ( ajax.onException == null ) {
			ajax.onException = function (request) { alert(ajax_exception_msg); }
		}
		
		//キャッシュ対策 
		if ( ajax["parameters"] == null )	{ ajax["parameters"]  =  "xxx="+ObjDate.getUTCMilliseconds(); }
		else								{ ajax["parameters"] += "&xxx="+ObjDate.getUTCMilliseconds(); }
		
		//Ajax実行
		if ( conf != null ) {
			if ( confirm(conf) == true ) {
				back = new Ajax.Request(url,ajax);
				return back;
			}
		}
		else {
			back = new Ajax.Request(url,ajax);
			return back;
		}
	}

	/* 指定フォームのデータを取得しAjaxリクエスト実行 --------------------------*
	 *	[引数]
	 *		form_name		->	取得するフォームデータ
	 *		conf			->	確認メッセージ
	 *		DoAjaxと同様
	 *	[戻値]
	 *		DoAjaxと同様
	 * -------------------------------------------------------------------------*/
	function FormRequestAjax(url,ajax,form_name,conf) {
		var back;
		
		//フォームデータ読込
		var form_data = Form.serialize(form_name);
		if ( ajax["parameters"] == null )	{ ajax["parameters"] = form_data; }
		else								{ ajax["parameters"] += "&"+form_data; }
		
		// Ajax実行
		back = new DoAjax(url,ajax,conf);
		
		return back;
	}

