function AjaxCreate()
{
	var req; 
	if (window.XMLHttpRequest)      // normal browser 
	{ 
	    req = new XMLHttpRequest();    
	}  
	else if (window.ActiveXObject)      //IE 
	{  
	    try { 
	        req = new ActiveXObject('Msxml2.XMLHTTP');  
	    } catch (e){}                                   
	    try {                                           
	        req = new ActiveXObject('Microsoft.XMLHTTP'); 
	    } catch (e){} 
	} 

	return req;
}
 
function AjaxRequest(req, url,  func)
{
	req.open("GET", url, true); 
    //req.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
    req.setRequestHeader("Content-Type", "text/xml; charset=windows-1251");
		
	req.onreadystatechange = function()  
	    { 
    		if (req.readyState == 4) {
		    	var status = req.status;
		    	if (status == 200) {

				//alert(req.responseText);
				//alert(req.responseXML);

				func(req.responseText,req.responseXML);

		    	} else if (status == 400) {
		    		//alert('Wrong request!');
		    	} else if (status == 500) {
		    		//alert('Server Error (500)'+url);
		    	} else if (status == 503) {
				var time = req.getResponseHeader('Retry-After')*1000;
				//alert('Сервер перегружен. Запрос будет повторен через: '+time+' секунд');
				//setTimeout(AjaxRequest(req,url,workfn),time);
		    	} else {
		    		//var er = 'Wrong server response - error '+status;
		    		//alert(er);
		    	}
		    }
	    }
	req.setRequestHeader("Content-Type", "text/xml");
	req.send(null); 
}


function AjaxXmlRequest(xmlString,url,func)
{
	  xmlHttp = AjaxCreate();
	  xmlHttp.open("POST", url, true);
	  xmlHttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");

	  xmlHttp.onreadystatechange = function (){
    		if (xmlHttp.readyState == 4) {
		    	var status = xmlHttp.status;
		    	if (status == 200) {
		    		//alert('Successfully sent');
				func(xmlHttp.responseText,xmlHttp.responseXML);
		    	} else if (status == 400) {
		    		//alert('Wrong request!');
		    	} else if (status == 500) {
		    		//alert('Server Error (500)');
		    	} else if (status == 503) {
				//alert('need to retry');
				//alert('Server is busy. Запрос будет повторен через: '+time+' секунд');
				//setTimeout(AjaxRequest(req,url,workfn),time);
		    	} else {
		    		//var er = 'Wrong server response - error '+status;
		    		//alert(er);
		    	}
		    }
	  }

	  xmlHttp.send(xmlString);
}
function _wGetTxt(obj)
{
	 return obj ? (obj.textContent? obj.textContent : ( obj.firstChild.nodeValue ? obj.firstChild.nodeValue : obj.nodeValue ) ) : "";
}

function gexml(obj)
{
	 return obj ? (obj.textContent? obj.textContent : ( obj.firstChild.nodeValue ? obj.firstChild.nodeValue : obj.nodeValue ) ) : "";
}
