<!--
/**
 '==============================================================================
 '#	INFORMATION
 '------------------------------------------------------------------------------
 '#	@Author					: JJang. Jang,Seon-Joo (jeuse7@hanmail.net)
 '# @Reference 			: N/A
 '#	@FileName 			: UsingAjax.js
 '#	@Description 		: Ajax »ç¿ëÇÏ±â
 '#	@Version 				: 1.0.0
 '#	@CreateDate 		: 2005.09.02
 '#	@UpdateDate 		: N/A
 '#	@Requirement 		: N/A
 '#	@Function List	: 
 '#		N/A
 '#		
 '==============================================================================
*/


/**
 * Using Ajax Constructor
 */
var UsingAjax = function() {
	this.XMLHTTP = null;
	this.RUN_FUNCTION = "completeAjax()";
	this.XML_STRING = null;
	this.ENCODING_CHARSET = "EUC-KR";
}

/**
 * Create XMLHTTP Object
 */
UsingAjax.prototype.createXmlHttp = function() {
	try {
		this.XMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");	//Internet Explorer
	} catch (E) {																							
		try {
			this.XMLHTTP = new ActiveXObject("Msxml2.XMLHTTP");		//Internet Explorer 5.0 ÀÌÈÄ
		} catch (E) {
			try {
				this.XMLHTTP = new XMLHttpRequest();								//Firefox, Mozilla, Opera, etc.
			} catch (E) {
				alert("[Error : UsingAjax] Can't create a XMLHTTP object.");
				return;
			}
		}
	}
}

/**
 * XMLHTTP Error ¿©ºÎ È®ÀÎÈÄ °á°ú¸¦ ¸®ÅÏÇÑ´Ù.
 * @param XmlHttp		(XMLHTTP °´Ã¼)
 * @return boolean	(Error ¿©ºÎ)
 */
UsingAjax.prototype.isErrorXmlHttp = function(XmlHttp) {
	var isError = true;
	if (XmlHttp.status == 200) {
		isError = false;
	} else {
		if (XmlHttp.status == "404") {
			alert("[Error : UsingAjax] XMLHTTP Error 404 - ÆÄÀÏ ¶Ç´Â µð·ºÅÍ¸®¸¦ Ã£À» ¼ö ¾ø½À´Ï´Ù.");
		} else {
			alert("[Error : UsingAjax] XMLHTTP Error " + XmlHttp.status + ".");
		}
	}
	return isError;
}

/**
 * Using GET
 * @param httpURL	(ºÒ·¯µéÀÏ URL)
 */
UsingAjax.prototype.doRequestGet = function(httpURL) {
	if (httpURL) {
		if (this.XMLHTTP == null) this.createXmlHttp();
		var XmlHttp = this.XMLHTTP;
		var ObjAjax = this;
		if (XmlHttp == null) {
			alert("[Error : UsingAjax] XMLHTTP object is null.");
			return;
		}
		if (window.XMLHttpRequest) {	//Internet Explorer 7.0, Firefox, Mozilla, Opera, etc.
			XmlHttp.onreadystatechange = function() {
				if (XmlHttp.readyState == 4) {
					if (!ObjAjax.isErrorXmlHttp(XmlHttp)) {
						if (!isEmptyTrim(ObjAjax.RUN_FUNCTION)) {
							ObjAjax.XML_STRING = XmlHttp.responseText;
							eval(ObjAjax.RUN_FUNCTION);
						}	else {
							completeAjax(XmlHttp.responseText);
						}
					}
				}
			}
			XmlHttp.open("GET", httpURL, true);
			XmlHttp.send(null);
		} else if (window.ActiveXObject) {	//Internet Explorer
			XmlHttp.onreadystatechange = function() {
				if (XmlHttp.readyState == 4) {
					if (!ObjAjax.isErrorXmlHttp(XmlHttp)) {
						if (!isEmptyTrim(ObjAjax.RUN_FUNCTION)) {
							ObjAjax.XML_STRING = XmlHttp.responseText;
							eval(ObjAjax.RUN_FUNCTION);
						}	else {
							completeAjax(XmlHttp.responseText);
						}
					}
				}
			}
			XmlHttp.open("GET", httpURL, true);
			XmlHttp.send();
		}
	} else {
		alert("[Error : UsingAjax] HTTP URL is null.");
		return;
	}
}

/**
 * Using POST
 * @param httpURL	(ºÒ·¯µéÀÏ URL)
 * @param params	(³Ñ±æ ÆÄ¶ó¹ÌÅÍ)
 */
UsingAjax.prototype.doRequestPost = function(httpURL, params) {
	if (httpURL) {
		if (this.XMLHTTP == null) this.createXmlHttp();
		var XmlHttp = this.XMLHTTP;
		var ObjAjax = this;
		if (XmlHttp == null) {
			alert("[Error : UsingAjax] XMLHTTP object is null.");
			return;
		}
		if (window.XMLHttpRequest) {	//Internet Explorer 7.0, Firefox, Mozilla, Opera, etc.
			XmlHttp.open("POST", httpURL, true);
			XmlHttp.onreadystatechange = function() {
				if (XmlHttp.readyState == 4) {
					if (!ObjAjax.isErrorXmlHttp(XmlHttp)) {
						if (!isEmptyTrim(ObjAjax.RUN_FUNCTION)) {
							ObjAjax.XML_STRING = XmlHttp.responseText;
							eval(ObjAjax.RUN_FUNCTION);
						}	else {
							completeAjax(XmlHttp.responseText);
						}
					}
				}
			}
			XmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=" + this.ENCODING_CHARSET);
			XmlHttp.send(params);
		} else if (window.ActiveXObject) {	//Internet Explorer
			XmlHttp.open("POST", httpURL, true);
			XmlHttp.onreadystatechange = function() {
				if (XmlHttp.readyState == 4) {
					if (!ObjAjax.isErrorXmlHttp(XmlHttp)) {
						if (!isEmptyTrim(ObjAjax.RUN_FUNCTION)) {
							ObjAjax.XML_STRING = XmlHttp.responseText;
							eval(ObjAjax.RUN_FUNCTION);
						}	else {
							completeAjax(XmlHttp.responseText);
						}
					}
				}
			}
			XmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=" + this.ENCODING_CHARSET);
			XmlHttp.send(params);
		}
	} else {
		alert("[Error : UsingAjax] HTTP URL is null.");
		return;
	}
}

/**
 * Return XMLDOM Object From Load XML String
 * @return Object		(XMLDOM Object)
 */
UsingAjax.prototype.getLoadXml = function() {
	var XmlDom = null;
	if (this.XML_STRING) {
		try {
			XmlDom = new ActiveXObject("Microsoft.XMLDOM");		//Internet Explorer
			XmlDom.async = "false";
			XmlDom.loadXML(this.XML_STRING);
		} catch (E) {
			try {
				var parser = new DOMParser();										//Firefox, Mozilla, Opera, etc.
				XmlDom = parser.parseFromString(this.XML_STRING, "text/xml");
			} catch (E) {
				//alert(XmlDom.parseError.reason);
				alert("[Error : UsingAjax] Can't create a XMLDOM object.");
			}
		}
	} else {
		//alert("[Error : UsingAjax] XML String is null.");
	}
	return XmlDom;
}

/**
 * Return XMLDOM Object From Load URL
 * @param xmlURL	(XML HTTP URL) 
 * @return Object	(XMLDOM Object)
 */
UsingAjax.prototype.getLoadUrl = function(xmlURL) {
	var XmlDom = null;	
	if (xmlURL) {
		try {
			XmlDom = new ActiveXObject("Microsoft.XMLDOM");										//Internet Explorer
			XmlDom.async = "false";
			XmlDom.load(xmlURL);
		} catch (E) {
			try {
				XmlDom = document.implementation.createDocument("", "", null);	//Firefox, Mozilla, Opera, etc.
				XmlDom.async = "false";
				XmlDom.load(xmlURL);
			} catch (E) {
				//alert(XmlDom.parseError.reason);
				alert("[Error : UsingAjax] Can't create a XMLDOM object.");
			}
		}	
	} else {
		//alert("[Error : UsingAjax] XML URL is null.");
	}
	return XmlDom;
}
//-->
