/* ------------------------------------------------------------------
* コンストラクタ
*----------------------------------------------------------------- */
var ajaxparts = function(target, url) {
	//this.target = target;
	//this.url = url;
	/* ■キャッシュ抑制（抑制なら1、許容なら0）*/
	/* 通常は0にしてください。 */
	this.cache_deny = 0;
	this.httpGetRequest = function(url, callback, headers) {
		/* XMLHttpRequestオブジェクトを生成 */
		var oHttp = null;
		if(window.XMLHttpRequest) {
			oHttp = new XMLHttpRequest();
		} else if(window.ActiveXObject) {
			try {
				oHttp = new window.ActiveXObject("Msxml2.XMLHTTP.3.0");
			} catch(e) {
				return null;
			}
		}
		if( oHttp != null ) {
			/* HTTP GETリクエスト */
			oHttp.open('GET', url, true);
			/* リクエストヘッダーをセット */
			if( typeof(headers) == 'object' ) {
				for(var name in headers) {
					oHttp.setRequestHeader(name, headers[name]);
				}
			}
			/* 状態変化イベントのコールバック関数を定義 */
			oHttp.onreadystatechange = function() {
				if (oHttp.readyState == 4) {
					callback(oHttp);
				}
			};
			/* HTTP GETリクエスト送出 */
			oHttp.send(null);
		}
		/* oHttpを返す */
		return oHttp;
	};
};

/* ------------------------------------------------------------------
* リクエスト開始
*----------------------------------------------------------------- */
ajaxparts.prototype.execute = function(target, url) {
	/* キャッシュ抑制 */
	var hdrs = {};
	if(this.cache_deny == 1) {
		hdrs['If-Modified-Since'] = '01-Jan-1970 00:00:00 GMT';
	}
	/* コールバック関数 */
	var cb = function(oHttp) {
		var html = '';
		/* HTTPレスポンスステータスが200(OK)かを評価 */
		if(oHttp.status == 200) {
			html = oHttp.responseText;
		} else {
			html = "エラー";
			html += "[" + oHttp.status + ":" + oHttp.statusText + "]";
		}
		while( target.hasChildNodes() ) {
			target.removeChild(target.lastChild);
		}
		target.innerHTML = html;
		return false;
	};
	/* HTTP GETリクエスト開始 */
	var oHttp = this.httpGetRequest(url, cb, hdrs);
	if( ! oHttp) {
		while( target.hasChildNodes() ) {
			node.removeChild(target.lastChild);
		}
		target.innerHTML = html;
		return false;
	}
};
