//グローバル変数の定義
var httpObj;		// HTTP通信用オブジェクト
var timerId;		// HTTP通信用タイマーオブジェクト
var timeout_sec;	// HTTP通信タイムアウト秒数

//通信成功時　テキストファイルの内容をHTLMに書き込み表示
function dispText() {
	document.getElementById('ajax_test1').innerHTML=httpObj.responseText;
}
//通信失敗時
function httpError(error) {
    alert(error);
}

//Ajax HTTP 通信 
// 引数に与えられたURLにHTTPリクエストを行ない ファイルを取得する
/*　target_url:リクエスト先のURL
	success_func:HTTP通信完了時に参照する関数
	error_func:HTTP失敗時に参照する関数
*/
function httpXmlRequest(target_url, success_func, error_func) {
    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();//XMLHttpRequestオブジェクト生成に失敗
    }
    timeout_sec = 10;//タイムアウト時間設定（１０秒）
    timerId = setInterval('timeoutCheck()', 1000);//タイムアウト処理関数
    httpObj.open('GET', target_url, true);
    httpObj.onreadystatechange = function() {
        if (httpObj.readyState == 4) {
        	//0未初期化,1リクエスト準備,2リクエスト完了,3受信中,4受信完了
            clearInterval(timerId);
            if (httpObj.status == 200) { //通信成功時
                success_func();
            } else { //通信失敗時
                error_func(httpObj.status + ' : ' + httpObj.statusText);
                return false;
            }
        }
    }
    httpObj.send('');//GET の時の送信データは null
}
// XMLHttpRequestオブジェクト生成に失敗した場合の処理
function httpObjGenerateFail() {
    alert('ご利用のブラウザーでは、XMLHttpRequest は利用頂けません。');
    return false;
}
// HTTPタイムアウト処理
function timeoutCheck() {
    timeout_sec --;
    if(timeout_sec <= 0) {
        // タイマーをストップする
        clearInterval(timerId);
        // HTTPリクエストを中断する
        httpObj.abort();
        // エラーダイアログを表示
        alert('タイムアウトです。');
        return false;
    }
}

//テキストファイルを読み込む
function ajax_text(target_url){
	httpXmlRequest(target_url,dispText, httpError);
}

