function comajxuCreateHTTPRequest()
{
	/* W3Schools - steal
	var lResult;
	alert(window.XMLHttpRequest);
	if (window.XMLHttpRequest)
  	{// code for IE7+, Firefox, Chrome, Opera, Safari
  		lResult = new XMLHttpRequest();
  	}
	else
  	{// code for IE6, IE5
  		lResult = new ActiveXObject("Microsoft.XMLHTTP");
  	}
	
  	return lResult;
  	*/
	var lResult;
 	try 
	{// Firefox, Opera 8.0+, Safari
		lResult = new XMLHttpRequest();
	} 
	catch (e) 
	{// Internet Explorer
		try 
		{
			lResult = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e) 
		{
			try 
			{
				lResult = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (e) 
			{
				alert("AJAX не поддерживается");
				return false;
			}
		}
	}
	return lResult;
}

function comajxuSendGet(AURI)
{
	var lhttpReq = comajxuCreateHTTPRequest();
	lhttpReq.open("GET", AURI, true);
	lhttpReq.send();
}

function comajxuSendGetWithCallback(AURI, AOnSuccess, AOnFail)
{
	var lhttpReq = comajxuCreateHTTPRequest();  	
	lhttpReq.onreadystatechange = function()
	{
		if (this.readyState == 4)
		{
			if(this.status == 200) 
			{
				if (this.responseText == "AUTHFAIL")
				{
					window.location.reload();
				}
				else
				{
					AOnSuccess(this);
				}
			} 
			else 
			{
				AOnFail(this);
			}
		}
	}   	
	lhttpReq.open("GET", AURI, true);
	lhttpReq.send();
}

function comajxuSendPostWithCallback(AURI, AParams, AOnSuccess, AOnFail)
{
	var lhttpReq = comajxuCreateHTTPRequest();  	
	lhttpReq.open("POST", AURI, true);
	lhttpReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	lhttpReq.setRequestHeader("Content-length", AParams.length);
	lhttpReq.setRequestHeader("Connection", "close");	
	lhttpReq.onreadystatechange = function()
	{
		if (this.readyState == 4)
		{
			if(this.status == 200) 
			{
				if (this.responseText == "AUTHFAIL")
				{
					window.location.reload();
				}
				else
				{
					AOnSuccess(this);
				}
			} 
			else 
			{
				AOnFail(this);
			}
		}
	}
	lhttpReq.send(AParams);
}

function comajxuSyncSendPost(AURI, AParams)
{
	var lhttpReq = comajxuCreateHTTPRequest();  	
	lhttpReq.open("POST", AURI, false);
	lhttpReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	lhttpReq.setRequestHeader("Content-length", AParams.length);
	lhttpReq.setRequestHeader("Connection", "close");	
	lhttpReq.send(AParams);
	return lhttpReq;
}

function GetUrlStringByObjID(AObjID)
{
	obj = document.getElementById(AObjID);
	
	if (!obj)
	{
		return "";
	} 
	
	if (obj.type != "checkbox")
	{	 	 
		return "&" + obj.id + "=" + encodeURIComponent(obj.value);
	}
	else
	{
		if(obj.checked || obj.getAttribute("checked") == "true" || obj.getAttribute("checked") == "checked")
		{
			return "&" + obj.id + "=1";
		}
		else
		{
			return "&" + obj.id + "=0";
		}
	}
}

function GetUrlStringByObjIDArray(AObjectIDs)
{
	var lUrl = "";
	for (var i = 0; i < AObjectIDs.length; i++)
	{
		lUrl = lUrl + GetUrlStringByObjID(AObjectIDs[i]);
	}
	return lUrl;
}

function GetUrlStringByObjIDWName(AFieldName, AObjID)
{
	obj = document.getElementById(AObjID);
	if (!obj)
	{
		return "";
	}
	return "&" + AFieldName + "=" + encodeURIComponent(obj.value);
}

function GetUrlStringByObjIDArrayWNamesArray(AFieldNames, AObjectIDs)
{
	var lUrl = "";
	if (AFieldNames.length != AObjectIDs.length)
	{
		return "";
	}
	for (var i = 0; i < AObjectIDs.length; i++)
	{
		lUrl = lUrl + GetUrlStringByObjIDWName(AFieldNames[i], AObjectIDs[i]);
	}
	return lUrl;	
}


function SetDisplayElement(AElementID, AVisible)
{
	document.getElementById(AElementID).style.display = AVisible ? '' : 'none';
}

function SetInnerHTML(AElementID, AHTML)
{
	document.getElementById(AElementID).innerHTML = AHTML;
}

function EmptyAjxErrorHandler()
{
	
}

