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(url,  func)
{
    var req = AjaxCreate();
    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.textContent? obj.textContent : ( obj.firstChild.nodeValue ? obj.firstChild.nodeValue : obj.nodeValue ) );
}

function getEl(id)
{
    return document.getElementById(id);
}

function _wGetTxt(obj)
{
    if (obj != null)
	    return (obj.textContent? obj.textContent : ( obj.firstChild.nodeValue ? obj.firstChild.nodeValue : obj.nodeValue ) );
    else 
        return '';
}

function _wGetAttr(el,attr)
{
	return el.getAttribute(attr);
}
function ge(id)
{
    return document.getElementById(id);
}

function checkmail(value) 
{
	reg = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/;
	return value.match(reg);
}
