var REQ; // Ajax Variable

/***********************************************************
 함수명  :newXMLHttpRequest()
 설명  :Ajax 의 객체 정보를 가져온다.
***********************************************************/
// function from http://www-128.ibm.com/developerworks/kr/library/j-ajax1/index.html
function newXMLHttpRequest() 
{
	var xmlreq = false;
	if (window.XMLHttpRequest) 
	{
		xmlreq = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) 
	{
		try 
		{
			xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e1) 
		{
			try 
			{
				xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e2) 
			{
			    // Unable to create an XMLHttpRequest with ActiveX
			}
		}
	}
	return xmlreq;
}

/***********************************************************
// 함수명  :sendRequest()
// 설명  :Ajax 의 객체 정보를 가져온다.
// @param callback 송수신시에 기동하는 함수 이름
// @param data  송신하는 데이터 (&이름1=값1&이름2=값2...)
// @param method "POST" 또는 "GET"
// @param async  비동기라면 true 동기라면 false
// @param url  요청하는 파일의 URL
// readyState 
//	0	UNINITIALIZED	: XMLHttpRequest 객체를 생성하였지만, 초기화되지 않았다. 즉, open() 메소드를 실행하지 않은 상태
//	1	LOADING			: XMLHttpRequest 객체를 생성하였고, open() 메소드를 수행하였지만, send() 메소드를 수행하지 않은 상태
//	2	LOADED			: send() 메소드를 수행하였지만, 서버가 처리를 준비하고 있는 상태
//	3	INTERACTIVE		: 처리를 완료하지 않았지만, 진행 중인 상태
//	4	COMPLETED		: 처리를 완료한 상태
*/

function sendRequest(callback, data, method, async, url)
{
	REQ	= newXMLHttpRequest();
	REQ.onreadystatechange = function()
	{
		if (REQ.readyState == 4)
		{
			if (REQ.status == 200) 
			{
			    callback();
				//window.alert("OK");
				//window.alert(REQ.responseXML.xml);
				//window.alert(REQ.responseText);
			}
			else 
			{
			    alert("There was a problem retrieving the XML data:\n" + REQ.statusText);
			}
		}//if 
	}

	var conType = "application/x-www-form-urlencoded; charset=UTF-8";


	REQ.open(method, url, async);
	//REQ.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	REQ.setRequestHeader("Content-Type", conType);
	REQ.send(data);
}

