if( !window.XMLHttpRequest ) XMLHttpRequest = function(){
	try{ return new ActiveXObject('MSXML3.XMLHTTP') }catch(e){}
	try{ return new ActiveXObject('MSXML2.XMLHTTP.3.0') }catch(e){}
	try{ return new ActiveXObject('Msxml2.XMLHTTP') }catch(e){}
	try{ return new ActiveXObject('Microsoft.XMLHTTP') }catch(e){}
	throw new Error('Страница не может быть выполнена. Ваш обозреватель не поддерживает объект XMLHttpRequest')
};
var rootPath='http://'+location.hostname+'/'
function xmlToJs_QN(url, method, body, callbackfunction)
{
	var request=null;
	request=new XMLHttpRequest();
	if(request!=null)
	{
		request.onreadystatechange=function() {
			if(request.readyState == 4)
			{

				var ret=new Object;
				if(request.status == 200)
				{
					var response=request.responseXML.documentElement;
					
					if(response.hasChildNodes())
					{
						ret=convertXmlToJs_QN(response);
					}
				}
				callbackfunction(ret, request.status);
			}
		};
		request.open(method,url,true);
		request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=windows-1251');
		if(body!=null)
		{
			request.setRequestHeader('Content-length', body.length);
			request.setRequestHeader('Connection', 'close');
		}
		request.send(body);
	}
	else
	{
		alert('Операция не может быть выполнена. Ваш обозреватель не поддерживает объект XMLHttpRequest');
	}
}

function convertXmlToJs_QN(node)
{
	
	if(node.nodeName.toLowerCase()=='n')
	{
		return null;
	}
	else if(node.nodeName.toLowerCase()=='i')
	{
		if(node.firstChild==null)
			return 0;
		return Math.floor(node.firstChild.nodeValue*1);
	}
	else if(node.nodeName.toLowerCase()=='f')
	{
		if(node.firstChild==null)
			return 0.0;
		return node.firstChild.nodeValue*1.0;
	}
	else if(node.nodeName.toLowerCase()=='b')
	{
		if(node.firstChild==null)
			return false;
		return new Boolean(node.firstChild.nodeValue==1);
	}
	else if(node.nodeName.toLowerCase()=='s')
	{
		var s='';
		for( var cn = 0 ; cn < node.childNodes.length ; cn++ )
		{
			s=s+node.childNodes[cn].nodeValue;
		}
		return s;
	}
	else if(node.nodeName.toLowerCase()=='o')
	{
		var o=new Object();
		if (node.hasChildNodes())
		{
			var children=node.childNodes, i;
			for(i=0;i<children.length;i++)
			{
				if(children[i].nodeType==1&&children[i].attributes.getNamedItem('n')!=null)
				{
					eval('o.'+children[i].attributes.getNamedItem('n').nodeValue+'=convertXmlToJs_QN(children[i])');
				}
			}
		}
		return o;
	}
	else if(node.nodeName.toLowerCase()=='a')
	{
		var a=new Array();
		if (node.hasChildNodes())
		{
			var children=node.childNodes, i, j=0;
			for(i=0;i<children.length;i++)
			{
				if(children[i].nodeType==1)
				{
					a[j++]=convertXmlToJs_QN(children[i]);
				}
			}
		}
		return a;
	}
	return null;
}
