/*
// XML Loading Function
// Author: Lomanto, Paulo H.
// Last Change: 2005-12-27
// Current Version: 1.07
// Last Revisions
//   1.09: 
//   1.08: self.xml now is not required (for simple GET operations)
//   1.07: Added support for IE 5.0 and Safari
//         Checks if get or post file exists
*/

var xml = function() {
	var self = this;

	this.file   = null;
	this.ret    = null;
	this.xml    = '';
	this.xmlDoc = null;
	this.transf = 'POST';

	var xmlhttp = null;

	this.load = _load;

	function _load() {
		if (self.file != '' && self.ret != '') {
			try {
				self.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e1) {
				try {
					self.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e2) {
					if (!self.xmlhttp && typeof XMLHttpRequest!='undefined') {
						self.xmlhttp = new XMLHttpRequest();
					}
				}
			}
			if (self.xmlhttp != null) {
				self.xmlhttp.onreadystatechange = _testReadyStateSend;
				self.xmlhttp.open(self.transf,self.file,true);
				self.xmlhttp.send(self.xml);
			}
		} else {
			return false;
		}
	}


	function _testReadyStateSend() {
		if (self.xmlhttp.readyState == 4) {
			if (self.xmlhttp.status == '200') {
				_evalInternalGet();
			} else {
				return false;
			}
		}
	}

	function _testReadyStateReturn() {
		if (self.xmlDoc.readyState == 4) {
			_evalReturn();
		}
	}

	function _evalReturn() {
		var retFunc = '';
		if (typeof(self.ret) == 'function') {
			eval('new self.ret');
		}
	}
	function _evalInternalGet() {
		/*if (document.implementation && document.implementation.createDocument) {
			self.xmlDoc = document.implementation.createDocument("", "", null);
			self.xmlDoc.onload = _evalReturn;
			Document.prototype.loadXML = function(str){
											var DOMParser = new DOMParser();
											var DOMDocument = DOMParser.parseFromString(str, "text/xml")
										};
		} else if (window.ActiveXObject) {
			self.xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
			self.xmlDoc.onreadystatechange = _testReadyStateReturn;
		} else {
			return false;
		}*/

		/*
		try {
			self.xmlDoc.loadXML(self.xmlhttp.responseText);
		} catch (e1) {
			var domParser = new DOMParser();
			var domDocument = domParser.parseFromString(self.xmlhttp.responseText, "text/xml");
			alert(domDocument)
			self.xmlDoc.load(domDocument);
			//self.xmlDoc.loadXML(self.xmlhttp.responseText);
			//alert(self.xmlhttp.responseText);
			//self.xmlDoc.load(self.file);
		}
		self.xmlDoc.loadXML(self.xmlhttp.responseText);
		*/
		self.xmlDoc = self.xmlhttp.responseXML;
		_evalReturn();
		
	}
}
