var xmlHttp = false;
var wnd;
var ajaxanswercontainer;
var ajaxloadingicon;

function createAjax()
{
	try
	{
		xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch (e)
	{
		try
		{
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (e2)
		{
			xmlHttp = false;
		}
	}

	if (!xmlHttp && typeof XMLHttpRequest != 'undefined')
	{
		xmlHttp = new XMLHttpRequest();
	}
}

function callServer(url)
{
	if(!xmlHttp)
		createAjax();

	// Открыть соединение с сервером
	xmlHttp.open("GET", url, true);

 	// Установить функцию для сервера, которая выполнится после его ответа
	xmlHttp.onreadystatechange = updatePage;

	// Передать запрос
	xmlHttp.send(null);
}

function updatePage()
{
	if (xmlHttp.readyState == 4)
	{
		var response = xmlHttp.responseText;

//		var reg = /<script +(type *= *"text\/javascript")? +src *= *"([a-zA-z0-9\/\.]+.js)" *\/?>/;
	//	var result = reg.exec(response);
		//if(result && result[2])
		//{
	//		addScriptSrc(result[2]);
	//	}
			
		if(ajaxloadingicon)
		{
			document.getElementById(ajaxloadingicon).style.display = 'none';
		}
		if(ajaxanswercontainer)
		{
			var elem = document.getElementById(ajaxanswercontainer);
			if(elem.style.display == 'none')
				elem.style.display = 'block';
			elem.innerHTML = response;
			
			reg = /<script[^>]*?>([\w\W]*?)<\/script>/;
			result = reg.exec(response);
			if(result && result[1])
			{
				addScript(result[1]);
			}
		}
	}
}

function getRequestBody(oForm)
{ 
	var aParams = new Array();
	for(var i = 0; i < oForm.elements.length; i++)
	{
		var sParam = encodeURIComponent(oForm.elements[i].name);
		sParam += "=";
		sParam += encodeURIComponent(oForm.elements[i].value);
		aParams.push(sParam);
	}
	return aParams.join("&");
}

function postServer(oForm)
{
	var sBody = getRequestBody(oForm);
	
	if(!xmlHttp)
		createAjax();
        
	xmlHttp.open("POST",oForm.action, true);
	xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        
	xmlHttp.onreadystatechange = updatePage;
     
	xmlHttp.send(sBody);
}

function scriptLoaded()
{
	if(result && result[2])
	{
		eval(result[2]);
	}
}

function addScriptSrc(url)
{
	var script = document.createElement('script');
	script.type = 'text/javascript';
	script.src = url;
	document.getElementsByTagName('head')[0].appendChild(script);
}

function addScript(scr)
{
	var script = document.createElement('script');
	script.setAttribute('type', 'text/javascript');
	var scrtext = document.createTextNode(scr);
	script.text = scr;
//	script.appendChild(scrtext);	doesn't work in IE
	document.getElementsByTagName('body')[0].appendChild(script);
}
