var http_request = false;

function makePOSTRequest(url, parameters) 
{
	try {
		http_request = false;
		if (window.XMLHttpRequest) 
		{ // Mozilla, Safari,...
			http_request = new XMLHttpRequest();
			if (http_request.overrideMimeType) 
			{
				// set type accordingly to anticipated content type
				//http_request.overrideMimeType('text/xml');
				http_request.overrideMimeType('text/html');
			}
		}
		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) 
		{
			alert('Cannot create XMLHTTP instance');
			return false;
		}
		
		if(parameters) {
			http_request.onreadystatechange = alertContents;
			http_request.open('POST', url, true);
			http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			http_request.setRequestHeader("Content-length", parameters.length);
			http_request.setRequestHeader("Connection", "close");
			http_request.send(parameters);
			//alert('posted');
		}else{
			http_request.onreadystatechange = alertContents;
			http_request.open('GET', url, true);
			http_request.send(null);
		}

		return true;	
	}
	catch (e) {
		alert(e);
		return false;
	}
}

function alertContents() 
{
	var readyState = "";
	var requestStatus = "";
	
	try{ readyState = http_request.readyState; }
	catch(e) { alert("Trying to check readyState: "+e); }
	
	if (readyState == 4) 
	{
		try{ requestStatus = http_request.status; }
		catch(e) { alert("Trying to check request status: "+e); }
		
		if (requestStatus == 200) 
		{

			result = http_request.responseText;

			lines = result.split("\n");
			if(lines[0] == "error")
			{
				updateCaptcha();
				lines[0] = "";
				result = lines.join("\n");
				document.getElementById(responseElement).innerHTML = textBefore + result + textAfter;
				document.getElementById("submitButton").disabled = false;
			}
			else if(lines[0] == "success")
			{
				window.location = lines[1];
				showConfirmation();
			}
			else if(lines[0] == "callback")
			{
				lines[0] = "";
				result = lines.join("\n");
				document.getElementById(containerElement).innerHTML = result;
			}
			else
			{
				updateCaptcha();
				document.getElementById(responseElement).innerHTML = textBefore + result + textAfter;
				document.getElementById("submitButton").disabled = false;
			}
			
			return true;
		}
		else
		{
			alert("Attempting to locate dispatcher, but found only: "+requestStatus);
		}
	}
	else
	{
		return false;
	}
}

function updateCaptcha()
{
	try
	{
		im = document.getElementById('captcha');
		src = im.src;
		im.src = src + "&amp;rand=" + Math.random();
	}
	catch(e)
	{
	
	}
}