//페이지를 빠져나갈때 발생하는 이벤트
window.onunload = abort_xmlhttp_async_request;
//서비스 요청 페이지
var SERVICE_PAGE = "/servlet/ssoProxy";

//XMLHttpRequest 객체
var XMLHttpRequestObject = null;
var BParamTk = "token";
//XMLHttpRequest 통신 후 responseXML을 넘길 함수
var XMLHttpRequest_responseFunction = null;
//브라우저 판단
var isIE = navigator.appName=="Microsoft Internet Explorer";

//서비스 결과 메시지
var svrMessage = "";

var svrResult = null;


function xmlhttp_request(params, requestPage){
  
  
  if(!create_xmlhttp_request_object()) return null;

  var findString = "|";
  if(requestPage==undefined || requestPage==""){
    requestPage=SERVICE_PAGE;
    findString = "$^$";
  }
  
  XMLHttpRequestObject.open("POST", requestPage, false);
  XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
  XMLHttpRequestObject.send(params);
  return validate_response_xmldoc(findString);
}



function validate_response_xmldoc(findString)
{
  var message = "서비스 요청이 실패하였습니다.";

  if(XMLHttpRequestObject == null){
    alert("XMLHttpRequest 객체가 생성되지 않아 유효성을 검사할 수 없습니다.");
    return false;
  }

  if(XMLHttpRequestObject.statusText != 'OK'){
    /*
    XMLHttpRequestObject = null;
    XMLHttpRequest_responseFunction = null;
    return;
    */
    
    alert(message+"\n\n원인: XML HTTP "+XMLHttpRequestObject.status+" ERROR ("+XMLHttpRequestObject.statusText+")");
    return false;
    
  }
  try{

    svrResult = XMLHttpRequestObject.responseText.split(findString);
    return(svrResult[0]);
  }catch(e){
    alert(message+"\n\n원인: "+ e.toString());
    return (-1);
  }
}

function create_xmlhttp_request_object()
{
  try{
    XMLHttpRequestObject = new ActiveXObject("Msxml2.XMLHTTP.3.0");
    return true;
  }catch(e){
    try{
      XMLHttpRequestObject = new ActiveXObject("Msxml2.XMLHTTP.4.0");
      return true;
    }catch(e2){
      return false;
    }
  }
}


function get_response_element(id)
{
  if(id == null)
    id = 0;
  
  if(typeof(id) == "number")
    return XMLHttpRequestObject.responseXML.documentElement.childNodes[id];
  else if(typeof(id) == "string")
    return XMLHttpRequestObject.responseXML.documentElement.selectSingleNode("response[@id='"+ id +"']");
  else
    return null;
}

function abort_xmlhttp_async_request()
{
  if(XMLHttpRequestObject == null)
    return;
  
  if (XMLHttpRequestObject.readyState == 4)
    return;

  XMLHttpRequestObject.onreadystatechange = function ()
  {
    return false;
  }
  XMLHttpRequestObject.abort();
  
  XMLHttpRequestObject = null;
}
