charset = 'utf-8';

function CreateXMLHttp()
{
	if (typeof XMLHttpRequest != "undefined") {
		return new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		// "MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0",
		var aVersions = ["MSXML2.XMLHttp","MSXML.XMLHttp"];
		for (var i = 0; i < aVersions.length; i++)
		try {
			var oXmlHttp = new ActiveXObject(aVersions[i]);
			return oXmlHttp;
		} catch (oError) {
			//sss
		}
	}
	throw new Error("Не установлена библиотека MSXML.");
}

function EvalAJAXScripts(obj)
{
	var error_scripts = new Array();
	var scripts_arr = obj.getElementsByTagName("script");
	for(var i in scripts_arr)
	{
		if (scripts_arr[i].text != null && scripts_arr[i].text != "undefined" && scripts_arr[i].text != "") eval(scripts_arr[i].text);
	}
}

function send_data(url_link,response_function)
{
	var state_div = document.getElementById('status-panel-center');
	if (state_div != null && state_div != "undefined") state_div.innerHTML = 'Состояние: запрос.';
	window.status = 'Состояние: запрос.';
	
	var oXmlHttp = CreateXMLHttp();
	oXmlHttp.open("get",url_link,true);
		
	oXmlHttp.onreadystatechange = function ()
	{
		var state_div = document.getElementById('status-panel-center');
		
		if (oXmlHttp.readyState == 4){
			if (oXmlHttp.status == 200)
			{
				if (state_div != null && state_div != "undefined") state_div.innerHTML = state_ready;
				window.status = state_ready;
				
				if (response_function != null && response_function!="")
				{
					var el = document.getElementById(response_function);
					if (el!=null&&el.innerHTML!="undefined")
					{
						el.innerHTML = oXmlHttp.responseText;
						if (oXmlHttp.responseText != "") EvalAJAXScripts(el);
					} else {
						response_function(oXmlHttp.responseText);
					}
				}
			} else {
				if (state_div != null && state_div != "undefined") state_div.innerHTML = state_error;
				window.status = state_error;
				alert('Error linked:'+url_link);
			}
		}
	}
	oXmlHttp.setRequestHeader("Content-Type", "text/xml; charset="+charset);
	oXmlHttp.send(null);
	if (state_div != null && state_div != "undefined") state_div.innerHTML = state_waiting;
	window.status = state_waiting;
}

function send_post_data(url_link,form,response_function,as_var)
{
	var oForm = document.getElementById(form);
	if (as_var!=null&&as_var==true)	var sBody = form;
	else var sBody = getRequestBodyURI(form);
	var oXmlHttp = CreateXMLHttp();
	oXmlHttp.open("post",url_link,true);

	oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	oXmlHttp.onreadystatechange = function ()
	{
		if (oXmlHttp.readyState == 4){
			if (oXmlHttp.status == 200)
			{
				if (response_function!="")
				{
					var el = document.getElementById(response_function);
					if (el!=null&&el.innerHTML!="undefined")
					{
						el.innerHTML = oXmlHttp.responseText;
						EvalAJAXScripts(el);
					} else {
						response_function(oXmlHttp.responseText);
					}
				}
			} else {
				alert('Error');
			}
		}
	}
	//alert(sBody)
	oXmlHttp.send(sBody);
}

function send_unit_data(url_link,response_function)
{
	var state_div = document.getElementById('status-panel-center');
	if (state_div != null && state_div != "undefined") state_div.innerHTML = 'Состояние: запрос.';
	window.status = 'Состояние: запрос.';
	
	var oXmlHttp = CreateXMLHttp();
	oXmlHttp.open("get",url_link,true);
	oXmlHttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
	oXmlHttp.onreadystatechange = function ()
	{
		var state_div = document.getElementById('status-panel-center');
		
		if (oXmlHttp.readyState == 4){
			if (oXmlHttp.status == 200)
			{
				if (state_div != null && state_div != "undefined") state_div.innerHTML = state_ready;
				window.status = state_ready;
				if (response_function == null || response_function == "undefined") eval(oXmlHttp.responseText);
				else
				{
					var el = document.getElementById(response_function);
					if (el!=null&&el.innerHTML!="undefined")
					{
						el.innerHTML = oXmlHttp.responseText;
						EvalAJAXScripts(el);
					} else {
						response_function(oXmlHttp.responseText);
					}
				}
			}
			else
			{
				if (state_div != null && state_div != "undefined") state_div.innerHTML = state_error;
				window.status = state_error;
			}
		}
	}
	oXmlHttp.send(null);
	if (state_div != null && state_div != "undefined") state_div.innerHTML = state_waiting;
	window.status = state_waiting;
}

function send_data_sync(url_link)
{
	var state_div = document.getElementById('status-panel-center');
	if (state_div != null && state_div != "undefined") state_div.innerHTML = 'Состояние: запрос.';
	
	var oXmlHttp = CreateXMLHttp();
	oXmlHttp.open("get",url_link,false);
	oXmlHttp.setRequestHeader("Content-Type", "text/xml; charset="+charset);
	oXmlHttp.send(null);
	
	if (oXmlHttp.readyState == 4)
	{
		if (oXmlHttp.status == 200)
		{
			if (state_div != null && state_div != "undefined") state_div.innerHTML = state_ready;
			
			return oXmlHttp.responseText;
		} 
		else
		{
			if (state_div != null && state_div != "undefined") state_div.innerHTML = state_error;
			return null;
		}
	}
}

function insert_text(elem,text,to)
{
	var res = document.getElementById(elem);
	if (to == null) to = 'innerHTML';
	if (res[to]!=null) res[to] = text;
	else return false;
	
	return true;
}

function resp(data)
{
	alert(data);
}
