function init_ajax(){
    if (window.XMLHttpRequest) {
        try {
            return new XMLHttpRequest();
        } catch (e){}
    } else if (window.ActiveXObject) {
        try {
            return new ActiveXObject('Msxml2.XMLHTTP');
        } catch (e){
          try {
              return new ActiveXObject('Microsoft.XMLHTTP');
          } catch (e){}
        }
    }
    return null;
}


function loadDocAsync(link){

  var req;
  if (window.XMLHttpRequest){
     req = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
     req = new ActiveXObject("Microsoft.XMLHTTP");
  }

  if (req){
	req.onreadystatechange = function () {
	    try{
        	if (req.readyState == 4) {
        		if (req.status != 200) {
        			alert('Невозможно получить данные с сервера: ' + req.statusText);
        		}
        	}
	    }
	    catch(e){
	    	// ---
	    }
  	}

	if(/\?/.test(link))
		link = link  + '&' + Math.random();
	else
		link = link  + '?' + Math.random();
	
	var n=1;
	//while(n++<5){
		req.open("GET", link, false);
		req.send(null);
		if(req.status == 200){
			return req.responseText;
		}
	//}
  }
}

function loadDoc(link, id){
  req=init_ajax();

  if (req){
     req.onreadystatechange = function () {
        // Статус 4 означает успешное выполнение
        if (req.readyState == 4) {

          if (req.status == 200) {
             var response = req.responseText;
             document.getElementById(id).innerHTML = response;
          } else {
            alert('Невозможно получить данные с сервера: ' + req.statusText);
          }
        }
     }

     if(/\?/.test(link))
      link = link  + '&' + Math.random();
     else
      link = link  + '?' + Math.random();


     req.open("GET", link, true);
     req.send(null);
  }
}

