//define reg_exps
var name_regexp = /^[a-zA-Z \'\-]+$/;
var email_regexp = /^[^@]+@[^@]+\.[a-zA-Z]{2,10}$/;
var telephone_regexp = /^[0-9 \(\)\-\+]+$/;
var message_regexp = /^[\s\S]+$/;

function check_form() {

	var name = $('name').value;
	var email = $('email').value;
	var telephone = $('telephone').value;
	var message = $('message').value;
	
	//check everything
	if( name.length == 0 ) show_error( 'name' );
	else if( !name.match( name_regexp ) ) show_error( 'name_invalid' );
	else if( email.length == 0 ) show_error( 'email' );
	else if( !email.match( email_regexp ) ) show_error( 'email_invalid' );
	else if( telephone.length == 0 ) show_error( 'telephone' );
	else if( !telephone.match( telephone_regexp ) ) show_error( 'telephone_invalid' );
	else if( message.length == 0 ) show_error( 'message' );
	else return true;

	return false;

} //end function

function show_error( type ) {

	new Ajax.Updater('error_container', 'content/en/contact_error.php', {
		method: 'post',
		postBody: 'error=' + type,
		onComplete:function(){
			if( is_ie ) $('type').style.visibility = 'hidden';
			$('error_container_bg').style.display = 'block';
			set_opacity( $('error_container_bg'), 0 );
			new Effect.Fade('error_container_bg', { duration: 0.7, from: 0, to: 1 } );
			setTimeout( "$('error_container').style.display = 'block'", 700 );
		},
		asynchronous: true
	});

} //end function

function close_error() {

	if( is_ie ) $('type').style.visibility = 'visible';
	$('error_container_bg').style.display = 'none';
	$('error_container').style.display = 'none';

} //end function

//if the form items are filled in then validate
if( $('name').value.length > 0 ) validate_input( $('name'), name_regexp );
if( $('email').value.length > 0 ) validate_input( $('email'), email_regexp );
if( $('telephone').value.length > 0 ) validate_input( $('telephone'), telephone_regexp );
if( $('message').value.length > 0 ) validate_input( $('message'), message_regexp );

// turn off autocomplete
$('contact_form').setAttribute("autocomplete","off");

//stop the enter key submitting the form
$('name').onkeypress = cancel_enter;
$('email').onkeypress = cancel_enter;
$('telephone').onkeypress = cancel_enter;
function cancel_enter( e ) {
	var key_pressed = is_ie ? window.event.keyCode : e.which;
	if( key_pressed == 13 ) return false; //if enterr
} //end function
