Function.prototype.bind = function(obj) {
	var __method = this;
	return function() {
		__method.apply(obj, arguments);
	}
}
/*
 *
 * @priviate
 */
Function.prototype.apply = function(obj, parameters) {
	if (parameters == null) var parameters = new Array();
	if (obj == null)	var obj = window;
	var parameterStrings = new Array();
	for (var i = 0; i < parameters.length; i++) {
		parameterStrings[i] = 'parameters[' + i + ']';
	}	 
	obj.__apply__ = this;
	var result = eval('obj.__apply__(' + parameterStrings.join(', ') + ')');
	delete(obj.__apply__);
	return result;
}
/*
 * @type Function
 * @return String
 */
String.prototype.trim = function() {
	if(arguments.length == 0) {
		return this.replace(/^\s*/,"").replace(/\s*$/,"");	
	}
	else if(arguments.length == 1) {
		self.eval("var _temp1 = /^(" + arguments[0] + ")*/");
		self.eval("var _temp2 = /(" + arguments[0] + ")*$/");
		return this.replace(_temp1,"").replace(_temp2,"");	
	}
}
/* 
 * @return String
 */
String.prototype.stripTags = function() {
	return this.replace(/\<(\/)?([_a-zA-Z][_a-zA-Z0-9]*)((\s*[_a-zA-Z][_a-zA-Z0-9]*((\s*\=\s*[\'\"][^\'\"]*[\'\"])|(\s*\=\s*[^\s\/\>]+))?)*)\s*(\/)?\>/gi,"");
}
String.prototype.wellFormed = function() {
	var todo = this;
	var myRe = /\<(\/)?([_a-zA-Z][_a-zA-Z0-9]*)((\s*[_a-zA-Z][_a-zA-Z0-9]*((\s*\=\s*[\'\"][^\'\"]*[\'\"])|(\s*\=\s*[^\s\/\>]+))?)*)\s*(\/)?\>/gi;
	var pos = 0;
	var result = "";
	var work = myRe.exec(todo);
	while(work != null) {
		result += todo.substring(pos,work.index);
		if(typeof(work[1]) == "undefined" || work[1] == "") {
			result += "<" + work[2].toLowerCase();
			var myRe2= /\s*([_a-zA-Z][_a-zA-Z0-9]*)((\s*\=\s*[\'\"]([^\'\"]*)[\'\"])|(\s*\=\s*([^\/\s\>]+)))?/gi;
			var work2 = myRe2.exec(work[3]);
			while(work2 != null) {
				if(ozNavigator.isMO1) {
					if(typeof(work2[4]) != "undefined") result += " " + work2[1] + "=\"" + work2[4] + "\""; 
					else if(typeof(work2[6]) != "undefined") result += " " + work2[1] + "=\"" + work2[6] + "\""; 
					else result += " " + work2[1] + "=\"" + work2[1] + "\""; 
				}
				else if(ozNavigator.isIE4) {
					if(work2[4] != "") result += " " + work2[1] + "=\"" + work2[4] + "\""; 
					else if(work2[6] != "") result += " " + work2[1] + "=\"" + work2[6] + "\""; 
					else result += " " + work2[1] + "=\"" + work2[1] + "\""; 
				}
				work2 = myRe2.exec(work[3]);
			}
			if(typeof(work[8]) != "undefined" && work[8] == "/") {
				result += "/";	
			}  
			result += ">";
		}
		else {
			result += "</" + work[2].toLowerCase();
			result += ">";
		}
		pos = (work.index + work[0].length);
		work = myRe.exec(todo);
	}
	if(work == null) {
		if(pos < todo.length) {
			result += todo.substring(pos,todo.length);
		}
	}
	return result;
}
ozNavigator = {};
ozNavigator._init = function() {
	ozNavigator.name = null;
	ozNavigator.version = null;
	ozNavigator.isIE4 = false;
	ozNavigator.isMO1 = false;
	var userAgent = self.navigator.userAgent.split(";");
	var re = /MSIE\s([\d\.]+)/gi;
	var result = re.exec(userAgent[1]);
	if((result != null)&&(result.length==2)) {
		ozNavigator.name = "MSIE";
		ozNavigator.version = parseFloat(result[1]);	
		if(ozNavigator.version >= 4) {
			ozNavigator.isIE4 = true;		
		}
	}
	else {
		re = /rv\:([\d\.\w]+)\)\sGecko/gi;
		result = re.exec(userAgent[4]);
		if((result != null)&&(result.length==2)) {
			ozNavigator.name = "Mozilla";
			ozNavigator.version = parseFloat(result[1]);	
			if(ozNavigator.version >= 1) {
				ozNavigator.isMO1 = true;		
			}
		}	
	} 
}
ozNavigator._init();
delete(ozNavigator._init);
/*
 * @constructor 
 **/
ozMap = function() {
	/*
	**/
	this.length = 0;	
	/*
	* 
	* @type Object 
	* @private
	**/
	this._data = new Object();
	/** 
	* 
	* @private
	**/
	this._list = new Array();
	/** 
	* @private
	**/
	this._cursor = null;
	/*
	 *
	 * @param
	 * @return Object 
	 **/
	this.get = function(key) {
		if(typeof(this._data[key]) != "undefined") {
			return this._data[key].value;
		}
	}
	/** 
	 * 
	 * 
	 * @type Function  
	 * @param key ÁöÁ¤ÇÏ·Á´Â key
	 * @param name ÁöÁ¤ÇÏ·Á´Â value
	 * @return Boolean 
	 **/
	this.set = function(key, value) {
		if(typeof(this._data[key])=="undefined") {
			var temp = new Object();
			temp.key = key;
			temp.value = value;
			temp._index = this._list.length;
			this._list.push(temp);
			this._data[key] = temp;
			this.length = this._list.length;
			return true;
		}
		else {
			this._data[key].value = value;			
			return true;
		}
	}
	/*
	 *
	 * @type Function  
	 * 
	 * @return Object 
	 **/
	this.del = function(key) {
		if(typeof(this._data[key]) != "undefined") {
			this._list.splice(this._data[key]._index, 1);
			this.length = this._list.length;
			delete(this._data[key]);	
			return true;
		}
		else {
			return false;			
		}
	}
	/**  
	 * 
	 * 
	 * 
	 * @type Function  
	 * @return String 
	 **/
	this.getString = function() {
		var result = "";
		var temp = this.next();
		while(temp) {
			result += temp.key + "=" + encodeURIComponent(temp.value);
			if(temp._index != (this._list.length-1)) result += "&";
			temp = this.next();
		}
		return result;
	}
	/**
	 * 
	 * 
	 * @type Function  
	 * @return Boolean 
	 **/
	this.reset = function() {
		this._cursor = null;		
	}
	/**
	 * 
	 * @type Function  
	 * @return Object 
	 **/
	this.next = function() {
		if(this._cursor == null) {
			if(this._list.length == 0) return null;
			else {
				this._cursor = 0;
				return this._list[0];
			}			
		}
		else if(this._cursor == (this.length-1)) {
			this._cursor = null;
			return null;			
		}
		else {
			this._cursor++;
			return this._list[this._cursor];
		}
	}
	/*
	 * @type Function  
	 * @return Object 
	 **/
	this.item = function(idx) {
		if(idx >= 0 && idx < this._list.length) {
			return this._list[idx];	
		}
		else return null;
	}
}
/** 
 * 
 **/
ozXML = function(param) {
	/**   **/
	this._source = null;
	/** @type Function @private **/
	this._onload = null;
	/**  
	* 
	* 
	* @type String @private
	**/
	this._documentURI = null;
	/** 
	* @
	* 
	**/
	this.doctype = function() {
		if(this._source == null || this._source.doctype == null) return null;	
		else return this.xmlContent(this._source.doctype);			
	}
	/** 
	* 
	* 
	* @type Function
	* 
	* 
	**/
	this.async = function(async) {
		if(arguments.length == 0) {
			if(this._source != null) return this._source.async;
		}
		else this._source.async = async;	
	}
	/** 
	* @t
	**/
	this.ready = function() {
		if(this._source != null && this._source.documentElement!= null) return true;
		else return false;		
	}
	/** 
	* 
	* 
	* @return Strin
	**/	
	this.error = function(xml) {
		if(xml == null) { 
			if(this._source == null ) {
				return "(reason : XML )";
			}
			else if(typeof(this._source.documentElement) == "undefined") {
				return "(reason : XML )";	
			}
			else if(this._source.documentElement == null) {
				return "(reason : XML )";	
			}
			else {
				var todo = this._source;
			}	
		}	
		else if(typeof(xml.nodeType) != "undefined" && xml.nodeType == 9) var todo = xml;	
		else return null;
		if(ozNavigator.isIE4) {
			if(todo != null && todo.parseError != null && todo.parseError.errorCode != 0) {
	 			var message = "(errorCode : " + todo.parseError.errorCode + ", reason : " + todo.parseError.reason + ")";
	 			return message;
		 	}
		 	else return null;
		}
		else if(ozNavigator.isMO1) {
	 		if(todo != null && todo.documentElement != null && todo.documentElement.nodeName == "parsererror") {
	 			var message = "(" + todo.documentElement.childNodes[0].nodeValue + ")";
	 			return message;
	 		}
	 		else return null;
		}
		else return ("(Áö¿øÇÏÁö ¾Ê´Â ºê¶ó¿ìÀúÀÔ´Ï´Ù.)");
	}
	/** 
	* 
	* @type Function @param node ³ëµå 
	* @return Object
	* 
	* 
	**/
	this.documentElement = function(node) {
		if(arguments.length == 0) {
			if(this._source != null && this._source.documentElement != null) return this._source.documentElement;	
			else return null;
		}
		else {
			if(typeof(node.nodeType) != "undefined" && node.nodeType == 1) {
				if(this.ownerDocument(node) != null) return this.ownerDocument(node).documentElement;
				else return null;
			}
			else return null;
		}
	}
	/**  @type Function
	* 
	**/	
	this.documentURI = function() { return this._documentURI; }
	/**  
	* 
	* 
	**/	
	this.nodeName = function() {
		if(arguments.length == 0) {
			if(this._source != null && typeof(this._source.nodeName) != "undefined") return this._source.nodeName;
			else return null;
		}
		else {
			if(typeof(arguments[0].nodeName) != "undefined") return arguments[0].nodeName;	
			else return null;
		}
	}
	/** 
	* 
	* 
	**/	
	this.nodeType = function() {
		if(arguments.length == 0) {
			if(this._source != null && typeof(this._source.nodeType) != "undefined") return this._source.nodeType;
			else return null;
		}
		else {
			if(typeof(arguments[0].nodeType) != "undefined") return arguments[0].nodeType;	
			else return null;
		}
	}
	/** ÀÎÀÚ°¡ ¾øÀ¸¸é XML ¹®¼­ °³Ã¼ÀÇ ³ëµå °ªÀ» µ¹·ÁÁØ´Ù. ³ëµå¸¦ ÀÎÀÚ·Î ÁöÁ¤ÇÏ¸é 
	* ±× ³ëµåÀÇ nodeValue ¼Ó¼ºÀ» µ¹·ÁÁØ´Ù. @type Function
	* @return String XML ¹®¼­ °³Ã¼³ª ÀÎÀÚÀÇ nodeValue ¼Ó¼º
	**/	
	this.nodeValue = function() {
		if(arguments.length == 0) {
			if(this._source != null && typeof(this._source.nodeValue) != "undefined") return this._source.nodeValue;
			else return null;
		}
		else {
			if(typeof(arguments[0].nodeValue) != "undefined") return arguments[0].nodeValue;	
			else return null;
		}
	}
	/** [IE Àü¿ë] XML ¹®¼­¸¦ ·ÎµùÇÏ¸é¼­ À¯È¿¼º °Ë»ç¸¦ ÇÒÁö ¿©ºÎ¸¦ ÁöÁ¤ÇÑ´Ù. ÀÎÀÚ°¡ ¾øÀ¸¸é 
	* ÇöÀç ¼³Á¤µÈ À¯È¿¼º °Ë»ç ¿©ºÎ¸¦ µ¹·ÁÁØ´Ù. @type Function
	* @return Boolean ÀÎÀÚ¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é À¯È¿¼º °Ë»ç ¿©ºÎ¸¦ 
	* µ¹·ÁÁØ´Ù. ÀÎÀÚ¸¦ »ç¿ëÇÏ°Å³ª ¿¡·¯ÀÎ °æ¿ì¿¡´Â ¸®ÅÏ°ªÀÌ ¾ø´Ù.
	**/	
	this.strictErrorChecking = function() {
		if(arguments.length == 0) {
			if(this._source != null && ozNavigator.isIE4) return this._source.validateOnParse;
		}
		else {
			if(this._source != null && ozNavigator.isIE4) this._source.validateOnParse = new Boolean(arguments[0]);
		}	
	}
	/** ÀÎÀÚ·Î ÁöÁ¤ÇÑ ¿ä¼Ò ³ëµåÀÇ ³ëµå ÀÌ¸§À» µ¹·ÁÁØ´Ù. ±× ¿Ü¿¡´Â nullÀ» µ¹·ÁÁØ´Ù.
	* @type Function @param node ¿ä¼Ò ³ëµå
	* @return String ¿ä¼Ò ³ëµåÀÇ ³ëµå ÀÌ¸§. ¿ä¼Ò ³ëµå°¡ ¾Æ´Ï¸é null.
	**/	
	this.tagName = function(node) {
		if(node == null) return null;
		if(typeof(node.nodeType) != "undefined" && node.nodeType == 1) return node.tagName;	
		else return null;
	}
	/** ÀÎÀÚ·Î ÁöÁ¤ÇÑ ³ëµåÀÇ ³»¿ëÀ» ¹®ÀÚ¿­·Î µ¹·ÁÁØ´Ù.
	* ÀÎÀÚ¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ÀüÃ¼ XML ¹®¼­ÀÇ ³»¿ëÀ» ¹®ÀÚ¿­·Î µ¹·ÁÁØ´Ù.
	* @type Function @param node ¿ä¼Ò ³ëµå
	* @return String ³ëµåÀÇ ³»¿ëÀ» ¹®ÀÚ¿­·Î µ¹·ÁÁØ´Ù.
	**/	
	this.textContent = function(node) {
		if(arguments.length == 0) {
			if(this._source != null && this._source.documentElement != null) {
				if(ozNavigator.isIE4) return this._source.documentElement.text;	
				else if(ozNavigator.isMO1) return this._source.documentElement.textContent;	
			}	
			return null;
		}
		else {
			if(typeof(node.nodeType) != "undefined") {
				if(node.nodeType == 9) {
					if(ozNavigator.isIE4) return this._source.documentElement.text;	
					else if(ozNavigator.isMO1) return this._source.documentElement.textContent;	
				}
				else {
					if(ozNavigator.isIE4) return node.text;	
					else if(ozNavigator.isMO1) return node.textContent;	
				}	
			}
			return null;			
		}
	}	
	/** ÀÎÀÚ·Î ÁöÁ¤ÇÑ ³ëµåÀÇ XML ÄÚµå·Î µ¹·ÁÁØ´Ù. ÀÎÀÚ¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é 
	* ÀüÃ¼ XML ¹®¼­ÀÇ XML ÄÚµå¸¦ µ¹·ÁÁØ´Ù. @type Function
	* @param node ¿ä¼Ò ³ëµå
	* @return String ³ëµåÀÇ ³»¿ëÀ» ¹®ÀÚ¿­·Î µ¹·ÁÁØ´Ù.
	**/	
	this.xmlContent = function(node) {
		if(arguments.length ==0) {
			if(this._source != null) {	
				if(ozNavigator.isIE4) return this._source.xml;
				else if(ozNavigator.isMO1) {
			 var serializer = new XMLSerializer();
					return serializer.serializeToString(this._source);
				}
			}	
		}
		else {
			if(this._source != null) {	
				if(ozNavigator.isIE4) return node.xml;
				else if(ozNavigator.isMO1) {
			 var serializer = new XMLSerializer();
					return serializer.serializeToString(node);
				}
			}	
		}
		return null;
	}
	/** XML ¹®¼­ÀÇ ÀÎÄÚµù ¹æ½ÄÀ» µ¹·ÁÁØ´Ù. ½ÇÁ¦ ÀÎÄÚµù ¹æ½ÄÀÌ ¾Æ´Ï¶ó xml ¹®¼­¿¡ 
	* ÁöÁ¤µÈ ÀÎÄÚµù ¹æ½ÄÀ» µ¹·ÁÁØ´Ù. @type Function
	* @return String XML ¹®¼­ÀÇ ÀÎÄÚµù ¹æ½Ä. 
	**/	
	this.xmlEncoding = function() {
		if(this.error() == null) {
			if(ozNavigator.isIE4) {
				for(var i=0;i<this._source.childNodes[0].attributes.length;i++) {
					if(this._source.childNodes[0].attributes[i].name == "encoding") {
						return this._source.childNodes[0].attributes[i].value.toUpperCase(); 	
					}	
				}
			}
			else if(ozNavigator.isMO1) {
				if(this._source.xmlEncoding != null) return this._source.xmlEncoding.toUpperCase();
				else if(this._source.inputEncondig != null) return this._source.inputEncoding.toUpperCase();	
			}
			return "UTF-8";
		}		
		else return null;
	}			
	/** XML ¹®¼­ÀÇ ¹öÀüÀ» µ¹·ÁÁØ´Ù. XML ¹®¼­¿¡ ¹öÀü¿¡ ¾ø´Â °æ¿ì¿¡ 1À» µ¹·ÁÁØ´Ù.
	* @type Function @return Number XML ¹®¼­ÀÇ ¹öÀü.
	**/	
	this.xmlVersion = function() {
		if(this.error() == null) {
			if(ozNavigator.isIE4) {
				for(var i=0;i<this._source.childNodes[0].attributes.length;i++) {
					if(this._source.childNodes[0].attributes[i].name == "version") {
						return this._source.childNodes[0].attributes[i].value; 	
					}	
				}
				return 1;
			}	
			else if(ozNavigator.isMO1) {
				if(typeof(this._source.xmlVersion) != "undefined") return this._source.xmlVersion;	
				else return 1;
			}	
		}
		else return null;	
	}
	/** ³ëµåÀÇ ÀÚ½Ä ³ëµå¸¦ µ¹·ÁÁØ´Ù. ÀÎÀÚ¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é, ÃÖ»óÀ§ ³ëµåÀÇ ÀÚ½Ä ³ëµå¸¦ 
	* µ¹·ÁÁØ´Ù(Á¶½É!!!). @type Function @param node ¿ä¼Ò ³ëµå
	* @return Array ÀÚ½Ä ³ëµå¸¦ Ç×¸ñÀ¸·Î ÇÏ´Â ¹è¿­
	**/	
	this.childNodes = function(node) {
		if(arguments.length == 0) {
			if(this.error() == null && this._source.documentElement != null) {
				var node = this._source.documentElement;
			}
			else return null;
		}	
		if(node.hasChildNodes()) {
			var result = new Array();
			var myRe = /^[\s](1,)$/gi;
			for(var i=0;i<node.childNodes.length;i++) {
				if(node.childNodes[i].nodeType == 3) {
					if(node.childNodes[i].nodeValue.replace(/\s/gi,"") != "") {
						result.push(node.childNodes[i]);
					}	
				}
				else {
					result.push(node.childNodes[i]);
				}
			}	
			return result;
		}
		else return null;			
	}
	/** ³ëµåÀÇ Ã¹¹øÂ° ÀÚ½ÄÀ» µ¹·ÁÁØ´Ù. ÀÎÀÚ¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ÃÖ»óÀ§ ³ëµåÀÇ Ã¹¹øÂ° ÀÚ½Ä ³ëµå¸¦
	* µ¹·ÁÁØ´Ù(Á¶½É!!!). @type Function @param node ³ëµå @return Object ³ëµå
	**/	
	this.firstChild = function(node) {
		if(arguments.length == 0) {
			if(this.error() == null && this._source.documentElement != null) {
				var node = this._source.documentElement;
			}
			else return null;
		}	
		var found = node.firstChild;
		if(found == null) return null;
		else {
			if(found.nodeType == 3) {
				if(found.nodeValue.replace(/\s/gi,"") == "") {
					return this.nextSibling(found);	
				}	
			}	
			return found;
		}
	}
	/** ³ëµåÀÇ ¸¶Áö¸· ÀÚ½ÄÀ» µ¹·ÁÁØ´Ù. ÀÎÀÚ¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ÃÖ»óÀ§ ³ëµåÀÇ ¸¶Áö¸· ÀÚ½Ä ³ëµå¸¦ 
	* µ¹·ÁÁØ´Ù(Á¶½É!!!). @type Function @param node ³ëµå
	* @return Object ³ëµå
	**/	
	this.lastChild = function() {
		if(arguments.length == 0) {
			if(this.error() == null && this._source.documentElement != null) {
				var node = this._source.documentElement;
			}
			else return null;
		}	
		var found = node.lastChild;
		if(found == null) return null;
		else {
			if(found.nodeType == 3) {
				if(found.nodeValue.replace(/\s/gi,"") == "") return this.previsousSibling(found);	
			}	
			return found;
		}
	}
	/** ³ëµåÀÇ ´ÙÀ½ ³ëµå¸¦ µ¹·ÁÁØ´Ù. @type Function @param node ³ëµå @return Object ³ëµå
	**/	
	this.nextSibling = function(node) {
		if(node == null) return null;
		var found = node.nextSibling;
		if(found == null) return null;
		if(found.nodeType == 3 && found.nodeValue.replace(/\s/gi,"") == "") {
			return this.nextSibling(found);
		}	
		return found;		
	}
	/** ³ëµåÀÇ ÀÌÀü ³ëµå¸¦ µ¹·ÁÁØ´Ù. @type Function @param node ³ëµå @return Object ³ëµå
	**/	
	this.previousSibling = function(node) {
		if(node == null) return null;
		var found = node.previousSibling;
		if(found == null) return null;
		if(found.nodeType == 3 && found.nodeValue.replace(/\s/gi,"") == "") {
			return this.previousSibling(found);
		}	
		return found;		
	}
	/** ³ëµå°¡ ÀÚ½Ä ³ëµå¸¦ °¡Áö°í ÀÖÀ¸¸é true¸¦, ¾Æ´Ï¸é false¸¦ µ¹·ÁÁØ´Ù. ÀÎÀÚ¸¦ 
	* ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é XML ¹®¼­ °³Ã¼ÀÇ ÃÖ»óÀ§ ³ëµå°¡ ÀÚ½Ä ³ëµå¸¦ °¡Áö°í ÀÖ´Â Áö¸¦ 
	* Å×½ºÆ®ÇÑ´Ù. @type Function @param node ³ëµå
	* @return Boolean ÀÚ½Ä ³ëµå¸¦ °¡Áö°í ÀÖÀ¸¸é true, ¾øÀ¸¸é false
	**/	
	this.hasChildNodes = function(node) {
		if(arguments.length == 0) {
			if(this.error() == null && this._source.documentElement != null) {
				var node = this._source.documentElement;
			}
			else return null;
		}
		if(node.hasChildNodes()) return true;
		else return false;
	}
	/** ³ëµåÀÇ XML ¹®¼­ °³Ã¼¸¦ µ¹·ÁÁØ´Ù. ÀÎÀÚ¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ozXML 
	* °³Ã¼ÀÇ ¿øº» XML ¹®¼­ °³Ã¼¸¦ µ¹·ÁÁØ´Ù. @type Function
	* @param node ³ëµå @return Object XML ¹®¼­ °³Ã¼
	**/	
	this.ownerDocument = function(node) {
		if(arguments.length == 0) {
			if(this.error() == null) return this._source;
			else return null;
		}		
		else return node.ownerDocument;	
	}
	/** ³ëµåÀÇ ºÎ¸ð ³ëµå¸¦ µ¹·ÁÁØ´Ù. ÃÖ»óÀ§ ³ëµåÀÎ °æ¿ì XML ¹®¼­ °³Ã¼¸¦ µ¹·ÁÁØ´Ù.
	* XML ¹®¼­ °³Ã¼ÀÇ °æ¿ì nullÀ» µ¹·ÁÁØ´Ù. @type Function
	* @param node ³ëµå @return Object ³ëµå
	**/	
	this.parentNode = function(node) {
		if(arguments.length == 0) return null;
		return node.parentNode;
	}
	/** parentNodeÀÇ ¸Ç ¸¶Áö¸· ÀÚ½Ä³ëµå·Î newNode¸¦ Ãß°¡ÇÑ´Ù. @type Function
	* @param newNode Ãß°¡ÇÏ·Á´Â ³ëµå @param parentNode newNode¸¦ Ãß°¡ÇÏ´Â ºÎ¸ð ³ëµå
	* @return Object Ãß°¡ÇÑ ³ëµå¸¦ µ¹·ÁÁØ´Ù.
	**/	
	this.appendChild = function(newNode, parentNode) {
		if(newNode == null || parentNode == null) return null;
		return parentNode.appendChild(newNode);
	}
	/** parentNode ¾Æ·¡ÀÇ removeNode¸¦ »èÁ¦ÇÑ´Ù. @type Function
	* @param removeNode »èÁ¦ÇÏ·Á´Â ³ëµå @param parentNode removeNodeÀÇ ºÎ¸ð ³ëµå
	* @return Object »èÁ¦ÇÑ ³ëµå¸¦ µ¹·ÁÁØ´Ù.
	**/	
	this.removeChild = function(removeNode, parentNode) {
		if(removeNode == null || parentNode == null) return null;
		return parentNode.removeChild(removeNode);
	}
	/** removeNode¸¦ Æ®¸®¿¡¼­ »èÁ¦ÇÑ´Ù. ºÎ¸ð ³ëµå°¡ ¾ø´Â °æ¿ì¿¡ »èÁ¦µÇÁö ¾Ê°í nullÀ» µ¹·ÁÁØ´Ù. 
	* @type Function @param removeNode »èÁ¦ÇÏ·Á´Â ³ëµå @return Object »èÁ¦ÇÑ ³ëµå¸¦ µ¹·ÁÁØ´Ù.
	**/	
	this.remove = function(removeNode) {
		if(removeNode == null || this.parentNode(removeNode) == null) return null;
		return removeNode.parentNode(removeNode);
	}
	/** newNode¸¦ posNode Àü¿¡ Ãß°¡ÇÑ´Ù. posNodeÀÇ ºÎ¸ð ³ëµå°¡
	* ¾ø´Â °æ¿ì¿¡´Â Ãß°¡¿¡ ½ÇÆÐÇÏ°í nullÀ» µ¹·ÁÁØ´Ù. 
	* @type Function @param newNode Ãß°¡ÇÏ·Á´Â ³ëµå
	* @param posNode Ãß°¡ÇÏ´Â À§Ä¡ÀÇ ³ëµå. ÀÌ ³ëµå Àü¿¡ Ãß°¡ÇÑ´Ù.
	* @return Object Ãß°¡ÇÑ ³ëµå¸¦ µ¹·ÁÁØ´Ù.
	**/	
	this.insertBefore = function(newNode, posNode) {
		if(newNode == null || posNode == null || this.parentNode(posNode) == null) return null;
		return this.parentNode(posNode).insertBefore(newNode);
	}
	/** newNode¸¦ posNode ´ÙÀ½¿¡ Ãß°¡ÇÑ´Ù. posNodeÀÇ ºÎ¸ð ³ëµå°¡ ¾ø´Â °æ¿ì¿¡´Â Ãß°¡¿¡ ½ÇÆÐÇÏ°í 
	* nullÀ» µ¹·ÁÁØ´Ù. 
	* @type Function @param newNode Ãß°¡ÇÏ·Á´Â ³ëµå 
	* @param posNode Ãß°¡ÇÏ´Â À§Ä¡ÀÇ ³ëµå. ÀÌ ³ëµå ´ÙÀ½¿¡ Ãß°¡ÇÑ´Ù.
	* @return Object Ãß°¡ÇÑ ³ëµå¸¦ µ¹·ÁÁØ´Ù.
	**/	
	this.insertAfter = function(newNode, posNode) {
		if(newNode == null || posNode == null || this.parentNode(posNode) == null) return null;
		if(this.nextSibling(posNode) == null) return this.appendChild(newNode, this.parentNode(posNode));
		else return this.parentNode(this.nextSibling(posNode)).insertBefore(newNode);
	}
	/** oldNode ³ëµå¸¦ newNode·Î ¹Ù²Û´Ù. oldNodeÀÇ ºÎ¸ð ³ëµå°¡ ¾øÀ¸¸é ¹Ù²ÙÁö ¸øÇÏ°í nullÀ» µ¹·ÁÁØ´Ù.
	* @type Function
	* @param newNode »õ ³ëµå @param oldNode ÀÌÀü ³ëµå @return Object oldNode
	**/	
	this.replaceChild = function(newNode, oldNode) {
		if(this.newNode == null || this.oldNode == null || this.parentNode(oldNode) == null) return null;
		return this.parentNode(oldNode).replaceChild(newNode, oldNode);
	}
	/** ÀÎÀÚ·Î ÁöÁ¤ÇÑ ³ëµå¸¦ º¹»çÇØ¼­ µ¹·ÁÁØ´Ù. option ÀÎÀÚ°¡ true¸é ÀÚ½Ä ³ëµåµµ º¹»çÇÏ°í, 
	* false¸é ÀÚ½Ä ³ëµå´Â º¹»çÇÏÁö ¾Ê´Â´Ù. ±âº»°ªÀº trueÀÌ´Ù. @type Function
	* @param node º¹»çÇÏ·Á´Â node @param option ÀÚ½Ä ³ëµå º¹»ç ¿©ºÎ. ±âº»°ªÀº trueÀÌ´Ù.
	* @return Object º¹»çµÈ ³ëµå
	**/	
	this.cloneNode = function(node, option) {
		if(node == null) return null;
		if(option == null) var option = true;
		else option = new Boolean(Option);
		return node.cloneNode(Option);	 
	}
	/** CDATASection °³Ã¼¸¦ »ý¼ºÇÏ¿© µ¹·ÁÁØ´Ù. @type Function
	* @param str CDATASectionÀÇ ³»¿ë @return Object »ý¼ºµÈ CDATASection °³Ã¼
	**/	
	this.createCDATASection = function(str) {
		if(this._source == null) return (this.createXMLDocument()).createCDATASection(str);
		else return this._source.createCDATASection(str);
	}
	/** DocumentFragment °³Ã¼¸¦ »ý¼ºÇÏ¿© µ¹·ÁÁØ´Ù. ³ëµå¸¦ Ç×¸ñÀ¸·Î ÇÏ´Â ¹è¿­À» ÁöÁ¤ÇÏ¸é 
	* °¢°¢ÀÇ ³ëµå¸¦ º¹»çÇÏ¿© ÀÚ½Ä ³ëµå·Î Ãß°¡ÇÑ ÈÄ¿¡ DocumentFragment °³Ã¼¸¦ µ¹·ÁÁØ´Ù.
	* @type Function
	* @param nodes	DocumentFragment °³Ã¼¿¡ Ãß°¡ÇÏ·Á´Â ³ëµå¸¦ Ç×¸ñÀ¸·Î Array. 
	* @return Object »ý¼ºµÈ DocumentFragment °³Ã¼
	**/	
	this.createDocumentFragment = function(nodes) {
		if(this._source == null) var result = (this.createXMLDocument()).createDocumentFragment();
		else var result = this._source.createDocumentFragment();
		if(nodes != null && typeof(nodes.length) != null) {
			for(var i=0;i<nodes.length;i++) {
				this.appendChild(this.cloneNode(nodes[i],true),result);
			}	
		}
		return result;
	}
	/** XML ¹®¼­ °³Ã¼¸¦ »ý¼ºÇÏ¿© µ¹·ÁÁØ´Ù.
	* ÀÎÀÚ¸¦ »ç¿ëÇÏ¸é ÀÎÀÚ¿¡ µû¶ó¼­ XML ¹®¼­ °³Ã¼¸¦ »ý¼ºÇÑ´Ù.<br/>
	* - xmlContent : XML ÄÚµå·Î XML ¹®¼­¸¦ »ý¼º<br/>
	* - documentURI : urlÀÇ XML ¹®¼­¸¦ ·ÎµùÇÔ. µ¿±â Åë½Å<br/>
	* - rootName : ÃÖ»óÀ§ ³ëµåÀÇ ÀÌ¸§<br/>
	* - root : ÃÖ»óÀ§ ³ëµå. appendChild ¸Þ½îµå·Î ¿ø·¡ À§Ä¡¿¡¼­ »èÁ¦µÈ´Ù´Â 
	* °ÍÀ» Á¶½É. »èÁ¦¸¦ ¹æÁöÇÏ·Á¸é cloneNode(true)·Î º¹»çÇØ¼­ »ý¼ºÇØ¾ßÇÔ.<br/>
	* - type : xsl·Î ÁöÁ¤ÇÏ¸é ÀÎÅÍ³Ý ÀÍ½ºÇÃ·Î·¯¿¡¼­ MSXML2.FreeThreadedDOMDocument.5.0
	* ÇüÅÂ·Î »ý¼ºÇÑ´Ù.
	* @type Function @param param °³Ã¼. 
	* @return Object »ý¼ºµÈ XML ¹®¼­ °³Ã¼
	**/	
	this.createXMLDocument = function(param) {
		if(ozNavigator.isIE4){
			if(param != null && typeof(param.type) != "undefined" && param.type == "xsl") {
				var newDoc = new ActiveXObject('MSXML2.FreeThreadedDOMDocument.5.0');
			}
			else if(param != null && typeof(param.documentURI) != "undefined" && (/\.xsl$/i).test(param.documentURI)) {
				var newDoc = new ActiveXObject('MSXML2.FreeThreadedDOMDocument.5.0');
			}
			else var newDoc = new ActiveXObject("Msxml2.DOMDocument.5.0");
		 if(param != null) {
			 if(typeof(param.xmlContent) != "undefined") newDoc.loadXML(param.xmlContent);
			 else if(typeof(param.documentURI) != "undefined") {
			 	newDoc.async = false;
			 	newDoc.load(param.documentURI);
			 }
			 else if(typeof(param.rootName) != "undefined") {
					var root = newDoc.createElement(param.rootName);
					newDoc.appendChild(root);
			 }
			 else if(typeof(param.root) != "undefined") newDoc.appendChild(param.root);			 	
			} 
	 	if(this.error(newDoc) != null) {
	 		alert("·Îµù Áß ¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù. " + this.error(newDoc));
	 		return null;
	 	}
		 return newDoc;
		} 
		else if(ozNavigator.isMO1) {
			var newDoc = self.document.implementation.createDocument("","",null);
		 if(param != null) {
			 if(typeof(param.xmlContent) != "undefined") {
			 	var parser = new DOMParser();
					newDoc = parser.parseFromString(param.xmlContent,"text/xml");
			 }
			 else if(typeof(param.documentURI) != "undefined") {
			 	newDoc.async = false;
			 	newDoc.load(param.documentURI);
			 }
			 else if(typeof(param.rootName) != "undefined") {
					var root = newDoc.createElement(param.rootName);
					newDoc.appendChild(root);					
			 }
			 else if(typeof(param.root) != "undefined") newDoc.appendChild(param.root);
			}
	 	if(this.error(newDoc) != null) {
	 		alert("·Îµù Áß ¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù. " + this.error(newDoc));
	 		return null;
	 	}
		 return newDoc;
		}
		else return null; 
	}
	/** XML ³ëµå °³Ã¼¸¦ »ý¼ºÇÏ¿© µ¹·ÁÁÜ. ³×ÀÓ½ºÆäÀÌ½ºprefix:¿ä¼Òlocal ÀÌ¸§°ú °°Àº 
	* Çü½ÄÀ¸·Î ÁöÁ¤ÇØµµ µÈ´Ù.
	* @param nodeName ³ëµåÀÇ ÀÌ¸§ @type Function 
	* @return Object »ý¼ºµÈ XML ³ëµå¸¦ µ¹·ÁÁØ´Ù. 
	**/
	this.createElementFromString = function(xmlContent) {
		if(xmlContent == null) return null;
		var temp = this.createXMLDocument({xmlContent : xmlContent});
		if(this.error(temp) == null) return temp.documentElement.cloneNode(true);
		else return null;
	}
	/** XML ³ëµå °³Ã¼¸¦ »ý¼ºÇÏ¿© µ¹·ÁÁÜ. 
	* @param nodeName ³ëµåÀÇ ÀÌ¸§. ³×ÀÓ ½ºÆäÀÌ½º¸¦ »ç¿ëÇÏ´Â °æ¿ì, ³ëµå locaNameÀÌ 
	* ¾Æ´Ï¶ó ³×ÀÓ½ºÆäÀÌ½º prefix±îÁö Æ÷ÇÔÇÏ´Â ÀüÃ¼ ÀÌ¸§À» ÁöÁ¤ÇØ¾ß ÇÑ´Ù. 
	* @param nsMap ³×ÀÓ½ºÆäÀÌ½º prefix¿Í ³×ÀÓ½ºÆäÀÌ½º urlÀÌ ÀúÀåµÈ Map °³Ã¼.
	* @type Function @return Object »ý¼ºµÈ XML ³ëµå¸¦ µ¹·ÁÁØ´Ù. 
	**/
	this.createElement = function(nodeName, nsMap) {
		if(this._source != null) var source = this._source;
		else var source = this.createXMLDocument();
		if(nodeName.indexOf(":") == -1) return source.createElement(nodeName);	
		else {
			if(nsMap == null && this._source != null) var nsMap = this.createNSMap();
			if(nsMap == null) return null;
			var temp = nodeName.split(":");
			if(temp == null || temp.length != 2) return null;
			if(ozNavigator.isIE4) return source.createElement(nodeName);	
			else if(ozNavigator.isMO1) {
				var nsUrl = this.lookupNamespaceURI(temp[0],nsMap);
				if(nsUrl == null) return null;
				return this.createElementNS(nsUrl, nodeName);
			}	
		}
	}
	/** XML ³ëµå °³Ã¼¸¦ »ý¼ºÇÏ¿© µ¹·ÁÁÜ. µÎ¹øÂ° ÀÎÀÚ·Î ÁöÁ¤ÇÏ´Â ³ëµå ÀÌ¸§Àº
	* ³×ÀÓ ½ºÆäÀÌ½º prefix±îÁö Æ÷ÇÔÇÏ´Â ÀüÃ¼ ³ëµå ÀÌ¸§ÀÌ¶ó´Â °ÍÀ» Á¶½ÉÇÏÀÚ!
	* @param nsUrl ³ëµåÀÇ ³×ÀÓ ½ºÆäÀÌ½º URL.
	* @param nodeName ³ëµåÀÇ ÀÌ¸§. ³×ÀÓ ½ºÆäÀÌ½º¸¦ »ç¿ëÇÏ´Â °æ¿ì, ³ëµå locaNameÀÌ 
	* ¾Æ´Ï¶ó ³×ÀÓ½ºÆäÀÌ½º prefix±îÁö Æ÷ÇÔÇÏ´Â ÀüÃ¼ ÀÌ¸§À» ÁöÁ¤ÇØ¾ß ÇÑ´Ù. 
	* @type Function @return Object »ý¼ºµÈ XML ³ëµå¸¦ µ¹·ÁÁØ´Ù. 
	**/
	this.createElementNS = function(nsUrl, nodeName) {
		if(nsUrl == null) return null;
		if(nodeName == null) return null;
		if(this._source != null) var source = this._source;
		else var source = this.createXMLDocument();
		if(ozNavigator.isIE4) return source.createElement(nodeName);
		else if(ozNavigator.isMO1) return source.createElementNS(nsUrl, nodeName);
		else return null;
	}
	/** ÅØ½ºÆ® ³ëµå¸¦ »ý¼ºÇÏ¿© µ¹·ÁÁØ´Ù.
	* @param str ÅØ½ºÆ® ³ëµåÀÇ ³»¿ëÀÌ µÉ ¹®ÀÚ¿­. @type Function 
	* @return Object »ý¼ºµÈ XML ÅØ½ºÆ® ³ëµå¸¦ µ¹·ÁÁØ´Ù. 
	**/
	this.createTextNode = function(str) {
		if(this._source != null) return this._source.createTextNode(str);
			return (this.createXMLDocument()).createTextNode(str);
	}
	/** ¼Ó¼º °³Ã¼¸¦ »ý¼ºÇÏ¿© µ¹·ÁÁØ´Ù.
	* @param attrName ¼Ó¼ºÀÇ ÀÌ¸§. ³×ÀÓ ½ºÆäÀÌ½º¸¦ »ç¿ëÇÏ´Â °æ¿ì,
	* ³×ÀÓ½ºÆäÀÌ½º prefix:localName°ú °°Àº Çü½ÄÀ» »ç¿ëÇØµµ µÈ´Ù.
	* @param attrValue ¼Ó¼ºÀÇ °ª. 
	* @param nsMap ³×ÀÓ ½ºÆäÀÌ½º ¸Ê. 
	* ³×ÀÓ½ºÆäÀÌ½º¸¦ »ç¿ëÇÏ´Â °æ¿ì, XML ¹®¼­ °³Ã¼¿¡ ÃÖ»óÀ§
	* ³ëµå¿¡ ³×ÀÓ ½ºÆäÀÌ½º ÁöÁ¤ÀÌ ¾ø´Â °æ¿ì¿¡´Â nsMapÀ¸·Î
	* ³×ÀÓ½ºÆäÀÌ½º ¸ÊÀ» ÁöÁ¤ÇØ¾ß ÇÑ´Ù.
	* @type Function @return Object »ý¼ºµÈ XML ¼Ó¼º ³ëµå¸¦ µ¹·ÁÁØ´Ù. 
	**/
	this.createAttribute = function(attrName, attrValue, nsMap) {
		if(attrName == null) return null;
		if(this._source != null) var source = this._source;
		else var source = this.createXMLDocument();
		if(attrName.indexOf(":") == -1) {
			var attr = source.createAttribute(attrName);	
			if(attrValue != null) attr.value = attrValue;
			return attr;
		}	
		else {
			if(nsMap == null && this._source != null) var nsMap = this.createNSMap();
			if(nsMap == null) return null;
			var temp = attrName.split(":");
			if(temp == null || temp.length != 2) return null;
			if(ozNavigator.isIE4) {
				var attr = source.createAttribute(attrName);	
				if(attrValue != null) attr.value = attrValue;
				return attr;
			}
			else if(ozNavigator.isMO1) {
				var nsUrl = this.lookupNamespaceURI(temp[0],nsMap);
				if(nsUrl == null) return null;
				return this.createAttributeNS(nsUrl, attrName, attrValue);
			}	
		}
	}
	/** ¼Ó¼º °³Ã¼¸¦ »ý¼ºÇÏ¿© µ¹·ÁÁØ´Ù.
	* @param nsUrl ³×ÀÓ ½ºÆäÀÌ½º url. @param attrName ¼Ó¼ºÀÇ ÀÌ¸§. 
	* ³×ÀÓ½ºÆäÀÌ½º prefix:localName°ú °°Àº Çü½ÄÀ¸·Î ÁöÁ¤ÇØ¾ß ÇÑ´Ù.
	* @param attrValue ¼Ó¼ºÀÇ °ª. 
	* @type Function @return Object »ý¼ºµÈ XML ¼Ó¼º ³ëµå¸¦ µ¹·ÁÁØ´Ù. 
	**/
	this.createAttributeNS = function(nsUrl, attrName, attrValue) {
		if(nsUrl == null) return null;
		if(attrName == null) return null;
		if(this._source != null) var source = this._source;
		else var source = this.createXMLDocument();
		if(ozNavigator.isIE4) {
			var attr = source.createAttribute(attrName);
			if(attrValue != null) attr.value = attrValue;
			return attr;
		}
		else if(ozNavigator.isMO1) {
			var attr = source.createAttributeNS(nsUrl, attrName);
			if(attrValue != null) attr.value = attrValue;
			return attr;
		}
		else return null;
	}
	/** ³ëµåÀÇ ¼Ó¼ºµéÀ» Map °³Ã¼·Î µ¹·ÁÁØ´Ù. @param node XML ¿ä¼Ò ³ëµå. @type Function 
	* @return Object MAP °³Ã¼. 
	**/
	this.attributes = function(node) {
		if(node == null || typeof(node.nodeType) == "undefined" || node.nodeType != 1) return null;
		var attrMap = new ozMap();
		for(var i=0;i<node.attributes.length;i++) {
			attrMap.set(node.attributes[i].name,node.attributes[i].value); 	
		}
		return attrMap;
	}
	/** node ³ëµå°¡ attrName ¼Ó¼ºÀ» °¡Áø °æ¿ì¿¡ true¸¦ ¾Æ´Ï¸é false¸¦ µ¹·ÁÁØ´Ù.
	* @param node XML ¿ä¼Ò ³ëµå. @param attrName ³ëµåÀÇ ÀÌ¸§.
	* @type Function @return Boolean ¼Ó¼ºÀ» °®°í ÀÖ´Â °æ¿ì¿¡ true, ¾Æ´Ï¸é false¸¦ µ¹·ÁÁØ´Ù. 
	**/
	this.hasAttribute = function(node, attrName) {
		if(node == null || attrName == null || typeof(node.nodeType) == "undefined" || node.nodeType != 1) return null;
		if(ozNavigator.isIE4) {
			if(node.getAttribute(attrName) != null) return true;
			else return false;
		}	
		else if(ozNavigator.isMO1) return node.hasAttribute(attrName);
		else return null;
	}
	/** node ³ëµå°¡ ³×ÀÓ½ºÆäÀÌ½º URLÀÌ nsUrlÀÌ°í localNameÀÌ localNameÀÎ ¼Ó¼ºÀ»
	* °¡Áö°í ÀÖÀ¸¸é true¸¦ ¾Æ´Ï¸é false¸¦ µ¹·ÁÁØ´Ù.
	* ³×ÀÓ½ºÆäÀÌ½º¸¦ »ç¿ëÇÏÁö ¾ÊÀº ¼Ó¼ºÀÇ °æ¿ì false¸¦ µ¹·ÁÁØ´Ù.
	* @param node XML ¿ä¼Ò ³ëµå. @param nsUrl ¼Ó¼ºÀÇ ³×ÀÓ½ºÆäÀÌ½º url
	* @param localName ¼Ó¼ºÀÇ ÀÌ¸§¿¡¼­ ³×ÀÓ½ºÆäÀÌ½º prefix ºÎºÐÀ» Á¦¿ÜÇÑ ÀÌ¸§
	* @type Function 
	* @return Boolean ¼Ó¼ºÀ» °®°í ÀÖ´Â °æ¿ì¿¡ true, ¾Æ´Ï¸é false¸¦ µ¹·ÁÁØ´Ù. 
	**/
	this.hasAttributeNS = function(node, nsUrl, localName) {
		if(node == null || typeof(node.nodeType) == "undefined" || node.nodeType != 1 || nsUrl == null || localName == null) return null;
		if(ozNavigator.isMO1) return node.hasAttributeNS(nsUrl, localName);
		else if(ozNavigator.isIE4) {
			var prefix = 	this.lookupPrefix(nsUrl, node);
			if(prefix == null || prefix == "default") return false;
			else {
				return this.hasAttribute(node, prefix + ":" + localName);
			}	
		}
	}
	/** node ³ëµå°¡ ¼Ó¼ºÀ» °¡Áö°í ÀÖÀ¸¸é true¸¦ ¾Æ´Ï¸é false¸¦ µ¹·ÁÁØ´Ù.
	* @param node XML ¿ä¼Ò ³ëµå. @type Function 
	* @return Boolean ¼Ó¼ºÀ» °®°í ÀÖ´Â °æ¿ì¿¡ true, ¾Æ´Ï¸é false¸¦ µ¹·ÁÁØ´Ù. 
	**/
	this.hasAttributes = function(node) {
		if(node == null || typeof(node.nodeType) == "undefined" || node.nodeType != 1) return null;
		if(ozNavigator.isIE4) {
			if(node.attributes.length > 0) return true;
			else return false;
		}	
		else if(ozNavigator.isMO1) return node.hasAttributes();
		else return null;
	}
	/** node ³ëµå¿¡¼­ attrName ¼Ó¼ºÀÇ °ªÀ» µ¹·ÁÁØ´Ù. @param node XML ¿ä¼Ò ³ëµå.
	* @param attrName ¼Ó¼ºÀÇ ÀÌ¸§. @type Function 
	* @return String ¼Ó¼ºÀÇ °ªÀ» ¹®ÀÚ¿­·Î µ¹·ÁÁØ´Ù.
	**/
	this.getAttribute = function(node, attrName) {
		if(node == null || typeof(node.nodeType) == "undefined" || node.nodeType != 1 || attrName == null) return null;
		return node.getAttribute(attrName);
	}
	/** node ³ëµå¿¡¼­ ³×ÀÓ½ºÆäÀÌ½º urlÀÌ nsUrlÀÎ localName ¼Ó¼ºÀÇ °ªÀ» µ¹·ÁÁØ´Ù.
	* @param node XML ¿ä¼Ò ³ëµå. @param nsUrl ³×ÀÓ½ºÆäÀÌ½º URL.
	* @param localName ¼Ó¼ºÀÇ ÀÌ¸§¿¡ ³×ÀÓ½ºÆäÀÌ½º prefix¸¦ Á¦¿ÜÇÑ ºÎºÐ.
	* @type Function @return String ¼Ó¼ºÀÇ °ªÀ» ¹®ÀÚ¿­·Î µ¹·ÁÁØ´Ù.
	**/
	this.getAttributeNS = function(node, nsUrl, localName) {
		if(node == null || typeof(node.nodeType) == "undefined" || node.nodeType != 1 || localName == null) return null;
		if(ozNavigator.isMO1) {
			var result = this.getAttributeNodeNS(node, nsUrl, localName);
			if(result == null) return null;
			else return result.value;
		}
		else if(ozNavigator.isIE4) {
			var prefix = this.lookupPrefix(nsUrl, node);
			if(prefix == null || prefix == "default") return null;
			else return this.getAttribute(node, prefix + ":" + localName);
		}
	}
	/** node ³ëµå¿¡¼­ attrName ¼Ó¼º °³Ã¼¸¦ µ¹·ÁÁØ´Ù.
	* @param node XML ¿ä¼Ò ³ëµå. @param attrName ¼Ó¼ºÀÇ ÀÌ¸§.
	* @type Function @return Object ¼Ó¼º °³Ã¼.
	**/
	this.getAttributeNode = function(node, attrName) {
		if(node == null || typeof(node.nodeType) == "undefined" || node.nodeType != 1 || attrName == null) return null;
		return node.getAttributeNode(attrName);
	}
	/** node ³ëµå¿¡¼­ ³×ÀÓ½ºÆäÀÌ½º urlÀÌ nsUrlÀÎ localName ¼Ó¼º °³Ã¼¸¦ µ¹·ÁÁØ´Ù.
	* @param node XML ¿ä¼Ò ³ëµå. @param nsUrl ³×ÀÓ½ºÆäÀÌ½º URL.
	* @param localName ¼Ó¼ºÀÇ ÀÌ¸§¿¡ ³×ÀÓ½ºÆäÀÌ½º prefix¸¦ Á¦¿ÜÇÑ ºÎºÐ.
	* @type Function @return Object ¼Ó¼º °³Ã¼.
	**/
	this.getAttributeNodeNS = function(node, nsUrl, localName) {
		if(node == null || typeof(node.nodeType) == "undefined" || node.nodeType != 1 || localName == null) return null;
		if(ozNavigator.isMO1) {
			return node.getAttributeNodeNS(nsUrl, localName);
		}
		else if(ozNavigator.isIE4) {
			var prefix = this.lookupPrefix(nsUrl, node);
			if(prefix == null || prefix == "default") return null;
			else return this.getAttributeNode(node, prefix + ":" + localName);
		}
	}
	/** node ³ëµå¿¡¼­ attrName ¼Ó¼ºÀÇ °ªÀ» attrValue·Î ÁöÁ¤ÇÑ´Ù.
	* @param node XML ¿ä¼Ò ³ëµå. @param attrName ³×ÀÓ½ºÆäÀÌ½º URL.
	* @param attrValue ¼Ó¼ºÀÇ ÀÌ¸§¿¡ ³×ÀÓ½ºÆäÀÌ½º prefix¸¦ Á¦¿ÜÇÑ ºÎºÐ.
	* @return Boolean ¼º°øÇÏ¸é true¸¦ ½ÇÆÐÇÏ¸é false¸¦ µ¹·ÁÁØ´Ù. 
	* @type Function
	**/
	this.setAttribute = function(node, attrName, attrValue) {
		if(node == null || typeof(node.nodeType) == "undefined" || node.nodeType != 1 || attrName == null || attrValue == null) return false;
		var todo = this.getAttributeNode(node, attrName);
		if(todo == null) return false;
		else {
			todo.value = attrValue;
			return true;
		}	
	}
	/** node ³ëµå¿¡¼­ ³×ÀÓ½ºÆäÀÌ½º urlÀÌ nsURLÀÌ°í, localNameÀÌ localNameÀÎ ¼Ó¼ºÀÇ 
	* °ªÀ» attrValue·Î ÁöÁ¤ÇÑ´Ù. @param node XML ¿ä¼Ò ³ëµå. @param attrName ³×ÀÓ½ºÆäÀÌ½º URL.
	* @param attrValue ¼Ó¼ºÀÇ ÀÌ¸§¿¡ ³×ÀÓ½ºÆäÀÌ½º prefix¸¦ Á¦¿ÜÇÑ ºÎºÐ.
	* @return Boolean ¼º°øÇÏ¸é true¸¦ ½ÇÆÐÇÏ¸é false¸¦ µ¹·ÁÁØ´Ù. 
	* @type Function
	**/
	this.setAttributeNS = function(node, nsUrl, localName, attrValue) {
		if(node == null || typeof(node.nodeType) == "undefined" || node.nodeType != 1 || localName == null || nsUrl == null || attrValue == null) return false;
		var todo = this.getAttributeNodeNS(node, nsUrl, localName);
		if(todo == null) return false;
		else {
			todo.value = attrValue;
			return true;
		}	
	}
	/** node ³ëµå¿¡ attrNode ¼Ó¼º °³Ã¼¸¦ ÁöÁ¤ÇÑ´Ù.
	* ±âÁ¸ ¼Ó¼ºÀÌ ÀÖÀ¸¸é ¼Ó¼ºÀÇ °ªÀÌ º¯°æµÇ¾î ¾øÀ¸¸é Ãß°¡µÈ´Ù. 
	* @param node XML ¿ä¼Ò ³ëµå.
	* @param attrNode ¼Ó¼º °³Ã¼
	* @return Boolean ¼º°øÇÏ¸é true¸¦ ½ÇÆÐÇÏ¸é false¸¦ µ¹·ÁÁØ´Ù. 
	* @type Function
	**/
	this.setAttributeNode = function(node, attrNode) {
		if(node == null || typeof(node.nodeType) == "undefined" || node.nodeType != 1 || attrNode == null || typeof(attrNode.nodeType) == "undefined" || attrNode.nodeType != 2) return false;
		try { node.setAttributeNode(attrNode); }
		catch(error) { return false; }	
		return true;
	}
	/** node ³ëµå¿¡ attrNoame ¼Ó¼º °³Ã¼¸¦ »èÁ¦ÇÑ´Ù. ¼º°øÇÏ¸é true¸¦ ½ÇÆÐÇÏ¸é false¸¦ µ¹·ÁÁØ´Ù.
	* @param node XML ¿ä¼Ò ³ëµå. @param attrName »èÁ¦ÇÏ·Á´Â ¼Ó¼º °³Ã¼ÀÇ ÀÌ¸§
	* @return Boolean ¼º°øÇÏ¸é true¸¦ ½ÇÆÐÇÏ¸é false¸¦ µ¹·ÁÁØ´Ù. @type Function
	**/
	this.removeAttribute = function(node, attrName) {
		if(node == null || typeof(node.nodeType) == "undefined" || node.nodeType != 1 || attrName == null) return false;
		var todo = this.getAttributeNode(node, attrName);
		if(todo == null) return false;
		else return this.removeAttributeNode(node,todo);	
	}
	/** node ³ëµå¿¡ attrNode ¼Ó¼º °³Ã¼¸¦ »èÁ¦ÇÑ´Ù. ¼º°øÇÏ¸é true¸¦ ½ÇÆÐÇÏ¸é false¸¦ µ¹·ÁÁØ´Ù.
	* @param node XML ¿ä¼Ò ³ëµå. @param attrNode »èÁ¦ÇÏ·Á´Â ¼Ó¼º °³Ã¼
	* @return Boolean ¼º°øÇÏ¸é true¸¦ ½ÇÆÐÇÏ¸é false¸¦ µ¹·ÁÁØ´Ù. @type Function
	**/
	this.removeAttributeNode = function(node, attrNode) {
		if(node == null || typeof(node.nodeType) == "undefined" || node.nodeType != 1 || attrNode == null || typeof(attrNode.nodeType) == "undefined" || attrNode.nodeType !=2 ) return false;
		if(this.hasAttribute(node, attrNode.name) == false) return false;
		else {
			try { node.removeAttributeNode(attrNode); }
			catch(error) { return false; }	
			return true;
		}
	}
	/** node ³ëµå¿¡¼­ ³×ÀÓ½ºÆäÀÌ½º urlÀÌ nsUrlÀÌ°í localNameÀÌ localNameÀÎ ¼Ó¼ºÀ» »èÁ¦ÇÑ´Ù.
	* @param node XML ¿ä¼Ò ³ëµå. @param nsUrl ³×ÀÓ½ºÆäÀÌ½º url
	* @param localName ¼Ó¼ºÀÇ ÀÌ¸§¿¡¼­ ³×ÀÓ½ºÆäÀÌ½º prefix ºÎºÐÀ» »èÁ¦ÇÑ °Í.
	* @return Boolean ¼º°øÇÏ¸é true¸¦ ½ÇÆÐÇÏ¸é false¸¦ µ¹·ÁÁØ´Ù. @type Function
	**/
	this.removeAttributeNS = function(node, nsUrl, localName) {
		if(node == null || typeof(node.nodeType) == "undefined" || node.nodeType != 1 || nsUrl == null || localName == null) return false;
		var todo = this.getAttributeNodeNS(node, nsUrl, localName);
		if(todo == null) return false;
		else return this.removeAttributeNode(node,todo);	
	}
	/** XML ¹®¼­ °³Ã¼³ª ÀÎÀÚ·Î ÁöÁ¤ÇÑ node¿¡¼­ Æ¯Á¤ÇÑ ÀÌ¸§À»
	* °®´Â ¿ä¼Ò ³ëµå¸¦ ¸ðµÎ Ã£¾Æ¼­ µ¹·ÁÁØ´Ù.
	* @param tagName ³ëµåÀÇ ÀÌ¸§. prefix:localName ÇüÅÂ·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.
	* @param node °Ë»öÇÏ°íÀÚ ÇÏ´Â node. 
	* @param nsMap ³×ÀÓ½ºÆäÀÌ½º Map °³Ã¼. ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é node³ª ÀüÃ¼ XML 
	* ¹®¼­ °³Ã¼·Î ³×ÀÓ½ºÆäÀÌ½º ¸ÊÀ» ¸¸µç´Ù. ³ëµåÀÇ Áß°£¿¡ ³×ÀÓ½ºÆäÀÌ½º¸¦ ÁöÁ¤ÇÑ
	* °æ¿ì µû·Î ÁöÁ¤ÇØ¾ßÇÑ´Ù. ³×ÀÓ½ºÆäÀÌ½º°¡ ¾øÀ¸¸é nullÀ» µ¹·ÁÁØ´Ù.
	* @type Function @return Array Ã£Àº ¿ä¼Ò ³ëµå¸¦ Ç×¸ñÀ¸·Î ÇÏ´Â ¹è¿­. 
	**/
	this.getElementsByTagName = function(tagName, node, nsMap) {
		if(arguments.length == 0) return null;
		else if(arguments.length == 1) {
			if(this._source == null || this._source.documentElement == null) return null;
			var node = this._source.documentElement;
			var nsMap = this.createNSMap(node);	
		}
		else if(arguments.length == 2) {
			if(typeof(arguments[1].nodeType) != "undefined") {
				if(node.nodeType == 9) var node = node.documentElement;
				if(node == null) return null;
				var nsMap = this.createNSMap(node);
			}
			else {
				var nsMap = arguments[1];
				if(this._source == null || this._source.documentElement == null) return null;
				var node = this._source.documentElement;
			} 	
		}
		if(ozNavigator.isIE4) {
			if(tagName.indexOf(":") == -1) {
				if(typeof(nsMap.get("default")) == "undefined" || (nsMap.length == 0) || (nsMap.length == 1 && typeof(nsMap.get("default")) != "undefined")) {
					return node.getElementsByTagName(tagName);	
				}
				else return this.getElementsByTagNameNS(nsMap.get("default"), tagName, node);
			}
			else {
				var splited = tagName.split(":");
				if(splited.length == 2) {
					return this.getElementsByTagNameNS(nsMap.get(splited[0]), splited[1], node, nsMap);
				}
				else return null;	
			}			
		}
		else if(ozNavigator.isMO1) {
			if(tagName.indexOf(":") == -1) {
				if(nsMap.length == 0) return node.getElementsByTagName(tagName);
				else {
					var temp = node.getElementsByTagName(tagName);
					var result = new Array();
					for(var i=0;i<temp.length;i++) {
						if(this.prefix(temp[i]) == null) result.push(temp[i]);	
					}
					return result;
				}
			}
			else {
				var splited = tagName.split(":");
				if(splited.length == 2) return this.getElementsByTagNameNS(nsMap.get(splited[0]), splited[1], node, nsMap);
				else return null;	
			}			
		}
	}
	/** XML ¹®¼­ °³Ã¼³ª ÀÎÀÚ·Î ÁöÁ¤ÇÑ node¿¡¼­ ÀÎÀÚ·Î ÁöÁ¤ÇÑ
	* namespaceURI¿Í localNameÀ» °¡Áö´Â ¿ä¼Ò ³ëµå¸¦ ¸ðµÎ Ã£¾Æ¼­ µ¹·ÁÁØ´Ù.
	* @param uri Ã£°íÀÚ ÇÏ´Â ³ëµåÀÇ namespaceURI
	* @param node °Ë»öÇÏ°íÀÚ ÇÏ´Â node. 
	* @param nsMap ³×ÀÓ½ºÆäÀÌ½º Map °³Ã¼. ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é node³ª ÀüÃ¼ XML 
	* ¹®¼­ °³Ã¼·Î ³×ÀÓ½ºÆäÀÌ½º ¸ÊÀ» ¸¸µç´Ù. ³ëµåÀÇ Áß°£¿¡ ³×ÀÓ½ºÆäÀÌ½º¸¦ ÁöÁ¤ÇÑ
	* °æ¿ì µû·Î ÁöÁ¤ÇØ¾ßÇÑ´Ù. ³×ÀÓ½ºÆäÀÌ½º°¡ ¾øÀ¸¸é nullÀ» µ¹·ÁÁØ´Ù.
	* @type Function @return Array Ã£Àº ¿ä¼Ò ³ëµå¸¦ Ç×¸ñÀ¸·Î ÇÏ´Â ¹è¿­. 
	**/
	this.getElementsByTagNameNS = function(uri,localName, node, nsMap) {
		if(uri == null) return null;
		else if(localName == null) return null;
		else if(node == null) {
			if(this._source == null || this._source.documentElement == null) return null;
			var node = this._source.documentElement;
			var nsMap = this.createNSMap(node);
		}
		else if(nsMap == null) {
			if(typeof(node.nodeType) != "undefined") var nsMap = this.createNSMap(node); 
			else if(typeof(node.length) != "undefined") {
				if(this._source == null || this._source.documentElement == null) return null;
				var nsMap = node;
				var node = this._source.documentElement;
			}
		}
		if(nsMap == null) return null;
		if(ozNavigator.isIE4) {
			if(node.ownerDocument == null) return null;
			var prefix = this.lookupPrefix(uri, nsMap);
			if(prefix == null) return null;
			node.ownerDocument.setProperty("SelectionNamespaces","xmlns:" + prefix + "=\"" + uri + "\"");
			return node.selectNodes("descendant::" + prefix + ":" + localName);
		}
		else if(ozNavigator.isMO1) {
			var prefix = this.lookupPrefix(uri, nsMap);
			if(prefix == null) return null;
			return node.getElementsByTagNameNS(uri, localName);	
		}
		else return null;
	}
	/** ³ëµå ÀÌ¸§¿¡¼­ ³×ÀÓ ½ºÆäÀÌ½º¸¦ Á¦¿ÜÇÑ ºÎºÐÀ» µ¹·ÁÁØ´Ù.
	* @param node XML ¿ä¼Ò ³ëµå È¤Àº ¼Ó¼º ³ëµå
	* @type Function @return String ³×ÀÓ ½ºÆäÀÌ½º¸¦ Á¦¿ÜÇÑ ³ëµå ÀÌ¸§.
	**/
	this.localName = function(node) {
		if(node == null) return null;
		if(node.nodeType == 1 || node.nodeType == 2) {		
			if(ozNavigator.isIE4) {
				if(node.nodeName.indexOf(":") != -1) {
					var temp = node.nodeName.split(":");
					if(temp.length == 2) return temp[1];	
				}
				else return node.nodeName;	
			}
			else if(ozNavigator.isMO1) return node.localName;				
		}	
		return null;
	}
	/** ³ëµå ÀÌ¸§¿¡¼­ ³×ÀÓ ½ºÆäÀÌ½º prefix ºÎºÐÀ» µ¹·ÁÁØ´Ù. 
	* ³×ÀÓ ½ºÆäÀÌ½º prefix°¡ ¾ø´Â ³ëµå ÀÌ¸§ÀÇ °æ¿ì nullÀ» µ¹·ÁÁØ´Ù.
	* @param node XML ¿ä¼Ò ³ëµå È¤Àº ¼Ó¼º ³ëµå @type Function 
	* @return String ³×ÀÓ ½ºÆäÀÌ½º prefix ºÎºÐ. 
	**/
	this.prefix = function(node) {
		if(node == null) return null;
		if(node.nodeType == 1 || node.nodeType == 2) {		
			if(ozNavigator.isIE4) {
				if(node.prefix != null && node.prefix != "") return node.prefix;
				else return null;
			}
			else if(ozNavigator.isMO1) return node.prefix;
		}	
		return null;
	}
	/** XPath °Ë»ö¿¡ »ç¿ëÇÏ´Â NSResolver ÇÔ¼ö¸¦ µ¹·ÁÁØ´Ù. ÀÎÀÚ°¡ ¾ø´Â °æ¿ì¿¡´Â ÃÖ»óÀ§ ³ëµå¸¦,
	* ³ëµå¸¦ ÁöÁ¤ÇÑ °æ¿ì¿¡´Â ÃÖ»óÀ§ ³ëµå±îÁö °Å²Ù·Î ¿Ã¶ó°¡¸é¼­ ³×ÀÓ½ºÆäÀÌ½º¸¦ Ã£´Â´Ù.
	* @param node XML ³ëµå ¶Ç´Â NSMap @type Function 
	* @return Function NSResolver ÇÔ¼ö¸¦ µ¹·ÁÁØ´Ù. 
	**/
	this.createNSResolver = function(node) {
		if(node == null) {
			if(this._source != null && this._source.documentElement != null) {
				var NSMap = this.createNSMap(this._source.documentElement);	
			}
			else return null;	
		}
		else {
			if(typeof(node.nodeType) != "undefined") var NSMap = this.createNSMap(node);
			else if(typeof(node.length) != "undefined" && typeof(node.item) != "undefined") {
				var NSMap = node;
			}
			else return null;
		}		
		if(NSMap.length == 0) return null;
		var funcBody = "var ns = { ";
			for(var i=0;i<NSMap.length;i++) {
				funcBody += "\"" + NSMap.item(i).key + "\" : \"" + NSMap.item(i).value + "\"";
				if( i != (NSMap.length-1)) funcBody += ", ";	
			}
			funcBody += "};\n";
			funcBody += "return ns[prefix] || null;";
			return new Function("prefix",funcBody);
	}
	/** ³×ÀÓ½ºÆäÀÌ½º prefix, ³×ÀÓ½ºÆäÀÌ½º URI·Î Map °³Ã¼¸¦ ¸¸µé¾î¼­ µ¹·ÁÁØ´Ù.
	* ÀÎÀÚ°¡ ¾ø´Â °æ¿ì¿¡´Â ÃÖ»óÀ§ ³ëµå¸¦, ³ëµå¸¦ ÁöÁ¤ÇÑ °æ¿ì¿¡´Â ÃÖ»óÀ§ ³ëµå±îÁö 
	* °Å²Ù·Î ¿Ã¶ó°¡¸é¼­ ³×ÀÓ½ºÆäÀÌ½º Map °³Ã¼¸¦ ¸¸µç´Ù.
	* @param node XML ³ëµå @type Function 
	* @return Object ozMap ÀÎ½ºÅÏ½º 
	**/
	this.createNSMap = function(node) {
		var result = new ozMap();
		if(node == null) {
			if(this._source != null && this._source.documentElement != null) {
				var node = this._source.documentElement;	
			}	
			else return result;
		}			
		if (node.nodeType == 9) result = this._createNSMapSub(node.documentElement, result);
		else if(node.nodeType == 1) result = this._createNSMapSub(node, result);			
		return result;
	}
	/** @private **/
	this._createNSMapSub = function(node, result) {
		for(var i=0;i<node.attributes.length;i++) {
			if(this.prefix(node.attributes[i]) == "xmlns") {
					result.set(this.localName(node.attributes[i]), node.attributes[i].value);
			}
			else if(this.localName(node.attributes[i]) == "xmlns") {
					result.set("default", node.attributes[i].value);
			}
		}
		if(node.parentNode != null && node.parentNode.nodeType != 9) {
			result = this._createNSMapSub(node.parentNode, result);										
		}	
		return result;
	}
	/** node ³ëµå ¾Æ·¡¸¦ xpath·Î °Ë»öÇÏ¿© ±× °á°ú·Î Array¸¦ µ¹·ÁÁØ´Ù.
	* node ÀÎÀÚ¸¦ »ç¿ëÇÏÁö ¾ÊÀ¸¸é ÃÖ»óÀ§ ³ëµå¸¦ »ç¿ëÇÑ´Ù.
	* ±âº» ³×ÀÓ½ºÆäÀÌ½º¸¦ ÁöÁ¤ÇÑ °æ¿ì¿¡ XPath´Â aa ³ëµå¸¦ Ã£´Â °æ¿ì¿¡ 
	* //default:aa¶ó°í ÇØ¾ßÇÑ´Ù. node °Ë»öÀ» ÇÏ´Â °æ¿ì, ³×ÀÓ½ºÆäÀÌ½º¸¦ »ç¿ëÇÏ´Â
	* ³ëµå¸¦ °Ë»öÇÏ´Â °æ¿ì ³×ÀÓ ½ºÆäÀÌ½º ¼³Á¤ÀÌ ±× ³ëµå ¾Æ·¡¿¡ ÀÖ´Â °æ¿ì¿¡´Â
	* ¿¡·¯°¡ ¹ß»ýÇÒ ¼ö ÀÖÀ¸¹Ç·Î ³×ÀÓ½ºÆäÀÌ½º ¸ÊÀ» ÀÎÀÚ·Î ³Ñ±â´Â °ÍÀÌ ÁÁ´Ù. 
	* @param xpath XPath 
	* @param node XML ³ëµå. »ý·« °¡´ÉÇÏ´Ù.
	* @param nsMap XPath °Ë»ö¿¡ »ç¿ëÇÒ ³×ÀÓ½ºÆäÀÌ½º ¸Ê. »ý·« °¡´ÉÇÏ´Ù.
	* @type Function @return Array Ã£Àº ³ëµå¸¦ ¹è¿­·Î µ¹·ÁÁØ´Ù. 
	**/
	this.search = function(xpath, node, nsMap) {
		if(nsMap == null) { // ÀÎÀÚ°¡ 1°³ ¶Ç´Â 2°³
			if(node == null) { // ÀÎÀÚ°¡ 1°³
				if(this._source == null || this._source.documentElement == null) return null;	
				else var xmlDoc = this._source;
				var nsMap = this.createNSMap(xmlDoc);
			}	
			else { // ÀÎÀÚ°¡ 2°³
				if(typeof(node.nodeType) != "undefined") { // 2¹øÂ° ÀÎÀÚ°¡ ³ëµåÀÎ °æ¿ì
					var nsMap = this.createNSMap(node);
					if(node.nodeType == 9) var xmlDoc = node;
					else if(node.nodeType == 1) {
						if(node.nodeName.indexOf("xsl:") != -1) var xmlDoc = this.createXMLDocument({type : "xsl"});
						else var xmlDoc = this.createXMLDocument();
						xmlDoc.appendChild(node.cloneNode(true));	
					}
				}	
				else { // 2¹øÂ° ÀÎÀÚ°¡ nsMapÀÎ °æ¿ì
					if(this._source == null || this._source.documentElement == null) return null;	
					else var xmlDoc = this._source;
					var nsMap = node;
				}
			}
		}
		else { // ÀÎÀÚ°¡ 3°³
			if(node.nodeType == 9) var xmlDoc = node;
			else if(node.nodeType == 1) {
				if(node.nodeName.indexOf("xsl:") != -1) var xmlDoc = this.createXMLDocument({type : "xsl"});
				else var xmlDoc = this.createXMLDocument();
				xmlDoc.appendChild(node.cloneNode(true));	
			}
		}
		if(ozNavigator.isMO1) {
			var nsResolver = this.createNSResolver(nsMap);
			try {
				var temp = window.document.evaluate(xpath, xmlDoc.documentElement, nsResolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE ,null);
			}
			catch(error) {
				var message = "Xpath °Ë»ö Áß¿¡ ¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù. [message : " + error.message + "]";
				alert(message);
				return null;
			}
			var result = new Array();
			for(var i=0;i<temp.snapshotLength;i++) {
				result.push(temp.snapshotItem(i));
			}
			return result;
		}
		else if(ozNavigator.isIE4) {
			var nsvalue = "";
			for(var i=0;i<nsMap.length;i++) {
				nsvalue += "xmlns:" + nsMap.item(i).key + "='" + nsMap.item(i).value + "' ";
			}
			if(nsvalue != "") xmlDoc.setProperty("SelectionNamespaces", nsvalue);
		 	xmlDoc.setProperty("SelectionLanguage", "XPath");
		 	try { 
		 		var result = xmlDoc.selectNodes(xpath); 			
			}
			catch(error) {
				var message = "Xpath °Ë»ö Áß¿¡ ¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù. [message : " + error.message + "]";
				alert(message);
				return null;
			}
			return result;
		}
		return null;
	}
	/** ³×ÀÓ ½ºÆäÀÌ½º prefix ÁöÁ¤ÇÏ¸é ³×ÀÓ ½ºÆäÀÌ½º urlÀ» µ¹·ÁÁÜ. @param prefix ³×ÀÓ ½ºÆäÀÌ½º prefix
	* @param node ³×ÀÓ ½ºÆäÀÌ½º ÂüÁ¶¸¦ À§ÇÑ ³ëµå È¤Àº ³ëµå ¸Ê. »ý·« °¡´É.
	* @type Function @return String Ã£Àº urlÀ» µ¹·ÁÁØ´Ù. ¾øÀ¸¸é nullÀ» µ¹·ÁÁØ´Ù.
	**/
	this.lookupNamespaceURI = function(prefix, node) {
		if(prefix == null) return null;
		if(node == null) {
			if(this._source == null) return null;
			if(this._source.documentElement == null) return null;
			var nsMap = this.createNSMap(this._source.documentElement);
		}
		else {
			if(typeof(node.nodeType) != "undefined") var nsMap = this.createNSMap(node);
			else {
				if(typeof(node.length) == "undefined" || typeof(node.get) == "undefined") return null;					
				else var nsMap = node;	
			}
		}
		if(nsMap == null) return null;
		return nsMap.get(prefix);
	}
	/** ³×ÀÓ ½ºÆäÀÌ½º url ÁöÁ¤ÇÏ¸é ³×ÀÓ ½ºÆäÀÌ½º prefixÀ» µ¹·ÁÁÜ. @param uri ³×ÀÓ ½ºÆäÀÌ½º URL
	* @param node ³×ÀÓ ½ºÆäÀÌ½º ÂüÁ¶¸¦ À§ÇÑ ³ëµå È¤Àº ³ëµå ¸Ê. »ý·« °¡´É.
	* @type Function @return String Ã£Àº prefixÀ» µ¹·ÁÁØ´Ù. ¾øÀ¸¸é nullÀ» µ¹·ÁÁØ´Ù.
	**/
	this.lookupPrefix = function(uri, node) {
		if(uri == null) return null;
		if(node == null) {
			if(this._source == null) return null;
			if(this._source.documentElement == null) return null;
			var nsMap = this.createNSMap(this._source.documentElement);
		}
		else {
			if(typeof(node.nodeType) != "undefined") var nsMap = this.createNSMap(node);
			else {
				if(typeof(node.length) == "undefined" || typeof(node.get) == "undefined") return null;					
				else var nsMap = node;	
			}
		}
		if(nsMap == null) return null;
		for(var i=0;i<nsMap.length;i++) {
			if(nsMap.item(i).value == uri) return nsMap.item(i).key;				
		}
		return null;
	}
	/** ³×ÀÓ ½ºÆäÀÌ½º urlÀÌ ±âº» ³×ÀÓ½ºÆäÀÌ½ºÀÌ¸ç true¸¦ ¾Æ´Ï¸é false¸¦ µ¹·ÁÁØ´Ù. 
	* node ÀÎÀÚ·Î´Â ³×ÀÓ½ºÆäÀÌ½º¸¦ »ìÆìº¼ ³ëµå¸¦ ÁöÁ¤ÇÑ´Ù.
	* @param uri ³×ÀÓ ½ºÆäÀÌ½º URL @type Function 
	* @return Boolean ±âº» ³×ÀÓ ½ºÆäÀÌ½º¸é true, ¾Æ´Ï¸é false¸¦ µ¹·ÁÁØ´Ù.
	**/
	this.isDefaultNamespace = function(uri, node) {
		var result = this.lookupPrefix(uri, node);
		if(result == null) return null;
		if(result == "default") return true;
		else return false;
	}
	/** xsl:template ³ëµå·Î XSL ¹®¼­ °³Ã¼¸¦ ¸¸µé¾î¼­ µ¹·ÁÁØ´Ù.
	* xsl:template ³ëµå°¡ xsl ¹®¼­ °³Ã¼¿¡ attachµÈ »óÅÂ°¡ ¾Æ´Ï¸é
	* nullÀ» µ¹·ÁÁØ´Ù´Â °ÍÀ» Á¶½ÉÇÏÀÚ. @param template XSL ¹®¼­ °³Ã¼·Î ¸¸µé xsl:template ³ëµå
	* @param output xsl:output ¿ä¼ÒÀÇ method ¼Ó¼ºÀÇ °ªÀ» ÁöÁ¤ÇÑ´Ù. html|xml. ±âº»°ªÀº xml.
	* @type Function @return Object XSL ¹®¼­ °³Ã¼(XML ¹®¼­ °³Ã¼)
	**/
	this.template2XSLDocument = function(template, output) {
		if(template == null) return null;
		if(template.ownerDocument == null) return null;
		if(output == null) var output = "xml";
		if(output == "xml") var newXSL = this.createXMLDocument({xmlContent:"<?xml version=\"1.0\" encoding=\"utf-8\"?><xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"><xsl:output method=\"xml\"/></xsl:stylesheet>",type: "xsl"});
		else var newXSL = this.createXMLDocument({xmlContent:"<?xml version=\"1.0\" encoding=\"utf-8\"?><xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"><xsl:output method=\"html\"/></xsl:stylesheet>",type: "xsl"});
		if(newXSL == null) return null;
		var params = this.getElementsByTagName("xsl:param", template.ownerDocument.documentElement);
		for(var i=0;i<params.length;i++) {
			newXSL.documentElement.appendChild(params[i].cloneNode(true));
		}	
		newXSL.documentElement.appendChild(template.cloneNode(true));
		var includedTemplates = this._searchIncludedTemplates(template);
		for(var i=0;i<includedTemplates.length;i++) {
			newXSL.documentElement.appendChild(includedTemplates.item(i).value.cloneNode(true));			
		}
		return newXSL;
	}
	/** @private **/
	this._searchIncludedTemplates =function(node, result, nsMap) {
		if(result == null) result = new ozMap();
		if(nsMap == null) {
			var nsMap = new ozMap();
			nsMap.set("xsl","http://www.w3.org/1999/XSL/Transform");
		}		
		var found = this.search("descendant::xsl:apply-templates",node, nsMap);
		if(found == null) return result;
		for(var i=0;i<found.length;i++) {
			if(result.get(found[i].getAttribute("select")) == null) {
				var found2 = this.search("//xsl:template[@match = '" + found[i].getAttribute("select") + "']", node.ownerDocument, nsMap);
				if(found2 != null && found2.length == 1) {
					result.set(found[i].getAttribute("select"),found2[0]);
					result = this._searchIncludedTemplates(found2[0], result, nsMap);	
				}
			}
		}						
		return result;
	}
	/** xsl ¹®¼­ °³Ã¼, xsl ¹®¼­ÀÇ url, xsl:template ¿ä¼Ò ³ëµå·Î
	* XSLTProcessor °³Ã¼¸¦ »ý¼ºÇÏ¿© µ¹·ÁÁØ´Ù.
	* @param template XSL ¹®¼­ °³Ã¼·Î ¸¸µé xsl:template ³ëµå
	* @type Function 
	* @return Object XSLTProcessor
	**/
	this.createXSLTProcessor = function(xsl) {
		if(xsl == null) return null;
		if(typeof(xsl.nodeType) != "undefined" && xsl.nodeType == 9) var xslDoc = xsl;			
		else if(typeof(xsl.nodeType) != "undefined" && xsl.nodeType == 1) var xslDoc = this.template2XSLDocument(xsl);
		else var xslDoc = this.createXMLDocument({documentURI:xsl, type:"xsl"});			
		if(xslDoc == null) return null;
		if(ozNavigator.isIE4) {
			var xslCache = new ActiveXObject("Msxml2.XSLTemplate.5.0");
			xslCache.stylesheet = xslDoc;
			var processor = xslCache.createProcessor();
			return processor;
		}
		else if(ozNavigator.isMO1) {
			processor = new XSLTProcessor();
			processor.importStylesheet(xslDoc);
			return processor;
		}
		else return null;
	}
	/** XML ¹®¼­¿¡ Æ÷ÇÔµÈ XSL ¹®¼­ÀÇ URLÀ» µ¹·ÁÁØ´Ù. ¾ø´Â °æ¿ì¿¡ nullÀ» µ¹·ÁÁØ´Ù.
	* @param node XML ¹®¼­ °³Ã¼³ª XML ³ëµå @type Function 
	* @return String ¹®ÀÚ¿­À» µ¹·ÁÁØ´Ù.
	**/
	this.lookupStylesheetURI = function(node) {
		if(node == null) {
			if(this._source != null && this._source.documentElement != null) {
				var node = this._source;
			}
			else return null;
		}
		else {
			if(typeof(node.nodeType) != "undefined") {
				if(node.nodeType == 1 && node.ownerDocument != null) {
					var node = node.ownerDocument;	
				}
			}
			else return null;
		}
		for(var i=0;i<node.childNodes.length;i++) {
			if(node.childNodes[i].nodeName == "xml-stylesheet") {
				var myRe = /href\s*\=\s*[\"\']([^\"\']+)[\"\']/;
				var result = myRe.exec(node.childNodes[i].nodeValue);
				if(result != null) return result[1];				
				else return null;
			}
		}	
		return null;
	}
	/** HTML ¿ä¼Ò °³Ã¼¸¦ xml ³ëµå °³Ã¼·Î º¯È¯ÇÑ´Ù. @param º¯È¯ÇÒ HTML ¿ä¼Ò °³Ã¼
	* @type Function @return Object XML ³ëµå
	**/
	this.html2xml = function(node) {
		if(node == null) return null;
		if(node.nodeType == 1 && typeof(node.innerHTML) != "undefined") {
			if(typeof(node.outerHTML) != "undefined") var message = node.outerHTML;
			else var message = (new XMLSerializer()).serializeToString(node);
			var result = this.createXMLDocument({ xmlContent : "<?xml version='1.0' encoding='utf-8'?>" + message.wellFormed() });
			return result.documentElement;
		}
		else return null;		
	}
	/** XML ³ëµå °³Ã¼¸¦ HTML ¿ä¼Ò °³Ã¼·Î º¯È¯ÇÑ´Ù. @param º¯È¯ÇÒ XML ¿ä¼Ò ³ëµå @type Function 
	* @return Object HTML ¿ä¼Ò °³Ã¼
	**/
	this.xml2html = function(node) {
		if(node == null) return null;
		if(node.nodeType == 1 && typeof(node.innerHTML) == "undefined") {
			if(node.nodeName.indexOf(":") != -1) return null;
			var result = window.document.createElement(node.tagName);
			for(var i=0;i<node.attributes.length;i++) {
				result.setAttribute(node.attributes[i].name, node.attributes[i].value);	
			}
			var temp = "";
			for(var i=0;i<node.childNodes.length;i++) {
				if(node.childNodes[i].nodeType == 1) temp += this.xmlContent(node.childNodes[i]);
				else temp += node.childNodes[i].nodeValue;
			}
			result.innerHTML = temp;
			return result;
		}	
		else return null;	
	}
	/** ÀÎÀÚ·Î ÁöÁ¤ÇÑ ¹®ÀÚ¿­À» XML °³Ã¼·Î ·ÎµùÇÑ´Ù. @param xmlContent
	* @type Function @return boolean XML °³Ã¼ »ý¼º¿¡ ¼º°øÇÏ¸é true¸¦ ½ÇÆÐÇÏ¸é false¸¦ µ¹·ÁÁØ´Ù.
	**/
	this.loadXML = function(xmlContent) {
		if(this._source == null) this._source = this.createXMLDocument(); 
		if(ozNavigator.isMO1) {
			var parser = new DOMParser();
			this._source = parser.parseFromString(xmlContent,"text/xml");
			this._documentURI = null;
		  if(this._source.documentElement.nodeName == "parsererror") {
		 		var message = "(" + this._source.documentElement.childNodes[0].nodeValue + ")";
		 		alert("ozXML.loadXML : XML ¹®¼­ ÆÄ½ÌÁß¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù." + message);
				this._source = null;
				return false;
		 	}
		}
		else if(ozNavigator.isIE4) {
			this._documentURI = null;
			this._source.loadXML(xmlContent);
		 	if(this._source.parseError.errorCode == 0) return true;
		 	else {
	 			var message = "(errorCode : " + this._source.parseError.errorCode + ", reason : " + this._source.parseError.reason + ")";
	 			alert("ozXML.loadXML : XML ¹®¼­ ÆÄ½ÌÁß¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù." + message);
	 			this._source = null;
	 			return false;
	 		}
		}
		return true;
	}
	/** ÀÎÀÚ·Î load ¸Þ½îµå·Î XML ¹®¼­¸¦ ·ÎµùÇÑ ´ÙÀ½¿¡ ½ÇÇàÇÒ ÇÔ¼ö¸¦ ÁöÁ¤ÇÑ´Ù.
	* ÀÎÀÚ°¡ ¾øÀ¸¸é load ¸Þ½îµå·Î XML ¹®¼­¸¦ ·ÎµùÇÑ ´ÙÀ½¿¡ ½ÇÇàÇÒ ÇÔ¼ö¸¦ µ¹·ÁÁØ´Ù.
	* ½ÇÇàµÇ´Â ÇÔ¼ö¿¡´Â 
	* xml °³Ã¼¸¦ ÀÎÀÚ·Î ³Ñ°ÜÁØ´Ù´Â °ÍÀ» Á¶½ÉÇÏÀÚ. @type Function
	* @return Function load ¸Þ½îµå·Î XML ¹®¼­¸¦ ·ÎµùÇÑ ´ÙÀ½¿¡ ½ÇÇàÇÒ ÇÔ¼ö¸¦ µ¹·ÁÁØ´Ù.
	**/
	this.onload = function() {
		if(this._source != null) {
			if(arguments.length == 0) return this._onload;
			else {
				if(ozNavigator.isIE4) {
					this._onload = arguments[0];
					this._source.onreadystatechange = this._loadCheck;
					return this._onload;
				}
				else if(ozNavigator.isMO1) {
					this._onload = arguments[0];
					this._source.onload = this._loadCheck;
					return this._onload;
				}
				else {
					this._onload = null;
					return null;
				}
			} 
		}	
		else return null;
	}
	/** load ¸Þ½îµå·Î URLÀ» ·ÎµùÇÏ´Â °æ¿ì¿¡ XML ¹®¼­°¡ ·ÎµùµÇ¾ú´Â Áö¸¦ È®ÀÎÇÏ´Â ÇÔ¼öÀÌ´Ù. 
	* XML ¹®¼­°¡ ·ÎµùÀÌ È®ÀÎµÇ¸é, onload ¸Þ½îµå·Î ÁöÁ¤ÇÑ ÇÔ¼ö¸¦ ½ÇÇàÇÑ´Ù. ÀÌ ¶§ ±× ÇÔ¼öÀÇ ÀÎÀÚ·Î 
	* xml °³Ã¼¸¦ ³Ñ°ÜÁØ´Ù.
	* @private @type Function
	* @return Boolean XML ¹®¼­°¡ ·ÎµùµÇ¾î onload ¸Þ½îµå·Î ÁöÁ¤ÇÑ ÇÔ¼ö°¡ ½ÇÇàµÇ¸é true¸¦, 
	* ±×·¸Áö ¾ÊÀ¸¸é false¸¦ µ¹·ÁÁØ´Ù.
	**/
	this._loadCheck = function() {
		if(this._source!= null && this.onload() != null) {
			if(ozNavigator.isIE4) {
				if(this._source.readyState == 4) {
					if(this.error() == null) {
						this._onload(this);						
						return true;
					}
				}			
			}
			else if(ozNavigator.isMO1) {
				if(this.error() == null) {
					this._onload(this);	
					return true;
				}
			}	
			return false;
		}		
	}
	/** ÀÎÀÚ·Î ÁöÁ¤ÇÑ xml ¹®¼­¸¦ xsl ¹®¼­¸¦ »ç¿ëÇÏ¿© º¯È¯ÇÑ´Ù. outputÀÌ xmlÀÌ¸é xml °³Ã¼¸¦, 
	* stringÀÌ¸é xml ÄÚµå¸¦ ¹®ÀÚ¿­·Î µ¹·ÁÁØ´Ù. ÀÎÀÚÀÇ ¼Ó¼ºÀÇ »ç¿ë¹ýÀº ´ÙÀ½°ú °°´Ù.<br/>
	* - xml : xml ¹®¼­ °³Ã¼, xml ³ëµå, xml url. ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é,
	* ÇöÀç xml °³Ã¼¸¦ »ç¿ëÇÑ´Ù.<br/>
	* - xsl : xsl ¹®¼­ °³Ã¼, xsl template ³ëµå, xsl url. ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é,
	* ÇöÀç xml °³Ã¼³ª ÀÎÀÚ·Î ÁöÁ¤ÇÑ xml °³Ã¼¿¡ ÁöÁ¤µÈ xsl ¹®¼­¸¦
	* ÀÐ¾î¿Â´Ù.<br/>
	* - ouput : xmlÀÌ¸é xml °³Ã¼¸¦, textÀÌ¸é xml ÄÚµå¸¦ ¹®ÀÚ¿­·Î
	* µ¹·ÁÁØ´Ù.<br/>
	* - parameters : º¯È¯½Ã¿¡ xsl ¹®¼­¿¡ Àü´ÞµÉ parameterÀÇ ÀÌ¸§°ú °ªÀ»
	* ³ªÅ¸³»´Â map °³Ã¼.
	* @param param ÀÎÀÚ °³Ã¼ @type Function 
	* @return Object º¯È¯µÈ XML °³Ã¼³ª XML ÄÚµå
	**/
	this.transform = function(param) {
		if(param == null) {
			if(this._source != null && this.error() == null)  var xmlDoc = this._source;			
			else return null;
			if(this.lookupStylesheetURI(xmlDoc) == null) return null;
			var xslDoc = this.createXMLDocument({documentURI : this.lookupStylesheetURI(xmlDoc), type : "xsl"});
			if(this.error(xslDoc) != null) return null;
			var output = "xml";
		}
		else {
			if(typeof(param.xml) != "undefined") {
				if(typeof(param.xml.nodeType) != "undefined" && param.xml.nodeType == 9) var xmlDoc = param.xml;					
				else if(typeof(param.xml.nodeType) != "undefined" && param.xml.nodeType == 1) {
					var xmlDoc = this.createXMLDocument({root : param.xml.cloneNode(true) });
				}	
				else var xmlDoc = this.createXMLDocument({documentURI : param.xml });
				if(this.error(xmlDoc) != null) return null;
			}
			else {
				if(this._source != null && this.error() == null) var xmlDoc = this._source;			
				else return null;
			}
			if(typeof(param.output) != "undefined") {
				if(param.output == "text") var output = "text";
				else var output = "xml";
			}
			else var output = "xml";
			if(typeof(param.xsl) != "undefined") {
				if(typeof(param.xsl.nodeType) != "undefined" && param.xsl.nodeType == 9) var xslDoc = param.xsl;					
				else if(typeof(param.xsl.nodeType) != "undefined" && param.xsl.nodeType == 1 && param.xsl.nodeName == "xsl:template") {
					var xslDoc = this.template2XSLDocument(param.xsl);
				}	
				else if(typeof(param.xsl.nodeType) != "undefined" && param.xsl.nodeType == 1 && param.xsl.nodeName == "xsl:stylesheet") {
					var xslDoc = this.createXMLDocument({type : "xsl"});
					xslDoc.appendChild(param.xsl.cloneNode(true));
				}
				else var xslDoc = this.createXMLDocument({documentURI : param.xsl, type : "xsl"});
				if(xslDoc == null) return null;
				if(this.error(xslDoc) != null) return null;
			}
			else {
				if(this.lookupStylesheetURI(xmlDoc) == null) return null;
				var xslDoc = this.createXMLDocument({documentURI : this.lookupStylesheetURI(xmlDoc), type : "xsl"});
				if(this.error(xslDoc) != null) return null;
			}
		}
		if(ozNavigator.isIE4) {
			var processor = this.createXSLTProcessor(xslDoc);
			if(param != null && typeof(param.parameters) != "undefined" && typeof(param.parameters.length) != "undefined" && typeof(param.parameters.item) != "undefined") {
				for(var i=0;i<param.parameters.length;i++) {
					processor.addParameter(param.parameters.item(i).key, param.parameters.item(i).value, "");
				}
			}
			processor.input = xmlDoc;
			if(output == "xml") processor.output = this.createXMLDocument();
			processor.transform();
			return processor.output;
		}
		else if(ozNavigator.isMO1) {
			var processor = this.createXSLTProcessor(xslDoc);
			if(param != null && typeof(param.parameters) != "undefined" && typeof(param.parameters.length) != "undefined" && typeof(param.parameters.item) != "undefined") {
				for(var i=0;i<param.parameters.length;i++) {
					processor.setParameter("",param.parameters.item(i).key, param.parameters.item(i).value);
				}
			}
			var result = processor.transformToDocument(xmlDoc);
			if(this.error(result) == null) {
				if(output == "xml") return result;									
				else {
					var serializer = new XMLSerializer();
					return serializer.serializeToString(result);	
				}
			}
			else return null;
		}
		else return null;
	}
	/** XML ¹®¼­ °³Ã¼ÀÇ À¯È¿¼ºÀ» °ËÁõÇÑ´Ù. ¸ðÁú¶ó À¥ºê¶ó¿ìÀú´Â À¯È¿¼º °ËÁõÀ» Áö¿øÇÏÁö 
	* ¾ÊÀ¸¹Ç·Î Ç×»ó nullÀ» µ¹·ÁÁØ´Ù.
	* @param xmlDoc XML ¹®¼­ °³Ã¼. ¾øÀ¸¸é ÇöÀç XML ¹®¼­ °³Ã¼¸¦ »ç¿ëÇÑ´Ù.
	* @type Function @return Boolean À¯È¿ÇÏ¸é true, À¯È¿ÇÏÁö ¾ÊÀ¸¸é false¸¦ µ¹·ÁÁØ´Ù.
	**/
	this.validate = function(xmlDoc) {
		if(!ozNavigator.isIE4) return null;
		if(xmlDoc == null) {
			if(this._source != null) var xmlDoc = this._source;
			else return null;
			if(xmlDoc != null && typeof(xmlDoc.nodeType) != "undefined" && xmlDoc.nodeType == 9) {
				var result = xmlDoc.validate();
				if(result.errorCode == 0) return true;
				else return false;	
			}		
			else return null;
		}		
	}
	/** ÀÎÀÚ·Î ÁöÁ¤ÇÑ URLÀÇ XML ¹®¼­¸¦ ·ÎµùÇÑ´Ù.
	* @param documentURI @type Function
	* @return Boolean ¼º°øÇÏ¸é true¸¦, ½ÇÆÐÇÏ¸é false¸¦ µ¹·ÁÁØ´Ù.
	* ºñµ¿±â Åë½ÅÀ» »ç¿ëÇÏ¿© ¼º°ø°ú ½ÇÆÐ¿©ºÎ¸¦ ¾Ë ¼ö ¾øÀ» ¶§´Â true¸¦ µ¹·ÁÁØ´Ù.
	**/
	this.load = function(documentURI) {
		if(this._source != null) {
			this._documentURI = documentURI;
			this._source.load(documentURI);
			return true;
		}	
		else return false;
	}
	/** XML °³Ã¼¸¦ »ý¼ºÇÏ°Å³ª ÃÊ±âÈ­ ÇÒ ¶§ »ç¿ëÇÑ´Ù. 
	* @param param param ÀÎÀÚÀÇ ¼Ó¼º¿¡ µû¶ó¼­ XML °³Ã¼°¡ »ý¼ºµÈ´Ù
	* @type Function
	**/
	this.init = function(param) {
		this._documentURI = null;
		this._onload = null;
		if( (param != null && typeof(param.type) != "undefined" && param.type == "xsl") || (param != null && typeof(param.rootName) != "undefined" && param.rootName == "xsl:stylesheet") || (param != null && typeof(param.root) != "undefined" && param.root.nodeName == "xsl:stylesheet") || (param != null && typeof(param.xmlObject) != "undefined" && param.xmlObject.documentElement != null && param.xmlObject.documentElement.nodeName == "xsl:stylesheet") || (param != null && typeof(param.documentURI) != "undefined" && /\.xsl$/.test(param.documentURI)) ) {
			this._source = this.createXMLDocument({type:"xsl"});
		}
		else this._source = this.createXMLDocument();
		if(this._source != null) {
			if(param != null) {
				if(typeof(param.async) != "undefined") this.async(param.async);
				else this.async(false);	
				if(typeof(param.onload) != "undefined") this.onload(param.onload);
				if(typeof(param.strictErrorChecking) != "undefined") this._source.validateOnParse = new Boolean(param.stricErrorChecking);
				else this._source.validateOnParse = false;
				if(typeof(param.rootName) != "undefined") {
					var temp = this.createElement(param.rootName);
					if(temp != null) return this._source.appendChild(temp);
					else {
						alert("ozXML.init : " + param.rootName + "À¸·ÎµÈ ÃÖ»óÀ§ ³ëµå¸¦ »ý¼ºÇÏÁö ¸øÇß½À´Ï´Ù.");
						return false;	
					}	
				}
				else if(typeof(param.root) != "undefined") {
					if(typeof(param.root.nodeType) != "undefined" && param.root.nodeType == 1) {
						return this._source.appendChild(param.root);
					}
					else alert("ozXML.init : Á¤»óÀûÀÎ ³ëµå°¡ ¾Æ´Õ´Ï´Ù.");						
				}
				else if(typeof(param.documentURI) != "undefined") return this.load(param.documentURI);					
				else if(typeof(param.xmlContent) != "undefined") return this.loadXML(param.xmlContent);					
				else if(typeof(param.xmlObject) != "undefined") {
					if(typeof(param.xmlObject.nodeType) != "undefined" && param.xmlObject.nodeType == 9) {
						this._source = param.xmlObject; 	
						return true;
					}
					else return false;
				}
				else return true;
			}
			else return true;	
		}
		else return false;
	}
	var result = this.init(param);
	if(result == false) {
		alert("ozXML.init : XMLDocument °³Ã¼¸¦ »ý¼ºÇÏÁö ¸øÇß½À´Ï´Ù.");
	}		
}
/** AJAX °³Ã¼ Å¬·¡½º. ¿øº» AJAX °³Ã¼¸¦ °¨½Î´Â ÀÚ¹Ù½ºÅ©¸³Æ® °³Ã¼¸¦ »ý¼ºÇÏ¿© 
 * µ¹·ÁÁØ´Ù. param ÀÎÀÚ °³Ã¼ÀÇ ¼Ó¼º¿¡ µû¶ó¼­ ÃÊ±âÈ­µÈ´Ù.<br/>
 * - async : µ¿±âÈ­ Åë½Å ¿©ºÎ. ±âº»°ªÀº true.<br/>
 * - documentURI : ¿äÃ»ÇÒ ÆäÀÌÁöÀÇ ÁÖ¼Ò.<br/>
 * - method : http Åë½Å ¹æ½Ä. get ¶Ç´Â post<br/>
 * - requestHeader : 
 * - body : ¼­¹ö·Î º¸³¾ ³»¿ë. Map °³Ã¼<br/>
 * @constructor 
 * @param param	param ÀÎÀÚÀÇ ¼Ó¼º¿¡ µû¶ó¼­ XML °³Ã¼°¡ »ý¼ºµÈ´Ù.
 **/
ozAjax = function(param) {
	/**
	* ¿øº» AJAX °³Ã¼°¡ ÀúÀåµÈ´Ù. @type Object
	* @private
	**/
	this._source = null;
	/**
	* µ¿±âÈ­ Åë½Å ¿©ºÎ¸¦ ³ªÅ¸³½´Ù.
	* @type Boolean 
	**/
	this.async = true;
	/**
	* ¿äÃ»ÇÑ ¹®¼­ÀÇ URL
	* @type String 
	**/
	this.documentURI = null;
	/**
	* ¿äÃ» ¹æ½Ä. get ¶Ç´Â post
	* @type String 
	**/
	this.method = "get";
	/**
	* ¿äÃ»½Ã º¸³¾ Çì´õ. Map °³Ã¼.
	* @type Object
	**/
	this.requestHeaders = new ozMap();
	/**
	* ¿äÃ»½Ã º¸³¾ ³»¿ë. Map °³Ã¼.
	* @type Object
	**/
	this.body = new ozMap();
	/**
	* ÀÀ´ä »óÅÂ. 4ÀÌ¸é ÀÀ´äÀÌ Á¤»óÀûÀ¸·Î µµÂøÇÑ °ÍÀÌ´Ù.
	* @type Object
	**/
	this.readyState = 0;
	/**
	* ÀÀ´ç »óÅÂ ÄÚµå. 200¹ø´ë°¡ Á¤»óÀûÀÎ ÀÀ´äÀÌ´Ù.
	* @type Number
	**/
	this.status = null;
	/**
	* ÀÀ´ä »óÅÂ ¸Þ½ÃÁö.
	* @type String
	**/
	this.statusText = null;
	/**
	* ¹®ÀÚ¿­À» ¿äÃ»ÇÑ °æ¿ì¿¡ ÀÀ´ä °á°ú°¡ ÀúÀåµÈ ¼Ó¼º.
	* @type String
	**/
	this.responseText = null;
	/**
	* XML °³Ã¼¸¦ ¿äÃ»ÇÑ °æ¿ì¿¡ XML °³Ã¼({@link ozXML}) ÀúÀåµÈ ¼Ó¼º.
	* @type Object
	**/
	this.responseXML = null;
	/**
	* XML °³Ã¼¸¦ ÀÀ´äÀ¸·Î ¹ÞÀº °æ¿ì true°¡ µË´Ï´Ù.
	* @type Object
	**/
	this.hasResponseXML = false;
	/**
	* ÀÀ´ä Çì´õ°¡ ÀúÀåµÈ Map °³Ã¼.
	* @type Object
	**/
	this.responseHeaders = new ozMap();
	/**
	* ÁÖ±âÀûÀ¸·Î AJAX °³Ã¼¸¦ ¿äÃ»ÇÏ´Â °æ¿ì¿¡ ±× °£°ÝÀÌ 1/1000ÃÊ ´ÜÀ§·Î ÀúÀåµÈ´Ù.
	* ÀÌ °ªÀÌ nullÀÌ¸é ÀÀ´äÀ» ¹ÞÀº ÈÄ¿¡ ´Ù½Ã ¿äÃ»ÇÏÁö ¾Ê´Â´Ù.
	* ÀÚ¼¼ÇÑ ³»¿ëÀº setInterval, clearInterval ¸Þ½îµå¸¦ Âü°íÇÏ¶ó.
	* @type Number
	**/
	this.interval = null;
	/**
	* ÁÖ±âÀûÀ¸·Î AJAX °³Ã¼¸¦ ¿äÃ»ÇÏ´Â °æ¿ì ±× Å¸ÀÌ¸Ó °³Ã¼¸¦ 
	* ÀúÀåÇÏ´Â ¸ñÀûÀ¸·Î ³»ºÎÀûÀ¸·Î »ç¿ëÇÑ´Ù.
	* @type Number
	* @private
	**/
	this._timer = null;
	/**
	* ¿äÃ»ÇÏ´Â XML ¹®¼­ÀÇ MIME Å¸ÀÔ.
	* ÀÌ ¼Ó¼ºÀº requestHeaders ¸Ê¿¡ ÀúÀåµÈ °ªº¸´Ù ¿ì¼±ÇÑ´Ù.
	* @type String
	**/
	this.mimeType = null;
	/**
	* ¿äÃ» Çì´õÀÇ ¹®ÀÚ ÀÎÄÚµù ¹æ½Ä.
	* ÀÌ ¼Ó¼ºÀº requestHeaders ¸Ê¿¡ ÀúÀåµÈ °ªº¸´Ù ¿ì¼±ÇÑ´Ù.
	* @type String
	**/
	this.encoding = "UTF-8";
	/**
	* ÀÀ´äÀÌ Á¤»óÀûÀ¸·Î µµÂøÇÑ °æ¿ì¿¡ ½ÇÇàµÉ ÇÔ¼ö °³Ã¼°¡ ÀúÀåµÈ´Ù.
	* ÀÀ´äÀ¸·Î ¹ÞÀº ¹®ÀÚ¿­ÀÌ³ª XML °³Ã¼¸¦ Ç×»ó ÀÎÀÚ·Î »ç¿ëÇÑ´Ù.
	* @type Function
	**/
	this.onload = null;
	/**
	* ÀÀ´ä¿¡ ¿¡·¯°¡ ÀÖ´Â °æ¿ì¿¡ ¿¡·¯ ³»¿ëÀ» µ¹·ÁÁØ´Ù.
	* ¿¡·¯°¡ ¾ø´Â °æ¿ì¿¡ nullÀ» µ¹·ÁÁØ´Ù.
	* @type Function
	**/
	this.error = function() {
		if(this._source == null) {
			return "(reason : ajax °³Ã¼°¡ ¾ø½À´Ï´Ù.)";	
		}
		else if(this._source.readyState != 4) {
			return "(reason : ÀÀ´äÀÌ ¾ÆÁ÷ ¿Ï·áµÇÁö ¾Ê¾Ò½À´Ï´Ù. readyState : " + this._source.readyState + ")";	
		}
		else if(this._source.status != 200) {
			return "(reason : ÀÀ´ä¿¡ ¿¡·¯°¡ ÀÖ½À´Ï´Ù. status : " + this._source.status + ", statusText : " + this._source.statusText +")";	
		}
		else {
			if(this._source.responseXML == null && this._source.responseHTML == null) {
				return "(reason : ÀÀ´äÀ¸·Î ¹ÞÀº ³»¿ëÀÌ ¾ø½À´Ï´Ù.)";	
			}
			else if(this._source.responseText == null) {
				return "(reason : ÀÀ´äÀ¸·Î ¹ÞÀº ¹®ÀÚ¿­ÀÌ ¾ø½À´Ï´Ù.)";
			}			
			else if(this.mimeType == "text/xml" || this.mimeType == "application/xml+rss") {
				return this.responseXML.error() ;
			}
			else return null;
		}
	}
	/**
	* ÀÀ´äÀÌ Á¤»óÀûÀ¸·Î µµÂøÇÏ¸é ÀÀ´ä ³»¿ëÀ» °³Ã¼·Î ÀúÀåÇÏ°í, onload ¼Ó¼ºÀ¸·Î ÁöÁ¤ÇÑ
	* ÇÔ¼ö¸¦ ½ÇÇàÇÑ´Ù.
	* @type Function
	* @private
	**/
	this._onreadystatechange = function() {
		if(this._source != null) {
			this.readyState = this._source.readyState;
			if(this._source.readyState == 4) {
				this._afterSuccess();
			}
		}
	}
	/**
	* ÀÀ´äÀÌ Á¤»óÀûÀ¸·Î µµÂøÇÏ¸é ÀÀ´ä ³»¿ëÀ» °³Ã¼·Î ÀúÀåÇÏ°í, onload ¼Ó¼ºÀ¸·Î ÁöÁ¤ÇÑ
	* ÇÔ¼ö¸¦ ½ÇÇàÇÑ´Ù.
	* @type Function
	* @private
	**/
	this._afterSuccess = function() {
		this.readyState = this._source.readyState;
		this.status = this._source.status;
		this.statusText = this._source.statusText;
		if(this._source != null) {
			this.responseHeaders = new ozMap();
			this.mimeType = null;
			this.hasResponseXML = false;
			this.encoding = "UTF-8";
			headers = this._source.getAllResponseHeaders();
			if(headers != null && headers != "") {
				// requestHeaders ¸Ê¿¡ Çì´õ¸¦ ÀúÀåÇÕ´Ï´Ù.
				var myRe = /([^\:]+)\:\s([^\n]+)\n/gi;
				var exResult = myRe.exec(headers);
				while(exResult != null && exResult.length == 3) {
					this.responseHeaders.set(exResult[1], exResult[2]);
					exResult = myRe.exec(headers);							
				}
				// mimeType, encodingÀ» Ã³¸®ÇÕ´Ï´Ù.
				var contentType = this.responseHeaders.get("Content-Type");
				if(typeof(contentType) != "undefined") {
					var splited = contentType.split(";");
					if(splited != null) {
						if(splited.length >= 1) {
							this.mimeType = splited[0].trim();
						}	
						if(splited.length >= 2) {
							var temp = splited[1].split("=");
							if(temp != null && temp.length == 2) {
								if(temp[0].trim() == "charset") {
									this.encoding = temp[1].trim().toUpperCase();											
								}
							}	
						}
						// hasResponseXML ¼Ó¼ºÀ» ÁöÁ¤ÇÕ´Ï´Ù.
						if(this.mimeType == "text/xml" || this.mimeType == "application/xml+rss") {
							this.hasResponseXML = true;	
						} 
					}
				}
			}
			// ÀÀ´ä ³»¿ëÀ» ÀúÀåÇÕ´Ï´Ù.
			this.responseText = this._source.responseText;
			if(this.hasResponseXML) {
				this.responseXML = new ozXML({xmlObject: this._source.responseXML});	
			}
			else {
				this.mimeType = "text/plain";	
			}
			// onload°¡ ÀÖ´Â °æ¿ì¿¡ onload¸¦ ½ÇÇàÇÏ°í Á¾·áÇÕ´Ï´Ù.
			if(this.onload != null) {
				if(this.hasResponseXML) this.onload(this);
				else this.onload(this);
				// ÁÖ±âÀûÀ¸·Î ¿äÃ»ÇÏµµ·Ï µÇ¾îÀÖ´Â °æ¿ì ´ÙÀ½ ½ÇÇàÀ» ¿¹¾àÇÑ´Ù.
				if(this._timer != null) {
					window.clearTimeout(this._timer);
					this._timer = null;
				}
				if(this.interval != null) {
					this._timer = window.setTimeout(this.send.bind(this),this.interval);
				}
			}
			return true;
		}
		else {
			alert("error");
			this.reset();
			return false;
		}	
	}
	/**
	* AJAX °³Ã¼ÀÇ ¼Ó¼ºÀ» ÃÊ±âÈ­ÇÑ´Ù. ¿¡·¯°¡ ÀÖ´Â °æ¿ì¿¡ ÁÖ·Î »ç¿ëÇÑ´Ù.
	* @type Function
	* @private
	**/
	this.reset = function() {
		this.responseHeaders = new ozMap();
		this.mimeType = null;
		this.encoding = "UTF-8";
		this.responseXML = null;
		this.responseText = null;
		this.hasResponseXML = false;
		this.statusText = null;
		this.status = null; 
	}

	/**
	* AJAX °³Ã¼·Î ¿äÃ»À» º¸³½´Ù. body ¸ÊÀÇ °ªÀº encodeURIComponent·Î ÀÚµ¿À¸·Î 
	* ÀÎÄÚµùµÈ´Ù´Â °ÍÀ» Á¶½ÉÇÏÀÚ. ±×¸®°í, body ¸ÊÀÇ °¢ Ç×¸ñÀÇ value °ªÀº
	* ¹®ÀÚ¿­·Î µÇ¾îÀÖ¾î¾ß ÇÑ´Ù. 
	* @type Function
	* @pram param ´ÙÀ½°ú °°Àº ¼Ó¼ºÀ» °¡Áø °³Ã¼ÀÌ´Ù. °¢ ¼Ó¼ºÀÇ °ªÀÌ 
	* AJAX °³Ã¼ÀÇ ¼Ó¼ºÀ¸·Î ÀúÀåµÈ´Ù´Â °ÍÀ» Á¶½ÉÇÏ¶ó.<br/>
	* - asyn : µ¿±âÈ­ Åë½Å ¿©ºÎ.<br/>
	* - documentURI : AJAX·Î ¿äÃ»ÇÏ´Â ÆäÀÌÁö ÁÖ¼Ò.<br/>
	* - method : Åë½Å ¹æ½Ä.<br/>
	* - requestHeaders : Çì´õ Map °³Ã¼.<br/>
	* - interval : ¹Ýº¹ÇØ¼­ ¿äÃ»ÇÏ´Â ½Ã°£(miliseconds).<br/>
	* - onload : Á¤»óÀûÀ¸·Î ÀÀ´äÀ» ¹ÞÀº °æ¿ì¿¡ ½ÇÇàÇÒ ÇÔ¼ö.<br/>
	* - body : ¿äÃ»½Ã º¸³¾ ³»¿ë. Map °³Ã¼<br/>
	**/
	this.send = function(param) {
		this.reset();
		// ÀÎÀÚ¸¦ ¼³Á¤ÇÕ´Ï´Ù.
		if(param != null) {
			if(typeof(param.async) != "undefined") this.async = param.async;
			if(typeof(param.documentURI) != "undefined") this.documentURI = param.documentURI;
			if(typeof(param.method) != "undefined") this.method = param.method;
			if(typeof(param.requestHeaders) != "undefined") this.requestHeaders = param.requestHeaders;
			if(typeof(param.interval) != "undefined") this.interval = param.interval;
			if(typeof(param.onload) != "undefined") this.onload = param.onload;
			if(typeof(param.body) != "undefined") this.body = param.body;
		}
		
		if(this._source != null && this.documentURI != null) {
			// openÀ» È£ÃâÇÕ´Ï´Ù.
			if(this.method=="get"&&this.body != null && typeof(this.body.length) != "undefined" && typeof(this.body.getString) != "undefined" && this.body.length != 0) {
				var temp = this.documentURI.split("?");
				if(temp != null && temp.length == 2) {
					this._source.open(this.method, temp[0] + "?" + temp[1] + "&" + this.body.getString(), this.async);
				}		
				else {
					this._source.open(this.method, this.documentURI + "?" + this.body.getString(), this.async);
				}
			}
			else {
				this._source.open(this.method, this.documentURI, this.async);
			}
			// ¿äÃ» Çì´õ¸¦ ¼³Á¤ÇÕ´Ï´Ù.	
			if(this.requestHeaders != null && this.requestHeaders.length != 0) {
				for(var i=0;i<this.requestHeaders.length;i++) {
					var todo = this.requestHeaders.item(i);
					this._source.setRequestHeader(todo.key, todo.value);
				}
			}
			// ºñµ¿±â Åë½Å½Ã¿¡ Ã³¸®ÇÒ ÇÔ¼ö¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
			if(this.onload != null && this.async == true) {
				if(ozNavigator.isMO1) {
					this._source.onload = this._onreadystatechange.bind(this);
				}
				else {
					this._source.onreadystatechange = this._onreadystatechange.bind(this);
				}
			}
			// ¿äÃ»À» º¸³À´Ï´Ù.
			if(this.method == "get") {
				this._source.send("");
			}
			else if(this.method == "post") {
				if(this.body != null && typeof(this.body.length) != "undefined" && typeof(this.body.getString) != "undefined" && this.body.length != 0) {
					this._source.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
					this._source.send(this.body.getString());
				}
				else {
					this._source.send("");
				}
			}
			else {
				alert("Áö¿øÇÏÁö ¾Ê´Â method ÀÔ´Ï´Ù.");
				return false;
			}
			// µ¿±â Åë½Å ½Ã¿¡ Ã³¸®ÇÒ ÇÔ¼ö¸¦ ½ÇÇàÇÕ´Ï´Ù. 
			if(this.async == false) {
				this._afterSuccess();			
			}
			return true;
		}
		else return false;
	}

	/**
	* ÁÖ±âÀûÀ¸·Î AJAX ¿äÃ»À» º¸³»µµ·Ï ¼³Á¤ÇÑ´Ù.
	* @type Function
	* @param ms ÀÀ´äÀÌ µµÂøÇÏ°í ´Ù½Ã ¿äÃ»À» º¸³¾ ¶§ ±îÁö ½Ã°£.
	* @return Boolean ¼º°øÇÏ¸é true, ½ÇÆÐÇÏ¸é false¸¦ µ¹·ÁÁØ´Ù.
	**/
	this.setInterval = function(ms) {
		if(ms != null && !isNaN(new Number(ms))) {
			this.interval = parseInt(new Number(ms));
			return true;
		}
		else return false;
	}
	/**
	* ÁÖ±âÀûÀ¸·Î AJAX ¿äÃ»À» º¸³»µµ·Ï ÇÑ °ÍÀ» Ãë¼ÒÇÑ´Ù.
	* @type Function
	* @return Boolean ¼º°øÇÏ¸é true, ½ÇÆÐÇÏ¸é false¸¦ µ¹·ÁÁØ´Ù.
	**/
	this.clearInterval = function() {
		if(this._timer != null) {
			window.clearTimeout(this._timer);
			this._timer = null;
		}
		this.interval = null;
		return true;
	}
	/**
	* ¿äÃ»À» Ãë¼ÒÇÑ´Ù. ÁÖ±âÀûÀ¸·Î ¿äÃ»ÇÏµµ·Ï µÈ °æ¿ì¿¡´Â
	* ±× ¿äÃ»µµ ¸ØÃá´Ù.
	* @type Function
	* @return Boolean ¼º°øÇÏ¸é true, ½ÇÆÐÇÏ¸é false¸¦ µ¹·ÁÁØ´Ù.
	**/
	this.abort = function() {
		if(this._timer != null) {
			window.clearTimeout(this._timer);
			this._timer = null;
		}
		if(this._source != null) {
			this._source.abort();
			this.reset();	
		}
	}
	/**
	* ¸ðµç ÀÀ´ä Çì´õ¸¦ Map °³Ã¼·Î µ¹·ÁÁØ´Ù.
	* @type Function
	* @return Object Map °³Ã¼.
	**/
	this.getAllResponseHeaders = function() {
		return this.responseHeaders();
	}
	/**
	* ÀÌ¸§ÀÌ nameÀÎ ÀÀ´ä Çì´õÀÇ °ªÀ» µ¹·ÁÁØ´Ù.
	* @type Function
	* @return String ÀÀ´ä Çì´õÀÇ °ª.
	**/
	this.getResponseHeader = function(name) {
		if(typeof(this.responseHeaders.get(name)) == "undefined") {
			return null;
		}
		else {
			return this.responseHeaders.get(name);	
		}
	}
	/**
	* ¿äÃ» Çì´õ¸¦ ¼³Á¤ÇÑ´Ù.
	* @type Function
	* @return Boolean ¼º°øÇÏ¸é true, ½ÇÆÐÇÏ¸é false¸¦ µ¹·ÁÁØ´Ù.
	**/
	this.setRequestHeader = function(name, value) {
		this.requestHeaders.set(name, value);
	}
	/**
	* AJAX °³Ã¼¸¦ »ý¼ºÇÏ¿© µ¹·ÁÁØ´Ù.
	* @type Function
	* @return Object »ý¼ºµÈ AJAX °³Ã¼.
	**/
	this.createAjax = function() {
		if(ozNavigator.isIE4) {
		  return new ActiveXObject("Microsoft.XMLHTTP");  
		}  
		else if(ozNavigator.isMO1){
		  return new XMLHttpRequest();
		}  
		else {
		  return null;
		}
	}
	/**
	* AJAX °³Ã¼¸¦ ÃÊ±âÈ­ ÇÑ´Ù.
	* @param param ´ÙÀ½°ú °°Àº ¼Ó¼ºÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.<br/>
	* - async : µ¿±âÈ­ Åë½Å ¿©ºÎ. ±âº»°ªÀº true.<br/>
	* - documentURI : ¿äÃ»ÇÒ ÆäÀÌÁöÀÇ ÁÖ¼Ò.<br/>
	* - method : http Åë½Å ¹æ½Ä. get ¶Ç´Â post<br/>
	* - requestHeader : ¼­¹ö·Î º¸³¾ Çì´õ Map<br/>
	* - body : ¼­¹ö·Î º¸³¾ ³»¿ë. Map °³Ã¼<br/>
	* @type Function
	**/
	this.init = function(param) {
		if(param != null) {
			if(typeof(param.async) != "undefined") this.async = param.async;
			if(typeof(param.documentURI) != "undefined") this.documentURI = param.documentURI;
			if(typeof(param.method) != "undefined") this.method = param.method;
			if(typeof(param.requestHeader) != "undefined") this.requestHeader = param.requestHeader;
			if(typeof(param.body) != "undefined") this.body = param.body;
			if(typeof(param.onload) != "undefined") this.onload = param.onload;
			if(typeof(param.interval) != "undefined") this.interval = param.interval;
		}
	}
	this._source = this.createAjax();
	if(param != null) {
		this.init(param);	
	}
}