
//	¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à¡à
//	        AJAX Function  (  ACE  ^_____^ )   website22@hotmail.com
//	¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á


	var ajax_ver = "1.2.5";
	var xmlActionURL = "";
	var xmlActionParam = "";
	var xmlReturnFunction = "processAjax()";
	var xmlAlertOP = false;
	var xmlExecution = false;
	var xmlReturnJS = "";
	var xmlProcessTime = 0;
	var xmlLoadingHTML = "<table width='100%' height='100%'><tr width='100%' height='100%'><td height='100%' valign='center' align='center'><img src='http://xfile.myorder.co.kr/wait_loading.gif' border=0></td></tr></table>";
	var xmlLoadingTEXT = "Loading ...";
	var xmlReturnUnitText = "";
	var xmlReturnUnitLayer = "";
	var xmlErrorFunction = "";
	var xmlProcessId = 0;
	var xmlHttp;
	var xmlDoc;


	function initializeURL(url) {
			xmlActionURL = url;
	}

	function initializeParam(Param) {
			xmlActionParam = Param;
	}

	function initializeReturnFunction(func) {
			xmlReturnFunction = func;
	}

	function initializeReturnJS(JS) {
			xmlReturnJS = JS;
	}

	function initializeReturnUnit(str) 
	{
		xmlReturnUnitLayer = "";
		xmlReturnUnitText = "";

		if (str != "")
		{
			if (isUndefined(document.getElementById(str).value))
			{
				xmlReturnUnitLayer = str;
			}
			else
			{
				xmlReturnUnitText = str;
			}
		}
	}

	function initializeErrorFunction(errfunc) {
			xmlErrorFunction = errfunc;
	}

	function createXMLHttpRequest() {
			if (window.ActiveXObject) {
					try {
						xmlHttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
					} catch (e) {
						try {
							xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
						} catch (E) {
							xmlHttp = false;
						}
					}
			} else if (window.XMLHttpRequest) {
					xmlHttp = new XMLHttpRequest();
			}
			if (xmlHttp == null)
			{
				alert("Error creating request object!")
			}
	}

	function doStartRequest(processid) {
			if (xmlProcessId != processid) {
					return;
			}
			createXMLHttpRequest();
			xmlHttp.onreadystatechange = callback;
			try
			{
				if (xmlActionParam == "")
				{
					xmlHttp.open("GET", xmlActionURL, true);
					xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
					xmlHttp.send (null);
				}
				else
				{
					xmlHttp.open("POST", xmlActionURL, true);
					xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
					xmlHttp.send (xmlActionParam);
				}
				
			}
			catch (e)
			{
				alert("»ç¿ë±ÇÇÑÀÌ ¾ø½À´Ï´Ù.");
			}
			//alert("" + processid + " ¹øÂ° ¿äÃ»Ã³¸®");
	}

	function startRequest() {
			// ´õºíÅ¬¸¯ or <select> ¿¡¼­ÀÇ ´Ù·®ÀÇ ¿äÃ»¿¡ ´ëÇÑ Ã³¸®
			// 100ms ÀÇ Å¸ÀÌ¸Ó¸¦ µÎ°í ÇØ´ç½Ã°£µ¿¾È ¿äÃ»ÀÌ ¾øÀ»¶§ ½ÇÁ¦ ¿äÃ» ½ÃÀÛ
			if (xmlProcessId >= 10000) {
					xmlProcessId = 1;
			} else {
					xmlProcessId = xmlProcessId + 1;
			}

			if (xmlReturnUnitLayer != "")
			{
				document.getElementById(xmlReturnUnitLayer).innerHTML = "";
			}

			if (xmlProcessTime != 0)
			{
				if (xmlReturnUnitLayer != "")
				{
					document.getElementById(xmlReturnUnitLayer).innerHTML = xmlLoadingHTML;
				}
				else if (xmlReturnUnitText != "")
				{
					document.getElementById(xmlReturnUnitText).value = xmlLoadingTEXT;
				}
			}
			if (xmlProcessTime == 0)
			{
				setTimeout("doStartRequest(" + xmlProcessId + ")", 100);
			}else {
				setTimeout("doStartRequest(" + xmlProcessId + ")", xmlProcessTime*1000);
			}
	}

	function callback() {
//					alert("xmlHttp.readyState:"+ xmlHttp.readyState);

			if(xmlHttp.readyState == 4) {
					if(xmlHttp.status == 200) {
							// Á¤»óÀûÀÎ µ¥ÀÌÅ¸ ¹ÝÈ¯
							// ÀüÃ¼(TXT) : xmlHttp.responseText
							if (window.ActiveXObject) {
									// XML ·Î º¯È¯ÇÑ´Ù.
									// ÅØ½ºÆ® ¾ÕºÎºÐ¿¡¼­ "<" ÀÌÀü ¹®ÀÚµéÀ» Á¦°ÅÇÑ´Ù.(°ø¹é¹®ÀÚ Á¦°Å¿ë,  ÀÌ·¸°Ô ¾ÈÇÏ¸é º¯È¯ÀÌ ¾ÈµÈ´Ù --)
									xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
									var rawXML = xmlHttp.responseText;
									var filteredML;

									var index = 0;
									for (var i = 0; i < rawXML.length; i++) {
											if (rawXML.charAt(i) == "<") {
													index = i;
													break;
											}
									}

									filteredML = rawXML.substring(index);
									xmlDoc.loadXML(filteredML);
							} else if (window.XMLHttpRequest) {
									xmlDoc = xmlHttp.responseXML;
							}

							eval(xmlReturnFunction);
					} else if (xmlHttp.status == 204){
							// µ¥ÀÌÅÍ°¡ Á¸ÀçÇÏÁö ¾ÊÀ» °æ¿ì
							if (xmlErrorFunction == "") {
									alert("µ¥ÀÌÅ¸°¡ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù.(CODE : " + xmlHttp.status + ")");
							} else {
									eval(xmlErrorFunction);
							}
					} else if (xmlHttp.status == 500){
							// ¿¡·¯¹ß»ý½Ã
							if (xmlErrorFunction == "") {
									alert("µ¥ÀÌÅ¸ ¼ö½ÅÁß ¿¡·¯°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù.(CODE : " + xmlHttp.status + ")");
							} else {
									eval(xmlErrorFunction);
							}
					}
			}
	}


	function startAjax(param1,str)
	{
			initializeURL(param1);
			initializeReturnFunction("processAjax()");
			initializeReturnUnit(str);
			initializeErrorFunction("onErrorAjax()");
			startRequest();
	}


	function processAjax() 
	{
			try
			{
				if (xmlReturnUnitLayer != "")
				{
					document.getElementById(xmlReturnUnitLayer).innerHTML = xmlHttp.responseText;
				}
				else if (xmlReturnUnitText != "")
				{
					document.getElementById(xmlReturnUnitText).value = xmlHttp.responseText;
				}

				if (xmlAlertOP == true)
				{
					alert(trim(stripHTMLtag(xmlHttp.responseText)));
				}

				if (xmlExecution == true)
				{
					var FBI = xmlHttp.responseText;
					var JS_ = "";
					var JScript = "";
					var pos = 0;

					while ( FBI.toLowerCase().indexOf("<script", pos) >= 0 )
					{
						pos = FBI.toLowerCase().indexOf("<script", pos);
						JS_ = FBI.substring(pos,FBI.toLowerCase().indexOf("</script>", pos)+9)
						JS_ = JS_.replace(/<script[^>]*[>]/gi, "");
						JS_ = JS_.replace(/<\/script>/gi,"");
						JS_ = JS_.replace(/<!--/gi,"");
						JS_ = JS_.replace(/\/\/-->/gi,"");
						JScript = JScript + JS_ + "\n"
						pos = FBI.toLowerCase().indexOf("<script", pos) + 1;
					}
					eval(JScript);
				}

				if (xmlReturnJS != "")
				{
					eval(xmlReturnJS);
				}
				//alert("confirm : " + xmlHttp.responseText);
			}
			catch (e)
			{
//				alert("catch : " + xmlHttp.responseText);
			}
	}

	function onErrorAjax() 
	{
			alert("ERROR : " + xmlHttp.status);
	}

	function stripHTMLtag(string) 
	{
		var objStrip = new RegExp();
		objStrip = /[<][^>]*[>]/gi;
		return string.replace(objStrip, "");
	}

	function trim(str) 
	{
        str = this != window? this : str;
        return str.replace(/^\s+/, '').replace(/\s+$/, '');
    }

	function isUndefined(a) 
	{
		return typeof a == 'undefined';
	} 

	function isFunction(a) 
	{
		return typeof a == 'function';
	}

	function isObject(a) 
	{
		return (typeof a == 'object' && !!a) || isFunction(a);
	}
