function adrHTMLRequest_Create(URL, async) 
{ 
    var http_request = false;
    if (window.XMLHttpRequest) //Other browser
    {
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) http_request.overrideMimeType('text/xml');
    } else 
    if (window.ActiveXObject)  //IE
    {  
		try { 
		http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
		} 
	    catch (e) {
			try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } 
			catch (e) {} 
		}
    }
    if (!http_request) { return false;
    } else 
	{
		//http_request.onreceive =  function(http_req) {};
		//window.alert("Debug: Starting ajax setup setup");
		//http_request.onresponse = function(http_req) {};
		//window.alert("Debug: Step2");
		
		//http_request.runJavaScript = function(http_request)
		//{
		//	if (http_request.getResponseHeader('Content-Type').substr(0,15) == "text/javascript") 
		//		eval(http_request.responseText);
		//}
		http_request.onreadystatechange = function()
		{
			//http_request.onresponse(http_request);
			//if (http_request.readyState==4)
			//{
			//	http_request.onreceive(http_request);
			//	http_request.runJavaScript(http_request);
			//}
		}
		if (URL != null)
		{
		   	http_request.open("POST", URL, async==null?"true":async);
			http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
		}
		return http_request;
	}
}

function adrHTMLRequest(URL, PostData, ReceiveFunction)
{
	var async = ReceiveFunction != null;
	var http_request = adrHTMLRequest_Create(URL, async);
	if (async)
		http_request.onreadystatechange = ReceiveFunction;
	http_request.send(PostData);
	return http_request;
}

function FormSerialize(aForm)
{
	formElements = aForm.elements;
	postData = "";
	for (var i=0;i<formElements.length;i++)
	{
		if (formElements[i].tagName == "TEXTAREA" && formElements[i].getAttribute("name"))
			postData += "&"+formElements[i].getAttribute("name")+"="+formElements[i].value;
			if (formElements[i].tagName == "SELECT" && formElements[i].getAttribute("name"))
			for (var j=0;j<formElements[i].options.length;j++)
				if (formElements[i].options[j].selected)
				postData += "&"+formElements[i].getAttribute("name")+"="+formElements[i].options[j].value;
			
		if (formElements[i].tagName == "INPUT" && formElements[i].getAttribute("name"))
		switch (formElements[i].getAttribute("type"))
		{
			case "checkbox":
			case "radio":
					if (formElements[i].checked)
					postData += "&"+formElements[i].getAttribute("name")+"="+formElements[i].getAttribute("value");
				break;
			case "file":
				break;
			case "text":
			case "hidden":
			default:
					postData += "&"+formElements[i].getAttribute("name")+"="+formElements[i].getAttribute("value");
				break;
		}
	}
	return postData.substr(1);
}
function FormSerializeById(formId)
{
	aForm = document.getElementById(formId);
	return FormSerialize(aForm);
}
