/**
 * ajax ½ÇÇà
 * @param urls         È£ÃâÇÒ URL
 * @param method      GET or POST
 * @param queryString POST¹æ½Ä Ç×¸ñµ¥ÀÌÅÍ
 * @param userHandler ÀÀ´ä µ¥ÀÌÅÍ Ã³¸® ÇÔ¼ö. 
 *                    handlerÇÔ¼ö´Â 3°³ÀÇ ÆÄ¶ó¹ÌÅÍ¸¦ ¹ÞÀ» ¼ö ÀÖ´Ù. (HtpRequest°´Ã¼, xml DOM°´Ã¼, text¹®ÀÚ¿­)
 * @param addObj      [¿É¼Ç] Ãß°¡·Î ³Ñ°Ü¹ÞÀ» °´Ã¼Á¤º¸. ÇÚµé·¯ÀÇ req["addObj"]¿¡ ±×´ë·Î ´ã°Ü¼­ ¿À°ÔµÈ´Ù.
 */
/*
  ¿¹Á¦)
 	pcnAjax.run("http://intranet.postcorea.net/temp/utf.php", "GET", "", "handlerA", {A:"10",B:"20"});
 	pcnAjax.run("http://intranet.postcorea.net/temp/utf.php", "GET", "a=1&b=2", "handlerB");
 	pcnAjax.run("http://intranet.postcorea.net/temp/utf.php", "POST", "a=1&b=2", "handlerC");
 
 	function handlerA(req, xml, txt){
 		var a = document.getElementById("x");
 		a.innerHTML = txt;

		alert(req["addObj"].A);
		alert(req["addObj"].B);
 	}
 	function handlerB(req, xml, txt){
 		var a = document.getElementById("y");
 		a.innerHTML = txt;
 	}
 	function handlerC(req, xml, txt){
 		var a = document.getElementById("z");
 		a.innerHTML = txt;
 	}
*/
var pcnAjax = {
	run: function(urls, method, queryString, userHandler, addObj) { 
		// ±âº»ÀûÀÎ º¯¼ö ¼±¾ð 

		var xmlhttp = null;

		// FFÀÏ °æ¿ì window.XMLHttpRequest °´Ã¼°¡ Á¸ÀçÇÑ´Ù. 
		if (window.XMLHttpRequest) {
			// Create XMLHttpRequest object in non-Microsoft browsers
			xmlhttp = new XMLHttpRequest();
			if (xmlhttp.overrideMimeType) {
				xmlhttp.overrideMimeType('text/xml');
			}

		} else if (window.ActiveXObject) {
			// Create XMLHttpRequest via MS ActiveX
			try {
				// Try to create XMLHttpRequest in later versions
				// of Internet Explorer
				xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e1) {
				// Failed to create required ActiveXObject
				try {
					// Try version supported by older versions
					// of Internet Explorer
					xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e2) {
					// Unable to create an XMLHttpRequest with ActiveX
				}
			}
		}
		var o = xmlhttp;

		// GET ¸ðµå·Î URL ÁÖ¼ÒÀÇ °ªÀ» °¡Á®¿Â´Ù 
		// ÁÖÀÇ ÇØ¾ß ÇÒÁ¡Àº ¹«Á¶°Ç UTF ·Î °ªÀÌ µé¾î¿È 
		if(o != null){
			if(addObj != null){
				o["addObj"] = addObj;
			}
			if(method == 'GET'){
				o.open('GET', urls+(queryString ? "?"+queryString : ""), true); //ºñµ¿±â½Ä È£Ãâ
				o.onreadystatechange = function(){
					if(o.readyState==4 && o.status == 200 && o.statusText=='OK'){
						eval(userHandler+"(o, o.responseXML, o.responseText)");
					}
				}
				o.send(null); 
			}else if(method == 'POST'){
				o.open("POST", urls, true); 
				o.onreadystatechange = function(){
					if(o.readyState==4 && o.status == 200 && o.statusText=='OK'){
						eval(userHandler+"(o, o.responseXML, o.responseText)");
					}
				}
				o.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");    
				o.setRequestHeader("Content-length", queryString.length);
				o.setRequestHeader("Connection", "close");
				o.send(queryString); 
			}
		}else{
			alert("[ajax] °´Ã¼»ý¼º½ÇÆÐ");
		}
	}
} 
