/**
 *
 * 사용법:
 * 
 * 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;
    }

}


            
