/**
 *
 * 사용법:
 * 
 * var test = function(){ 함수내용 }
 * 다음과 같이 ajax에 응답할 합수를 생성하고
 * function jsPrint(menu_cd_v,cms_cat_name_v,cms_seq_n){    
 *		var url="http://www.test.com/test/test.do"
 *		queryString = "변수=값&변수=값&변수=값"
 *		httpRequest("POST",url,queryString,true,test);
 * 		위에서 test는 응답할 함수명
 * }
 * 	
 *				
 */


var ajax;

/**
 * XMLHttpRequest오브젝트 생성.
 */
function createHttpRequest()
{
    if(window.ActiveXObject){
		try {
			return new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e) {
			try {
				return new ActiveXObject("Microsoft.XMLHTTP");
			}catch(e2) {
				return null;
			}
		}
	}else if(window.XMLHttpRequest){
		return new XMLHttpRequest();
	}else{
		return null;
	}
}


function httpRequest(reqType,url,queryString,asynch,handleResponse){

	ajax = createHttpRequest();    

	queryString = uriEncode(queryString);	
	if(reqType.toUpperCase() == 'GET') {
		url += queryString
	}

    // ActiveXObject 초기화에 실패했다면 request는 여전히 null 상태 
    if (ajax){
		ajax.onreadystatechange = handleResponse;
		ajax.open(reqType,url,asynch);
		/* POST 요청을 위해 Content-Type 헤더 지정 */
		setEncHeader(ajax)
		ajax.send(queryString);

    } else {
        alert("Your browser does not permit the use of all " + "of this application's features!");
    }	
	
	//URI 인코딩
	function setEncHeader(oj){
	
		var contentTypeUrlenc = 'application/x-www-form-urlencoded; charset=UTF-8';
		if(!window.opera){
			oj.setRequestHeader('Content-Type',contentTypeUrlenc);
		} else {
			if((typeof oj.setRequestHeader) == 'function')
				oj.setRequestHeader('Content-Type',contentTypeUrlenc);
		}	
		return oj
	}
	
	//URL 인코딩.
	function uriEncode(data){
	
		if(data!=""){
			var encdata = '';
			var datas = data.split('&');
			for(i=0;i<datas.length;i++)
			{
				var dataq = datas[i].split('=');
				encdata += '&'+encodeURIComponent(dataq[0])+'='+encodeURIComponent(dataq[1]);
			}
		} else {
			encdata = "";
		}
		return encdata;
	}

}


			
