//グローバル変数の定義
var httpObj;
var timerId;
var timeout_sec = 10; //タイムアウトの秒数

//引数に与えられたURLにHTTPリクエストを行い、指定された関数を実行
function httpRequest(target_url, funcitonReference) {
	try{
		if(window.XMLHttpRequest) {
			httpObj = new XMLHttpRequest();
		} else if (window.ActiveXObject) {
			httpObj = new ActiveXObject("Microsoft.XMLHTTP");
		} else {
			httpObj = false;
		}
	} catch(e) {
		httpObj = false;
	}
	if (!httpObj) {
		httpObjGenerateFail();
	}

		//タイマーをセット 2007/11/13 タイムアウト処理がたまる為、コメントアウト
		//timerId = setInterval('timeoutCheck()', 1000);
		httpObj.open("GET", target_url, true);
		httpObj.onreadystatechange = function() {

			if (httpObj.readyState == 4) {
				clearInterval(timerId);
				//if (httpObj.status == 200) {
				if (httpObj.responseText) {
					funcitonReference(httpObj.responseText);
				} else {
					//alert(httpObj.status + ':' + httpObj.statusText);
					return false;
				}
			}
		}
		httpObj.send('');

}

//XMLHttpRequestオブジェクト生成に失敗した場合の処理
function httpObjGenerateFail() {
	alert('ご利用のブラウザーでは、当サイトをご利用頂けません。');
	return false;
}


//HTTPタイムアウト処理
function timeoutCheck() {
	timeout_sec--;
	if(timeout_sec <=0) {
		//タイマーをストップする
		clearInterval(timerId);
		//HTTPリクエストを中断する
		httpObj.abort();
		//エラーダイアログを表示
		//alert('タイムアウトです');
		//clearInterval(timerId);

		return false;
	}
}

//イベント割り当て
function addListener(elem, eventType, func, cap) {
	if(elem.addEventListener) {
		elem.addEventListener(eventType, func, cap);
	} else if (elem.attachEvent) {
		elem.attachEvent('on' + eventType, func);
	} else {
		alert('ご利用のブラウザーはサポートされていません');
		return false;
	}
}

//セレクトメニューの初期化
function eliminateDropdownList(sel_id) {
	var select_node = document.getElementById(sel_id);
	var opt_num = select_node.length;
	var i;
	for(i=opt_num-1; i>=0; i--) {
		select_node.remove(i);
	}
}
