var ReadFile_Data = "";	// 読み取った結果を返す変数
var ReadFile_Flag = false;	// 読み取り動作が行われたか？

// 非同期ファイル読み取り
// filename ファイルを読み取り、ReadFile_Data に結果を返す。
function ReadFile(filename) {
  var req ;  // XMLHttpRequestオブジェクト生成
  ReadFile_Flag = false;
  if( window.XMLHttpRequest ){ 
    req = new XMLHttpRequest();
  }
  else if( window.ActiveXObject ){ 
    try {
      req = new ActiveXObject("MSXML2.XMLHTTP");
    }
    catch (e) {
      try {
        req = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(e2) {
        return false;
      }
    }
  }

  req.onreadystatechange = function(){ // レスポンスデータ受信時に呼び出すイベントハンドラ

    getReadResponse( req );
  }
  
  req.open( 'GET' , filename , true );  // 指定したURLに接続
  req.send( '' ); //HTTPリクエストを送信
}

function getReadResponse( req ) { // レスポンスデータ受信時に呼び出すイベントハンドラ

	if( req.readyState == 4 ){ // 受信完了
    	// レスポンスを表示
		ReadFile_Data = req.responseText;
		ReadFile_Flag = true;
	}
}

// 非同期通信リクエスト
function sendRequest(url,callback,method,data) {
	var req = createXMLHTTP(); // XMLHttpRequest オブジェクト生成
	if (!req) { return; }

	req.onreadystatechange =function() {
		getSendResponse(req,callback);
	}

	if (method.toUpperCase() == 'GET' && data.length > 0) { // GET メソッドの場合 URLの後にパラメータを付加
		url += '?' + data;
		data == '';
	}

	req.open(method,url,true);	// 指定 URL に接続

	req.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");	// POSTデータヘッダ
	req.send(data);
}

function createXMLHTTP() {	// XMLHttpRequest オブジェクト生成
	if (window.XMLHttpRequest) { // IE 以外
		return new XMLHttpRequest();
	} else if (window.ActiveXObject) { //	IE用
		try {
			return new ActiveXObject("MSXML2.XMLHTTP");
		}
		catch (e) {
			try {
				return new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e2) {
				return null;
			}
		}
	}
	return null;
}

function getSendResponse(req,callback) {	// レスポンスデータ受信
	if (req.readyState == 4) {	// 受信完了
		if (req.responseText) {	// 指定されたコールバック関数を呼び出す
			callback(req);
		}
	}
}


