var waitImg;
var console = null;
var reg = null;
var READY_STATE_UNINITIALIZED = 0;
var READY_STATE_LOADING = 1;
var READY_STATE_LOADED = 2;
var READY_STATE_INTERACTIVE = 3;
var READY_STATE_COMPLETE = 4;


//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Отправка запроса серверным скриптам
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
function sendRequest (url, insObject, wtImg, params, HttpMethod) {	
	if (!wtImg) {
		waitImg = '<div align="center" style="color:white"><img src="CMS/images/progress.gif"><br/><i>Загрузка...</i></div>';
	}
	else {
		waitImg = wtImg;
	}
	
	
	if (!HttpMethod) {
		HttpMethod = "GET";
	}
	
	if (!insObject) {
		console = "console";
	} else {
		console = insObject;
	}
	
	reg = initXMLHTTPRequest();
	if (reg) {		
		reg.onreadystatechange = onReadyState;
		reg.open(HttpMethod, url, true);
		reg.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		reg.send(params);		
	}
	
}


//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Инициализация объекта XMLHTTP
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
function initXMLHTTPRequest () {	
	var xRequest = null;
	if (window.XMLHttpRequest) {
		xRequest = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) {
		xRequest = new ActiveXObject("Microsoft.XMLHTTP");
	}	
	return xRequest;
}


//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Определение обработчика обратного вызова
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
function onReadyState () {		
	var ready = reg.readyState;
	var data = null;
	if (ready == READY_STATE_LOADING) {
		toConsole(waitImg);	
	}
	if (ready == READY_STATE_COMPLETE) {
		data = reg.responseText;
		toConsole(data);		
	}	
		
}


//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Вывод на страницу полученных данных с сервера
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
function toConsole (data) {
	var insObj = document.getElementById(console);
    
	insObj.style.display = 'none';
	while (insObj.hasChildNodes()) insObj.removeChild(insObj.lastChild); //очищаем содержимое div'а
		
	// если в данных, возвращаемых с сервера находится скрипт, то нужно его попробовать запустить
	// скрипт должен находится между тегами <script> и </script>
	if (data.toLowerCase().indexOf("script") != -1) {
		var str = data.substr(data.indexOf('<script>')+8);
		str = str.substring(str.lastIndexOf('</script>'),0-str.lastIndexOf('</script>'));		
		eval(str);
		data = data.substr(data.indexOf('</script>')+9);
	}		
	
	insObj.innerHTML += data;
	insObj.style.display = 'block';
}