var messageRequest = null;
function sendMessage(form){
	
	if("" == form.option.value){
		alert('Please select an option');
		form.option.focus();
	}
	else if(null == form.author || "" == form.author.value){
		alert('Please enter your name.');
		form.author.focus();
	}
	else if(null == form.email || "" == form.email.value){
		alert('Please enter your email address.');
		form.email.focus();
	}
	else if(!emailIsValid(form.email.value)){
		alert('Please enter a valid email address.');
		form.email.focus();
	}
	else if(null == form.message || "" == form.message.value){
		alert('Please type in a message.');
		form.message.focus();
	}
	else if(null == form.code || "" == form.code.value){
		alert('Please enter the code.');
		form.code.focus();
	}
	else{
		var option = base64.encode(form.option.value);
		var author = base64.encode(form.author.value);
		var email = base64.encode(form.email.value);
		var url = base64.encode(form.url.value);
		var subject = base64.encode(form.subject.value);
		var message = base64.encode(form.message.value);
		var code = base64.encode(form.code.value);
		
		messageRequest = createRequest();
		messageRequest.onreadystatechange = function(){
		
			if(4 == messageRequest.readyState){
				
				if(200 != messageRequest.status){
					
					alert('Cannot send message (system error).');
				}
				else{
					var messages = messageRequest.responseXML.documentElement.getElementsByTagName('error');
					if(0 == messages.length){
						clearForm();
						alert('Thank you for contacting us.');
					}
					else{
						alert(messages[0].text);
					}
				}
			}
		}
		messageRequest.open("POST", "contact_.php?option="+option+"&author="+author+"&email="+email
			+"&url="+url+"&subject="+subject+"&message="+message+"&code="+code, true);
		messageRequest.send(null);
	}
}
function createRequest(){
	
	var request = null;
	try{
		request = new XMLHttpRequest();
	}
	catch(e){
		try{
			request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e){
			request = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	
	return request;
}
function clearForm(){
	
	var form = document.getElementById('contact_form');
	form.subject.value = '';
	form.message.value = '';
	form.code.value = '';
}
function emailIsValid(email){
	
	var retval = false;
	if(email.match("^(([a-zA-Z0-9][a-zA-Z0-9._%+-])*[a-zA-Z0-9])+@([a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])?\.)+(com|edu|biz|org|gov|int(t|fo)|mil|net|name|museum|coop|aero|[a-z][a-z])$"))
	{
		retval = true;
	}
	
	return retval;
}
