/*var httpRequest = createHttpRequest();
var resultId = '';

function createHttpRequest()
{
	var httpRequest;
	var browser = navigator.appName;
	
	if (browser == "Microsoft Internet Explorer") {
	httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
	httpRequest = new XMLHttpRequest();
	}

return httpRequest;
}


function sendRequest(file, _resultId, getRequestProc) 
{
	resultId = _resultId;
	document.getElementById(resultId).innerHTML = 'Подождите, идет загрузка...';
	httpRequest.open('get', file);
	httpRequest.onreadystatechange = getRequestProc;
	httpRequest.send(null);
	}
	
	function getRequest() 
	{
		if (httpRequest.readyState == 4) {
		document.getElementById(resultId).innerHTML = httpRequest.responseText;
	}
}*/

function str_replace(search, replace, subject){
       var ra = replace instanceof Array,
               sa = subject instanceof Array,
               l = (search = [].concat(search)).length,
               replace = [].concat(replace),
               i = (subject = [].concat(subject)).length;
       while(j = 0, i--)
               while(subject[i] = subject[i].split(search[j]).join(ra ? replace[j] || "" : replace[0]), ++j < l);
       return sa ? subject : subject[0];
}



function new_ajax(fail,sloi)
{
	fail=str_replace('&amp;','&',fail);
	var ro;//создаем  глобальную переменную ro
	try {ro = new ActiveXObject("Msxml2.XMLHTTP");}//как было уже сказано выше программный код, в котором возможно возникновение исключения(в нашем случае возникновение переменной, а если она не возникла, то управление передается обычным образом оператору, следующему за try, тоесть catch)
	catch(e)
		  {
			try
			   {
				ro = new ActiveXObject("Microsoft.XMLHTTP");//аналогичная ситуация складывается и здесь
			   }
			catch(f)
			   {
				ro = null;
			   }
		  }
	if(!ro && typeof(XMLHttpRequest) != 'undefined')//проверка нужна, чтобы наш Ajax сработал в браузере Mozilla/Netscape/Firefox (короче на движке Gecko)
		{
		 ro = new XMLHttpRequest();
		}
	try {
		ro.open('GET', fail);//открываем наш XML - фаил
		ro.onreadystatechange = response_callback;//Выполняем функцию response_callback которая написана ниже
		ro.send(null);
		}
	catch(e)
		{
		}
function response_callback()//функця callback-а ей требуется проверять 2-а значения. Первая - ждать, когда состояние объекта req изменится на 4 (означающее, что процесс получения документа с сервера закончен). Второе, это проверить HTTP-статус ответа. Вы знаете, что код 404 означает "файл не найден" и 500 - "произошла ошибка на сервере". Но нам нужен старый добрый код 200 ("все ОК"), который означает, что на сервере наш запрос был успешно выполнен. Если мы получили и состояние 4 и код 200, мы можем продолжать выполнение нашего скрипта и обрабатывать результаты, полученные от сервера.
	{
		document.getElementById(sloi).innerHTML = '';
		  try {
				if((ro.readyState == 4) && (ro.status == 200))//проверяем эти 2-а значения
					{
						var response = ro.responseText;//Получаем в переменную response весь код XML - фаила
						//alert("получен XML-фаил следующего содержания:nn" + response); //Выводим его содержимое, только для себя. 
						document.getElementById(sloi).innerHTML = response;//эта DHTML, с помощью него мы присвоим свойству id с именем reload наше содержимое XML-файла
					}
			  }
		  catch(e)//А это нужно, чтобы у нас небыло никаких ошибок
			  {
			  }
	}
return (ro)	;
}
