var msg_cleared = false;
var code_cleared = false;

function validate_email(str)
{
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	var errorcode = true
		
	if (str.indexOf(at)==-1)
	{
		errorcode = false;
	}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)
	{
		errorcode = false;
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)
	{
		errorcode = false;
	}

	 if (str.indexOf(at,(lat+1))!=-1)
	 {
		errorcode = false;
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
	 {
		errorcode = false;
	 }

	 if (str.indexOf(dot,(lat+2))==-1)
	 {
		errorcode = false;
	 }
		
	 if (str.indexOf(" ")!=-1)
	 {
		errorcode = false;
	 }

 	 return errorcode;
}

function basic_strip(string, stripspace)
{
	string = string.split("\\").join("");
	if (stripspace) { string = string.split(" ").join(""); }
	string = string.split("\"").join("");
	string = string.split("&").join("^");
	return string;
}
			
function textarea_strip(string)
{
	string = string.split("\r").join(";");
	string = string.split("\n").join(" ");
	string = string.split("\"").join("");
	string = string.split("&").join("^");
	string = string.split("\\").join("");
	return string;
}
		
function ctct_ajaxit() // function to declare an AJAX variable
{
	var ajaxRequest;
	try
	{
		ajaxRequest = new XMLHttpRequest();
	}
	catch (e)
	{
		try
		{
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				return false;
			}
		}
	}
	return ajaxRequest;
}

function submit_email()
{
	var t_name_obj = document.getElementById('t_name');
	var t_telephone_obj = document.getElementById('t_telephone');
	var t_email_obj = document.getElementById('t_email');
	var t_subject_obj = document.getElementById('t_subject');
	var t_msg_obj = document.getElementById('t_msg');
	var t_code_obj = document.getElementById('t_code');
	
	var t_name = t_name_obj.value;
	var t_telephone = t_telephone_obj.value;
	var t_email = t_email_obj.value;
	var t_subject = t_subject_obj.value;
	var t_msg = t_msg_obj.value;
	var t_code = t_code_obj.value;
	
	var t2_name = basic_strip(t_name, true);
	var t2_telephone = basic_strip(t_telephone, true);
	var t2_subject = basic_strip(t_subject, true);

	t_name = basic_strip(t_name, false);
	t_telephone = basic_strip(t_telephone, false);
	t_email = basic_strip(t_email, false);
	t_subject = basic_strip(t_subject, false);
	t_msg = textarea_strip(t_msg);
	
	if (t2_name.length < 3)
	{
		alert ("Please enter your full name.");
		return false;
	}
	if (t2_telephone.length < 3)
	{
		alert ("Please enter your telephone number.");
		return false;
	}
	if (!validate_email(t_email))
	{
		alert ("Please enter a valid email address.");
		return false;
	}
	if (t2_subject.length < 2)
	{
		alert ("Please enter a subject.");
		return false;
	}
	
	if (t_msg.length < 2 || !msg_cleared)
	{
		t_msg = "None";
	}
	
	if (t_code.length < 5 || !code_cleared)
	{
		alert ('Please enter the CAPTCHA code displayed in the box. The code is always 5 letters long and is not case-sensitive, meaning you can type the letters in uppercase or lowercase.');
		return false;
	}

	var ajaxRequest = ctct_ajaxit();
	if (!ajaxRequest)
	{
		alert ("AJAX has failed to initialize. The contact form is broken.");
		return false;
	}
	ajaxRequest.onreadystatechange=function()
	{
		if (ajaxRequest.readyState == 4)
		{
			var tresult = ajaxRequest.responseText;
			if (!tresult || tresult == "")
			{
				alert("There was an error processing this request. Please contact the website administrator.");
			}
			else if (tresult == "-2")
			{
				alert("The CAPTCHA code you entered does not match the code displayed in the box. The code is not case-sensitive, meaning you can type the letters in uppercase or lowercase. A new code will be generated.");
				new_code();
			}
			else if (tresult == "1")
			{
				document.getElementById('contactdiv').innerHTML = '<table width="10%" border="0" align="right" cellpadding="3" cellspacing="0"><tr><td style="vertical-align:middle;text-align:center;font-size: 18px;font-family: sans-serif;"><div style="width:300px;padding-top:130px;">Your message sent successfully.<br/>Someone should contact you soon.</div></td></tr></table>';
			}
			else
			{
				alert("Your message failed to send. Please try again.");
			}
		}
	}
	ajaxRequest.open("GET", "contact_send.php?name=" + t_name + "&telephone=" + t_telephone + "&email=" + t_email + "&subject=" + t_subject + "&msg=" + t_msg + "&code=" + t_code, true);
	ajaxRequest.send(null);
	
}

function clear_email()
{
	var t_name_obj = document.getElementById('t_name');
	var t_telephone_obj = document.getElementById('t_telephone');
	var t_email_obj = document.getElementById('t_email');
	var t_subject_obj = document.getElementById('t_subject');
	var t_msg_obj = document.getElementById('t_msg');
	var t_code_obj = document.getElementById('t_code');
	
	t_name_obj.value = "";
	t_telephone_obj.value = "";
	t_email_obj.value = "";
	t_subject_obj.value = "";
	t_msg_obj.value = "Optional: Please explain what you or someone you know has been charged with so we may best represent you.";
	t_code_obj.value = "Enter the letters displayed in the box below.";
	code_cleared = false;
	msg_cleared = false;
}

function textarea_clear()
{
	if (!msg_cleared)
	{	
		var t_msg_obj = document.getElementById('t_msg');
		t_msg_obj.value = "";
		msg_cleared = true;
	}
}

function code_clear()
{
	if (!code_cleared)
	{	
		var t_code_obj = document.getElementById('t_code');
		t_code_obj.value = "";
		code_cleared = true;
	}
}

function new_code()
{
	document.getElementById('newcode').innerHTML = '<img id="siimage" style="border: 0" src="securimage_show.php?sid=<?php echo md5(time()) ?>" />';
}

