//
//
// 共通Ajax部品
// Copyright (c) 2008 Yuuichi Akagawa
//
// Changelog
//  2008.09.10 New
//
//


////////////////////////////////////////////////////////////////////////
//
// 非同期HTTPリクエスト
//
//  引数： reqType    : POST/GET
//         url        : URL
//         async      : 同期/非同期(trueで非同期)
//         respHandle : レスポンスのコールバックハンドラ
//
////////////////////////////////////////////////////////////////////////
function httpRequest (reqType, url, async, respHandle) {
	if(window.XMLHttpRequest) {
		request = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		request = new ActiveXObject("Msxml2.XMLHTTP");
		if( !request ) {
			request = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}

	if ( request ) {
		if( reqType.toLowerCase() != "post" ) {
			initReq(reqType, url, async, respHandle);
		} else {
			var args = arguments[4];
			if( args != null && args.length > 0 ) {
				initReq(reqType, url, async, respHandle, args);
			}
		}
	} else {
		alert("このブラウザは本システムに対応していません。");
	}
}


function initReq( reqType, url, bool, respHandle ) {
	try {
		request.onreadystatechange = respHandle;
		request.open(reqType, url, bool);
		if( reqType.toLowerCase() == "post" ) {
			request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
			request.send(arguments[4]);
		} else {
			request.setRequestHeader("If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT");
			request.send(null);
		}
	} catch (errv) {
		alert("Can't connect to server. Please retry lator\n" + "ErrorCode: " + errv.message);
	}
}

////////////////////////////////////////////////////////////////////////
//
// getElementByIdラッピング
//
////////////////////////////////////////////////////////////////////////
function getElById(id) {
	if( document.getElementById ) {
		return document.getElementById(id);
	}else{ //IE
		return document.all(id);
	}
}

////////////////////////////////////////////////////////////////////////
//
// getElementByNameラッピング 
//
////////////////////////////////////////////////////////////////////////
function getElsByName(name) {
	if( document.getElementsByName ) {
		return document.getElementsByName(name);
	}else{ //IE
		return document.all(name);
	}
}

////////////////////////////////////////////////////////////////////////
//
// 文字列の前後に含まれる空白の除去
//
////////////////////////////////////////////////////////////////////////
function trim(str) {
        var tmpstr = str.replace(/^[\s　]+/, "");
        tmpstr = tmpstr.replace(/[\s　]+$/, "");
        return tmpstr;
}

