﻿// JScript 파일

var AjaxQueryString = '';
var request;
var reqType;

function httpRequest(reqType,url,asynch){
 try{
  request = new XMLHttpRequest();
 }catch(trymicrosoft){
  try{
   request = new ActiveXObject("Msxm12.XMLHTTP");
  }catch(othermicrosoft){
   try{
    request = new ActiveXObject("Microsoft.XMLHTTP");
   }catch(failed){
    request = null;
   }
  }
 }
 if (request == null){
  alert("객체가 생성되지 않았습니다.");
 }else{
  initReq(reqType,url,asynch);
 }
}

/**
 * Ajax Call
 *  - Request 
 */
function sendData(url, after){
 var frm = document.forms[0];
 AjaxCallMethod = after;
 setQueryString(frm);
 httpRequest('get',url,true);
}

function sendData(url, after, frm){
 AjaxCallMethod = after;
 setQueryString(frm);
 httpRequest('get',url,true);
}

/**
 * Set Parameter : by Form
 */
function setQueryString(frm){
 AjaxQueryString = '';
 if (frm != null && typeof(frm) != 'undefined') {
  var numberElements = frm.elements.length;

  for(var i = 0;i < numberElements;i++){
   if(i < numberElements -1){
    AjaxQueryString += frm.elements[i].name + '=' + encodeURIComponent(frm.elements[i].value) + '&';
   }else{
    AjaxQueryString += frm.elements[i].name + '=' + encodeURIComponent(frm.elements[i].value);
   }
  }
 }
}

 
/**
 * 서버측에서 받아오고 난 후에 행동들을 설정하는 부분
 */
function initReq(reqType, url, bool){
 request.onreadystatechange = handleJson;
 request.open(reqType, url, bool);
 request.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=euc-kr");
 request.send(AjaxQueryString);
}


/**
 * 결과값 처리
 */
function handleJson(){
 try {
  if(request.readyState == 4){        
   if(request.status == 200){
    var resp = request.responseText;
    var func = new Function("return " + resp);
    var objt = func();
    // 처리 함수 호출
    AjaxCallMethod(objt);

   }else{
    alert("예외가 발생하였습니다. (메시지1 : " + request.statusText + ")");
   }
  } 
 } catch (e) {
  alert("예외가 발생하였습니다. (메시지2 : " + e.message + ")");
 }
}
