var initValue;
var loading = false;
var text = new Array("name", "email", "subject", "message");
var buttons = new Array("submit", "reset");
var checkboxes = new Array("sendcopy");

function sendmail()
{
	loading = true;
	buttonLoading(1);
	var xhr = null;
	
	params = "";
	for(i=0; i<text.length; i++)
	{
		if(i>0) params += "&";
		params += text[i]+"="+encodeURI(document.getElementById(text[i]).value);
	}
	for(j=0; j<checkboxes.length; j++)
	{
		if(i>0 || j>0) params += "&";
		params += checkboxes[j]+"="+(document.getElementById(checkboxes[j]).checked ? 1 : 0);
	}
	
	if(window.XMLHttpRequest) xhr = new XMLHttpRequest();
	else if(window.ActiveXObject)
	{
		try
		{
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	else
	{
		alert("AJAX is not supported..."); 
		xhr = false; 
	}
	
	xhr.onreadystatechange = function()
	{
		if(xhr.readyState==4 && xhr.status==200)
		{
			returnResponseText(xhr.responseText);
		}
	}
	
	xhr.open("POST", "ajax-sendmail-server", true);
	xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xhr.send(params);
	
	return false;
}

function returnResponseText(r)
{
	if(r=="[1]")
	{
		showResult("ok");
		// Clear form
		for(i=0; i<text.length; i++)
		{
			document.getElementById(text[i]).value = "";
		}
		buttonLoadingText(0);
	}
	else if(r=="[0]")
	{
		showResult("failed");
		buttonLoadingText(0);
	}
	else
	{
		alert(r);
		buttonLoadingText(0);
	}
	loading = false;
}

function buttonLoading(s)
{
	if(s)
	{
		initValue = document.getElementById("submit").value;
		for(i=0; i<text.length; i++)
		{
			document.getElementById(text[i]).disabled = true;
		}
		for(j=0; j<checkboxes.length; j++)
		{
			document.getElementById(checkboxes[j]).disabled = true;
		}
		for(k=0; k<buttons.length; k++)
		{
			document.getElementById(buttons[k]).disabled = true;
		}
		buttonLoadingText(1);
	}
	else
	{
		document.getElementById("submit").value = initValue;
		for(i=0; i<text.length; i++)
		{
			document.getElementById(text[i]).disabled = false;
		}
		for(j=0; j<checkboxes.length; j++)
		{
			document.getElementById(checkboxes[j]).disabled = false;
		}
		for(k=0; k<buttons.length; k++)
		{
			document.getElementById(buttons[k]).disabled = false;
		}
	}
}

function buttonLoadingText(step)
{
	if(loading)
	{
		switch(step)
		{
			case 1:
				setTimeout("buttonSetText('[ .     ]', 2)", 1000);
			break;
			case 2:
				setTimeout("buttonSetText('[   .   ]', 3)", 1000);
			break;
			case 3:
				setTimeout("buttonSetText('[     . ]', 4)", 1000);
			break;
			case 4:
				setTimeout("buttonSetText('[   .   ]', 1)", 1000);
			break;
		}
	}
	else
	{
		buttonLoading(0);
	}
}

function buttonSetText(t, s)
{
	document.getElementById('submit').value = t;
	buttonLoadingText(s);
}

function showResult(t)
{
	var xhr = null;
	
	params = "result="+t;
	
	if(window.XMLHttpRequest) xhr = new XMLHttpRequest();
	else if(window.ActiveXObject)
	{
		try
		{
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	else
	{
		alert("AJAX is not supported..."); 
		xhr = false; 
	}
	
	xhr.onreadystatechange = function()
	{
		if(xhr.readyState==4 && xhr.status==200)
		{
			alert(xhr.responseText);
		}
	}
	
	xhr.open("GET", "ajax-sendmail-server?"+params, true);
	xhr.send(null);
}

document.getElementById("contact_form").onsubmit = sendmail;