	var httpObject;
	var timerId;
	var timerIdStatus;
	var timeoutSecondDefault = 30000;		// Timeout (ms)
	var timeoutSecond = timeoutSecondDefault;		// Timeout (ms)
	var timeInterval = 50;	// ms
	var urlTarget = "module_list.php";

// タイムアウト処理
function checkTimeout()
{
	timeoutSecond -= timeInterval;
	if( timeoutSecond <= 0 )
	{
		// タイマーをストップ
		clearInterval( timerId );
		clearInterval( timerIdStatus );
		timerId = null;
		timerIdStatus = null;
		// HTTPリクエストを中断
		httpObject.abort();
		// エラーダイアログを表示
		timerIdStatus = cheltenhamText_displayTextGradually( 'LabelStatus', 'ファイルの読み込みに失敗しました。', 500, 20 );

		// 検索ボタンを有効
		activateButton( true );

		return( false );
	}
}

// POSTデータ
function sendPostData( objectEvent, viewOffset, viewQuantity )
{
	// 検索ボタンの一時無効
	activateButton( false );

	// フォームの値をGET
	var prefecture = document.getElementById( 'Prefecture' ).value;
	var city = document.getElementById( 'City' ).value;
	var block = document.getElementById( 'Block' ).value;
	var zip1 = document.getElementById( 'Zip1' ).value;
	var zip2 = document.getElementById( 'Zip2' ).value;
	if( objectEvent != null )
	{
		viewQuantity = document.getElementById( 'ViewQuantity' ).value;
		viewOffset = document.getElementById( 'ViewOffset' ).value;
	}

	// 送信POSTデータ
	var postData = 'Prefecture=' + encodeURIComponent( prefecture )
			+ '&City=' + encodeURIComponent( city )
			+ '&Block=' + encodeURIComponent( block )
			+ '&Zip1=' + encodeURIComponent( zip1 )
			+ '&Zip2=' + encodeURIComponent( zip2 )
			+ '&ViewQuantity=' + encodeURIComponent( viewQuantity )
			+ '&ViewOffset=' + encodeURIComponent( viewOffset );

	// HTTP通信を開始
	httpPostRequest( urlTarget, postData, printResultData );
}

// サーバーへデータを送信する関数
function httpPostRequest( urlTarget, postData, functionNext )
{
	// タイマーをリセット
	timeoutSecond = timeoutSecondDefault;

	// タイマーをストップ
	if( timerId != null )
	{
		clearInterval( timerId );
	}
	if( timerIdStatus != null )
	{
		clearInterval( timerIdStatus );
	}

	// XMLHttpリクエストオブジェクト生成
	httpObject = cheltenhamXmlHttpObject_createXmlHttpRequest()
	if( !httpObject )
	{
		cheltenhamXmlHttpObject_noticeFailureCreateXmlHttpRequest();
	}

	// タイマーをセット
	timerId = setInterval( 'checkTimeout()', timeInterval );
	httpObject.open( "post", urlTarget, true );
	httpObject.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
	timerIdStatus = cheltenhamText_displayTextGradually( 'LabelStatus', 'Now Loading .............................................................', 2000, 20 );
	httpObject.onreadystatechange = function()
	{
		if( httpObject.readyState == 4 )
		{
			// タイマーをストップ
			clearInterval( timerId );
			timerId = null;
			document.getElementById( 'LabelStatus' ).innerHTML = '　';
			if(  httpObject.status == 200 )
			{
				// 処理を実行
				functionReference = function()
				{
					// タイマーをストップ
					clearInterval( timerIdStatus );
					timerIdStatus = null;
					// ステータスを表示
					cheltenhamText_displayTextGradually( 'LabelStatus', '検索結果が見つかりました。', 300, 20 );
				}
				setTimeout( functionReference, 0 );
				functionReference = function()
				{
					functionNext( httpObject.responseText );
				}
				setTimeout( functionReference, 500 );
			}
		}
	}
	httpObject.send( postData );
}

// 検索結果を表示する関数
function printResultData( textData )
{
	document.getElementById( 'PanelResult' ).innerHTML = textData;

	// 検索ボタンを有効
	activateButton( true );
}

function setListeners( e )
{
	var objectButtonSubmit = document.getElementById( 'ButtonSubmit' );
	var objectFormSearch = document.getElementById( 'FormSearch' );
	var objectPrefecture = document.getElementById( 'Prefecture' );
	var objectCity = document.getElementById( 'City' );
	var objectBlock = document.getElementById( 'Block' );
	var objectZip1 = document.getElementById( 'Zip1' );
	var objectZip2 = document.getElementById( 'Zip2' );
	cheltenhamEvent_addListener( objectButtonSubmit, 'click', sendPostData, false );
	cheltenhamEvent_addListener( objectFormSearch, 'submit', sendPostData, false );
	cheltenhamEvent_addListener( objectPrefecture, 'change', sendPostData, false );
	cheltenhamEvent_addListener( objectCity, 'change', sendPostData, false );
	cheltenhamEvent_addListener( objectBlock, 'change', sendPostData, false );
	cheltenhamEvent_addListener( objectZip1, 'change', sendPostData, false );
	cheltenhamEvent_addListener( objectZip2, 'change', sendPostData, false );
}

// ボタンをアクティブにする関数
function activateButton( flagActive )
{
	cheltenhamForm_setObjectActive( 'ButtonReset', flagActive );
	cheltenhamForm_setObjectActive( 'ButtonChange', flagActive );
	cheltenhamForm_setObjectActive( 'ButtonSubmit', flagActive );
/*
	if( flagActive == true )
	{
		document.getElementById( 'ButtonReset' ).disabled = false;
		document.getElementById( 'ButtonChange' ).disabled = false;
		document.getElementById( 'ButtonSubmit' ).disabled = false;
	}
	else
	{
		document.getElementById( 'ButtonReset' ).disabled = true;
		document.getElementById( 'ButtonChange' ).disabled = true;
		document.getElementById( 'ButtonSubmit' ).disabled = true;
	}
*/
}

// load時のイベントリスナーをセットする
cheltenhamEvent_addListener( window, 'load', setListeners, false );

