function Load()
{
	var name = document.getElementById("name");
	var email = document.getElementById("email");
	var msg = document.getElementById("msg");
	var send = document.getElementById("send");
	
	name.onfocus = function() { Focus(name, "Enter Name"); }
	name.onblur = function() { Blur(name, "Enter Name"); }
	
	email.onfocus = function() { Focus(email, "Enter Email Address"); }
	email.onblur = function() { Blur(email, "Enter Email Address"); }
	
	msg.onfocus = function() { Focus(msg, "Enter Message"); }
	msg.onblur = function() { Blur(msg, "Enter Message"); }
	
	send.onclick = function() { SendMsg(name.value, email.value, msg.value) }
}

function Focus(el, msg)
{
	el.value = (el.value == msg) ? "" : el.value;
}

function Blur(el, msg)
{
	el.value = (el.value == "") ? msg : el.value;
}

function SendMsg(name, email, msg)
{
	var contact = document.getElementById("contact");
	
	if (Validate(name, email, msg))
	{
		contact.innerHTML = "<div class='loader'><img src='images/load.gif' /><br />sending...</div>";
		
		var token = GetToken();
		
		var xmlhttp = GetHttpRequest();
					
		xmlhttp.open("POST", "contact.php", true);
		xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				
		xmlhttp.onreadystatechange = function()
		{
			if (xmlhttp.readyState == 4)
			{
				contact.innerHTML = "<div class='loader'><b><strong>cheers for the email, i'll get back to you when i can.</strong></b></div>";
			}
		}
						
		try
		{ 
			xmlhttp.send("&name="+name+"&email="+email+"&msg="+msg+"&token="+token);
		}
		catch(e)
		{
			contact.innerHTML = "<div class='loader'><i><strong>an error occurred.</strong></i></div>";
		}
	}
	else
	{
		alert("Please complete all fields.");
	}
}

function Validate(name, email, msg)
{
	var emailRe = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/
	
	if (name == "" || email == "" || msg == "") return false;
	
	if (name == "Enter Name") return false;
	if (email == "Enter Email Address") return false;
	if (msg == "Enter Message") return false;
	
	return emailRe.test(email);
}

function GetToken()
{
	var cookies = document.cookie.split(";");
	var cname = "ncontact=";
	
	for (var i = 0; i < cookies.length; i++)
	{
		var c = cookies[i];
		while (c.charAt(0) == " ") c = c.substring(1, c.length);
		if (c.indexOf(cname) == 0) return c.substring(cname.length, c.length);
	}
	
	return "...";
}

function GetHttpRequest()
{
	var xmlhttp;

	if (navigator.appName == "Microsoft Internet Explorer")
	{
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else
	{
		xmlhttp = new XMLHttpRequest();
	}

	return xmlhttp;
}
