// 非同期でリクエスト
function sendRequest(url,callback,method,data){
	// XMLHttpRequestオブジェクト生成
	var req = createXMLHTTP();
	if(!req){
		return;
	}
	// レスポンスデータ受信時に呼び出すイベントハンドラ
	req.onreadystatechange = function(){
		getResponse( req, callback );
	}

	// GETメソッドの場合はURLの後にクエリパラメータをつける
	if(method.toUpperCase() == 'GET' && data.length > 0){
		url += '?'+ data;
		data = '';
	}

	// 指定したURLに接続
	req.open( method, url, true );

	// POSTデータ用ヘッダ
	req.setRequestHeader("Content-Type", 
	                   "application/x-www-form-urlencoded; charset=UTF-8");

	// HTTPリクエストを送信
	req.send( data );

}

// XMLHttpRequestオブジェクト生成
function createXMLHTTP(){
	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 getResponse( req, callback ){
	if( req.readyState == 4 ){ // 受信完了
		// 指定されたコールバック関数を呼ぶ
		if( req.responseText ){
			callback(req);
		}
	}
}

