/**
	@file
	hyp_route_search.js <br/>
	経路検索ファイル <br/>
	<br/>
	DEPENDENCIES <br/>
	 - lib/prototype.js <br/>
	 - lib/ObjTree.js <br/>
	 - hyp_showhide.js <br/>
	 - hyp_define.js <br/>
	 - hyp_rule_error_judge.js <br/>
	
	@breif route search
	@author m-okuda
	@version 1.0.0.0
	@since  18/02/2007
	$Revision: $
*/


var HypRouteSearch = Class.create();

/**
	経路探索クラス
	@brief 経路探索クラス
*/
HypRouteSearch.prototype = {

	/// コンストラクタ
	initialize: function(){
		this.isJASearching = false;	///< 日本語版検索実行中フラグ
		this.isRunning = false;		///< 検索実行中フラグ
	},
	
	/**
		経路検索実行
		@brief 経路検索実行
	*/
	execute: function( query ){
		if( this.isRunning == true ){
			alert( HYP_MESSAGE[ '5018' ] );
			return;
		}
		var routeSearch = this;
		if( query != '' ){
			// プログレスバー表示
			var progressBar = $( 'progress_bar' );
			progressBar.displayProgressBar();
			this.isRunning = true;
			var xmlhttproute = new Ajax.Request(
				HYP_SEARCH_CGI, 
				{
					method: 'post', 
					parameters: query, 
					// 成功
					onSuccess: function( request ){
					}, 
					// 読込完了
					onComplete: function( request ){
						// エラーチェック
						var errorname = [];
						if(Prototype.Browser.WebKit){
							if( /^<\?xml/.test(request.responseText) ){
								errorname = request.responseXML.getElementsByTagName( 'error' );
							} else {
								// FIXME: ignore!!
							}
						} else {
							errorname = request.responseXML.getElementsByTagName( 'error' );
						}

						if( errorname.length != 0 ){
							$( 'route_list' ).innerHTML = '<div class="title5"><span class="text_b_indent2">'+ HYP_MESSAGE[ errorname[ 0 ].getAttribute( 'no' ) ] + '</span></div>';
						}else{
							$( 'route_list' ).innerHTML = request.responseText;
						}
												
						// Window位置を検索結果へ移動						//window.location.hash = 'route_result';
						routeSearch.isRunning = false;
						routeSearch.isJASearching = false;
						// プログレスバー消去
						progressBar.hideProgressBar();
						initRateRangeSelect();
					},
					// 失敗
					onFailuer: function( request ){
						$( 'route_list' ).innerHTML = '<div class="text_error">読込失敗しました。</div>';
						routeSearch.isRunning = false;
						routeSearch.isJASearching = false;
						// プログレスバー消去
						progressBar.display = "none";
						//alert('読込失敗しました。');
					},
					// エラー
					onException: function( request ){
						$( 'route_list' ).innerHTML = '<div class="text_error">エラーが発生しました。</div>';
						routeSearch.isRunning = false;
						routeSearch.isJASearching = false;
						// プログレスバー消去
						progressBar.display = "none";
						//alert('エラーが発生しました。');
					}
				}
			);
		}
	}
};


/*
 * Copyright (c) 2007-2008 by Hitachi Information Systems,Ltd. All Rights Reserved.
 * Consult your license regarding permissions and restrictions.
 */
