/**
 * @author mtanaka
 */


var ServiceRequest = Class.create();

ServiceRequest.prototype = {
	serviceURL: null,
	params: null,
	resultContainerId: null,
	objXMLHttpReq: null,
	
	initialize : function(params, resultContainerId) {
		// params: Webサービスに与えるparameter
		// 出力結果を書き込むdivやspanのID
		this.params = params;
		this.resultContainerId = resultContainerId;
		
		// サブクラスでURLを設定しておかないと使えない
		if(this.serviceURL == null) return;
		
		url = this.serviceURL + "?" + this.toRequestParam(this.params);
		
		// リクエスト発行
		var req = new Ajax.Request(this.serviceURL + "?" + this.toRequestParam(this.params),
				{	
					method: 'get', 
					onFailure    : function(httpObj) {},
					onSuccess : function(httpObj) {},
					onComplete: function (httpObj) {
						// サブクラスでオーバーライド
						this.complete(httpObj);
					}.bindAsEventListener(this, false)
				});
		this.objXMLHttpReq = req.transport;
	},
	
	// Ajax.Requestに設定するコールバック関数
	complete : function(httpObj) {
		alert("superclass")
	},
	
	// key1=value1&key2=value2形式のパラメータを得る．
	toRequestParam : function(objParam) {
		return $H(objParam).toQueryString();
	},
	
	// リクエストを止める
	abort: function() {
		this.objXMLHttpReq.abort();
	}
}
