﻿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);
		}
	}
}