
var request = null;

/* 요청 객체 생성을 위한 랩퍼 함수
	매개변수 :
	reqType: HTTP 요청 유형. GET 또는 POST
	url: 서버 프로그램의 URL
	asynch: 동기 또는 비동기 모드 선택
	respHandle: 반환값을 처리하는 함수 이름
	다섯 번째 매개변수(arguments[4])는 POST요청시 전송되는 데이터 */

function httpRequest( _reqType, _url, _asynch, _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 ) {
		// _reqType의 값이 POST면 5번째 매개변수는 전송될 데이터

		if ( _reqType.toLowerCase() != "post" ) {
			initReq( _reqType, _url, _asynch, _respHandle );
		} else {
			// POST 전송되는 데이터
			var args = arguments[4];
			if ( args != null && args.length > 0 ) {
				initReq( _reqType, _url, _asynch, _respHandle, args );
			}
		}
	} else {
		alert( "Your browser does not permit the use of all "+
				"of the application's features!" );
	}
}

/* 생성된 요청 객체의 초기화 */
function initReq( _reqType, _url, _bool, _respHandle ) {
	try {
		/* HTTP 응답을 처리하는 함수 지정 */

		request.onreadystatechange = _respHandle;
		request.open( _reqType, _url, _bool );

		// _reqType의 값이 POST면 5번째 매개변수는 전송될 데이터
		if ( _reqType.toLowerCase() == "post" ) {
			request.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded; charset=euc_kr" );
			request.send( arguments[4] );
		} else {
			request.send( null );
		}
	} catch ( errv ) {
		alert(
			"The application cannot contact " +
			"the server at the moment.\n" +
			"Please try again in a few seconds.\n" +
			"Error detail:" + errv.message );
	}
}


/*

var _url = "http://x5net.co.kr/ajax/test.php";
// 디버깅 셋업
httpRequest( "POST", _url, true, function () { alert( request.responseText ); } );
*/