function CreateRequest()
{
var Request = false;

	if (window.XMLHttpRequest)
	{
	
	//Gecko-compatible browsers, Safari, Konqueror, Firefox, Opera 8.0+
	Request = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
		{
		//Internet explorer
		try
			{Request = new ActiveXObject("Microsoft.XMLHTTP");}
		catch (CatchException)
			{Request = new ActiveXObject("Msxml2.XMLHTTP");}
		}
/*
if (!Request)
	{alert("Your browser doesn't support AJAX technology!!!");}
*/
return Request;
} 
/*
r_method - GET,POST
r_path - path to action file
r_args - arguments a=1&b=2&c=3...
r_handler - javascript handler
*/



function SendRequest(r_method, r_path, r_args, r_handler)
{
var Request = CreateRequest();

if (!Request)return;
	
	
	if (r_args.length == 0) r_args="&Z=";

	if (r_method.toLowerCase() == "get")
	{	
		r_path += "?" + r_args;
		Request.open("GET",r_path,true);
		Request.setRequestHeader("charset","UTF-8");
		Request.setRequestHeader("Content-Type","text/xml");
        Request.setRequestHeader("Cache-Control","no-cache, must-revalidate");
		r_args = null;
	}
	else 
	if (r_method.toLowerCase() == "post")
	{
		Request.open("POST",r_path,true);
		
		Request.setRequestHeader("charset","UTF-8");
		Request.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
		//Request.setRequestHeader("Content-Type","text/xml");
		Request.setRequestHeader("Content-length",r_args.length);
		//Request.setRequestHeader("Connection", "close");
		Request.setRequestHeader("Cache-Control","no-cache, must-revalidate");
		
		
	}
	
	Request.send(r_args);
	Request.onreadystatechange = function()
	{
		if (Request.readyState == 4 && Request.status == 200){
			r_handler(Request.responseText);
			delete Request;
			Request = null;
			}
			else
			{
/*			
   				if (Request.readyState == 4 && Request.status == 404) {
    			r_handler(' Error while transferring data! ')
   				}
   				else
   				{
    			r_handler(' Loading... ');
   				}
*/
			}
	}
return;
}

/*
function urlencode(str) {
--str = str.replace(/\+/g, '%2B');
str = str.replace(/\+/g, '%252B');
str = str.replace(/\&/g, '%26');
--str = escape(str);
str = str.replace(/ /g, '+');
str = str.replace(/\-*-/g, '%2A');
str = str.replace(/\/-/g, '%2F');
str = str.replace(/@/g, '%40');
return str;
}
*/

function urlencode(str) {

str = str.replace(/\+/g, '%252B');
str = str.replace(/\&/g, '%26');
str = str.replace(/ /g, '+');

return str;
}





function replaceParenthesis(str){
str = str.replace(/\\/g, "\\\\");
str = str.replace(/'/g, "\\\'"); 
return str;
}



