﻿
function Request(isAsync) {

	this.ajax = new XMLHttpRequest();
	this.option = new Object;
	this.option.async = (isAsync) ? isAsync : false;
	if (!this.ajax) { alert("XMLHttpRequest error"); }

}
Request.prototype.post = function (url, param, callback) {

	var _ajax = this.ajax;
	var _option = this.option;

	// firefoxでは第３引数があると動作しないっぽい
	// 今のところ_option.async=trueはiPhoneだけで使用
	if (_option.async)
		_ajax.open("POST", url, true);
	else
		_ajax.open("POST", url);
	
	_ajax.onreadystatechange = function() {
	    if (_ajax.readyState == 4 && _ajax.status == 200) {
	    	callback(_ajax.responseText, _option);
	    	return;
	    }
	}
	_ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded");
	_ajax.send(param);

}

Request.prototype.get = function (url, param, callback) {

	var _ajax = this.ajax;
	var _option = this.option;

	_ajax.open("GET", url + '?' + param);
	_ajax.onreadystatechange = function() {
	    if (_ajax.readyState == 4 && _ajax.status == 200) {
	    	callback(_ajax.responseText, _option);
	    	return;
	    }
	}
	_ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded");
	_ajax.send(null);

}
