function HttpRequest(url, data, event, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) {
	var req = null;
    try {
		req = new XMLHttpRequest();
	} catch(e) {
		req = null;
	} // end try
	if (!req) {
	    try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			req = null;
		} // end try
	} // end if
	if (!req) {
	    try {
			req = new ActiveXObject("Microsoft.XMLHTTP");
		} catch(e) {
			req = null;
		} // end try
	} // end if
	if (!req) {
		alert("Компонент, необходимый для корректной работы AJAX, отсутствует на Вашем компьютере.");
		return;
	} // end if
	try {
		req.onreadystatechange =
			function () {
				if (req.readyState == 4) {
					if (event) event(req.status, req.responseText, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);
				} // end if
			} // end event
		if (Math.random) url = url + (url.indexOf('?') < 0 ? '?' : '&') + 'random=' + escape(Math.random() * 100000);
		if (data) {
			req.open("POST", url, true);
			req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			req.send(data);
		} else {
			req.open("GET", url, true);
			req.send("");
		} // end if
	} catch(e) {
		if (event) event(null, null, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);
	} // end try
} // end function

function XmlRootByText(text) {
	var dom = null;
	try {
		dom = new DOMParser();
		if (dom) dom = dom.parseFromString(text, "text/xml");
		if (dom) dom = dom.documentElement;
	} catch(e) {
		dom = null;
	} // end try
	if (!dom) {
	    try {
			dom = new ActiveXObject("Msxml2.DOMDocument");
			if (!dom.loadXML(text)) dom = null;
			if (dom) dom = dom.firstChild;
		} catch(e) {
			dom = null;
		} // end try
	} // end if
	if (!dom) {
	    try {
			dom = new ActiveXObject("Microsoft.DOMDocument");
			if (!dom.loadXML(text)) dom = null;
			if (dom) dom = dom.firstChild;
		} catch(e) {
			dom = null;
		} // end try
	} // end if
	return dom;
} // end function

function GetXmlAttributeValue(node, attrName) {
	var attr;
	if ((node) && (attr = node.attributes.getNamedItem(attrName))) {
		return attr.value;
	} else {
		return "";
	} // end if
} // end function

function GetXmlNodeValue(node) {
	if ((node) && (node.text)) {
		return node.text;
	} else if ((node) && (node.firstChild) && (node.firstChild.nodeValue)) {
		return node.firstChild.nodeValue;
	} else {
		return "";
	} // end if
} // end function

function GetXmlNodeByTagName(parent, tagName) {
	if ((parent) && (parent.childNodes)) {
		var i;
		for (i = 0; i < parent.childNodes.length; i++) {
			if (parent.childNodes[i].tagName == tagName) return parent.childNodes[i];
		} // end for
	} // end if
	return null;
} // end function

function GetXmlNodesByTagName(parent, tagName) {
	if ((parent) && (parent.childNodes)) {
		return parent.getElementsByTagName(tagName);
	} else {
		return new Array();
	} // end if
} // end function

