//グローバル変数の定義
var httpObj;
var timerId;
var timeout_sec = 10;

//引数に与えられたＵＲＬにＨＴＴＰリクエストを行い、指定された関数を実行
function httpRequest(target_url , functionReference){
	try{
		if(window.XMLHttpRequest){
			httpObj = new XMLHttpRequest();
		}else if(window.ActiveXObject){
			httpObj = new ActiveXObject("Microsoft.XMLHTTP");
		}else {
			httpObj=false;
		}
	} catch(e){
		httpObjGenerateFail();
	}
	//タイマーをセット
	timerId = setInterval('timeoutCheck()' , 1000);
	
	httpObj.open("GET" , target_url , true );
	httpObj.onreadystatechange = function(){
		if(httpObj.readyState == 4 ){
			clearInterval(timerId);
			if(httpObj.status == 200){
				functionReference(httpObj.responseText);
				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('タイムアウトです');
		return false;
	}
}

function getHttpObject() {
  var xmlhttp;
  if (window.ActiveXObject){
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e){
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E){
        xmlhttp = false;
      }
    }
　}else if (window.XMLHttpRequest) {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}
