//Author : ±è»ï¿µ
var request;
var queryString;
var userFunction="ajaxOut"; //default

function userDefineFunction(results){
	if(!results){
		/*alert('°á°ú°ªÀ» ¹ÞÁö ¸øÇÔ');*/
		return;
	}
	eval(userFunction+"(results)");
}

function ajaxSubmit(tarFrm,tarFunc){
	userFunction = tarFunc;
	setQueryString(tarFrm);
	httpRequest(tarFrm.method,tarFrm.action,true);
}

function setQueryString(tarFrm){
	queryString = "";
	var frm = tarFrm;
	var numberElements = frm.elements.length;

	for(var i=0;i<numberElements; i++){
		
		if(frm.elements[i].type != 'submit' && frm.elements[i].type != 'reset' && frm.elements[i].type != 'button'){
			if(!frm.elements[i].disabled){
				if(frm.elements[i].type == 'checkbox' || frm.elements[i].type == 'radio')
				{
					if(frm.elements[i].checked){
					queryString += frm.elements[i].name +"="+encodeURIComponent(frm.elements[i].value);
					if(i<numberElements-1)queryString += "&";					
					}		
				}
				else
				{
					queryString += frm.elements[i].name +"="+encodeURIComponent(frm.elements[i].value);
					if(i<numberElements-1)queryString += "&";
				}
			}
		}
	}
	
	//alert(queryString);
}

function httpRequest(reqType, url, isAsync){
	request = null;
	try{
		request = new ActiveXObject("Msxml12.XMLHTTP");
	}catch(othermicrosoft){
		try{
			request = new ActiveXObject("Microsoft.XMLHTTP");
		}catch(failed){
			request = null;
		}
	}
	
	if(!request && typeof XMLHttpRequest != 'undefined')
	{	
		request = new XMLHttpRequest();
	}
		
	if(request == null){
		alert("REQUEST °´Ã¼°¡ »ý¼ºµÇÁö ¾Ê¾Ò½À´Ï´Ù.");
	}else{
		initReq(reqType,url,isAsync);
	}
}

function initReq(reqType,url,isAsync){
	if (window.netscape && window.netscape.security.PrivilegeManager.enablePrivilege)
	{
		try{
			netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');	
		}
		catch(e)
		{
			//alert(e);
		}
	}
	/*onreadystatechange ´ë¼Ò¹®ÀÚ ±¸ºÐ -firefox*/
	request.onreadystatechange = eval("handleResponse"); /*evalÀ» ÀÌ¿ëÇÔÀ¸·Î½á ÀÀ´äÃ³¸®¸¦ ´Ù¾çÇÏ°Ô ºÐ±âÈ­ ½ÃÅ³ ¼ö ÀÖ´Ù.*/
	request.open(reqType,url,isAsync);
	request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
	//alert("queryString : "+queryString+"url:"+url);
    request.setRequestHeader("Content-length",queryString.length);
    request.setRequestHeader("Connection", "close");	
	request.send(queryString); 
}

function handleResponse(){
	var outObj;
	if(request.readyState == 4){
		if(request.status == 200){
			userDefineFunction(request.responseText);
		}else{
			alert("STATUS:"+request.status);
		}
	}
}

